я doo переводить с угловым переводом и локализацией с угловой динамической локализацией. Я пробую этот код, но локализация не изменилась. Я думаю, что проблема в том, что угловой не может найти localeLocationPattern. Вот код
app.config(function ($translateProvider, tmhDynamicLocaleProvider) {
$translateProvider.translations('en', {
LANGUAGE: 'Language',
LOG_OUT: 'Log out',
LOG_IN: 'Log in',
});
$translateProvider.translations('hr', {
LANGUAGE: 'Jezik',
LOG_OUT: 'Odjava',
LOG_IN: 'Prijava',
BUTTON_LANG_HR: 'Hrvatski',
BUTTON_LANG_EN: 'English'
});
$translateProvider.preferredLanguage('en');
$translateProvider.useSanitizeValueStrategy('escape');
$translateProvider.usePostCompiling(true);
$translateProvider.useLocalStorage();
//i think that angular can not find thistmhDynamicLocaleProvider.localeLocationPattern('https://cdnjs.cloudflare.com/ajax/libs/angular-i18n/1.5.8/angular-locale_aa-dj.min.js');
console.log(tmhDynamicLocaleProvider);
});
в контроллере я добавляю это
app.controller('klupeController', ['$rootScope', '$scope', '$translate', 'tmhDynamicLocale', '$locale', '$http',
function ($rootScope, $scope, $translate, tmhDynamicLocale, $locale, $http) {
$locale, 'tmhDynamicLocale'
$scope.changeLanguage = function (key) {
$translate.use(key);
};
$rootScope.$on('$translateChangeSuccess', function (event, data) {
// asking angular-dynamic-locale to load and apply proper AngularJS $locale setting
tmhDynamicLocale.set(data.language);
console.log(data.language);
});
}]);
Я исправлю это. Мое решение здесь. Я полностью удаляю
$rootScope.$on('$translateChangeSuccess', function (event, data) {
// asking angular-dynamic-locale to load and apply proper AngularJS $locale setting
tmhDynamicLocale.set(data.language);
console.log(data.language);
});
И задайте путь только в tmhDynamicLocale.js. После этого установите $ cookieStore, например
tmhDynamicLocaleProvider.useStorage('$cookieStore');
И, теперь работает, но когда я переключаю язык, локализация не изменяется, мне нужно обновить страницу, чтобы увидеть изменение. Для этого я устанавливаю в своем ctrl, где функция изменения языка и локализации, функция обновления страницы, как это
$scope.changeLanguage = function (key) {
$translate.use(key);
};
$rootScope.$on('$translateChangeSuccess', function (event, data) {
// asking angular-dynamic-locale to load and apply proper AngularJS $locale setting
tmhDynamicLocale.set(data.language);
$state.go($state.current, {}, {reload: true}); //for page refresh
});