获取当前的语言与angular度翻译

有没有办法获得当前使用的语言在控制器(没有$translateProvider )?

$translate服务中找不到任何内容。

$translate.use()是一个getter和setter。

请参阅文档链接中的这个演示:

http://jsfiddle.net/PascalPrecht/eUGWJ/7/

$translate.use()是要走的路。 此外,执行asynchronous装载器时,可能要使用$translate.proposedLanguage() ,它将返回当前已加载但尚未完成加载的语言的语言键。

当使用angular-translate-loader-static-files时,我注意到$translate.proposedLanguage()在使用默认语言时返回undefined ,而$translate.use()总是返回build议的语言。

所以我使用下面的方法来解决

 var currentLang = $translate.proposedLanguage() || $translate.use(); 

$translate.use()似乎不适用于应用程序的初始加载,从存储中获取最后select的语言: $translate.storage().get( $translate.storageKey() )$translate.proposedLanguage();

$translate服务有一个名为preferredLanguage()的方法,返回你想要的。 这个函数的返回值是这个语言的string,比如'en'。

在这里我给你写了一个例子:

 angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){ $scope.changeLanguage = function (langKey) { $translate.use(langKey); }; $scope.getCurrentLanguage = function () { $translate.preferredLanguage(); }; }]) 

我认为这是确定语言的更好方法 –

 $window.navigator.language || $window.navigator.userLanguage