Собственно в процессе создания локализации на angular столкнулся с проблемой следующего характера:
При валидации и пользовательских действиях сервер отдает ответ через ajax
var ajaxSettings = {
type: method,
url: action,
data: $form.serialize()
};
Локализация
var app = angular.module('translation', ['ngResource','ngCookies']);
app.controller('language', ['$scope', '$cookies', 'translationService',
function ($scope, $cookies, translationService) {
//Выполняем перевод, если произошло событие смены языка
$scope.translate = function (langKey) {
translationService.getTranslation($scope, langKey);
$cookies.loc_language = langKey;
};
var $cur_lang = $cookies.loc_language;
if ($cur_lang == null) {
$scope.translate('ru');
} else {
$scope.translate($cur_lang);
}
}]);
app.service('translationService', function ($resource) {
this.getTranslation = function ($scope, language) {
var languageFilePath = 'lang/translation_' + language + '.json';
console.log(languageFilePath);
$resource(languageFilePath).get(function (data) {
$scope.translation = data;
});
};
});
Ответ от сервера приходит следующего вида {{translation.ENTER_LOGIN}} и соответственно не переводится. Я так понял что нужно копать в сторону databinding, прочитал про apply, watch, compile, пытался по разному их использовать, но старания были тщетны и роковая фраза отказывалась быть переведенной. Прошу помощи!