【问题标题】:localeLocationPattern not find in angular dynamic location在角度动态位置中找不到 localeLocationPattern
【发布时间】:2016-07-26 14:37:34
【问题描述】:

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

【问题讨论】:

    标签: angularjs angular-translate


    【解决方案1】:

    我解决了这个问题。我的解决方案在这里。我彻底删除了

    $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
        });
    

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 1970-01-01
      • 2018-09-12
      • 2014-04-27
      • 2017-08-09
      • 1970-01-01
      • 2019-03-06
      • 2020-12-16
      • 2014-10-19
      相关资源
      最近更新 更多