Упрощенный и традиционный китайский против регионов

В процессе внедрения традиционной и упрощенной китайской поддержки в моем приложении для Android я смущен тем, как это должно работать.

Поэтому, прочитав документацию, а также некоторые обсуждения, подобные этому, я включил упрощенный китайский язык в

  • ценности-ж
  • Значения-ZH-RCN
  • Значения-ZH-RSG

И традиционный китайский в

  • Значения-ZH-RTW
  • Значения-ZH-RHK

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

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

Теперь вот вопрос. Как система знает, где получить упрощенный или традиционный китайский strings.xml. Есть ли какое-то предположение, испеченное в том, что говорит, что если я должен показать упрощенное китайское, получим его из значений-zh и получим традиционный от значений-zh-rTW?

Но что, если пользователь находится в HK и устанавливает свое устройство для отображения упрощенного китайского? Или что, если эмигрант где-то в мире устанавливает свое устройство на традиционный китайский, но его регион – это, например, США или Калифорния?

Что мне нужно сделать, чтобы мои пользователи могли установить свою локаль и показать свое приложение с правильной локалью?

Обновить:

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

Например, китайский человек, живущий в США, который хочет использовать традиционный китайский язык, может установить язык на традиционный китайский (по крайней мере, на корневом телефоне), а затем будет иметь место для zh-rTW. Он никоим образом не мог отделить свою страну от США. Подобным образом любой эмигрант не может установить свой родной язык в стране, в которой они сейчас живут.

В основном это означает, что поддерживается только сочетание комбинаций языка и страны. Теперь вопросы, как узнать, какие из них?

Solutions Collecting From Web of "Упрощенный и традиционный китайский против регионов"

Поэтому я думаю, что после дальнейшего расследования и ответа Маркса я сам дам ответ. Вот так:

Из коробки Android только две локали zh_rCN, которая упрощена китайскими и zh_rTW, которая является традиционной китайской. Как видно из приложения «Настройки», это единственные предоставленные локали:

https://android.googlesource.com/platform/packages/apps/Settings/+/master/res/

Однако любой другой создатель системы Android, например, для телефона, продаваемого в Китае, может изменить то, что они добавляют. Полный теоретически поддерживаемый набор можно найти, просмотрев список локалей, найденный в приложении icu4c:

https://android.googlesource.com/platform/external/icu4c.git/+/master/data/locales/ Как вы можете видеть по-китайски, есть

  • zh.txt
  • zh_CN.txt
  • zh_HK.txt
  • zh_Hans.txt
  • zh_Hans_CN.txt
  • zh_Hans_HK.txt
  • zh_Hans_MO.txt
  • zh_Hans_SG.txt
  • zh_Hant.txt
  • zh_Hant_HK.txt
  • zh_Hant_MO.txt
  • zh_Hant_TW.txt
  • zh_MO.txt
  • zh_SG.txt
  • zh_TW.txt

Hant – это код ISO для традиционных и Hans для упрощенного китайского языка. Поэтому теоретически это означало бы, что мы могли бы

  • Упрощенный китайский в Китае, Гонконге, Макау и Сингапуре
  • Традиционный китайский в Гонконге, Макао и Тайване

Однако имейте в виду, что приложение «Настройки» должно быть изменено, чтобы иметь разные варианты локали. Таким образом, на этом этапе упрощенный китайский переводится на zh_rCN и традиционный zh_rTW, и вы должны быть разделены для пользователей, у которых есть такое модифицированное изображение Android, которое поддерживает другие локали.

В любом случае, чтобы быть на стороне сохранения, вы можете использовать класс Configuration, чтобы получить локаль, например, в своем классе Application с помощью getResources (). GetConfiguration (). Locale.

Вы могли бы, например, зарегистрировать это и отправить данные в свою систему отслеживания (независимо от того, что вы используете), или вы можете проверить на поддерживаемые и выбросить исключение с параметром locale в сообщении и затем отобразиться в вашем интерфейсе рынка … Будет означать, как минимум, один крах вашего приложения (если вы на шаре вы можете опубликовать и обновить через несколько минут ..)

Итак, чтобы напомнить .. минимальная настройка будет зеркалировать то, что сделано в приложении настроек (есть только zh-rCN и zh-rTW), но если вы хотите предоставить локальные настройки по умолчанию для Сингапура, Гонконг, Макао, поставляя традиционный китайский по умолчанию Вы тоже можете это сделать, и это должно сработать. Однако у меня нет никаких доказательств того, что такая конфигурация используется где угодно.

Надеюсь, это поможет.

Пожалуйста, имейте в виду, что сам Android поддерживает только

  • values-zh
  • values-zh-rCN
  • values-zh-rTW

Согласно документации .

Имея это в виду, и имея в виду, что мои знания о китайце близки к нулю:

Как система знает, где получить упрощенную или традиционную китайскую строку.xml

Если ваша структура правильная, то упрощенная предположительно отображает values-zh-rCN и традиционные карты в values-zh-rTW . Для меня это ощущение назад, но, опять же, я мало знаю о китайском.

Есть ли какое-то предположение, испеченное в том, что говорит, что если я должен показать упрощенное китайское, получим его из значений-zh и получим традиционный от значений-zh-rTW?

Я бы назвал это более точным, так как метки давали эти языки на карте приложений настроек в некоторых конкретных регионах.

Но что, если пользователь находится в HK и устанавливает свое устройство для отображения упрощенного китайского?

Надеемся, они упростят китайский. В стандартном Android нет области HK.

Или что, если эмигрант где-то в мире устанавливает свое устройство на традиционный китайский, но его регион – это, например, США или Калифорния?

Я не знаю, что это будет вариант на Android-устройстве. Знаете ли вы о каких-либо устройствах, предлагающих китайский вариант в США вместо или в дополнение к американскому английскому языку?

Из дальнейшего расследования я считаю, что пользователь телефона Android не может установить страну отдельно от языка.

Верный.

Теперь вопросы, как узнать, какие из них?

Это было бы в документации для стандартного Android. Различные устройства или ПЗУ могут предлагать другие комбинации языка / региона. Для целей ведения журнала вы можете использовать объект « Configuration чтобы узнать выбранный пользователем язык. Если вы обнаружите, что ваши пользователи используют комбинации языка / региона, помимо тех, которые вы настроили, вы можете решить, поддерживать их или нет.