angularjs – 前端vs后端本地化策略比较

前端之家收集整理的这篇文章主要介绍了angularjs – 前端vs后端本地化策略比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发基于Sails JS后端和Web和Mobile前端的应用程序.我对前端框架的计划是:

> Web fronend – AngularJS Bootstrap
>移动前端 – AngularJS Ionic,以及来自Apache Cordova的后端口

关于上面的简要说明,我必须在应用程序中添加本地化功能.这就是我的问题出现的地方 – 因为Sails JS和AngularJS都支持本地化,哪一个可以为我的项目提取

从理论上讲,我可以:

>完整的后端本地化 – 我将使用Sails JS功能构建,并将所有本地化资源作为json文件放到后端
>完整的前端本地化 – 我可以在前端或上添加AngularJS附加组件和本地化接口
>混合后端和前端本地化.

如果有更多实践经验的人详细讨论该主题,我会很感激,考虑应用程序架构,并对可用选项的可能优缺点给出一些启示.

我喜欢像1这样的东西.

我们正在开发一个非常庞大的Angular.js SPA应用程序,它也支持i18n.首先我们使用完整的前端本地化(如果我记得正确的this one)

但是当应用程序变得越来越大时,管理i18n文件,将它们加载到页面中变得很麻烦(你只需要加载所需的字符串,因为i18n文件很大!)等等.

此外,用户很少会改变语言,它不需要动态,快速,双向绑定或其他任何东西.如果我们重新加载整个应用程序就可以了.

所以我们想为什么?我们在前端不需要i18​​n.我们在“app”中需要i18​​n.然后,我在node.js上编写了一个构建系统,基本上它是一个预处理器,它解析我们拥有的所有* .html和* .js文件,从中提取字符串,使用i18n文件查找它们,放置本地化字符串并创建每种语言计数的文件副本.

基本上,我们创建n个应用而不是1个,所有这些都是以编程方式生成的,每个都使用不同的语言.

它工作得很好.当用户更改语言时,我们重新加载页面并包含另一个本地化文件集,并且语言被更改!

示例源html文件

<header>@message("string.to.be.localized.1"i "{{name}}")</header>

示例js文件

angular.module("app",[])
  .directive("x",function(i18n) {
    return {
      templateUrl: "@HTML/templates/a.html",link: function() { console.log(i18n("string.in.js","Umut")); }
    }
  })

编译后:

source.en.html

<header>Hello {{name}}</header>

source.tr.html

<header>Merhaba {{name}}</header>

sample.en.js

angular.module("app",function(i18n) {
    return {
      templateUrl: "/templates/a.en.html",link: function() { console.log("Hello {0}","Umut")); }
    }
  })

sample.tr.js

angular.module("app",function(i18n) {
    return {
      templateUrl: "/templates/a.tr.html",link: function() { console.log("Merhaba {0}","Umut")); }
    }
  })

猜你在找的Angularjs相关文章