【问题标题】:MEAN Stack: How to handle internationalization in front end error messages?MEAN Stack:如何处理前端错误消息中的国际化?
【发布时间】:2014-06-27 07:16:29
【问题描述】:

我正在使用 MEAN 堆栈(mongodb、express、angular、nodejs)来开发应用程序。为了以不同的语言呈现 HTML,我使用了 i18n-2 节点模块。

但是,我有一些前端错误消息(如验证错误 - 例如无效电子邮件)。这些消息根据用户操作显示。如何将这些消息国际化?

我能想到的一种方法是在jade / html中使用隐藏元素,然后在angular / javascript中拉出相同的元素。或者,我可以在翡翠文件中传递一些 ng-init 变量,然后在运行时在角度控制器中提取适当的消息。

上述方法可以吗?或者还有其他最佳做法吗?

【问题讨论】:

    标签: node.js angularjs internationalization


    【解决方案1】:

    看看 Angular Translate 模块:

    http://angular-translate.github.io/

    【讨论】:

      【解决方案2】:

      看看 Angular 自动验证模块:

      http://jonsamwell.github.io/angular-auto-validate/

      您可以将它与 Angular Translate 模块结合使用并创建自定义错误消息解析器。

      【讨论】:

      • 感谢 Jon Samwell,这似乎是一个不错的模块,无论如何我都可以在我的项目中使用它。但是,现在我有一个新的相关问题。哪个更适合用于国际化 - Angular Translate(有点前端驱动 i18n)或用于节点的 i18n(其中 html 页面在后端 i18ed)?我认为 node 的 i18n 看起来更干净。
      • 我认为这取决于你想如何接近 i18n。在我完成的一些多租户大型项目中,资源字符串已存储在数据库表中。在构建过程中,我将这些字符串转换为每个模块的资源文件,即 auth-lang-fr.json,然后在需要时将其下载到客户端并更改模板中的文本。如果您从服务器获取模板,我可能会在服务器上进行。但是,我在构建阶段将模块模板预打包到 JS 中,以减少 http 请求并使应用程序更流畅/更快。
      猜你喜欢
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      相关资源
      最近更新 更多