react-box-tools
Version:
Box tools react components, utils and hooks
40 lines (31 loc) • 1.29 kB
TypeScript
declare class I18n {
defaultCulture: string;
cultures: string[];
private cache;
private translationCache;
private listeners;
def<T>(resource: T, culture: string): void;
mod<T, K>(module: keyof T, resource: K, culture: string): void;
translateDef(key: string, params?: TranslationParam): string;
translateMod(mod: string, key: string, params?: TranslationParam): string;
getResourceDef<T>(): T;
getResourceMod<T, K>(mod: keyof T): K;
applyParams(text: string, params?: TranslationParam): string;
private notify;
setCulture(culture: string): void;
getCulture(): string;
subscribe(listener: () => void): () => boolean;
}
export declare const i18n: I18n;
export declare type TranslateKey<T, K extends keyof T> = T[K];
export declare type TranslationParam = string | string[];
export declare type TranslationResource = {
[key: string]: string;
};
export declare const useI18n: () => {
culture: string;
setCulture: (lang: string) => void;
};
export declare const useTranslationDef: <T>() => (key: keyof T, params?: TranslationParam) => string;
export declare const useTranslationMod: <T, K>(module: keyof T) => (key: keyof K, params?: TranslationParam) => string;
export { }