2016-11-22 19 views
0

Я немного смущен руководством here.Android: разрешение языковых ресурсов (в приложении и в Play Маркете)

До появления Android 7, похоже, устройство пытается определить конкретную локаль, например. fr_FR, и если нет такого языкового ресурса, он разбивает страну и смотрит в fr.

Исходя из этого, учитывая, что у меня нет обширной армии переводчиков для перевода на каждый локальный вариант, я вставлял переводы в родительские папки, например. fr, de и т. Д. Если пользователю не нравится поставляемый вариант, в приложении есть возможность выбрать любой другой.

для Android 7 и выше, руководство, кажется, чтобы:

магазин ресурсов в наиболее общем родительском диалекте. Например, если вы ранее сохраняли испанские ресурсы в каталоге values-es-rUS, переместите их в каталог values-b+es+419, который содержит латиноамериканский испанский язык.

Но, конечно, если ваши испанские переводы на самом деле для es_US, то это не имеет никакого смысла, чтобы рассматривать их как es_419 (потому что es_US и es_419 разные)? Почему бы просто не оставить их под es_US, потому что кажется, что для Android 7 они будут найдены в любом случае (путем перемещения, а затем вниз по дереву), даже если устройство было установлено на es_ES и es_US было единственное, что доступно?

Для небольшого разработчика, имеющего только один перевод, доступный для определенного языка (например, только es_ES), по-прежнему разумная стратегия вставить его в родительскую папку локали (например, es)? Таким образом, он должен быть доставлен для любого запрошенного варианта испанского, как до, так и после Android 7? Но это противоречит приведенному выше руководству.

А что касается переводов описаний приложений в Play Store, мне кажется, что нет никакой иерархической логики разрешения, как в Android ... там, похоже, есть плоский список языков. Поэтому скажите, что у вас есть только перевод на испанский (Испания), а затем для того, чтобы он использовался в США, Латинской Америке и Испании (на том основании, что другой вариант испанского языка лучше, чем машинный перевод английского языка) вам нужно скопировать это в испанские испанские, латиноамериканские испанские и испанские испанские слоты ... нет общего «испанского» слота?

ответ

0

Но, конечно, если ваши испанские переводы на самом деле для es_US, то не имеет смысла рассматривать их как es_419 (потому что es_US и es_419 разные)?

Это может иметь смысл, если вы используете только один перевод для обоих.

Почему бы просто не оставить их под es_US, потому что кажется, что для Android 7 они будут найдены в любом случае (путем обхода вверх, а затем вниз по дереву), даже если устройство было установлено в es_ES и es_US был единственным доступный?

Это будет найдено, но это будет немного медленнее.

Для небольшого разработчика, имеющего только один перевод, доступный для определенного языка (например, только es_ES), по-прежнему разумная стратегия вставить его в папку родительского локали (например, es)? Таким образом, он должен быть доставлен для любого запрошенного варианта испанского, как до, так и после Android 7?

Меньше чем одна тысяча устройств находится на Android до 7, поэтому нет смысла поддерживать эти устройства, если у вас нет устаревшей кодовой базы, из-за дополнительной сложности обратной совместимости.

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

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

+0

«Это было бы найдено, но было бы немного медленнее» - действительно ли это задержка? Я представляю себе, может быть, часовой цикл или два. – drmrbrewer

+1

Просто хотелось подчеркнуть, что ** 4 из 5 ** устройств - до 7 Android, а не 1 из тысячи. Возможно, вы думаете об уровне API вместо версии Android. (Источник: https://developer.android.com/about/dashboards/index.html#Platform) –

0

для приложения, используйте общую папку, если у вас нет регионального варианта: aka "es" not "es-US". Таким образом, перевод будет использоваться всеми динамиками ES. (независимо от региона)

то вы можете просто переписать несколько слов типа «цвет против цвета» для en-US vs en-GB.

для игрового магазина google: я не уверен. поскольку нет NO "es", но только "es-ES", "es-xxx". и логика кажется иной.