programing

각도 변환으로 현재 언어 가져오기

stoneblock 2023. 3. 20. 21:23

각도 변환으로 현재 언어 가져오기

컨트롤러에 현재 사용되는 언어를 가져올 수 있는 방법이 있습니까?$translateProvider)?

에서 아무것도 찾을 수 없었습니다.$translate서비스.

$translate.use()게터이자 세터입니다.

문서 링크에 있는 다음 데모를 참조하십시오.

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

$translate.use()가는 길이에요.또한 비동기 로더가 실행될 때$translate.proposedLanguage()현재 로드되었지만 아직 로드되지 않은 언어의 언어 키를 반환합니다.

angular-translate-loader-static-files를 사용하면 다음과 같은 사실을 알 수 있습니다.$translate.proposedLanguage()반환했다undefined기본 언어를 사용하는 경우$translate.use()항상 제안된 언어를 반환했습니다.

그래서 다음 방법으로 수정했습니다.

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

$translate.use()마지막으로 선택한 언어를 저장소에서 가져오기 위해 앱의 초기 로드에 작동하지 않는 것 같습니다. $translate.storage().get( $translate.storageKey() )아니면 그냥$translate.proposedLanguage();

$translateservice에는 라고 하는 메서드가 있습니다.preferredLanguage()원하는 걸 돌려줄 수 있어요이 함수의 반환은 'en'과 같은 언어의 문자열입니다.

여기 내가 예를 하나 써줄게.

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

translate.currentLang은 i18n에서 현재 선택된 언어를 확인하기 위해 사용됩니다.

저는 이게 언어를 결정하는 더 좋은 방법이라고 생각합니다.

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

관련이 없을 수도 있지만 유용할 수도 있습니다.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;
  }
 }
import { TranslateService } from '@ngx-translate/core';

export class MyComponent implements OnInit {
  constructor(private translate: TranslateService)
 {
  translate.setDefaultLang('en');
}

언급URL : https://stackoverflow.com/questions/20444578/get-current-language-with-angular-translate