2011-07-17 12 views
0
などのZend_Localeの名誉省略形式

I次のコードを持っているとZendフレームワークと簡単な何かをしてしようとしていますZend_Locale()しないのはなぜzh_HKまたはzh_CNに

$supported_langs = array(
    'en' => 'English', 
    'zh_CN' => '中文(简体)', 
    'zh_HK' => '中國(傳統)', 
    'es' => 'Español', 
    'ja' => '日本', 
    'pt' => 'Português', 
    'de' => 'Deutsch', 
    'ar' => 'العربية', 
    'fr' => 'Française', 
    'ru' => 'Pусский', 
    'ko' => '한국의', 
    'hi' => 'हिन्दी', 
    'vi' => 'Việt' 
); 
echo '<pre>'; 
foreach ($supported_langs as $lang => $desc) { 
    print Zend_Locale::getTranslation($lang, 'language', 'en') . "\n"; 
} 
echo '</pre>'; 

上からの出力は次のとおりです。

English 


Spanish 
Japanese 
Portuguese 
German 
Arabic 
French 
Russian 
Korean 
Hindi 
Vietnamese 

zh_CNzh_HKは、出力を提供していません。 zhの値をzhに変更すると、中国語が出力されます。これはOkですが、私が望んだとおりに動作しませんか?

がzh_CNとzh_HKは、2つの異なる言語である...私はそれを単純化する上でなくて...両方の翻訳を印刷できるようにしたいと思い

にちょうど中国の...

編集

私がzh_Hanszh_Hantを使用すると、それが正しいものとして印刷されます。だから私は仮定する:

質問:質問:Zend_Localeはzh_HKやzh_CNのような省略形を守らないのはなぜですか?

+2

「zh_Hans」と「zh_Hant」と呼ばれているようですね...数字質問を投稿して数分後に答えが見つかります! – sdolgy

+0

これを回答として投稿し、コメントを削除してアップフォートを待ちます。 :) – Tomalak

+0

nah ...私はフィードバックを開いておくために質問を修正しました。私は前に 'zh_Hant'を送信するブラウザを見たことがありません...ちょうどzh_CN – sdolgy

答えて

0

コンピュータは本質的に愚かです、あなたはそれらすべてを伝える必要があります。 Zend_Localeはかなりの数のXMLファイルから定義された情報を取得します。あなたの中国語のコードは知られていませんが、正式にはこれの正しい省略形は何ですか?

以下では、フレームワーク内でサポートされているすべての言語のリストを取得できます。

$locale = new Zend_Locale(); 
$langList = $locale->getTranslationList('language'); 
array [.. 
    ['zh']  => 'Chinese' 
    ['zh_Hans'] => 'Simplified Chinese' 
    ['zh_Hant'] => 'Traditional Chinese' 
.. ] 

あなたは二$locale引数を渡すことができますし、その言語で言語の値を取得します。デフォルトは、ブラウザが送信するものです。

更新日 zh_CNとzh_HKは、中国と香港ではなく、言語ではありません。台湾のzh_TWもあります。