Javascript window.localStorage()设置语言首选项

Javascript window.localStorage()设置语言首选项,javascript,angular,local-storage,angular-local-storage,Javascript,Angular,Local Storage,Angular Local Storage,我想做的是,当用户在我的网站上选择他们的语言偏好时,它将被存储,这样,如果他们刷新页面或返回,他们选择的语言仍然会在那里 我用Angular来做这件事,下面是我的代码: export class AppComponent implements OnInit { title: string = 'app'; currentLanguage: string; currentPage: string; @ViewChild('bottom') bottomSection: Elemen

我想做的是,当用户在我的网站上选择他们的语言偏好时,它将被存储,这样,如果他们刷新页面或返回,他们选择的语言仍然会在那里

我用Angular来做这件事,下面是我的代码:

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);
  } 
页面上的语言变化很好,但我似乎无法让本地存储正常工作。我是一个初学者,所以答案可能很明显,但有人能告诉我我做错了什么,以及如何存储语言首选项吗?

要使用您应该使用

这行代码中的问题

localStorage.setItem(this.currentLanguage, language);
因此,每次名为
this.currentLanguage
的新变量都将存储在localstorage中

尝试此操作以存储项目:

localStorage.setItem('selectedLanguage', language);
要获取项目,请执行以下操作:

localStorage.getItem('selectedLanguage');

您是否在控制台中看到任何错误?不,我没有看到任何错误CalStorage.setItem('language',language);最有可能是您正在寻找的-您现在所做的基本上是调用changeLanguage('en'),然后调用localStorage.setItem('en','en'),这毫无意义。我已经厌倦了这一点,但它没有解决问题。你认为我调用函数的位置对吗?