improve: best practises

This commit is contained in:
fraujulian committed 2026-05-14 13:30:43 +02:00
1 parent 1ce29e47a5
commit b598779c60
10 files changed
+76 -88

No files matched your search

+17 -35
View File
@@ -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,
};
}
}