узел JS + i18n + руль - PullRequest
       13

узел JS + i18n + руль

0 голосов
/ 13 марта 2019

Я пытаюсь создать многоязычный веб-сайт в узле JS, используя i18n.экспресс и руль.

Совместное использование кода внизу, который я пытался реализовать, используя следующий код.

https://gist.github.com/mashpie/5246334

app.js

const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const i18n = require('i18n');
const hbs = require('hbs');

const app = express();

i18n.configure({
    locales: ['en', 'ja'],
    defaultLocale :  ' ja ' ,
    cookie: 'locale',
    directory: "" + __dirname + "/locales"
});

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({extended: false}));

app.use(express.static(path.join(__dirname, 'public/static/')));
app.set('views', "" + __dirname + "/views");
app.set('view engine', 'hbs');
app.engine('hbs', hbs.__express);

app.use(cookieParser());

app.use(i18n.init);

hbs.registerHelper('__', function () {
    return i18n.__.apply(this, arguments);
});
hbs.registerHelper('__n', function () {
    return i18n.__n.apply(this, arguments);
});
const aboutRouter = require('./routes/about');

app.use('/about', aboutRouter);


    /* This section should always be in the end! */
    app.use((req, res) => {
        res.status(404).sendFile(path.resolve(__dirname, 'public', '404.html'));
});

    module.exports = app;

locales / en.json

{
  "text to test": "text to test on eng"
}

locales / ja.json

{
  "text to test": "text to test on jap"
}

about.hbs

<a href="/" class="btn btn-orange rounded mb-4">{{{__ "text to test"}}}</a>

routs / about.js

const express = require('express');
const router = express.Router();

router.get('/', function(req, res) {
    res.render('about');
});

module.exports = router;

Теперь, когда я пытаюсь запустить код.нет ошибок.файл about.hbs читается успешно.Но «текст для проверки» принимается как строка, но его значения не анализируются из файлов JSON.

Теперь мои сомнения: -

  • как следует анализировать файлы JSON?

  • Как браузер узнает, какиеJSON позвонить?как узнать параметр lang?

...