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