Эффективное переопределение ресурса Android для региональных пользователей - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть приложение, изначально написанное на британском английском, поэтому все строки в res/values/strings.xml написаны на британском английском.

Я хотел бы предоставить "перевод" на американский английский.По большей части английский и американский языки одинаковы, поэтому в файле перевода для США я хочу указать только те несколько строковых изменений, на которые это влияет (около 10 из 120).

Я попытался создать *Файл 1006 * (это имя дано Android Studio), в который я добавил только те 10 строк, которые отличаются.Но Android Studio выдает мне ошибки в моем основном strings.xml для всех оставшихся строк: "XXX" is not translated in "en" (English).

Итак, как я могу эффективно предоставлять переводы на американский английский - т.е. указывать только 10 строк, без необходимостидублировать все остальные?Дублирование всегда плохо для обслуживания кода!

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете использовать настройки translatable="false" для пометки строковых ресурсов, которые не должны переводиться.Примерно так:

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

В приведенном выше примере имя приложения не нужно переводить в другие локали.Таким образом, в файле strings.xml по умолчанию вы можете предоставить британскую версию и пометить translatable="false", чтобы все ресурсы, которые вы хотели бы сохранить в американской версии, были одинаковыми.В res/values-en-rUS/strings.xml вам нужно будет добавлять только те сообщения, которые вам нужно хранить на американском английском языке.

Обратите внимание, что если вы планируете использовать другие языки / локали, этот метод может оказаться неподходящим, посколькутаким образом вы указываете, что ресурсы translatable="false" одинаковы для всех языков.

Вы можете проверить Настроить непереводимый раздел строк, если вам нужно больше подробностей.

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