このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "Solid の useIntlayer API の使用法を直接プロパティアクセスに更新"v8.9.02026/5/4
- "Init doc"v8.4.52026/3/20
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
StorybookでIntlayerを使用する
目次
なぜ他の選択肢ではなく Intlayer なのか?
「storybook-react-i18next」や「i18next」などの主要なソリューションと比較して、Intlayer は次のような統合された最適化を備えたソリューションです。
Intlayer は、多言語ストーリー デコレーター、ロケール切り替え、およびデザイン システム全体で国際化 (i18n) を拡張するために必要なすべての機能を提供することにより、Storybook と完全に連携するように最適化されています。
巨大な JSON ファイルをページ全体に読み込む代わりに、必要なコンテンツのみをロードします。Intlayer はバンドルサイズとページ容量を最大 50% 削減します。
アプリケーションのコンテンツのスコープを設定すると、大規模なアプリケーションの メンテナンスが容易になります。コンテンツコードベース全体を確認するという認知的負荷を負うことなく、単一の機能フォルダーを複製または削除できます。さらに、Intlayer は完全な型安全性(TypeScript 型定義)を提供し、コンテンツの正確性を保証します。
コンテンツをコンポーネントと同一ディレクトリに配置(Co-location)すると、大規模言語モデル (LLM) によって 必要なコンテキストが削減されます。 Intlayer には、翻訳の欠落をテストする CLI、LSP、MCP などのツールスイートも付属しています。および agent skills により、AI エージェントの開発者エクスペリエンス (DX) がさらにスムーズになります。
自前の AI プロバイダーの API 利用料のみで、好みの LLM を使って CI/CD パイプライン内で翻訳を自動化します。 Intlayer は、コンテンツ抽出を自動化する コンパイラー と、バックグラウンド翻訳を支援する Web プラットフォーム も提供します。
大量の JSON ファイルをコンポーネントに接続すると、レンダリングパフォーマンスの低下や反応性の遅延を引き起こす可能性があります。 Intlayer は、ビルド時のコンテンツの読み込みを最適化します。
Intlayer は単なる i18n ソリューションではなく、セルフホスト可能なビジュアルエディター と 完全な CMS を提供します。 リアルタイムで多言語コンテンツを管理できるようになり、翻訳者、コピーライター、その他のチームメンバーとのコラボレーションがシームレスになります。コンテンツはローカルおよび/またはリモートに保存できます。
なぜStorybookでIntlayerを使用するのか?
Storybookは、UIコンポーネントを分離して開発およびドキュメント化するための業界標準ツールです。これをIntlayerと組み合わせることで、以下のメリットが得られます:
- すべてのロケールをプレビュー: Storybookのツールバースイッチャーを使用して、キャンバス内で直接確認できます。
- 翻訳の欠落を防止: 本番環境に到達する前にエラーを発見できます。
- 多言語コンポーネントのドキュメント化: ハードコードされた文字列ではなく、実際のタイプセーフなコンテンツでドキュメント化できます。
ステップバイステップのセットアップ
依存関係のインストール
bashコードをコピーコードをクリップボードにコピー
テーブルのすべての内容を表示テーブルをモーダルで開き、すべてのデータを明確に表示
パッケージ 役割 intlayerコア - 設定、コンテンツのコンパイル、CLI react-intlayerReactバインディング - IntlayerProvider,useIntlayerフックvite-intlayerViteプラグイン - コンテンツ宣言ファイルの監視とコンパイル Intlayer設定の作成
プロジェクトのルート(またはデザインシステムパッケージ内)に
intlayer.config.tsを作成します:intlayer.config.tsコードをコピーコードをクリップボードにコピー
オプションの全リストについては、設定リファレンスを参照してください。
StorybookにViteプラグインを追加する
Storybookの
viteFinalフックを使用して、内部のVite設定を拡張できます。そこでintlayer()プラグインをインポートして追加します:.storybook/main.tsコードをコピーコードをクリップボードにコピー
intlayer()プラグインは*.content.tsファイルを監視し、Storybookの開発中に変更があれば自動的に辞書を再構築します。`IntlayerProvider` デコレーターとロケールツールバーの追加
Storybookの
previewファイルは、すべてのストーリーをIntlayerProviderでラップし、ツールバーにロケールスイッチャーを表示するのに最適な場所です:.storybook/preview.tsxコードをコピーコードをクリップボードにコピー
localeの値はintlayer.config.tsで宣言されたロケールと一致する必要があります。
依存関係のインストール
bashコードをコピーコードをクリップボードにコピー
Intlayer設定の作成
プロジェクトのルートに
intlayer.config.tsを作成します:intlayer.config.tsコードをコピーコードをクリップボードにコピー
StorybookのWebpackを設定する
WebpackベースのStorybookセットアップ(例:
@storybook/react-webpack5)の場合、webpackFinalを介してwebpack設定を拡張し、Intlayerエイリアスとローダーを追加します:.storybook/main.tsコードをコピーコードをクリップボードにコピー
`IntlayerProvider` デコレーターとロケールツールバーの追加
Viteセットアップと同様に、デコレーターとグローバルロケール型を
.storybook/preview.tsxに追加します:.storybook/preview.tsxコードをコピーコードをクリップボードにコピー
コンテンツの宣言
各コンポーネントの隣に *.content.ts ファイルを作成します。Intlayerはコンパイル中に自動的にこれを検出します。
コードをクリップボードにコピー
import { type Dictionary, t } from "intlayer";
const copyButtonContent = {
key: "copy-button",
content: {
label: t({
en: "Copy content",
fr: "Copier le contenu",
es: "Copiar contenido",
}),
},
} satisfies Dictionary;
export default copyButtonContent;
その他のコンテンツ宣言形式や機能については、コンテンツ宣言のドキュメントを参照してください。
コンポーネントでの useIntlayer の使用
コードをクリップボードにコピー
useIntlayer は、最も近い IntlayerProvider から提供される現在のロケールのコンパイル済み辞書を返します。Storybookのツールバーでロケールを切り替えると、更新された翻訳でストーリーが自動的に再レンダリングされます。
国際化されたコンポーネントのストーリー作成
IntlayerProvider デコレーターを配置すると、ストーリーは以前とまったく同じように動作します。ロケールツールバーはキャンバス全体の有効なロケールを制御します:
コードをクリップボードにコピー
各ストーリーはツールバーから locale グローバルを継承するため、ストーリーコードを変更することなく、すべてのロケールを確認できます。
ストーリー内での翻訳のテスト
Storybookの play 関数を使用して、特定のロケールに対して正しい翻訳テキストがレンダリングされていることを確認します:
コードをクリップボードにコピー
