著者:
    作成:2025-01-02最終更新:2025-10-29

    Intlayerを使ってreact-intlのJSON翻訳を自動化する方法

    www.youtube.com

    目次

    Intlayerとは?

    Intlayerは、従来のi18nソリューションの欠点を解決するために設計された革新的なオープンソースの国際化ライブラリです。Reactアプリケーションにおけるコンテンツ管理に対して、モダンなアプローチを提供します。

    具体的な比較については、当社のブログ記事react-i18next vs. react-intl vs. Intlayerをご覧ください。

    なぜIntlayerをreact-intlと組み合わせるのか?

    Intlayerは優れた単独のi18nソリューションを提供します(React統合ガイドを参照)が、以下のような理由でreact-intlと組み合わせたい場合があります:

    1. 既存のコードベース: 既にreact-intlの実装があり、Intlayerの向上した開発者体験へ段階的に移行したい場合。
    2. レガシー要件: プロジェクトが既存のreact-intlプラグインやワークフローとの互換性を必要とする場合。
    3. チームの慣れ親しみ: チームがreact-intlに慣れているが、より良いコンテンツ管理を望んでいる場合。
    4. Intlayerの機能利用: コンテンツ宣言、翻訳の自動化、翻訳テストなど、Intlayerの機能を利用したい場合。

    そのために、Intlayerはreact-intlのアダプターとして実装可能であり、CLIやCI/CDパイプラインでのJSON翻訳の自動化、翻訳のテストなどを支援します。

    このガイドでは、react-intlとの互換性を維持しながら、Intlayerの優れたコンテンツ宣言システムを活用する方法を説明します。

    react-intlとIntlayerをセットアップするステップバイステップガイド

    1. 依存関係のインストール

      必要なパッケージをインストールします:

      bash
      npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init

      パッケージの説明:

      • intlayer: 国際化管理、コンテンツ宣言、およびビルドのためのコアライブラリ
      • @intlayer/sync-json-plugin: Intlayerのコンテンツ宣言をreact-intl互換のJSON形式にエクスポートするプラグイン
    2. JSONをラップするためのIntlayerプラグインの実装

      サポートするロケールを定義するためのIntlayer設定ファイルを作成します。

      react-intl用のJSON辞書もエクスポートしたい場合はsyncJSONプラグインを追加してください。

      intlayer.config.ts
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      format: 'i18next',      source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,    }),  ],};`export default config;

      syncJSONプラグインはJSONを自動的にラップします。JSONファイルの内容構造を変更することなく、読み書きを行います。

      もしJSONとintlayerのコンテンツ宣言ファイル(.contentファイル)を共存させたい場合、Intlayerは以下の手順で処理します:

      1. JSONファイルとコンテンツ宣言ファイルの両方を読み込み、intlayerの辞書に変換します。
      2. JSONとコンテンツ宣言ファイル間に競合がある場合、Intlayerはすべての辞書をマージします。プラグインの優先度やコンテンツ宣言ファイルの優先度に応じて処理されます(すべて設定可能です)。

      CLIを使ってJSONの翻訳を変更した場合やCMSを使用した場合、Intlayerは新しい翻訳でJSONファイルを更新します。

      syncJSONプラグインの詳細については、syncJSONプラグインのドキュメントをご参照ください。

    Git 設定

    自動生成された Intlayer ファイルは無視することを推奨します:

    .gitignore
    # Intlayer によって生成されたファイルを無視する.intlayer

    これらのファイルはビルドプロセス中に再生成可能であり、バージョン管理にコミットする必要はありません。

    VS Code 拡張機能

    開発者体験を向上させるために、公式の Intlayer VS Code 拡張機能 をインストールしてください:

    VS Code Marketplace からインストール

    コメント

    まだコメントはありません。最初のコメントを共有しましょう。