1

目前,我尝试解决我们的 SocialEngine 安装(基于 Zend 构建)的问题,该问题在语言选择器中显示一种语言,而不是其本地名称(如“Deutsch”代表“German”),而是用户设置的语言前端(因此,当您将语言设置为英语时,您会看到“德语”而不是“Deutsch”)。

在查看源代码时,我看到 Zend_Locale_Data 加载了系统可用的语言列表,并尝试从似乎不在我的机器上的路径读取 LDML 文件:

$temp = self::_getFile($locale, '/ldml/localeDisplayNames/languages/language', 'type');

当路径不在我的计算机上时,它必须在网络上,但是搜索“ldml”或“zend ldml”我没有得到关于这个主题的任何提示。你能引导我穿过迷雾吗?

任何帮助表示赞赏。谢谢!

4

1 回答 1

2

您看到的'/ldml/localeDisplayNames/languages/language'不是文件路径而是 XPath 表达式,读取的文件是位于其中的 XML 文件Zend/Locale/Data/,文件名与给定$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... -->
于 2013-01-23T11:31:25.440 回答