Is there a way to get the current used language in a controller (without $translateProvider)?
Couldn't find anything in the $translate service.
Is there a way to get the current used language in a controller (without $translateProvider)?
Couldn't find anything in the $translate service.
$translate.use() is a getter and setter.
See this demo found in links of docs:
 
    
     
    
    $translate.use() is the way to go. Also, when an asynchronous loader is executed, you might wanna use $translate.proposedLanguage() which returns the language key of the language that is currently loaded but not finished loaded yet.
 
    
    When using angular-translate-loader-static-files I have noticed that $translate.proposedLanguage() returned undefined when using the default language while $translate.use() always returned the proposed language.
Therefore I fixed it by using:
var currentLang = $translate.proposedLanguage() || $translate.use();
 
    
    The $translate service has a method called preferredLanguage() that return what you want. The return of this function is the string of the language, like 'en'.
Here i wrote you an example:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
   $scope.changeLanguage = function (langKey) {
      $translate.use(langKey);
   };
   $scope.getCurrentLanguage = function () {
       $translate.preferredLanguage();
   };
}])
 
    
     
    
    I think this is the better way to determine the language -
$window.navigator.language || $window.navigator.userLanguage
 
    
    Maybe is not related but could be useful. In angular2+ the way to access to the current language is
...
import { TranslateService } from '@ngx-translate/core';
export class MyComponent implements OnInit {
  constructor(private translate: TranslateService) {}
  ngOnInit() {
   translate.use('it');
   const currentLang = this.translate.currentLang;
  }
 }
 
    
    import { TranslateService } from '@ngx-translate/core';
export class MyComponent implements OnInit {
  constructor(private translate: TranslateService)
 {
  translate.setDefaultLang('en');
}
 
    
    