Я ищу список всех локалей и их кратких кодов для приложения PHP, которое я пишу. Есть ли большая разница в этих данных между платформами?
Кроме того, если я разрабатываю международную заявку, могу ли я просто поддерживать одну версию английского языка или есть значительные различия в английском во всем мире?
php
internationalization
locale
Кирк Уймет
источник
источник
en
использования:en_US
иen_GB
, с основными отличиями в том, что последний обычно используетise
вместо первогоize
, и оригинальное французское написание слов, таких какmetre
, вместоmeter
, и не используют фонетические сокращения, используяsulphur
вместоsulphur
.en_GB
обычно охватывает соглашения об орфографии, используемые в бывших колониях, в которых США не доминировали в культурном плане, например,en_AU
иen_NZ
. См. Tysto.com/uk-us-spelling-list.html .en_US
в качестве единственнойen
локали не будет раздражать слишком много перьев.Ответы:
Важность языковых стандартов заключается в том, что ваша среда / ОС может предоставлять функции форматирования для всех установленных языковых стандартов, даже если вы не знаете о них при написании приложения. В моей системе Windows 7 установлено 211 языковых стандартов (перечисленных ниже), поэтому вы вряд ли напишите какой-либо пользовательский код или перевод, специфичный для такого количества языковых стандартов.
Самое важное для разных версий английского языка - это форматирование чисел и дат. Другие различия значимы в той степени, в которой вы хотите и способны удовлетворить конкретные изменения.
источник
MessageFormatter::formatMessage
, или его одноразовымmsgfmt_format_message
, как вmsgfmt_format_message('ar-ye', '{0,date,medium}', array('2017-01-27))
, который будет производить٢٧/٠١/٢٠١٧
. Для случаев, когда используются значения, хранящиеся в формате UTC, вероятно, лучше использоватьIntlDateFormatter
класс, так как вы можете указать часовой пояс, чтобы показать местное время на языке.en-029
это такоеEnglish (Caribbean)
: stackoverflow.com/questions/7192410/…Принятый ответ пропускает некоторые довольно значимые локали. Например, китайские языки не различают разные писания (упрощенный хань, традиционный хань). Какой гражданин Китая, который хочет использовать традиционный хань, - Гонконг?
Я взял этот список локалей iOS , удалил странную запись POSIX, отформатировал ее как Javascript и отсортировал по значению (поэтому, если вы используете упорядоченную реализацию объекта и создаете список, просматривая ключи и возвращая значение, он будет показать читабельный текст в правильном порядке). Кроме того, этот список содержит как основную запись для каждого языка, так и все специфичные для региона варианты - таким образом, у вас всегда есть назначенный запасной вариант, скажем, если ваш интерфейс только определил опцию «en» - иначе вы бы не узнали об этом. на что надежно отступить.
источник
zh-hans-hk
иzh-hant-hk
.intl
Набор объектов PHP допускает указание локалей в нижнем регистре и тире, а также принятиеlang_COUNTRY
стилей.intl
классы для всех ваших усилий, включая часовые пояса и локали, так как они построены на базе данных CLDR и обновляются с каждой версией PHP. Другие функции PHP могут быть построены на изолированных наборах данных, у которых нет усилий по синхронизации, которые были включены во всеобъемлющий набор данных CLDR, поэтому некоторые из этих других функций могут давать некоторые расхождения с функциями CLDR, тем более что международные усилия стандартизируют больше в CLDR , Возможно, вам придется использовать некоторые из этих других функций в качестве запасного варианта, если вы хотите получить питание до 5.6.intl
классами является то, что он будет обслуживать ваши страницы в два раза быстрее .Хотя принятый ответ довольно полный (я использовал себя в похожем вопросе, который возник у меня), я думаю, что стоит поместить все поддерживаемые языковые коды и варианты, а также кодировки, и указать пользователю на файл, который присутствует почти в любые дистрибутивы Linux, в случае, если он просто хочет получить более быстрый ответ и, к примеру, без интернета.
Это файл
/usr/share/i18n/SUPPORTED
и его содержимое:источник
С http://www.w3.org/International/articles/language-tags/
AFAIK большинство региональных приложений (написанных профессионалами) придерживаются этого стандарта. Это не просто то, что кто-то бросил вместе, и что разные люди по-разному интерпретируют.
Я настоятельно рекомендую вам изучить особенности интернационализации вашего конкретного языка разработки, так как вы, вероятно, в конечном итоге изобрели колесо, если не сделаете этого.
источник
Если вы используете php-intl для локализации своего приложения, вы, вероятно, захотите использовать ResourceBundle :: getLocales () вместо статического списка, который вы ведете сами. Он также может дать вам локали для определенного языка.
источник
Вот довольно исчерпывающий список кодов культуры . Насколько я могу судить, они не различаются между языками программирования, поскольку это стандарт RFC. Что касается английского, я думаю, что если вы поддерживаете общий
en
или, возможно, то,en-US
то у вас все будет хорошо.источник
en-US
. Просто факт жизни. Достаточно взглянуть на то, как большинство сайтов онлайн-газет по всему миру используют цитаты в американском стиле, даже когда они нацелены на местную аудиторию, только из-за того, что культурные ресурсы, взятые из материалов США, перекрыли все, что могло быть в официальном руководстве по стилю страны. Аудитория двигалась дальше, несмотря на то, что многие из нас могут использовать для наших личных предпочтений.Список языков
Список всех языков с именами и кодами ISO 639-1 на всех языках и во всех форматах данных.
Доступные форматы
https://github.com/umpirsky/language-list
источник
en_IE
ведет себя иначе, чемen_US
в ряде аспектов (валюта, измерения, орфография и т. Д.).