Локализуемые активы в Android - PullRequest
3 голосов
/ 23 марта 2012

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

Мой вопрос прост: так как все res наши локализуемы, я могу легко перевести свое приложение на новые языки.А как насчет assets?Есть ли механизм автоматической локализации?Я так не думаю.

Как получить локаль системы, чтобы создать локализованный URL при загрузке HTML-файла страницы справки?Есть ли какой-нибудь вызов для получения размера / плотности дисплея, такой же, как и кодированный в мире ресурсов (т. Е. public String getDensity() возвращает "xhdpi", "ldpi" ...)?

Danke; -)

Ответы [ 4 ]

18 голосов
/ 23 марта 2012

Если вам действительно нужно проверить текущую локаль системы, один простой способ сделать это - добавить строку идентификатора в ваши файлы strings.xml.

Например, в values ​​/ strings.xml добавьте:

<string name="lang">en</string>

в values-es / strings.xml, добавьте:

<string name="lang">es</string>

в values-fr / strings.xml, добавьте:

<string name="lang">fr</string>

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

if( "es".equals( getString(R.string.lang) ) ) {

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

1 голос
/ 04 декабря 2015

Это старый вопрос, но на всякий случай, если кто-то делает это.Я не думаю, что вам нужна дополнительная языковая строка, как предложено выше:

<string name="lang">fr</string>

Просто добавьте строку URL ресурса и переведите ее:

<string name="content_location">file:///android_asset/en/index.html</string>

в значениях-fr / strings.xml, добавьте:

<string name="content_location">file:///android_asset/fr/index.html</string>

, а затем в коде получите доступ к нему как:

String URL = getResources().getString(R.string.content_location);

, и это должно отобразить URL на основе локального, так как вы определили его в конкретную локализованную строкуфайлы.

1 голос
/ 30 марта 2012

Смотрите ответ здесь , особенно обратите внимание на комментарий.

1 голос
/ 23 марта 2012

См. Ссылку на класс android.view.Display ( ссылка ) и java.util.Locale класс ( ссылка )

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