각도 번역으로 현재 언어 얻기


86

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

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


1
어떤 신의 버림받은 이유 때문에 다소 전역 적으로 뷰에서 바로 사용해야한다면 아마도 최소한의 노력은 번역 공급자 (즉, 실제 번역 파일)에서 언어 코드를 정의 { "LANG_CODE": "en" }하고 translate필터를 사용하는 것 입니다. 처럼, 평소와 같이보기 :<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>
야리 Keinänen

$ window.navigator를 사용하지 않는 이유
Aleksandr Golovatyi

답변:


155

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

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

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


현재 브라우저 언어를 얻으려면 해당 단일 기능에만이 서비스를 사용해야합니까? 번역 할 계획이 없더라도
ses

5
이것은 나에게 현재 언어가 아니라 기본 언어를 제공했습니다. $ translate.proposedLanguage ()이 질문에 따라 컨트롤러 나에게 현재 사용되는 언어를 준
조안 - 디에고 로드리게스

41

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


2
번역이로드되기 전에 언어를 확인하려고했지만 $translate.use()설정되지 않았습니다. $translate.proposedLanguage()나에게 정확한 언어를 주었다.
ncabral 2014

3
$translate.proposedLanguage()app.config에서 이것을 사용할 수 있습니까? 나는 $ translateProvider 만 있고 나중에 컨트롤러가 아닌 구성 에서이 함수의 결과를 찾아야합니다. 당신은 아이디어가 있습니까? 고마워요
maxime1992

2
+ forproposedLanguage()
Herr Derb

38

angular-translate-loader-static-files를 사용할 때 기본 언어를 사용할 때 $translate.proposedLanguage()반환 undefined되는 것을 발견했습니다.$translate.use() 항상 제안 된 언어를 반환 .

따라서 다음을 사용하여 수정했습니다.

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

3
이것이 모든 상황에서 현재 언어를 얻을 수있는 유일한 방법입니다.
Samuli Pahaoja 2015

8

$translate.use()응용 프로그램의 초기로드에 작동하지 않을 것, 스토리지에서 마지막으로 선택한 언어를 얻을 : $translate.storage().get( $translate.storageKey() ) 하거나 $translate.proposedLanguage();


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();
   };
}])

2
이렇게하면 선택한 "현재"언어가 아닌 "선호하는"언어가 제공됩니다. 언어 사이를 전환하면 내 이해는 이와 같지 않다는 것입니다.
arcseldon

2
var currentLanguage = $ translate.use (); charlietfl
arcseldon의

1

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



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;
  }
 }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.