2016-07-21 9 views
0

Ich benutze Winkel-Translate in meiner eckigen Anwendung. Ich habe auf Deutsch eingestellt StandardspracheWie Winkel-Translate zu verwenden, wenn die Seite neu geladen wird

$translateProvider.preferredLanguage('de') 

ich mit auch bin mit $translate.use(langKey), die die Sprachen zur Laufzeit festlegt.

Aber wenn ich die Sprache auf english zur Laufzeit und dann danach, wenn ich die Seite neu laden setzt es setzt die Sprache wieder auf German. Was ich will, ist, dass Nach einer Aktualisierung sollte die Seite in der Sprache geladen werden, die vorher festgelegt wurde.

Gibt es etwas im Winkel, das ich verwenden kann, oder ich muss meine eigene Logik schreiben, um das oben genannte zu implementieren.

Antwort

1

Sie local verwenden können, um den Wert im Cache zu halten, spritzen nur den Service $ Fenster in Ihrem Controller und verwenden diese sintax:

$window.localStorage.setItem('lan', 'en'); 

der Cache den Wert halten, selbst nachdem der Browser geschlossen wird. Wenn Sie die Seite aktualisieren, prüfen Sie, ob der Schlüssel vorhanden ist.

if($window.localStorage.getItem('lan') === 'en'){ 
    //do something 
} 

Der lokale Speicher ist auf eine bestimmte Domäne gebunden,

Sie können die Registerkarte Ressourcen der Chrom-Web-Tools die vorhandenen Schlüssel-Wert-Paare sehen, benutzen

enter image description here

mehr zu überprüfen info im doc https://developer.mozilla.org/it/docs/Web/API/Window/localStorage

2

Es gibt bereits einige Implementierungen für Stori ng der gewählten Sprache in angular-translate (über Add-On-Module). Werfen Sie einen Blick auf https://angular-translate.github.io/docs/#/guide/10_storages, die integrierte Lösungen für Cookies und lokalen Speicher bietet. Der Umgang damit ist nicht so trivial, wie es auf den ersten Blick aussieht.

Mit dem Modul ist es so einfach wie in einer JavaScript-Datei und fügen Sie den folgenden Aufruf eines Power- Management, das übersetzt Provider konfigurieren:

$translateProvider.useLocalStorage();