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



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



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




  • значения-ж

  • values-zh-rCN

  • values-zh-rSG


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




  • values-zh-rTW

  • values-zh-rHK


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



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



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



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



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



обновление:



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



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



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

617   2  

2 ответов:

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

из коробки 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/ Как вы можете видеть для китайцев есть

  • ж.txt
  • на zh_cn.txt
  • zh_HK.txt
  • ж_ханс.формат txt
  • zh_Hans_CN.txt
  • zh_Hans_HK.txt
  • zh_Hans_MO.txt
  • zh_Hans_SG.txt
  • ж_хант.txt
  • zh_Hant_HK.txt
  • zh_Hant_MO.txt
  • zh_Hant_TW.txt
  • ж_мо.txt
  • некоторых случаях.txt
  • zh_tw по.txt

Хант код ИСО для традиционного и Ханс для упрощенного китайца. Так что теоретически это означало бы, что мы могли бы есть

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

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

в любом случае, чтобы быть на стороне сохранения, вы можете использовать класс конфигурации для получения локали, например, в вашем классе приложений с getResources().getConfiguration().место действия.

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

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

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

обновил ответ

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

добавить string.xml файлы для традиционного и упрощенного китайского

в Android Studio щелкните правой кнопкой мыши res папка и выберите Новый > Android файл ресурсов. Введите strings на имя файла и выбрать Locale из списка.

enter image description here

прокрутите вниз, чтобы Ж. для языка. Добавьте один на CN: Китай (упрощенный) и TW: Тайвань (традиционный). Если вы используете только один, то просто выберите Любой Регион.

как я понимаю документация, поиск сначала проверит, есть ли точное соответствие для языка и региона (пример: китайский-традиционный-Тайвань). Затем он вернется к более широким проверкам. (Эта система с Android 7.0.)

1. zh-Hant-TW   // Chinese - Traditional - Taiwan
2. zh-Hant      // Chinese - Traditional
3. zh           // Chinese

Я не совсем уверен, как все это работает, поэтому, пожалуйста, прочитайте этой и этой документация.

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

преобразование между традиционным и упрощенным

если у вас уже есть один перевод в традиционном или упрощенном виде, вы можете автоматически конвертировать текст в интернете. Начните с Google Translate, чтобы конвертировать в другой (просто вставьте в свой strings.xml file). Он уже делает довольно хорошую работу. Затем сделайте это снова несколько раз, используя один из многих онлайн-конвертеров. Используйте инструмент сравнения текста или сайт (text-compare.com хорошо) сравнить результат преобразований. Это поможет вам поймать любые ошибки, которые сделал Google.

Comments

    Ничего не найдено.