AngularJS实现模板的本地化

时间:2013-09-16 17:22:57

标签: javascript angularjs

我想实现视图的本地化(也应该包括正文)。 我之前通过加载JSON文件而不是通过密钥迭代来完成此操作。 键是类名。比我简单地将键的值分配给 与班级相关的元素。

语言文件(JSON)

".Header-Title" :   "My Title",
".Header-Text"  :   "Lorem ipsum vehicula interdum."

代码示例

$.load("./Content/Text/main-en.json", function(data) {
   for (key in data) {
     $(key).html(data[key]);
   }
});

我喜欢这个,因为文本与html和脚本分开。想知道我能否在AngularJS中实现这个目标。我的想法是通过一个带路径的附加参数来扩展路由提供者 到JSON语言文件。加载视图后,应该调用一个函数来分配 代码示例中的值。刚开始使用AngularJS。有什么想法或帮助吗?

1 个答案:

答案 0 :(得分:4)

您可以Localization Service使用Coding SmackDown TV

1)加载服务,并包含您的i18n文件。例如,拿这个

// /i18/en/dictionary_en.js
[
    {
        "key":"_More_",
        "value":"More",
        "description":"More button"
    }
]

// In the localize service
$http({ method:"GET", url:url, cache:false }).success(localize.successCallback).error(function () {
    // the request failed set the url to the default resource file
    var url = '/i18n/en/dictionary_en.js';
    localize.language = 'en';
    // request the default resource file
    $http({ method:"GET", url:url, cache:false }).success(localize.successCallback);
});

2)在您的观看次数中使用i18过滤器或通过ng-bind

<button data-i18n="_More_">