Android sqlite - то же значение - другой язык - PullRequest
1 голос
/ 13 января 2012

Я хотел бы получить из sqlite значение, которое будет отличаться для языка ОС (локализация).Как это сделать?

Создание таблицы следующим образом:

create table test (
_id integer primary key autoincrement,
some_value text,
some_value_en text
);

и получение соответствующего значения (some_value или some_value_en) было бы хорошим решением?

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Я не уверен, для чего вам это нужно, но вы можете использовать инфраструктуру локализации Android, чтобы получить имя столбца. Поместите «some_value» в ресурс String в values ​​\ strings.xml и переопределите его в values-en \ strings.xml с помощью «some_value_en».

ВЫБРАТЬ по названию столбца.

2 голосов
/ 13 января 2012

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

int id = getResources().getIdentifier("name_of_resource", "id", getPackageName());

Имя ресурса может быть любым, что вы получите из базы данных.Локализованный string.xml сделает все остальное.Таким образом, вы просто сохраняете тег по умолчанию в базе данных.

String localizedResource = getResources().getString(id);

Имейте в виду, что гораздо более эффективный доступ к ресурсам по Id напрямую.

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