@gulibs/vgrove-ui
Version:
VGrove UI component library built with HeroUI and React
59 lines • 2.21 kB
TypeScript
/**
* 国际化路由加载器集成
* 为 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