UNPKG

@ices/react-locale

Version:
85 lines (84 loc) 2.85 kB
declare type MessageDataValue = string | number | boolean | null; export declare type MessageData = { [key: string]: MessageDataValue; }; /** * 语言模块消息内容定义类型。 */ export declare type MessageDefinitions = { [locale: string]: MessageData; }; /** * 语言消息内容的值类型。 */ export declare type MessageValue = string | number; /** * 插件函数,用来实现语言内容的格式转译。 */ export declare type PluginFunction = (message: MessageValue, pluginArgs: any[], translate: PluginTranslate, key: string) => MessageValue; /** * 提供给用户使用的转译函数。 */ export interface TranslateFunction { (key: string, ...pluginArgs: any[]): string; __boundLocale?: string; __fallbackLocale?: string; __toBeInvalidTranslateFunction?: boolean; } /** * 插件使用的转译函数,可供插件获取语言模块消息内容。 */ export declare type PluginTranslate = ReturnType<typeof getPluginTranslate>; /** * 格式化定义语言消息定义。 * @param dataSet 语言消息定义内容集 */ export declare function normalizeDefinitions(dataSet: any): MessageDefinitions; /** * 获取插件转换函数。 * @param locale 当前使用的语言 * @param fallback 备选语言 */ declare function getPluginTranslate(locale: string, fallback?: string): (key: string, definitions: MessageDefinitions, options?: { plugins?: PluginFunction | PluginFunction[] | null; pluginArgs?: any; fallback?: string; } | string | null) => string; /** * 获取区域化的内容。 * @param key * @param pluginArgs * @param context * @param silent */ export declare function getLocaleMessage(key: string, pluginArgs: any[], context: ReturnType<typeof getTranslateContext>, silent?: boolean): string | never; /** * 获取转译函数需要的参数上下文对象。 * @param data 传入的数据。 * @param context 传入的参数上下文。 */ declare function getTranslateContext(data: MessageDefinitions, context: { locale: string; fallback?: string; plugins?: PluginFunction | PluginFunction[] | null; }): { locale: string; fallback: string; dataList: { locale: string; data: MessageData; }[]; plugins: PluginFunction[]; }; /** * 绑定语言定义,并根据提供的上下文获取转译函数。 * @param data 需要绑定的语言定义数据。 * @param context 需要绑定的上下文对象。 * @param fallbackTranslate 备用的translate,在加载数据时,避免出现闪白,先用之前的translate处理文本。 */ export declare function withDefinitions(data: MessageDefinitions | null, context: { locale: string; fallback?: string; plugins?: PluginFunction | PluginFunction[] | null; }, fallbackTranslate?: TranslateFunction | null): TranslateFunction; export {};