2013-09-16 35 views
3

我想實現視圖的本地化(也應該包括主體)。 我之前通過加載JSON文件完成此操作,而不是迭代通過鍵。 鍵是類名。比我簡單地將鍵的值分配給 元素與類。AngularJS爲模板實現本地化

語言文件(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

可以使用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_">