86

コントローラーで現在使用されている言語を取得する方法はありますか (なし$translateProvider)?

サービスで何も見つかりませんでした$translate

4

8 に答える 8

156

$translate.use()ゲッターとセッターです。

ドキュメントのリンクにあるこのデモを参照してください。

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

于 2013-12-07T18:48:03.770 に答える
38

angular-translate-loader-static-files を使用すると、デフォルトの言語を使用すると返され、常に提案された言語が$translate.proposedLanguage()返されることに気付きました。undefined$translate.use()

したがって、次を使用して修正しました:

var currentLang = $translate.proposedLanguage() || $translate.use();
于 2015-03-06T16:53:23.937 に答える
8

$translateサービスには、必要なものを返すというメソッドがありますpreferredLanguage()。この関数の戻り値は、「en」などの言語の文字列です。

ここで私はあなたに例を書きました:

angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
   $scope.changeLanguage = function (langKey) {
      $translate.use(langKey);
   };
   $scope.getCurrentLanguage = function () {
       $translate.preferredLanguage();
   };
}])
于 2014-02-18T13:33:07.253 に答える