【发布时间】:2022-01-20 18:28:09
【问题描述】:
我有一个已翻译成多种语言的 react 应用程序,还包含一些日期格式化功能。例如,我想允许用户在 12 小时和 24 小时之间进行更改,但是当切换到德语时,会自动将该选项更改为 24 小时(因为德国通常不使用 12 小时时间)。
我仍然希望用户能够更改此选项,并且我也不希望每次重新加载页面时将其重置为 24 小时。
我正在使用i18next 和i18next-browser-languageDetector 来检测浏览器语言,目前我有一个绑定到i18next 的事件,用于用户手动更改语言时,以便根据每个用户设置这些默认设置语言,而且效果很好:
i18n.on('languageChanged', lang => {
// Language specific options
if (lang === 'de') {
store.setTimeFormat('24h');
}
if (lang === 'en') {
store.setTimeFormat('12h');
}
});
现在,唯一的问题是在首次加载应用时,即浏览器检测器首次检测到用户的语言时,不会触发此功能。
如何确定i18next-browser-languageDetector最初检测到语言的时间,即不是从本地存储加载,而是例如lng=de的查询字符串会触发它,以便我可以设置这些设置?
【问题讨论】:
标签: reactjs i18next react-i18next i18next-browser-languagedetector