eligius
    Preparing search index...

    Interface ILanguageManager

    Manages multi-language labels with explicit, testable API

    interface ILanguageManager {
        availableLanguages: string[];
        language: string;
        destroy(): void;
        getLabelCollection(collectionId: string): ILabel[] | undefined;
        getLabelCollections(collectionIds: string[]): (ILabel[] | undefined)[];
        on<K extends "change">(
            event: K,
            handler: (...args: LanguageEvents[K]) => void,
        ): () => void;
        setLanguage(language: `${Lowercase<string>}-${Uppercase<string>}`): void;
    }

    Implemented by

    Index

    Properties

    availableLanguages: string[]

    List of available language codes, derived from unique languages in label collections

    language: string

    Current language code (e.g., 'en-US', 'nl-NL')

    Methods

    • Clean up resources

      Returns void

    • Get a label collection by ID

      Parameters

      • collectionId: string

        Label collection ID

      Returns ILabel[] | undefined

      Label array or undefined if not found

    • Get multiple label collections by IDs

      Parameters

      • collectionIds: string[]

        Array of label collection IDs

      Returns (ILabel[] | undefined)[]

      Array of label arrays (undefined for not found collections)

    • Subscribe to language manager events

      Type Parameters

      • K extends "change"

      Parameters

      Returns () => void

      Unsubscribe function

    • Change the current language

      Parameters

      • language: `${Lowercase<string>}-${Uppercase<string>}`

        New language code

      Returns void

      If language code is empty or null