你如何在Node.js上使用i18n?

web*_*jay 9 internationalization node.js pootle

我们即将开始在Node.js中构建我们的Web应用程序,我想为i18n做好准备,所以我正在寻找构建可以翻译文本的Node.js应用程序的经验.

如果您有任何建议,我最好使用Pootle通过Git等工具.

ale*_*lex 10

您可以在应用程序中使用许多i18n模块,但如果需要,您可以创建自己的模块.

例如,创建一个文件夹/语言,在其中创建en.js,fr.js等

it.js

module.exports = {
  "name": "nome",
  "age": "eta",
  .. etc
}
Run Code Online (Sandbox Code Playgroud)

重要的是设置默认语言并在站点的某个位置创建语言选择栏.当用户在您的应用中选择其他语言(而不是英语)时,您可以执行以下操作:

app.get('/lang/:ln', function (req, res, next) {
  // remember the user's chosen language
  req.session.language = req.params.ln;
});
Run Code Online (Sandbox Code Playgroud)

然后你可以有一个语言帮助函数,如下所示:

translate = function (language, text) {
  // language array contains all the languages
  return language_array[language].text;
}
// example: translate(req.session.language, "age")
Run Code Online (Sandbox Code Playgroud)