Gibt es eine Möglichkeit, die aktuell verwendete Sprache in einem Controller (ohne $translateProvider
) abzurufen?
Konnte nichts im $translate
Service finden.
Gibt es eine Möglichkeit, die aktuell verwendete Sprache in einem Controller (ohne $translateProvider
) abzurufen?
Konnte nichts im $translate
Service finden.
Antworten:
$translate.use()
ist ein Getter und Setter.
Diese Demo finden Sie in den Links der Dokumente:
$translate.use()
ist der Weg zu gehen. Wenn ein asynchroner Loader ausgeführt wird, möchten Sie möglicherweise $translate.proposedLanguage()
den Sprachschlüssel der Sprache zurückgeben, die gerade geladen, aber noch nicht vollständig geladen ist.
$translate.use()
war aber nicht festgelegt. $translate.proposedLanguage()
gab mir die richtige lang.
$translate.proposedLanguage()
in app.config zu verwenden? Ich habe nur $ translateProvider und ich muss das Ergebnis dieser Funktion IN config finden, nicht später in Controller. Haben sie eine Idee ? Vielen Dank
proposedLanguage()
Bei der Verwendung von Winkeln übersetzen-loader-static-Dateien , die ich habe bemerkt , dass $translate.proposedLanguage()
zurückgegeben , undefined
wenn die Standardsprache verwenden , während $translate.use()
immer die vorgeschlagene Sprache zurückgegeben.
Deshalb habe ich es behoben mit:
var currentLang = $translate.proposedLanguage() || $translate.use();
Der $translate
Dienst hat eine Methode namenspreferredLanguage()
, die zurückgibt, was Sie wollen. Die Rückgabe dieser Funktion ist die Zeichenfolge der Sprache wie 'en'.
Hier habe ich dir ein Beispiel geschrieben:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
$scope.getCurrentLanguage = function () {
$translate.preferredLanguage();
};
}])
Ich denke, dies ist der bessere Weg, um die Sprache zu bestimmen -
$window.navigator.language || $window.navigator.userLanguage
Vielleicht ist nicht verwandt, könnte aber nützlich sein. In angle2 + ist der Weg zum Zugriff auf die aktuelle Sprache
...
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" }
dentranslate
Filter in der Ansicht wie gewohnt, wie:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>