Подтвердить что ты не робот

Языковые коды для упрощенного китайского и традиционного китайского языка?

Мы создаем многоязычные подсайты на нашем веб-сайте.

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

mydomain.com/es
mydomain.com/fr

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

mydomain.com/zh
mydomain.com/?
4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Расположение конкретных

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

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

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

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

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

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

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

Инструменты языка браузера

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

Критерии

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

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

Таблица для минимизации затрат на обслуживание

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