繁体   English   中英

Joomla语言文件反向搜索

[英]Joomla language file reverse search

我有一个带有其语言文件的组件。 我们的一个表中的一个字段包含语言文件中的字符串,并且在客户端中该字符串被替换为相应的值,但用户可以对其进行查询。 显然,用户将使用他读取的字符串(而不是语言文件中的相应字符串)进行查询,是否有内置的方法来获取给定值和语言文件的语言文件常量?

例如,我的语言文件显示为:

COM_MY_COMPONENT_FOO="bar"

在我的桌子上,我有:

+-------+-----------------------+
| id    |        some_value     |
+-------+-----------------------+
|   1   |  COM_MY_COMPONENT_FOO |
+-------+-----------------------+

有什么办法可以从“ foo”开始获取“ COM_MY_COMPONENT_FOO”(假设我已经知道用户使用的语言文件)? 即使我专门为“ some_value”列创建了一个单独的语言文件,但读取整个语言文件并将其反转可能会花费太多。

它远非完美或优雅,但我找到了一个可行的解决方案,并将其发布在这里,以供任何不幸的人将来使用。

由于语言文件是简单的.ini文件,因此很容易使用parse_ini_file将它们作为PHP中的关联数组读取,并且可以使用array_flip反转关联数组。 如果在语言文件中未定义字符串,则使用isset添加一个简单控件可以复制JText行为:

$reverselang = array_flip(parse_ini_file($path_to_lang_file));
if(isset($reverselang[$my_string]){
      return $reverselang[$my_string];
}
return $my_string;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM