Files
playground-frontend/src/app/service/language.service.ts
Lobo 2d25b568f5 Add ESLint integration and Angular linting support
Configured ESLint for the project with Angular and TypeScript support. Added angular-eslint dependencies, updated angular.json to include linting, and created eslint.config.js for lint rules. Updated package.json and package-lock.json with new dev dependencies.
2026-02-01 17:04:07 +01:00

34 lines
1.0 KiB
TypeScript

import { Injectable, inject, signal } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import {LocalStoreConstants} from '../constants/LocalStoreConstants';
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.lang.set(this.getInitial());
this.use(this.lang());
}
use(l: Lang) {
this.lang.set(l);
this.translate.use(l);
try { localStorage.setItem(LocalStoreConstants.LANGUAGE_KEY, l); } catch (e) { void e; }
}
private getInitial(): Lang {
try {
const stored = localStorage.getItem(LocalStoreConstants.LANGUAGE_KEY) as Lang | null;
if (stored === 'de' || stored === 'en') return stored;
} catch (e) { void e; }
const browser = (navigator.language || 'en').toLowerCase();
return browser.startsWith('de') ? 'de' : 'en';
}
}