import React from 'react'; import { locales as defaultI18nBundles } from '@/utils/locales'; export type LanguageType = 'zh-CN' | 'en-US'; type I18nBundlesType = typeof defaultI18nBundles; /** * 所有定义文案的组件名字 */ export type I18nBundlesNames = keyof I18nBundlesType; /** 某一组的文案集合类型 */ export type ComponentI18nBundleType = I18nBundlesType[Name]['zh-CN']; /** * 用户定义的多语言文案 */ export type CustomI18nBundles = { [Name in I18nBundlesNames]?: Partial>; }; export interface LocaleContextValue { language: LanguageType; setLanguage: React.Dispatch>; i18nBundles?: CustomI18nBundles; getI18nBundle: (componentName: Name) => ComponentI18nBundleType; } export declare const LocaleContext: import("react").Context; export declare const useLanguage: () => LanguageType; export declare const useLocaleContextValue: (defaultLanguage?: LanguageType, i18nBundles?: CustomI18nBundles) => LocaleContextValue; /** * Hooks: 传入组件名字获取文案集合 * * @example * ``` ts * const i18nBundle = useI18nBundle('card'); * i18nBundle.collapse // '收起' * ``` * @param componentName 组件名称,如tablex * @returns 当前组件的文案集合 */ export declare const useI18nBundle: (componentName: Name) => any; export {};