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에서 구성 스캐폴딩(선택적 네 번째 인수는 내장 프리셋을 선택; 기본값은 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.htmlmark-html 명령 지원).
MarkdownExtractor마크다운에서 번역 가능한 구문 추출.
JsonExtractorDocusaurus JSON 레이블 파일(UI 카탈로그, MDX 본문 아님)에서 추출합니다.
SvgExtractorSVG 파일에서 추출.
LlmClient활성 LLM 공급자에게 번역 요청을 합니다( OpenRouterClient는 더 이상 사용되지 않는 별칭).
PlaceholderHandler번역 주위의 마크다운 구문 보호/복원 (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내장 공급자 사전 설정 맵 (baseUrl, apiKeyEnv).

MIT 라이선스에 따라 배포됩니다.