3

我想实现视图的本地化(也应该包括正文)。我之前通过加载 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。任何想法或帮助?

4

1 回答 1

4

您可以通过编码 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_">
于 2013-09-16T17:40:57.477 回答