Реагировать на родном арабском языке (RTL) без forceRTL - PullRequest
1 голос
/ 23 сентября 2019

В RN мое двуязычное приложение (английский - арабский) я использовал I18nManager (просмотры) и I18n (для переводов)

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

I18nManager.forceRTL(true)

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

В настоящее время этого не происходит, конвертируются только элементы перевода с использованием I18n.t('keyword'), но для выравнивания представлений по-арабски это некорректно.

Все еще ищите лучшее решение, дайте мне знать, есликто-нибудь достиг этого.

Спасибо
Сопо !!

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

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

0 голосов
/ 23 сентября 2019

Вы должны поместить этот код в верхний компонент вашего проекта

import RNRestart from "react-native-restart";

I18nManager.forceRTL(true); if (!I18nManager.isRTL) RNRestart.Restart();

...