Я пытаюсь поддерживать RTL-локали в своем приложении, но столкнулся со следующей проблемой.Теперь я говорю «проблема», но это может даже не быть проблемой из-за моего незнакомства с языками RTL, так что вот так
Ниже представлены 3 вида текста.Обратите внимание, что следующие выходы были сделаны с принудительным включением RTL через опцию dev.
Test In English LTR
Тест на английском языке RTL Принудительный
Мне показалось странным, что он не выровнялся вправо, хотяЯ сказал android:gravity="start"
, например, как это работает с отступами, полями и т. Д., Поэтому я посмотрел на другие ответы и наткнулся на android:textDirection="locale"
.
Тест на английском языке RTL Принудительное использование языкового языкового стандарта
Теперь это правильно отражает как на LTR, так и на RTL, но затем я заметил следующее поведение с пунктуацией.Это подняло бровь, является ли это правильным, потому что я сравнивал с Google Play Store, Facebook и Whats App с принудительной RTL, и я не видел этого при просмотре абзацев с пунктуацией, что заставляет меня поверить, что я сделал что-то не так.
Полный код макета
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:text="@string/test_one"
android:textColor="@android:color/black"
android:textDirection="locale"
android:textSize="24sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="start"
android:text="@string/test_two"
android:textColor="@android:color/black"
android:textDirection="locale"
android:textSize="24sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="start"
android:text="@string/test_three"
android:textColor="@android:color/black"
android:textDirection="locale"
android:textSize="24sp" />
</LinearLayout>
Другой код
В моем файле манифеста установлено следующее
android:supportsRtl="true"
А это мои строки
<string name="test_one">Good Job. You did well!</string>
<string name="test_two">3 hours ago</string>
<string name="test_three">Select Option:</string>
Пожалуйста, прости, как наивно это может звучать, и просвети меня!Я хочу обеспечить удобную поддержку RTL!