@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
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Fastify backend'inizi nasıl çevirirsiniz – i18n rehberi 2026
|
|
5
|
+
description: Fastify backend'inizi çok dilli hale getirmenin yollarını keşfedin. Uluslararasılaştırma (i18n) ve çeviri için dokümantasyonu takip edin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Dokümantasyon
|
|
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: init komutu eklendi
|
|
22
|
+
- version: 7.6.0
|
|
23
|
+
date: 2025-12-31
|
|
24
|
+
changes: Geçmiş başlatıldı
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Fastify backend sitenizi Intlayer ile çevirin | Uluslararasılaştırma (i18n)
|
|
28
|
+
|
|
29
|
+
`fastify-intlayer`, Fastify uygulamaları için güçlü bir uluslararasılaştırma (i18n) eklentisidir; istemci tercihlerine göre yerelleştirilmiş yanıtlar sağlayarak backend servislerinizi küresel olarak erişilebilir hale getirmek için tasarlanmıştır.
|
|
30
|
+
|
|
31
|
+
### Pratik Kullanım Örnekleri
|
|
32
|
+
|
|
33
|
+
- **Kullanıcının Dilinde Backend Hatalarını Gösterme**: Bir hata oluştuğunda, mesajları kullanıcının ana dilinde göstermek anlayışı artırır ve kullanıcı sıkıntısını azaltır. Bu, özellikle toast veya modal gibi ön yüz bileşenlerinde gösterilebilecek dinamik hata mesajları için kullanışlıdır.
|
|
34
|
+
|
|
35
|
+
`fastify-intlayer`, Fastify uygulamaları için güçlü bir uluslararasılaştırma (i18n) eklentisidir; istemcinin tercihleri doğrultusunda yerelleştirilmiş yanıtlar sunarak backend servislerinizi küresel olarak erişilebilir kılmak için tasarlanmıştır.
|
|
36
|
+
|
|
37
|
+
### Pratik Kullanım Senaryoları
|
|
38
|
+
|
|
39
|
+
- **Kullanıcının Dilinde Backend Hatalarını Gösterme**: Bir hata oluştuğunda, mesajların kullanıcının ana dilinde gösterilmesi anlayışı artırır ve hayal kırıklığını azaltır. Bu, özellikle toasts veya modallar gibi ön yüz bileşenlerinde gösterilebilecek dinamik hata mesajları için çok yararlıdır.
|
|
40
|
+
- **Çok Dilli İçerik Alma**: Database'den içerik çeken uygulamalar için uluslararasılaştırma, bu içeriği birden fazla dilde sunmanızı sağlar. Bu, e-commerce siteleri veya content management systems gibi ürün açıklamalarını, makaleleri ve diğer içerikleri kullanıcının tercih ettiği dilde göstermek zorunda olan platformlar için kritiktir.
|
|
41
|
+
- **Çok Dilli E-Posta Gönderimi**: İster transactional e-postalar, ister pazarlama kampanyaları veya bildirimler olsun, alıcının dilinde e-posta göndermek etkileşimi ve etkinliği önemli ölçüde artırabilir.
|
|
42
|
+
- **Çok Dilli Push Bildirimleri**: Mobil uygulamalarda, kullanıcının tercih ettiği dilde push bildirimleri göndermek etkileşimi ve kullanıcı elde tutmayı artırabilir. Bu kişisel dokunuş, bildirimlerin daha ilgili ve uygulanabilir hissettirmesini sağlar.
|
|
43
|
+
- **Diğer İletişimler**: SMS mesajları, sistem uyarıları veya kullanıcı arayüzü güncellemeleri gibi backend'den gelen her türlü iletişim, kullanıcının dilinde olduğunda netlik sağlar ve genel kullanıcı deneyimini iyileştirir.
|
|
44
|
+
|
|
45
|
+
Backend'i uluslararasılaştırarak, uygulamanız yalnızca kültürel farklılıklara saygı göstermekle kalmaz, aynı zamanda küresel pazar ihtiyaçlarıyla daha iyi uyum sağlar; bu da hizmetlerinizi dünya çapında ölçeklendirmenin önemli bir adımıdır.
|
|
46
|
+
|
|
47
|
+
## Başlarken
|
|
48
|
+
|
|
49
|
+
### Kurulum
|
|
50
|
+
|
|
51
|
+
`fastify-intlayer`'ı kullanmaya başlamak için paketi npm ile kurun:
|
|
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
|
+
### Kurulum
|
|
78
|
+
|
|
79
|
+
Uluslararasılaştırma ayarlarını proje kök dizininizde bir `intlayer.config.ts` oluşturarak yapılandırın:
|
|
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} - Intlayer yapılandırma türü */
|
|
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} - Intlayer yapılandırma türü */
|
|
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
|
+
### İçeriğinizi Tanımlayın
|
|
138
|
+
|
|
139
|
+
Çevirileri depolamak için içerik tanımlamalarınızı oluşturun ve yönetin:
|
|
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
|
+
tr: "İngilizce döndürülen içeriğin örneği",
|
|
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
|
+
tr: "İngilizce döndürülen içeriğin örneği",
|
|
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
|
+
|
|
180
|
+
/** @type {import('intlayer').Dictionary} */
|
|
181
|
+
const indexContent = {
|
|
182
|
+
key: "index",
|
|
183
|
+
content: {
|
|
184
|
+
exampleOfContent: t({
|
|
185
|
+
tr: "Döndürülen içeriğin Türkçe örneği",
|
|
186
|
+
en: "Example of returned content in English",
|
|
187
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
188
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
189
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
190
|
+
}),
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export default indexContent;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
```javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
198
|
+
const { t } = require("intlayer");
|
|
199
|
+
|
|
200
|
+
/** @type {import('intlayer').Dictionary} */
|
|
201
|
+
const indexContent = {
|
|
202
|
+
key: "index",
|
|
203
|
+
content: {
|
|
204
|
+
exampleOfContent: t({
|
|
205
|
+
tr: "Döndürülen içeriğin Türkçe örneği",
|
|
206
|
+
en: "Example of returned content in English",
|
|
207
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
208
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
209
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
210
|
+
}),
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
module.exports = indexContent;
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
218
|
+
{
|
|
219
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
220
|
+
"key": "index",
|
|
221
|
+
"content": {
|
|
222
|
+
"exampleOfContent": {
|
|
223
|
+
"nodeType": "translation",
|
|
224
|
+
"translation": {
|
|
225
|
+
"tr": "İngilizce döndürülen içerik örneği",
|
|
226
|
+
"en": "Example of returned content in English",
|
|
227
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
228
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
229
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
> İçerik beyanlarınızı, uygulamanızda `contentDir` dizinine (varsayılan olarak `./src`) dahil edildikleri sürece istediğiniz yere tanımlayabilirsiniz. Ve içerik beyanı dosya uzantısıyla eşleşmelidir (varsayılan olarak `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
237
|
+
|
|
238
|
+
> Daha fazla ayrıntı için [içerik beyanı belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dictionary/content_file.md) bakın.
|
|
239
|
+
|
|
240
|
+
### Fastify Uygulama Kurulumu
|
|
241
|
+
|
|
242
|
+
Fastify uygulamanızı `fastify-intlayer` kullanacak şekilde ayarlayın:
|
|
243
|
+
|
|
244
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
245
|
+
import Fastify from "fastify";
|
|
246
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
247
|
+
import dictionaryExample from "./index.content";
|
|
248
|
+
|
|
249
|
+
const fastify = Fastify({ logger: true });
|
|
250
|
+
|
|
251
|
+
// Uluslararasılaştırma eklentisini yükle
|
|
252
|
+
await fastify.register(intlayer);
|
|
253
|
+
|
|
254
|
+
// Rotalar
|
|
255
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
256
|
+
return t({
|
|
257
|
+
tr: "Döndürülen içeriğin Türkçe örneği",
|
|
258
|
+
en: "Example of returned content in English",
|
|
259
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
260
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
261
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
266
|
+
return getIntlayer("index").exampleOfContent;
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
270
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// Sunucuyu başlat
|
|
274
|
+
const start = async () => {
|
|
275
|
+
try {
|
|
276
|
+
await fastify.listen({ port: 3000 });
|
|
277
|
+
} catch (err) {
|
|
278
|
+
fastify.log.error(err);
|
|
279
|
+
process.exit(1);
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
start();
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
287
|
+
import Fastify from "fastify";
|
|
288
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
289
|
+
import dictionaryExample from "./index.content";
|
|
290
|
+
|
|
291
|
+
const fastify = Fastify({ logger: true });
|
|
292
|
+
|
|
293
|
+
// Uluslararasılaştırma eklentisini yükle
|
|
294
|
+
await fastify.register(intlayer);
|
|
295
|
+
|
|
296
|
+
// Rotalar
|
|
297
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
298
|
+
return t({
|
|
299
|
+
tr: "İngilizce döndürülen içerik örneği",
|
|
300
|
+
en: "Example of returned content in English",
|
|
301
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
302
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
303
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
308
|
+
return getIntlayer("index").exampleOfContent;
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
312
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
// Sunucuyu başlat
|
|
316
|
+
const start = async () => {
|
|
317
|
+
try {
|
|
318
|
+
await fastify.listen({ port: 3000 });
|
|
319
|
+
} catch (err) {
|
|
320
|
+
fastify.log.error(err);
|
|
321
|
+
process.exit(1);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
start();
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
329
|
+
const Fastify = require("fastify");
|
|
330
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
331
|
+
const dictionaryExample = require("./index.content");
|
|
332
|
+
|
|
333
|
+
const fastify = Fastify({ logger: true });
|
|
334
|
+
|
|
335
|
+
// async/await için sunucu başlatma sarmalayıcısı
|
|
336
|
+
const start = async () => {
|
|
337
|
+
try {
|
|
338
|
+
// Uluslararasılaştırma eklentisini yükle
|
|
339
|
+
await fastify.register(intlayer);
|
|
340
|
+
|
|
341
|
+
// Rotalar
|
|
342
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
343
|
+
return t({
|
|
344
|
+
tr: "Dönen içeriğe örnek (Türkçe)",
|
|
345
|
+
en: "Example of returned content in English",
|
|
346
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
347
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
348
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
353
|
+
return getIntlayer("index").exampleOfContent;
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
357
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
await fastify.listen({ port: 3000 });
|
|
361
|
+
} catch (err) {
|
|
362
|
+
fastify.log.error(err);
|
|
363
|
+
process.exit(1);
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
start();
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Uyumluluk
|
|
371
|
+
|
|
372
|
+
`fastify-intlayer` şu paketlerle tamamen uyumludur:
|
|
373
|
+
|
|
374
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/react-intlayer/index.md)>) React uygulamaları için
|
|
375
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/index.md)>) Next.js uygulamaları için
|
|
376
|
+
|
|
377
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/react-intlayer/index.md)>) React uygulamaları için
|
|
378
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/index.md)>) Next.js uygulamaları için
|
|
379
|
+
- [`vite-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/vite-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/vite-intlayer/index.md)>) Vite uygulamaları için
|
|
380
|
+
|
|
381
|
+
Ayrıca tarayıcılar ve API istekleri dahil olmak üzere çeşitli ortamlarda herhangi bir uluslararasılaştırma çözümü ile sorunsuz çalışır. Middleware'i başlıklar (headers) veya çerezler aracılığıyla locale tespit edecek şekilde özelleştirebilirsiniz:
|
|
382
|
+
|
|
383
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
384
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
385
|
+
|
|
386
|
+
const config: IntlayerConfig = {
|
|
387
|
+
// ... Diğer yapılandırma seçenekleri
|
|
388
|
+
middleware: {
|
|
389
|
+
headerName: "my-locale-header",
|
|
390
|
+
cookieName: "my-locale-cookie",
|
|
391
|
+
},
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
export default config;
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
398
|
+
import { Locales } from "intlayer";
|
|
399
|
+
|
|
400
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
401
|
+
const config = {
|
|
402
|
+
// ... Diğer yapılandırma seçenekleri
|
|
403
|
+
middleware: {
|
|
404
|
+
headerName: "my-locale-header",
|
|
405
|
+
cookieName: "my-locale-cookie",
|
|
406
|
+
},
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
export default config;
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
413
|
+
const { Locales } = require("intlayer");
|
|
414
|
+
|
|
415
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
416
|
+
const config = {
|
|
417
|
+
// ... Diğer yapılandırma seçenekleri
|
|
418
|
+
middleware: {
|
|
419
|
+
headerName: "my-locale-header",
|
|
420
|
+
cookieName: "my-locale-cookie",
|
|
421
|
+
},
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
module.exports = config;
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
Varsayılan olarak, `fastify-intlayer` istemcinin tercih ettiği dili belirlemek için `Accept-Language` başlığını yorumlar.
|
|
428
|
+
|
|
429
|
+
> Yapılandırma ve gelişmiş konular hakkında daha fazla bilgi için [dökümantasyonumuza](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md) bakın.
|
|
430
|
+
|
|
431
|
+
### TypeScript'i Yapılandırma
|
|
432
|
+
|
|
433
|
+
`fastify-intlayer`, uluslararasılaştırma sürecini geliştirmek için TypeScript'in güçlü yeteneklerinden yararlanır. TypeScript'in statik tiplendirmesi, her çeviri anahtarının hesaba katılmasını sağlar, eksik çeviriler riskini azaltır ve bakım kolaylığını artırır.
|
|
434
|
+
|
|
435
|
+
Otomatik oluşturulan tiplerin (varsayılan olarak ./types/intlayer.d.ts konumunda) tsconfig.json dosyanıza dahil edildiğinden emin olun.
|
|
436
|
+
|
|
437
|
+
```json5 fileName="tsconfig.json"
|
|
438
|
+
{
|
|
439
|
+
// ... Mevcut TypeScript yapılandırmalarınız
|
|
440
|
+
"include": [
|
|
441
|
+
// ... Mevcut TypeScript yapılandırmalarınız
|
|
442
|
+
".intlayer/**/*.ts", // Otomatik oluşturulan tipleri dahil edin
|
|
443
|
+
],
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### VS Code Uzantısı
|
|
448
|
+
|
|
449
|
+
Geliştirici deneyiminizi Intlayer ile iyileştirmek için resmi **Intlayer VS Code Uzantısı**nı yükleyebilirsiniz.
|
|
450
|
+
|
|
451
|
+
[VS Code Marketplace'ten Yükle](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
452
|
+
|
|
453
|
+
Bu uzantı şunları sağlar:
|
|
454
|
+
|
|
455
|
+
- **Çeviri anahtarları için otomatik tamamlama.**
|
|
456
|
+
- **Eksik çeviriler için gerçek zamanlı hata tespiti.**
|
|
457
|
+
- **Çevrilmiş içeriğin satır içi önizlemeleri.**
|
|
458
|
+
- **Çevirileri kolayca oluşturup güncellemek için hızlı eylemler.**
|
|
459
|
+
|
|
460
|
+
Uzantının nasıl kullanılacağıyla ilgili daha fazla ayrıntı için [Intlayer VS Code Uzantısı dokümantasyonuna](https://intlayer.org/doc/vs-code-extension) bakın.
|
|
461
|
+
|
|
462
|
+
### Git Yapılandırması
|
|
463
|
+
|
|
464
|
+
Intlayer tarafından oluşturulan dosyaların yoksayılması önerilir. Bu, bunları Git havuzunuza göndermekten kaçınmanızı sağlar.
|
|
465
|
+
|
|
466
|
+
Bunu yapmak için .gitignore dosyanıza aşağıdaki satırları ekleyebilirsiniz:
|
|
467
|
+
|
|
468
|
+
```plaintext fileName=".gitignore"
|
|
469
|
+
# Intlayer tarafından oluşturulan dosyaları yoksay
|
|
470
|
+
.intlayer
|
|
471
|
+
```
|
package/docs/tr/readme.md
CHANGED
|
@@ -50,7 +50,7 @@ Framework bağımsızdır, **yapay zeka desteklidir** ve ücretsiz bir **CMS & g
|
|
|
50
50
|
| Özellik | Açıklama |
|
|
51
51
|
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
52
|
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Özellik" width="700"> | **Çapraz Framework Desteği**<br><br>Intlayer, Next.js, React, Vite, Vue.js, Nuxt, Preact, Express ve daha fazlası dahil olmak üzere tüm büyük frameworkler ve kütüphanelerle uyumludur. |
|
|
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="Özellik" width="700"> | **JavaScript Destekli İçerik Yönetimi**<br><br>İçeriğinizi tanımlamak ve verimli bir şekilde yönetmek için JavaScript'in esnekliğinden yararlanın. <br><br> - [İçerik bildirimi](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="Özellik" width="700"> | **Yerel Bazlı İçerik Bildirim Dosyası**<br><br>Otomatik oluşturma öncesinde içeriğinizi bir kez bildirerek geliştirme sürecinizi hızlandırın.<br><br> - [Yerel Bazlı İçerik Bildirim Dosyası](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="Özellik" width="700"> | **Tip Güvenli Ortam**<br><br>İçerik tanımlarınızın ve kodunuzun hatasız olmasını sağlamak için TypeScript'ten yararlanın ve aynı zamanda IDE otomatik tamamlama özelliğinin avantajlarından faydalanın.<br><br> - [TypeScript yapılandırması](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="Özellik" width="700"> | **Basitleştirilmiş Kurulum**<br><br>Minimum yapılandırma ile hızlıca çalışmaya başlayın. Uluslararasılaştırma, yönlendirme, yapay zeka, derleme ve içerik yönetimi ayarlarını kolayca yapın.<br><br> - [Next.js entegrasyonunu keşfedin](https://intlayer.org/doc/environment/nextjs) |
|
package/docs/vi/cli/push.md
CHANGED
|
@@ -23,7 +23,7 @@ slugs:
|
|
|
23
23
|
npx intlayer dictionary push
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Nếu [trình chỉnh sửa intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_visual_editor.md) đã được cài đặt, bạn cũng có thể đẩy từ điển lên trình chỉnh sửa. Lệnh này sẽ cho phép làm cho các từ điển có sẵn trên [trình chỉnh sửa](https://intlayer.org/
|
|
26
|
+
Nếu [trình chỉnh sửa intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_visual_editor.md) đã được cài đặt, bạn cũng có thể đẩy từ điển lên trình chỉnh sửa. Lệnh này sẽ cho phép làm cho các từ điển có sẵn trên [trình chỉnh sửa](https://app.intlayer.org/). Bằng cách này, bạn có thể chia sẻ từ điển với nhóm của mình và chỉnh sửa nội dung mà không cần chỉnh sửa mã nguồn của ứng dụng.
|
|
27
27
|
|
|
28
28
|
## Bí danh:
|
|
29
29
|
|
package/docs/vi/configuration.md
CHANGED
|
@@ -268,14 +268,14 @@ Các phần sau mô tả các thiết lập cấu hình khác nhau có sẵn cho
|
|
|
268
268
|
- **clientId**:
|
|
269
269
|
- _Kiểu_: `string` | `undefined`
|
|
270
270
|
- _Mặc định_: `undefined`
|
|
271
|
-
- _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/
|
|
271
|
+
- _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://app.intlayer.org/project và tạo một tài khoản.
|
|
272
272
|
- _Ví dụ_: `true`
|
|
273
273
|
- _Lưu ý_: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
|
|
274
274
|
|
|
275
275
|
- **clientSecret**:
|
|
276
276
|
- _Kiểu_: `string` | `undefined`
|
|
277
277
|
- _Mặc định_: `undefined`
|
|
278
|
-
- _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/
|
|
278
|
+
- _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://app.intlayer.org/project và tạo một tài khoản.
|
|
279
279
|
- _Ví dụ_: `true`
|
|
280
280
|
- _Lưu ý_: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
|
|
281
281
|
|
|
@@ -607,7 +607,7 @@ Các cài đặt kiểm soát logger, bao gồm tiền tố sử dụng.
|
|
|
607
607
|
|
|
608
608
|
Các cài đặt kiểm soát các tính năng AI của Intlayer, bao gồm nhà cung cấp, mô hình và khóa API.
|
|
609
609
|
|
|
610
|
-
Cấu hình này là tùy chọn nếu bạn đã đăng ký trên [Bảng điều khiển Intlayer](https://intlayer.org/
|
|
610
|
+
Cấu hình này là tùy chọn nếu bạn đã đăng ký trên [Bảng điều khiển Intlayer](https://app.intlayer.org/project) bằng khóa truy cập. Intlayer sẽ tự động quản lý giải pháp AI hiệu quả và tiết kiệm chi phí nhất cho nhu cầu của bạn. Sử dụng các tùy chọn mặc định đảm bảo khả năng bảo trì lâu dài tốt hơn khi Intlayer liên tục cập nhật để sử dụng các mô hình phù hợp nhất.
|
|
611
611
|
|
|
612
612
|
Nếu bạn muốn sử dụng khóa API riêng hoặc mô hình cụ thể, bạn có thể định nghĩa cấu hình AI tùy chỉnh của mình.
|
|
613
613
|
Cấu hình AI này sẽ được sử dụng toàn cục trong môi trường Intlayer của bạn. Các lệnh CLI sẽ sử dụng các cài đặt này làm mặc định cho các lệnh (ví dụ: `fill`), cũng như SDK, Visual Editor và CMS. Bạn có thể ghi đè các giá trị mặc định này cho các trường hợp sử dụng cụ thể bằng cách sử dụng các tham số lệnh.
|
|
@@ -231,7 +231,7 @@ Cách tiếp cận này cho phép bạn:
|
|
|
231
231
|
| Tính năng | Mô tả |
|
|
232
232
|
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
233
233
|
|  | **Hỗ trợ đa Framework**<br><br>Intlayer tương thích với tất cả các framework và thư viện lớn, bao gồm Next.js, React, Vite, Vue.js, Nuxt, Preact, Express và nhiều hơn nữa. |
|
|
234
|
-
|  | **Quản lý Nội dung Bằng JavaScript**<br><br>Khai thác sự linh hoạt của JavaScript để định nghĩa và quản lý nội dung của bạn một cách hiệu quả.<br><br> - [Khai báo nội dung](https://intlayer.org/doc/concept/content) |
|
|
235
235
|
|  | **Tệp Khai Báo Nội Dung Theo Ngôn Ngữ**<br><br>Tăng tốc phát triển bằng cách khai báo nội dung một lần, trước khi tự động tạo.<br><br> - [Tệp Khai Báo Nội Dung Theo Ngôn Ngữ](https://intlayer.org/doc/concept/per-locale-file) |
|
|
236
236
|
|  | **Môi Trường An Toàn Kiểu Dữ Liệu**<br><br>Tận dụng TypeScript để đảm bảo định nghĩa nội dung và mã của bạn không có lỗi, đồng thời hưởng lợi từ tính năng tự động hoàn thành trong IDE.<br><br> - [Cấu hình TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
237
237
|
|  | **Cài đặt Đơn giản hóa**<br><br>Bắt đầu nhanh chóng với cấu hình tối thiểu. Dễ dàng điều chỉnh các thiết lập cho quốc tế hóa, định tuyến, AI, build và xử lý nội dung.<br><br> - [Khám phá tích hợp Next.js](https://intlayer.org/doc/environment/nextjs) |
|
package/docs/vi/intlayer_CMS.md
CHANGED
|
@@ -98,7 +98,7 @@ const config: IntlayerConfig = {
|
|
|
98
98
|
*
|
|
99
99
|
* Client ID và client secret là bắt buộc để kích hoạt trình chỉnh sửa.
|
|
100
100
|
* Chúng cho phép xác định người dùng đang chỉnh sửa nội dung.
|
|
101
|
-
* Có thể lấy được bằng cách tạo một client mới trong Bảng điều khiển Intlayer - Projects (https://intlayer.org/
|
|
101
|
+
* Có thể lấy được bằng cách tạo một client mới trong Bảng điều khiển Intlayer - 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 và client secret là bắt buộc để kích hoạt trình chỉnh sửa.
|
|
150
150
|
* Chúng cho phép xác định người dùng đang chỉnh sửa nội dung.
|
|
151
|
-
* Chúng có thể được lấy bằng cách tạo một client mới trong Intlayer Dashboard - Projects (https://intlayer.org/
|
|
151
|
+
* Chúng có thể được lấy bằng cách tạo một client mới trong 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 và client secret là bắt buộc để kích hoạt trình chỉnh sửa.
|
|
200
200
|
* Chúng cho phép xác định người dùng đang chỉnh sửa nội dung.
|
|
201
|
-
* Bạn có thể lấy chúng bằng cách tạo một client mới trong Intlayer Dashboard - Projects (https://intlayer.org/
|
|
201
|
+
* Bạn có thể lấy chúng bằng cách tạo một client mới trong 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
|
-
> Nếu bạn chưa có client ID và client secret, bạn có thể lấy chúng bằng cách tạo một client mới trong [Intlayer Dashboard - Projects](https://intlayer.org/
|
|
233
|
+
> Nếu bạn chưa có client ID và client secret, bạn có thể lấy chúng bằng cách tạo một client mới trong [Intlayer Dashboard - Projects](https://app.intlayer.org/projects).
|
|
234
234
|
|
|
235
235
|
> Để xem tất cả các tham số có sẵn, hãy tham khảo [tài liệu cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md).
|
|
236
236
|
|
|
@@ -270,7 +270,7 @@ Lệnh này sẽ tải các từ điển nội dung ban đầu của bạn lên,
|
|
|
270
270
|
|
|
271
271
|
### Chỉnh sửa từ điển
|
|
272
272
|
|
|
273
|
-
Sau đó, bạn sẽ có thể xem và quản lý từ điển của mình trong [Intlayer CMS](https://intlayer.org/
|
|
273
|
+
Sau đó, bạn sẽ có thể xem và quản lý từ điển của mình trong [Intlayer CMS](https://app.intlayer.org/content).
|
|
274
274
|
|
|
275
275
|
## Đồng bộ trực tiếp (Live sync)
|
|
276
276
|
|