我正在使用Angular 8和NativeScript 6.4.1编写应用程序。
我正在考虑将Transloco用于我的翻译库。
我需要能够在运行时更改语言以及在运行时添加新语言。
我该如何在Transloco中做到这一点?
我在文档中看到它说您可以使用setLanguage
函数添加语言:https://ngneat.github.io/transloco/docs/language-api
我自己尝试过,但不起作用。
这是我的示例项目:https://github.com/aubrey-fowler/Transloco-Test
这里是代码段:
export class ItemsComponent implements OnInit {
constructor(private translate: TranslocoService) { }
ngOnInit(): void {
console.log(' ItemsComponent ', this.translate.getActiveLang());
console.log(' ItemsComponent 2 ', this.translate.getAvailableLangs());
}
switchLang(lang: string) {
this.translate.setActiveLang(lang);
console.log(' setActiveLang ', this.translate.getActiveLang());
}
useLanguage(language: string) {
this.translate.setActiveLang(language);
console.log(' setActiveLang ', this.translate.getActiveLang());
}
add() {
console.log(' a ');
this.translate.setTranslation({ Sitetitle : "bonjour"}, 'fr', { merge: true });
console.log(' ItemsComponent ', this.translate.getActiveLang());
console.log(' ItemsComponent 3 ', this.translate.getAvailableLangs());
}
}
您可以定义选择和可用语言,请参见下文:
<ion-select [(ngModel)]="Locale"
interface="action-sheet" (ionChange)="SetLanguage()">
<ion-select-option value="en-US">{{'language.englishUsa' | transloco}}</ion-select-option>
<ion-select-option value="pt-BR">{{'language.portugueseBrasil' | transloco}}</ion-select-option>
</ion-select>
并设置用户选择的语言。保存到存储并默认定义为语言。
public SetLanguage() {
this._Storage.set('Locale', Locale);
this._TranslocoService.setActiveLang(Locale);
}