Pregunta Obtenga el lenguaje actual con angular-translate


¿Hay alguna manera de obtener el idioma actual utilizado en un controlador (sin $translateProvider)?

No se pudo encontrar nada en el $translate Servicio.


74
2017-12-07 17:53


origen


Respuestas:


$translate.use() es un getter y setter.

Vea esta demostración que se encuentra en los enlaces de documentos:

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


147
2017-12-07 18:48



$translate.use() es el camino a seguir. Además, cuando se ejecuta un cargador asíncrono, es posible que desee utilizar $translate.proposedLanguage() que devuelve la clave de idioma del idioma que está actualmente cargado, pero no terminado cargado todavía


37
2018-05-26 09:43



Cuando uso angular-translate-loader-static-files noté que $translate.proposedLanguage() devuelto undefined cuando usa el idioma predeterminado mientras $translate.use() siempre devolvió el idioma propuesto.

Por lo tanto lo arreglé usando:

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

35
2018-03-06 16:53



$translate.use() parece no funcionar en la carga inicial de la aplicación, para obtener el último idioma seleccionado del almacenamiento: $translate.storage().get( $translate.storageKey() ) o solo $translate.proposedLanguage();


8
2018-04-20 20:18



los $translate el servicio tiene un método llamado preferredLanguage() eso devuelve lo que quieres El retorno de esta función es la cadena del idioma, como 'en'.

Aquí te escribí un ejemplo:

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

8
2018-02-18 13:33



Creo que esta es la mejor manera de determinar el idioma:

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

0
2017-07-02 15:10