@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
24 lines (23 loc) • 1.59 kB
TypeScript
import React from 'react';
import { Translation, TranslationLocale, TranslationCustomLocales, InternalLocale } from './Context';
export type TranslationId = string;
export type TranslationIdAsFunction<T = TranslationCustomLocales> = (messages: T & Translation) => string;
export type TranslationArguments = Record<TranslationId, unknown>;
export type UseTranslationMessages<T = Translation> = TranslationId | Translation | TranslationCustomLocales | Record<TranslationLocale, T>;
export default function useTranslation<T = Translation>(messages?: UseTranslationMessages<T>, args?: TranslationArguments): any;
export type CombineWithExternalTranslationsArgs = {
translation: Translation;
messages?: TranslationCustomLocales;
locale?: InternalLocale;
};
export type AdditionalReturnUtils = {
formatMessage: typeof formatMessage;
renderMessage: typeof renderMessage;
};
export type CombineWithExternalTranslationsReturn = Translation & TranslationCustomLocales & AdditionalReturnUtils;
export declare function useAdditionalUtils(): {
assignUtils: (translations: CombineWithExternalTranslationsReturn) => CombineWithExternalTranslationsReturn;
};
export declare function combineWithExternalTranslations({ translation, messages, locale, }: CombineWithExternalTranslationsArgs): CombineWithExternalTranslationsReturn;
export declare function formatMessage(id: TranslationId | TranslationIdAsFunction, args?: TranslationArguments, messages?: TranslationCustomLocales): any;
export declare function renderMessage(text: string | Array<React.ReactNode>): string | React.ReactNode;