ヘルプセンター

AIローカリゼーションの自動化

ローカリゼーションの自動化は、アプリケーションの翻訳方法を変革します。ai-l10n npmパッケージは、AI対応の翻訳を直接開発ワークフローに取り込み、インテリジェントな自動化機能でローカリゼーションファイルをサポートします。

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-l10n GitHubアクションを使用して、AI対応翻訳をCI/CDパイプラインにシームレスに統合します:

設定ファイルを作成します:

// 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アクションのワークフローに追加します:

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 ARBファイルへの完全対応:

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でローカリゼーションワークフローを効率化する準備はできていますか?