UNPKG

@ui18n/angular

Version:

🅰️ Modern Angular internationalization with standalone components, signals, and dependency injection support for Angular 15+

233 lines 4.96 kB
/** * @fileoverview UI18n 增量翻译系统 * 实现版本控制和增量更新机制 * @author Claude Code * @created 2025-08-23 */ /** * 翻译条目版本信息 */ export interface TranslationVersion { /** 版本号 */ version: string; /** 内容哈希 */ hash: string; /** 翻译内容 */ content: string; /** 创建时间 */ timestamp: number; /** 翻译来源 */ source: 'manual' | 'auto' | 'import' | 'fallback'; /** 质量评分 */ quality?: number; /** 备注信息 */ notes?: string; } /** * 翻译文件状态 */ export interface TranslationFileStatus { /** 文件路径 */ filePath: string; /** 语言代码 */ language: string; /** 当前版本 */ currentVersion: string; /** 最后修改时间 */ lastModified: number; /** 条目总数 */ totalEntries: number; /** 已翻译条目数 */ translatedEntries: number; /** 待翻译条目数 */ pendingEntries: number; /** 冲突条目数 */ conflictEntries: number; /** 文件哈希 */ fileHash: string; } /** * 差异变更记录 */ export interface ChangeRecord { /** 变更ID */ id: string; /** 变更类型 */ type: 'add' | 'update' | 'delete'; /** 键名 */ key: string; /** 旧值 */ oldValue?: string; /** 新值 */ newValue?: string; /** 变更时间 */ timestamp: number; /** 语言代码 */ language: string; /** 变更来源 */ source: string; /** 是否为冲突 */ isConflict: boolean; } /** * 冲突解决策略 */ export type ConflictResolution = 'keep_local' | 'keep_remote' | 'keep_both' | 'manual'; /** * 同步配置 */ export interface IncrementalSyncConfig { /** 启用增量翻译 */ enabled: boolean; /** 自动同步间隔(秒) */ autoSyncInterval: number; /** 备份保留数量 */ backupRetention: number; /** 默认冲突解决策略 */ defaultResolution: ConflictResolution; /** 启用版本压缩 */ enableCompression: boolean; /** 工作目录 */ workingDir: string; /** 远程仓库地址 */ remoteUrl?: string; } /** * 同步状态 */ export interface SyncStatus { /** 是否正在同步 */ syncing: boolean; /** 最后同步时间 */ lastSyncTime: number; /** 待同步变更数 */ pendingChanges: number; /** 冲突数 */ conflicts: number; /** 同步进度 */ progress: number; /** 状态消息 */ message: string; } /** * 增量翻译管理器 */ export declare class IncrementalTranslationManager { private config; private fileStatuses; private versionHistory; private changeLog; private conflicts; private syncTimer?; private syncStatus; constructor(config?: Partial<IncrementalSyncConfig>); /** * 初始化增量翻译系统 */ initialize(): Promise<void>; /** * 确保工作目录存在 */ private ensureWorkingDir; /** * 加载元数据 */ private loadMetadata; /** * 保存元数据 */ private saveMetadata; /** * 扫描翻译文件 */ private scanTranslationFiles; /** * 分析翻译文件 */ private analyzeFile; /** * 检测文件变更 */ private detectChanges; /** * 比较翻译内容 */ private compareTranslations; /** * 保存版本 */ private saveVersion; /** * 清理旧版本 */ private cleanupOldVersions; /** * 手动同步 */ sync(): Promise<void>; /** * 检测冲突 */ private detectConflicts; /** * 解决冲突 */ private resolveConflicts; /** * 自动解决冲突 */ private autoResolveConflict; /** * 应用变更 */ private applyChanges; /** * 应用文件变更 */ private applyFileChanges; /** * 获取同步状态 */ getSyncStatus(): SyncStatus; /** * 获取文件状态 */ getFileStatuses(): TranslationFileStatus[]; /** * 获取冲突列表 */ getConflicts(): Map<string, ChangeRecord[]>; /** * 手动解决冲突 */ resolveConflict(conflictKey: string, resolution: ConflictResolution, selectedChangeId?: string): Promise<void>; /** * 启动自动同步 */ private startAutoSync; /** * 停止自动同步 */ stopAutoSync(): void; /** * 计算内容哈希 */ private calculateHash; /** * 生成版本号 */ private generateVersion; /** * 生成变更ID */ private generateChangeId; /** * 清理资源 */ cleanup(): Promise<void>; } /** * 默认增量翻译实例 */ export declare const defaultIncrementalManager: IncrementalTranslationManager; //# sourceMappingURL=incremental-translation.d.ts.map