Использование 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.log('App has come to the foreground!')
}
this.setState({appState: nextAppState});
}