컨트롤러에서 현재 사용되는 언어를 가져 오는 방법이 $translateProvider
있습니까 (없이 )?
$translate
서비스 에서 아무것도 찾을 수 없습니다 .
컨트롤러에서 현재 사용되는 언어를 가져 오는 방법이 $translateProvider
있습니까 (없이 )?
$translate
서비스 에서 아무것도 찾을 수 없습니다 .
답변:
$translate.use()
갈 길입니다. 또한 비동기 로더가 실행될 때$translate.proposedLanguage()
현재로드되었지만 아직로드가 완료 되지 않은 언어의 언어 키를 반환하는 을 .
$translate.use()
설정되지 않았습니다. $translate.proposedLanguage()
나에게 정확한 언어를 주었다.
$translate.proposedLanguage()
app.config에서 이것을 사용할 수 있습니까? 나는 $ translateProvider 만 있고 나중에 컨트롤러가 아닌 구성 에서이 함수의 결과를 찾아야합니다. 당신은 아이디어가 있습니까? 고마워요
proposedLanguage()
angular-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
관련이 없지만 유용 할 수 있습니다. 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;
}
}
{ "LANG_CODE": "en" }
하고translate
필터를 사용하는 것 입니다. 처럼, 평소와 같이보기 :<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>