@intlayer/docs 7.1.9 → 7.2.0

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 (44) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/generated/docs.entry.cjs +19 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +19 -0
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +1 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/intlayer_with_svelte_kit.md +730 -0
  9. package/docs/ar/intlayer_with_vite+svelte.md +288 -104
  10. package/docs/de/intlayer_with_svelte_kit.md +730 -0
  11. package/docs/de/intlayer_with_vite+svelte.md +302 -101
  12. package/docs/en/intlayer_with_svelte_kit.md +560 -0
  13. package/docs/en/intlayer_with_vite+svelte.md +22 -6
  14. package/docs/en/introduction.md +2 -0
  15. package/docs/en-GB/intlayer_with_svelte_kit.md +730 -0
  16. package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
  17. package/docs/es/intlayer_with_svelte_kit.md +730 -0
  18. package/docs/es/intlayer_with_vite+svelte.md +300 -107
  19. package/docs/fr/intlayer_with_svelte_kit.md +762 -0
  20. package/docs/fr/intlayer_with_vite+svelte.md +297 -101
  21. package/docs/hi/intlayer_with_svelte_kit.md +730 -0
  22. package/docs/hi/intlayer_with_vite+svelte.md +298 -108
  23. package/docs/id/intlayer_with_svelte_kit.md +730 -0
  24. package/docs/id/intlayer_with_vite+svelte.md +277 -99
  25. package/docs/it/intlayer_with_svelte_kit.md +762 -0
  26. package/docs/it/intlayer_with_vite+svelte.md +275 -99
  27. package/docs/ja/intlayer_with_svelte_kit.md +730 -0
  28. package/docs/ja/intlayer_with_vite+svelte.md +295 -110
  29. package/docs/ko/intlayer_with_svelte_kit.md +730 -0
  30. package/docs/ko/intlayer_with_vite+svelte.md +286 -199
  31. package/docs/pl/intlayer_with_svelte_kit.md +732 -0
  32. package/docs/pl/intlayer_with_vite+svelte.md +273 -101
  33. package/docs/pt/intlayer_with_svelte_kit.md +764 -0
  34. package/docs/pt/intlayer_with_vite+svelte.md +290 -96
  35. package/docs/ru/intlayer_with_svelte_kit.md +730 -0
  36. package/docs/ru/intlayer_with_vite+svelte.md +275 -99
  37. package/docs/tr/intlayer_with_svelte_kit.md +730 -0
  38. package/docs/tr/intlayer_with_vite+svelte.md +297 -119
  39. package/docs/vi/intlayer_with_svelte_kit.md +730 -0
  40. package/docs/vi/intlayer_with_vite+svelte.md +275 -102
  41. package/docs/zh/intlayer_with_svelte_kit.md +730 -0
  42. package/docs/zh/intlayer_with_vite+svelte.md +309 -107
  43. package/package.json +6 -6
  44. package/src/generated/docs.entry.ts +19 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-06-29
4
- title: Vite and Svelteアプリを翻訳する方法 – i18nガイド 2025
5
- description: Vite と Svelte のウェブサイトを多言語対応にする方法を紹介します。国際化(i18n)と翻訳のためのドキュメントに従ってください。
3
+ updatedAt: 2025-11-19
4
+ title: Vite Svelte アプリの翻訳方法 – i18n ガイド 2025
5
+ description: Vite と Svelte のウェブサイトを多言語対応にする方法を紹介します。国際化(i18n)と翻訳のドキュメントに従ってください。
6
6
  keywords:
7
7
  - 国際化
8
8
  - ドキュメント
@@ -14,35 +14,48 @@ slugs:
14
14
  - doc
15
15
  - environment
16
16
  - vite-and-svelte
17
- # applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
18
18
  history:
19
+ - version: 5.5.11
20
+ date: 2025-11-19
21
+ changes: ドキュメント更新
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
- changes: 履歴の初期化
24
+ changes: 履歴初期化
22
25
  ---
23
26
 
24
- # IntlayerVite and Svelteを翻訳する | 国際化(i18n)
27
+ # Intlayer を使って Vite Svelte のウェブサイトを翻訳する | 国際化(i18n)
25
28
 
26
- > このパッケージは開発中です。詳細は[issue](https://github.com/aymericzip/intlayer/issues/114)をご覧ください。Svelte向けIntlayerに興味がある場合は、issueに「いいね」をして関心を示してください。
29
+ ## 目次
27
30
 
28
- <!-- GitHubの[アプリケーションテンプレート](https://github.com/aymericzip/intlayer-solid-template)もご覧ください。 -->
31
+ <TOC/>
29
32
 
30
33
  ## Intlayerとは?
31
34
 
32
35
  **Intlayer**は、最新のウェブアプリケーションにおける多言語対応を簡素化するために設計された革新的なオープンソースの国際化(i18n)ライブラリです。
33
36
 
34
- Intlayerを使うと、以下が可能です:
37
+ Intlayerを使うことで、以下が可能になります:
35
38
 
36
39
  - **コンポーネントレベルで宣言的な辞書を使い、翻訳を簡単に管理**できます。
37
40
  - **メタデータ、ルート、コンテンツを動的にローカライズ**できます。
38
- - **自動生成される型情報によりTypeScriptのサポートを確保し、オートコンプリートやエラー検出を向上**させます。
39
- - **動的なロケール検出や切り替えなどの高度な機能を活用**できます。
41
+ - **自動生成される型によりTypeScriptのサポートを確保し、オートコンプリートやエラー検出を向上**させます。
42
+ - **動的なロケール検出や切り替えなどの高度な機能**を利用できます。
40
43
 
41
44
  ---
42
45
 
43
46
  ## ViteとSvelteアプリケーションでIntlayerをセットアップするステップバイステップガイド
44
47
 
45
- ### ステップ1: 依存パッケージのインストール
48
+ <iframe
49
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
50
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
51
+ title="Demo CodeSandbox - Intlayerを使ったアプリケーションの国際化方法"
52
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
53
+ loading="lazy"
54
+ />
55
+
56
+ GitHubの[アプリケーションテンプレート](https://github.com/aymericzip/intlayer-vite-svelte-template)を参照してください。
57
+
58
+ ### ステップ1: 依存関係のインストール
46
59
 
47
60
  npmを使って必要なパッケージをインストールします:
48
61
 
@@ -61,25 +74,26 @@ yarn add intlayer svelte-intlayer
61
74
  yarn add vite-intlayer --save-dev
62
75
  ```
63
76
 
64
- - **intlayer**
77
+ ```bash packageManager="bun"
78
+ bun add intlayer svelte-intlayer
79
+ bun add vite-intlayer --save-dev
80
+ ```
65
81
 
66
82
  - **intlayer**
67
83
 
68
- 設定管理、翻訳、[コンテンツ宣言](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/get_started.md)、トランスパイル、および[CLIコマンド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_cli.md)のための国際化ツールを提供するコアパッケージ。
84
+ 設定管理、翻訳、[コンテンツ宣言](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/intlayer_cli.md)のための国際化ツールを提供するコアパッケージ。
69
85
 
70
86
  - **svelte-intlayer**
71
-
72
87
  IntlayerをSvelteアプリケーションと統合するパッケージです。Svelteの国際化のためのコンテキストプロバイダーとフックを提供します。
73
88
 
74
89
  - **vite-intlayer**
75
-
76
90
  Intlayerを[Viteバンドラー](https://vite.dev/guide/why.html#why-bundle-for-production)と統合するためのViteプラグイン、およびユーザーの優先ロケール検出、クッキー管理、URLリダイレクト処理のためのミドルウェアを含みます。
77
91
 
78
- ### ステップ 2: プロジェクトの設定
92
+ ### ステップ2: プロジェクトの設定
79
93
 
80
94
  アプリケーションの言語を設定するための設定ファイルを作成します:
81
95
 
82
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
+ ```typescript fileName="intlayer.config.ts"
83
97
  import { Locales, type IntlayerConfig } from "intlayer";
84
98
 
85
99
  const config: IntlayerConfig = {
@@ -97,51 +111,13 @@ const config: IntlayerConfig = {
97
111
  export default config;
98
112
  ```
99
113
 
100
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
101
- import { Locales } from "intlayer";
102
-
103
- /** @type {import('intlayer').IntlayerConfig} */
104
- const config = {
105
- internationalization: {
106
- locales: [
107
- Locales.ENGLISH,
108
- Locales.FRENCH,
109
- Locales.SPANISH,
110
- // 他のロケール
111
- ],
112
- defaultLocale: Locales.ENGLISH,
113
- },
114
- };
115
-
116
- export default config;
117
- ```
118
-
119
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
120
- const { Locales } = require("intlayer");
121
-
122
- /** @type {import('intlayer').IntlayerConfig} */
123
- const config = {
124
- internationalization: {
125
- locales: [
126
- Locales.ENGLISH,
127
- Locales.FRENCH,
128
- Locales.SPANISH,
129
- // 他のロケール
130
- ],
131
- defaultLocale: Locales.ENGLISH,
132
- },
133
- };
134
-
135
- module.exports = config;
136
- ```
137
-
138
- > この設定ファイルを通じて、ローカライズされたURL、ミドルウェアのリダイレクション、クッキー名、コンテンツ宣言の場所や拡張子、コンソール上のIntlayerログの無効化などを設定できます。利用可能なパラメータの完全なリストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
114
+ > この設定ファイルを通じて、ローカライズされたURL、ミドルウェアのリダイレクション、クッキー名、コンテンツ宣言の場所と拡張子、コンソールでのIntlayerログの無効化などを設定できます。利用可能なパラメータの完全なリストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
139
115
 
140
116
  ### ステップ3: Vite設定にIntlayerを統合する
141
117
 
142
- 設定にintlayerプラグインを追加します。
118
+ intlayerプラグインを設定に追加します。
143
119
 
144
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
120
+ ```typescript fileName="vite.config.ts"
145
121
  import { defineConfig } from "vite";
146
122
  import { svelte } from "@sveltejs/vite-plugin-svelte";
147
123
  import { intlayer } from "vite-intlayer";
@@ -152,33 +128,11 @@ export default defineConfig({
152
128
  });
153
129
  ```
154
130
 
155
- ```javascript fileName="vite.config.mjs" codeFormat="esm"
156
- import { defineConfig } from "vite";
157
- import { svelte } from "@sveltejs/vite-plugin-svelte";
158
- import { intlayer } from "vite-intlayer";
159
-
160
- // https://vitejs.dev/config/
161
- export default defineConfig({
162
- plugins: [svelte(), intlayer()],
163
- });
164
- ```
165
-
166
- ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
167
- const { defineConfig } = require("vite");
168
- const react = require("@vitejs/plugin-react-swc");
169
- const { intlayer } = require("vite-intlayer");
131
+ > `intlayer()` Viteプラグインは、IntlayerをViteに統合するために使用されます。これにより、コンテンツ宣言ファイルのビルドが保証され、開発モードでの監視が行われます。また、Viteアプリケーション内でIntlayerの環境変数を定義します。さらに、パフォーマンス最適化のためのエイリアスも提供します。
170
132
 
171
- // https://vitejs.dev/config/
172
- module.exports = defineConfig({
173
- plugins: [react(), intlayer()],
174
- });
175
- ```
133
+ ### ステップ4: コンテンツの宣言
176
134
 
177
- > `intlayer()` Viteプラグインは、IntlayerをViteと統合するために使用されます。これはコンテンツ宣言ファイルのビルドを保証し、開発モードでそれらを監視します。Viteアプリケーション内でIntlayerの環境変数を定義します。さらに、パフォーマンス最適化のためのエイリアスも提供します。
178
-
179
- ### ステップ4: コンテンツを宣言する
180
-
181
- 翻訳を格納するためのコンテンツ宣言を作成および管理します:
135
+ 翻訳を格納するためのコンテンツ宣言を作成および管理します。
182
136
 
183
137
  ```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
184
138
  import { t, type Dictionary } from "intlayer";
@@ -201,6 +155,7 @@ export default appContent;
201
155
  import { t } from "intlayer";
202
156
 
203
157
  /** @type {import('intlayer').Dictionary} */
158
+ // アプリケーションのコンテンツ宣言
204
159
  const appContent = {
205
160
  key: "app",
206
161
  content: {
@@ -251,39 +206,271 @@ module.exports = appContent;
251
206
  }
252
207
  ```
253
208
 
254
- > コンテンツ宣言は、アプリケーション内のどこにでも定義できます。ただし、`contentDir` ディレクトリ(デフォルトは `./src`)に含まれている必要があります。また、コンテンツ宣言ファイルの拡張子(デフォルトは `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)に一致している必要があります。
209
+ > コンテンツ宣言は、アプリケーション内のどこにでも定義できます。`contentDir`ディレクトリ(デフォルトは`./src`)に含まれていれば有効です。また、コンテンツ宣言ファイルの拡張子(デフォルトは`.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)に一致する必要があります。
255
210
 
256
- > 詳細については、[コンテンツ宣言のドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/get_started.md)を参照してください。
211
+ > 詳細については、[コンテンツ宣言のドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)を参照してください。
257
212
 
258
213
  ### ステップ5: コード内でIntlayerを利用する
259
214
 
260
- [未完了]
215
+ ```svelte fileName="src/App.svelte"
216
+ <script>
217
+ import { useIntlayer } from "svelte-intlayer";
218
+
219
+ const content = useIntlayer("app");
220
+ </script>
221
+
222
+ <div>
223
+
224
+
225
+ <!-- コンテンツをシンプルにレンダリング -->
226
+ <h1>{$content.title}</h1>
227
+ <!-- エディターを使って編集可能なコンテンツとしてレンダリング -->
228
+ <h1><svelte:component this={$content.title} /></h1>
229
+ <!-- コンテンツを文字列としてレンダリング -->
230
+ <div aria-label={$content.title.value}></div>
231
+ ```
261
232
 
262
233
  ### (オプション)ステップ6: コンテンツの言語を変更する
263
234
 
264
- [未完了]
235
+ ```svelte fileName="src/App.svelte"
236
+ <script lang="ts">
237
+ import { getLocaleName } from 'intlayer';
238
+ import { useLocale } from 'svelte-intlayer';
265
239
 
266
- ### (オプション)ステップ7: アプリケーションにローカライズされたルーティングを追加する
240
+ // ロケール情報と setLocale 関数を取得
241
+ const { locale, availableLocales, setLocale } = useLocale();
267
242
 
268
- [未完了]
243
+ // ロケール変更を処理
244
+ const changeLocale = (event: Event) => {
245
+ const target = event.target as HTMLSelectElement;
246
+ const newLocale = target.value;
247
+ setLocale(newLocale);
248
+ };
249
+ </script>
250
+
251
+ <div>
252
+ <select value={$locale} on:change={changeLocale}>
253
+ {#each availableLocales ?? [] as loc}
254
+ <option value={loc}>
255
+ {getLocaleName(loc)}
256
+ </option>
257
+ {/each}
258
+ </select>
259
+ </div>
260
+ ```
261
+
262
+ ### (オプション)ステップ7:Markdownのレンダリング
269
263
 
270
- ### (オプション)ステップ8: ロケールが変更されたときにURLを変更する
264
+ Intlayerは、Markdownコンテンツを直接Svelteアプリケーション内でレンダリングすることをサポートしています。デフォルトでは、Markdownはプレーンテキストとして扱われます。MarkdownをリッチなHTMLに変換するには、`@humanspeak/svelte-markdown`や他のMarkdownパーサーを統合することができます。
271
265
 
272
- [未完了]
266
+ > `intlayer`パッケージを使ってMarkdownコンテンツを宣言する方法については、[markdownドキュメント](https://github.com/aymericzip/intlayer/tree/main/docs/docs/ja/dictionary/markdown.md)をご覧ください。
273
267
 
274
- ### (オプション)ステップ9: HTMLの言語属性と方向属性を切り替える
268
+ ```svelte fileName="src/App.svelte"
269
+ <script>
270
+ import { setIntlayerMarkdown } from "svelte-intlayer";
275
271
 
276
- [未完了]
272
+ setIntlayerMarkdown((markdown) =>
273
+ // マークダウンコンテンツを文字列としてレンダリングする
274
+ return markdown;
275
+ );
276
+ </script>
277
+
278
+ <h1>{$content.markdownContent}</h1>
279
+ ```
277
280
 
278
- ### (オプション)ステップ10: ローカライズされたリンクコンポーネントを作成する
281
+ > `content.markdownContent.metadata.xxx` プロパティを使って、マークダウンのフロントマターのデータにもアクセスできます。
279
282
 
280
- [未完了]
283
+ ### (オプション)ステップ8: intlayerエディター / CMS のセットアップ
281
284
 
282
- ### Gitの設定
285
+ intlayerエディターをセットアップするには、[intlayerエディターのドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)に従ってください。
283
286
 
284
- Intlayerによって生成されたファイルは無視することを推奨します。これにより、Gitリポジトリへのコミットを避けることができます。
287
+ intlayer CMSをセットアップするには、[intlayer CMSのドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)に従ってください。
285
288
 
286
- これを行うには、以下の指示を `.gitignore` ファイルに追加できます。
289
+ 並行して、Svelteアプリケーション内では、レイアウトまたはアプリケーションのルートに以下の行を追加する必要があります。
290
+
291
+ ```svelte fileName="src/layout.svelte"
292
+ import { useIntlayerEditor } from "svelte-intlayer";
293
+
294
+ useIntlayerEditor();
295
+ ```
296
+
297
+ ### (オプション)ステップ7:アプリケーションにローカライズされたルーティングを追加する
298
+
299
+ Svelteアプリケーションでローカライズされたルーティングを扱うには、`svelte-spa-router`とIntlayerの`localeFlatMap`を組み合わせて、各ロケールのルートを生成できます。
300
+
301
+ まず、`svelte-spa-router`をインストールします:
302
+
303
+ ```bash packageManager="npm"
304
+ npm install svelte-spa-router
305
+ ```
306
+
307
+ ```bash packageManager="pnpm"
308
+ pnpm add svelte-spa-router
309
+ ```
310
+
311
+ ```bash packageManager="yarn"
312
+ yarn add svelte-spa-router
313
+ ```
314
+
315
+ ```bash packageManager="bun"
316
+ bun add svelte-spa-router
317
+ ```
318
+
319
+ 次に、ルートを定義するために `Router.svelte` ファイルを作成します:
320
+
321
+ ```svelte fileName="src/Router.svelte"
322
+ <script lang="ts">
323
+ import { localeFlatMap } from "intlayer";
324
+ import Router from "svelte-spa-router";
325
+ import { wrap } from "svelte-spa-router/wrap";
326
+ import App from "./App.svelte";
327
+
328
+ const routes = Object.fromEntries(
329
+ localeFlatMap(({locale, urlPrefix}) => [
330
+ [
331
+ urlPrefix || '/',
332
+ wrap({
333
+ component: App as any,
334
+ props: {
335
+ locale,
336
+ },
337
+ }),
338
+ ],
339
+ ])
340
+ );
341
+ </script>
342
+
343
+ <Router {routes} />
344
+ ```
345
+
346
+ `main.ts` を更新して、`App` の代わりに `Router` コンポーネントをマウントします:
347
+
348
+ ```typescript fileName="src/main.ts"
349
+ import { mount } from "svelte";
350
+ import Router from "./Router.svelte";
351
+
352
+ const app = mount(Router, {
353
+ typescript fileName="src/main.ts"
354
+ import { mount } from "svelte";
355
+ import Router from "./Router.svelte";
356
+
357
+ const app = mount(Router, {
358
+ target: document.getElementById("app")!, // アプリのマウント先のDOM要素
359
+ });
360
+
361
+ export default app;
362
+ ```
363
+
364
+ 最後に、`App.svelte` を更新して `locale` プロパティを受け取り、`useIntlayer` と共に使用します:
365
+
366
+ ```svelte fileName="src/App.svelte"
367
+ <script lang="ts">
368
+ import type { Locale } from 'intlayer';
369
+ import { useIntlayer } from 'svelte-intlayer';
370
+ import Counter from './lib/Counter.svelte';
371
+ import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
372
+
373
+ export let locale: Locale; // ロケールを受け取る
374
+
375
+ $: content = useIntlayer('app', locale); // ロケールに基づくコンテンツを取得
376
+ </script>
377
+
378
+ <main>
379
+ <div class="locale-switcher-container">
380
+ <LocaleSwitcher currentLocale={locale} /> <!-- 現在のロケールを渡す -->
381
+ </div>
382
+
383
+ <!-- ... アプリの残りの部分 ... -->
384
+ </main>
385
+ ```
386
+
387
+ #### サーバーサイドルーティングの設定(オプション)
388
+
389
+ 並行して、`intlayerProxy` を使用してアプリケーションにサーバーサイドルーティングを追加することもできます。このプラグインは、URL に基づいて現在のロケールを自動的に検出し、適切なロケールクッキーを設定します。ロケールが指定されていない場合、プラグインはユーザーのブラウザの言語設定に基づいて最適なロケールを判断します。ロケールが検出されない場合は、デフォルトのロケールにリダイレクトします。
390
+
391
+ > `intlayerProxy` を本番環境で使用するには、`vite-intlayer` パッケージを `devDependencies` から `dependencies` に切り替える必要があることに注意してください。
392
+
393
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
394
+ import { defineConfig } from "vite";
395
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
396
+ import { intlayer, intlayerProxy } from "vite-intlayer";
397
+
398
+ typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
399
+ import { defineConfig } from "vite";
400
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
401
+ import { intlayer, intlayerProxy } from "vite-intlayer";
402
+
403
+ // https://vitejs.dev/config/
404
+ export default defineConfig({
405
+ plugins: [svelte(), intlayer(), intlayerProxy()],
406
+ });
407
+ ```
408
+
409
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
410
+ import { defineConfig } from "vite";
411
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
412
+ import { intlayer, intlayerProxy } from "vite-intlayer";
413
+
414
+ // https://vitejs.dev/config/
415
+ export default defineConfig({
416
+ plugins: [svelte(), intlayer(), intlayerProxy()],
417
+ });
418
+ ```
419
+
420
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
421
+ const { defineConfig } = require("vite");
422
+ const { svelte } = require("@sveltejs/vite-plugin-svelte");
423
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
424
+
425
+ // https://vitejs.dev/config/
426
+ module.exports = defineConfig({
427
+ plugins: [svelte(), intlayer(), intlayerProxy()],
428
+ });
429
+ plugins: [svelte(), intlayer(), intlayerProxy()],
430
+ });
431
+ ```
432
+
433
+ ### (オプション)ステップ8:ロケールが変更されたときにURLを変更する
434
+
435
+ ユーザーが言語を切り替え、URLをそれに応じて更新できるようにするために、`LocaleSwitcher` コンポーネントを作成できます。このコンポーネントは `intlayer` の `getLocalizedUrl` と `svelte-spa-router` の `push` を使用します。
436
+
437
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
438
+ <script lang="ts">
439
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
440
+ import { useLocale } from "svelte-intlayer";
441
+ import { push } from "svelte-spa-router";
442
+
443
+ export let currentLocale: string | undefined = undefined;
444
+
445
+ // ロケール情報を取得
446
+ const { locale, availableLocales } = useLocale();
447
+
448
+ // ロケール変更を処理
449
+ const changeLocale = (event: Event) => {
450
+ const target = event.target as HTMLSelectElement;
451
+ const newLocale = target.value;
452
+ const currentUrl = window.location.pathname;
453
+ const url = getLocalizedUrl( currentUrl, newLocale);
454
+ push(url);
455
+ };
456
+ </script>
457
+
458
+ <div class="locale-switcher">
459
+ <select value={currentLocale ?? $locale} onchange={changeLocale}>
460
+ {#each availableLocales ?? [] as loc}
461
+ <option value={loc}>
462
+ {getLocaleName(loc)}
463
+ </option>
464
+ {/each}
465
+ </select>
466
+ </div>
467
+ ```
468
+
469
+ ### Git 設定
470
+
471
+ Intlayer によって生成されたファイルは無視することを推奨します。これにより、Git リポジトリへの不要なコミットを避けることができます。
472
+
473
+ これを行うには、`.gitignore` ファイルに以下の指示を追加してください:
287
474
 
288
475
  ```plaintext
289
476
  # Intlayer によって生成されたファイルを無視する
@@ -292,23 +479,21 @@ Intlayerによって生成されたファイルは無視することを推奨し
292
479
 
293
480
  ### VS Code 拡張機能
294
481
 
295
- Intlayer での開発体験を向上させるために、公式の **Intlayer VS Code 拡張機能** をインストールできます。
482
+ Intlayerでの開発体験を向上させるために、公式の**Intlayer VS Code拡張機能**をインストールできます。
296
483
 
297
- [VS Code Marketplace からインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
484
+ [VS Codeマーケットプレイスからインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
298
485
 
299
486
  この拡張機能は以下を提供します:
300
487
 
301
- - 翻訳キーの **オートコンプリート**。
302
- - 欠落している翻訳の **リアルタイムエラー検出**。
303
- - 翻訳されたコンテンツの **インラインプレビュー**。
304
- - 翻訳を簡単に作成・更新するための **クイックアクション**。
488
+ - 翻訳キーの**オートコンプリート**。
489
+ - 欠落している翻訳の**リアルタイムエラー検出**。
490
+ - 翻訳されたコンテンツの**インラインプレビュー**。
491
+ - 翻訳を簡単に作成・更新できる**クイックアクション**。
305
492
 
306
- 拡張機能の使い方の詳細については、[Intlayer VS Code 拡張機能のドキュメント](https://intlayer.org/doc/vs-code-extension)を参照してください。
493
+ 拡張機能の使い方の詳細については、[Intlayer VS Code拡張機能のドキュメント](https://intlayer.org/doc/vs-code-extension)を参照してください。
307
494
 
308
495
  ---
309
496
 
310
- ### さらに進むには
497
+ ### さらに進む
311
498
 
312
- さらに進むには、[ビジュアルエディター](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)を使用してコンテンツを外部化することができます。
313
-
314
- ---
499
+ さらに進めるために、[ビジュアルエディター](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)を使用してコンテンツを外部化することができます。