2013-09-16 6 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_"> 
Смежные вопросы