@intlayer/docs 8.12.2 → 8.12.4-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs.map +1 -1
  3. package/dist/cjs/doc.cjs.map +1 -1
  4. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  5. package/dist/cjs/generated/blog.entry.cjs +1 -0
  6. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  7. package/dist/cjs/generated/docs.entry.cjs +1 -0
  8. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
  10. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/legal.entry.cjs +1 -0
  12. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  13. package/dist/cjs/legal.cjs.map +1 -1
  14. package/dist/esm/blog.mjs.map +1 -1
  15. package/dist/esm/common.mjs.map +1 -1
  16. package/dist/esm/doc.mjs.map +1 -1
  17. package/dist/esm/frequentQuestions.mjs.map +1 -1
  18. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  19. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  22. package/dist/esm/legal.mjs.map +1 -1
  23. package/dist/types/blog.d.ts.map +1 -1
  24. package/dist/types/common.d.ts.map +1 -1
  25. package/dist/types/doc.d.ts.map +1 -1
  26. package/dist/types/frequentQuestions.d.ts.map +1 -1
  27. package/dist/types/legal.d.ts.map +1 -1
  28. package/docs/ar/bundle_optimization.md +250 -102
  29. package/docs/ar/configuration.md +10 -10
  30. package/docs/bn/bundle_optimization.md +252 -104
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/cs/bundle_optimization.md +253 -105
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/de/bundle_optimization.md +245 -97
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/en/bundle_optimization.md +172 -49
  37. package/docs/en/configuration.md +10 -10
  38. package/docs/en-GB/bundle_optimization.md +230 -82
  39. package/docs/en-GB/configuration.md +10 -10
  40. package/docs/es/bundle_optimization.md +250 -102
  41. package/docs/es/configuration.md +10 -10
  42. package/docs/fr/bundle_optimization.md +223 -75
  43. package/docs/fr/configuration.md +10 -10
  44. package/docs/hi/bundle_optimization.md +253 -105
  45. package/docs/hi/configuration.md +10 -10
  46. package/docs/id/bundle_optimization.md +258 -110
  47. package/docs/id/configuration.md +10 -10
  48. package/docs/it/bundle_optimization.md +249 -103
  49. package/docs/it/configuration.md +10 -10
  50. package/docs/ja/bundle_optimization.md +245 -97
  51. package/docs/ja/configuration.md +10 -10
  52. package/docs/ko/bundle_optimization.md +253 -105
  53. package/docs/ko/configuration.md +10 -10
  54. package/docs/nl/bundle_optimization.md +249 -101
  55. package/docs/nl/configuration.md +10 -10
  56. package/docs/pl/bundle_optimization.md +258 -111
  57. package/docs/pl/configuration.md +10 -10
  58. package/docs/pt/bundle_optimization.md +256 -115
  59. package/docs/pt/configuration.md +10 -10
  60. package/docs/ru/bundle_optimization.md +253 -105
  61. package/docs/ru/configuration.md +10 -10
  62. package/docs/tr/bundle_optimization.md +255 -107
  63. package/docs/tr/configuration.md +10 -10
  64. package/docs/uk/bundle_optimization.md +250 -102
  65. package/docs/uk/configuration.md +10 -10
  66. package/docs/ur/bundle_optimization.md +257 -109
  67. package/docs/ur/configuration.md +10 -10
  68. package/docs/vi/bundle_optimization.md +259 -111
  69. package/docs/vi/configuration.md +10 -10
  70. package/docs/zh/bundle_optimization.md +260 -112
  71. package/docs/zh/configuration.md +10 -10
  72. package/docs/zh-TW/bundle_optimization.md +602 -0
  73. package/package.json +8 -8
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-04-08
4
- title: i18n Bundle Boyutu ve Performans Optimizasyonu
5
- description: Uluslararasılaştırma (i18n) içeriğini optimize ederek uygulama bundle boyutunu azaltın. Intlayer ile sözlükler için tree shaking ve lazy loading'den nasıl yararlanacağınızı öğrenin.
3
+ updatedAt: 2026-06-07
4
+ title: i18n Paket Boyutu ve Performans Optimizasyonu
5
+ description: Uluslararasılaştırma (i18n) içeriğini optimize ederek uygulama paket boyutunuzu küçültün. Intlayer ile sözlükler için tree shaking ve lazy loading'i nasıl kullanacağınızı öğrenin.
6
6
  keywords:
7
- - Bundle Optimizasyonu
7
+ - Paket Optimizasyonu
8
8
  - İçerik Otomasyonu
9
9
  - Dinamik İçerik
10
10
  - Intlayer
@@ -16,33 +16,36 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 8.12.0
20
+ date: 2026-06-07
21
+ changes: "Babel/Webpack için `intlayerPurgeBabelPlugin` ve `intlayerMinifyBabelPlugin` eklendi; eklenti (plugin) süreci netleştirildi"
19
22
  - version: 8.7.0
20
23
  date: 2026-04-08
21
- changes: "Build yapılandırmasına `minify` ve `purge` seçenekleri eklendi"
24
+ changes: "Derleme (build) yapılandırmasına `minify` ve `purge` seçenekleri eklendi"
22
25
  ---
23
26
 
24
- # i18n Bundle Boyutu ve Performans Optimizasyonu
27
+ # i18n Paket Boyutu ve Performans Optimizasyonu
25
28
 
26
- JSON dosyalarına dayalı geleneksel i18n çözümlerindeki en yaygın zorluklardan biri içerik boyutunu yönetmektir. Geliştiriciler içeriği manuel olarak ad alanlarına (namespaces) ayırmazlarsa, kullanıcılar genellikle tek bir sayfayı görüntülemek için her sayfanın ve potansiyel olarak her dilin çevirilerini indirmek zorunda kalırlar.
29
+ JSON dosyalarına dayanan geleneksel i18n çözümlerinde en yaygın zorluklardan biri içerik boyutunu yönetmektir. Geliştiriciler içeriği manuel olarak isim alanlarına (namespaces) ayırmazlarsa, kullanıcılar genellikle yalnızca tek bir sayfayı görüntülemek için her sayfanın ve potansiyel olarak her dilin çevirilerini indirir.
27
30
 
28
- Örneğin, 10 dilde çevrilmiş 10 sayfası olan bir uygulama, kullanıcının sadece **bir** sayfaya (mevcut dildeki mevcut sayfa) ihtiyacı olmasına rağmen 100 sayfalık içerik indirmesine neden olabilir. Bu durum bant genişliği israfına ve daha yavaş yükleme sürelerine yol açar.
31
+ Örneğin, 10 dilde çevrilmiş 10 sayfalı bir uygulama, bir kullanıcının yalnızca **birine** (geçerli dilde geçerli sayfaya) ihtiyacı olmasına rağmen 100 sayfanın içeriğini indirmesine neden olabilir. Bu da israf edilen bant genişliği ve daha yavaş yükleme süreleri anlamına gelir.
29
32
 
30
- **Intlayer bu sorunu build zamanı optimizasyonu ile çözer.** Her bileşen başına hangi sözlüklerin gerçekten kullanıldığını tespit etmek için kodunuzu analiz eder ve bundle'ınıza yalnızca gerekli içeriği yeniden yerleştirir.
33
+ **Intlayer bu sorunu build zamanı optimizasyonlarıyla çözer.** Kodunuzu analiz ederek her bileşen (component) için gerçekte hangi sözlüklerin kullanıldığını tespit eder ve yalnızca gerekli içeriği paketinizin (bundle) içine yeniden enjekte eder.
31
34
 
32
35
  ## İçindekiler
33
36
 
34
37
  <TOC />
35
38
 
36
- ## Bundle'ınızı Tarayın
39
+ ## Paketinizi analiz edin
37
40
 
38
- Bundle'ınızı analiz etmek, "ağır" JSON dosyalarını ve kod bölme (code-splitting) fırsatlarını belirlemenin ilk adımıdır. Bu araçlar, uygulamanızın derlenmiş kodunun görsel bir ağaç haritasını (treemap) oluşturarak hangi kütüphanelerin en çok yer kapladığını tam olarak görmenizi sağlar.
41
+ Paketinizi analiz etmek, "ağır" JSON dosyalarını ve kod bölme (code-splitting) fırsatlarını belirlemede atılacak ilk adımdır. Bu araçlar, uygulamanızın derlenmiş (compiled) kodunun görsel bir treemap'ini oluşturarak tam olarak hangi kütüphanelerin en çok yer kapladığını görmenize olanak tanır.
39
42
 
40
43
  <Tabs>
41
44
  <Tab value="vite">
42
45
 
43
46
  ### Vite / Rollup
44
47
 
45
- Vite, arka planda Rollup kullanır. `rollup-plugin-visualizer` eklentisi, grafiğinizdeki her modülün boyutunu gösteren etkileşimli bir HTML dosyası oluşturur.
48
+ Vite, arka planda Rollup kullanır. `rollup-plugin-visualizer` eklentisi, grafiğinizdeki her modülün boyutunu gösteren etkileşimli bir HTML dosyası üretir.
46
49
 
47
50
  ```bash
48
51
  npm install -D rollup-plugin-visualizer
@@ -55,7 +58,7 @@ import { visualizer } from "rollup-plugin-visualizer";
55
58
  export default defineConfig({
56
59
  plugins: [
57
60
  visualizer({
58
- open: true, // Raporu tarayıcınızda otomatik olarak
61
+ open: true, // Raporu otomatik olarak tarayıcınızda açar
59
62
  filename: "stats.html",
60
63
  gzipSize: true,
61
64
  brotliSize: true,
@@ -69,7 +72,7 @@ export default defineConfig({
69
72
 
70
73
  ### Next.js (Turbopack)
71
74
 
72
- App Router ve Turbopack kullanan projeler için Next.js, ekstra bağımlılık gerektirmeyen yerleşik ve deneysel bir analizör sağlar.
75
+ App Router ve Turbopack kullanan projelerde, Next.js ekstra bir bağımlılığa ihtiyaç duymayan yerleşik, deneysel bir analizör sağlar.
73
76
 
74
77
  ```bash packageManager='npm'
75
78
  npx next experimental-analyze
@@ -92,7 +95,7 @@ bun next experimental-analyze
92
95
 
93
96
  ### Next.js (Webpack)
94
97
 
95
- Next.js'de varsayılan Webpack oluşturucusunu kullanıyorsanız, resmi bundle analizörünü kullanın. Build sırasında bir ortam değişkeni ayarlayarak bunu tetikleyin.
98
+ Next.js'de varsayılan Webpack paketleyiciyi kullanıyorsanız, resmi bundle analyzer'ı kullanın. Bunu derleme (build) sırasında bir ortam değişkeni ayarlayarak tetikleyebilirsiniz.
96
99
 
97
100
  ```bash packageManager='npm'
98
101
  npm install -D @next/bundle-analyzer
@@ -120,7 +123,7 @@ module.exports = withBundleAnalyzer({
120
123
  });
121
124
  ```
122
125
 
123
- **Kullanım:**
126
+ **Kullanımı:**
124
127
 
125
128
  ```bash
126
129
  ANALYZE=true npm run build
@@ -131,7 +134,7 @@ ANALYZE=true npm run build
131
134
 
132
135
  ### Standart Webpack
133
136
 
134
- Create React App (ejected), Angular veya özel Webpack kurulumları için endüstri standardı olan `webpack-bundle-analyzer` aracını kullanın.
137
+ Create React App (ejected), Angular veya özel Webpack yapılandırmaları için endüstri standardı olan `webpack-bundle-analyzer kullanın.
135
138
 
136
139
  ```bash packageManager='npm'
137
140
  npm install -D webpack-bundle-analyzer
@@ -166,18 +169,55 @@ export default {
166
169
  </Tab>
167
170
  </Tabs>
168
171
 
169
- ## Nasıl Çalışır?
172
+ ## Nasıl Çalışır
170
173
 
171
- Intlayer, **bileşen başına yaklaşımı** kullanır. Global JSON dosyalarının aksine içeriğiniz, bileşenlerinizin yanında veya içinde tanımlanır. Build süreci sırasında Intlayer:
174
+ Intlayer, **bileşen başına bir yaklaşım** kullanır. Global JSON dosyalarının aksine, içeriğiniz bileşenlerinizin yanında veya içinde tanımlanır. Derleme işlemi sırasında Intlayer şunları gerçekleştirir:
172
175
 
173
- 1. `useIntlayer` çağrılarını bulmak için kodunuzu **analiz eder**.
174
- 2. Karşılık gelen sözlük içeriğini **oluşturur**.
175
- 3. `useIntlayer` çağrısını yapılandırmanıza bağlı olarak optimize edilmiş kodla **değiştirir**.
176
+ 1. `useIntlayer` çağrılarını bulmak için kodunuzu **analiz eder**.
177
+ 2. Karşılık gelen sözlük (dictionary) içeriğini **oluşturur**.
178
+ 3. `useIntlayer` çağrısını, yapılandırmanıza göre optimize edilmiş kod ile **değiştirir**.
176
179
 
177
- Bu şu avantajları sağlar:
180
+ Bu şu anlamlara gelir:
178
181
 
179
- - Bir bileşen içe aktarılmazsa, içeriği bundle'a dahil edilmez (Gereksiz Kod Ayıklama - Dead Code Elimination).
180
- - Bir bileşen geç yüklenirse (lazy-loaded), içeriği de geç yüklenir.
182
+ - Bir bileşen (component) import edilmezse, içeriği de pakete (bundle) dahil edilmez (Dead Code Elimination).
183
+ - Bir bileşen lazy-loaded (tembel yükleme) ile çağrılırsa, içeriği de lazy-loaded olur.
184
+
185
+ ## Eklenti (Plugin) Referansı
186
+
187
+ Intlayer'ın derleme optimizasyonu, her birinin tek bir sorumluluğu olduğu birkaç ayrı eklentiye bölünmüştür. Her birinin ne işe yaradığını anlamak yapılandırma sırasında karışıklığı önler.
188
+
189
+ ### Babel eklentileri (`@intlayer/babel`)
190
+
191
+ Bunlar doğrudan Webpack tabanlı yapılandırmalarda (Babel ile kullanılan Next.js, CRA, özel Webpack vb.) `babel.config.js` içinde kullanılır.
192
+
193
+ | Eklenti | Ne yapar |
194
+ | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |
195
+ | `intlayerExtractBabelPlugin` | `.content.ts` dosyalarını tarayarak derlenmiş sözlükleri `.intlayer/` altına yazar |
196
+ | `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` çağrısını `useDictionary(hash)` olarak yeniden yazar ve ilgili sözlük için eşleşen bir `import` ifadesi enjekte eder |
197
+ | `intlayerPurgeBabelPlugin` | Tüm kaynak dosyaları tarar, derlenmiş `.intlayer/**/*.json` sözlük dosyalarından **kullanılmayan içerik alanlarını** temizler |
198
+ | `intlayerMinifyBabelPlugin` | JSON dosyalarındaki ve kaynak koddaki **içerik alanı anahtarlarını kısa alfabetik isimlere (alias)** (`title` → `a`) dönüştürür |
199
+
200
+ > **Eklenti sırası önemlidir.** `babel.config.js` dosyanızda purge ve minify eklentileri optimize eklentisinden **önce** gelmelidir. Optimize aşaması `useIntlayer('key')` öğesini belirsiz bir `useDictionary(hash)` çağrısı ile değiştirdiğinden, purge ve minify işlemlerinin hangi alanların kullanıldığını tespit edebilmesi için gerekli olan sözlük anahtar bilgisi kaybolur.
201
+
202
+ Her Babel eklentisi, yapılandırma yüklenme zamanında `intlayer.config.ts`'yi bir kez okuyan ve önceden çözümlenmiş değerler döndüren, kendisine eşlik eden bir opsiyon yardımcısı (options helper) içerir:
203
+
204
+ | Opsiyon yardımcısı | Birlikte kullanıldığı eklenti |
205
+ | :--------------------------- | :---------------------------- |
206
+ | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
207
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
208
+ | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
209
+ | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
210
+
211
+ ### Vite eklentileri (`vite-intlayer`)
212
+
213
+ Vite kullanıcıları **bunları asla doğrudan yapılandırmaz**. Bunlar `vite.config.ts` içinde `withIntlayer()` fonksiyonu çağrıldığında otomatik olarak bağlanır. `intlayer.config.ts` içindeki `build.purge` ve `build.minify` bayrakları, ek bir eklenti kaydına (registration) gerek kalmadan karşılık gelen davranışı etkinleştirip kapatır.
214
+
215
+ | Dahili Vite eklentisi | Eşdeğer davranışı |
216
+ | :-------------------- | :----------------------------------------------------------------------------------------------- |
217
+ | Usage analyzer | `intlayerPurgeBabelPlugin` analizi ile aynı |
218
+ | Dictionary prune | `intlayerPurgeBabelPlugin` JSON yazma adımı ile aynı |
219
+ | Dictionary minify | `intlayerMinifyBabelPlugin` JSON yazma adımı ile aynı |
220
+ | Babel transform | `intlayerMinifyBabelPlugin` kaynak kod yeniden adlandırması + `intlayerOptimizeBabelPlugin` aynı |
181
221
 
182
222
  ## Platforma Göre Kurulum
183
223
 
@@ -186,9 +226,9 @@ Bu şu avantajları sağlar:
186
226
 
187
227
  ### Next.js
188
228
 
189
- Next.js, dönüşümü yönetmek için `@intlayer/swc` eklentisine ihtiyaç duyar çünkü Next.js build'ler için SWC kullanır.
229
+ Next.js, derleme işlemleri için SWC kullandığından, optimize adımı (import yeniden yazma) için `@intlayer/swc` eklentisine ihtiyaç duyar.
190
230
 
191
- > Bu eklenti varsayılan olarak yüklenmez çünkü SWC eklentileri Next.js için hala deneysel aşamadadır. Gelecekte değişebilir.
231
+ > Bu eklenti varsayılan olarak yüklenmez çünkü SWC eklentileri Next.js için hala deneysel aşamadadır. İlerleyen zamanlarda bu durum değişebilir.
192
232
 
193
233
  ```bash packageManager="npm"
194
234
  npm install -D @intlayer/swc
@@ -206,21 +246,63 @@ pnpm add -D @intlayer/swc
206
246
  bun add -d @intlayer/swc
207
247
  ```
208
248
 
209
- Kurulduktan sonra Intlayer, eklentiyi otomatik olarak algılar ve kullanır.
249
+ Yüklendikten sonra Intlayer eklentiyi otomatik olarak algılar ve kullanır.
250
+
251
+ **Purge ve minify** adımları için (alan kaldırma ve alan yeniden adlandırma), bununla birlikte `@intlayer/babel` paketini de kurun ve Babel eklentilerini ekleyin. Next.js dönüşüm için SWC'yi kullansa da, eklenti yapılandırması için hala `babel.config.js` dosyasını kontrol ettiği için Babel eklentileri SWC'den önceki bir adım olarak çalışır.
252
+
253
+ ```bash packageManager="npm"
254
+ npm install -D @intlayer/babel
255
+ ```
256
+
257
+ ```javascript fileName="babel.config.js"
258
+ const {
259
+ intlayerPurgeBabelPlugin,
260
+ intlayerMinifyBabelPlugin,
261
+ getPurgePluginOptions,
262
+ getMinifyPluginOptions,
263
+ } = require("@intlayer/babel");
264
+
265
+ module.exports = {
266
+ presets: ["next/babel"],
267
+ plugins: [
268
+ // Purge: kullanılmayan içerik alanlarını .intlayer/**/*.json'dan siler
269
+ [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
270
+ // Minify: JSON + kaynak kodunda içerik alanı anahtarlarını yeniden adlandırır
271
+ [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
272
+ // Not: intlayerOptimizeBabelPlugin burada GEREKLİ DEĞİLDİR çünkü
273
+ // @intlayer/swc paketi useIntlayer → useDictionary değişikliğini halleder.
274
+ ],
275
+ };
276
+ ```
210
277
 
211
278
  </Tab>
212
279
  <Tab value="vite">
213
280
 
214
281
  ### Vite
215
282
 
216
- Vite, `vite-intlayer` bağımlılığı olarak dahil edilen `@intlayer/babel` eklentisini kullanır. Optimizasyon varsayılan olarak etkindir. Başka bir şey yapmanıza gerek yoktur.
283
+ Vite, `vite-intlayer` bağımlılığı (dependency) olarak dahil edilen `@intlayer/babel` eklentisini kullanır. Import yeniden yazma, purge ve minify işlemlerini barındıran tam optimizasyon işlemi varsayılan olarak etkindir ve herhangi bir ekstra eklenti kaydı gerektirmez.
284
+
285
+ `intlayer.config.ts` içinde karşılık gelen ayarları ayarlayarak purge ve minify seçeneklerini etkinleştirebilirsiniz:
286
+
287
+ ```typescript fileName="intlayer.config.ts"
288
+ import type { IntlayerConfig } from "intlayer";
289
+
290
+ const config: IntlayerConfig = {
291
+ build: {
292
+ purge: true, // derlenmiş paketlenmiş JSON içinden kullanılmayan içerik alanlarını kaldır
293
+ minify: true, // içerik alanı anahtarlarını daha kısa isimlere (alias) yeniden adlandır
294
+ },
295
+ };
296
+
297
+ export default config;
298
+ ```
217
299
 
218
300
  </Tab>
219
301
  <Tab value="webpack">
220
302
 
221
- ### Webpack
303
+ ### Webpack (ve Babel kullanan Next.js)
222
304
 
223
- Webpack ve Intlayer ile bundle optimizasyonunu etkinleştirmek için uygun Babel (`@intlayer/babel`) veya SWC (`@intlayer/swc`) eklentisini kurup yapılandırmanız gerekir.
305
+ `@intlayer/babel` paketini yükleyin:
224
306
 
225
307
  ```bash packageManager="npm"
226
308
  npm install -D @intlayer/babel
@@ -238,14 +320,37 @@ pnpm add -D @intlayer/babel
238
320
  bun add -d @intlayer/babel
239
321
  ```
240
322
 
241
- ```typescript fileName="babel.config.js"
323
+ Dört eklentinin (plugin) tümünü `babel.config.js` dosyasına doğru sırayla ekleyin:
324
+
325
+ ```javascript fileName="babel.config.js"
242
326
  const {
243
- getOptimizePluginOptions,
327
+ intlayerExtractBabelPlugin,
328
+ intlayerPurgeBabelPlugin,
329
+ intlayerMinifyBabelPlugin,
244
330
  intlayerOptimizeBabelPlugin,
331
+ getExtractPluginOptions,
332
+ getPurgePluginOptions,
333
+ getMinifyPluginOptions,
334
+ getOptimizePluginOptions,
245
335
  } = require("@intlayer/babel");
246
336
 
247
337
  module.exports = {
248
- plugins: [[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()]],
338
+ plugins: [
339
+ // Extract: .content.ts dosyalarını → .intlayer/**/*.json olacak şekilde derler
340
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
341
+
342
+ // Purge: kullanılmayan alanları .intlayer/**/*.json dosyalarından kaldırır
343
+ // (intlayer.config.ts içerisindeki build.purge seçeneğini okur)
344
+ [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
345
+
346
+ // Minify: JSON ve kaynak kodundaki alan anahtarlarını kısaltarak yeniden adlandırır
347
+ // (intlayer.config.ts içerisindeki build.minify seçeneğini okur)
348
+ [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
349
+
350
+ // Optimize: useIntlayer('key') çağrılarını → useDictionary(hash) çağrısına çevirir
351
+ // Sözlük anahtarını tamamen değiştirdiği için en sonda bulunmalıdır.
352
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
353
+ ],
249
354
  };
250
355
  ```
251
356
 
@@ -254,57 +359,62 @@ module.exports = {
254
359
 
255
360
  ## Yapılandırma
256
361
 
257
- Intlayer'ın bundle'ınızı nasıl optimize edeceğini `intlayer.config.ts` dosyanızdaki `build` özelliği aracılığıyla kontrol edebilirsiniz.
362
+ Intlayer'ın paketinizi (bundle) nasıl optimize edeceğini `intlayer.config.ts` dosyanızdaki `build` özelliği aracılığıyla kontrol edebilirsiniz.
258
363
 
259
364
  ```typescript fileName="intlayer.config.ts"
260
365
  import { Locales, type IntlayerConfig } from "intlayer";
261
366
 
262
367
  const config: IntlayerConfig = {
263
368
  internationalization: {
264
- locales: [Locales.ENGLISH, Locales.FRENCH],
369
+ locales: [Locales.ENGLISH, Locales.TURKISH],
265
370
  defaultLocale: Locales.ENGLISH,
266
371
  },
267
372
  dictionary: {
268
373
  importMode: "dynamic",
269
374
  },
270
375
  build: {
271
- /**
272
- * Bundle boyutunu küçültmek için sözlükleri minify et.
273
- */
274
- minify: true;
275
-
276
- /**
277
- * Sözlüklerdeki kullanılmayan anahtarları temizle (purge)
278
- */
279
- purge: true;
280
-
281
- /**
282
- * Build'in TypeScript tiplerini kontrol edip etmeyeceğini belirtir
283
- */
284
- checkTypes: false;
376
+ // Derleme zamanında useIntlayer() çağrılarını doğrudan sözlük içe aktarmalarıyla (import) değiştirir.
377
+ // undefined = otomatik (üretim/production ortamında etkin), true = daima, false = asla.
378
+ optimize: undefined,
379
+
380
+ // Derlenmiş sözlüklerdeki içerik alanı anahtarlarını kısa alfabetik isimlerle (alias) yeniden
381
+ // adlandırır (örneğin title → a). JSON boyutunu küçültür; optimize işlemi (optimize: true) gerektirir.
382
+ minify: true,
383
+
384
+ // Kaynak kodda asla erişilmeyen içerik alanlarını kaldırır.
385
+ // optimize işlemi gerektirir.
386
+ purge: true,
285
387
  },
286
388
  };
287
389
 
288
390
  export default config;
289
391
  ```
290
392
 
291
- > Çoğu durumda `optimize` seçeneğini varsayılan halinde bırakmanız önerilir.
393
+ > Çoğu durumda `optimize` ayarı için varsayılan değeri (`undefined`) korumak önerilir.
292
394
 
293
- > Daha fazla detay için yapılandırma dökümanına bakın: [Yapılandırma](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
395
+ > Tüm seçenekler için yapılandırma referansına bakın: [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
294
396
 
295
- ### Build Seçenekleri
397
+ ### Derleme (Build) Seçenekleri
296
398
 
297
- `build` yapılandırma nesnesi altında aşağıdaki seçenekler mevcuttur:
399
+ | Özellik | Tip | Varsayılan | Açıklama |
400
+ | :------------- | :--------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
401
+ | **`optimize`** | `boolean \| undefined` | `undefined` | İçe aktarma (import) yeniden yazma işlemini etkinleştirir. `undefined` = yalnızca production derlemelerinde aktiftir. `false` olarak ayarlanırsa purge ve minify işlemleri de devre dışı kalır. |
402
+ | **`minify`** | `boolean` | `false` | Derlenmiş JSON dosyalarındaki içerik alanlarının anahtar isimlerini kısa alfabetik adlara dönüştürür. Kaynak kodundaki eşleşen özellikleri de buna uygun şekilde yeniden adlandırır. `optimize` ayarı `false` ise hiçbir etkisi olmaz. |
403
+ | **`purge`** | `boolean` | `false` | Derlenmiş JSON dosyalarından, kaynak kodda erişilmeyen statik içerik alanlarını kaldırır. `optimize` ayarı `false` ise hiçbir etkisi olmaz. |
298
404
 
299
- | Özellik | Tür | Varsayılan | Açıklama |
300
- | :------------- | :-------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
301
- | **`optimize`** | `boolean` | `undefined` | Build optimizasyonunun etkin olup olmadığını kontrol eder. `true` ise, Intlayer sözlük çağrılarını optimize edilmiş enjeksiyonlarla değiştirir. `false` ise optimizasyon devre dışıdır. Prod ortamında `true` olmalıdır. |
302
- | **`minify`** | `boolean` | `false` | Bundle boyutunu azaltmak için sözlüklerin küçültülüp küçültülmeyeceği. |
303
- | **`purge`** | `boolean` | `false` | Sözlüklerdeki kullanılmayan anahtarların temizlenip temizlenmeyeceği. |
405
+ ### Minification (alan anahtarını yeniden adlandırma)
304
406
 
305
- ### Küçültme (Minification)
407
+ `build.minify` komutu JavaScript paketinizi minify **etmez** — bunu bundler'ınız (Webpack, Rollup vb.) halleder. Bunun yerine, kullanıcı tarafından tanımlanmış her içerik alanının adını kısa bir harfe çevirerek derlenmiş olan JSON sözlük dosyalarını küçültür:
306
408
 
307
- Sözlükleri küçültmek gereksiz boşlukları, yorumları temizler ve JSON içeriğinin boyutunu azaltır. Bu, özellikle büyük sözlükler için çok faydalıdır.
409
+ ```
410
+ // Minify öncesi
411
+ { "title": "Merhaba", "subtitle": "Dünya" }
412
+
413
+ // Minify sonrası
414
+ { "a": "Merhaba", "b": "Dünya" }
415
+ ```
416
+
417
+ Aynı yeniden adlandırma işlemi kaynak kodunuzdaki erişim özelliklerine de yansır; bu nedenle derlenmiş kodda `content.title` erişimi `content.a` haline gelir. Çalışma zamanı (runtime) davranışı tamamen aynı kalır.
308
418
 
309
419
  ```typescript fileName="intlayer.config.ts"
310
420
  import type { IntlayerConfig } from "intlayer";
@@ -318,11 +428,13 @@ const config: IntlayerConfig = {
318
428
  export default config;
319
429
  ```
320
430
 
321
- > Not: `optimize` devre dışıysa veya Visual Editor etkinse (editörün düzenleme yapmak için tam içeriğe ihtiyacı olduğundan) küçültme yoksayılır.
431
+ > `optimize` seçeneği `false` olduğunda veya `editor.enabled` `true` olduğunda minification atlanır (görsel düzenleyicinin düzenlemeye olanak tanıması için orijinal alan isimlerine ihtiyacı vardır).
432
+
433
+ > Ayrıca, JSON'ların orijinal isimleriyle uzak (remote) API'den getirildiği durumlarda, yani sözlüklerin `importMode: 'fetch'` ile yüklendiği durumlarda da atlanır — istemci tarafındaki (client-side) isimleri değiştirmek sunucu/istemci sözleşmesini bozacaktır.
322
434
 
323
- ### Temizleme (Purging)
435
+ ### Purging (kullanılmayan alanların silinmesi)
324
436
 
325
- Temizleme, yalnızca kodunuzda gerçekten kullanılan anahtarların nihai sözlük paketine dahil edilmesini sağlar. Uygulamanızın her yerinde kullanılmayan birçok anahtara sahip büyük sözlükleriniz varsa, bu özellik bundle boyutunu önemli ölçüde azaltabilir.
437
+ `build.purge`, kaynak kodunuzda gerçekte hangi içerik alanlarına erişildiğini analiz eder ve derlenen JSON dosyalarından diğer tüm kullanılmayan alanları kaldırır.
326
438
 
327
439
  ```typescript fileName="intlayer.config.ts"
328
440
  import type { IntlayerConfig } from "intlayer";
@@ -336,34 +448,50 @@ const config: IntlayerConfig = {
336
448
  export default config;
337
449
  ```
338
450
 
339
- > Not: `optimize` devre dışıysa temizleme yoksayılır.
451
+ **Örnek:** Beş alanı olan ve sadece ikisinin kullanıldığı bir sözlük:
452
+
453
+ ```
454
+ // Purge öncesi
455
+ { "title": "…", "subtitle": "…", "cta": "…", "footer": "…", "badge": "…" }
456
+
457
+ // Purge sonrası (kaynak kodda sadece title + subtitle kullanılıyor)
458
+ { "title": "…", "subtitle": "…" }
459
+ ```
460
+
461
+ > `optimize` `false` olduğunda veya `editor.enabled` `true` olduğunda Purge işlemi atlanır.
462
+
463
+ > Ayrıca, bir kaynak dosyasının ayrıştırılamadığı veya `useIntlayer` sonucunun bir değişkene atanıp (örneğin objeye yayılması, parçalama (destructuring) yapılmadan bir prop olarak iletilmesi gibi) statik analiz aracının takip edemeyeceği yollarla gönderildiği durumlarda Purge işlemi tedbir amaçlı olarak atlanır. Bu durumlarda tüm sözlük bozulmadan korunur.
464
+
465
+ ### İçe Aktarım Modu (Import Mode)
340
466
 
341
- ### İçe Aktarma Modu (Import Mode)
467
+ Farklı sayfalar ve yerel ayarlar (locales) içeren büyük uygulamalarda, JSON dosyalarınız toplam paket boyutunun önemli bir bölümünü oluşturabilir. Intlayer, `importMode` seçeneğini kullanarak sözlüklerin nasıl yükleneceğini belirlemenize olanak tanır.
342
468
 
343
- Birkaç sayfa ve dil içeren büyük uygulamalarda, JSON dosyalarınız bundle boyutunuzun önemli bir kısmını oluşturabilir. Intlayer, sözlüklerin nasıl yükleneceğini kontrol etmenize olanak tanır.
469
+ ### Global tanımlama
344
470
 
345
- İçe aktarma modu varsayılan olarak `intlayer.config.ts` dosyanızda global olarak tanımlanabilir.
471
+ İçe aktarım modu (import mode), genel kullanım için `intlayer.config.ts` dosyanızda tanımlanabilir.
346
472
 
347
473
  ```typescript fileName="intlayer.config.ts"
348
474
  import type { IntlayerConfig } from "intlayer";
349
475
 
350
476
  const config: IntlayerConfig = {
351
- build: {
352
- minify: true,
477
+ dictionary: {
478
+ importMode: "dynamic", // Varsayılan değer 'static'
353
479
  },
354
480
  };
355
481
 
356
482
  export default config;
357
483
  ```
358
484
 
359
- Ayrıca her bir sözlük için `.content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5}}` dosyalarınızda da tanımlanabilir.
485
+ ### Sözlük bazlı (Per-dictionary) tanımlama
486
+
487
+ Ayrıca tek bir sözlüğün içe aktarma modunu (import mode), kendisine ait olan `.content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5|md|mdx|yaml|yml}}` dosyasında kolayca üzerine yazabilirsiniz (override).
360
488
 
361
489
  ```ts
362
490
  import { type Dictionary, t } from "intlayer";
363
491
 
364
492
  const appContent: Dictionary = {
365
493
  key: "app",
366
- importMode: "dynamic", // Varsayılan içe aktarma modunu geçersiz kıl
494
+ importMode: "dynamic", // Sözlüğün varsayılan import modunu ezer
367
495
  content: {
368
496
  // ...
369
497
  },
@@ -372,83 +500,103 @@ const appContent: Dictionary = {
372
500
  export default appContent;
373
501
  ```
374
502
 
375
- | Özellik | Tür | Varsayılan | Açıklama |
376
- | :--------------- | :--------------------------------- | :--------- | :------------------------------------------------------------------------------------------------------------------- |
377
- | **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` | **Kullanımdan Kaldırıldı**: Bunun yerine `dictionary.importMode` kullanın. Sözlüklerin nasıl yükleneceğini belirler. |
503
+ | Özellik | Tür | Varsayılan | Açıklama |
504
+ | :--------------- | :--------------------------------- | :--------- | :----------------------------------------------------------------------------------------------------------------------------- |
505
+ | **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` | **Önerilmiyor**: Yerine `dictionary.importMode` seçeneğini kullanın. Sözlüklerin nasıl yükleneceğini belirler (aşağıya bakın). |
378
506
 
379
- `importMode` ayarı, sözlük içeriğinin bileşeninize nasıl enjekte edileceğini belirler.
380
- Bunu `intlayer.config.ts` dosyasında `dictionary` nesnesi altında global olarak tanımlayabilir veya belirli bir sözlük için `.content.ts` dosyasında geçersiz kılabilirsiniz.
507
+ `importMode` ayarı, sözlük içeriğinin bileşeniniz içine (component) nasıl enjekte edileceğini belirler. Bunu `intlayer.config.ts` dosyasında `dictionary` altında genel olarak ayarlayabilir veya `.content.ts` dosyasında sözlük bazlı olacak şekilde değiştirebilirsiniz.
381
508
 
382
- ### 1. Statik Mod (`default`)
509
+ ### 1. Static Mode (`default`)
383
510
 
384
- Statik modda Intlayer, `useIntlayer` yöntemini `useDictionary` ile değiştirir ve sözlüğü doğrudan JavaScript bundle'ına enjekte eder.
511
+ Statik modda Intlayer, `useIntlayer` kullanımını `useDictionary` ile değiştirir ve sözlüğü doğrudan JavaScript paketi içerisine koyar.
385
512
 
386
- - **Artıları:** Anında işleme (senkron), hidratasyon sırasında fazladan ağ isteği yok.
387
- - **Eksileri:** Bundle, o belirli bileşen için **tüm** dillerdeki çevirileri içerir.
388
- - **En iyi kullanım alanı:** Tek Sayfa Uygulamaları (SPA).
513
+ - **Artıları:** Anında işleme (senkron), hydration işlemi sırasında hiç fazladan ağ (network) isteği gerektirmez.
514
+ - **Eksileri:** Paket, bileşen için desteklenen **tüm** dillerdeki (locales) içerikleri beraberinde yükler.
515
+ - **Kullanım Senaryosu:** Tek Sayfalı Uygulamalar (Single Page Applications - SPA).
389
516
 
390
517
  **Dönüştürülmüş Kod Örneği:**
391
518
 
392
519
  ```tsx
393
- // Sizin kodunuz
520
+ // Yazdığınız kod
394
521
  const content = useIntlayer("my-key");
395
522
 
396
- // Optimize edilmiş kod (Statik)
523
+ // (Statik Mod için) dönüştürülmüş en iyi kodun temsili
524
+ // Bu sadece temsili bir gösterimdir; asıl kod yapılandırma ve optimizasyona bağlı olarak farklı olabilir.
397
525
  const content = useDictionary({
398
526
  key: "my-key",
399
527
  content: {
400
528
  nodeType: "translation",
401
529
  translation: {
402
530
  en: "My title",
403
- fr: "Mon titre",
531
+ tr: "Benim başlığım",
404
532
  },
405
533
  },
406
534
  });
407
535
  ```
408
536
 
409
- ### 2. Dinamik Mod
537
+ ### 2. Dynamic Mode
410
538
 
411
- Dinamik modda Intlayer, `useIntlayer` yöntemini `useDictionaryAsync` ile değiştirir. Bu, mevcut dile özel JSON'u geç yüklemek (lazy-load) için `import()` (Suspense benzeri mekanizma) kullanır.
539
+ Dinamik modda Intlayer, `useIntlayer` işlevini `useDictionaryAsync` işleviyle değiştirir. Bu, mevcut geçerli dile (locale) ait JSON verisini özel olarak ve sonradan yüklemek için `import()` işlevini (Suspense benzeri bir mekanizma) kullanır.
412
540
 
413
- - **Artıları:** **Dil düzeyinde tree shaking.** İngilizce versiyonunu görüntüleyen bir kullanıcı _yalnızca_ İngilizce sözlüğü indirir. Fransızca sözlüğü asla yüklenmez.
414
- - **Eksileri:** Hidratasyon sırasında bileşen başına bir ağ isteği (varlık getirme) tetikler.
415
- - **En iyi kullanım alanı:** Bundle boyutunun kritik olduğu çok sayıda dil desteği sağlayan sayfalar veya büyük metin blokları.
541
+ - **Artıları:** **Yerel (locale) seviyesinde tree shaking sağlar.** Türkçe sürümü görüntüleyen bir kullanıcı _yalnızca_ Türkçe sözlüğü indirir. İngilizce sözlük ise hiçbir zaman indirilmez veya yüklenmez.
542
+ - **Eksileri:** İlk açılışta (hydration esnasında) bileşen başına bir veri getirme ağ (network) isteğini tetikler.
543
+ - **Kullanım Senaryosu:** Büyük metin blokları barındıran uygulamalar, makaleler veya paket boyutunun (bundle size) oldukça kritik olduğu çok fazla dilli projeler.
416
544
 
417
545
  **Dönüştürülmüş Kod Örneği:**
418
546
 
419
547
  ```tsx
420
- // Sizin kodunuz
548
+ // Yazdığınız kod
421
549
  const content = useIntlayer("my-key");
422
550
 
423
- // Optimize edilmiş kod (Dinamik)
551
+ // (Dinamik Mod için) dönüştürülmüş en iyi kodun temsili
552
+ // Bu sadece temsili bir gösterimdir; asıl kod optimizasyon nedenleriyle değişebilir
424
553
  const content = useDictionaryAsync({
425
554
  en: () =>
426
555
  import(".intlayer/dynamic_dictionary/my-key/en.json").then(
427
556
  (mod) => mod.default
428
557
  ),
429
- fr: () =>
430
- import(".intlayer/dynamic_dictionary/my-key/fr.json").then(
558
+ tr: () =>
559
+ import(".intlayer/dynamic_dictionary/my-key/tr.json").then(
431
560
  (mod) => mod.default
432
561
  ),
433
562
  });
434
563
  ```
435
564
 
436
- > `importMode: 'dynamic'` kullanırken tek bir sayfada `useIntlayer` kullanan 100 bileşeniniz varsa, tarayıcı 100 ayrı getirme (fetch) isteği deneyecektir. Bu istek "şelalesinden" (waterfall) kaçınmak için içeriği atom bileşen başına bir tane yerine daha az sayıda `.content` dosyasında (örneğin sayfa bölümü başına bir sözlük) gruplandırın.
565
+ > `importMode: 'dynamic'` seçeneği kullanıyorken bir bileşende (component) `useIntlayer` kullanan 100 ayrı alanınız varsa, sistem bu alanlara ayrı ayrı olarak ulaşmak için 100 adet istek yapmaya çalışacaktır. Bu tür karmaşık olan istek (request) trafiğinden ve performans kaybından kaçınmak için atom parçalar (atom component) yerine içeriği genel alanlara ayırarak `.content` (örneğin sayfa bölümüne özel bir sözlük dosyası) gruplandırmalarına koyun. Ek olarak aynı isme sahip birkaç `.content` dosyasını kullanmak da mümkündür. İsimler (keyler) aynı ise Intlayer bunları tamamen tek bir sözlük dosyası altında gruplandıracaktır.
566
+
567
+ ### 3. Fetch Mode
437
568
 
438
- ### 3. Getirme Modu (Fetch Mode)
569
+ Dinamik modla fazlasıyla benzer şekilde çalışır ancak ilk olarak uzak sözlükleri bulup almak için Intlayer Live Sync API'ye başvurmaya çalışır. Uzak (Remote API) isteği başarısız olursa veya içeriğin anlık senkronizasyona tabi (live updates) olmadığı belirlenirse yedek (fallback) olan statik duruma, yani dinamik içe aktarım işlemine (dynamic import) geçer.
570
+
571
+ **Dönüştürülmüş Kod Örneği:**
439
572
 
440
- Dinamik mod gibi davranır ancak önce sözlükleri Intlayer Live Sync API'den getirmeye çalışır. API çağrısı başarısız olursa veya içerik canlı güncellemeler için işaretlenmemişse dinamik içe aktarmaya (dynamic import) geri döner.
573
+ ```tsx
574
+ // Yazdığınız kod
575
+ const content = useIntlayer("my-key");
576
+
577
+ // Optimize Edilmiş Kod Örneği (Fetch - İçe Aktarım İçin)
578
+ const content = useDictionaryAsync({
579
+ en: () =>
580
+ fetch("https://intlayer.my-domain.com/dictionary/my-key/en").then((res) =>
581
+ res.json()
582
+ ),
583
+ tr: () =>
584
+ fetch("https://intlayer.my-domain.com/dictionary/my-key/tr").then((res) =>
585
+ res.json()
586
+ ),
587
+ });
588
+ ```
441
589
 
442
- > Daha fazla detay için CMS dökümanına bakın: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
590
+ > CMS (İçerik Yönetim Sistemi) için doküman detayına bakın: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
443
591
 
444
- > Getirme modunda temizleme (purge) ve küçültme (minification) kullanılamaz.
592
+ > API tarafında verilerin tamamen orijinal alan (key) bilgisi barındırması gerektiği için uzak (fetch) çalışma alanlarında (minify) küçültme ve (purge) tamamen temizleme sistemleri uygulanmaz.
445
593
 
446
- ## Özet: Statik vs Dinamik
594
+ ## Özet: Static (Statik) vs Dynamic (Dinamik)
447
595
 
448
- | Özellik | Statik Mod | Dinamik Mod |
449
- | :------------------- | :----------------------------------------------- | :----------------------------------- |
450
- | **JS Bundle Boyutu** | Daha Büyük (Bileşen için tüm dilleri içerir) | En Küçük (Yalnızca kod, içerik yok) |
451
- | **İlk Yükleme** | Anında (İçerik bundle içindedir) | Hafif gecikme (JSON'u getirir) |
452
- | **Ağ İstekleri** | 0 ek istek | Sözlük başına 1 istek |
453
- | **Tree Shaking** | Bileşen düzeyinde | Bileşen düzeyinde + Dil düzeyinde |
454
- | **En İyi Kullanım** | Kullanıcı Arayüzü Bileşenleri, Küçük Uygulamalar | Bol metinli sayfalar, Çok sayıda dil |
596
+ | Özellik | Static Mode (Statik Mod) | Dynamic Mode (Dinamik Mod) |
597
+ | :------------------- | :------------------------------------------------------------- | :------------------------------------------- |
598
+ | **JS Paketi Boyutu** | Büyük (Bileşen için kullanılan tüm dil dosyalarını barındırır) | Küçük (Sadece kod tabanı vardır) |
599
+ | **İlk Yükleme Hızı** | Anlık (Sözlük, genel paketin içindedir) | Küçük Gecikme ile (JSON sonradan indirilir) |
600
+ | **Ağ İstekleri** | 0 Eksta İstek Gerektirmez | 1 Sözlük için anahtar isteği alır |
601
+ | **Tree Shaking** | Bileşen Seviyesinde | Bileşen ve Dil Seviyesinde |
602
+ | **En İyi Senaryo** | UI ve Arayüz Bileşenleri, Küçük Uygulamalar | Büyük Yazılar içeren Siteler, Çok Sayıda Dil |
@@ -679,16 +679,16 @@ routing: {
679
679
 
680
680
  Tanımlama bilgisi saklama alanını kullanırken, ek nitelikler yapılandırabilirsiniz:
681
681
 
682
- | Alan | Açıklama | Tür |
683
- | ---------- | -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
684
- | `name` | Tanımlama bilgisi adı. Varsayılan: `'INTLAYER_LOCALE'` | `string` |
685
- | `domain` | Tanımlama bilgisi alanı. Varsayılan: `undefined` | `string` |
686
- | `path` | Tanımlama bilgisi yolu. Varsayılan: `undefined` | `string` |
687
- | `secure` | HTTPS gerektirir. Varsayılan: `undefined` | `boolean` |
688
- | `httpOnly` | HTTP-only bayrağı. Varsayılan: `undefined` | `boolean` |
689
- | `sameSite` | SameSite politikası. | `'strict'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
690
- | `expires` | Sona erme tarihi veya gün sayısı. Varsayılan: `undefined` | `Date` &#124; <br/> `number` |
691
- | `maxAge` | Oluşturulmasından itibaren saniye cinsinden ömrü. `expires` seçeneğinden önceliklidir. Varsayılan: `undefined` | `number` |
682
+ | Alan | Açıklama | Tür |
683
+ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
684
+ | `name` | Tanımlama bilgisi adı. Varsayılan: `'INTLAYER_LOCALE'` | `string` |
685
+ | `domain` | Tanımlama bilgisi alanı. Varsayılan: `undefined` | `string` |
686
+ | `path` | Tanımlama bilgisi yolu. Varsayılan: `undefined` | `string` |
687
+ | `secure` | HTTPS gerektirir. Varsayılan: `undefined` | `boolean` |
688
+ | `httpOnly` | HTTP-only bayrağı. Varsayılan: `undefined` | `boolean` |
689
+ | `sameSite` | SameSite politikası. | `'strict'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
690
+ | `expires` | Sayı, oluşturulmasından itibaren günleri temsil eder; tarih (veya ISO tarih dizesi) mutlak bir son kullanma tarihidir. Varsayılan: `undefined` | `Date` &#124; <br/> `number` &#124; <br/> `string` |
691
+ | `maxAge` | Oluşturulmasından itibaren saniye cinsinden ömrü. `expires` seçeneğinden önceliklidir. Varsayılan: `undefined` | `number` |
692
692
 
693
693
  #### Saklama Nitelikleri
694
694