/** * UI18N 核心包 - 浏览器专用超级最小化入口 * * 此入口仅包含浏览器兼容的核心API,严格避免任何Node.js内置模块依赖 * 专为CDN加载和浏览器环境优化,确保jsDelivr兼容性 * * 注意:为了确保CDN兼容性,此版本仅包含最核心的功能 */ export interface BrowserUI18nConfig { defaultLanguage?: string; fallbackLanguage?: string; cache?: { enabled?: boolean; type?: 'memory'; ttl?: number; maxSize?: number; }; debug?: boolean; } export interface BrowserTranslationResult { text: string; sourceLanguage: string; targetLanguage: string; source: 'builtin' | 'browser'; confidence: number; processingTime: number; } export declare class BrowserLanguageDetector { static detectSystemLanguage(): string; static normalizeLanguageCode(code: string): string; } export declare class BrowserCacheManager { private cache; private maxSize; private ttl; constructor(config?: BrowserUI18nConfig['cache']); get(key: string): any; set(key: string, value: any): void; clear(): void; size(): number; } /** * 浏览器优化的UI18n类 - 超级最小化实现 */ export declare class BrowserUI18n { private config; private cache; private currentLanguage; constructor(config?: BrowserUI18nConfig); /** * 翻译文本 */ translate(text: string, targetLanguage?: string): BrowserTranslationResult; /** * 简化的t方法 */ t(text: string, targetLanguage?: string): string; /** * 设置当前语言 */ setLanguage(language: string): void; /** * 获取当前语言 */ getCurrentLanguage(): string; /** * 自动检测并设置系统语言 */ detectAndSetSystemLanguage(): void; /** * 获取缓存统计 */ getCacheStats(): { size: number; maxSize: number; }; /** * 清理缓存 */ clearCache(): void; } /** * 创建浏览器UI18n实例的便利函数 */ export declare function createBrowserUI18n(config?: BrowserUI18nConfig): BrowserUI18n; /** * 快速设置配置接口 */ export interface QuickSetupConfig extends BrowserUI18nConfig { /** 是否自动提取文本 (默认: true) */ autoExtract?: boolean; /** 是否自动挂载语言选择器 (默认: true) */ autoMountSelector?: boolean; /** 要支持的语言列表 */ languages?: string[]; /** 初始语言(如果不是当前语言,会立即翻译) */ initialLanguage?: string; /** 提取时要忽略的选择器 */ ignoreSelectors?: string[]; /** DOM根节点 */ root?: Document | HTMLElement; /** 翻译API函数(用户自己的大模型API) */ translateApi?: (text: string, targetLang: string) => Promise; /** * API模式:单文本或批量(可选,不提供则自动检测) * - 'single': (text: string, targetLang: string, sourceLang?: string) => Promise * - 'batch': (texts: string[], sourceLang: string, targetLang: string) => Promise * @default auto-detect */ apiMode?: 'single' | 'batch'; /** * 语言选择器挂载容器 * - CSS选择器字符串: '#my-container' 或 '.language-selector' * - DOM元素对象: document.getElementById('container') * 如果未提供或容器不存在,将使用默认的fixed定位 */ selectorContainer?: string | HTMLElement; /** * UI18N云端服务API密钥 * 当用户的translateApi失败时,会自动降级到ui18n.com云端服务 * @example 'ui18n_xxxxxxxxxxxxxx' */ cloudApiKey?: string; /** * 云端服务端点(一般无需配置,使用默认值) * @default 'https://api.ui18n.com/v1/translate' */ cloudEndpoint?: string; /** * 是否启用云端服务降级(默认: true,如果提供了cloudApiKey) * 设为false则禁用云端服务,translateApi失败后直接使用原文 */ enableCloudFallback?: boolean; } /** * 快速设置函数 - 一键即用 * * 自动完成: * 1. 提取页面所有文本节点(TreeWalker API) * 2. 挂载语言选择器到DOM(如果selector-web已加载) * 3. 监听语言切换事件 * 4. 触发翻译流程 * 5. 使用localStorage缓存(7天TTL) * * @example * ```javascript * UI18n.quickSetup({ * translateApi: async (text, lang) => { * return await myTranslate(text, lang); * } * }); * ``` */ export declare function quickSetup(config?: QuickSetupConfig): Promise; /** * 检查浏览器支持情况 */ export declare function checkBrowserSupport(): { supported: boolean; features: string[]; }; /** * 获取推荐语言列表 */ export declare function getRecommendedLanguages(): string[]; export declare const VERSION = "0.1.0-rc.3"; export declare const DEFAULT_CONFIG: BrowserUI18nConfig; export declare const UI18n: typeof BrowserUI18n; export declare const createUI18n: typeof createBrowserUI18n; export { BuiltinDictionary } from '../builtin-dictionary'; export declare const LanguageDetector: typeof BrowserLanguageDetector; export declare function createDevelopmentUI18n(config?: BrowserUI18nConfig): BrowserUI18n; export declare function createLanguageSwitcher(ui18n: BrowserUI18n, containerId: string): void; export declare function createTranslationMonitor(ui18n: BrowserUI18n): { logTranslation: (text: string, result: BrowserTranslationResult) => void; getStats: () => { totalTranslations: number; cacheHits: number; }; }; export declare function detectLanguage(text: string): { language: string; confidence: number; }; export { extractTextsFromDOM, applyTranslations, RuntimeCache, batchTranslate, type ExtractedText, type AutoExtractConfig } from '../runtime-auto'; export interface RuntimeAutoConfig { cloudApiKey?: string; apiProvider?: 'openai' | 'anthropic' | 'custom'; apiEndpoint?: string; defaultLanguage?: string; autoExtract?: boolean; root?: Element | Document; ignoreSelectors?: string[]; } /** * Phase 1: 一键初始化运行时自动翻译 * * 使用方式: * ```html * * * ``` */ export declare function init(config?: RuntimeAutoConfig): Promise; //# sourceMappingURL=index.d.ts.map