AiI18nProviderOptions

@ai-i18n/vite 导入:

import type { AiI18nProviderOptions } from '@ai-i18n/vite';

定义

type AiI18nProviderOptions = {
  translator: Translator;
  cache?: 'reuse' | 'fresh';
  debounceMs?: number;
  batchLength?: number;
  maxConcurrency?: number;
  strict?: boolean;
  logging?: boolean | string;
};

字段

字段类型必填默认值作用
translatorTranslator执行自动翻译。
cache'reuse' | 'fresh''reuse'复用历史结果,或在本次进程中刷新一次。
debounceMsnumber100Dev 中合并连续请求的等待时间,单位为毫秒。
batchLengthnumber12_000单批序列化请求的字符长度上限,不是 token 数。
maxConcurrencynumber5同时执行的翻译批次数。
strictbooleanfalse在 flush 时抛出翻译失败或仍有 null 的错误。
loggingboolean | stringfalse关闭日志,或启用并选择日志目录。

debounceMs 必须大于或等于 0batchLengthmaxConcurrency 必须是正整数。

Vite 按消息的“缺失 locale 集合”分组,再按 batchLength 切分。一个批次失败时,其他成功 批次仍会写入。Dev 中的模型调用不阻塞首次模块响应;Build 会在结束前等待必要批次。

日志默认关闭。logging: true 使用 Vite root 下的 logs/;字符串指定目录,相对路径基于 Vite root,绝对路径保持不变。空字符串无效。开启后,Vite 会把解析后的目录传给 Translator 和批次 生命周期事件。官方 OpenAI Provider 会据此记录 REQUEST、RESPONSE、VALIDATION 等日志;省略或设为 false 时不创建或追加日志,但翻译、状态应用和持久化继续执行。自定义 Translator 可以选择支持该 诊断字段。完整说明见 LLM 日志与排障

cache: 'fresh' 只影响当前 Vite 进程发起的 Provider 调用。已有译文仍可供 Runtime 使用;本进程 生成的新结果会立即缓存,普通 HMR 不会重复请求。该选项不传给 Translator,也不影响 MCP 或 AI Agent 读写 Translation Memory。它与 translationMemory.capacity 无关:前者控制一次 Provider 刷新,后者 控制历史 Translation Memory 的容量。

示例

aiI18n({
  sourceLang: 'zh-CN',
  locales,
  provider: {
    translator,
    batchLength: 12_000,
    maxConcurrency: 5,
    strict: true,
    logging: 'diagnostics/llm',
  },
});

Provider 的完整接入流程见 AI 翻译