我正在尝试从I18n对象输出当前设置的语言,但似乎没有办法做到这一点。
如果有类似I18n.getCurrentLang()的东西,那很好,但是没有这样的东西,而我在源代码类中找不到任何东西。
谢谢!
答案 0 :(得分:1)
它是错误或功能,库仅检查窗口导航器是否自动设置,在移动应用程序中它将取消定义
//class I18n
if (
!this._lang &&
typeof window !== 'undefined' &&
window &&
window.navigator
) {
this._lang = window.navigator.language;
} else {
}
我使用自定义函数来确定。它将返回Amplify格式化的语言环境代码。
import { Platform, NativeModules } from 'react-native'
export default function getLocale() {
let locale= 'en';
try{
locale = Platform.OS === 'ios'
? NativeModules.SettingsManager.settings.AppleLocale ||
NativeModules.SettingsManager.settings.AppleLanguages[0] //iOS 13
: NativeModules.I18nManager.localeIdentifier;
//return format en_US
locale = locale.split("_")[0];
} catch (e) {
console.error("Could not split locale. Falling back to en");
locale = 'en';
}
return locale;
}