コントローラーで現在使用されている言語を取得する方法はありますか( $translateProvider)ますか?
$translateサービスに何も見つかりませんでした。
コントローラーで現在使用されている言語を取得する方法はありますか( $translateProvider)ますか?
$translateサービスに何も見つかりませんでした。
回答:
$translate.use()行く方法です。また、非同期ローダーが実行されるときに、$translate.proposedLanguage()現在ロードされているがまだロードが完了していない言語の言語キーを返すを使用したい場合があります。
$translate.use()が、設定されませんでした。$translate.proposedLanguage()正しい言語を教えてくれました。
                    $translate.proposedLanguage()app.configでこれを使用することは可能ですか?私は$ translateProviderしか持っておらず、後でコントローラーでではなく、構成でこの関数の結果を見つける必要があります。アイデアはありますか?
                    proposedLanguage()
                    angle-translate-loader-static-filesを使用しているとき、私はそれに気づきました $translate.proposedLanguage()undefined使用すると、デフォルトの言語を使用する返される、$translate.use()常に提案された言語返される。
したがって、次を使用して修正しました。
var currentLang = $translate.proposedLanguage() || $translate.use();
この$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();
   };
}])
これが言語を決定するためのより良い方法だと思います-
$window.navigator.language || $window.navigator.userLanguage
たぶん関係はありませんが、役に立つかもしれません。angle2 +では、現在の言語にアクセスする方法は次のとおりです。
...
import { TranslateService } from '@ngx-translate/core';
export class MyComponent implements OnInit {
  constructor(private translate: TranslateService) {}
  ngOnInit() {
   translate.use('it');
   const currentLang = this.translate.currentLang;
  }
 }
{ "LANG_CODE": "en" }、translateフィルターを使用することです。以下のように、いつものように表示します<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>