1

現在、SocialEngine のインストール (Zend 上に構築) の問題を修正しようとしています。この問題は、言語セレクターに、ネイティブ名ではなく (「ドイツ語」の「ドイツ語」など) 1 つの言語が表示されますが、ユーザーが設定した言語で表示されます。フロントエンド (したがって、言語を英語に設定すると、「Deutsch」ではなく「German」が表示されます)。

ソースを見ると、Zend_Locale_Data がシステムで利用可能な言語のリストをロードし、マシン上にないように見えるパスから LDML ファイルを読み込もうとしていることがわかりました。

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

パスがコンピューター上にない場合は、Web にある必要がありますが、「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 に答える