@intlayer/docs 9.3.0 → 9.3.1

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 (162) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +4 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +4 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/docs/ar/configuration.md +10 -10
  24. package/docs/ar/interest_of_intlayer.md +24 -22
  25. package/docs/ar/intlayer_with_express.md +1 -1
  26. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  27. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  28. package/docs/ar/intlayer_with_tanstack.md +5 -3
  29. package/docs/ar/lsp.md +114 -175
  30. package/docs/ar/readme.md +25 -25
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/bn/interest_of_intlayer.md +24 -22
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/cs/interest_of_intlayer.md +24 -22
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/de/interest_of_intlayer.md +24 -22
  37. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  38. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  39. package/docs/de/intlayer_with_tanstack.md +5 -3
  40. package/docs/de/lsp.md +111 -172
  41. package/docs/de/readme.md +24 -24
  42. package/docs/en/configuration.md +10 -10
  43. package/docs/en/interest_of_intlayer.md +24 -22
  44. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/en/intlayer_with_tanstack.md +5 -3
  47. package/docs/en/lsp.md +109 -170
  48. package/docs/en/readme.md +24 -24
  49. package/docs/en-GB/configuration.md +10 -10
  50. package/docs/en-GB/interest_of_intlayer.md +24 -22
  51. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  52. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  53. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  54. package/docs/en-GB/lsp.md +109 -170
  55. package/docs/en-GB/readme.md +24 -24
  56. package/docs/es/configuration.md +10 -10
  57. package/docs/es/interest_of_intlayer.md +24 -22
  58. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  59. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  60. package/docs/es/intlayer_with_tanstack.md +5 -3
  61. package/docs/es/lsp.md +114 -175
  62. package/docs/es/readme.md +24 -24
  63. package/docs/fr/configuration.md +10 -10
  64. package/docs/fr/interest_of_intlayer.md +24 -22
  65. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  66. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  67. package/docs/fr/intlayer_with_tanstack.md +5 -3
  68. package/docs/fr/lsp.md +110 -171
  69. package/docs/fr/readme.md +24 -24
  70. package/docs/hi/configuration.md +10 -10
  71. package/docs/hi/interest_of_intlayer.md +24 -22
  72. package/docs/hi/intlayer_with_express.md +1 -1
  73. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  74. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  75. package/docs/hi/intlayer_with_tanstack.md +5 -3
  76. package/docs/hi/lsp.md +113 -174
  77. package/docs/hi/readme.md +24 -24
  78. package/docs/id/configuration.md +10 -10
  79. package/docs/id/interest_of_intlayer.md +24 -22
  80. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  81. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  82. package/docs/id/intlayer_with_tanstack.md +5 -3
  83. package/docs/id/lsp.md +113 -174
  84. package/docs/id/readme.md +24 -24
  85. package/docs/it/configuration.md +10 -10
  86. package/docs/it/interest_of_intlayer.md +24 -22
  87. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  88. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  89. package/docs/it/intlayer_with_tanstack.md +5 -3
  90. package/docs/it/lsp.md +115 -176
  91. package/docs/it/readme.md +24 -24
  92. package/docs/ja/configuration.md +10 -10
  93. package/docs/ja/interest_of_intlayer.md +24 -22
  94. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  95. package/docs/ja/intlayer_with_tanstack.md +5 -3
  96. package/docs/ja/lsp.md +113 -174
  97. package/docs/ja/readme.md +24 -24
  98. package/docs/ko/configuration.md +10 -10
  99. package/docs/ko/interest_of_intlayer.md +24 -22
  100. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  101. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  102. package/docs/ko/intlayer_with_tanstack.md +5 -3
  103. package/docs/ko/lsp.md +112 -173
  104. package/docs/ko/readme.md +24 -24
  105. package/docs/nl/configuration.md +10 -10
  106. package/docs/nl/interest_of_intlayer.md +24 -22
  107. package/docs/pl/configuration.md +10 -10
  108. package/docs/pl/interest_of_intlayer.md +4 -2
  109. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  110. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  111. package/docs/pl/intlayer_with_tanstack.md +5 -3
  112. package/docs/pl/lsp.md +115 -176
  113. package/docs/pl/readme.md +24 -24
  114. package/docs/pt/configuration.md +10 -10
  115. package/docs/pt/interest_of_intlayer.md +24 -22
  116. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  117. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  118. package/docs/pt/intlayer_with_tanstack.md +5 -3
  119. package/docs/pt/lsp.md +113 -174
  120. package/docs/pt/readme.md +24 -24
  121. package/docs/ru/configuration.md +10 -10
  122. package/docs/ru/interest_of_intlayer.md +24 -22
  123. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  124. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  125. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ru/intlayer_with_tanstack.md +5 -3
  128. package/docs/ru/lsp.md +112 -173
  129. package/docs/ru/readme.md +24 -24
  130. package/docs/tr/configuration.md +10 -10
  131. package/docs/tr/interest_of_intlayer.md +24 -22
  132. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  133. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  134. package/docs/tr/intlayer_with_tanstack.md +5 -3
  135. package/docs/tr/lsp.md +113 -174
  136. package/docs/tr/readme.md +24 -24
  137. package/docs/uk/configuration.md +10 -10
  138. package/docs/uk/interest_of_intlayer.md +4 -2
  139. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  140. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/uk/intlayer_with_tanstack.md +5 -3
  142. package/docs/uk/lsp.md +113 -174
  143. package/docs/uk/per_locale_file.md +1 -1
  144. package/docs/uk/readme.md +24 -24
  145. package/docs/ur/configuration.md +10 -10
  146. package/docs/ur/interest_of_intlayer.md +24 -22
  147. package/docs/vi/configuration.md +10 -10
  148. package/docs/vi/interest_of_intlayer.md +24 -22
  149. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  150. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  151. package/docs/vi/intlayer_with_tanstack.md +5 -3
  152. package/docs/vi/lsp.md +115 -176
  153. package/docs/vi/readme.md +24 -24
  154. package/docs/zh/configuration.md +10 -10
  155. package/docs/zh/interest_of_intlayer.md +24 -22
  156. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  157. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  158. package/docs/zh/intlayer_with_tanstack.md +5 -3
  159. package/docs/zh/lsp.md +113 -174
  160. package/docs/zh/readme.md +21 -21
  161. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  162. package/package.json +6 -6
package/docs/id/lsp.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  createdAt: 2025-06-07
3
- updatedAt: 2026-05-31
3
+ updatedAt: 2026-08-10
4
4
  title: Server LSP Intlayer
5
- description: Pelajari bagaimana Server Bahasa Intlayer menyediakan fitur "Go-to-Definition" dan fitur IDE lainnya untuk useIntlayer, getIntlayer, dan panggilan terkait di semua editor yang didukung.
5
+ description: Pelajari bagaimana language server Intlayer menghadirkan Go-to-Definition, pencarian referensi, pratinjau saat hover, autocomplete kunci, dan diagnostik ke IDE dan agen AI Anda.
6
6
  keywords:
7
7
  - LSP
8
- - Server Bahasa
8
+ - Language Server
9
9
  - Go to Definition
10
+ - Autocomplete
11
+ - Diagnostik
10
12
  - IDE
11
13
  - Intlayer
12
14
  - VS Code
@@ -16,6 +18,9 @@ slugs:
16
18
  - doc
17
19
  - lsp
18
20
  history:
21
+ - version: 9.1.3
22
+ date: 2026-08-10
23
+ changes: "Menambahkan pencarian referensi, hover, autocomplete, dan diagnostik"
19
24
  - version: 8.12.0
20
25
  date: 2026-06-01
21
26
  changes: "Release LSP"
@@ -24,48 +29,47 @@ author: aymericzip
24
29
 
25
30
  # Server LSP Intlayer
26
31
 
27
- **Server Bahasa Intlayer (LSP)** adalah implementasi [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) yang meningkatkan IDE Anda dengan kecerdasan yang memahami Intlayer. Saat ini, server menyediakan fitur **Go to Definition** untuk panggilan kunci kamus, memungkinkan Anda melompat langsung dari `useIntlayer("my-key")` di komponen Anda ke file `.content.ts` yang mendeklarasikannya.
32
+ **Language server Intlayer** adalah implementasi [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) yang membuat IDE dan agen AI — Anda memahami Intlayer. Ia menghubungkan pemanggilan seperti `useIntlayer("home")` dengan berkas `.content.ts` yang mendeklarasikannya, dua arah.
28
33
 
29
34
  ---
30
35
 
31
- ## Mengapa Menggunakan LSP?
36
+ ## Fitur
32
37
 
33
- Saat Anda menggunakan Intlayer, hubungan antara panggilan seperti `useIntlayer("homepage")` dan deklarasinya di `src/homepage.content.ts` bersifat implisit. Tanpa alat bantu, Anda harus mencari file tersebut secara manual. LSP membuat tautan tersebut menjadi eksplisit:
38
+ | Fitur | Pintasan | Fungsinya |
39
+ | ------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------- |
40
+ | **Ke definisi** | `F12` / `Cmd+Klik` | Melompat dari kunci kamus atau penggunaan field ke deklarasinya di berkas konten |
41
+ | **Cari semua referensi** | `Shift+F12` | Dari berkas konten, menampilkan setiap lokasi pemanggilan yang memakai kunci atau field tersebut |
42
+ | **Hover** | arahkan kursor | Melihat field sebuah kamus, atau nilai terjemahan sebuah field, tanpa meninggalkan berkas |
43
+ | **Autocomplete** | `"` `'` `` ` `` `.` | Menyarankan kunci kamus yang dideklarasikan di dalam getter, dan field konten setelah `.` atau saat destrukturisasi |
44
+ | **Diagnostik** | otomatis | Memperingatkan saat sebuah kunci tidak dideklarasikan di berkas konten mana pun |
34
45
 
35
- **Kesadaran agen AI**
46
+ Ada dua perilaku tambahan yang perlu diketahui:
36
47
 
37
- Agen pengkodean AI (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) mengandalkan server bahasa untuk menyelesaikan simbol dan memahami hubungan lintas file. Dengan menjalankan Intlayer LSP, agen dapat mengikuti `useIntlayer("key")` kembali ke deklarasinya, memberikan mereka konteks yang akurat tentang kunci konten yang tersedia, bentuk setiap kamus, dan file mana yang harus dibaca atau diedit.
48
+ - **Kamus tergabung** kunci yang terbagi di beberapa berkas konten mengembalikan satu hasil per berkas, sehingga Anda dapat menuju setiap deklarasi.
49
+ - **Ramah monorepo** — server menyelesaikan `intlayer.config.*` yang _terdekat_ dengan setiap berkas, sehingga beberapa proyek dalam satu workspace masing-masing memiliki kamusnya sendiri.
38
50
 
39
- **Go to Definition**
51
+ ### Pemanggilan yang didukung
40
52
 
41
- Tempatkan kursor Anda pada string kunci kamus apa pun di dalam panggilan getter yang didukung dan tekan `F12` (atau `Cmd/Ctrl+Click`). Editor akan membuka file deklarasi konten dan memposisikan kursor pada baris `key:`.
53
+ Kunci dibaca dari argumen string posisional atau dari objek opsi (`{ namespace }`, `{ id }`).
42
54
 
43
- **Dukungan kamus yang digabungkan**
55
+ | Pustaka | Pemanggilan |
56
+ | --------------------------- | -------------------------------------------------------- |
57
+ | **Intlayer** | `useIntlayer`, `getIntlayer` |
58
+ | **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
59
+ | **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
60
+ | **react-intl** | `formatMessage`, `FormattedMessage` |
61
+ | **Lingui** | `useLingui`, `t`, `Trans`, `_` |
62
+ | **vue-i18n** | `useI18n` |
44
63
 
45
- Kunci dapat dibagi di beberapa file konten (Intlayer menggabungkannya). Server mengembalikan satu `Location` per file sumber sehingga Anda dapat menavigasi ke setiap deklarasi.
64
+ Ini berlaku untuk semua paket `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `intlayer`), serta untuk paket adapter compat yang memungkinkan Anda mempertahankan sintaks i18n yang sudah ada.
46
65
 
47
- **Bekerja di mana saja**
48
-
49
- Mendukung semua paket `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
50
-
51
- ### Panggilan getter yang didukung
52
-
53
- Server mendeteksi panggilan fungsi berikut dan mengekstrak argumen string-literal pertama sebagai kunci kamus:
54
-
55
- | Fungsi | Contoh |
56
- | ------------- | ----------------------------- |
57
- | `useIntlayer` | `useIntlayer("hero")` |
58
- | `getIntlayer` | `getIntlayer("hero", locale)` |
59
-
60
- TypeScript generics dan argumen ekstra diabaikan — hanya string kunci yang penting.
61
-
62
- > `useDictionary` dan `getDictionary` mengambil objek `Dictionary` yang sudah diimpor sebagai argumen pertama mereka, bukan kunci string, sehingga mereka tidak mendapatkan manfaat dari Go-to-Definition dan tidak dilacak oleh server.
66
+ > Kamus dibaca dari hasil build, jadi jalankan `npx intlayer build` — atau biarkan dev server tetap berjalan — agar server punya sesuatu untuk diselesaikan.
63
67
 
64
68
  ---
65
69
 
66
70
  ## Instalasi
67
71
 
68
- Server LSP didistribusikan sebagai bagian dari `@intlayer/lsp`:
72
+ Server didistribusikan sebagai biner `intlayer-lsp` di dalam `@intlayer/lsp`:
69
73
 
70
74
  ```bash packageManager="npm"
71
75
  npm install --save-dev @intlayer/lsp
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
83
87
  bun add --dev @intlayer/lsp
84
88
  ```
85
89
 
86
- Paket ini mengekspos biner `intlayer-lsp`, yang digunakan editor sebagai executable server.
90
+ Pasang secara global (`npm install -g @intlayer/lsp`) bila editor Anda membutuhkan `intlayer-lsp` di `PATH` — ini berlaku untuk plugin Claude Code dan untuk setiap konfigurasi di bawah yang memanggil biner secara langsung.
87
91
 
88
92
  ---
89
93
 
90
- ## Pengaturan sebagai Plugin Claude Code
94
+ ## Penyiapan
91
95
 
92
- Intlayer LSP tersedia sebagai **plugin Claude Code** yang dihosting langsung di repositori GitHub Intlayer. Menginstalnya memberikan Claude Code kesadaran native Go-to-Definition untuk semua panggilan `useIntlayer` / `getIntlayer` Anda.
96
+ <Tabs defaultTab="vscode">
97
+ <Tab label="VS Code" value="vscode">
93
98
 
94
- ### 1. Instal biner server bahasa
99
+ Pasang [ekstensi Intlayer untuk VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). Language server sudah disertakan sejak v8.12.0 dan berjalan otomatis — **tanpa konfigurasi apa pun**.
95
100
 
96
- ```bash packageManager="npm"
97
- npm install -g @intlayer/lsp
98
- ```
101
+ Lihat [dokumentasi ekstensi VS Code](https://intlayer.org/doc/vs-code-extension) untuk fitur lainnya.
99
102
 
100
- ```bash packageManager="yarn"
101
- yarn global add @intlayer/lsp
102
- ```
103
+ </Tab>
104
+ <Tab label="Cursor / Windsurf" value="cursor">
103
105
 
104
- ```bash packageManager="pnpm"
105
- pnpm add -g @intlayer/lsp
106
- ```
106
+ [Cursor](https://www.cursor.com/) dan [Windsurf](https://windsurf.com/) adalah fork VS Code dan memakai ekosistem ekstensi yang sama. Pasang [ekstensi Intlayer untuk VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) sekali dan server aktif otomatis — **tanpa konfigurasi apa pun**.
107
+
108
+ </Tab>
109
+ <Tab label="Claude Code" value="claude-code">
107
110
 
108
- Ini menempatkan biner `intlayer-lsp` pada PATH Anda, yang dipanggil oleh entri `lspServers` pada plugin.
111
+ Intlayer menyediakan **plugin Claude Code** yang dihosting di repositori Intlayer. Plugin ini memberi Claude Code resolusi simbol yang sesungguhnya untuk kunci kamus Anda, alih-alih kembali memakai `grep`.
109
112
 
110
- ### 2. Daftarkan marketplace Intlayer dan instal plugin
113
+ Letakkan biner di `PATH` Anda, lalu daftarkan marketplace dan pasang plugin:
111
114
 
112
115
  ```bash
116
+ npm install -g @intlayer/lsp
117
+
113
118
  claude plugin marketplace add intlayer@github:aymericzip/intlayer
114
119
  claude plugin install intlayer-lsp@intlayer
115
- claude plugin enable intlayer-lsp@intlayer
116
120
  ```
117
121
 
118
- Claude Code akan menambahkan `"intlayer-lsp@intlayer": true` ke `enabledPlugins` Anda dan secara otomatis memulai server bahasa pada tipe file yang didukung (`.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.svelte`).
122
+ `install` sekaligus mengaktifkan plugin. **Mulai ulang Claude Code** language server dimuat saat startup, jadi sebelum itu plugin belum berpengaruh.
119
123
 
120
- ### 3. Aktifkan alat LSP (jika belum aktif)
124
+ Claude Code kemudian menjalankan server pada berkas `.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.astro`, dan `.svelte`, serta memakai `goToDefinition`, `findReferences`, dan `hover` saat menelusuri kode Anda.
121
125
 
122
- Beberapa versi Claude Code memerlukan flag fitur LSP untuk disetel. Tambahkan yang berikut ke `~/.claude/settings.json` Anda jika Go-to-Definition tidak berfungsi setelah instalasi:
126
+ Jika Go-to-Definition masih tidak bekerja, versi Claude Code Anda mungkin membatasi alat LSP di balik sebuah flag:
123
127
 
124
128
  ```json fileName="~/.claude/settings.json"
125
129
  {
@@ -129,61 +133,10 @@ Beberapa versi Claude Code memerlukan flag fitur LSP untuk disetel. Tambahkan ya
129
133
  }
130
134
  ```
131
135
 
132
- Mulai ulang Claude Code — sekarang ia akan menggunakan `goToDefinition`, `findReferences`, dan operasi LSP lainnya saat menavigasi basis kode Intlayer Anda alih-alih kembali ke `grep`.
133
-
134
- ---
135
-
136
- ## Pengaturan di VS Code (melalui ekstensi — direkomendasikan)
137
-
138
- Jika Anda memiliki [ekstensi VS Code Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) yang terinstal, server bahasa akan dimulai secara otomatis. Tidak diperlukan konfigurasi tambahan. LSP terintegrasi langsung ke dalam ekstensi VSCode sejak v8.12.0.
139
-
140
- > Lihat [dokumentasi ekstensi VS Code](https://intlayer.org/doc/vs-code-extension) untuk instalasi dan fitur lainnya.
141
-
142
- ---
143
-
144
- ## Pengaturan Manual di VS Code
145
-
146
- Jika Anda tidak menggunakan ekstensi Intlayer, Anda dapat menghubungkan server bahasa secara manual menggunakan ekstensi klien LSP generik seperti [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) atau dengan menulis ekstensi kecil Anda sendiri. Pendekatan yang direkomendasikan adalah menggunakan ekstensi Intlayer.
147
-
148
- Sebagai referensi, server diluncurkan melalui biner `intlayer-lsp` melalui stdio:
149
-
150
- ```json fileName=".vscode/settings.json"
151
- {
152
- "intlayer.languageServer.command": "npx",
153
- "intlayer.languageServer.args": ["@intlayer/lsp"]
154
- }
155
- ```
156
-
157
- Ekstensi Intlayer membaca pengaturan ini untuk meluncurkan server. Jika Anda hanya mengandalkan ekstensi, tidak diperlukan pengaturan manual.
158
-
159
- ---
160
-
161
- ## Pengaturan di Cursor
162
-
163
- [Cursor](https://www.cursor.com/) adalah fork VS Code dengan fitur AI bawaan. Ini menggunakan ekosistem ekstensi yang sama, sehingga **ekstensi VS Code Intlayer** bekerja tanpa konfigurasi ekstra — instal sekali dan Cursor akan mendeteksinya secara otomatis.
164
-
165
- Jika Anda lebih memilih konfigurasi manual, Cursor juga membaca `.vscode/settings.json` dari root workspace, sehingga cuplikan VS Code di atas berlaku secara langsung.
166
-
167
- ---
168
-
169
- ## Pengaturan di Windsurf
170
-
171
- [Windsurf](https://windsurf.com/) (oleh Codeium) adalah editor berbasis VS Code lainnya. Instal ekstensi Intlayer dari VS Code Marketplace dan server bahasa akan aktif secara otomatis, persis seperti di VS Code dan Cursor.
172
-
173
- Untuk konfigurasi manual, buat `.vscode/settings.json` di root proyek:
174
-
175
- ```json fileName=".vscode/settings.json"
176
- {
177
- "intlayer.languageServer.command": "npx",
178
- "intlayer.languageServer.args": ["@intlayer/lsp"]
179
- }
180
- ```
181
-
182
- ---
183
-
184
- ## Pengaturan di Zed
136
+ </Tab>
137
+ <Tab label="Zed" value="zed">
185
138
 
186
- [Zed](https://zed.dev/) memiliki dukungan LSP native melalui pengaturan bahasanya. Tambahkan entri di pengaturan pengguna Zed Anda (`~/.config/zed/settings.json`):
139
+ Zed mendukung LSP secara bawaan. Tambahkan server ke pengaturan pengguna Anda:
187
140
 
188
141
  ```json fileName="~/.config/zed/settings.json"
189
142
  {
@@ -196,47 +149,21 @@ Untuk konfigurasi manual, buat `.vscode/settings.json` di root proyek:
196
149
  }
197
150
  },
198
151
  "languages": {
199
- "TypeScript": {
200
- "language_servers": ["intlayer-lsp", "..."]
201
- },
202
- "TSX": {
203
- "language_servers": ["intlayer-lsp", "..."]
204
- },
205
- "JavaScript": {
206
- "language_servers": ["intlayer-lsp", "..."]
207
- },
208
- "Vue.js": {
209
- "language_servers": ["intlayer-lsp", "..."]
210
- },
211
- "Svelte": {
212
- "language_servers": ["intlayer-lsp", "..."]
213
- }
152
+ "TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
153
+ "TSX": { "language_servers": ["intlayer-lsp", "..."] },
154
+ "JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
155
+ "Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
156
+ "Svelte": { "language_servers": ["intlayer-lsp", "..."] }
214
157
  }
215
158
  }
216
159
  ```
217
160
 
218
- Placeholder `"..."` memberi tahu Zed untuk mempertahankan server bahasa defaultnya bersama dengan server Intlayer.
219
-
220
- ---
221
-
222
- ## Pengaturan untuk CLI Agen AI (Claude Code, Codex, dll.)
223
-
224
- **Claude Code** memiliki dukungan plugin LSP kelas satu — ikuti [pengaturan Plugin Claude Code](#pengaturan-sebagai-plugin-claude-code) di atas untuk mendapatkan pengalaman penuh Go-to-Definition secara langsung di sesi terminal Anda.
225
-
226
- **OpenAI Codex** dan alat berbasis terminal lainnya belum bertindak sebagai klien LSP — mereka membaca dan menulis file secara langsung daripada mempertahankan sesi server bahasa yang persisten. Untuk alat-alat tersebut, nilai dari menjalankan LSP datang secara tidak langsung: ketika server aktif di editor pendamping (VS Code, Cursor, Windsurf, ...) indeks langsung editor tersedia untuk agen AI apa pun yang dapat menanyakannya melalui konteks yang disediakan editor (misalnya, Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
227
-
228
- Jika Anda bekerja murni di terminal tanpa editor yang terbuka, Anda dapat memulai server bahasa di latar belakang sehingga siap untuk editor mana pun yang kemudian terhubung ke workspace yang sama:
229
-
230
- ```bash
231
- # Biarkan server tetap hidup di latar belakang
232
- npx @intlayer/lsp &
233
- ```
234
-
235
- ---
161
+ Placeholder `"..."` mempertahankan language server bawaan Zed berdampingan dengan milik Intlayer.
236
162
 
237
- ## Pengaturan Manual di Neovim
163
+ </Tab>
164
+ <Tab label="Neovim" value="neovim">
238
165
 
239
- Menggunakan [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), daftarkan konfigurasi server khusus:
166
+ Dengan [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), daftarkan konfigurasi server kustom:
240
167
 
241
168
  ```lua fileName="~/.config/nvim/init.lua"
242
169
  local lspconfig = require('lspconfig')
@@ -245,7 +172,7 @@ local configs = require('lspconfig.configs')
245
172
  if not configs.intlayer_lsp then
246
173
  configs.intlayer_lsp = {
247
174
  default_config = {
248
- -- Luncurkan server dengan npx sehingga Anda tidak memerlukan instalasi global
175
+ -- Jalankan server dengan npx agar tidak perlu instalasi global
249
176
  cmd = { 'npx', '--yes', '@intlayer/lsp' },
250
177
  filetypes = {
251
178
  'typescript',
@@ -267,21 +194,10 @@ end
267
194
  lspconfig.intlayer_lsp.setup({})
268
195
  ```
269
196
 
270
- Setelah memulai ulang Neovim, menekan `gd` di atas kunci Intlayer akan memicu Go to Definition.
271
-
272
- ---
273
-
274
- ## Pengaturan Manual di Editor Lain
275
-
276
- Editor apa pun yang mendukung Language Server Protocol dapat menggunakan `@intlayer/lsp`. Server:
277
-
278
- - **Transportasi** – Node.js IPC / stdio (standar)
279
- - **Executable** – `npx @intlayer/lsp` (atau biner `intlayer-lsp` yang diinstal secara lokal)
280
- - **Kemampuan** – `definitionProvider: true`, `textDocumentSync: Incremental`
197
+ Setelah memulai ulang Neovim, `gd` di atas kunci kamus menjalankan Ke Definisi dan `gr` menjalankan Cari Referensi.
281
198
 
282
- Konsultasikan dokumentasi LSP editor Anda untuk format konfigurasi yang tepat (misalnya, `languageserver.json` untuk [coc.nvim](https://github.com/neoclide/coc.nvim), atau pengaturan klien LSP di [Helix](https://helix-editor.com)).
283
-
284
- ### Contoh: coc.nvim
199
+ </Tab>
200
+ <Tab label="coc.nvim" value="coc">
285
201
 
286
202
  ```json fileName="~/.config/nvim/coc-settings.json"
287
203
  {
@@ -307,9 +223,14 @@ Konsultasikan dokumentasi LSP editor Anda untuk format konfigurasi yang tepat (m
307
223
  }
308
224
  ```
309
225
 
310
- ### Contoh: Helix
226
+ </Tab>
227
+ <Tab label="Helix" value="helix">
311
228
 
312
229
  ```toml fileName="~/.config/helix/languages.toml"
230
+ [language-server.intlayer-lsp]
231
+ command = "npx"
232
+ args = ["@intlayer/lsp"]
233
+
313
234
  [[language]]
314
235
  name = "typescript"
315
236
  language-servers = ["intlayer-lsp", "typescript-language-server"]
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
317
238
  [[language]]
318
239
  name = "tsx"
319
240
  language-servers = ["intlayer-lsp", "typescript-language-server"]
320
-
321
- [language-server.intlayer-lsp]
322
- command = "npx"
323
- args = ["@intlayer/lsp"]
324
241
  ```
325
242
 
243
+ </Tab>
244
+ <Tab label="Editor lain" value="other">
245
+
246
+ Editor apa pun yang mendukung LSP dapat menjalankan `@intlayer/lsp`. Arahkan ke:
247
+
248
+ - **Executable** — `npx @intlayer/lsp`, atau biner `intlayer-lsp`
249
+ - **Transport** — stdio (standar)
250
+ - **Kapabilitas** — `definitionProvider`, `referencesProvider`, `hoverProvider`, `completionProvider` (karakter pemicu `"` `'` `` ` `` `.`), diagnostik push, `textDocumentSync: Incremental`
251
+ - **Pola root** — `intlayer.config.ts`, `intlayer.config.js`, `package.json`
252
+
253
+ Lihat dokumentasi LSP editor Anda untuk format konfigurasi yang tepat.
254
+
255
+ </Tab>
256
+ </Tabs>
257
+
326
258
  ---
327
259
 
328
- ## Cara Kerja
260
+ ## Catatan tentang agen AI di terminal
329
261
 
330
- Ketika server dimulai, ia menyelesaikan konfigurasi Intlayer dari root workspace menggunakan `getConfiguration()`. Ini memberikan jalur `build` dan `system` yang diperlukan untuk menemukan kamus yang dikompilasi.
262
+ **Claude Code** bertindak sebagai klien LSP sungguhan lihat tab di atas.
331
263
 
332
- Pada setiap permintaan **Go to Definition**:
264
+ **OpenAI Codex** dan sebagian besar alat terminal lain bukan klien LSP: mereka membaca dan menulis berkas secara langsung. Menjalankan server sendirian tidak membantu mereka; manfaatnya muncul saat server aktif di editor pendamping yang indeksnya bisa dikueri oleh agen (Cursor Composer, Windsurf Cascade, Copilot Chat).
333
265
 
334
- 1. Server membaca teks lengkap dari dokumen yang terbuka.
335
- 2. Server memindai panggilan getter (`useIntlayer`, `getIntlayer`, dll.) menggunakan ekspresi reguler.
336
- 3. Server memeriksa apakah posisi kursor jatuh di dalam salah satu panggilan tersebut.
337
- 4. Jika ya, ia mengekstrak kunci kamus (grup tangkapan 3 dari regex) dan memanggil `getUnmergedDictionaries()` untuk menemukan setiap file konten yang mendeklarasikan kunci tersebut.
338
- 5. Ia membaca setiap file yang cocok dan menemukan baris persis yang berisi `key: "<key>"` untuk memposisikan kursor secara tepat.
339
- 6. Ia mengembalikan array objek `Location` — satu per file sumber.
266
+ ---
267
+
268
+ ## Cara kerjanya
269
+
270
+ Untuk setiap berkas, server mencari `intlayer.config.*` terdekat dan memuat konfigurasi proyek tersebut guna menemukan kamus hasil kompilasi. Konfigurasi, kamus, dan daftar berkas sumber di-cache dengan TTL singkat, dan dibatalkan setiap kali berkas konten yang dipantau berubah.
340
271
 
341
- Konfigurasi diselesaikan secara malas (lazy) dan di-cache per sesi; ia disetel ulang pada setiap permintaan `initialize` (misalnya, ketika Anda membuka folder workspace baru).
272
+ Pada setiap permintaan, server mem-parsing dokumen (via [oxc](https://oxc.rs/)) dan memeriksa posisi kursor:
273
+
274
+ 1. **Pada string kunci** (`useIntlayer("home")`) → mengembalikan setiap berkas konten yang mendeklarasikan kunci itu, diposisikan pada baris `key:`-nya.
275
+ 2. **Pada penggunaan field** (`content.title`, properti hasil destrukturisasi, `t('path.to.field')`, `<Trans>`, …) → menelusuri variabel kembali ke kamusnya dan mengembalikan field yang cocok di dalam berkas konten.
276
+ 3. **Dari berkas konten** → menjalankan pencarian balik, memindai sumber proyek untuk menemukan lokasi pemanggilan kunci atau field tersebut.
342
277
 
343
278
  ---
344
279
 
345
- ## Pemecahan Masalah
280
+ ## Pemecahan masalah
281
+
282
+ | Gejala | Kemungkinan penyebab | Solusi |
283
+ | ------------------------------------------- | ------------------------------- | -------------------------------------------------------------------------------------- |
284
+ | Tidak terjadi apa-apa | Server tidak berjalan | Periksa `@intlayer/lsp` sudah terpasang dan editor Anda menjalankannya |
285
+ | Bekerja di editor, tidak di Claude Code | Plugin dipasang di tengah sesi | Mulai ulang Claude Code — language server dimuat saat startup |
286
+ | Definisi untuk sebuah kunci tidak ditemukan | Kamus belum dibangun | Jalankan `npx intlayer build`, atau mulai dev server Anda |
287
+ | Semua kunci dilaporkan tidak dideklarasikan | Konfigurasi tidak terselesaikan | Pastikan ada `intlayer.config.ts` (atau `.js`) di root proyek Anda |
288
+ | Proyek yang salah dipakai di monorepo | Konfigurasi per paket tidak ada | Tambahkan `intlayer.config.*` pada setiap paket yang mendeklarasikan kontennya sendiri |
289
+ | Server crash saat mulai | Versi Node.js terlalu lama | Membutuhkan Node.js ≥ 14.18 |
346
290
 
347
- | Gejala | Penyebab yang mungkin | Solusi |
348
- | ------------------------------------------ | ------------------------------ | -------------------------------------------------------------------------------- |
349
- | Go to Definition tidak melakukan apa-apa | Server tidak berjalan | Periksa apakah `@intlayer/lsp` terinstal dan editor meluncurkannya |
350
- | Root workspace yang salah terdeteksi | Beberapa folder workspace | Pastikan folder yang berisi `intlayer.config.ts` adalah folder workspace pertama |
351
- | Definisi tidak ditemukan untuk suatu kunci | Konfigurasi tidak diselesaikan | Verifikasi `intlayer.config.ts` (atau `.js`) ada di root workspace |
352
- | Server crash saat start | Versi Node.js terlalu usang | Memerlukan Node.js ≥ 14.18 |
291
+ Di VS Code, server menulis log ke **View → Output → "Intlayer LSP"** — berguna untuk memastikan konfigurasi mana yang terselesaikan dan berapa kamus yang ditemukan.
package/docs/id/readme.md CHANGED
@@ -46,27 +46,27 @@ Dengan **file konten per-locale**, **autocompletion TypeScript**, **kamus tree-s
46
46
 
47
47
  ## Manfaat utama Intlayer:
48
48
 
49
- | Fitur | Deskripsi |
50
- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Fitur" width="700"> | **Dukungan Lintas-Framework**<br><br>Intlayer kompatibel dengan semua framework dan pustaka utama, termasuk Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, dan lainnya. |
52
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Fitur" width="700"> | **Manajemen Konten Berbasis JavaScript**<br><br>Manfaatkan fleksibilitas JavaScript untuk mendefinisikan dan mengelola konten Anda secara efisien. <br><br> - [Deklarasi konten](https://intlayer.org/doc/concept/content) |
53
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Fitur" width="700"> | **File Deklarasi Konten Per-Locale**<br><br>Percepat pengembangan Anda dengan mendeklarasikan konten sekali saja, sebelum auto generation.<br><br> - [File Deklarasi Konten Per-Locale](https://intlayer.org/doc/concept/per-locale-file) |
54
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Fitur" width="700"> | **Compiler**<br><br>Intlayer Compiler mengekstrak konten secara otomatis dari komponen dan menghasilkan file kamus.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
55
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Fitur" width="700"> | **Lingkungan Aman-Tipe**<br><br>Manfaatkan TypeScript untuk memastikan definisi konten dan kode Anda bebas dari kesalahan, sekaligus mendapatkan keuntungan dari autocompletion IDE.<br><br> - [Konfigurasi TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Fitur" width="700"> | **Pengaturan yang Disederhanakan**<br><br>Mulai dengan cepat menggunakan konfigurasi minimal. Sesuaikan pengaturan untuk internasionalisasi, routing, AI, build, dan penanganan konten dengan mudah.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
57
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Fitur" width="700"> | **Pengambilan Konten yang Disederhanakan**<br><br>Tidak perlu memanggil fungsi `t` Anda untuk setiap potongan konten. Ambil semua konten Anda langsung menggunakan satu hook.<br><br> - [Integrasi React](https://intlayer.org/doc/environment/create-react-app) |
58
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Fitur" width="700"> | **Implementasi Komponen Server yang Konsisten**<br><br>Sangat cocok untuk komponen server Next.js, gunakan implementasi yang sama untuk komponen klien dan server, tidak perlu meneruskan fungsi `t` Anda ke setiap komponen server. <br><br> - [Komponen Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Fitur" width="700"> | **Codebase yang Terorganisir**<br><br>Jaga agar codebase Anda lebih terorganisir: 1 komponen = 1 kamus dalam folder yang sama. Terjemahan dekat dengan komponen masing-masing, meningkatkan pemeliharaan dan kejelasan. <br><br> - [Cara Kerja Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Fitur" width="700"> | **Routing yang Ditingkatkan**<br><br>Dukungan penuh untuk routing aplikasi, menyesuaikan dengan mulus pada struktur aplikasi yang kompleks, untuk Next.js, React, Vite, Vue.js, dll.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
61
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Fitur" width="700"> | **Dukungan Markdown**<br><br>Impor dan interpretasi, file locale dan Markdown jarak jauh untuk konten multibahasa seperti kebijakan privasi, dokumentasi, dll. Interpretasikan dan buat metadata Markdown dapat diakses dalam kode Anda.<br><br> - [File konten](https://intlayer.org/doc/concept/content/file) |
62
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Fitur" width="700"> | **Editor Visual & CMS Gratis**<br><br>Editor visual dan CMS gratis tersedia untuk penulis konten, menghilangkan kebutuhan akan platform lokalisasi. Jaga konten Anda tetap sinkron menggunakan Git, atau eksternalisasi secara total atau sebagian dengan CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Fitur" width="700"> | **Konten Tree-shakable**<br><br>Konten tree-shakable, mengurangi ukuran bundle akhir. Memuat konten per komponen, mengecualikan konten yang tidak digunakan dari bundle Anda. Mendukung lazy loading untuk meningkatkan efisiensi pemuatan aplikasi. <br><br> - [Optimasi build aplikasi](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Fitur" width="700"> | **Rendering Statis**<br><br>Tidak menghalangi Rendering Statis. <br><br> - [Integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
65
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Fitur" width="700"> | **Terjemahan Berbasis AI**<br><br>Ubah situs web Anda ke dalam 231 bahasa hanya dengan satu klik menggunakan alat terjemahan canggih berbasis AI dari Intlayer dengan menggunakan penyedia AI / kunci API Anda sendiri. <br><br> - [Integrasi CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Pengisian otomatis](https://intlayer.org/doc/concept/auto-fill) |
66
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Fitur" width="700"> | **Integrasi Server MCP**<br><br>Menyediakan server MCP (Model Context Protocol) untuk otomatisasi IDE, memungkinkan manajemen konten dan alur kerja i18n yang mulus langsung di dalam lingkungan pengembangan Anda. <br><br> - [Server MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/mcp_server.md) |
67
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Fitur" width="700"> | **Ekstensi VSCode**<br><br>Intlayer menyediakan ekstensi VSCode untuk membantu Anda mengelola konten dan terjemahan Anda, membangun kamus Anda, menerjemahkan konten Anda, dan lainnya. <br><br> - [Ekstensi VSCode](https://intlayer.org/doc/vs-code-extension) |
68
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Fitur" width="700"> | **Interoperabilitas**<br><br>Memungkinkan interoperabilitas dengan react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer dan react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer dan next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer dan next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer dan vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
69
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Fitur" width="700"> | **Performa & Benchmark**<br><br>Menggunakan tree-shaking tingkat lanjut dan pemuatan dinamis untuk meningkatkan performa dan menjaga solusi seringan mungkin. <br><br> - [Performa & Benchmark](https://intlayer.org/doc/benchmark) |
49
+ | Fitur | Deskripsi |
50
+ | ------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Fitur" width="700"> | **Dukungan Lintas-Framework**<br><br>Intlayer kompatibel dengan semua framework dan pustaka utama, termasuk Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, dan lainnya. |
52
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Fitur" width="700"> | **Manajemen Konten Berbasis JavaScript**<br><br>Manfaatkan fleksibilitas JavaScript untuk mendefinisikan dan mengelola konten Anda secara efisien. <br><br> - [Deklarasi konten](https://intlayer.org/doc/concept/content) |
53
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Fitur" width="700"> | **File Deklarasi Konten Per-Locale**<br><br>Percepat pengembangan Anda dengan mendeklarasikan konten sekali saja, sebelum auto generation.<br><br> - [File Deklarasi Konten Per-Locale](https://intlayer.org/doc/concept/per-locale-file) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Fitur" width="700"> | **Compiler**<br><br>Intlayer Compiler mengekstrak konten secara otomatis dari komponen dan menghasilkan file kamus.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
55
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Fitur" width="700"> | **Lingkungan Aman-Tipe**<br><br>Manfaatkan TypeScript untuk memastikan definisi konten dan kode Anda bebas dari kesalahan, sekaligus mendapatkan keuntungan dari autocompletion IDE.<br><br> - [Konfigurasi TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Fitur" width="700"> | **Pengaturan yang Disederhanakan**<br><br>Mulai dengan cepat menggunakan konfigurasi minimal. Sesuaikan pengaturan untuk internasionalisasi, routing, AI, build, dan penanganan konten dengan mudah.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Fitur" width="700"> | **Pengambilan Konten yang Disederhanakan**<br><br>Tidak perlu memanggil fungsi `t` Anda untuk setiap potongan konten. Ambil semua konten Anda langsung menggunakan satu hook.<br><br> - [Integrasi React](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Fitur" width="700"> | **Implementasi Komponen Server yang Konsisten**<br><br>Sangat cocok untuk komponen server Next.js, gunakan implementasi yang sama untuk komponen klien dan server, tidak perlu meneruskan fungsi `t` Anda ke setiap komponen server. <br><br> - [Komponen Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Fitur" width="700"> | **Codebase yang Terorganisir**<br><br>Jaga agar codebase Anda lebih terorganisir: 1 komponen = 1 kamus dalam folder yang sama. Terjemahan dekat dengan komponen masing-masing, meningkatkan pemeliharaan dan kejelasan. <br><br> - [Cara Kerja Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Fitur" width="700"> | **Routing yang Ditingkatkan**<br><br>Dukungan penuh untuk routing aplikasi, menyesuaikan dengan mulus pada struktur aplikasi yang kompleks, untuk Next.js, React, Vite, Vue.js, dll.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Fitur" width="700"> | **Dukungan Markdown**<br><br>Impor dan interpretasi, file locale dan Markdown jarak jauh untuk konten multibahasa seperti kebijakan privasi, dokumentasi, dll. Interpretasikan dan buat metadata Markdown dapat diakses dalam kode Anda.<br><br> - [File konten](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Fitur" width="700"> | **Editor Visual & CMS Gratis**<br><br>Editor visual dan CMS gratis tersedia untuk penulis konten, menghilangkan kebutuhan akan platform lokalisasi. Jaga konten Anda tetap sinkron menggunakan Git, atau eksternalisasi secara total atau sebagian dengan CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Fitur" width="700"> | **Konten Tree-shakable**<br><br>Konten tree-shakable, mengurangi ukuran bundle akhir. Memuat konten per komponen, mengecualikan konten yang tidak digunakan dari bundle Anda. Mendukung lazy loading untuk meningkatkan efisiensi pemuatan aplikasi. <br><br> - [Optimasi build aplikasi](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Fitur" width="700"> | **Rendering Statis**<br><br>Tidak menghalangi Rendering Statis. <br><br> - [Integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Fitur" width="700"> | **Terjemahan Berbasis AI**<br><br>Ubah situs web Anda ke dalam 231 bahasa hanya dengan satu klik menggunakan alat terjemahan canggih berbasis AI dari Intlayer dengan menggunakan penyedia AI / kunci API Anda sendiri. <br><br> - [Integrasi CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Pengisian otomatis](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Fitur" width="700"> | **Integrasi Server MCP**<br><br>Menyediakan server MCP (Model Context Protocol) untuk otomatisasi IDE, memungkinkan manajemen konten dan alur kerja i18n yang mulus langsung di dalam lingkungan pengembangan Anda. <br><br> - [Server MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Fitur" width="700"> | **Ekstensi VSCode**<br><br>Intlayer menyediakan ekstensi VSCode untuk membantu Anda mengelola konten dan terjemahan Anda, membangun kamus Anda, menerjemahkan konten Anda, dan lainnya. <br><br> - [Ekstensi VSCode](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Fitur" width="700"> | **Interoperabilitas**<br><br>Memungkinkan interoperabilitas dengan react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer dan react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer dan next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer dan next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer dan vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Compat adapter Intlayer](https://intlayer.org/doc/compatibility) |
69
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Fitur" width="700"> | **Performa & Benchmark**<br><br>Menggunakan tree-shaking tingkat lanjut dan pemuatan dinamis untuk meningkatkan performa dan menjaga solusi seringan mungkin. <br><br> - [Performa & Benchmark](https://intlayer.org/doc/benchmark) |
70
70
 
71
71
  ---
72
72
 
@@ -173,7 +173,7 @@ Jelajahi dokumentasi lengkap kami untuk memulai dengan Intlayer dan pelajari car
173
173
  <li><a href="https://intlayer.org/doc/concept/cms" rel=''>Intlayer CMS</a></li>
174
174
  <li><a href="https://intlayer.org/doc/concept/content" rel=''>Kamus</a>
175
175
  <ul>
176
- <li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>File Deklarasi Konten Per-Locale</a></li>
176
+ <li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>File Deklarasi Konten Per-Locale</a></li>
177
177
  <li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Terjemahan</a></li>
178
178
  <li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Enumerasi</a></li>
179
179
  <li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Kondisi</a></li>
@@ -194,7 +194,7 @@ Jelajahi dokumentasi lengkap kami untuk memulai dengan Intlayer dan pelajari car
194
194
  <ul>
195
195
  <li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
196
196
  <li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
197
- <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
197
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
198
198
  <li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js menggunakan compiler</a></li>
199
199
  </ul>
200
200
  </li>
@@ -223,7 +223,7 @@ Jelajahi dokumentasi lengkap kami untuk memulai dengan Intlayer dan pelajari car
223
223
  <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
224
224
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
225
225
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
226
- <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
226
+ <li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
227
227
  <li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
228
228
  <li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
229
229
  <li>