Обнаружение изменения языка системы в React Native

Я использую i18next для локализации. Я могу изменить вручную, используя метод i18next changelanguage. Но мне нужно вручную изменить язык при изменении языка системы. Итак, есть ли какой-либо пакет для обнаружения изменения языка в реагировании на родной

Вы можете проверить github.com/stefalda/ReactNativeLocalization

Yogendra Girase 30.10.2018 15:33

@YogendraGirase Я уже реализовал локализацию. Теперь мне нужно событие детектора смены языка.

KIRAN K J 31.10.2018 05:58
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
1
2
4 571
1

Ответы 1

Используйте react-native-device-info

npm install --save react-native-device-info

getDeviceLocale ()

Получает языковой стандарт устройства.

const deviceLocale = DeviceInfo.getDeviceLocale();

// iOS: "en"
// Android: "en-US"
// Windows: ?

Обновлять:

Мы можем AppState, если приложение находится на переднем плане или в фоновом режиме, и уведомить вас при изменении state.

Если пользователь переместил приложение в фоновое состояние, язык был изменен, а затем снова открыть приложение.

Когда приложение переходит в состояние переднего плана, мы можем проверить язык с помощью DeviceInfo.getDeviceLocale().

Это хороший способ узнать, был ли изменен язык устройства.

Без перехода в фоновый режим пользователь не изменит язык, верно?

state = {
    appState: AppState.currentState
  }

  componentDidMount() {
    AppState.addEventListener('change', this._handleAppStateChange);
  }

  componentWillUnmount() {
    AppState.removeEventListener('change', this._handleAppStateChange);
  }

  _handleAppStateChange = (nextAppState) => {
    if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
      console.info('App has come to the foreground!')
    }
    this.setState({appState: nextAppState});
  }

Я использовал это. Но при смене языка не происходит никаких событий. DeviceInfo.getDeviceLocale () просто указывает язык системы, когда мы вызываем его вручную.

KIRAN K J 30.10.2018 11:20

Другие вопросы по теме