Языковые коды для упрощенного китайского и традиционного китайского? - PullRequest
62 голосов
/ 04 февраля 2011

Мы создаем многоязычные дочерние сайты на нашем сайте.

Я хотел бы использовать двухбуквенные коды языков.Испанский и французский легко.Они получат URL-адреса вроде:

mydomain.com/es
mydomain.com/fr

, но я столкнулся с проблемой традиционного и упрощенного китайского.Существуют ли стандарты, для которых двухбуквенные коды используются для этих языков?

mydomain.com/zh
mydomain.com/?

Ответы [ 3 ]

137 голосов
/ 04 февраля 2011

@ dkarp дает отличный общий ответ.Я добавлю некоторые дополнительные особенности, касающиеся китайского языка:

В нескольких странах основным письменным языком является китайский.Основное различие между ними заключается в том, используют ли они упрощенные или традиционные символы, но есть и небольшие региональные различия (в словарном запасе и т. Д.).Стандартным способом их различения будет код страны, например zh_CN для материкового Китая, zh_SG для Сингапура, zh_TW для Тайваня или zh_HK для Гонконга.

для материкового Китая иСингапур и использует упрощенные символы, а другие используют традиционные символы.Поскольку Китай и Тайвань являются двумя самыми многочисленными группами населения, просто zh_CN и zh_TW часто используются для различения упрощенных и традиционных версий символов сайта.

Более правильно ,однако следует использовать zh_HANS для (общих) упрощенных китайских иероглифов и zh_HANT для традиционных китайских иероглифов, за исключением редких случаев, когда имеет смысл различать разные страны.

29 голосов
/ 04 февраля 2011

Существует действительно стандартное представление для этого.Поскольку люди столкнулись с той же самой проблемой, с которой вы сталкиваетесь - одним и тем же языком, но с разными диалектами или символами - они расширили двухбуквенный код языка двухбуквенным кодом региона.Таким образом, у вас может быть универсальная французская страница на mydomain.com/fr, но интернационализация для французских канадских читателей может оставить вас с mydomain.com/fr_CA (Канада) и mydomain.com/fr_FR (Франция).Некоторые платформы используют тире вместо подчеркивания для разделения кодов языка и региона (отсюда fr-CA и fr-FR).

Стандартный языковой стандарт для упрощенного китайского языка: zh_CN.Стандартным языком для традиционного китайского языка является zh_TW.

Я не решаюсь указать вам фактические документы BCP 47 стандартов, так как онинемного тяжелый на детали и немного света на удобочитаемости.Просто используйте стандартные идентификаторы локали, такие как те, что используются в Java , и все будет в порядке.

1 голос
/ 07 января 2017

Язык зависит от того, где на нем говорят (дох!), Поэтому языковые и региональные коды отражают эту реальность.zh является базовым языковым кодом, но, поскольку существует две его основные формы, существуют zh_Hans и zh_Hant, но они все еще являются только языковыми кодами, а не локалями.

Зависит от местоположения

Чтобы полностью указать, какой язык используется в конкретном месте, к коду страны все еще необходимо добавить суффикс, поэтомуzh_Hans_HK и zh_Hant_HK для упрощенного и традиционного китайского языков соответственно, как в Гонконге.

На самом деле реальность такова, что во многих странах часто требуется нечто более конкретное, чем код страны, но этоВероятность экспоненциального увеличения сложности и обслуживания баз данных, таких как CLDR, плюс поддержка инфраструктуры, в которую они могут влиять, например извлечение IP-адресов для определения местоположения, обычно недоступна или недостаточно точна.

Фиксированный текст

Теперь, если код просто указывает, какой набор фиксированных строк использовать в пользовательском интерфейсе или даже целые наборы страниц на сайте, суффикс страны на самом деле не нужен, если только не болеенесколько мест, где язык меняется достаточно значительно (информация о местоположении), чтобы потрудиться создать целый наборнабор ресурсов parate.

Чем больше набор ресурсов, тем более вероятно, что языковой код, основанный на локали [в данном контексте, просто атрибут языка, а не истинная локаль, поэтому вы можете называть его как вам угодно!], но, по крайней мере, вы должны делать это только при необходимости.

Значения на лету

Однако, если вы хотите отформатировать определенную переменнуюзначения, такие как даты, время, валюты и числа, «на лету», локали становятся важными, потому что все инструменты, поддерживающие такую ​​функциональность (например, основанные на данных Unicode CLDR), ожидают их.Локаль для них должна быть отдельной настройкой для кода, для которого настроен собственный язык пользовательского интерфейса, если вы не хотите создавать набор ресурсов для каждой известной локалии поддерживайте их до тошноты!

Языковые инструменты браузера

Обратите внимание, что при указании языкового стандарта для веб-страницы, которую можно редактировать, как в полях ввода, и проверка орфографии вАтрибуты или CSS включены для поля, языковые инструменты браузера будут проверять поле в соответствии с этой локалью.

Критерии

Вы должны четко понимать, чтонабор ресурсов обеспечивает, поэтому рассмотрим:

  • Исправлены строки?Только язык.
  • Форматирование на лету?Locale.
  • Проверка орфографии в среде просмотра?Locale.
  • Целые страницы / дочерние сайты?Только язык, иначе языковой стандарт (как вариант языка), если требуется существенно другое содержимое.

Электронная таблица для минимизации накладных расходов на обслуживание

Я использую электронную таблицу для хранения пользовательского интерфейсаСтроки, где у каждого языкового кода есть родительский код, так что ячейка для ее версии строки имеет формулу, которая получает свою строку от родительского.Чтобы создать пользовательскую строку для этого языка и строки, я просто перезаписываю формулу ячейки точным текстом.Это сводит к минимуму объем обслуживания ресурсов.В конце я запускаю макрос, который генерирует полный файл ресурсов для каждого языка.

...