Node.js 多语言快速应用程序

Node.js 多语言快速应用程序,node.js,express,pug,Node.js,Express,Pug,我想知道在express中,在同一版面中实现相同内容的多个版本/语言的最佳方式是什么 我应该这么做吗 app.get("/", function(req, res) { res.render(language + "/index"); }); 或者有更聪明/更好的方法吗?我建议只保留一个模板,就好像每种语言使用一个模板一样,它很快就会失控,更不用说复制太多内容了(还有你在模板中放入的少量“逻辑”)。许多应用程序使用名为gettext的工具来实现国际化。在中有一个node.js库 或者也

我想知道在express中,在同一版面中实现相同内容的多个版本/语言的最佳方式是什么

我应该这么做吗

app.get("/", function(req, res) {
    res.render(language + "/index");
});

或者有更聪明/更好的方法吗?

我建议只保留一个模板,就好像每种语言使用一个模板一样,它很快就会失控,更不用说复制太多内容了(还有你在模板中放入的少量“逻辑”)。许多应用程序使用名为gettext的工具来实现国际化。在中有一个node.js库


或者也有。它似乎与express js有更多的集成。

我认为我们可以在lang文件夹中定义json对象,如en.js、fr.js,这个json文件包含键值对,而不是根据用户的语言设置渲染到模板中,lang设置可以放入数据库中

我们可以将这个fr.js或其他任何内容保存到res.locals中,以便调用每个模板

这是否合适?

这是您应该使用的最简单和最好的模块。您可以直接在Javascript代码中使用,也可以使用带有express js的Jade/Handlebar模板

为什么要使用i18n

  • 根据您的设置,通过标题、cookie或查询参数从浏览器自动检测区域设置
  • 它还提供了一些例子
  • 默认情况下,它会在
    /locales/
    内部自动生成
    en.json
    。这将作为主文件,供您开始构建新的翻译
  • 支持单数和复数形式
  • 对参数的支持:
    返回
    Hallo-Marcus

谢谢!我要i18n节点。:)