Я пытаюсь использовать i18next с сервером разбора, работающим на Heroku.
В package.json
Я добавил:
"dependencies": {
<...>
"i18next": "~12.0.x",
"i18next-node-remote-backend": "~1.0.0"
}
В каталоге cloud
, где main.js
- это Iдобавлен strings.json
(который является i18следующим многоязычным JSON-файлом, т.е. все переводы в одном файле):
{
"en": {
"translation": {
"astring": "The string in English.",
}
},
"es": {
"translation": {
"astring": "El string en enspañol.",
}
}
}
В функции облачного кода в main.js
Я добавил:
var i18n = require("i18next");
var backend = require("i18next-node-remote-backend");
Parse.Promise.as()
.then(function() {
i18n
.use(backend)
.init({
"lng": "en",
"debug": true,
"backend": {
"loadPath": __dirname + '/strings.json',
"allowMultiLoading": false
}
}, (err, t) => {
if (err) return console.log('something went wrong loading', err);
console.log("i18n: "+ t('astring'));
return Parse.Promise.as();
});
})
.then(
<...>
);
Но при вызове функции облачного кода выдается ошибка:
Error: Invalid URI "/app/cloud/strings.json"
at Request.init (/app/node_modules/request/request.js:274:31)
at new Request (/app/node_modules/request/request.js:128:8)
at request (/app/node_modules/request/index.js:53:10)
at ajax (/app/node_modules/i18next-node-remote-backend/lib/index.js:27:30)
at Backend.loadUrl (/app/node_modules/i18next-node-remote-backend/lib/index.js:91:7)
at Backend.read (/app/node_modules/i18next-node-remote-backend/lib/index.js:86:12)
at Connector.read (/app/node_modules/i18next/dist/commonjs/BackendConnector.js:186:32)
at Connector.loadOne (/app/node_modules/i18next/dist/commonjs/BackendConnector.js:243:10)
at /app/node_modules/i18next/dist/commonjs/BackendConnector.js:221:14
at Array.forEach (<anonymous>)
Ошибка также возникает с "loadPath": './strings.json'
.
Что здесь не так?