このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "Solid の useIntlayer API の使用法を直接プロパティアクセスに更新"v8.9.02026/5/4
- "initコマンドを追加"v7.5.92025/12/30
- "初期履歴"v7.1.102025/11/20
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
Intlayerを使ってSvelteKitのウェブサイトを翻訳する | 国際化(i18n)
目次
代替手段ではなく Interlayer を使用する理由
「svelte-i18n」や「i18next」などの主要なソリューションと比較して、Intlayer は次のような統合された最適化を備えたソリューションです。
SvelteKit を完全にカバー
Intlayer は、多言語ルーティング、SSR サポート、およびスケーリング国際化 (i18n) に必要なすべての機能を提供することにより、SvelteKit と完全に連携するように最適化されています。
バンドルサイズ
大量の JSON ファイルをページにロードするのではなく、必要なコンテンツのみをロードします。 Intlayer は、バンドルとページのサイズを最大 50% 削減するのに役立ちます。
保守性
アプリケーションのコンテンツのスコープを設定すると、大規模なアプリケーションの メンテナンスが容易になります。コンテンツ コードベース全体を確認するという精神的な負担を負うことなく、単一の機能フォルダーを複製または削除できます。さらに、Intlayer は完全に型指定されており、コンテンツの正確性を保証します。
AI エージェント
コンテンツを同じ場所に配置すると、大規模言語モデル (LLM) によって 必要なコンテキストが削減されます。 Intlayer には、翻訳の欠落をテストする CLI、LSP、MCP などのツール スイートも付属しています。および agent skills により、AI エージェントの開発者エクスペリエンス (DX) がさらにスムーズになります。
オートメーション
AI プロバイダーの費用で、選択した LLM を使用して CI/CD パイプラインで自動化を変換します。 Intlayer は、コンテンツ抽出を自動化する コンパイラー と、バックグラウンドでの翻訳を支援する Web プラットフォーム も提供します。
パフォーマンス
大量の JSON ファイルをコンポーネントに接続すると、パフォーマンスと反応性の問題が発生する可能性があります。 Intlayer は、ビルド時のコンテンツの読み込みを最適化します。
非開発によるスケーリング
Intlayer は単なる i18n ソリューションではなく、自己ホスト型 ビジュアル エディター と 完全な CMS を提供します。 リアルタイムで多言語コンテンツを管理できるようになり、翻訳者、コピーライター、その他のチーム メンバーとのコラボレーションがシームレスになります。コンテンツはローカルおよび/またはリモートに保存できます。
</AccordionGroup>
SvelteKitアプリケーションでIntlayerをセットアップするステップバイステップガイド
Application Template を GitHub で参照してください。
まずは新しいSvelteKitプロジェクトを作成しましょう。以下は最終的に作成する構成です:
コードをクリップボードにコピー
依存関係をインストール
npm を使用して必要なパッケージをインストールしてください:
bashコードをコピーコードをクリップボードにコピー
--interactiveフラグはオプションです。AI エージェントの場合はintlayer-cli initを使用してください。このコマンドはあなたの環境を検出し、必要なパッケージをインストールします。例えば:
bashコードをコピーコードをクリップボードにコピー
- intlayer: コアとなるi18nパッケージ。
- svelte-intlayer: Svelte/SvelteKit向けのコンテキストプロバイダーとストアを提供します。
- vite-intlayer: コンテンツ宣言をビルドプロセスに統合するViteプラグイン。
プロジェクトの設定
プロジェクトのルートに設定ファイルを作成します:
intlayer.config.tsコードをコピーコードをクリップボードにコピー
Intlayer を Vite 設定に統合する
vite.config.tsを更新して、Intlayer プラグインを含めます。このプラグインは、コンテンツファイルのトランスパイルを処理します。vite.config.tsコードをコピーコードをクリップボードにコピー
コンテンツを宣言する
srcフォルダ内の任意の場所(例:src/lib/contentまたはコンポーネントの隣)にコンテンツ宣言ファイルを作成します。これらのファイルは、各ロケールに対してt()関数を使用してアプリケーション用の翻訳可能なコンテンツを定義します。Intlayerをコンポーネントで利用する
これで、任意の Svelte コンポーネントで
useIntlayer関数を使用できます。これはロケールが変更されると自動的に更新されるリアクティブストアを返します。この関数は現在のロケール (SSR とクライアント側のナビゲーション の両方) を自動的に尊重します。注記:
useIntlayerは Svelte store を返すため、リアクティブ値にアクセスするには$プレフィックスを使用する必要があります (例:$content.title)。src/lib/components/Component.svelteコードをコピーコードをクリップボードにコピー
ルーティングの設定
オプション以下の手順は、SvelteKit でロケールベースのルーティングをセットアップする方法を示しています。これにより、URL にロケールプレフィックス (例:
/en/about,/fr/about) を含めることができ、SEO とユーザー体験が向上します。bashコードをコピーコードをクリップボードにコピー
サーバーサイドのロケール検出を処理する
SvelteKit では、SSR 時に正しいコンテンツをレンダリングするため、サーバーはユーザーのロケールを認識する必要があります。
hooks.server.tsを使用して、URL またはクッキーからロケールを検出します。src/hooks.server.tsを作成または変更します:src/hooks.server.tsコードをコピーコードをクリップボードにコピー
次に、リクエストイベントからユーザーのロケールを取得するヘルパーを作成します:
src/lib/getLocale.tsコードをコピーコードをクリップボードにコピー
getLocaleFromStorageはあなたの設定に応じて、ヘッダーまたはクッキーからロケールをチェックします。詳細は Configuration を参照してください。localeDetector関数はAccept-Languageヘッダーを処理し、最適なマッチを返します。ロケールが設定されていない場合、404エラーを返したいです。これを簡単にするために、ロケールが有効かどうかをチェックする
match関数を作成できます:/src/params/locale.tsコードをコピーコードをクリップボードにコピー
Note:
src/app.d.tsにロケール定義が含まれていることを確認してください:typescriptコードをコピーコードをクリップボードにコピー
+layout.svelteファイルの場合、i18n に関連しない静的コンテンツのみを保持するために、すべてを削除できます:src/+layout.svelteコードをコピーコードをクリップボードにコピー
次に、
[[locale=locale]]グループの下に新しいページとレイアウトを作成します:src/routes/[[locale=locale]]/+layout.tsコードをコピーコードをクリップボードにコピー
src/routes/[[locale=locale]]/+layout.svelteコードをコピーコードをクリップボードにコピー
src/routes/[[locale=locale]]/+page.tsコードをコピーコードをクリップボードにコピー
src/routes/[[locale=locale]]/+page.svelteコードをコピーコードをクリップボードにコピー
国際化されたリンク
オプションSEO のため、ルートをロケール接頭辞を付けることが推奨されます (例:
/en/about,/fr/about)。このコンポーネントは現在のロケールで自動的にリンクに接頭辞を付けます。src/lib/components/LocalizedLink.svelteコードをコピーコードをクリップボードにコピー
SvelteKit の
gotoを使用する場合、同じロジックをgetLocalizedUrlと共に使用してローカライズされた URL にナビゲートできます:typescriptコードをコピーコードをクリップボードにコピー
コンポーネントのコンテンツを抽出する
オプション既存のコードベースがある場合、数千のファイルを変換するのは時間がかかることがあります。
src/lib/components/LanguageSwitcher.svelteコードをコピーコードをクリップボードにコピー
バックエンドプロキシを追加する
オプションSvelteKitアプリケーションにバックエンドプロキシを追加するには、
vite-intlayerプラグインが提供するintlayerProxy関数を使用できます。このプラグインは、URL、クッキー、およびブラウザーの言語設定に基づいて、ユーザーに最適なロケールを自動的に検出します。Intlayer v9以降、
intlayerProxy()はintlayer()プラグインに直接バンドルされ、routing.enableProxyオプション(デフォルトでtrue)を通じてデフォルトで有効になります。以下に示すように個別に登録することはオプションになりました — これは後方互換性のためと、プラグインの順序を制御する必要があるセットアップのために保持されています。routing.enableProxy: falseを設定してオプトアウトできます。v9リリースノートを参照してください。vite.config.tsコードをコピーコードをクリップボードにコピー
intlayer editor / CMS を設定する
オプションintlayer エディターをセットアップするには、intlayer エディターのドキュメントに従う必要があります。
intlayer CMSをセットアップするには、intlayer CMSドキュメントに従う必要があります。
intlayer editor selector を視覚化するには、intlayer のコンテンツ内でコンポーネント構文を使用する必要があります。
Component.svelteコードをコピーコードをクリップボードにコピー
コンポーネントのコンテンツを抽出する
オプション既存の codebase がある場合、数千のファイルを変換するのに時間がかかる可能性があります。
このプロセスを容易にするために、Intlayerは、コンポーネントを変換しコンテンツを抽出するための コンパイラ / エクストラクタ を提案しています。
セットアップするには、
intlayer.config.tsファイルにcompilerセクションを追加します。intlayer.config.tsコードをコピーコードをクリップボードにコピー
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... 他の構成 compiler: { /** * コンパイラを有効にするかどうかを指定します。 */ enabled: true, /** * 出力ファイルのパスを定義します。 */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * 変換後にコンポーネントを保存するかどうかを指定します。これにより、コンパイラを一度だけ実行してアプリを変換し、その後削除することができます。 */ saveComponents: false, /** * 辞書キーの接頭辞 */ dictionaryKeyPrefix: "", }, }; export default config;コンポーネントを変換してコンテンツを抽出するためにエクストラクタを実行します
bashコードをコピーコードをクリップボードにコピー
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.babel.config.jsコードをコピーコードをクリップボードにコピー
bashコードをコピーコードをクリップボードにコピー
Git Configuration
Intlayerによって生成されたファイルを無視することをお勧めします。
コードをクリップボードにコピー
さらに進む
- ビジュアルエディター: UIから直接翻訳を編集するために、Intlayer Visual Editorを統合します。
- CMS: コンテンツ管理を外部化するために、Intlayer CMSを使用します。
