UNPKG

i18n-ai-translate

Version:

AI-powered localization CLI, Node library, and GitHub Action. Translate i18next JSON, Gettext PO, Java .properties, and iOS .strings with ChatGPT, Claude, Gemini, or local Ollama models.

54 lines (46 loc) 1.49 kB
import type { ChatRequest } from "ollama"; import type { ChatSession, StartChatParams } from "@google/generative-ai"; import type { MessageCreateParams } from "@anthropic-ai/sdk/resources"; import type OpenAI from "openai"; import type PromptMode from "./enums/prompt_mode"; export type Chat = ChatSession | OpenAI.Completion; export type ChatParams = | StartChatParams | OpenAI.ChatCompletionCreateParamsNonStreaming | ChatRequest | MessageCreateParams; export type Model = | "gemini-pro" | OpenAI.ChatCompletionCreateParamsNonStreaming["model"] | string; export type ModelArgs = { model: Model; chatParams: ChatParams; rateLimitMs: number; apiKey: string | undefined; host: string | undefined; promptMode: PromptMode; batchSize: number; batchMaxTokens: number; concurrency: number; tokensPerMinute?: number; }; export type GenerateStateCSV = { fixedTranslationMappings: { [input: string]: string }; translationToRetryAttempts: { [translation: string]: number }; inputLineToTemplatedString: { [index: number]: Array<string> }; splitInput: Array<string>; generationRetries: number; }; export type TranslationStats = { translate: TranslationStatsItem; verify: TranslationStatsItem; }; export type TranslationStatsItem = { batchStartTime: number; processedItems: number; processedTokens: number; enqueuedItems: number; totalItems: number; totalTokens: number; };