UNPKG

@gulibs/vgrove-ui

Version:

VGrove UI component library built with HeroUI and React

59 lines 2.21 kB
/** * 国际化路由加载器集成 * 为 React Router v7 提供国际化支持 */ import type { LoaderFunctionArgs } from 'react-router'; import type { I18nClient } from './i18n'; import type { PageHandle, I18nHandle, I18nRouteLoaderOptions, EnhanceRoutesI18nOptions } from './types'; /** * 创建国际化路由 loader * 用于在路由加载时预加载所需的翻译资源 */ export declare function createI18nRouteLoader(i18nClient: I18nClient, options?: I18nRouteLoaderOptions): ({ request, params }: LoaderFunctionArgs) => Promise<{ locale: string; i18nLoaded: boolean; }>; /** * 创建带国际化的 defer loader * 支持 React Router v7 的 defer 功能 */ export declare function createDeferredI18nLoader(i18nClient: I18nClient, dataLoader?: (args: LoaderFunctionArgs) => Promise<unknown>): ({ request, params }: LoaderFunctionArgs) => Promise<{ locale: string; i18n: Promise<Record<string, Record<string, unknown>>>; data: Promise<unknown>; } | { locale: string; i18n: Promise<Record<string, Record<string, unknown>>>; data?: undefined; }>; /** * 国际化路由 handle 增强 * 自动处理页面标题的国际化 */ export declare function createI18nHandle<Keys extends string = string>(baseHandle?: Partial<PageHandle<Keys>>): I18nHandle<Keys>; /** * 创建国际化路由配置 * 为现有路由配置添加国际化支持 */ export declare function enhanceRoutesWithI18n(routes: Record<string, unknown>[], i18nClient: I18nClient, options?: EnhanceRoutesI18nOptions): Record<string, unknown>[]; /** * Hook: 在组件中使用路由国际化数据 * 获取路由加载器提供的国际化数据和辅助方法 */ export declare function useRouteI18n(): { /** 当前语言 */ locale: string; /** 国际化资源是否已加载 */ isLoaded: boolean; /** 获取当前路径的语言参数 */ getLocaleFromPath: () => string | null; /** 切换语言的 URL 生成器 */ getLocalizedUrl: (newLocale: string) => string; /** 等待国际化资源加载完成 */ waitForI18n: () => Promise<void>; }; /** * 导出类型定义 */ export type { LoaderFunctionArgs }; //# sourceMappingURL=i18n-route-loader.d.ts.map