@intlayer/docs 8.1.5 → 8.1.7

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.
Files changed (81) hide show
  1. package/README.md +18 -9
  2. package/dist/cjs/generated/docs.entry.cjs +1 -1
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +1 -1
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +2 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/compiler.md +26 -0
  9. package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
  10. package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
  11. package/docs/ar/readme.md +138 -110
  12. package/docs/de/compiler.md +26 -0
  13. package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
  14. package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
  15. package/docs/de/readme.md +152 -124
  16. package/docs/en/compiler.md +27 -0
  17. package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
  18. package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
  19. package/docs/en/readme.md +129 -105
  20. package/docs/en-GB/compiler.md +26 -0
  21. package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
  22. package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
  23. package/docs/en-GB/readme.md +134 -108
  24. package/docs/es/compiler.md +26 -0
  25. package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
  26. package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
  27. package/docs/es/readme.md +149 -121
  28. package/docs/fr/compiler.md +26 -0
  29. package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
  30. package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
  31. package/docs/fr/readme.md +150 -122
  32. package/docs/hi/compiler.md +26 -0
  33. package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
  34. package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
  35. package/docs/hi/readme.md +153 -125
  36. package/docs/id/compiler.md +26 -0
  37. package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
  38. package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
  39. package/docs/id/readme.md +133 -105
  40. package/docs/it/compiler.md +26 -0
  41. package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
  42. package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
  43. package/docs/it/readme.md +155 -127
  44. package/docs/ja/compiler.md +26 -0
  45. package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
  46. package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
  47. package/docs/ja/readme.md +152 -126
  48. package/docs/ko/compiler.md +26 -0
  49. package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
  50. package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
  51. package/docs/ko/readme.md +154 -126
  52. package/docs/pl/compiler.md +26 -0
  53. package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
  54. package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
  55. package/docs/pl/readme.md +134 -106
  56. package/docs/pt/compiler.md +27 -1
  57. package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
  58. package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
  59. package/docs/pt/readme.md +154 -126
  60. package/docs/ru/compiler.md +26 -0
  61. package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
  62. package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
  63. package/docs/ru/readme.md +137 -109
  64. package/docs/tr/compiler.md +26 -0
  65. package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
  66. package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
  67. package/docs/tr/readme.md +139 -111
  68. package/docs/uk/compiler.md +26 -0
  69. package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
  70. package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
  71. package/docs/uk/readme.md +133 -109
  72. package/docs/vi/compiler.md +27 -1
  73. package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
  74. package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
  75. package/docs/vi/readme.md +138 -110
  76. package/docs/zh/compiler.md +26 -0
  77. package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
  78. package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
  79. package/docs/zh/readme.md +148 -120
  80. package/package.json +7 -8
  81. package/src/generated/docs.entry.ts +40 -0
@@ -0,0 +1,369 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-12-30
4
+ title: Vite and React i18n - 既存のアプリを多言語アプリに変換する (i18n ガイド 2026)
5
+ description: Intlayer Compiler を使用して、既存の Vite および React アプリケーションを多言語化する方法をご覧ください。ドキュメントに従って、国際化 (i18n) し、AI で翻訳します。
6
+ keywords:
7
+ - 国際化
8
+ - ドキュメント
9
+ - Intlayer
10
+ - Vite
11
+ - React
12
+ - コンパイラ
13
+ - AI
14
+ slugs:
15
+ - doc
16
+ - environment
17
+ - vite-and-react
18
+ - compiler
19
+ - AI
20
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
21
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
22
+ history:
23
+ - version: 8.1.6
24
+ date: 2026-02-23
25
+ changes: 初回リリース
26
+ ---
27
+
28
+ # 既存の Vite および React アプリケーションを後から多言語化 (i18n) する方法 (i18n ガイド 2026)
29
+
30
+ <Tabs defaultTab="video">
31
+ <Tab label="ビデオ" value="video">
32
+
33
+ <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"/>
34
+
35
+ </Tab>
36
+ <Tab label="コード" value="code">
37
+
38
+ <iframe
39
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
40
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
41
+ title="Demo CodeSandbox - Intlayer を使用してアプリケーションを国際化する方法"
42
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
43
+ loading="lazy"
44
+ />
45
+
46
+ </Tab>
47
+ </Tabs>
48
+
49
+ GitHub で [アプリケーションテンプレート](https://github.com/aymericzip/intlayer-vite-react-template) を見る。
50
+
51
+ ## 目次
52
+
53
+ <TOC/>
54
+
55
+ ## なぜ既存のアプリケーションを国際化するのは難しいのか?
56
+
57
+ 単一言語向けに構築されたアプリに複数の言語を追加しようとしたことがあるなら、その苦労がわかるでしょう。それは単に「難しい」だけでなく、「面倒」です。すべてのファイルを調べ、すべてのテキスト文字列を探し出し、それらを個別の辞書ファイルに移動する必要があります。
58
+
59
+ 次にリスクの高い部分が来ます。レイアウトやロジックを壊さずに、これらすべてのテキストをコードフックに置き換えることです。これは、新しい機能の開発を数週間停止させ、終わりのないリファクタリングのように感じられる種類の作業です。
60
+
61
+ ## Intlayer Compiler とは?
62
+
63
+ **Intlayer Compiler** は、その手作業をスキップするために構築されました。手動で文字列を抽出する代わりに、コンパイラが自動的に行います。コードをスキャンしてテキストを見つけ、バックグラウンドで AI を使用して辞書を生成します。
64
+ その後、ビルド中にコードを変更して、必要な i18n フックを注入します。基本的には、単一言語であるかのようにアプリを書き続け、コンパイラが多言語への変換を自動的に処理します。
65
+
66
+ > Doc Compiler: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md)
67
+
68
+ ### 制限事項
69
+
70
+ コンパイラは、**コンパイル時**にコード分析と変換 (フックの挿入と辞書の生成) を実行するため、アプリケーションの**ビルドプロセスが遅くなる**可能性があります。
71
+
72
+ 開発中のこの影響を軽減するために、コンパイラを [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md) モードで実行するように構成するか、不要なときに無効にすることができます。
73
+
74
+ ---
75
+
76
+ ## Vite および React アプリケーションに Intlayer を設定するためのステップバイステップガイド
77
+
78
+ ### ステップ 1: 依存関係のインストール
79
+
80
+ npm を使用して必要なパッケージをインストールします。
81
+
82
+ ```bash packageManager="npm"
83
+ npm install intlayer react-intlayer
84
+ npm install vite-intlayer --save-dev
85
+ npx intlayer init
86
+ ```
87
+
88
+ ```bash packageManager="pnpm"
89
+ pnpm add intlayer react-intlayer
90
+ pnpm add vite-intlayer --save-dev
91
+ pnpm intlayer init
92
+ ```
93
+
94
+ ```bash packageManager="yarn"
95
+ yarn add intlayer react-intlayer
96
+ yarn add vite-intlayer --save-dev
97
+ yarn intlayer init
98
+ ```
99
+
100
+ ```bash packageManager="bun"
101
+ bun add intlayer react-intlayer
102
+ bun add vite-intlayer --dev
103
+ bunx intlayer init
104
+ ```
105
+
106
+ - **intlayer**
107
+ 設定管理、翻訳、[コンテンツ宣言](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)、トランスパイル、および [CLI コマンド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/index.md) のための国際化ツールを提供するコアパッケージ。
108
+
109
+ - **react-intlayer**
110
+ Intlayer を React アプリケーションと統合するパッケージ。React の国際化のためのコンテキストプロバイダーとフックを提供します。
111
+
112
+ - **vite-intlayer**
113
+ Intlayer を [Vite バンドラー](https://vite.dev/guide/why.html#why-bundle-for-production) と統合するための Vite プラグイン、およびユーザーの優先ロケールの検出、クッキーの管理、URL リダイレクトの処理のためのミドルウェアが含まれています。
114
+
115
+ ### ステップ 2: プロジェクトの構成
116
+
117
+ アプリケーションの言語を構成するための構成ファイルを作成します。
118
+
119
+ ```typescript fileName="intlayer.config.ts"
120
+ import { Locales, type IntlayerConfig } from "intlayer";
121
+
122
+ const config: IntlayerConfig = {
123
+ internationalization: {
124
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
125
+ defaultLocale: Locales.ENGLISH,
126
+ },
127
+ compiler: {
128
+ enabled: true, // 開発モードへの影響を制限するために 'build-only' に設定可能
129
+ outputDir: "i18n",
130
+ dictionaryKeyPrefix: "", // プレフィックス comp- なし
131
+ },
132
+ ai: {
133
+ provider: "openai",
134
+ model: "gpt-5-mini",
135
+ apiKey: process.env.OPEN_AI_API_KEY,
136
+ applicationContext: "This app is an map app", // 注意: このアプリの説明をカスタマイズできます
137
+ },
138
+ };
139
+
140
+ export default config;
141
+ ```
142
+
143
+ > **注意**: 環境変数に `OPEN_AI_API_KEY` が設定されていることを確認してください。
144
+
145
+ > この構成ファイルを通じて、ローカライズされた URL、ミドルウェアのリダイレクト、クッキー名、コンテンツ宣言の場所と拡張子、コンソールでの Intlayer ログの無効化などを設定できます。利用可能なパラメータの完全なリストについては、[構成ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md) を参照してください。
146
+
147
+ ### ステップ 3: Vite 構成に Intlayer を統合する
148
+
149
+ 構成に intlayer プラグインを追加します。
150
+
151
+ ```typescript fileName="vite.config.ts"
152
+ import { defineConfig } from "vite";
153
+ import react from "@vitejs/plugin-react-swc";
154
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
155
+
156
+ // https://vitejs.dev/config/
157
+ export default defineConfig({
158
+ plugins: [react(), intlayer(), intlayerCompiler()],
159
+ });
160
+ ```
161
+
162
+ > `intlayer()` Vite プラグインは、Intlayer を Vite と統合するために使用されます。コンテンツ宣言ファイルの構築を確実にし、開発モードでそれらを監視します。Vite アプリケーション内で Intlayer 環境変数を定義します。さらに、パフォーマンスを最適化するためのエイリアスを提供します。
163
+
164
+ > `intlayerCompiler()` Vite プラグインは、コンポーネントからコンテンツを抽出し、`.content` ファイルを書き出すために使用されます。
165
+
166
+ ### ステップ 4: コードをコンパイルする
167
+
168
+ デフォルトのロケールでハードコードされた文字列を使用してコンポーネントを記述するだけです。残りはコンパイラが処理します。
169
+
170
+ ページの表示例:
171
+
172
+ <Tabs>
173
+ <Tab value="コード">
174
+
175
+ ```tsx fileName="src/App.tsx"
176
+ import { useState, type FC } from "react";
177
+ import reactLogo from "./assets/react.svg";
178
+ import viteLogo from "/vite.svg";
179
+ import "./App.css";
180
+ import { IntlayerProvider } from "react-intlayer";
181
+
182
+ const AppContent: FC = () => {
183
+ const [count, setCount] = useState(0);
184
+
185
+ return (
186
+ <>
187
+ <div>
188
+ <a href="https://vitejs.dev" target="_blank">
189
+ <img src={viteLogo} className="logo" alt="Vite logo" />
190
+ </a>
191
+ <a href="https://react.dev" target="_blank">
192
+ <img src={reactLogo} className="logo react" alt="React logo" />
193
+ </a>
194
+ </div>
195
+ <h1>Vite + React</h1>
196
+ <div className="card">
197
+ <button onClick={() => setCount((count) => count + 1)}>
198
+ count is {count}
199
+ </button>
200
+ <p>
201
+ Edit <code>src/App.tsx</code> and save to test HMR
202
+ </p>
203
+ </div>
204
+ <p className="read-the-docs">
205
+ Click on the Vite and React logos to learn more
206
+ </p>
207
+ </>
208
+ );
209
+ };
210
+
211
+ const App: FC = () => (
212
+ <IntlayerProvider>
213
+ <AppContent />
214
+ </IntlayerProvider>
215
+ );
216
+
217
+ export default App;
218
+ ```
219
+
220
+ </Tab>
221
+ <Tab value="出力">
222
+
223
+ ```ts fileName="i18n/app-content.content.json"
224
+ {
225
+ key: "app-content",
226
+ content: {
227
+ nodeType: "translation",
228
+ translation: {
229
+ en: {
230
+ viteLogo: "Vite logo",
231
+ reactLogo: "React logo",
232
+ title: "Vite + React",
233
+ countButton: "count is",
234
+ editMessage: "Edit",
235
+ hmrMessage: "and save to test HMR",
236
+ readTheDocs: "Click on the Vite and React logos to learn more",
237
+ },
238
+ fr: {
239
+ viteLogo: "Logo Vite",
240
+ reactLogo: "Logo React",
241
+ title: "Vite + React",
242
+ countButton: "compte est",
243
+ editMessage: "Modifier",
244
+ hmrMessage: "et enregistrer pour tester HMR",
245
+ readTheDocs: "Cliquez sur les logos Vite et React pour en savoir plus",
246
+ },
247
+ }
248
+ }
249
+ }
250
+ ```
251
+
252
+ ```tsx fileName="src/App.tsx"
253
+ import { useState, type FC } from "react";
254
+ import reactLogo from "./assets/react.svg";
255
+ import viteLogo from "/vite.svg";
256
+ import "./App.css";
257
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
258
+
259
+ const AppContent: FC = () => {
260
+ const [count, setCount] = useState(0);
261
+ const content = useIntlayer("app-content");
262
+
263
+ return (
264
+ <>
265
+ <div>
266
+ <a href="https://vitejs.dev" target="_blank">
267
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
268
+ </a>
269
+ <a href="https://react.dev" target="_blank">
270
+ <img
271
+ src={reactLogo}
272
+ className="logo react"
273
+ alt={content.reactLogo.value}
274
+ />
275
+ </a>
276
+ </div>
277
+ <h1>{content.title}</h1>
278
+ <div className="card">
279
+ <button onClick={() => setCount((count) => count + 1)}>
280
+ {content.countButton} {count}
281
+ </button>
282
+ <p>
283
+ {content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
284
+ </p>
285
+ </div>
286
+ <p className="read-the-docs">{content.readTheDocs}</p>
287
+ </>
288
+ );
289
+ };
290
+
291
+ const App: FC = () => (
292
+ <IntlayerProvider>
293
+ <AppContent />
294
+ </IntlayerProvider>
295
+ );
296
+
297
+ export default App;
298
+ ```
299
+
300
+ </Tab>
301
+ </Tabs>
302
+
303
+ - **`IntlayerProvider`** は、ネストされたコンポーネントにロケールを提供するために使用されます。
304
+
305
+ ### (オプション) ステップ 6: コンテンツの言語を変更する
306
+
307
+ コンテンツの言語を変更するには、`useLocale` フックによって提供される `setLocale` 関数を使用できます。この関数を使用すると、アプリケーションのロケールを設定し、それに応じてコンテンツを更新できます。
308
+
309
+ ```tsx fileName="src/components/LocaleSwitcher.tsx"
310
+ import type { FC } from "react";
311
+ import { Locales } from "intlayer";
312
+ import { useLocale } from "react-intlayer";
313
+
314
+ const LocaleSwitcher: FC = () => {
315
+ const { setLocale } = useLocale();
316
+
317
+ return (
318
+ <button onClick={() => setLocale(Locales.English)}>
319
+ Change Language to English
320
+ </button>
321
+ );
322
+ };
323
+ ```
324
+
325
+ > `useLocale` フックの詳細については、[ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/react-intlayer/useLocale.md) を参照してください。
326
+
327
+ ### (オプション) ステップ 7: 欠落した翻訳を埋める
328
+
329
+ Intlayerは、欠落した翻訳を埋めるためのCLIツールを提供しています。`intlayer`コマンドを使用して、コードから欠落した翻訳をテストおよび埋めることができます。
330
+
331
+ ```bash
332
+ npx intlayer test # 欠落した翻訳があるかテストする
333
+ ```
334
+
335
+ ```bash
336
+ npx intlayer fill # 欠落した翻訳を埋める
337
+ ```
338
+
339
+ > 詳細については、[CLIドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/ci.md)を参照してください。
340
+
341
+ ### Git の構成
342
+
343
+ Intlayer によって生成されたファイルを無視することをお勧めします。これにより、Git リポジトリへのコミットを避けることができます。
344
+
345
+ これを行うには、`.gitignore` ファイルに次の指示を追加します。
346
+
347
+ ```plaintext fileName=".gitignore"
348
+ # Intlayer によって生成されたファイルを無視する
349
+ .intlayer
350
+ ```
351
+
352
+ ### VS Code 拡張機能
353
+
354
+ Intlayer での開発体験を向上させるために、公式の **Intlayer VS Code 拡張機能** をインストールできます。
355
+
356
+ [VS Code Marketplace からインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
357
+
358
+ この拡張機能は以下を提供します:
359
+
360
+ - 翻訳キーの**自動補完**。
361
+ - 欠落している翻訳の**リアルタイムエラー検出**。
362
+ - 翻訳されたコンテンツの**インラインプレビュー**。
363
+ - 翻訳を簡単に作成および更新するための**クイックアクション**。
364
+
365
+ 拡張機能の使用方法の詳細については、[Intlayer VS Code 拡張機能のドキュメント](https://intlayer.org/doc/vs-code-extension) を参照してください。
366
+
367
+ ### さらに進む
368
+
369
+ さらに進むには、[ビジュアルエディタ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md) を実装するか、[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md) を使用してコンテンツを外部化できます。