как поменять RTL и LTR в реакции на родную - PullRequest
1 голос
/ 20 апреля 2020

Я использую i18n для локализации в собственном приложении реагировать, но у меня проблема с изменением направления приложения с кода, когда я изменяю его на арабский c он меняется на RTL, но обратно с engli sh он остается тем же

import { I18nManager } from 'react-native';
import I18n from 'react-native-i18n';
import Store from '../store/Store';
import en from './en';
import ar from './ar';
I18n.fallbacks = true`

I18n.translations = {
    en,
    ar
};

I18nManager.allowRTL(I18n.locale in I18n.translations);

I18n.getTranslation = (key) => {

    return I18n.t(key, { locale: Store.langugae });
}

export default I18n;
I18nManager.allowRTL(I18n.locale in I18n.translations);

I18n.getTranslation = (key) => {

    return I18n.t(key, { locale: Store.langugae });
}

export default I18n;

 handler_language = async (lang) => {

    try {
      Store.langugae = lang;
      if (lang === 'ar') {
        I18nManager.forceRTL(true)
      } if (lang === 'en') {
        I18nManager.forceRTL(false);
      }
      this.props.navigation.navigate('login')
    } catch (e) {
      console.log(e)
    }
  }

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

вот решение

`const toggleRTL = () => {
    I18nManager.forceRTL(!rtl);
    RNRestart.Restart();
  };`
0 голосов
/ 20 апреля 2020

Вы должны попробовать перезапустить ваше приложение при смене направления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...