Изменить настройки языка ( локализации) для устройства

? raychenon @ | Original: StackOverFlow

Я знаю, что это возможно, чтобы иметь несколько языков в одном приложении через RES / строки и в зависимости от региона . Вотслучай  http://stackoverflow.com/questions/2078289/android-controling-the-user-language

Теперь, как я могу изменить язык в телефоне ? Как я хотел бы сделать по Меню> Настройки> Язык и усилитель ; Клавиатура> Выбрать регион > Языки

Есть некоторые реальные код для доступа к этим настройкам ? Или я должен создать намерение для быстрого доступа к настройкам языка . Пожалуйста, пост код

Изменить: С Locale класса developer.android.com/intl/fr/reference/java/util/Locale.html

Конструктор, по крайней мере Язык (String языка ) Вход язык . Как вы можете получить текущий язык, используемый на устройстве ?

Top 5 ответ

1Jim Blackler @

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

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");            
startActivity(intent);
2raychenon @

Я нашел еще один ответ на свой ​​вопрос . Существуеткод проекта с открытым исходным кодом http://code.google.com/p/languagepickerwidget Это воссоздание ListActivity для отображения и выбрать языки.

Джим, ваше решение все гораздо проще и именно то, что мне было нужно. Этоshorcut с настройками. Сразу после опубликования Я загрузил приложение под названием " raygional " на рынке. Если бы я мог ( у меня только 6 очков ) я хотел бы сделать ваш ответ полезным.

Существует еще один способ увидеть процессы и намерения . На эмуляторе выберите Меню > Dev Tools > Settings > разработки и нажмите на Показать запущенных процессов

3caller9 @

Для расширения ответ Джима, если вы измените намерение :

intent.setClassName("com.android.settings", "com.android.settings.LocalePicker"); 

Это упадет пользователя от непосредственно в списке выбора языка и после выбораязыка это будет возврата к вашему приложению .

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

4Edu Zamora @

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

Вы можете найти точное пример для такого использования случае здесь :  http://www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

5Sergey @

Существует еще один способ, чтобы открыть настройки системы, чтобы изменить язык :

Intent i = new Intent( android.provider.Settings.ACTION_LOCALE_SETTINGS );
startActivity( i );

Это показывает, список языков, и, когда вы выбираете один - он меняет язык на устройстве.