web-dev-qa-db-ja.com

角度変換で現在の言語を取得

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

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

79
jviotti

$translate.use()はゲッターおよびセッターです。

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

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

153
charlietfl

$translate.use()が道です。また、非同期ローダーが実行されると、現在ロードされている言語の言語キーを返す$translate.proposedLanguage()を使用したい場合がありますが、notロードはまだ完了しています。

38
Pascal Precht

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

したがって、以下を使用して修正しました。

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

$translate.use()はアプリの初期ロードでは機能していないようです。最後に選択した言語をストレージから取得します:$translate.storage().get( $translate.storageKey() )または単に$translate.proposedLanguage();

8
xac

$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();
   };
}])
8
Iran Reyes

translate.currentLangは、i18nで現在選択されている言語を確認するために使用されます

1
Jack

私はこれが言語を決定するより良い方法だと思います-

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

おそらく関連していませんが、役に立つかもしれません。 angular2 +では、現在の言語にアクセスする方法は

...
import { TranslateService } from '@ngx-translate/core';

export class MyComponent implements OnInit {
  constructor(private translate: TranslateService) {}

  ngOnInit() {
   translate.use('it');
   const currentLang = this.translate.currentLang;
  }
 }
0