我正在尝试从 i18next v1 迁移到 v2 (https://github.com/i18next)。 我设法移动了我的 Node-Express 代码并使其正常工作,现在我在前端尝试,这是 Jquery 脚本,其中包含从 Ajax 调用到节点服务器填充的数据。
它不起作用,我收到此错误消息 - 文件尚未移动,但它在 v1 中工作
" GET https://localhost:8800/locales/it-IT/translation.json 500 (Internal Server Error)
i18next::backendConnector: loading namespace translation for language it-IT failed failed loading locales/it-IT/translation.json"
我的Jquery代码是
i18next.use(i18nextXHRBackend).init({
compatibilityAPI: 'v1',
compatibilityJSON: 'v1',
backend: {
// path where resources get loaded from
loadPath: '/locales/{{lng}}/{{ns}}.json'
},
debug:true,lng: 'it-IT',fallbackLng : 'it' }, (err, t) => {
// and here continue with my code
我做了一些非常错误的事情,但我不明白是什么,或者发生了什么。我多次阅读文档,但仍然是黑洞。我使用兼容性来保持代码的某些部分运行,直到我修改所有内容
我的服务器是节点服务器,配置与v1相同。难道我需要一个网络服务器来提供静态文件吗?或者我应该在我的节点服务器中放置一些东西来为他们服务? 感谢您的任何提示、帮助、示例、解释
我通过从服务器代码中删除以下行解决了这个问题:
app.get('/locales/:lng/:ns', i18nextMiddleware.getResourcesHandler(i18n));