Ionic 4:使用按钮来回更改应用程序的语言

问题描述 投票:2回答:1

我需要创建一个按钮来改变我的Ionic / Angular应用程序的语言。我目前有两个按钮,一个将应用程序翻译成英语,另一个将应用程序翻译成法语。我希望它看起来好像只有一个按钮可以在法语和英语之间来回翻译,但我不知道该怎么做。

这是我到目前为止:

html:
<ion-button color="primary" slot="end" (click)="useLanguage('en')">{{ 'EN-BTN' | 
translate }}</ion-button>

<ion-button color="primary" slot="end" (click)="useLanguage('fr')">{{ 'FR-BTN' | 
translate }}</ion-button>


ts:
import { Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-language-btn',
  templateUrl: './language-btn.component.html',
  styleUrls: ['./language-btn.component.scss'],
})
export class LanguageBtnComponent implements OnInit {

  constructor(private translate: TranslateService) {
    translate.setDefaultLang('en'); }

    useLanguage(language: string) {
      this.translate.use(language);
    }
  ngOnInit() {}
}
angular ionic4 ngx-translate
1个回答
1
投票

一个简单的解决方案是在单击按钮时切换布尔值,如果您希望英语成为我们可以使用的默认值,例如isEn = true最初...

isEn = true;

useLanguage() {
  this.isEn = !this.isEn;
  isEn ? this.translate.use('en') : this.translate.use('fr');
} 

至于按钮,你可以使用:

<ion-button color="primary" slot="end" (click)="useLanguage()">
  <span *ngIf="isEn">{{ 'EN-BTN' | translate }}</span>
  <span *ngIf="!isEn">{{ 'FR-BTN' | translate }}</span>
</ion-button>
© www.soinside.com 2019 - 2024. All rights reserved.