@gulibs/react-vintl
Version:
Type-safe i18n library for React with Vite plugin and automatic type inference
51 lines • 1.66 kB
TypeScript
import type { I18nKeys, I18nNamespaces, TranslationFunction, NamespacedTranslationFunction, I18nResources } from './types';
/**
* 使用翻译的 Hook(不带 namespace)
* 直接返回翻译函数
*/
export declare function useTranslation(): TranslationFunction;
/**
* 使用翻译的 Hook(带 namespace)
* 直接返回该 namespace 的翻译函数
* @param namespace - 命名空间,自动补全所有可用的 namespace
*/
export declare function useTranslation<N extends I18nNamespaces>(namespace: N): NamespacedTranslationFunction<N>;
/**
* 获取 i18n 全局状态的 Hook
* 用于获取和操作语言设置
*/
export declare function useI18n(): {
/** 当前语言 */
locale: string;
/** 支持的语言列表 */
supportedLocales: string[];
/** 切换语言 */
setLocale: (locale: string) => void;
/** 翻译资源 */
resources: I18nResources;
};
/**
* 使用特定键的翻译 Hook
* 自动使用生成的 I18nKeys 联合类型
*/
export declare function useTranslationKey(key: I18nKeys, params?: Record<string, unknown>): {
/** 翻译结果 */
translation: string;
/** 带参数的翻译函数 */
t: (newParams?: Record<string, unknown>) => string;
};
/**
* 使用语言切换的 Hook
* useI18n 的简化版本,只返回语言相关信息
*/
export declare function useLocale(): {
/** 当前语言 */
locale: string;
/** 支持的语言列表 */
supportedLocales: string[];
/** 切换语言 */
setLocale: (locale: string) => void;
/** 是否为支持的语言 */
isSupportedLocale: (locale: string) => boolean;
};
//# sourceMappingURL=hooks.d.ts.map