Skip to content

プログラムAPI

すべてのパブリック型およびクラスはパッケージルートからエクスポートされます。例:CLIを使わずにNode.jsでUI翻訳ステップを実行する場合:

ts
import { loadI18nConfigFromFile, runTranslateUI } from 'ai-i18n-tools';

// Config must have features.translateUIStrings: true (and valid targetLocales, etc.).
const config = loadI18nConfigFromFile('ai-i18n-tools.config.json');

const summary = await runTranslateUI(config, {
  cwd: process.cwd(),
  locales: config.targetLocales,
  force: false,
  dryRun: false,
  verbose: false,
});
console.log(
  `Updated ${summary.stringsUpdated} string(s); locales touched: ${summary.localesTouched.join(', ')}`
);

Node.jsから設定をスキャフォールドする (オプションの第4引数で組み込みプリセットを選択。デフォルトはopenrouter):

ts
import { writeInitConfigFile } from 'ai-i18n-tools';

writeInitConfigFile('ai-i18n-tools.config.json', 'uiMarkdown', process.cwd(), 'anthropic');

主なエクスポート(一般的に使用されるもの — 完全な公開インターフェースについてはsrc/index.tsを参照):

エクスポート説明
loadI18nConfigFromFileJSONファイルから設定を読み込み、マージし、検証します。
parseI18nConfig生の設定オブジェクトを検証します。
TranslationCacheSQLite キャッシュ - cacheDir パスでインスタンス化します。
UIStringExtractorJS/TS ソースから t("…") 文字列を抽出します。
collectHtmlI18nStrings / markHtmlContentHTML内のdata-i18n*マーカーをスキャン/挿入します(extract.htmlおよびmark-htmlコマンドをサポート)。
MarkdownExtractorMarkdown から翻訳対象のセグメントを抽出します。
JsonExtractorDocusaurusのJSONラベルファイルから抽出(UIカタログ、MDX本文ではない)。
SvgExtractorSVG ファイルから抽出します。
LlmClientアクティブな LLM プロバイダーに翻訳リクエストを行います(OpenRouterClient は非推奨のエイリアスです)。
PlaceholderHandler翻訳前後にMarkdown構文(HTMLタグ、注記、アンカー、MDXコメント/JSX/波括弧、URL、インラインコード、強調)を保護・復元します。
protectMdx / restoreMdxMDXコメント、JSXタグ、波括弧式、JSX文字列属性を保護・復元します(PlaceholderHandlerから呼び出され、直接使用するためにエクスポートもされます)。
splitTranslatableIntoBatchesセグメントを LLM 向けのバッチサイズにグループ化します。
validateTranslation変換後の構造チェック(async — 待機する必要があります)。
resolveDocumentationOutputPath翻訳済みドキュメントの出力ファイルパスを解決します。
Glossary / GlossaryMatcher翻訳用語集を読み込み、適用します。
runTranslateUIプログラムによる翻訳UIのエントリポイントです。
writeInitConfigFileスターター設定JSONを書き出す (template、オプションのproviderKeyはデフォルトでopenrouter)。
DEFAULT_INIT_MODELS_BY_PROVIDERinit -Pが使用する組み込みプリセットごとのスターターtranslationModels
PROVIDER_PRESETS組み込みプロバイダープリセットマップ(baseUrlapiKeyEnv)。

MITライセンスの下で公開されています。