在角度动态位置找不到localeLocationPattern

时间:2016-07-25 09:26:00

标签: angularjs angular-translate

我用角度动态定位转换角度平移和定位。我尝试这个代码,但本地化没有改变。我认为问题是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);
   });
}]);

1 个答案:

答案 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
    });