ヘルプセンター

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

GitLab CI構成のai-l10nバッチコマンドを使用:

# .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

Jenkinsパイプライン構成のai-l10nバッチコマンドを使用:

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