在本机反应中检测系统语言变化
Detect system language change in react native
我正在使用 i18next 进行本地化。我可以使用 i18next changelanguage 方法手动更改。但是我需要在更改系统语言的同时手动更改语言。那么是否有任何包来检测反应本机的语言变化
使用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});
}
我正在使用 i18next 进行本地化。我可以使用 i18next changelanguage 方法手动更改。但是我需要在更改系统语言的同时手动更改语言。那么是否有任何包来检测反应本机的语言变化
使用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});
}