目前我正在尝试修复我们的SocialEngine安装(构建在Zend上)的一个问题,它在语言选择器中显示了一种语言,而不是它的本机名称(比如"Deutsch“代表”德语“),而是用户设置的语言(所以当你将语言设置为英语时,你会看到”德语“而不是"Deutsch”)。
在查看源代码时,我看到Zend_Locale_Data加载了系统可用的语言列表,并尝试从似乎不在我的机器上的路径读取LDML文件:
$temp = self::_getFile($locale, '/ldml/localeDisplayNames/languages/language', 'type');
当路径不在我的计算机上时,它必须在web上,但是搜索"ldml“或"zend ldml”时,我没有得到任何关于这个主题的提示。你能带我穿过雾吗?
任何帮助都是非常感谢的。谢谢!
发布于 2013-01-23 19:31:25
您看到的'/ldml/localeDisplayNames/languages/language'
不是文件路径,而是一个XPath表达式,读取的文件是位于Zend/Locale/Data/
中的XML文件,文件名与给定的$locale
参数相关。
例如,对于英语区域设置,加载的XML文件应为Zend/Locale/Data/en.xml
。打开此文件将显示由XPath表达式选择的结构
<?xml version="1.0" encoding="UTF-8" ?>
<ldml>
<!-- content skipped -->
<localeDisplayNames>
<!-- content skipped -->
<languages>
<language type="aa">Afar</language>
<language type="ab">Abkhazian</language>
<!-- etc... -->
https://stackoverflow.com/questions/14456783
复制相似问题