2015-02-03 4 views
1

У меня есть приложение для Android, которое доступно только на английском языке. Соответственно, весь пользовательский интерфейс, который находится под моим контролем, отображается только на английском языке, независимо от того, на каком языке пользователь установил свое устройство. Проблема связана с SwitchPreference s на экране настроек моего приложения; метки «on»/«off» на самих коммутаторах локализуются, представляя пользователю интерфейс на смешанном языке.Изменить язык SwitchPreference

Смотрите скриншот на https://drive.google.com/file/d/0B5ry4aCYVaqoUkFlZW9XT2VLVFE/view?usp=sharing

Есть ли способ, чтобы переопределить локализацию системы этого элемента?

Примечания:

  1. Я не то, что не удосужился об этом сам, но приложение будет отвергнут на магазин приложений сертификации команда компании Samsung на этой основе. Поэтому мне нужно исправить это, если это возможно.

  2. Пожалуйста, не отвечайте, произнеся «локализовать приложение, чтобы не было микса». Помимо других проблем локализации (которые не входят в сферу применения здесь), я просто не могу локализовать все языки, поддерживаемые ОС Android.

+0

Возможно, вы можете просто вернуться к 'CheckBoxPreference'. Существуют также различные инструкции «force the locale» для всего приложения, которые вы найдете здесь в Stack Overflow, хотя я их не нашел. Или, вы можете разблокировать 'SwitchPreference' и использовать свой собственный' Switch', который жестко кодирует метки. – CommonsWare

ответ

1

Спасибо за предложения, Марк, но оказалось, что есть более простой способ. Я просто добавил следующие атрибуты к SwitchPreference элементов в XML, который определяет экран мои настройки:

  android:switchTextOff="OFF" 
      android:switchTextOn="ON" 

Вуаля, стрелочные метки являются не-локализованы. RTFM FTW! : ^)

Смежные вопросы