2017-11-10 3 views
2

Ich versuche zu machen ist so, dass, wenn ein Benutzer ihre Sprache Präferenz auf meiner Website wählt, wird es gespeichert, so dass wenn sie die Seite aktualisieren oder zurückkommen, ihre ausgewählte Sprache wäre immer noch da.window.localStorage() um Spracheinstellungen zu setzen

ich dies in Angular tun, und hier ist mein Code:

export class AppComponent implements OnInit { 
    title: string = 'app'; 
    currentLanguage: string; 
    currentPage: string; 
    @ViewChild('bottom') bottomSection: ElementRef; 
    @ViewChild('top') topSection: ElementRef; 

    constructor(private global: GlobalProvider, private translate: TranslateService, private scrollService: ScrollToService, private elementRef: ElementRef, private route: ActivatedRoute, private router: Router) { 
    translate.setDefaultLang('en'); 
    this.changeLanguage('en'); 
    this.currentLanguage = localStorage.getItem(this.currentLanguage); 
    } 

    changeLanguage(language: string) { 
    this.translate.use(language); 
    this.currentLanguage = language; 
    localStorage.setItem(this.currentLanguage, language); 
    } 

Die Sprache auf der Seite ändern in Ordnung, aber ich kann die localstorage zum Laufen zu bringen scheinen. Ich bin ein Anfänger, also könnte die Antwort offensichtlich sein, aber kann mir jemand erklären, was ich falsch mache und wie man die Sprachvorlieben speichert, um gespeichert zu werden? Um

+0

Sind Sie einen Fehler in der Konsole zu sehen? – brk

+0

Nein, ich sehe keine Fehler – KatherineMichelle

+0

localStorage.setItem ('Sprache', Sprache); ist wahrscheinlich mehr, was Sie suchen - was Sie jetzt tun, ist im Wesentlichen changeLanguage ('en'), dann aufrufen localStorage.setItem ('en', 'en'), die keinen Sinn macht. – yusijs

Antwort

2

verwenden localStorage sollten Sie keyvalue Paar verwenden.

Das Problem mit Ihrem Code in dieser Zeile.

localStorage.setItem(this.currentLanguage, language); 

Aufgrund dieser jedes Mal eine neue Variable namens this.currentLanguage wird in localstorage gespeichert werden.

Versuchen Sie, diese zu speichern Artikel:

localStorage.setItem('selectedLanguage', language); 

Artikel zu erhalten:

localStorage.getItem('selectedLanguage'); 
+0

Ich habe das müde, aber es hat das Problem nicht behoben. Rufe ich die Funktion an der richtigen Stelle an, denkst du? – KatherineMichelle

Verwandte Themen