@intlayer/docs 7.1.9 → 7.2.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.
Files changed (45) 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 +738 -0
  9. package/docs/ar/intlayer_with_vite+svelte.md +288 -104
  10. package/docs/de/intlayer_with_svelte_kit.md +738 -0
  11. package/docs/de/intlayer_with_vite+svelte.md +302 -101
  12. package/docs/en/intlayer_with_nextjs_16.md +10 -2
  13. package/docs/en/intlayer_with_svelte_kit.md +570 -0
  14. package/docs/en/intlayer_with_vite+svelte.md +22 -6
  15. package/docs/en/introduction.md +2 -0
  16. package/docs/en-GB/intlayer_with_svelte_kit.md +738 -0
  17. package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
  18. package/docs/es/intlayer_with_svelte_kit.md +738 -0
  19. package/docs/es/intlayer_with_vite+svelte.md +300 -107
  20. package/docs/fr/intlayer_with_svelte_kit.md +770 -0
  21. package/docs/fr/intlayer_with_vite+svelte.md +297 -101
  22. package/docs/hi/intlayer_with_svelte_kit.md +738 -0
  23. package/docs/hi/intlayer_with_vite+svelte.md +298 -108
  24. package/docs/id/intlayer_with_svelte_kit.md +738 -0
  25. package/docs/id/intlayer_with_vite+svelte.md +277 -99
  26. package/docs/it/intlayer_with_svelte_kit.md +770 -0
  27. package/docs/it/intlayer_with_vite+svelte.md +275 -99
  28. package/docs/ja/intlayer_with_svelte_kit.md +738 -0
  29. package/docs/ja/intlayer_with_vite+svelte.md +295 -110
  30. package/docs/ko/intlayer_with_svelte_kit.md +738 -0
  31. package/docs/ko/intlayer_with_vite+svelte.md +286 -199
  32. package/docs/pl/intlayer_with_svelte_kit.md +740 -0
  33. package/docs/pl/intlayer_with_vite+svelte.md +273 -101
  34. package/docs/pt/intlayer_with_svelte_kit.md +772 -0
  35. package/docs/pt/intlayer_with_vite+svelte.md +290 -96
  36. package/docs/ru/intlayer_with_svelte_kit.md +738 -0
  37. package/docs/ru/intlayer_with_vite+svelte.md +275 -99
  38. package/docs/tr/intlayer_with_svelte_kit.md +738 -0
  39. package/docs/tr/intlayer_with_vite+svelte.md +297 -119
  40. package/docs/vi/intlayer_with_svelte_kit.md +738 -0
  41. package/docs/vi/intlayer_with_vite+svelte.md +275 -102
  42. package/docs/zh/intlayer_with_svelte_kit.md +738 -0
  43. package/docs/zh/intlayer_with_vite+svelte.md +309 -107
  44. package/package.json +9 -9
  45. package/src/generated/docs.entry.ts +19 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-11-19
4
4
  title: Cara menerjemahkan aplikasi Vite dan Svelte Anda – panduan i18n 2025
5
5
  description: Temukan cara membuat situs web Vite dan Svelte Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
6
6
  keywords:
@@ -14,37 +14,46 @@ 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: Memperbarui dokumen
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
- changes: Inisialisasi riwayat
24
+ changes: Memulai riwayat
22
25
  ---
23
26
 
24
27
  # Terjemahkan situs web Vite dan Svelte Anda menggunakan Intlayer | Internasionalisasi (i18n)
25
28
 
26
- > Paket ini sedang dalam pengembangan. Lihat [issue](https://github.com/aymericzip/intlayer/issues/114) untuk informasi lebih lanjut. Tunjukkan minat Anda pada Intlayer untuk Svelte dengan menyukai issue tersebut
27
-
28
- <!-- Lihat [Application Template](https://github.com/aymericzip/intlayer-solid-template) di GitHub. -->
29
-
30
29
  ## Daftar Isi
31
30
 
32
31
  <TOC/>
33
32
 
34
33
  ## Apa itu Intlayer?
35
34
 
36
- **Intlayer** adalah pustaka internasionalisasi (i18n) sumber terbuka yang inovatif, dirancang untuk mempermudah dukungan multibahasa dalam aplikasi web modern.
35
+ **Intlayer** adalah pustaka internasionalisasi (i18n) open-source yang inovatif, dirancang untuk menyederhanakan dukungan multibahasa dalam aplikasi web modern.
37
36
 
38
37
  Dengan Intlayer, Anda dapat:
39
38
 
40
39
  - **Mengelola terjemahan dengan mudah** menggunakan kamus deklaratif di tingkat komponen.
41
40
  - **Melokalkan metadata**, rute, dan konten secara dinamis.
42
- - **Memastikan dukungan TypeScript** dengan tipe yang dihasilkan secara otomatis, meningkatkan autocompletion dan deteksi kesalahan.
43
- - **Manfaatkan fitur canggih**, seperti deteksi dan pergantian locale secara dinamis.
41
+ - **Menjamin dukungan TypeScript** dengan tipe yang dihasilkan secara otomatis, meningkatkan autocompletion dan deteksi kesalahan.
42
+ - **Memanfaatkan fitur canggih**, seperti deteksi dan pergantian locale secara dinamis.
44
43
 
45
44
  ---
46
45
 
47
- ## Panduan Langkah demi Langkah untuk Mengatur Intlayer di Aplikasi Vite dan Svelte
46
+ ## Panduan Langkah demi Langkah untuk Mengatur Intlayer dalam Aplikasi Vite dan Svelte
47
+
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 - Cara Menginternasionalisasi aplikasi Anda menggunakan Intlayer"
52
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
53
+ loading="lazy"
54
+ />
55
+
56
+ Lihat [Template Aplikasi](https://github.com/aymericzip/intlayer-vite-svelte-template) di GitHub.
48
57
 
49
58
  ### Langkah 1: Instalasi Dependensi
50
59
 
@@ -65,23 +74,26 @@ yarn add intlayer svelte-intlayer
65
74
  yarn add vite-intlayer --save-dev
66
75
  ```
67
76
 
68
- - **intlayer**
77
+ ```bash packageManager="bun"
78
+ bun add intlayer svelte-intlayer
79
+ bun add vite-intlayer --save-dev
80
+ ```
69
81
 
70
82
  - **intlayer**
71
83
 
72
84
  Paket inti yang menyediakan alat internasionalisasi untuk manajemen konfigurasi, terjemahan, [deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md), transpile, dan [perintah CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_cli.md).
73
85
 
74
86
  - **svelte-intlayer**
75
- Paket yang mengintegrasikan Intlayer dengan aplikasi Svelte. Paket ini menyediakan context providers dan hooks untuk internasionalisasi Svelte.
87
+ Paket yang mengintegrasikan Intlayer dengan aplikasi Svelte. Ini menyediakan context providers dan hooks untuk internasionalisasi Svelte.
76
88
 
77
- - **vite-intlayer**
78
- Termasuk plugin Vite untuk mengintegrasikan Intlayer dengan [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), serta middleware untuk mendeteksi locale pilihan pengguna, mengelola cookies, dan menangani pengalihan URL.
89
+ - **vite-intlayer**
90
+ Termasuk plugin Vite untuk mengintegrasikan Intlayer dengan [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), serta middleware untuk mendeteksi locale yang dipilih pengguna, mengelola cookie, dan menangani pengalihan URL.
79
91
 
80
92
  ### Langkah 2: Konfigurasi proyek Anda
81
93
 
82
94
  Buat file konfigurasi untuk mengatur bahasa aplikasi Anda:
83
95
 
84
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
+ ```typescript fileName="intlayer.config.ts"
85
97
  import { Locales, type IntlayerConfig } from "intlayer";
86
98
 
87
99
  const config: IntlayerConfig = {
@@ -90,7 +102,7 @@ const config: IntlayerConfig = {
90
102
  Locales.ENGLISH,
91
103
  Locales.FRENCH,
92
104
  Locales.SPANISH,
93
- // Bahasa lain milik Anda
105
+ // Locale lain milik Anda
94
106
  ],
95
107
  defaultLocale: Locales.ENGLISH,
96
108
  },
@@ -99,51 +111,13 @@ const config: IntlayerConfig = {
99
111
  export default config;
100
112
  ```
101
113
 
102
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
103
- import { Locales } from "intlayer";
104
-
105
- /** @type {import('intlayer').IntlayerConfig} */
106
- const config = {
107
- internationalization: {
108
- locales: [
109
- Locales.ENGLISH,
110
- Locales.FRENCH,
111
- Locales.SPANISH,
112
- // Bahasa lain milik Anda
113
- ],
114
- defaultLocale: Locales.ENGLISH,
115
- },
116
- };
117
-
118
- export default config;
119
- ```
120
-
121
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
122
- const { Locales } = require("intlayer");
123
-
124
- /** @type {import('intlayer').IntlayerConfig} */
125
- const config = {
126
- internationalization: {
127
- locales: [
128
- Locales.ENGLISH,
129
- Locales.FRENCH,
130
- Locales.SPANISH,
131
- // Bahasa lain milik Anda
132
- ],
133
- defaultLocale: Locales.ENGLISH,
134
- },
135
- };
136
-
137
- module.exports = config;
138
- ```
139
-
140
114
  > Melalui file konfigurasi ini, Anda dapat mengatur URL yang dilokalkan, pengalihan middleware, nama cookie, lokasi dan ekstensi deklarasi konten Anda, menonaktifkan log Intlayer di konsol, dan lainnya. Untuk daftar lengkap parameter yang tersedia, lihat [dokumentasi konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
141
115
 
142
116
  ### Langkah 3: Integrasikan Intlayer dalam Konfigurasi Vite Anda
143
117
 
144
118
  Tambahkan plugin intlayer ke dalam konfigurasi Anda.
145
119
 
146
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
120
+ ```typescript fileName="vite.config.ts"
147
121
  import { defineConfig } from "vite";
148
122
  import { svelte } from "@sveltejs/vite-plugin-svelte";
149
123
  import { intlayer } from "vite-intlayer";
@@ -154,29 +128,7 @@ export default defineConfig({
154
128
  });
155
129
  ```
156
130
 
157
- ```javascript fileName="vite.config.mjs" codeFormat="esm"
158
- import { defineConfig } from "vite";
159
- import { svelte } from "@sveltejs/vite-plugin-svelte";
160
- import { intlayer } from "vite-intlayer";
161
-
162
- // https://vitejs.dev/config/
163
- export default defineConfig({
164
- plugins: [svelte(), intlayer()],
165
- });
166
- ```
167
-
168
- ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
169
- const { defineConfig } = require("vite");
170
- const react = require("@vitejs/plugin-react-swc");
171
- const { intlayer } = require("vite-intlayer");
172
-
173
- // https://vitejs.dev/config/
174
- module.exports = defineConfig({
175
- plugins: [react(), intlayer()],
176
- });
177
- ```
178
-
179
- > Plugin Vite `intlayer()` digunakan untuk mengintegrasikan Intlayer dengan Vite. Plugin ini memastikan pembuatan file deklarasi konten dan memantau file tersebut dalam mode pengembangan. Plugin ini juga mendefinisikan variabel lingkungan Intlayer di dalam aplikasi Vite. Selain itu, plugin ini menyediakan alias untuk mengoptimalkan performa.
131
+ > Plugin Vite `intlayer()` digunakan untuk mengintegrasikan Intlayer dengan Vite. Plugin ini memastikan pembuatan file deklarasi konten dan memantau file tersebut dalam mode pengembangan. Plugin ini juga mendefinisikan variabel lingkungan Intlayer dalam aplikasi Vite. Selain itu, plugin ini menyediakan alias untuk mengoptimalkan performa.
180
132
 
181
133
  ### Langkah 4: Deklarasikan Konten Anda
182
134
 
@@ -203,6 +155,7 @@ export default appContent;
203
155
  import { t } from "intlayer";
204
156
 
205
157
  /** @type {import('intlayer').Dictionary} */
158
+ // Mendefinisikan konten aplikasi dengan terjemahan untuk beberapa bahasa
206
159
  const appContent = {
207
160
  key: "app",
208
161
  content: {
@@ -221,7 +174,7 @@ export default appContent;
221
174
  const { t } = require("intlayer");
222
175
 
223
176
  /** @type {import('intlayer').Dictionary} */
224
- // Deklarasi konten aplikasi
177
+ // Mendefinisikan konten aplikasi dengan terjemahan untuk beberapa bahasa
225
178
  const appContent = {
226
179
  key: "app",
227
180
  content: {
@@ -253,37 +206,264 @@ module.exports = appContent;
253
206
  }
254
207
  ```
255
208
 
256
- > Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama sudah termasuk ke dalam direktori `contentDir` (secara default, `./src`). Dan sesuai dengan ekstensi file deklarasi konten (secara default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
209
+ > Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama mereka dimasukkan ke dalam direktori `contentDir` (secara default, `./src`). Dan sesuai dengan ekstensi file deklarasi konten (secara default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
210
+
211
+ > Untuk detail lebih lanjut, lihat [dokumentasi deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md).
212
+
213
+ ### Langkah 5: Gunakan Intlayer dalam Kode Anda
214
+
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
+ <!-- Render konten sebagai konten sederhana -->
226
+ <h1>{$content.title}</h1>
227
+ <!-- Untuk merender konten yang dapat diedit menggunakan editor -->
228
+ <h1><svelte:component this={$content.title} /></h1>
229
+ <!-- Untuk merender konten sebagai string -->
230
+ <div aria-label={$content.title.value}></div>
231
+ ```
232
+
233
+ ### (Opsional) Langkah 6: Ubah bahasa konten Anda
257
234
 
258
- > Untuk informasi lebih lanjut, lihat [dokumentasi deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md).
235
+ ```svelte fileName="src/App.svelte"
236
+ <script lang="ts">
237
+ import { getLocaleName } from 'intlayer';
238
+ import { useLocale } from 'svelte-intlayer';
259
239
 
260
- ### Langkah 5: Memanfaatkan Intlayer dalam Kode Anda
240
+ // Dapatkan informasi locale dan fungsi setLocale
241
+ const { locale, availableLocales, setLocale } = useLocale();
261
242
 
262
- [akan diselesaikan]
243
+ // Tangani perubahan locale
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
+ ```
263
261
 
264
- ### (Opsional) Langkah 6: Mengubah bahasa konten Anda
262
+ ### (Opsional) Langkah 7: Render Markdown
265
263
 
266
- [akan diselesaikan]
264
+ Intlayer mendukung rendering konten Markdown langsung di aplikasi Svelte Anda. Secara default, Markdown diperlakukan sebagai teks biasa. Untuk mengubah Markdown menjadi HTML kaya, Anda dapat mengintegrasikan `@humanspeak/svelte-markdown`, atau parser markdown lainnya.
267
265
 
268
- ### (Opsional) Langkah 7: Menambahkan Routing yang Dilokalkan ke aplikasi Anda
266
+ > Untuk melihat cara mendeklarasikan konten markdown menggunakan paket `intlayer`, lihat [dokumen markdown](https://github.com/aymericzip/intlayer/tree/main/docs/docs/id/dictionary/markdown.md).
269
267
 
270
- [akan diselesaikan]
268
+ ```svelte fileName="src/App.svelte"
269
+ <script>
270
+ import { setIntlayerMarkdown } from "svelte-intlayer";
271
271
 
272
- ### (Opsional) Langkah 8: Mengubah URL saat locale berubah
272
+ setIntlayerMarkdown((markdown) =>
273
+ // render konten markdown sebagai string
274
+ return markdown;
275
+ );
276
+ </script>
273
277
 
274
- [akan diselesaikan]
278
+ <h1>{$content.markdownContent}</h1>
279
+ ```
280
+
281
+ > Anda juga dapat mengakses data front-matter markdown Anda menggunakan properti `content.markdownContent.metadata.xxx`.
282
+
283
+ ### (Opsional) Langkah 8: Siapkan editor / CMS intlayer
284
+
285
+ Untuk menyiapkan editor intlayer, Anda harus mengikuti [dokumentasi editor intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md).
275
286
 
276
- ### (Opsional) Langkah 9: Mengganti Atribut Bahasa dan Arah HTML
287
+ Untuk menyiapkan CMS intlayer, Anda harus mengikuti [dokumentasi CMS intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md).
288
+
289
+ Secara paralel, dalam aplikasi Svelte Anda, Anda harus menambahkan baris berikut di layout, atau di root aplikasi Anda:
290
+
291
+ ```svelte fileName="src/layout.svelte"
292
+ import { useIntlayerEditor } from "svelte-intlayer";
293
+
294
+ useIntlayerEditor();
295
+ ```
277
296
 
278
- [akan diselesaikan]
297
+ ### (Opsional) Langkah 7: Tambahkan Routing yang dilokalkan ke aplikasi Anda
279
298
 
280
- ### (Opsional) Langkah 10: Membuat Komponen Link yang Dilokalkan
299
+ Untuk menangani routing yang dilokalkan dalam aplikasi Svelte Anda, Anda dapat menggunakan `svelte-spa-router` bersama dengan `localeFlatMap` dari Intlayer untuk menghasilkan rute untuk setiap locale.
281
300
 
282
- [akan diselesaikan]
301
+ Pertama, instal `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
+ Kemudian, buat file `Router.svelte` untuk mendefinisikan rute Anda:
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
+ Perbarui `main.ts` Anda untuk memasang komponen `Router` menggantikan `App`:
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
+ target: document.getElementById("app")!,
354
+ });
355
+
356
+ export default app;
357
+ ```
358
+
359
+ Terakhir, perbarui `App.svelte` Anda untuk menerima properti `locale` dan menggunakannya dengan `useIntlayer`:
360
+
361
+ ```svelte fileName="src/App.svelte"
362
+ <script lang="ts">
363
+ import type { Locale } from 'intlayer';
364
+ import { useIntlayer } from 'svelte-intlayer';
365
+ import Counter from './lib/Counter.svelte';
366
+ import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
367
+
368
+ export let locale: Locale;
369
+
370
+ $: content = useIntlayer('app', locale);
371
+ </script>
372
+
373
+ <main>
374
+ <div class="locale-switcher-container">
375
+ <LocaleSwitcher currentLocale={locale} />
376
+ </div>
377
+
378
+ <!-- ... sisa aplikasi Anda ... -->
379
+ </main>
380
+ ```
381
+
382
+ #### Konfigurasi Routing Server-Side (Opsional)
383
+
384
+ Secara paralel, Anda juga dapat menggunakan `intlayerProxy` untuk menambahkan routing sisi server ke aplikasi Anda. Plugin ini akan secara otomatis mendeteksi locale saat ini berdasarkan URL dan mengatur cookie locale yang sesuai. Jika tidak ada locale yang ditentukan, plugin akan menentukan locale yang paling sesuai berdasarkan preferensi bahasa browser pengguna. Jika tidak ada locale yang terdeteksi, maka akan mengarahkan ulang ke locale default.
385
+
386
+ > Perlu diperhatikan bahwa untuk menggunakan `intlayerProxy` di produksi, Anda perlu memindahkan paket `vite-intlayer` dari `devDependencies` ke `dependencies`.
387
+
388
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
389
+ import { defineConfig } from "vite";
390
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
391
+ import { intlayer, intlayerProxy } from "vite-intlayer";
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
+ // https://vitejs.dev/config/
399
+ export default defineConfig({
400
+ plugins: [svelte(), intlayer(), intlayerProxy()],
401
+ });
402
+ ```
403
+
404
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
405
+ import { defineConfig } from "vite";
406
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
407
+ import { intlayer, intlayerProxy } from "vite-intlayer";
408
+
409
+ // https://vitejs.dev/config/
410
+ export default defineConfig({
411
+ plugins: [svelte(), intlayer(), intlayerProxy()],
412
+ });
413
+ ```
414
+
415
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
416
+ const { defineConfig } = require("vite");
417
+ const { svelte } = require("@sveltejs/vite-plugin-svelte");
418
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
419
+
420
+ // https://vitejs.dev/config/
421
+ module.exports = defineConfig({
422
+ plugins: [svelte(), intlayer(), intlayerProxy()],
423
+ });
424
+ plugins: [svelte(), intlayer(), intlayerProxy()],
425
+ });
426
+ ```
427
+
428
+ ### (Opsional) Langkah 8: Ubah URL saat locale berubah
429
+
430
+ Untuk memungkinkan pengguna mengganti bahasa dan memperbarui URL sesuai, Anda dapat membuat komponen `LocaleSwitcher`. Komponen ini akan menggunakan `getLocalizedUrl` dari `intlayer` dan `push` dari `svelte-spa-router`.
431
+
432
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
433
+ <script lang="ts">
434
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
435
+ import { useLocale } from "svelte-intlayer";
436
+ import { push } from "svelte-spa-router";
437
+
438
+ export let currentLocale: string | undefined = undefined;
439
+
440
+ // Dapatkan informasi locale
441
+ const { locale, availableLocales } = useLocale();
442
+
443
+ // Tangani perubahan locale
444
+ const changeLocale = (event: Event) => {
445
+ const target = event.target as HTMLSelectElement;
446
+ const newLocale = target.value;
447
+ const currentUrl = window.location.pathname;
448
+ const url = getLocalizedUrl( currentUrl, newLocale);
449
+ push(url);
450
+ };
451
+ </script>
452
+
453
+ <div class="locale-switcher">
454
+ <select value={currentLocale ?? $locale} onchange={changeLocale}>
455
+ {#each availableLocales ?? [] as loc}
456
+ <option value={loc}>
457
+ {getLocaleName(loc)}
458
+ </option>
459
+ {/each}
460
+ </select>
461
+ </div>
462
+ ```
283
463
 
284
464
  ### Konfigurasi Git
285
465
 
286
- Disarankan untuk mengabaikan file yang dihasilkan oleh Intlayer. Ini memungkinkan Anda menghindari meng-commit file tersebut ke repositori Git Anda.
466
+ Disarankan untuk mengabaikan file-file yang dihasilkan oleh Intlayer. Ini memungkinkan Anda untuk menghindari meng-commit file tersebut ke repositori Git Anda.
287
467
 
288
468
  Untuk melakukan ini, Anda dapat menambahkan instruksi berikut ke file `.gitignore` Anda:
289
469
 
@@ -301,16 +481,14 @@ Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat meng
301
481
  Ekstensi ini menyediakan:
302
482
 
303
483
  - **Autocompletion** untuk kunci terjemahan.
304
- - **Deteksi kesalahan secara real-time** untuk terjemahan yang hilang.
484
+ - **Deteksi kesalahan waktu nyata** untuk terjemahan yang hilang.
305
485
  - **Pratinjau inline** dari konten yang diterjemahkan.
306
486
  - **Tindakan cepat** untuk dengan mudah membuat dan memperbarui terjemahan.
307
487
 
308
- Untuk informasi lebih lanjut tentang cara menggunakan ekstensi ini, lihat [dokumentasi Ekstensi VS Code Intlayer](https://intlayer.org/doc/vs-code-extension).
488
+ Untuk detail lebih lanjut tentang cara menggunakan ekstensi ini, lihat [dokumentasi Ekstensi VS Code Intlayer](https://intlayer.org/doc/vs-code-extension).
309
489
 
310
490
  ---
311
491
 
312
492
  ### Melangkah Lebih Jauh
313
493
 
314
494
  Untuk melangkah lebih jauh, Anda dapat mengimplementasikan [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md) atau mengeksternalisasi konten Anda menggunakan [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md).
315
-
316
- ---