Implemented following stuff

- Basic Material Design
- Default Component to see anything
- theme switching between light and dark
- language change between german and english
This commit is contained in:
2025-11-06 12:11:13 +01:00
parent 74823aeeeb
commit 46e5cd1e01
22 changed files with 5727 additions and 937 deletions

View File

@@ -0,0 +1,32 @@
import { Injectable, inject, signal } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import {Constants} from '../constants/Constants';
type Lang = 'de' | 'en';
@Injectable({ providedIn: 'root' })
export class LanguageService {
private readonly translate = inject(TranslateService);
readonly lang = signal<Lang>(this.getInitial());
constructor() {
this.translate.addLangs(['de', 'en']);
this.translate.setFallbackLang('en');
this.use(this.lang());
}
use(l: Lang) {
this.lang.set(l);
this.translate.use(l);
try { localStorage.setItem(Constants.LANGUAGE_KEY, l); } catch {}
}
private getInitial(): Lang {
try {
const stored = localStorage.getItem(Constants.LANGUAGE_KEY) as Lang | null;
if (stored === 'de' || stored === 'en') return stored;
} catch {}
const browser = (navigator.language || 'en').toLowerCase();
return browser.startsWith('de') ? 'de' : 'en';
}
}