@ices/react-locale
Version:
React components for locale
84 lines (83 loc) • 2.95 kB
TypeScript
import * as React from 'react';
import { MessageDefinitions } from './message';
declare const unregisterProp = "__localeChangeUnregister";
interface LocaleChangeHandler {
(arg: string): void;
[unregisterProp]?: (() => void) | null;
}
interface LocaleLoadListener {
(locale: string, fallbackLocale: string, error?: Error): void;
[unregisterProp]?: (() => void) | null;
}
export declare const debugMessageFilter: {
warning: boolean;
error: boolean;
emptyKeyError: boolean;
};
export declare function setDebugMessageFilter(filter: Partial<typeof debugMessageFilter>): void;
/**
* 获取备选区域语言代码。
*/
export declare function getFallbackLocale(): string;
/**
* 获取当前生效的区域语言代码。
*/
export declare function getLocale(): string;
/**
* 校验locale值是不是有效的。如果非有效,则抛出异常。
* @param locale 需要校验的值。
* @param isFallback 是否是fallback语言
* @param original 原来的值
*/
export declare function validateLocale(locale: any, isFallback?: boolean, original?: any): void;
/**
* 设置备选的区域语言代码。
* @param locale 待设定的区域语言代码。
*/
export declare function setFallbackLocale(locale: string): void;
/**
* 设置当前生效的区域语言。
* @param locale 待设定的区域语言代码。
*/
export declare function setLocale(locale: string): void;
/**
* 订阅全局区域语言变化事件。
* @param handler 监听处理函数。
* @return 返回取消订阅的函数。
*/
export declare function subscribe(handler: LocaleChangeHandler): (() => void) | (() => void);
/**
* 订阅语言文件加载错误事件。
* @param listener 监听处理函数。
* @return 返回取消订阅的函数。
*/
export declare function addLoadErrorListener(listener: LocaleLoadListener): (() => void) | (() => void);
/**
* 订阅语言文件开始加载事件。
* @param listener 监听处理函数。
* @return 返回取消订阅的函数。
*/
export declare function addLoadStartListener(listener: LocaleLoadListener): (() => void) | (() => void);
/**
* 订阅语言文件加载完成事件。成功或失败都会调此监听。
* @param listener 监听处理函数。
* @return 返回取消订阅的函数。
*/
export declare function addLoadFinishListener(listener: LocaleLoadListener): (() => void) | (() => void);
/**
* 语言资源加载函数。
*/
export declare type LocaleResourceLoader = (locale: string) => Promise<MessageDefinitions>;
export declare function fetchLocaleData(locale: string, fallback: string, fetch: LocaleResourceLoader): Promise<MessageDefinitions>;
/**
* 可供选用的LocaleContext。
*/
export declare const LocaleContext: React.Context<string>;
/**
* 默认的全局语言上下文组件。
* @param value
* @param props
* @constructor
*/
export declare const LocaleProvider: React.FC<React.ProviderProps<string>>;
export {};