Existe-t-il un moyen d'obtenir la langue actuellement utilisée dans un contrôleur (sans $translateProvider
)?
Je n'ai rien trouvé dans le $translate
service.
angularjs
angular-translate
jviotti
la source
la source
{ "LANG_CODE": "en" }
et à utiliser letranslate
filtre dans le voir comme d'habitude, comme:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>
Réponses:
$translate.use()
est un getter et un setter.Voir cette démo trouvée dans les liens des documents:
http://jsfiddle.net/PascalPrecht/eUGWJ/7/
la source
$translate.use()
est la voie à suivre. De plus, lorsqu'un chargeur asynchrone est exécuté, vous pouvez utiliser$translate.proposedLanguage()
qui renvoie la clé de langue de la langue actuellement chargée mais pas encore chargée.la source
$translate.use()
pas été définie.$translate.proposedLanguage()
m'a donné la langue correcte.$translate.proposedLanguage()
dans app.config? Je n'ai que $ translateProvider et je dois trouver le résultat de cette fonction dans la configuration, pas plus tard dans le contrôleur. Avez-vous une idée ? Merci beaucoupproposedLanguage()
Lors de l'utilisation de angular-translate-loader-static-files, j'ai remarqué que
$translate.proposedLanguage()
renvoyéundefined
lors de l'utilisation de la langue par défaut tout$translate.use()
en retournant toujours la langue proposée.Par conséquent, je l'ai corrigé en utilisant:
var currentLang = $translate.proposedLanguage() || $translate.use();
la source
$translate.use()
semble ne pas fonctionner lors du chargement initial de l'application, pour obtenir la dernière langue sélectionnée à partir du stockage:$translate.storage().get( $translate.storageKey() )
ou tout simplement$translate.proposedLanguage();
la source
Le
$translate
service a une méthode appeléepreferredLanguage()
qui renvoie ce que vous voulez. Le retour de cette fonction est la chaîne de la langue, comme «en».Ici, je vous ai écrit un exemple:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){ $scope.changeLanguage = function (langKey) { $translate.use(langKey); }; $scope.getCurrentLanguage = function () { $translate.preferredLanguage(); }; }])
la source
translate.currentLang est utilisé pour vérifier la langue actuellement sélectionnée dans i18n
la source
Je pense que c'est la meilleure façon de déterminer la langue -
$window.navigator.language || $window.navigator.userLanguage
la source
Peut-être n'est pas lié mais pourrait être utile. Dans angular2 +, le moyen d'accéder à la langue courante est
... import { TranslateService } from '@ngx-translate/core'; export class MyComponent implements OnInit { constructor(private translate: TranslateService) {} ngOnInit() { translate.use('it'); const currentLang = this.translate.currentLang; } }
la source