почему Zend_Locale не поддерживает такие сокращенные форматы, как zh_HK или zh_CN - PullRequest
0 голосов
/ 17 июля 2011

У меня есть следующий фрагмент кода, и я пытаюсь сделать что-то простое с Zend Framework и Zend_Locale()

<code>    $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 '
';

Вывод выше:

English


Spanish
Japanese
Portuguese
German
Arabic
French
Russian
Korean
Hindi
Vietnamese

zh_CN, zh_HK не обеспечивает вывод.Если я изменю одно из значений zh на zh, оно напечатает китайский , что, наверное, нормально, но не совсем так, как я надеялся?

zh_CN и zh_HK - это два разных языка ... Я хотел бы иметь возможность печатать перевод для обоих ... без чрезмерного упрощения его до китайского ...

Edit

Получается, если я использую zh_Hans и zh_Hant, то он печатается правильно.Итак, я полагаю:

Вопрос: почему Zend_Locale не поддерживает такие сокращенные форматы, как zh_HK или zh_CN?

1 Ответ

0 голосов
/ 01 августа 2011

Компьютеры по своей сути глупы, вы должны рассказать им все. 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 для Тайваня

...