Files
shahikitchen-prod/application/language/language-use-cases.ts
T

29 lines
993 B
TypeScript

import {
DEFAULT_LANGUAGE,
isLanguage,
type Language,
} from '@/domain/language/entities';
import type { LanguageRepository } from '@/domain/language/repository';
export function detectBrowserLanguage(): Language {
if (typeof navigator === 'undefined') return DEFAULT_LANGUAGE;
const browserLang = navigator.language.toLowerCase();
if (browserLang.startsWith('sv')) return 'sv';
if (browserLang.startsWith('ar')) return 'ar';
if (browserLang.startsWith('tr')) return 'tr';
if (browserLang.startsWith('hi')) return 'hi';
if (browserLang.startsWith('ur')) return 'ur';
if (browserLang.startsWith('en')) return 'en';
return DEFAULT_LANGUAGE;
}
export function resolveInitialLanguage(repository: LanguageRepository): Language {
const saved = repository.load();
if (saved && isLanguage(saved)) return saved;
return detectBrowserLanguage();
}
export function persistLanguage(repository: LanguageRepository, language: Language): void {
repository.save(language);
}