i18next 将 en-US 区域设置映射到 en 命名空间 folder/file

i18next mapping en-US locale to en namespace folder/file

抱歉,如果我没有正确地问这个问题,目前,我们的系统使用带有 i18next-http-backendi18next-browser-languagedetector 的 i18next。浏览器,当浏览器使用英语区域设置时,使用 i18next-browser-languagedetector returns en-US。然而,nodejs 应用程序是使用 i18next-http-backend 设置的,其中翻译设置为 /public/locales/en/language.json 的英语。现在的问题是,i18next 包依赖于后备语言,因为 en-US 没有映射到 en (/public/locales/en/) namespace/folder 位置。

我知道,只需重命名文件夹或将后备语言更改为 en 就足够简单了。

但是我觉得有一种方法可以映射这个或者我无法弄清楚并且在文档中找不到的替代方法所以我想知道它是否可能,当语言检测器检测到 en-美国语言环境,它将映射到 /public/locales/en/ 位置

感谢任何帮助,提前致谢!

您必须在 i18next 配置文件中添加:nonExplicitSupportedLngs: true,,例如:

i18next
    ...
    .use(LanguageDetector)
    .init({
        supportedLngs: ['en', 'es'],
        nonExplicitSupportedLngs: true, //support language variation
        ...
    });

或者,将 load 选项设置为 'languageOnly'https://www.i18next.com/overview/configuration-options#languages-namespaces-resources