[英]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.