多语言快递应用

Posted

技术标签:

【中文标题】多语言快递应用【英文标题】:Multilanguage express app 【发布时间】:2012-06-07 16:02:56 【问题描述】:

我想知道在 express 中以相同布局实现相同内容的多个版本/语言的最佳方法是什么。

我应该这样做吗?

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

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

【问题讨论】:

【参考方案1】:

我建议只保留一个模板,就好像您对每种语言使用一个模板一样,它会很快失控,更不用说复制大量内容(以及您将在模板中放入的少量“逻辑”) )。许多应用程序使用名为 gettext 的工具来完成国际化工作。在 https://github.com/DanielBaulig/node-gettext 有一个 node.js 库。

另外还有i18n-node。它似乎与 express js 有更多的集成。

【讨论】:

谢谢!我将采用 i18n 节点。 :)【参考方案2】:

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

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

这样合适吗?

【讨论】:

【参考方案3】:

i18n-node 是您应该使用的最简单、最强大的模块。您可以直接在 javascript 代码中使用,也可以使用带有 express js 的 Jade/Handlebar 模板。

为什么要使用 i18n?

根据您的设置,通过标头、cookie 或查询参数从浏览器自动检测区域设置。 它还带有示例。 默认在./locales/内部自动生成en.json。这是您开始构建新翻译的主文件。 支持单数和复数形式 支持参数:__('Hello %s', 'Marcus') 返回Hallo Marcus

【讨论】:

以上是关于多语言快递应用的主要内容,如果未能解决你的问题,请参考以下文章

在WinForm应用程序中快速实现多语言的处理--开发框架模块的整合

iOS-多语言版本的开发(一)(转载)

从 .cs 部分代码访问多语言资源

iOS-多语言版本开发(转载)

Android app应用多语言切换功能实现

为 Movilizer 应用程序提供本地化/多语言支持