Адаптация текста под язык устройства (LTR, RTL) на Android

Я использую font-awesome для некоторых своих кнопок. Одна из них - кнопка «назад». На языках LTR я хочу, чтобы кнопка была стрелкой, указывающей влево, а на RTL - стрелкой, указывающей вправо.

Прямо сейчас я делаю вот что: я держу две строки в своей папке "значения".

<string name="icon_back_ltr">&#xf060;</string>
<string name="icon_back_rtl">&#xf061;</string>
<color  name="icon_back_color">#FFFFFF</color>

Затем я программно проверяю, является ли язык устройства языком RTL. Если да, то я соответствующим образом изменяю текст на кнопке.

Мой вопрос: есть ли способ лучше? Тот, который не требует программной проверки направления макета? Например, я знаю, что могу определить слово «Hello» на английском языке (используя «values»), а затем как что-то другое на иврите (используя «values-iw»). Вопрос в том, могу ли я определить определенную строку для быть текстом A на всех языках LTR, а затем текстом B на всех языках RTL?


person Cookienator    schedule 28.02.2016    source источник


Ответы (1)


Определите два ресурса driectories values-ldrtl (означает «layout-direction-right-to-left») и values-ldltr (означает «layout-direction-left-right»). Объявите в манифесте вашего приложения, что ваше приложение поддерживает зеркальное отображение RTL. В частности, добавьте android:supportsRtl="true" к элементу <application> в файле манифеста и установите для targetSdkVersion значение 17 или выше.

person Malwinder Singh    schedule 28.02.2016