@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.
- package/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +4 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- 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-
|
|
3
|
+
updatedAt: 2026-08-10
|
|
4
4
|
title: Server LSP Intlayer
|
|
5
|
-
description: Pelajari bagaimana
|
|
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
|
|
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
|
-
**
|
|
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
|
-
##
|
|
36
|
+
## Fitur
|
|
32
37
|
|
|
33
|
-
|
|
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
|
-
|
|
46
|
+
Ada dua perilaku tambahan yang perlu diketahui:
|
|
36
47
|
|
|
37
|
-
|
|
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
|
-
|
|
51
|
+
### Pemanggilan yang didukung
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
Kunci dibaca dari argumen string posisional atau dari objek opsi (`{ namespace }`, `{ id }`).
|
|
42
54
|
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
##
|
|
94
|
+
## Penyiapan
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
<Tabs defaultTab="vscode">
|
|
97
|
+
<Tab label="VS Code" value="vscode">
|
|
93
98
|
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
+
</Tab>
|
|
104
|
+
<Tab label="Cursor / Windsurf" value="cursor">
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
122
|
+
`install` sekaligus mengaktifkan plugin. **Mulai ulang Claude Code** — language server dimuat saat startup, jadi sebelum itu plugin belum berpengaruh.
|
|
119
123
|
|
|
120
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
201
|
-
},
|
|
202
|
-
"
|
|
203
|
-
|
|
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 `"..."`
|
|
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
|
-
|
|
163
|
+
</Tab>
|
|
164
|
+
<Tab label="Neovim" value="neovim">
|
|
238
165
|
|
|
239
|
-
|
|
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
|
-
--
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
260
|
+
## Catatan tentang agen AI di terminal
|
|
329
261
|
|
|
330
|
-
|
|
262
|
+
**Claude Code** bertindak sebagai klien LSP sungguhan — lihat tab di atas.
|
|
331
263
|
|
|
332
|
-
|
|
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
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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/
|
|
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-
|
|
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/
|
|
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>
|