UNPKG

i18n-translate-agent

Version:

An intelligent i18n translation agent powered by OpenAI, supporting automatic translation of JSON files with caching and progress tracking

146 lines (126 loc) 2.81 kB
import { MultiBar } from "cli-progress"; import OpenAI, { ClientOptions } from "openai"; import { ChatCompletionCreateParams } from "openai/resources"; export interface ILanguage { /** 语言code */ code: SupportLanguageType; /**语言名称 */ name: string; } export type SupportLanguageType = | "en" | "zh-CN" | "zh-TW" | "ja" | "ar" | "bn" | "de" | "es-ES" | "fr" | "hi" | "id" | "it" | "ko" | "ms" | "my" | "ne-NP" | "nl" | "pl" | "pt-PT" | "ru" | "tl" | "tr" | "vi" | "uk" | "ur-PK"; export type SupportLanguageMap = Partial< Record<SupportLanguageType, ILanguage> >; export interface ILogError { error: Error; } export interface ITranslateLogError extends ILogError { key: string; language: SupportLanguageType; fileName: string; } export interface ICreateJsonFileParams { language: SupportLanguageType; fileName: string; folderName: string; jsonData: IJson; } export interface IOutputLanguageFile { folderName: SupportLanguageType; fileName: string; jsonMap: IJson; newTranslations?: IJson; // 只有新翻译的内容,用于写入缓存 } export interface IRegisterLanguageCacheFile { folderName: string; fileName: string; language: SupportLanguageType; jsonMap: IJson; /** await translate file path */ sourceFilePath: string; } export interface IJson { [key: string]: string; } export interface ISingleTranslate { language: SupportLanguageType; fileName: string; translateJson: IJson; multiBar: MultiBar; callback?: () => void; } export interface ITranslateChat { key: string; value: string; language: SupportLanguageType; index: number; fileName: string; } export interface ITranslateChatResponse { key: string; value: string; index: number; error?: Error; } export interface ICwalletTranslateParams { cacheFileRootPath: string; /** await translate file root path */ fileRootPath: string; fineTune: string[]; languages: SupportLanguageType[]; outputRootPath?: string; sourceLanguage?: SupportLanguageType; openaiClientConfig?: ClientOptions; chatCompletionCreateParams?: Partial<ChatCompletionCreateParams>; } export interface ITranslate {} export interface IOpenaiConfig { model: OpenAI.Chat.ChatModel; } export interface ITestParams { key: string; question: string; } export interface IGenerateCacheParams { sourceFolderPath: string; sourceLanguage: SupportLanguageType; languages: SupportLanguageType[]; exportFolderPath: string; } export interface IDeleteSingleCacheParams { keys: string[]; cacheFolderPath: string; cacheFileName: string; /** 不传默认删除所有 */ languages?: SupportLanguageType[]; } export interface ICacheFile { fileName: string; filePath: string; data: Record<string, string>; }