Локализованные данные штатов / провинций - PullRequest
2 голосов
/ 10 августа 2011

Я пытаюсь предоставить раскрывающиеся меню, чтобы пользователи могли выбирать свою страну и штат в многоязычном веб-приложении.

Мне удалось извлечь список стран и названия этих стран на разных языках.из файлов cldr unicode.org.

В настоящее время все они хранятся в массивах в отдельных файлах (у меня есть такие файлы, как en.php, es.php, fr.php и т. д.).

Хотя это не кажется слишком сложным, у меня возникают проблемы при попытке получить список административных делений (штатов / провинций / префектур) в локализованной форме.По сути, если человек использует французскую версию (fr_fr) приложения, мне бы хотелось, чтобы, когда он выбирал «Францию» в качестве своей страны, в раскрывающемся списке штатов находились различные французские департаменты на французском языке.

Я нашел некоторые данные на geonames.org: http://www.geonames.org/GB/administrative-division-united-kingdom.html, но все содержимое, похоже, на английском, поэтому я не могу предоставить локализованные состояния.Кроме того, в некоторых странах, таких как Великобритания, есть 2 набора данных в разделе «Административное деление», что может затруднить автоматический сбор данных.

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

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

Другая проблема, с которой я сталкиваюсь, - где хранить все данные. В настоящее время я склоняюсь к тому, чтобы сохранить административное деление (штат) и метку (штат, префектура и т. Д.) В массивах в более конкретном файле, содержащем локаль (en_US.php, en_GB.php и т. д.).

Кто-нибудь имел дело с чем-то подобным в проекте? Я хотел бы услышать ваши предложения / мнения. Также было бы здорово, если бы кто-то мог предоставить источник, где яможно получить локализованные состояния.

РЕДАКТИРОВАТЬ

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

1 Ответ

4 голосов
/ 25 августа 2011

Для чего вы используете данные штата / провинции?Если это для рассылки, то имейте в виду, что штат / провинция не требуется (и обычно не указывается) в почтовых адресах многих стран, и вы просто будете раздражать пользователя, если попросите его, когда он не нужен.

Почтовый код более важен для почтовых отправлений, и в Юникоде CLDR имеется регулярное выражение проверки почтового кода для 158 стран.(При загрузке CLDR он находится в дополнительном файле / postalCodeData.xml)

Если вы действительно хотите указать штат / провинцию, то существует предложение CLDR добавить информацию о форматировании адреса в CLDR здесь - http://unicode.org/review/pri180/

Вы заметите, что предложение связано с сервисом Google Appengine, который содержит предлагаемую информацию о форматировании адреса - http://i18napis.appspot.com/address

Кажется, что там перечислены штаты / провинции, но только для стран, которым требуетсятакая информация в почтовых адресах.И похоже, что оно переведено на языки каждой страны - например, названия канадских провинций перечислены на английском и французском языках.Например, вам также говорят, что в Японии она называется префектурой

Если вы действительно, действительно хотите все подразделения, независимо от того, нужны ли они в почтовом адресе, тогда возьмите ISO 3166-2.Купите его здесь - http://www.iso.org/iso/country_codes/iso_3166_databases.htm (вы также можете снять его с сайта Википедии для ISO-3166-2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...