Если Вам локализовали приложение в pt-br и pt-pt, какой язык необходимо выбрать, если система сообщает только “pt” о коде?

Если Вам локализовали приложение в pt-br и pt-pt, какой язык необходимо выбрать, если система сообщает только pt код (универсальные португальцы)?

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

Вопрос действительно применяется также для большего количества случая включая:

  • pt-pt и pt-br
  • en-us и en-gb
  • fr-fr и fr-CA
  • zh-cn, zh-tw.... - на самом деле в этом случае я знаю это zh может использоваться в качестве преобладающего языка для Упрощенного китайского, где полный код zh-hans. Для Традиционных китайцев, с кодами как zh-tw, zh-hant-tw, zh-hk, zh-mo надлежащий (канонический) код должен быть zh-hant.

Q1: Как я определяю преобладающие языки для указанного метаязыка?

Мне нужно решение, которое будет включать, по крайней мере, португальский, английский и французский.

Q2: Если система сообщила об Упрощенном китайском (PRC) (zh-cn) как предпочтенный язык пользователя и у меня есть перевод только для английских и Традиционных китайцев (en,zh-tw) что должно я выбирать из этих двух опций: en или zh-tw?

11
задан sorin 23 March 2010 в 18:26
поделиться

2 ответа

В общем, вам следует отделить проблему «угадать недостающие параметры» от проблемы «сопоставления списка локалей, которые я хочу, со списком локалей, которые у меня есть». Они разные.

Отгадывать недостающие части

Все это сложные области и даже (потенциально) политически заряженные.

Но, за очень немногими исключениями, правилом является выбор «исходной страны» языка. Исключения в основном основаны на численности населения. Итак, fr-FR для fr, es-ES и т. д. Некоторые исключения: pt-BR вместо pt-PT, en-US вместо en-GB.

Также общепринято (и требуется по китайским стандартам), что zh отображается в zh-CN.

Возможно, вам также придется посмотреть на страну, чтобы определить сценарий, или наоборот. Например, az => az-AZ, но az-Arab => az-Arab-IR и az_IR => az_Arab_IR

Сопоставление «хочу» и «иметь»

Это включает сопоставление списка желаний со списком языков. Работа со списками усложняет задачу. И результат также следует, по возможности, грамотно отсортировать. (например, если want = [fr ro] и have = [en fr_CA fr_FR ro_RO] , тогда вы, вероятно, захотите получить [fr_FR fr_CA ro_RO] в качестве результата.

Не должно быть совпадений между языками с разными сценариями. Таким образом, zh-TW не должен возвращаться к zh-CN, а mn-Mong не должен возвращаться к mn-Cyrl. Сложные области: sr-Cyrl не должен возврат к sr-Latn теоретически, но это может быть понятно пользователям. ro-Cyrl может вернуться к ro-Latn, но не наоборот.

Некоторые ссылки

  • RFC 4647 касается языкового отката (но в данном случае не очень полезен, поскольку следует правилу «вырезать справа»).
  • ICU 4.2 и новее (я думаю, черновик 4.0) имеет uloc_addLikelySubtags uloc_minimizeSubtags ) в uloc.h . Это реализует http://www.unicode.org/reports/tr35/#Likely_Subtags
  • Также в ICU uloc.h есть uloc_acceptLanguageFromHTTP и uloc_acceptLanguage_acceptLanguage_acceptLanguage , которые имеют дело с желанием и имуществом. Но как бы они ни были бесполезны, потому что они принимают UEnumeration * в качестве входных данных, и нет общедоступного API для создания UEnumeration.
  • Существует некоторая работа по сопоставлению языков, выходящая за рамки простого RFC 4647. См. http://cldr.unicode.org/development/design-proposals/languagedistance
  • Сопоставление языковых стандартов в ActionScript на http : //code.google.com/p/as3localelib/
  • API-интерфейсы в новом пространстве имен Flash Player 10.1 flash.globalization выполняют как угадывание тегов, так и сопоставление языков ( http: // help .adobe.com / en_US / FlashPlatform / beta / reference / actionscript / 3 / flash / globalization / package-detail.html ). Он работает на TR-35 и может смотреть за пределы @ и рассматривать операцию. Например, если have = [ja ja @ collation = радикальный ja @ calendar = japanese] и want = [ja @ calendar = japanese; collation = радикальный] , то наилучшее совпадение зависит на операцию, которую вы хотите.Для форматирования даты лучше всего подходит ja @ calendar = japanese, но для сортировки вам нужно ja @ collation = радикальный
10
ответ дан 3 December 2019 в 08:29
поделиться

Ожидаете ли вы, что у вас будет больше пользователей в Португалии или Бразилии? Выбирайте соответственно.

Общее решение можно найти в Ethnologue .

4
ответ дан 3 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: