多语言快速应用

我想知道在同一个版面中,如何实现同一内容的多个版本/语言的最好方法是什么?

我应该这样做吗?

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

还是有一个更聪明/更好的方法?

  • 在node.js + express中实现依赖select列表
  • 如何设置非静态文件响应的最大年龄
  • 节点js的Buffer.toString('binary')
  • 500错误:对于使用ResourceJS的Mongoose模型,对于path\“_ id \”中的值转换为ObjectId失败
  • 将POST请求数据JSON路由到视图/控制器(node.js)
  • 链接到另一个HTML文件在本地主机上工作,但不是当我上传到服务器上
  • 如何填充评论计数到一个项目列表?
  • mongoose分页
  • 我build议只保留一个模板,就像每个语言使用一个模板一样,它会很快失控,更不用说重复太多的内容(以及less量的“逻辑”)。 许多应用程序使用称为gettext的工具来执行国际化的事情。 在https://github.com/DanielBaulig/node-gettext有一个node.js库

    或者也有i18n节点 。 它似乎与express js有更多的整合。

    i18n节点是您应该使用的最简单,最好的模块。 您可以直接在Javascript代码中使用,也可以在Jade / Handlebar模板中使用Express js。

    你为什么要用i18n?

    • 根据您的设置,通过标头,cookie或查询参数从浏览器自动检测语言环境。
    • 它也带有例子。
    • 它会在en.json里自动生成一个./locales/ 。 这充当您开始构build新翻译的主文件。
    • 支持单数和复数forms
    • 支持参数: __('Hello %s', 'Marcus')返回Hallo Marcus

    我认为我们可以在lang文件夹中定义类似于en.js,fr.js的json对象,并且这个json文件包含键值对,而不是根据用户的语言设置呈现给模板,lang设置可以放到数据库中。

    我们可以将这个fr.js或其他任何东西保存到res.locals中以调用每个模板。

    这适合吗?