Локализация Android: это хорошая практика, чтобы иметь только необходимые ресурсы, чтобы поместить в локализованную папку? - PullRequest
0 голосов
/ 28 декабря 2010

В моем приложении 4 языка.Однако из 5,

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

Мой вопрос: эффективная практика - помещать только нужные файлы в папки локализации, если я оставляю другие файлы в соответствующих папках и не копирую их в папки перевода, выдает ли мое приложение NullPointerException, когдамое приложение работает на другом языке?

и

Есть ли ограничения на размер на рынке Android?(Будучи также разработчиком BB, AFAIK не разрешают OTA, если размер приложения увеличивается более чем на 3 МБ) [В случае, если мне нужно скопировать файлы макета и изображения].

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

Спасибо

1 Ответ

1 голос
/ 17 октября 2011

Краткий ответ (на ваш первый вопрос): Да, это хорошая практика "помещать только нужные файлы в папки локализации".

Вы должны убедиться, что каждый используемый вами ресурс (то есть каждый R.something.something, на который вы ссылаетесь) определен в ваших каталогах res по умолчанию. Затем для других языков вы определяете только те ресурсы, которые хотите локализовать.

В качестве примера, скажем, что ваши ресурсы по умолчанию на английском языке, и вы хотите локализовать часть своего приложения для хинди и гуджарати. Вы должны иметь все свои английские строки, определенные в res/values/strings.xml, строки хинди в res/values-hi/strings.xml (только хинди, без английского!) И строки гуджарати в res/values-gu/strings.xml (только гуджарати, без английского!)

Когда приложение запускается на устройстве, каждая ссылка на ресурс (каждый R.string.some_string_key) будет проверяться, чтобы найти лучшее соответствие для локали, которую использует устройство. Таким образом, если устройство находится на языке хинди, оно извлекает строковые значения из res/values-hi/strings.xml, а если оно там не находит, оно возвращается к значению по умолчанию (английскому) в res/values/strings.xm l. Он выдаст исключение, только если не найдет ресурс в папке /res/values по умолчанию.

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