improve: best practises
This commit is contained in:
1 parent
1ce29e47a5
commit
b598779c60
10 files changed
+76
-88
No files matched your search
@@ -1,36 +1,8 @@
|
||||
import { Injectable, computed, signal } from '@angular/core';
|
||||
|
||||
import type { LanguageCode, LanguageShellPack } from '../../languages/language.types';
|
||||
|
||||
const enShellLanguage: LanguageShellPack = {
|
||||
app: {
|
||||
selectorTitle: 'Select language',
|
||||
changeLanguage: 'Language',
|
||||
changeLanguageAriaLabel: 'Change language',
|
||||
closeSelector: 'Close language selection',
|
||||
languageEnglish: 'English',
|
||||
languageGerman: 'German',
|
||||
},
|
||||
footer: {
|
||||
noscriptMessage: 'Please enable JavaScript for the full experience.',
|
||||
imprintLink: 'Imprint',
|
||||
},
|
||||
};
|
||||
|
||||
const deShellLanguage: LanguageShellPack = {
|
||||
app: {
|
||||
selectorTitle: 'Sprache wählen',
|
||||
changeLanguage: 'Sprache',
|
||||
changeLanguageAriaLabel: 'Sprache wechseln',
|
||||
closeSelector: 'Sprachauswahl schliessen',
|
||||
languageEnglish: 'Englisch',
|
||||
languageGerman: 'Deutsch',
|
||||
},
|
||||
footer: {
|
||||
noscriptMessage: 'Bitte aktiviere JavaScript für die volle Darstellung.',
|
||||
imprintLink: 'Impressum',
|
||||
},
|
||||
};
|
||||
import { deLanguage } from '../../languages/de';
|
||||
import { enLanguage } from '../../languages/en';
|
||||
import type { LanguageCode, LanguagePack, LanguageShellPack } from '../../languages/language.types';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class LanguageService {
|
||||
@@ -40,9 +12,8 @@ export class LanguageService {
|
||||
|
||||
readonly languageCode = this.currentLanguageCode.asReadonly();
|
||||
readonly isLanguageConfirmed = this.languageConfirmed.asReadonly();
|
||||
readonly content = computed<LanguageShellPack>(() =>
|
||||
this.getShellPack(this.currentLanguageCode()),
|
||||
);
|
||||
readonly content = computed<LanguagePack>(() => this.getPack(this.currentLanguageCode()));
|
||||
readonly shellContent = computed<LanguageShellPack>(() => this.toShellPack(this.content()));
|
||||
|
||||
initializeFromStorage(): LanguageCode {
|
||||
if (typeof window === 'undefined') {
|
||||
@@ -67,6 +38,17 @@ export class LanguageService {
|
||||
}
|
||||
|
||||
getShellPack(code: LanguageCode): LanguageShellPack {
|
||||
return code === 'de' ? deShellLanguage : enShellLanguage;
|
||||
return this.toShellPack(this.getPack(code));
|
||||
}
|
||||
|
||||
getPack(code: LanguageCode): LanguagePack {
|
||||
return code === 'de' ? deLanguage : enLanguage;
|
||||
}
|
||||
|
||||
private toShellPack(pack: LanguagePack): LanguageShellPack {
|
||||
return {
|
||||
app: pack.app,
|
||||
footer: pack.footer,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user