2016-09-23 3 views
0

Ich habe ein Problem mit der Sprache im Controller zu ändern. Wenn ich eine andere Sprache wähle, ändert der Wert in Templates die korrekten Übersetzungen, aber die Übersetzungen im Controller sind immer noch gleich.
Wie kann ich dieses Problem lösen?angular translate aktualisiert die Übersetzung in der Steuerung nicht, wenn ich die Sprache ändere

Ich verwende useStaticFilesLoader.

.config(function($translateProvider) { 
    $translateProvider.useStaticFilesLoader({ 
    prefix: 'lang/', 
    suffix: '.json' 
    }); 

$translate(['safemode_title','safemode_message','server_error']).then(function (translations) { 
    $scope.safemode_title = translations.safemode_title; 
    $scope.safemode_message = translations.safemode_message; 
    $scope.serverError = translations.server_error; 
}); 

Antwort

0

Versuchen auf dem $translateChangeStart Ereignis zu hören, so dass Sie werden in der Lage sein, zu verstehen, wenn der Benutzer die Sprache ändern.

So ändern Sie Ihren Code:

$rootScope.$on('$translateChangeStart', function (event, a) { 
     $translate(['safemode_title','safemode_message','server_error']).then(function (translations) { 
      $scope.safemode_title = translations.safemode_title; 
      $scope.safemode_message = translations.safemode_message; 
      $scope.serverError = translations.server_error; 
     }); 
}); 

für ng-translate (und der Filter auch) Sie diesen Zuhörer nicht brauchen, weil sie es automatisch für Sie erledigt.

Offensichtlich, denken Sie daran, $rootScope Abhängigkeit injizieren.

0

Es funktioniert genug gut, weil beim Klicken andere Sprache als Standardsprache nicht ändert. Aber wenn ich auf Standardsprache zurücksetze, wird die Übersetzung in eine andere als die Standardsprache geändert.

Verwandte Themen