Как использовать i18next с Parse Server? - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь использовать 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'.

Что здесь не так?

...