2016-07-25 46 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 
    });