@intlayer/docs 7.5.9 → 7.5.10
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 +9 -2
- package/dist/cjs/generated/docs.entry.cjs +19 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +19 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/push.md +1 -1
- package/docs/ar/configuration.md +3 -3
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/ar/intlayer_CMS.md +5 -5
- package/docs/ar/intlayer_with_express.md +1 -0
- package/docs/ar/intlayer_with_fastify.md +516 -0
- package/docs/ar/readme.md +1 -1
- package/docs/de/cli/push.md +1 -1
- package/docs/de/configuration.md +3 -3
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/de/intlayer_CMS.md +5 -5
- package/docs/de/intlayer_with_express.md +1 -0
- package/docs/de/intlayer_with_fastify.md +449 -0
- package/docs/de/readme.md +1 -1
- package/docs/en/cli/push.md +1 -1
- package/docs/en/configuration.md +3 -3
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_CMS.md +5 -5
- package/docs/en/intlayer_with_express.md +1 -0
- package/docs/en/intlayer_with_fastify.md +439 -0
- package/docs/en/readme.md +3 -1
- package/docs/en-GB/cli/push.md +1 -1
- package/docs/en-GB/configuration.md +3 -3
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_CMS.md +5 -5
- package/docs/en-GB/intlayer_with_express.md +1 -0
- package/docs/en-GB/intlayer_with_fastify.md +445 -0
- package/docs/en-GB/readme.md +3 -1
- package/docs/es/cli/push.md +1 -1
- package/docs/es/configuration.md +3 -3
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/es/intlayer_CMS.md +5 -5
- package/docs/es/intlayer_with_express.md +1 -0
- package/docs/es/intlayer_with_fastify.md +480 -0
- package/docs/es/readme.md +1 -1
- package/docs/fr/cli/push.md +1 -1
- package/docs/fr/configuration.md +3 -3
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/fr/intlayer_CMS.md +5 -5
- package/docs/fr/intlayer_with_express.md +1 -0
- package/docs/fr/intlayer_with_fastify.md +439 -0
- package/docs/fr/readme.md +1 -1
- package/docs/hi/cli/push.md +1 -1
- package/docs/hi/configuration.md +3 -3
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/hi/intlayer_CMS.md +5 -5
- package/docs/hi/intlayer_with_express.md +1 -0
- package/docs/hi/intlayer_with_fastify.md +540 -0
- package/docs/hi/readme.md +1 -1
- package/docs/id/cli/push.md +1 -1
- package/docs/id/configuration.md +3 -3
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_CMS.md +5 -5
- package/docs/id/intlayer_with_express.md +1 -0
- package/docs/id/intlayer_with_fastify.md +470 -0
- package/docs/id/readme.md +1 -1
- package/docs/it/cli/push.md +1 -1
- package/docs/it/configuration.md +3 -3
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/it/intlayer_CMS.md +5 -5
- package/docs/it/intlayer_with_express.md +1 -0
- package/docs/it/intlayer_with_fastify.md +445 -0
- package/docs/it/readme.md +1 -1
- package/docs/ja/cli/push.md +1 -1
- package/docs/ja/configuration.md +3 -3
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ja/intlayer_CMS.md +5 -5
- package/docs/ja/intlayer_with_express.md +1 -0
- package/docs/ja/intlayer_with_fastify.md +516 -0
- package/docs/ja/readme.md +1 -1
- package/docs/ko/cli/push.md +1 -1
- package/docs/ko/configuration.md +3 -3
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/ko/intlayer_CMS.md +5 -5
- package/docs/ko/intlayer_with_express.md +1 -0
- package/docs/ko/intlayer_with_fastify.md +463 -0
- package/docs/ko/readme.md +1 -1
- package/docs/pl/cli/push.md +1 -1
- package/docs/pl/configuration.md +3 -3
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_CMS.md +5 -5
- package/docs/pl/intlayer_with_express.md +1 -0
- package/docs/pl/intlayer_with_fastify.md +457 -0
- package/docs/pl/readme.md +1 -1
- package/docs/pt/cli/push.md +1 -1
- package/docs/pt/configuration.md +3 -3
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/pt/intlayer_CMS.md +5 -5
- package/docs/pt/intlayer_with_express.md +1 -0
- package/docs/pt/intlayer_with_fastify.md +502 -0
- package/docs/pt/readme.md +1 -1
- package/docs/ru/cli/push.md +1 -1
- package/docs/ru/configuration.md +3 -3
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/ru/intlayer_CMS.md +5 -5
- package/docs/ru/intlayer_with_express.md +1 -0
- package/docs/ru/intlayer_with_fastify.md +468 -0
- package/docs/ru/readme.md +1 -1
- package/docs/tr/cli/push.md +1 -1
- package/docs/tr/configuration.md +3 -3
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_CMS.md +5 -5
- package/docs/tr/intlayer_with_express.md +1 -0
- package/docs/tr/intlayer_with_fastify.md +471 -0
- package/docs/tr/readme.md +1 -1
- package/docs/vi/cli/push.md +1 -1
- package/docs/vi/configuration.md +3 -3
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_CMS.md +5 -5
- package/docs/vi/intlayer_with_express.md +1 -0
- package/docs/vi/intlayer_with_fastify.md +490 -0
- package/docs/vi/readme.md +1 -1
- package/docs/zh/cli/push.md +1 -1
- package/docs/zh/configuration.md +3 -3
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh/intlayer_CMS.md +5 -5
- package/docs/zh/intlayer_with_express.md +1 -0
- package/docs/zh/intlayer_with_fastify.md +451 -0
- package/docs/zh/readme.md +1 -1
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +19 -0
package/docs/id/intlayer_CMS.md
CHANGED
|
@@ -98,7 +98,7 @@ const config: IntlayerConfig = {
|
|
|
98
98
|
*
|
|
99
99
|
* Client ID dan client secret diperlukan untuk mengaktifkan editor.
|
|
100
100
|
* Mereka memungkinkan identifikasi pengguna yang sedang mengedit konten.
|
|
101
|
-
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://intlayer.org/
|
|
101
|
+
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://app.intlayer.org/projects).
|
|
102
102
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
103
103
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
104
104
|
*/
|
|
@@ -148,7 +148,7 @@ const config = {
|
|
|
148
148
|
*
|
|
149
149
|
* Client ID dan client secret diperlukan untuk mengaktifkan editor.
|
|
150
150
|
* Mereka memungkinkan identifikasi pengguna yang sedang mengedit konten.
|
|
151
|
-
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://intlayer.org/
|
|
151
|
+
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://app.intlayer.org/projects).
|
|
152
152
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
153
153
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
154
154
|
*/
|
|
@@ -198,7 +198,7 @@ const config = {
|
|
|
198
198
|
*
|
|
199
199
|
* Client ID dan client secret diperlukan untuk mengaktifkan editor.
|
|
200
200
|
* Mereka memungkinkan identifikasi pengguna yang sedang mengedit konten.
|
|
201
|
-
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://intlayer.org/
|
|
201
|
+
* Mereka dapat diperoleh dengan membuat client baru di Intlayer Dashboard - Projects (https://app.intlayer.org/projects).
|
|
202
202
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
203
203
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
204
204
|
*/
|
|
@@ -230,7 +230,7 @@ const config = {
|
|
|
230
230
|
module.exports = config;
|
|
231
231
|
```
|
|
232
232
|
|
|
233
|
-
> Jika Anda belum memiliki client ID dan client secret, Anda dapat memperolehnya dengan membuat client baru di [Intlayer Dashboard - Projects](https://intlayer.org/
|
|
233
|
+
> Jika Anda belum memiliki client ID dan client secret, Anda dapat memperolehnya dengan membuat client baru di [Intlayer Dashboard - Projects](https://app.intlayer.org/projects).
|
|
234
234
|
|
|
235
235
|
> Untuk melihat semua parameter yang tersedia, lihat [dokumentasi konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
|
|
236
236
|
|
|
@@ -270,7 +270,7 @@ Perintah ini mengunggah kamus konten awal Anda, sehingga tersedia untuk pengambi
|
|
|
270
270
|
|
|
271
271
|
### Edit kamus
|
|
272
272
|
|
|
273
|
-
Kemudian Anda akan dapat melihat dan mengelola kamus Anda di [Intlayer CMS](https://intlayer.org/
|
|
273
|
+
Kemudian Anda akan dapat melihat dan mengelola kamus Anda di [Intlayer CMS](https://app.intlayer.org/content).
|
|
274
274
|
|
|
275
275
|
## Sinkronisasi langsung
|
|
276
276
|
|
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan backend Fastify Anda – i18n guide 2026
|
|
5
|
+
description: Temukan cara membuat backend Fastify Anda mendukung banyak bahasa. Ikuti dokumentasi untuk menginternasionalisasi (i18n) dan menerjemahkannya.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internationalization
|
|
8
|
+
- Dokumentasi
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Fastify
|
|
11
|
+
- JavaScript
|
|
12
|
+
- Backend
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- fastify
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-fastify-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 7.6.0
|
|
20
|
+
date: 2025-12-31
|
|
21
|
+
changes: Menambahkan perintah init
|
|
22
|
+
- version: 7.6.0
|
|
23
|
+
date: 2025-12-31
|
|
24
|
+
changes: Riwayat awal
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Terjemahkan situs backend Fastify Anda menggunakan Intlayer | Internationalization (i18n)
|
|
28
|
+
|
|
29
|
+
`fastify-intlayer` adalah plugin Internationalization (i18n) yang kuat untuk aplikasi Fastify, dirancang untuk membuat layanan backend Anda dapat diakses secara global dengan menyediakan respons yang dilokalisasi berdasarkan preferensi klien.
|
|
30
|
+
|
|
31
|
+
### Kasus Penggunaan Praktis
|
|
32
|
+
|
|
33
|
+
- **Menampilkan Error Backend dalam Bahasa Pengguna**: Ketika terjadi error, menampilkan pesan dalam bahasa asli pengguna meningkatkan pemahaman dan mengurangi frustrasi. Ini sangat berguna untuk pesan error dinamis yang mungkin ditampilkan di komponen front-end seperti toast atau modal.
|
|
34
|
+
|
|
35
|
+
`fastify-intlayer` adalah plugin internationalization (i18n) yang kuat untuk aplikasi Fastify, dirancang agar layanan backend Anda dapat diakses secara global dengan menyediakan respons yang dilokalkan berdasarkan preferensi klien.
|
|
36
|
+
|
|
37
|
+
### Kasus Penggunaan Praktis
|
|
38
|
+
|
|
39
|
+
- **Menampilkan Kesalahan Backend dalam Bahasa Pengguna**: Ketika terjadi kesalahan, menampilkan pesan dalam bahasa asli pengguna meningkatkan pemahaman dan mengurangi frustrasi. Ini sangat berguna untuk pesan error dinamis yang mungkin ditampilkan di komponen frontend seperti toasts atau modals.
|
|
40
|
+
- **Mengambil Konten Multibahasa**: Untuk aplikasi yang mengambil konten dari database, internationalization memastikan bahwa Anda dapat menyajikan konten ini dalam berbagai bahasa. Ini sangat penting untuk platform seperti situs e-commerce atau sistem manajemen konten yang perlu menampilkan deskripsi produk, artikel, dan konten lain dalam bahasa yang dipilih pengguna.
|
|
41
|
+
- **Mengirim Email Multibahasa**: Baik itu email transaksional, kampanye pemasaran, atau notifikasi, mengirim email dalam bahasa penerima dapat secara signifikan meningkatkan keterlibatan dan efektivitas.
|
|
42
|
+
- **Notifikasi Push Multibahasa**: Untuk aplikasi seluler, mengirim notifikasi push dalam bahasa yang dipilih pengguna dapat meningkatkan interaksi dan retensi. Sentuhan personal ini membuat notifikasi terasa lebih relevan dan lebih mudah ditindaklanjuti.
|
|
43
|
+
- **Komunikasi Lainnya**: Bentuk komunikasi apa pun dari backend, seperti pesan SMS, peringatan sistem, atau pembaruan antarmuka pengguna, mendapat manfaat bila disampaikan dalam bahasa pengguna, sehingga memastikan kejelasan dan meningkatkan pengalaman pengguna secara keseluruhan.
|
|
44
|
+
|
|
45
|
+
Dengan melakukan internasionalisasi pada backend, aplikasi Anda tidak hanya menghormati perbedaan budaya tetapi juga lebih selaras dengan kebutuhan pasar global, menjadikannya langkah penting untuk menskalakan layanan Anda secara internasional.
|
|
46
|
+
|
|
47
|
+
## Memulai
|
|
48
|
+
|
|
49
|
+
### Instalasi
|
|
50
|
+
|
|
51
|
+
Untuk mulai menggunakan `fastify-intlayer`, pasang paket menggunakan npm:
|
|
52
|
+
|
|
53
|
+
```bash packageManager="npm"
|
|
54
|
+
npm install intlayer fastify-intlayer
|
|
55
|
+
npx intlayer init
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```bash packageManager="pnpm"
|
|
60
|
+
pnpm add intlayer fastify-intlayer
|
|
61
|
+
pnpm intlayer init
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```bash packageManager="yarn"
|
|
66
|
+
yarn add intlayer fastify-intlayer
|
|
67
|
+
yarn intlayer init
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```bash packageManager="bun"
|
|
72
|
+
bun add intlayer fastify-intlayer
|
|
73
|
+
bunx intlayer init
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Penyiapan
|
|
78
|
+
|
|
79
|
+
Konfigurasikan pengaturan internationalization dengan membuat sebuah `intlayer.config.ts` di root proyek Anda:
|
|
80
|
+
|
|
81
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
82
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
83
|
+
|
|
84
|
+
const config: IntlayerConfig = {
|
|
85
|
+
internationalization: {
|
|
86
|
+
locales: [
|
|
87
|
+
Locales.ENGLISH,
|
|
88
|
+
Locales.FRENCH,
|
|
89
|
+
Locales.SPANISH_MEXICO,
|
|
90
|
+
Locales.SPANISH_SPAIN,
|
|
91
|
+
],
|
|
92
|
+
defaultLocale: Locales.ENGLISH,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export default config;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
100
|
+
import { Locales } from "intlayer";
|
|
101
|
+
|
|
102
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
103
|
+
const config = {
|
|
104
|
+
internationalization: {
|
|
105
|
+
locales: [
|
|
106
|
+
Locales.ENGLISH,
|
|
107
|
+
Locales.FRENCH,
|
|
108
|
+
Locales.SPANISH_MEXICO,
|
|
109
|
+
Locales.SPANISH_SPAIN,
|
|
110
|
+
],
|
|
111
|
+
defaultLocale: Locales.ENGLISH,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export default config;
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
119
|
+
const { Locales } = require("intlayer");
|
|
120
|
+
|
|
121
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
122
|
+
const config = {
|
|
123
|
+
internationalization: {
|
|
124
|
+
locales: [
|
|
125
|
+
Locales.ENGLISH,
|
|
126
|
+
Locales.FRENCH,
|
|
127
|
+
Locales.SPANISH_MEXICO,
|
|
128
|
+
Locales.SPANISH_SPAIN,
|
|
129
|
+
],
|
|
130
|
+
defaultLocale: Locales.ENGLISH,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
module.exports = config;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Deklarasikan Konten Anda
|
|
138
|
+
|
|
139
|
+
Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan:
|
|
140
|
+
|
|
141
|
+
```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
|
|
142
|
+
import { t, type Dictionary } from "intlayer";
|
|
143
|
+
|
|
144
|
+
const indexContent = {
|
|
145
|
+
key: "index",
|
|
146
|
+
content: {
|
|
147
|
+
exampleOfContent: t({
|
|
148
|
+
id: "Contoh konten yang dikembalikan dalam Bahasa Indonesia",
|
|
149
|
+
en: "Example of returned content in English",
|
|
150
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
151
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
152
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
153
|
+
}),
|
|
154
|
+
},
|
|
155
|
+
} satisfies Dictionary;
|
|
156
|
+
|
|
157
|
+
export default indexContent;
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
|
|
161
|
+
import { t } from "intlayer";
|
|
162
|
+
|
|
163
|
+
/** @type {import('intlayer').Dictionary} */
|
|
164
|
+
const indexContent = {
|
|
165
|
+
key: "index",
|
|
166
|
+
content: {
|
|
167
|
+
exampleOfContent: t({
|
|
168
|
+
id: "Contoh konten yang dikembalikan dalam Bahasa Indonesia",
|
|
169
|
+
en: "Example of returned content in English",
|
|
170
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
171
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
172
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
173
|
+
}),
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export default indexContent;
|
|
178
|
+
|
|
179
|
+
/** @type {import('intlayer').Dictionary} */
|
|
180
|
+
const indexContent = {
|
|
181
|
+
key: "index",
|
|
182
|
+
content: {
|
|
183
|
+
exampleOfContent: t({
|
|
184
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
185
|
+
en: "Example of returned content in English",
|
|
186
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
187
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
188
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
189
|
+
}),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export default indexContent;
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
197
|
+
const { t } = require("intlayer");
|
|
198
|
+
|
|
199
|
+
/** @type {import('intlayer').Dictionary} */
|
|
200
|
+
const indexContent = {
|
|
201
|
+
key: "index",
|
|
202
|
+
content: {
|
|
203
|
+
exampleOfContent: t({
|
|
204
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
205
|
+
en: "Example of returned content in English",
|
|
206
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
207
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
208
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
209
|
+
}),
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
module.exports = indexContent;
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
217
|
+
{
|
|
218
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
219
|
+
"key": "index",
|
|
220
|
+
"content": {
|
|
221
|
+
"exampleOfContent": {
|
|
222
|
+
"nodeType": "translation",
|
|
223
|
+
"translation": {
|
|
224
|
+
"id": "Contoh konten yang dikembalikan dalam bahasa Indonesia",
|
|
225
|
+
"en": "Example of returned content in English",
|
|
226
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
227
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
228
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
> Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama mereka dimasukkan ke direktori `contentDir` (secara default, `./src`). Dan cocokkan ekstensi file deklarasi konten (secara default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
236
|
+
|
|
237
|
+
> Untuk detail lebih lanjut, lihat [dokumentasi deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md).
|
|
238
|
+
|
|
239
|
+
### Pengaturan Aplikasi Fastify
|
|
240
|
+
|
|
241
|
+
Siapkan aplikasi Fastify Anda untuk menggunakan `fastify-intlayer`:
|
|
242
|
+
|
|
243
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
244
|
+
import Fastify from "fastify";
|
|
245
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
246
|
+
import dictionaryExample from "./index.content";
|
|
247
|
+
|
|
248
|
+
const fastify = Fastify({ logger: true });
|
|
249
|
+
|
|
250
|
+
typescript fileName="src/index.ts" codeFormat="typescript"
|
|
251
|
+
// Muat plugin internasionalisasi
|
|
252
|
+
await fastify.register(intlayer);
|
|
253
|
+
|
|
254
|
+
// Rute
|
|
255
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
256
|
+
return t({
|
|
257
|
+
en: "Example of returned content in English",
|
|
258
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
259
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
260
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
265
|
+
return getIntlayer("index").exampleOfContent;
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
269
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
// Mulai server
|
|
273
|
+
const start = async () => {
|
|
274
|
+
try {
|
|
275
|
+
await fastify.listen({ port: 3000 });
|
|
276
|
+
} catch (err) {
|
|
277
|
+
fastify.log.error(err);
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
start();
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
286
|
+
import Fastify from "fastify";
|
|
287
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
288
|
+
import dictionaryExample from "./index.content";
|
|
289
|
+
|
|
290
|
+
const fastify = Fastify({ logger: true });
|
|
291
|
+
|
|
292
|
+
// Muat plugin internasionalisasi
|
|
293
|
+
await fastify.register(intlayer);
|
|
294
|
+
|
|
295
|
+
// Rute
|
|
296
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
297
|
+
return t({
|
|
298
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
299
|
+
en: "Example of returned content in English",
|
|
300
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
301
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
302
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
307
|
+
return getIntlayer("index").exampleOfContent;
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
311
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
// Mulai server
|
|
315
|
+
const start = async () => {
|
|
316
|
+
try {
|
|
317
|
+
await fastify.listen({ port: 3000 });
|
|
318
|
+
} catch (err) {
|
|
319
|
+
fastify.log.error(err);
|
|
320
|
+
process.exit(1);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
start();
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
328
|
+
const Fastify = require("fastify");
|
|
329
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
330
|
+
const dictionaryExample = require("./index.content");
|
|
331
|
+
|
|
332
|
+
const fastify = Fastify({ logger: true });
|
|
333
|
+
|
|
334
|
+
// Pembungkus untuk memulai server (async/await)
|
|
335
|
+
const start = async () => {
|
|
336
|
+
try {
|
|
337
|
+
// Muat plugin internasionalisasi
|
|
338
|
+
await fastify.register(intlayer);
|
|
339
|
+
|
|
340
|
+
// Rute
|
|
341
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
342
|
+
return t({
|
|
343
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Indonesia",
|
|
344
|
+
en: "Example of returned content in English",
|
|
345
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
346
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
347
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
352
|
+
return getIntlayer("index").exampleOfContent;
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
356
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
await fastify.listen({ port: 3000 });
|
|
360
|
+
} catch (err) {
|
|
361
|
+
fastify.log.error(err);
|
|
362
|
+
process.exit(1);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
start();
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Kompatibilitas
|
|
370
|
+
|
|
371
|
+
`fastify-intlayer` sepenuhnya kompatibel dengan:
|
|
372
|
+
|
|
373
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md)>) untuk aplikasi React
|
|
374
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md)>) untuk aplikasi Next.js
|
|
375
|
+
|
|
376
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md)>) untuk aplikasi React
|
|
377
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md)>) untuk aplikasi Next.js
|
|
378
|
+
- [`vite-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/vite-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/vite-intlayer/index.md)>) untuk aplikasi Vite
|
|
379
|
+
|
|
380
|
+
Ini juga berfungsi mulus dengan solusi internasionalisasi apa pun di berbagai lingkungan, termasuk browser dan permintaan API. Anda dapat menyesuaikan middleware untuk mendeteksi locale melalui header atau cookie:
|
|
381
|
+
|
|
382
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
383
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
384
|
+
|
|
385
|
+
const config: IntlayerConfig = {
|
|
386
|
+
// ... Opsi konfigurasi lainnya
|
|
387
|
+
middleware: {
|
|
388
|
+
headerName: "my-locale-header",
|
|
389
|
+
cookieName: "my-locale-cookie",
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
export default config;
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
397
|
+
import { Locales } from "intlayer";
|
|
398
|
+
|
|
399
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
400
|
+
const config = {
|
|
401
|
+
// ... Opsi konfigurasi lainnya
|
|
402
|
+
middleware: {
|
|
403
|
+
headerName: "my-locale-header",
|
|
404
|
+
cookieName: "my-locale-cookie",
|
|
405
|
+
},
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
export default config;
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
412
|
+
const { Locales } = require("intlayer");
|
|
413
|
+
|
|
414
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
415
|
+
const config = {
|
|
416
|
+
// ... Opsi konfigurasi lainnya
|
|
417
|
+
middleware: {
|
|
418
|
+
headerName: "my-locale-header",
|
|
419
|
+
cookieName: "my-locale-cookie",
|
|
420
|
+
},
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
module.exports = config;
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
Secara default, `fastify-intlayer` akan menginterpretasikan header `Accept-Language` untuk menentukan bahasa yang dipilih klien.
|
|
427
|
+
|
|
428
|
+
> Untuk informasi lebih lanjut tentang konfigurasi dan topik lanjutan, kunjungi [dokumentasi kami](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
|
|
429
|
+
|
|
430
|
+
### Konfigurasi TypeScript
|
|
431
|
+
|
|
432
|
+
`fastify-intlayer` memanfaatkan kemampuan kuat TypeScript untuk meningkatkan proses internasionalisasi. Tipe statis TypeScript memastikan setiap kunci terjemahan tercakup, mengurangi risiko terjemahan yang hilang dan meningkatkan pemeliharaan.
|
|
433
|
+
|
|
434
|
+
Pastikan tipe yang dihasilkan secara otomatis (secara default di ./types/intlayer.d.ts) disertakan dalam file tsconfig.json Anda.
|
|
435
|
+
|
|
436
|
+
```json5 fileName="tsconfig.json"
|
|
437
|
+
{
|
|
438
|
+
// ... Konfigurasi TypeScript Anda yang sudah ada
|
|
439
|
+
"include": [
|
|
440
|
+
// ... Konfigurasi TypeScript Anda yang sudah ada
|
|
441
|
+
".intlayer/**/*.ts", // Sertakan tipe yang dihasilkan otomatis
|
|
442
|
+
],
|
|
443
|
+
}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Ekstensi VS Code
|
|
447
|
+
|
|
448
|
+
Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat memasang **Ekstensi Intlayer untuk VS Code** resmi.
|
|
449
|
+
|
|
450
|
+
[Pasang dari VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
451
|
+
|
|
452
|
+
Ekstensi ini menyediakan:
|
|
453
|
+
|
|
454
|
+
- **Autocompletion** untuk kunci terjemahan.
|
|
455
|
+
- **Deteksi kesalahan real-time** untuk terjemahan yang hilang.
|
|
456
|
+
- **Pratinjau inline** untuk konten yang diterjemahkan.
|
|
457
|
+
- **Tindakan cepat** untuk memudahkan pembuatan dan pembaruan terjemahan.
|
|
458
|
+
|
|
459
|
+
Untuk detail lebih lanjut tentang cara menggunakan ekstensi ini, lihat [dokumentasi Ekstensi Intlayer untuk VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
460
|
+
|
|
461
|
+
### Konfigurasi Git
|
|
462
|
+
|
|
463
|
+
Disarankan untuk mengabaikan file yang dihasilkan oleh Intlayer. Hal ini memungkinkan Anda untuk menghindari meng-commit file tersebut ke repositori Git Anda.
|
|
464
|
+
|
|
465
|
+
Untuk melakukan ini, Anda dapat menambahkan instruksi berikut ke file `.gitignore` Anda:
|
|
466
|
+
|
|
467
|
+
```plaintext fileName=".gitignore"
|
|
468
|
+
# Abaikan file yang dihasilkan oleh Intlayer
|
|
469
|
+
.intlayer
|
|
470
|
+
```
|
package/docs/id/readme.md
CHANGED
|
@@ -50,7 +50,7 @@ Dengan **file konten per-locale**, **autocompletion TypeScript**, **kamus tree-s
|
|
|
50
50
|
| Fitur | Deskripsi |
|
|
51
51
|
| ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
52
|
| <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. |
|
|
53
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.
|
|
53
|
+
| <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) |
|
|
54
54
|
| <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) |
|
|
55
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
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) |
|
package/docs/it/cli/push.md
CHANGED
|
@@ -23,7 +23,7 @@ slugs:
|
|
|
23
23
|
npx intlayer dictionary push
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Se l'[editor di Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) è installato, puoi anche inviare i dizionari all'editor. Questo comando permette di rendere i dizionari disponibili all'[editor](https://intlayer.org/
|
|
26
|
+
Se l'[editor di Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) è installato, puoi anche inviare i dizionari all'editor. Questo comando permette di rendere i dizionari disponibili all'[editor](https://app.intlayer.org/). In questo modo, puoi condividere i tuoi dizionari con il tuo team e modificare i contenuti senza dover modificare il codice della tua applicazione.
|
|
27
27
|
|
|
28
28
|
## Alias:
|
|
29
29
|
|
package/docs/it/configuration.md
CHANGED
|
@@ -242,14 +242,14 @@ Definisce le impostazioni relative all'editor integrato, incluso il porto del se
|
|
|
242
242
|
- **clientId**:
|
|
243
243
|
- _Tipo_: `string` | `undefined`
|
|
244
244
|
- _Predefinito_: `undefined`
|
|
245
|
-
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://intlayer.org/
|
|
245
|
+
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://app.intlayer.org/project e crea un account.
|
|
246
246
|
- _Esempio_: `true`
|
|
247
247
|
- _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come le variabili d'ambiente.
|
|
248
248
|
|
|
249
249
|
- **clientSecret**:
|
|
250
250
|
- _Tipo_: `string` | `undefined`
|
|
251
251
|
- _Predefinito_: `undefined`
|
|
252
|
-
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://intlayer.org/
|
|
252
|
+
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://app.intlayer.org/project e crea un account.
|
|
253
253
|
- _Esempio_: `true`
|
|
254
254
|
- _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come variabili d'ambiente.
|
|
255
255
|
|
|
@@ -465,7 +465,7 @@ Impostazioni che controllano il logger, incluso il prefisso da utilizzare.
|
|
|
465
465
|
|
|
466
466
|
Impostazioni che controllano le funzionalità AI di Intlayer, inclusi provider, modello e chiave API.
|
|
467
467
|
|
|
468
|
-
Questa configurazione è opzionale se sei registrato sul [Cruscotto Intlayer](https://intlayer.org/
|
|
468
|
+
Questa configurazione è opzionale se sei registrato sul [Cruscotto Intlayer](https://app.intlayer.org/project) utilizzando una chiave di accesso. Intlayer gestirà automaticamente la soluzione AI più efficiente e conveniente per le tue esigenze. Utilizzare le opzioni predefinite garantisce una migliore manutenzione a lungo termine poiché Intlayer aggiorna continuamente per utilizzare i modelli più rilevanti.
|
|
469
469
|
|
|
470
470
|
Se preferisci utilizzare la tua chiave API o un modello specifico, puoi definire la tua configurazione AI personalizzata.
|
|
471
471
|
Questa configurazione AI sarà utilizzata globalmente in tutto il tuo ambiente Intlayer. I comandi CLI utilizzeranno queste impostazioni come valori predefiniti per i comandi (ad esempio `fill`), così come l’SDK, l’Editor Visivo e il CMS. Puoi sovrascrivere questi valori predefiniti per casi d’uso specifici utilizzando i parametri dei comandi.
|
|
@@ -226,7 +226,7 @@ Questo approccio ti permette di:
|
|
|
226
226
|
| Funzionalità | Descrizione |
|
|
227
227
|
| ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
228
228
|
|  | **Supporto Cross-Framework**<br><br>Intlayer è compatibile con tutti i principali framework e librerie, inclusi Next.js, React, Vite, Vue.js, Nuxt, Preact, Express e altri ancora. |
|
|
229
|
-
|  | **Gestione dei Contenuti con JavaScript**<br><br>Sfrutta la flessibilità di JavaScript per definire e gestire i tuoi contenuti in modo efficiente. <br><br> - [Dichiarazione dei contenuti](https://intlayer.org/doc/concept/content) |
|
|
230
230
|
|  | **File di Dichiarazione del Contenuto per Locale**<br><br>Accelera il tuo sviluppo dichiarando il contenuto una sola volta, prima della generazione automatica.<br><br> - [File di Dichiarazione del Contenuto per Locale](https://intlayer.org/doc/concept/per-locale-file) |
|
|
231
231
|
|  | **Ambiente Type-Safe**<br><br>Sfrutta TypeScript per garantire che le tue definizioni di contenuto e il codice siano privi di errori, beneficiando anche dell'autocompletamento nell'IDE.<br><br> - [Configurazione di TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
232
232
|
|  | **Configurazione Semplificata**<br><br>Inizia rapidamente con una configurazione minima. Regola facilmente le impostazioni per l'internazionalizzazione, il routing, l'IA, la build e la gestione dei contenuti.<br><br> - [Esplora l'integrazione con Next.js](https://intlayer.org/doc/environment/nextjs) |
|
package/docs/it/intlayer_CMS.md
CHANGED
|
@@ -92,7 +92,7 @@ const config: IntlayerConfig = {
|
|
|
92
92
|
*
|
|
93
93
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
94
94
|
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
95
|
-
* Possono essere ottenuti creando un nuovo client nel Dashboard di Intlayer - Progetti (https://intlayer.org/
|
|
95
|
+
* Possono essere ottenuti creando un nuovo client nel Dashboard di Intlayer - Progetti (https://app.intlayer.org/projects).
|
|
96
96
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
97
97
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
98
98
|
*/
|
|
@@ -142,7 +142,7 @@ const config = {
|
|
|
142
142
|
*
|
|
143
143
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
144
144
|
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
145
|
-
* Possono essere ottenuti creando un nuovo client nella Dashboard di Intlayer - Progetti (https://intlayer.org/
|
|
145
|
+
* Possono essere ottenuti creando un nuovo client nella Dashboard di Intlayer - Progetti (https://app.intlayer.org/projects).
|
|
146
146
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
147
147
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
148
148
|
*/
|
|
@@ -192,7 +192,7 @@ const config = {
|
|
|
192
192
|
*
|
|
193
193
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
194
194
|
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
195
|
-
* Possono essere ottenuti creando un nuovo client nel Intlayer Dashboard - Projects (https://intlayer.org/
|
|
195
|
+
* Possono essere ottenuti creando un nuovo client nel Intlayer Dashboard - Projects (https://app.intlayer.org/projects).
|
|
196
196
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
197
197
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
198
198
|
*/
|
|
@@ -224,7 +224,7 @@ const config = {
|
|
|
224
224
|
module.exports = config;
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
-
> Se non hai un client ID e un client secret, puoi ottenerli creando un nuovo client nel [Intlayer Dashboard - Projects](https://intlayer.org/
|
|
227
|
+
> Se non hai un client ID e un client secret, puoi ottenerli creando un nuovo client nel [Intlayer Dashboard - Projects](https://app.intlayer.org/projects).
|
|
228
228
|
|
|
229
229
|
> Per vedere tutti i parametri disponibili, fai riferimento alla [documentazione di configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
|
|
230
230
|
|
|
@@ -264,7 +264,7 @@ Questo comando carica i tuoi dizionari di contenuti iniziali, rendendoli disponi
|
|
|
264
264
|
|
|
265
265
|
### Modifica il dizionario
|
|
266
266
|
|
|
267
|
-
Successivamente potrai visualizzare e gestire il tuo dizionario nel [Intlayer CMS](https://intlayer.org/
|
|
267
|
+
Successivamente potrai visualizzare e gestire il tuo dizionario nel [Intlayer CMS](https://app.intlayer.org/content).
|
|
268
268
|
|
|
269
269
|
## Sincronizzazione live
|
|
270
270
|
|