2016-07-25 49 views
0

我doo翻译与角度翻译和本地化与角度动态定位。我尝试这个代码,但本地化没有改变。我认为这个问题是角度找不到localeLocationPattern。这里是代码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

我解决这个问题。我的解决方案在这里。我完全删除

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

而且,nowits工作,但是当我切换语言,本地化STIL不会改变,我需要刷新页面,看看变化。对于这个我设置在我的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 
    });