2016-06-06 12 views
1

Wenn ich die Sprache gettextCatalog.setCurrentLanguage(langString); einstelle funktioniert es nicht in meinem Side-Nav-Menü. Mein Seitenmenü kann in einem von zwei Zuständen sein: expanded oder collapsed, also verwende ich ng-include für das Side-Menü und ändere es, wenn ich den Status ändere.Angular-gettext aktualisiert die im Code generierten Strings nicht

Wenn ich setCurrentLanguage verwende, ändern sich die Strings im Menü nicht. Es wird erst nach dem Neuladen der Seite geändert (ich behalte die aktuelle Sprache in localStorage). Also, setCurrentLanguage könnte auf App-Start in meinem Seitenmenü angewendet werden, aber es funktioniert nicht dynamisch.

Edit:

Wahrscheinlich ist es mit dieser Tatsache verbunden, dass ich den Menüpunktes des Namen gettextCatalog.getString('somestring') erzeugen, so werden Namen mit dem richtigen Sprachen beim Start erstellt werden, aber ich kann sie nicht aktualisieren, wenn Sprachen zu ändern , weil das Ergebnis von 'gettextCatalog.getString (' somestring ') gerade in der Variablen gespeichert wird. Also keine Winkelbeobachter mehr dort.

Also, wie Strings aktualisieren, die aus Code erstellt?

Antwort

1

nicht gettextCatalog.getString() Sie verwenden möchten, verwenden gettext() statt:

$scope.myVar = gettext("Something"); 

Und in Ihrer Ansicht verwenden Sie das translate Filter:

{{ myVar | translate}} 

Dies wird korrekt aktualisiert, wenn Sie die Sprache ändern.

Weitere Informationen hier: https://angular-gettext.rocketeer.be/dev-guide/annotate-js/

Verwandte Themen