我用角度动态定位转换角度平移和定位。我尝试这个代码,但本地化没有改变。我认为问题是angular无法找到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);
});
}]);
答案 0 :(得分:0)
我解决了这个问题。我的解决方案在这里。我删除完整
$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
});