@intlayer/docs 9.3.0 → 9.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +24 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +24 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/eslint.md +336 -0
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/eslint.md +336 -0
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/eslint.md +336 -0
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/eslint.md +336 -0
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/eslint.md +336 -0
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/eslint.md +336 -0
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_create_react_app.md +32 -35
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/eslint.md +336 -0
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/eslint.md +336 -0
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/eslint.md +336 -0
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/intlayer_with_vite+svelte.md +2 -2
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/eslint.md +336 -0
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/eslint.md +336 -0
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/eslint.md +336 -0
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_react_router_v7.md +1 -146
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/intlayer_with_vite+react.md +5 -1
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/eslint.md +336 -0
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_lynx+react.md +4 -0
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ko/intlayer_with_storybook.md +5 -5
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/eslint.md +336 -0
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/eslint.md +336 -0
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_astro.md +1 -114
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/migration_from_i18next_to_intlayer.md +4 -0
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/pl/migration_from_next-intl_to_intlayer.md +11 -5
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +8 -4
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +4 -0
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/eslint.md +336 -0
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_astro.md +1 -114
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/eslint.md +336 -0
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/eslint.md +336 -0
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/eslint.md +336 -0
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/packages/angular-intlayer/exports.md +2 -2
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/eslint.md +336 -0
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/eslint.md +336 -0
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/eslint.md +336 -0
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_create_react_app.md +4 -0
- package/docs/zh/intlayer_with_lynx+react.md +4 -0
- package/docs/zh/intlayer_with_nextjs_14.md +0 -2
- package/docs/zh/intlayer_with_nextjs_15.md +0 -2
- package/docs/zh/intlayer_with_nextjs_page_router.md +0 -2
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +4 -0
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +4 -0
- package/docs/zh/intlayer_with_solid_start.md +1 -1
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/intlayer_with_vite+vue.md +0 -2
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/eslint.md +336 -0
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
|
@@ -188,7 +188,7 @@ export const ComponentExample = () => {
|
|
|
188
188
|
このアプローチにより、以下のことが可能になります:
|
|
189
189
|
|
|
190
190
|
1. **開発スピードの向上**
|
|
191
|
-
- `.content.{
|
|
191
|
+
- `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}`ファイルはVSCode拡張機能を使用して作成できます
|
|
192
192
|
- IDEのAI補完ツール(GitHub Copilotなど)がコンテンツの宣言を支援し、コピー&ペーストを削減します
|
|
193
193
|
|
|
194
194
|
2. **コードベースのクリーンアップ**
|
|
@@ -212,27 +212,27 @@ export const ComponentExample = () => {
|
|
|
212
212
|
|
|
213
213
|
## Intlayerの追加機能
|
|
214
214
|
|
|
215
|
-
| 機能 | 説明
|
|
216
|
-
| ------------------------------------------------------------------------------------------------------------------------- |
|
|
217
|
-
|  | **クロスフレームワークサポート**<br><br>Intlayerは、Next.js、React、Vite、Vue.js、Nuxt、Preact、Expressなど、すべての主要なフレームワークやライブラリと互換性があります。
|
|
218
|
-
|  | **JavaScriptによるコンテンツ管理**<br><br>JavaScriptの柔軟性を活かして、コンテンツを効率的に定義および管理します。<br><br> - [コンテンツ宣言](https://intlayer.org/doc/concept/content)
|
|
219
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **コンパイラ**<br><br>Intlayerコンパイラは、コンポーネントからコンテンツを自動的に抽出し、辞書ファイルを生成します。<br><br> - [コンパイラ](https://intlayer.org/doc/compiler)
|
|
220
|
-
|  | **ロケールごとのコンテンツ宣言ファイル**<br><br>自動生成の前にコンテンツを一度宣言するだけで、開発速度を向上させます。<br><br> - [ロケールごとのコンテンツ宣言ファイル](https://intlayer.org/doc/concept/per-locale-file)
|
|
221
|
-
|  | **型安全な環境**<br><br>TypeScriptを活用して、コンテンツ定義とコードにエラーがないことを保証し、IDEの自動補完も享受できます。<br><br> - [TypeScript設定](https://intlayer.org/doc/environment/vite-and-react#configure-typescript)
|
|
222
|
-
|  | **シンプルなセットアップ**<br><br>最小限の設定で迅速に稼働させることができます。国際化、ルーティング、AI、ビルド、コンテンツ処理の設定を簡単に調整できます。<br><br> - [Next.js統合の探索](https://intlayer.org/doc/environment/nextjs)
|
|
223
|
-
|  | **シンプルなコンテンツ取得**<br><br>コンテンツの各部分で`t`関数を呼び出す必要はありません。単一のフックを使用して、すべてのコンテンツを直接取得できます。<br><br> - [React統合](https://intlayer.org/doc/environment/create-react-app)
|
|
224
|
-
|  | **一貫したサーバーコンポーネントの実装**<br><br>Next.jsサーバーコンポーネントに最適で、クライアントコンポーネントとサーバーコンポーネントの両方で同じ実装を使用でき、各サーバーコンポーネントで`t`関数を渡す必要はありません。<br><br> - [サーバーコンポーネント](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code)
|
|
225
|
-
|  | **整理されたコードベース**<br><br>コードベースを整理された状態に保ちます:同じフォルダ内に1コンポーネント=1辞書。それぞれのコンポーネントの近くに翻訳を配置することで、メンテナンス性と明瞭性が向上します。<br><br> - [Intlayerの仕組み](https://intlayer.org/doc/concept/how-works-intlayer)
|
|
226
|
-
|  | **強化されたルーティング**<br><br>アプリルーティングの完全なサポート。Next.js、React、Vite、Vue.jsなどの複雑なアプリケーション構造にシームレスに適応します。<br><br> - [Next.js統合の探索](https://intlayer.org/doc/environment/nextjs)
|
|
227
|
-
|  | **Markdownサポート**<br><br>プライバシーポリシーやドキュメントなどの多言語コンテンツのために、ローカルファイルやリモートのMarkdownをインポートして解釈します。コード内でMarkdownメタデータを解釈し、アクセス可能にします。<br><br> - [コンテンツファイル](https://intlayer.org/doc/concept/content/file)
|
|
228
|
-
|  | **無料のビジュアルエディタとCMS**<br><br>コンテンツライター向けに無料のビジュアルエディタとCMSが利用可能で、ローカリゼーションプラットフォームの必要性を排除します。Gitを使用してコンテンツを同期させるか、CMSで部分的または完全に外部管理します。<br><br> - [Intlayerエディタ](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms)
|
|
229
|
-
|  | **Tree-shakableコンテンツ**<br><br>最終バンドルのサイズを削減するTree-shakableコンテンツ。コンポーネントごとにコンテンツを読み込み、未使用のコンテンツをバンドルから除外します。アプリの読み込み効率を高めるための遅延読み込み(lazy loading)をサポートします。<br><br> - [アプリビルドの最適化](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization)
|
|
230
|
-
|  | **静的レンダリング**<br><br>静的レンダリングをブロックしません。<br><br> - [Next.js統合](https://intlayer.org/doc/environment/nextjs)
|
|
231
|
-
|  | **AI支援の翻訳**<br><br>独自のAIプロバイダー/APIキーを使用し、Intlayerの高度なAI翻訳ツールを使用してワンクリックでウェブサイトを231言語に翻訳します。<br><br> - [CI/CD統合](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [自動入力](https://intlayer.org/doc/concept/auto-fill)
|
|
232
|
-
|  | **MCPサーバー統合**<br><br>IDE自動化のためのMCP(Model Context Protocol)サーバーを提供し、開発環境内で直接シームレスなコンテンツ管理とi18nワークフローを可能にします。<br><br> - [MCPサーバー](https://github.com/aymericzip/intlayer/blob/main/docs/ja/mcp_server.md)
|
|
233
|
-
|  | **VSCode拡張機能**<br><br>Intlayerは、コンテンツや翻訳の管理、辞書の作成、コンテンツの翻訳などを支援するVSCode拡張機能を提供します。<br><br> - [VSCode拡張機能](https://intlayer.org/doc/vs-code-extension)
|
|
234
|
-
|  | **相互運用性**<br><br>react-i18next、next-i18next、next-intl、およびreact-intlとの相互運用を可能にします。<br><br> - [Intlayerとreact-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayerとnext-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayerとnext-i18next](https://intlayer.org/blog/intlayer-with-next-i18next)
|
|
235
|
-
| 翻訳漏れのテスト(CLI/CI) | ✅ CLI: npx intlayer content test(CIフレンドリーな監査)
|
|
215
|
+
| 機能 | 説明 |
|
|
216
|
+
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
217
|
+
|  | **クロスフレームワークサポート**<br><br>Intlayerは、Next.js、React、Vite、Vue.js、Nuxt、Preact、Expressなど、すべての主要なフレームワークやライブラリと互換性があります。 |
|
|
218
|
+
|  | **JavaScriptによるコンテンツ管理**<br><br>JavaScriptの柔軟性を活かして、コンテンツを効率的に定義および管理します。<br><br> - [コンテンツ宣言](https://intlayer.org/doc/concept/content) |
|
|
219
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **コンパイラ**<br><br>Intlayerコンパイラは、コンポーネントからコンテンツを自動的に抽出し、辞書ファイルを生成します。<br><br> - [コンパイラ](https://intlayer.org/doc/compiler) |
|
|
220
|
+
|  | **ロケールごとのコンテンツ宣言ファイル**<br><br>自動生成の前にコンテンツを一度宣言するだけで、開発速度を向上させます。<br><br> - [ロケールごとのコンテンツ宣言ファイル](https://intlayer.org/doc/concept/per-locale-file) |
|
|
221
|
+
|  | **型安全な環境**<br><br>TypeScriptを活用して、コンテンツ定義とコードにエラーがないことを保証し、IDEの自動補完も享受できます。<br><br> - [TypeScript設定](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
222
|
+
|  | **シンプルなセットアップ**<br><br>最小限の設定で迅速に稼働させることができます。国際化、ルーティング、AI、ビルド、コンテンツ処理の設定を簡単に調整できます。<br><br> - [Next.js統合の探索](https://intlayer.org/doc/environment/nextjs) |
|
|
223
|
+
|  | **シンプルなコンテンツ取得**<br><br>コンテンツの各部分で`t`関数を呼び出す必要はありません。単一のフックを使用して、すべてのコンテンツを直接取得できます。<br><br> - [React統合](https://intlayer.org/doc/environment/create-react-app) |
|
|
224
|
+
|  | **一貫したサーバーコンポーネントの実装**<br><br>Next.jsサーバーコンポーネントに最適で、クライアントコンポーネントとサーバーコンポーネントの両方で同じ実装を使用でき、各サーバーコンポーネントで`t`関数を渡す必要はありません。<br><br> - [サーバーコンポーネント](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
225
|
+
|  | **整理されたコードベース**<br><br>コードベースを整理された状態に保ちます:同じフォルダ内に1コンポーネント=1辞書。それぞれのコンポーネントの近くに翻訳を配置することで、メンテナンス性と明瞭性が向上します。<br><br> - [Intlayerの仕組み](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
226
|
+
|  | **強化されたルーティング**<br><br>アプリルーティングの完全なサポート。Next.js、React、Vite、Vue.jsなどの複雑なアプリケーション構造にシームレスに適応します。<br><br> - [Next.js統合の探索](https://intlayer.org/doc/environment/nextjs) |
|
|
227
|
+
|  | **Markdownサポート**<br><br>プライバシーポリシーやドキュメントなどの多言語コンテンツのために、ローカルファイルやリモートのMarkdownをインポートして解釈します。コード内でMarkdownメタデータを解釈し、アクセス可能にします。<br><br> - [コンテンツファイル](https://intlayer.org/doc/concept/content/file) |
|
|
228
|
+
|  | **無料のビジュアルエディタとCMS**<br><br>コンテンツライター向けに無料のビジュアルエディタとCMSが利用可能で、ローカリゼーションプラットフォームの必要性を排除します。Gitを使用してコンテンツを同期させるか、CMSで部分的または完全に外部管理します。<br><br> - [Intlayerエディタ](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
229
|
+
|  | **Tree-shakableコンテンツ**<br><br>最終バンドルのサイズを削減するTree-shakableコンテンツ。コンポーネントごとにコンテンツを読み込み、未使用のコンテンツをバンドルから除外します。アプリの読み込み効率を高めるための遅延読み込み(lazy loading)をサポートします。<br><br> - [アプリビルドの最適化](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
230
|
+
|  | **静的レンダリング**<br><br>静的レンダリングをブロックしません。<br><br> - [Next.js統合](https://intlayer.org/doc/environment/nextjs) |
|
|
231
|
+
|  | **AI支援の翻訳**<br><br>独自のAIプロバイダー/APIキーを使用し、Intlayerの高度なAI翻訳ツールを使用してワンクリックでウェブサイトを231言語に翻訳します。<br><br> - [CI/CD統合](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [自動入力](https://intlayer.org/doc/concept/auto-fill) |
|
|
232
|
+
|  | **MCPサーバー統合**<br><br>IDE自動化のためのMCP(Model Context Protocol)サーバーを提供し、開発環境内で直接シームレスなコンテンツ管理とi18nワークフローを可能にします。<br><br> - [MCPサーバー](https://github.com/aymericzip/intlayer/blob/main/docs/ja/mcp_server.md) |
|
|
233
|
+
|  | **VSCode拡張機能**<br><br>Intlayerは、コンテンツや翻訳の管理、辞書の作成、コンテンツの翻訳などを支援するVSCode拡張機能を提供します。<br><br> - [VSCode拡張機能](https://intlayer.org/doc/vs-code-extension) |
|
|
234
|
+
|  | **相互運用性**<br><br>react-i18next、next-i18next、next-intl、およびreact-intlとの相互運用を可能にします。<br><br> - [Intlayerとreact-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayerとnext-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayerとnext-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer の互換アダプター](https://intlayer.org/doc/compatibility) |
|
|
235
|
+
| 翻訳漏れのテスト(CLI/CI) | ✅ CLI: npx intlayer content test(CIフレンドリーな監査) |
|
|
236
236
|
|
|
237
237
|
## Intlayerと他のソリューションの比較
|
|
238
238
|
|
|
@@ -271,3 +271,5 @@ GitHubスター数は、プロジェクトの知名度、コミュニティか
|
|
|
271
271
|
`intlayer`は、`react-intl`、`react-i18next`、`next-intl`、`next-i18next`、`vue-i18n`の名前空間の管理にも役立ちます。
|
|
272
272
|
|
|
273
273
|
`intlayer`を使用すると、お気に入りのi18nライブラリの形式でコンテンツを宣言でき、intlayerは任意の場所に名前空間を生成します(例:`/messages/{{locale}}/{{namespace}}.json`)。
|
|
274
|
+
|
|
275
|
+
現在の i18n ライブラリの API を使い続けたい場合、`intlayer` は **互換アダプター(compat adapters)** も提供しています。これは `react-i18next`、`next-intl`、`react-intl`、`vue-i18n` などとまったく同じ API を公開しつつ、内容は Intlayer の辞書から提供されるパッケージです。これにより、コードを書き直すことなく段階的に移行できます。[互換アダプターのドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md)をご覧ください。
|
|
@@ -141,152 +141,7 @@ This comprehensive guide provides everything you need to integrate Intlayer with
|
|
|
141
141
|
|
|
142
142
|
<Steps>
|
|
143
143
|
|
|
144
|
-
<Step number={
|
|
145
|
-
|
|
146
|
-
`intlayerProxy` を使用して、アプリケーションにサーバーサイドルーティングを追加することもできます。このプラグインは、URL に基づいて現在のロケールを自動的に検出し、適切なロケールクッキーを設定します。ロケールが指定されていない場合、プラグインはユーザーのブラウザの言語設定に基づいて最も適切なロケールを判断します。ロケールが検出されない場合は、デフォルトのロケールにリダイレクトします。
|
|
147
|
-
|
|
148
|
-
> `intlayerProxy` を本番環境で使用するには、`vite-intlayer` パッケージを `devDependencies` から `dependencies` に切り替える必要があることに注意してください。
|
|
149
|
-
|
|
150
|
-
```typescript {3,7} fileName="vite.config.ts"
|
|
151
|
-
import { reactRouter } from "@react-router/dev/vite";
|
|
152
|
-
import { defineConfig } from "vite";
|
|
153
|
-
import { intlayer } from "vite-intlayer";
|
|
154
|
-
|
|
155
|
-
export default defineConfig({
|
|
156
|
-
plugins: [
|
|
157
|
-
reactRouter(),
|
|
158
|
-
|
|
159
|
-
intlayer({
|
|
160
|
-
proxy: {
|
|
161
|
-
ignore: (req) => req.url?.startsWith("/api"),
|
|
162
|
-
},
|
|
163
|
-
}),
|
|
164
|
-
],
|
|
165
|
-
});
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
</Step>
|
|
169
|
-
|
|
170
|
-
<Step number={12} title="コンポーネントのコンテンツを抽出する" isOptional={true}>
|
|
171
|
-
|
|
172
|
-
既存のコードベースがある場合、数千のファイルを変換するのは時間がかかることがあります。
|
|
173
|
-
|
|
174
|
-
このプロセスを容易にするために、Intlayerは、コンポーネントを変換しコンテンツを抽出するための [コンパイラ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md) / [エクストラクタ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md) を提案しています。
|
|
175
|
-
|
|
176
|
-
セットアップするには、`intlayer.config.ts` ファイルに `compiler` セクションを追加します。
|
|
177
|
-
|
|
178
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
179
|
-
import { type IntlayerConfig } from "intlayer";
|
|
180
|
-
|
|
181
|
-
const config: IntlayerConfig = {
|
|
182
|
-
// ... 他の構成
|
|
183
|
-
compiler: {
|
|
184
|
-
/**
|
|
185
|
-
* コンパイラを有効にするかどうかを指定します。
|
|
186
|
-
*/
|
|
187
|
-
enabled: true,
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* 出力ファイルのパスを定義します。
|
|
191
|
-
*/
|
|
192
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* 変換後にコンポーネントを保存するかどうかを指定します。これにより、コンパイラを一度だけ実行してアプリを変換し、その後削除することができます。
|
|
196
|
-
*/
|
|
197
|
-
saveComponents: false,
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* 辞書キーの接頭辞
|
|
201
|
-
*/
|
|
202
|
-
dictionaryKeyPrefix: "",
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
export default config;
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
<Tabs>
|
|
210
|
-
<Tab value='抽出コマンド'>
|
|
211
|
-
|
|
212
|
-
コンポーネントを変換してコンテンツを抽出するためにエクストラクタを実行します
|
|
213
|
-
|
|
214
|
-
```bash packageManager="npm"
|
|
215
|
-
npx intlayer extract
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
```bash packageManager="pnpm"
|
|
219
|
-
pnpm intlayer extract
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
```bash packageManager="yarn"
|
|
223
|
-
yarn intlayer extract
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
```bash packageManager="bun"
|
|
227
|
-
bun x intlayer extract
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
</Tab>
|
|
231
|
-
<Tab value='Babelコンパイラ'>
|
|
232
|
-
|
|
233
|
-
> Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
|
|
234
|
-
|
|
235
|
-
```bash packageManager="npm"
|
|
236
|
-
npm install @intlayer/babel --save-dev
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
```bash packageManager="pnpm"
|
|
240
|
-
pnpm add @intlayer/babel --save-dev
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
```bash packageManager="yarn"
|
|
244
|
-
yarn add @intlayer/babel --save-dev
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
```bash packageManager="bun"
|
|
248
|
-
bun add @intlayer/babel --dev
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
```js fileName="babel.config.js"
|
|
252
|
-
const {
|
|
253
|
-
intlayerExtractBabelPlugin,
|
|
254
|
-
getExtractPluginOptions,
|
|
255
|
-
} = require("@intlayer/babel");
|
|
256
|
-
|
|
257
|
-
module.exports = {
|
|
258
|
-
presets: ["next/babel"],
|
|
259
|
-
plugins: [
|
|
260
|
-
// コンポーネントから辞書へコンテンツを抽出する
|
|
261
|
-
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
262
|
-
],
|
|
263
|
-
};
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
```bash packageManager="npm"
|
|
267
|
-
npm run build # または npm run dev
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
```bash packageManager="pnpm"
|
|
271
|
-
pnpm run build # または pnpm run dev
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
```bash packageManager="yarn"
|
|
275
|
-
yarn build # または yarn dev
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
```bash packageManager="bun"
|
|
279
|
-
bun run build # Or bun run dev
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
</Tab>
|
|
283
|
-
</Tabs>
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
</Step>
|
|
288
|
-
|
|
289
|
-
</Steps>
|
|
144
|
+
<Step number={5} title="ルートレイアウトの作成">
|
|
290
145
|
|
|
291
146
|
#### Root Layout
|
|
292
147
|
|
|
@@ -237,19 +237,21 @@ import {
|
|
|
237
237
|
HeadContent,
|
|
238
238
|
Scripts,
|
|
239
239
|
createRootRouteWithContext,
|
|
240
|
+
getRouteApi,
|
|
240
241
|
} from "@tanstack/solid-router";
|
|
241
242
|
import { HydrationScript } from "solid-js/web";
|
|
242
243
|
import { Suspense, type ParentComponent } from "solid-js";
|
|
243
244
|
import { IntlayerProvider } from "solid-intlayer";
|
|
244
245
|
import { defaultLocale, getHTMLTextDir } from "intlayer";
|
|
245
|
-
|
|
246
|
+
|
|
247
|
+
const localeRoute = getRouteApi("/{-$locale}");
|
|
246
248
|
|
|
247
249
|
export const Route = createRootRouteWithContext()({
|
|
248
250
|
shellComponent: RootComponent,
|
|
249
251
|
});
|
|
250
252
|
|
|
251
253
|
const RootComponent: ParentComponent = (props) => {
|
|
252
|
-
const params =
|
|
254
|
+
const params = localeRoute.useParams();
|
|
253
255
|
const locale = params()?.locale ?? defaultLocale;
|
|
254
256
|
|
|
255
257
|
return (
|
|
@@ -534,7 +536,7 @@ export default LocaleSwitcher;
|
|
|
534
536
|
|
|
535
537
|
```tsx fileName="src/routes/__root.tsx"
|
|
536
538
|
const RootComponent: ParentComponent = (props) => {
|
|
537
|
-
const params =
|
|
539
|
+
const params = localeRoute.useParams();
|
|
538
540
|
const locale = params()?.locale ?? defaultLocale;
|
|
539
541
|
|
|
540
542
|
return (
|
|
@@ -257,13 +257,15 @@ export default config;
|
|
|
257
257
|
```tsx fileName="src/routes/__root.tsx"
|
|
258
258
|
import {
|
|
259
259
|
createRootRouteWithContext,
|
|
260
|
+
getRouteApi,
|
|
260
261
|
HeadContent,
|
|
261
262
|
Scripts,
|
|
262
263
|
} from "@tanstack/react-router";
|
|
263
264
|
import { defaultLocale, getHTMLTextDir } from "intlayer";
|
|
264
265
|
import { type ReactNode } from "react";
|
|
265
266
|
import { IntlayerProvider } from "react-intlayer";
|
|
266
|
-
|
|
267
|
+
|
|
268
|
+
const localeRoute = getRouteApi("/{-$locale}");
|
|
267
269
|
|
|
268
270
|
export const Route = createRootRouteWithContext<{}>()({
|
|
269
271
|
head: () => ({
|
|
@@ -285,7 +287,7 @@ export const Route = createRootRouteWithContext<{}>()({
|
|
|
285
287
|
});
|
|
286
288
|
|
|
287
289
|
function RootDocument({ children }: { children: ReactNode }) {
|
|
288
|
-
const params =
|
|
290
|
+
const params = localeRoute.useParams();
|
|
289
291
|
const locale = params?.locale ?? defaultLocale;
|
|
290
292
|
|
|
291
293
|
return (
|
|
@@ -659,7 +661,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
659
661
|
|
|
660
662
|
```tsx fileName="src/routes/__root.tsx"
|
|
661
663
|
function RootDocument({ children }: { children: ReactNode }) {
|
|
662
|
-
const params =
|
|
664
|
+
const params = localeRoute.useParams();
|
|
663
665
|
const locale = params?.locale ?? defaultLocale;
|
|
664
666
|
|
|
665
667
|
return (
|
|
@@ -75,7 +75,7 @@ Intlayer は単なる i18n ソリューションではなく、**自己ホスト
|
|
|
75
75
|
|
|
76
76
|
<Tabs defaultTab="video">
|
|
77
77
|
<Tab label="ビデオ" value="video">
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
<iframe title="ViteとReactに最適なi18nソリューション?Intlayerを発見" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
80
80
|
|
|
81
81
|
</Tab>
|
|
@@ -105,6 +105,10 @@ Intlayer は単なる i18n ソリューションではなく、**自己ホスト
|
|
|
105
105
|
|
|
106
106
|
GitHubの[Application Template](https://github.com/aymericzip/intlayer-vite-react-template)を参照してください。
|
|
107
107
|
|
|
108
|
+
<Steps>
|
|
109
|
+
|
|
110
|
+
<Step number={9} title="HTMLの言語属性と方向属性を切り替える" isOptional={true}>
|
|
111
|
+
|
|
108
112
|
#### フックの実装
|
|
109
113
|
|
|
110
114
|
HTML属性を管理するためのカスタムフックを作成します。このフックはロケールの変更を監視し、それに応じて属性を更新します:
|