refactor: i18n for settings module

This commit is contained in:
Rainer Killinger
2021-02-09 10:38:28 +01:00
parent abf7595c03
commit 350185b0d3
8 changed files with 23 additions and 61 deletions

View File

@@ -14,8 +14,8 @@
*/
import {ChangeDetectorRef, Component} from '@angular/core';
import {AlertController, ToastController} from '@ionic/angular';
import {LangChangeEvent, TranslateService} from '@ngx-translate/core';
import {SCLanguage, SCSettingMeta, SCThingTranslator, SCTranslations} from '@openstapps/core';
import {TranslateService} from '@ngx-translate/core';
import {SCSettingMeta} from '@openstapps/core';
import {SettingsCache, SettingsProvider} from '../settings.provider';
/**
* Settings page component
@@ -29,12 +29,6 @@ export class SettingsPageComponent {
* Order of the categories
*/
categoriesOrder: string[];
/**
* Possible languages to be used for translation
*
* limit to languages that are available in StApps Core
*/
language: keyof SCTranslations<SCLanguage>;
/**
* Meta information about settings
*/
@@ -47,10 +41,6 @@ export class SettingsPageComponent {
* Container to cache settings from provider
*/
settingsCache: SettingsCache;
/**
* Core translator
*/
translator: SCThingTranslator;
/**
*
@@ -65,13 +55,6 @@ export class SettingsPageComponent {
private readonly toastController: ToastController,
private readonly translateService: TranslateService,
private readonly changeDetectorRef: ChangeDetectorRef) {
this.language = translateService.currentLang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
translateService.onLangChange.subscribe((event: LangChangeEvent) => {
this.language = event.lang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
});
this.settingsCache = {};
}

View File

@@ -12,7 +12,7 @@
<ion-list *ngFor="let categoryKey of categoriesOrder ">
<div *ngIf="objectKeys(settingsCache).includes(categoryKey)">
<ion-item-divider>
<h5>{{ translator.translate(settingsCache[categoryKey]?.settings[objectKeys(settingsCache[categoryKey]?.settings)[0]]).categories[0] | titlecase}}</h5>
<h5>{{ 'categories[0]' | thingTranslate: settingsCache[categoryKey]?.settings[objectKeys(settingsCache[categoryKey]?.settings)[0]] | titlecase }} </h5>
</ion-item-divider>
<stapps-settings-item *ngFor="let settingKeys of objectKeys(settingsCache[categoryKey].settings)" [setting]="settingsCache[categoryKey].settings[settingKeys]"></stapps-settings-item>
</div>