ホームサンドボックスショーケースアプリ文書ブログ
    • English英語
      EN
    • русскийロシア語
      RU
    • 日本語日本語
      JA
    • françaisフランス語
      FR
    • 한국어韓国語
      KO
    • 中文中国語
      ZH
    • españolスペイン語
      ES
    • Deutschドイツ語
      DE
    • العربيةアラビア語
      AR
    • italianoイタリア語
      IT
    • British Englishイギリス英語
      EN-GB
    • portuguêsポルトガル語
      PT
    • हिन्दीヒンディー語
      HI
    • Türkçeトルコ語
      TR
    • polskiポーランド語
      PL
    • Indonesiaインドネシア語
      ID
    • Tiếng Việtベトナム語
      VI
    • українськаウクライナ語
      UK
    /
    フレームワークでドキュメントをフィルター
    Alt+←
    なぜIntlayer?
    始める
    コンセプト
    • Intlayerの仕組み
    • 設定
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • ビジュアルエディター
    • CMS
    • CI/CD統合
    • 翻訳複数形列挙条件性別挿入ファイルネスティングMarkdownHTML関数取得
    • ロケールごとのファイル
    • コンパイラー
    • 自動入力
    • テスト
    • バンドル最適化
    環境
    • Next.js 14とApp RouterNext.js 15Next.js ロケールなし URLNext.jsとページルーターコンパイラ
    • Tanstack Start Solid
    • AstroおよびReactAstroおよびSvelteAstroおよびVueAstroおよびSolidAstroおよびPreactAstroおよびLitAstroおよびVanilla JS
    • React Router v7React Router v7 (fs-routes)Compiler
    • NuxtおよびVue
    • ViteおよびSolid
    • SvelteKit
    • ViteおよびPreact
    • ViteおよびVanilla JS
    • ViteおよびLit
    • Angular 19 (Webpack)Analog
    • React CRA
    • React NativeとExpo
    • Express.jsNestJSFastifyHonoAdonis
    • LynxおよびReact
    Plugins
    • JSON
    • gettext (.po)
    VS Code拡張機能
    エージェント
    • MCPサーバー
    • エージェントのスキル
    リリース
    • v8
    • v7
    • v6
    ベンチマーク
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    ブログ
    質問をする
    1. Documentation
    2. コンセプト
    3. CI/CD統合

    CI/CD パイプラインでの翻訳の自動生成

    Intlayer は、コンテンツ宣言ファイルの翻訳を自動生成することを可能にします。ワークフローに応じて、これを実現する複数の方法があります。

    CMS の利用

    Intlayer を使用すると、ローカルでは単一のロケールのみを宣言し、すべての翻訳は CMS を通じてリモートで管理するワークフローを採用できます。これにより、コンテンツと翻訳がコードベースから完全に切り離され、コンテンツ編集者にとってより柔軟性が提供され、ホットコンテンツリロード(変更を適用するためにアプリケーションを再ビルドする必要なし)が可能になります。

    設定例

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // オプションのロケールはリモートで管理されます    defaultLocale: Locales.ENGLISH,  },  editor: {    dictionaryPriorityStrategy: "distant_first", // リモートコンテンツが優先されます    applicationURL: process.env.APPLICATION_URL, // CMSで使用されるアプリケーションのURL    clientId: process.env.INTLAYER_CLIENT_ID, // CMSの認証情報    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    applicationContext: "This is a test application", // 一貫した翻訳生成を支援します  },};export default config;

    CMSの詳細については、公式ドキュメントを参照してください。

    Huskyの使用

    Huskyを使用して、ローカルのGitワークフローに翻訳生成を統合できます。

    設定例

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // オプションのロケールはリモートで処理されます    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // ご自身のAPIキーを使用してください    applicationContext: "This is a test application", // 一貫した翻訳生成を支援します  },};export default config;
    .husky/pre-push
    npx intlayer build                          # 辞書が最新であることを確認するためnpx intlayer fill --unpushed --mode fill    # 欠落しているコンテンツのみを埋め、既存のものは更新しません
    Intlayer CLIコマンドとその使用方法の詳細については、CLIドキュメントを参照してください。
    リポジトリ内に複数のアプリがあり、それぞれ別のintlayerインスタンスを使用している場合は、次のように--base-dir引数を使用できます。
    .husky/pre-push
    # アプリ1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# アプリ2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    GitHub Actionsの使用

    Intlayerは辞書コンテンツの自動入力およびレビューを行うCLIコマンドを提供しています。これはGitHub Actionsを使用してCI/CDワークフローに統合することができます。

    .github/workflows/intlayer-translate.yml
    name: Intlayer 自動入力# このワークフローのトリガー条件on:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # ステップ1: リポジトリから最新コードを取得      - name: ⬇️ リポジトリをチェックアウト        uses: actions/checkout@v4        with:          persist-credentials: true # PR作成のための認証情報を保持          fetch-depth: 0 # 差分解析のために完全なGit履歴を取得      # ステップ 2: Node.js環境のセットアップ      - name: 🟢 Node.jsをセットアップ        uses: actions/setup-node@v4        with:          node-version: 20 # 安定性のためNode.js 20 LTSを使用      # ステップ 3: プロジェクト依存関係のインストール      - name: 📦 依存関係をインストール        run: npm install      # ステップ 4: 翻訳管理のためにIntlayer CLIをグローバルインストール      - name: 📦 Intlayerをインストール        run: npm install -g intlayer-cli      # ステップ 5: 翻訳ファイルを生成するためにIntlayerプロジェクトをビルド      - name: ⚙️ Intlayerプロジェクトをビルド        run: npx intlayer build      # ステップ 6: AIを使って不足している翻訳を自動で埋める      - name: 🤖 欠落している翻訳を自動入力        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # ステップ7: 変更があるか確認し、あればコミットする      - name: � 変更を確認        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # ステップ8: 変更があればコミットしてプッシュする      - name: 📤 変更をコミットしてプッシュ        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: auto-fill missing translations [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    環境変数を設定するには、GitHub → 設定 → Secrets and variables → Actions に移動し、シークレット(API_KEY)を追加してください。

    Huskyの場合と同様に、モノレポの場合は --base-dir 引数を使用して各アプリを順番に処理できます。
    デフォルトでは、--git-diff 引数はベース(デフォルトは origin/main)から現在のブランチ(デフォルトは HEAD)への変更を含む辞書をフィルタリングします。
    Intlayer CLIコマンドとその使用方法の詳細については、CLIドキュメントを参照してください。
    作成:2025-05-20最終更新:2025-08-13
    このドキュメントをあなたの好きなAIアシスタントに参照してください
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します

    バージョン履歴

    1. "履歴の初期化"
      v5.5.102025/6/29

    このページのコンテンツはAIを使用して翻訳されました。

    英語の元のコンテンツの最新バージョンを見る
    このドキュメントを編集

    このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。

    ドキュメントへのGitHubリンク
    コピー

    ドキュメントのMarkdownをクリップボードにコピー

    コードをコピー

    コードをクリップボードにコピー

    コードをコピー

    コードをクリップボードにコピー

    コードをコピー

    コードをクリップボードにコピー

    コードをコピー

    コードをクリップボードにコピー

    コードをコピー

    コードをクリップボードにコピー

    CMS
    コンテンツ宣言
    Alt+→

    このページについて

      ディスカッションは匿名で、よくある問題に対処するために定期的に確認されます。機能のアイデア、ドキュメントへのフィードバック、Intlayerに関することなど、お気軽にお聞かせください, このフィードバックをロードマップの作成と製品の改善に活用しています。