language-observer
Version:
The LanguageObserver class provides a simple way to manage internationalization in your web application. It automates the process of applying translations and simplifies support for multiple languages.
30 lines (29 loc) • 1.01 kB
TypeScript
type TranslationDictionary = Record<string, unknown>;
type TranslationsMap = Record<string, TranslationDictionary | undefined>;
type Language = string;
type TranslationLoader = (lang: Language) => Promise<TranslationDictionary>;
interface InitOptions {
lang?: string;
}
declare global {
var translations: TranslationsMap;
}
declare class LanguageObserver {
private lang;
private observer;
constructor();
static getNestedTranslation(obj: TranslationDictionary, path: string): unknown;
private safeGetTranslation;
private checkInitialLanguage;
private detectLanguageFromParams;
private detectLanguageFromClass;
private updateBodyClass;
loadLanguage(lang: Language): void;
applyTranslations(): void;
private updateElementText;
private initializeObserver;
init(options?: InitOptions): void;
updateTranslations(): void;
loadTranslations(lang: Language, translationLoader: TranslationLoader): Promise<void>;
}
export default LanguageObserver;