Search code examples
angularjstranslateangular-translate

Change the value of $translateProvider.preferredLanguage('en') from controller


I was trying to change the value of preferred language on click of a button. But I can't access the translateProvider from the the controller. How to change the value of $translateProvider.preferredLanguage() from an event in controller?

.config(['$translateProvider', function ($translateProvider) {
  $translateProvider.translations('en', {
    'TITLE': 'Title in English',
  });

  $translateProvider.translations('lo', {
    'TITLE': 'Title in Local language',
  });

  $translateProvider.preferredLanguage('en');
}]);

I don't want to fetch data from JSON i am writing every response inside the config file. Thanks :)


Solution

  • Inject $translate in your controller.

    // controller
    app.controller('MainCtrl', function($scope, $translate){
        $translate.use("yourlangcode"); // load your desired locale by lang code so 'en', 'lo'
    }