UNPKG

@o3r/localization

Version:

This module provides a runtime dynamic language/translation support and debug tools.

101 lines 4.43 kB
import type { ConnectContentMessage, ContextualizationDevtoolsCommonOptions, DevtoolsCommonOptions, MessageDataTypes, OtterMessageContent, RequestMessagesContentMessage } from '@o3r/core'; import { Subscription } from 'rxjs'; import type { LocalizationMetadata } from '../core'; export interface LocalizationDevtoolsServiceOptions extends DevtoolsCommonOptions, ContextualizationDevtoolsCommonOptions { metadataFilePath: string; } /** Localizations message content */ export interface LocalizationsContentMessage extends OtterMessageContent<'localizations'> { /** Localizations metadata */ localizations: LocalizationMetadata; } /** Languages message content */ export interface LanguagesContentMessage extends OtterMessageContent<'languages'> { /** Languages available */ languages: string[]; } /** Switch languages message content */ export interface SwitchLanguageContentMessage extends OtterMessageContent<'switchLanguage'> { /** Language */ language: string; } /** Display localization key message content */ export interface DisplayLocalizationKeysContentMessage extends OtterMessageContent<'displayLocalizationKeys'> { /** Toggle the display of the localization keys */ toggle?: boolean; } /** Update localization message content */ export interface UpdateLocalizationContentMessage extends OtterMessageContent<'updateLocalization'> { /** Localization key */ key: string; /** Localization value */ value: string; /** Lang */ lang?: string; } /** Reload localization Keys message content */ export interface ReloadLocalizationKeysContentMessage extends OtterMessageContent<'reloadLocalizationKeys'> { /** Lang */ lang?: string; } export interface IsTranslationDeactivationEnabledContentMessage extends OtterMessageContent<'isTranslationDeactivationEnabled'> { enabled: boolean; } export interface GetTranslationValuesContentMessage extends OtterMessageContent<'getTranslationValuesContentMessage'> { translations: { [localizationKey: string]: string; }; } type LocalizationMessageContents = LanguagesContentMessage | ReloadLocalizationKeysContentMessage | SwitchLanguageContentMessage | LocalizationsContentMessage | DisplayLocalizationKeysContentMessage | UpdateLocalizationContentMessage | IsTranslationDeactivationEnabledContentMessage | GetTranslationValuesContentMessage; /** List of possible DataTypes for Localization messages */ export type LocalizationMessageDataTypes = MessageDataTypes<LocalizationMessageContents>; /** List of all messages for Localization purpose */ export type AvailableLocalizationMessageContents = LocalizationMessageContents | ConnectContentMessage | RequestMessagesContentMessage<LocalizationMessageDataTypes>; /** * Contextualization devtools exposed for localization in CMS integration */ export interface LocalizationContextualizationDevtools { /** * Is the translation deactivation enabled */ isTranslationDeactivationEnabled(): boolean | Promise<boolean>; /** * Show localization keys * @param value value enforced by the DevTools extension */ showLocalizationKeys: (value?: boolean) => void | Promise<void>; /** * Returns the current language */ getCurrentLanguage: () => string | Promise<string>; /** * Switch the current language to the specified value * @param language new language to switch to */ switchLanguage: (language: string) => Promise<{ previous: string; requested: string; current: string; }>; /** * Setup a listener on language change * @param fn called when the language is changed in the app */ onLanguageChange: (fn: (language: string) => any) => Subscription; /** * Updates the specified localization key/values for the current language * @param keyValues key/values to update * @param language if not provided, the current language value */ updateLocalizationKeys: (keyValues: { [key: string]: string; }, language?: string) => void | Promise<void>; /** * Reload a language from the language file * @see https://github.com/ngx-translate/core/blob/master/packages/core/lib/translate.service.ts#L490 * @param language language to reload */ reloadLocalizationKeys: (language?: string) => Promise<void>; } export {}; //# sourceMappingURL=localization-devkit.interface.d.ts.map