Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   мультиязычность на nodejs (https://javascript.ru/forum/node-js-io-js/73731-multiyazychnost-na-nodejs.html)

kaj0 10.05.2018 16:22

мультиязычность на nodejs
 
прошу совета у опытных программистов. в nodejs новичок...
есть одностраничный одноязычный сайт, который состоит из подключаемых блоков (раскиданы по папкам).

каким образом лучше организовать многоязычность? для начала два языка ссылками на сайте (напр. ru, en).
и каким образом хранить текущий язык (в php храню в сессии)?
кто на толковый мануал ткнет носом?)

kaj0 10.05.2018 16:27

или в данном контексте проще создать поддомен и залить туда сайт на другом языке?

ruslan_mart 10.05.2018 16:39

kaj0, ну вариантов множество.

Можно завести json файл со всеми метками для языков, к примеру:

lang-labels.json:
{
  "ru": {
     "title": "Главная страница",
     "menu": "Меню",
     "news": "Новости"
  },
  "en": {
     "title": "Main page",
     "menu": "Menu",
     "news" : "News"
  }
}


Брать метку языка из первой вложенности path.

const langLabels = require('./lang-labels.json');
const express = require('express');

const app = express();

app.listen(5000, () => console.log('server start!'));

app.use(express.static('public'));
app.set('view engine', 'jade');

app.get('/:lang/', (req, res) => {
	const {lang} = req.params;

	res.render('main', {
		labels: langLabels[lang]
	});
});


/view/main.jade:
Код:

doctype html
html
  head
    meta(charset="UTF-8")
    title= labels.title
  body
    aside
      h2= labels.menu
      p ...
    article
      h2= labels.news
      p ...



Часовой пояс GMT +3, время: 03:39.