Joomla语言文件反向搜索

时间:2016-09-20 07:35:14

标签: php joomla

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

例如,我的语言文件为:

COM_MY_COMPONENT_FOO="bar"

在我的桌子上,我有:

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

有没有办法获得" COM_MY_COMPONENT_FOO"从" foo"开始(鉴于我已经知道用户使用的语言文件)?阅读整个语言文件并将其翻转可能成本太高,即使我专门为" some_value"创建了一个单独的语言文件。列。

1 个答案:

答案 0 :(得分:0)

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

由于语言文件是简单的.ini文件,因此可以很容易地将它们作为PHP中的关联数组用parse_ini_file读取,并且可以使用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;