Node.js I18特定语言上的下一次初始化

Node.js I18特定语言上的下一次初始化,node.js,localization,internationalization,i18next,Node.js,Localization,Internationalization,I18next,我正在使用i18next节点对我的应用程序进行本地化 我有两种语言:en-CA和fr-CA 我正在使用它初始化应用程序: i18next.init({ saveMissing: true, sendMissingTo : 'all', ignoreRoutes: ['img/','images/', 'public/', 'css/', 'js/'], debug: true, lng: 'en-CA' }); 问题是,当我启动应用程序时,会出现以下错误

我正在使用i18next节点对我的应用程序进行本地化

我有两种语言:
en-CA
fr-CA

我正在使用它初始化应用程序:

i18next.init({
    saveMissing: true,
    sendMissingTo : 'all',
    ignoreRoutes: ['img/','images/', 'public/', 'css/', 'js/'],
    debug: true,
    lng: 'en-CA'
});
问题是,当我启动应用程序时,会出现以下错误:

currentLng set to: en-US
[ { [Error: ENOENT, open 'locales/en-US/translation.json']
    errno: 34,
    code: 'ENOENT',
    path: 'locales/en-US/translation.json' } ]

我不想要en-US,我想要en-CA。现在,我的应用程序没有显示这两种语言。如何将en CA设置为默认值

事实证明,您可以设置
回退:“en-CA”
,这样就可以了。不过有点像黑客

尝试阅读下面的“检测语言”部分

i18next在请求期间检测浏览器设置中的语言(如果没有通过任何其他methode-cookie、querystring设置)。这就是为什么语言设置为“en-US”

您可以在init上设置支持的语言: i18n.init({supportedLngs:['en-CA','fr-CA']})


但是您仍然需要设置回退设置->例如,如果有人使用语言设置“de”请求您的页面,则应显示一些回退语言。

这不是一种攻击。回退当用户使用您不支持的语言请求您的站点时,将显示该回退。