도움 센터

AI로 현지화 자동화하기

현지화 자동화는 애플리케이션 번역 방식을 변화시킵니다. ai-l10n npm 패키지는 AI 기반 번역을 개발 워크플로에 직접 통합하여 JSON 및 Flutter ARB 파일을 지원하며, 지능형 자동화 기능을 제공합니다.

AI-powered localization automation demonstration

AI 기반 현지화 자동화 작동 중

왜 현지화를 자동화해야 할까요?

수동 번역 관리는 시간 소모적이고 오류가 발생하기 쉽습니다. 자동화는 다음을 제공합니다:

  • AI 기반 자동화로 수동 번역 작업에서 수 시간을 절약하세요.
  • 맥락 인식 AI로 모든 번역의 일관성을 보장합니다.
  • 번역을 CI/CD 파이프라인에 직접 통합합니다.
  • 기존 번역을 유지하면서 새로운 문자열을 자동으로 감지하고 번역합니다.
  • 맥락 인식 번역 품질로 165개 이상의 언어를 지원합니다.

AI 기반 기능

ai-l10n 패키지는 고급 AI를 사용하여 생산 품질의 번역을 제공합니다:

맥락 인식 번역

AI는 문자열의 맥락을 이해하여 자리 표시자, HTML 태그 및 형식을 유지하면서 날짜와 숫자를 대상 로케일에 맞게 조정합니다. 고유명사, URL 및 기술 용어의 번역을 지능적으로 피합니다.

스마트 프로젝트 감지

프로젝트 구조(폴더 기반 또는 파일 기반)에서 대상 언어를 자동으로 감지합니다. 프로젝트에 이미 존재하는 언어를 수동으로 지정할 필요가 없습니다.

타입 안전성 및 형식 보존

JSON 데이터 유형을 보존합니다. 숫자는 숫자로, 불리언은 불리언으로, null 값은 유지됩니다. 복잡한 복수화 규칙에 대한 자동 접미사 생성을 지원하는 i18next 복수형을 지원합니다.

스마트 오류 감지 및 청크 분할

자리 표시자나 형식이 손실되면 자동으로 감지하고 재시도합니다. 큰 파일의 경우, 내용을 관리 가능한 청크로 분할하여 맥락을 유지합니다. ~16,000자를 초과하면 콘텐츠 손실이 발생하는 직접 AI 업로드에서 일반적인 문제를 방지합니다.

시작하기

설치

npm, yarn 또는 pnpm을 사용하여 ai-l10n 패키지를 설치하세요:

npm install ai-l10n

API 키 구성

무료 API 키를 받아 구성하세요:

npx ai-l10n config --api-key YOUR_API_KEY

첫 번째 번역

간단한 명령어로 현지화 파일을 번역하세요:

# Auto-detect target languages from project structure
npx ai-l10n translate path/to/en.json

# Specify target languages
npx ai-l10n translate path/to/en.json --languages es,fr,de

사용 사례

명령줄 인터페이스

옵션에 대한 완전한 제어와 함께 CLI를 사용하여 빠른 번역을 수행하세요:

npx ai-l10n translate ./locales/en.json \
  --languages es,fr,de,ja,zh-CN \
  --plural \
  --verbose

프로그래밍 방식 사용

Node.js 애플리케이션에 번역을 직접 통합하세요:

import { AiTranslator } from 'ai-l10n';

const translator = new AiTranslator();

// Basic translation
const result = await translator.translate({
  sourceFile: './locales/en.json',
  targetLanguages: ['es', 'fr', 'de'],
});

console.log(`Translated to ${result.results.length} languages`);
console.log(`Used ${result.totalCharsUsed} characters`);

CI/CD 통합

AI 기반 번역을 CI/CD 파이프라인에 원활하게 통합하세요. 우리의 ai-l10n GitHub Action:

구성 파일을 생성하세요:

// example ai-l10n.config.json
[
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["es", "fr", "de"],
    "translateOnlyNewStrings": true
  },
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["pl", "ar"],
    "generatePluralForms": true,
    "translateOnlyNewStrings": true
  }
]

GitHub Actions 워크플로에 추가하세요:

name: Auto-translate i18n files

on:
  push:
    branches:
      - main
    paths:
      - 'locales/en/**'
      - 'ai-l10n.config.json'

permissions:
  contents: write

jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: l10n-dev/ai-l10n@v1
        with:
          api-key: ${{ secrets.L10N_API_KEY }}
          config-file: 'ai-l10n.config.json'
          pull-request: false

ai-l10n 배치 명령어를 사용한 GitLab CI 구성:

# .gitlab-ci.yml
translate:
  stage: deploy
  image: node:20-alpine
  only:
    - main
  changes:
    - locales/en/**/*
    - ai-l10n.config.json
  script:
    - npm install -g ai-l10n
    - npx ai-l10n batch ai-l10n.config.json
  variables:
    L10N_API_KEY: $L10N_API_KEY

ai-l10n 배치 명령어를 사용한 Jenkins 파이프라인 구성:

// Jenkinsfile
pipeline {
  agent any

  stages {
    stage('Translate') {
      when {
        changeset "locales/en/**"
      }
      steps {
        script {
          sh 'npm install -g ai-l10n'
          withCredentials([string(
            credentialsId: 'l10n-api-key',
            variable: 'L10N_API_KEY'
          )]) {
            sh 'npx ai-l10n batch ai-l10n.config.json'
          }
        }
      }
    }
  }
}

고급 기능

증분 업데이트

기존 번역을 유지하면서 새로운 키만 번역하세요:

# Only translate new keys, preserve existing translations
npx ai-l10n translate path/to/en.json --update

배치 번역

구성 파일을 사용하여 여러 파일을 한 번에 번역하세요:

// example translate-config.json
[
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["pl", "ru", "ar"],
    "generatePluralForms": true,
    "translateOnlyNewStrings": true
  },
  {
    "sourceFile": "./locales/en/admin.json",
    "targetLanguages": ["pl", "ru", "ar", "de"]
  }
]
npx ai-l10n batch translate-config.json

i18next 복수형

복잡한 복수화 규칙이 있는 언어(예: 러시아어, 아랍어 또는 폴란드어)에 대해 올바른 접미사가 있는 모든 필요한 복수형 문자열을 자동으로 생성합니다:

npx ai-l10n translate ./locales/en.json \
  --languages ru,ar,pl \
  --plural

Flutter ARB 지원

자동 메타데이터 업데이트와 함께 Flutter 애플리케이션 리소스 번들 파일을 완벽하게 지원합니다:

npx ai-l10n translate ./lib/l10n/app_en_US.arb \
  --languages es_ES,fr_FR,de

언어 지원

l10n.dev는 다양한 숙련도 수준으로 165개 이상의 언어를 지원합니다:

  • 강력함 (12개 언어): 영어, 스페인어, 프랑스어, 독일어, 중국어, 러시아어, 포르투갈어, 이탈리아어, 일본어, 한국어, 아랍어, 힌디어
  • 높음 (53개 언어): 네덜란드어, 스웨덴어, 폴란드어, 터키어, 베트남어, 태국어 등 대부분의 유럽 및 아시아 언어
  • 보통 (100개 이상의 언어): 광범위한 세계 언어

프로젝트 구조 감지

ai-l10n은 프로젝트 구조를 자동으로 감지하고 그에 따라 번역을 생성합니다:

폴더 기반 구조

언어 폴더별로 번역을 조직하세요:

locales/
  en/
    common.json
    errors.json
  es/              # Auto-detected
    common.json
    errors.json
  fr-FR/           # Auto-detected
    common.json

파일 기반 구조

각 언어에 대해 별도의 파일을 사용하세요:

locales/
  en.json          # Source
  es.json          # Auto-detected
  fr-FR.json       # Auto-detected
  zh-Hans-CN.json  # Auto-detected

모범 사례

  • 증분 업데이트 사용: --update 플래그를 사용하여 새로운 문자열만 번역하고 기존 번역을 유지하며 문자 수를 절약하세요.
  • CI/CD와 통합: 소스 언어 파일에 대한 모든 커밋 시 번역을 자동화하여 항상 최신 번역을 유지하세요.
  • API 키를 안전하게 저장: CI/CD 환경에서 API 키에 대해 환경 변수 또는 비밀 관리 기능을 사용하세요.
  • 필터링된 콘텐츠 검토: .filtered 파일에서 콘텐츠 정책 위반으로 제외된 문자열을 확인하세요.
  • 배치 구성 사용: 여러 파일에 대해 배치 번역 구성을 사용하여 단일 명령으로 모든 번역을 관리하세요.

AI로 현지화 워크플로를 간소화할 준비가 되셨나요?