2013-10-08 6 views
4

Я читал How can I create a multilingual android application? и Do android support multiple languages?, и я знаю о создании приложения для Android с несколькими языками. Но моя проблема заключается в том, чтобы показывать тексты справа налево и слева направо для разных языков.Как я могу создать многоязычное приложение для Android для языков справа налево?

Например, в англ TextView в качестве метки должны быть на левой стороне EditText и в персидском, TextView должен быть на правой стороне EditText.

enter image description here enter image description here

Как я могу поддержать правосторонних языков и UIs в моем пользовательском интерфейсе?

Должен ли я разрабатывать различные макеты для языков справа налево? Как указать папку в макетах RTL? что-то вроде layout-rtl? Или как я могу определить язык справа налево?

Есть ли более простой способ?

+0

надеюсь, что это поможет вам http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch и замедлить это http://developer.android.com/guide/topics/resources/ localization.html –

ответ

5

Официальная поддержка была представлена ​​в Android 4.2, см. RTL Layout Support. Вы можете запросить, используется ли он через enter link description here.

Вы можете либо использовать один и тот же макет во всех случаях, либо указать конкретный макет в 'layout-ldrtl'.

В соответствии с вашим примером, если вы используете RelativeLayout, вам необходимо использовать атрибут android:layout_alignParentStart, а не android:layout_alignParentLeft, чтобы сместить ярлык слева направо автоматически.

+2

Убедитесь, что вы также добавили android: supportsRtl = "true" внутри тега приложения в манифесте. – Ashwini

0

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

<string name="english">English</string> 
<string name="english_fixed" translatable="false">English </string> 

В этом случае ссылка на R.string.english_fixed всегда будет отображать ту же строку, в то время как R.string.english будет переводить слово. Затем вы можете использовать два разных ресурса в двух разных TextViews, слева и справа.

Я понял вопрос?