2013-04-03 4 views
2

У меня есть TextView, который отображает сообщение пользователю в зависимости от ситуации. Я могу изменить строку в зависимости от ситуации, и она отлично работает.Сменить язык строки программно

Моя проблема в том, как мне это сделать для разных языков?

Я огляделся, и большинство предложений состоит в том, чтобы использовать отдельный string.xml в зависимости от языкового стандарта. Но поскольку это только один строковый ресурс, который программным образом изменяет его содержимое, он действительно не работает.

Есть ли способ, чтобы иметь что-то вроде

if(language is blabla) 
    change the text to "this" 

или что-то в этом роде.

+0

различных охват языков, как, когда пользователь изменяет настройки языка? Или вы меняете язык только для одной строки на основе некоторого выбора пользователя в своем приложении? –

ответ

0

Вы можете проверить язык программно пользователя с помощью класса: http://developer.android.com/reference/java/util/Locale.html т.е.

Locale.getDefault().toString() 

Далее вы должны использовать путь к соответствующему string.xml Вы только изменить смелую часть:

с ценностно ru-rMU

0

Мне это удалось с помощью базы данных SQLite. У меня было 5 разных таблиц на 5 языках. В моем спискеAdapter я импортировал имя таблиц из запроса: SELECT * FROM dbname.sqlite_master WHERE type = 'table' Далее, в одном одноэлементном классе с именем OutputStrings я импортирую все используемые строки для пользовательского интерфейса. Из каждого вида деятельности Виды считывают строки из OutputStrings.

С наилучшими пожеланиями,

0

Вы можете легко изменить ваш локальный для получения требуемых местных:

Locale locale = new Locale("en"); 
    Locale.setDefault(locale); 
    Configuration mConfig = new Configuration(); 
    mConfig.locale = locale; 
    getBaseContext().getResources().updateConfiguration(mConfig, 
      getBaseContext().getResources().getDisplayMetrics()); 
Смежные вопросы