@intlayer/docs 7.0.0-canary.2 → 7.0.0-canary.3

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 (43) hide show
  1. package/dist/cjs/common.cjs.map +1 -1
  2. package/dist/esm/common.mjs.map +1 -1
  3. package/dist/types/common.d.ts +5 -0
  4. package/dist/types/common.d.ts.map +1 -1
  5. package/docs/ar/intlayer_with_nextjs_16.md +1652 -0
  6. package/docs/ar/releases/v7.md +486 -0
  7. package/docs/de/intlayer_with_nextjs_16.md +1662 -0
  8. package/docs/de/releases/v7.md +503 -0
  9. package/docs/en/intlayer_with_nextjs_15.md +5 -2
  10. package/docs/en/intlayer_with_nextjs_16.md +4 -4
  11. package/docs/en-GB/intlayer_with_nextjs_16.md +1642 -0
  12. package/docs/en-GB/releases/v7.md +486 -0
  13. package/docs/es/intlayer_with_nextjs_16.md +1670 -0
  14. package/docs/es/releases/v7.md +503 -0
  15. package/docs/fr/intlayer_with_nextjs_16.md +1692 -0
  16. package/docs/fr/releases/v7.md +504 -0
  17. package/docs/hi/intlayer_with_nextjs_16.md +1618 -0
  18. package/docs/hi/releases/v7.md +486 -0
  19. package/docs/id/intlayer_with_nextjs_16.md +1604 -0
  20. package/docs/id/releases/v7.md +503 -0
  21. package/docs/it/intlayer_with_nextjs_16.md +1600 -0
  22. package/docs/it/releases/v7.md +505 -0
  23. package/docs/ja/intlayer_CMS.md +0 -9
  24. package/docs/ja/intlayer_with_nextjs_16.md +1788 -0
  25. package/docs/ja/releases/v7.md +504 -0
  26. package/docs/ko/intlayer_with_nextjs_16.md +1641 -0
  27. package/docs/ko/releases/v7.md +504 -0
  28. package/docs/pl/intlayer_with_nextjs_16.md +1645 -0
  29. package/docs/pl/releases/v7.md +486 -0
  30. package/docs/pt/intlayer_with_nextjs_16.md +1646 -0
  31. package/docs/pt/introduction.md +0 -15
  32. package/docs/pt/releases/v7.md +486 -0
  33. package/docs/ru/intlayer_with_nextjs_16.md +1610 -0
  34. package/docs/ru/releases/v7.md +486 -0
  35. package/docs/tr/intlayer_with_nextjs_16.md +1599 -0
  36. package/docs/tr/releases/v7.md +486 -0
  37. package/docs/vi/intlayer_with_nextjs_16.md +1597 -0
  38. package/docs/vi/releases/v7.md +486 -0
  39. package/docs/zh/intlayer_CMS.md +0 -23
  40. package/docs/zh/intlayer_with_nextjs_16.md +1628 -0
  41. package/docs/zh/releases/v7.md +487 -0
  42. package/package.json +14 -14
  43. package/src/common.ts +5 -0
@@ -0,0 +1,486 @@
1
+ ---
2
+ createdAt: 2025-09-22
3
+ updatedAt: 2025-09-23
4
+ title: Yeni Intlayer v7 - Yenilikler Neler?
5
+ description: Intlayer v7'de nelerin yeni olduğunu keşfedin. Performans, geliştirici deneyimi ve uluslararasılaştırma iş akışınızı geliştirecek yeni özelliklerde büyük iyileştirmeler.
6
+ keywords:
7
+ - Intlayer
8
+ - Yerelleştirme
9
+ - Geliştirme
10
+ - Performans
11
+ - Geliştirici Deneyimi
12
+ - Özellikler
13
+ - React
14
+ - Next.js
15
+ - JavaScript
16
+ - TypeScript
17
+ slugs:
18
+ - doc
19
+ - releases
20
+ - v7
21
+ ---
22
+
23
+ # Yeni Intlayer v7 - Yenilikler Neler?
24
+
25
+ Intlayer v7'ye hoş geldiniz! Bu büyük sürüm, performans, tür güvenliği ve geliştirici deneyiminde önemli iyileştirmeler sunuyor. Aşağıda, geçiş notları ve pratik örneklerle birlikte öne çıkanlar yer almaktadır.
26
+
27
+ ## Öne Çıkanlar
28
+
29
+ - Daha hızlı derlemeler için önbellekleme stratejisi
30
+ - Yerel dil türlerine göre geliştirilmiş TypeScript türü oluşturma
31
+ - Paket optimizasyonu: Enum yerine string olarak yereller
32
+ - Yeni yönlendirme modları: `prefix-no-default`, `prefix-all`, `no-prefix`, `search-params`
33
+ - GDPR uyumlu yerel depolama, varsayılan olarak localStorage kullanımı
34
+ - Esnek depolama yapılandırması: çerezler, localStorage, sessionStorage veya birden fazla
35
+ - Görsel Düzenleyici paket boyutunda %30 küçülme
36
+ - Geliştirilmiş ara katman (middleware) yapılandırma seçenekleri
37
+ - Daha iyi içerik yönetimi için güncellenmiş fill komutu davranışı
38
+ - Tam içerik beyan dosyası güncellemeleri ile artırılmış kararlılık
39
+ - Çeviri doğruluğu için akıllı yeniden deneme yönetimi
40
+ - Daha hızlı çeviri işlemi için paralelleştirme
41
+ - AI bağlam sınırları içinde büyük dosyaları yönetmek için akıllı parçalara ayırma
42
+
43
+ ---
44
+
45
+ ## Performans: Daha hızlı derlemeler için önbellekleme
46
+
47
+ Her derlemede esbuild ile içerik beyanlarını yeniden oluşturmak yerine, v7 derleme sürecini hızlandıran bir önbellekleme stratejisi uygular.
48
+
49
+ ```bash
50
+ npx intlayer build
51
+ ```
52
+
53
+ Yeni önbellekleme sistemi:
54
+
55
+ - Derlenmiş içerik beyanlarını saklayarak gereksiz işlemleri önler
56
+ - Değişiklikleri algılar ve sadece değiştirilmiş dosyaları yeniden oluşturur
57
+ - Büyük projelerde derleme sürelerini önemli ölçüde azaltır
58
+
59
+ ---
60
+
61
+ ## TypeScript: Yerel dil bazlı tür oluşturma
62
+
63
+ TypeScript türleri artık her yerel dil için ayrı ayrı oluşturulmakta, böylece daha güçlü türlendirme sağlanmakta ve tüm yereller arasında birleşik türler ortadan kaldırılmaktadır.
64
+
65
+ **v6 davranışı:**
66
+
67
+ ```tsx
68
+ const content = getIntlayer("my-title-content", "en");
69
+ // typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" }
70
+ ```
71
+
72
+ **v7 davranışı:**
73
+
74
+ ```tsx
75
+ const content = getIntlayer("my-title-content", "en");
76
+ // typeof content = { title: "Başlığım" }
77
+ ```
78
+
79
+ Faydalar:
80
+
81
+ - IDE'nizde daha hassas otomatik tamamlama
82
+ - Yereller arası tür kirliliği olmadan daha iyi tür güvenliği
83
+ - Tür karmaşıklığını azaltarak geliştirilmiş performans
84
+
85
+ ---
86
+
87
+ ## Paket optimizasyonu: Yereller string olarak
88
+
89
+ `Locales` türü artık bir enum değil, bu da tamamen tree-shakeable olduğu ve binlerce kullanılmayan yerel kayıtla paketinizin şişmesini engellediği anlamına gelir.
90
+
91
+ **v6:**
92
+
93
+ ```typescript
94
+ import { Locales } from "intlayer";
95
+ // Tüm yerelleri içeren enum -> tree-shakeable değil
96
+
97
+ const locale: Locales = Locales.ENGLISH;
98
+ ```
99
+
100
+ **v7:**
101
+
102
+ ```typescript
103
+ import { Locales, Locale } from "intlayer";
104
+ // String türü -> tamamen tree-shakeable
105
+
106
+ const locale: Locale = Locales.ENGLISH;
107
+ ```
108
+
109
+ > Çünkü `Locales` artık bir enum değil, yerel türü olarak almak için türü `Locales`'den `Locale`'a değiştirmeniz gerekecek.
110
+
111
+ Daha fazla bilgi için [uygulama detaylarına](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) bakınız.
112
+
113
+ ---
114
+
115
+ ## Daha fazla esneklik için yeni yönlendirme modları
116
+
117
+ v7, önceki `prefixDefault` ve `noPrefix` seçeneklerinin yerini alan birleşik bir `routing.mode` yapılandırması sunar ve URL yapısı üzerinde daha ayrıntılı kontrol sağlar.
118
+
119
+ ### Mevcut yönlendirme modları
120
+
121
+ - **`prefix-no-default`** (varsayılan): Varsayılan yerel için önek yok, diğer yerellerde var
122
+ - `/dashboard` (en) veya `/fr/dashboard` (fr)
123
+ - **`prefix-all`**: Tüm yerellerde önek var
124
+ - `/en/dashboard` (en) veya `/fr/dashboard` (fr)
125
+ - **`no-prefix`**: URL'lerde yerel önek yok (yerel ayar depolama/başlıklar aracılığıyla yönetilir)
126
+ - Tüm yereller için `/dashboard`
127
+ - **`search-params`**: Yerel ayar sorgu parametresi olarak iletilir
128
+ - `/dashboard?locale=en` veya `/dashboard?locale=fr`
129
+
130
+ ### Temel yapılandırma
131
+
132
+ ```typescript
133
+ // intlayer.config.ts
134
+ export default {
135
+ internationalization: {
136
+ locales: ["en", "fr", "es"],
137
+ defaultLocale: "en",
138
+ },
139
+ routing: {
140
+ mode: "prefix-no-default", // varsayılan
141
+ },
142
+ };
143
+ ```
144
+
145
+ ---
146
+
147
+ ## GDPR uyumluluğu: localStorage / çerez depolama
148
+
149
+ v7, kullanıcı gizliliğini ön planda tutarak varsayılan depolama mekanizması olarak çerezler yerine `localStorage` kullanır. Bu değişiklik, yerel tercihleri için çerez onayı gereksinimini ortadan kaldırarak GDPR uyumluluğuna yardımcı olur.
150
+
151
+ ### Depolama yapılandırma seçenekleri
152
+
153
+ Yeni `routing.storage` alanı, önceki `middleware.cookieName` ve `middleware.serverSetCookie` seçeneklerine ek olarak kullanılabilir durumdadır ve esnek depolama yapılandırmaları sunar:
154
+
155
+ ```typescript
156
+ // Depolamayı devre dışı bırak
157
+ storage: false
158
+
159
+ // Basit depolama türleri
160
+ storage: 'cookie'
161
+ storage: 'localStorage'
162
+ storage: 'sessionStorage'
163
+
164
+ // Özel özelliklere sahip çerez
165
+ storage: {
166
+ type: 'cookie',
167
+ name: 'custom-locale',
168
+ domain: '.example.com',
169
+ secure: true,
170
+ sameSite: 'strict'
171
+ }
172
+
173
+ // Özel anahtarla localStorage
174
+ storage: {
175
+ type: 'localStorage',
176
+ name: 'custom-locale'
177
+ }
178
+
179
+ // Yedeklilik için birden fazla depolama türü
180
+ storage: ['cookie', 'localStorage']
181
+ ```
182
+
183
+ ### GDPR uyumlu yapılandırma örneği
184
+
185
+ Fonksiyonellik ile GDPR uyumluluğunu dengelemek zorunda olan üretim uygulamaları için:
186
+
187
+ ```typescript
188
+ // intlayer.config.ts
189
+ export default {
190
+ internationalization: {
191
+ locales: ["en", "fr", "es"],
192
+ defaultLocale: "en",
193
+ },
194
+ routing: {
195
+ mode: "prefix-no-default",
196
+ storage: [
197
+ {
198
+ type: "localStorage", // Birincil depolama (izin gerekmez)
199
+ name: "user-locale",
200
+ },
201
+ {
202
+ type: "cookie", // Opsiyonel çerez depolama (izin gerektirir)
203
+ name: "user-locale",
204
+ secure: true,
205
+ sameSite: "strict",
206
+ httpOnly: false,
207
+ },
208
+ ],
209
+ },
210
+ };
211
+ ```
212
+
213
+ ### Çerez depolamasını etkinleştirme / devre dışı bırakma
214
+
215
+ React / Next.js kullanarak örnek:
216
+
217
+ Genel olarak tanımlanabilir:
218
+
219
+ ```typescript
220
+ <IntlayerProvider isCookieEnabled={false}>
221
+ <App />
222
+ </IntlayerProvider>
223
+ ```
224
+
225
+ Her hook için yerel olarak geçersiz kılınabilir:
226
+
227
+ ```ts
228
+ const { setLocale } = useLocale({ isCookieEnabled: false });
229
+
230
+ setLocale("en");
231
+ ```
232
+
233
+ **Not:** Çerezler varsayılan olarak etkinleştirilmiştir.
234
+ **Not:** Özel kullanım durumunuz için [GDPR çerez gereksinimlerini](https://gdpr.eu/cookies/) kontrol edin.
235
+
236
+ ---
237
+
238
+ ## Görsel Düzenleyici: %30 daha küçük paket
239
+
240
+ Görsel Düzenleyici paketi, önceki sürüme göre %30 daha küçük olacak şekilde optimize edilmiştir, bunun sebepleri:
241
+
242
+ - Kod düzenleyici performans iyileştirmeleri
243
+ - Intlayer çekirdek paketlerine olan gereksiz bağımlılıkların kaldırılması
244
+ - Daha iyi tree-shaking ve modül paketleme
245
+
246
+ Bu, uygulamanız için daha hızlı indirme süreleri ve geliştirilmiş çalışma zamanı performansı sağlar.
247
+
248
+ ---
249
+
250
+ ## Fill komutu: Daha iyi içerik yönetimi için güncellenmiş davranış
251
+
252
+ v7, `fill` komutu için daha öngörülebilir ve esnek içerik yönetimi sağlayan geliştirilmiş bir davranış sunar:
253
+
254
+ ### Yeni fill davranışı
255
+
256
+ - **`fill: true`** - Tüm yereller için doldurulmuş içerikle mevcut dosyayı yeniden yazar
257
+ - **`fill: "path/to/file"`** - Mevcut dosyayı değiştirmeden belirtilen dosyayı doldurur
258
+ - **`fill: false`** - Otomatik doldurmayı tamamen devre dışı bırakır
259
+
260
+ ### Karmaşık içerik yapıları için geliştirilmiş destek
261
+
262
+ Fill komutu artık aşağıdakiler dahil karmaşık içerik beyanı yapılarını desteklemektedir:
263
+
264
+ - **Bileşik nesneler**: Diğer nesnelere referans veren içerik beyanları
265
+ - **Yapı bozma (destructuring) içeriği**: Yapı bozma desenleri kullanan içerik
266
+ - **İç içe referanslar**: Karmaşık hiyerarşilerde birbirini çağıran nesneler
267
+ - **Dinamik içerik yapıları**: Koşullu veya hesaplanmış özelliklere sahip içerik
268
+
269
+ ### Faydalar
270
+
271
+ - **Daha net niyet**: Davranış artık neyin değiştirildiği konusunda daha açık
272
+ - **Daha iyi ayrım**: İçerik dosyaları, doldurulmuş çevirilerden ayrı tutulabilir
273
+ - **Geliştirilmiş iş akışı**: Geliştiriciler, çevirilerin nerede saklanacağı üzerinde daha fazla kontrole sahiptir
274
+ - **Karmaşık yapı desteği**: Birbirine bağlı birden fazla nesne içeren karmaşık içerik mimarilerini yönetir
275
+
276
+ ### Örnek kullanım
277
+
278
+ ```typescript
279
+ // Mevcut dosyayı tüm yerellerle yeniden yaz
280
+ const content = {
281
+ key: "example",
282
+ fill: true, // Bu dosyayı yeniden yazar
283
+ content: {
284
+ title: "Hello World",
285
+ },
286
+ };
287
+
288
+ // Mevcut dosyayı değiştirmeden ayrı dosyayı doldur
289
+ const content = {
290
+ key: "example",
291
+ fill: "./translations.json", // translations.json dosyasını oluşturur/günceller
292
+ content: {
293
+ title: "Hello World",
294
+ },
295
+ };
296
+
297
+ // Otomatik doldurmayı devre dışı bırak
298
+ const content = {
299
+ key: "example",
300
+ fill: false, // Otomatik doldurma yok
301
+ content: {
302
+ title: "Merhaba Dünya",
303
+ },
304
+ };
305
+
306
+ // Bileşik nesnelerle karmaşık içerik yapısı
307
+ const sharedContent = {
308
+ buttons: {
309
+ save: "Kaydet",
310
+ cancel: "İptal",
311
+ },
312
+ };
313
+
314
+ const content = {
315
+ key: "karmaşık-örnek",
316
+ fill: true,
317
+ content: {
318
+ // Diğer nesnelere referanslar
319
+ sharedContent,
320
+
321
+ // Yapılandırılmış içerik
322
+ ...sharedContent,
323
+
324
+ // İç içe referanslar
325
+ sections: [
326
+ {
327
+ ...sharedContent.buttons,
328
+ header: "Bölüm 1",
329
+ },
330
+ ],
331
+ },
332
+ };
333
+ ```
334
+
335
+ ---
336
+
337
+ ## Geliştirilmiş kararlılık ve çeviri yönetimi
338
+
339
+ v7, içerik çevirisini daha güvenilir ve verimli hale getirmek için birkaç iyileştirme sunar:
340
+
341
+ ### Tam içerik beyan dosyası güncellemeleri
342
+
343
+ Sistem artık kısmi güncellemeler yerine `.content.{ts,js,cjs,mjs}` dosyalarını günceller, böylece şunları sağlar:
344
+
345
+ - **Veri bütünlüğü**: Tam dosya yeniden yazımları, içeriğin bozulmasına yol açabilecek kısmi güncellemeleri engeller
346
+ - **Tutarlılık**: Tüm yereller atomik olarak güncellenir, senkronizasyon korunur
347
+ - **Güvenilirlik**: Eksik veya hatalı içerik dosyası riskini azaltır
348
+
349
+ ### Akıllı yeniden deneme yönetimi
350
+
351
+ Yeni yeniden deneme mekanizmaları, içeriğin yanlış formatlarda gönderilmesini önler ve bir isteğin başarısız olması durumunda tüm doldurma sürecinin kırılmasını engeller.
352
+
353
+ ### Daha hızlı işlem için paralelleştirme
354
+
355
+ Çeviri işlemleri artık paralel çalıştırılmak üzere bir kuyruğa alınır. Bu, süreci önemli ölçüde hızlandırır.
356
+
357
+ ### Büyük dosyalar için akıllı parçalara ayırma
358
+
359
+ Gelişmiş parçalara ayırma stratejileri, AI bağlam pencerelerini aşmadan büyük içerik dosyalarını yönetir:
360
+
361
+ ### Örnek iş akışı
362
+
363
+ ```typescript
364
+ // Büyük içerik dosyası otomatik olarak parçalara ayrılır
365
+ const content = {
366
+ key: "large-documentation",
367
+ fill: true,
368
+ content: {
369
+ // AI işleme için büyük içerik otomatik olarak parçalara ayrılır
370
+ introduction: "..." // 5000+ karakter
371
+ sections: [
372
+ // Birden çok büyük bölüm
373
+ ]
374
+ }
375
+ };
376
+ ```
377
+
378
+ Sistem otomatik olarak:
379
+
380
+ 1. İçerik boyutunu ve yapısını analiz eder
381
+ 2. İçeriği uygun şekilde parçalara böler
382
+ 3. Parçaları paralel olarak işler
383
+ 4. Gerekirse doğrulama yapar ve yeniden dener
384
+ 5. Tam dosyayı yeniden oluşturur
385
+
386
+ ---
387
+
388
+ ## v6'dan geçiş notları
389
+
390
+ ### Kaldırılan yapılandırmalar
391
+
392
+ - **`middleware.cookieName`**: `routing.storage` ile değiştirildi
393
+ - **`middleware.serverSetCookie`**: `routing.storage` ile değiştirildi
394
+ - **`middleware.prefixDefault`**: `routing.mode` ile değiştirildi
395
+ - **`middleware.noPrefix`**: `routing.mode` ile değiştirildi
396
+
397
+ ### Geçiş eşlemesi
398
+
399
+ #### Konfigürasyon eşlemesi
400
+
401
+ | v6 Konfigürasyonu | v7 Konfigürasyonu |
402
+ | -------------------------- | -------------------------------------------------------- |
403
+ | `autoFill: xxx` | `fill: xxx` |
404
+ | `prefixDefault: false` | `mode: 'prefix-no-default'` |
405
+ | `prefixDefault: true` | `mode: 'prefix-all'` |
406
+ | `noPrefix: true` | `mode: 'no-prefix'` |
407
+ | `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` |
408
+ | `serverSetCookie: 'never'` | `storage: false` veya storage dizisinden cookie kaldırın |
409
+
410
+ #### Örnek geçiş
411
+
412
+ **Önce (v6):**
413
+
414
+ ```typescript
415
+ export default {
416
+ middleware: {
417
+ headerName: "x-intlayer-locale",
418
+ cookieName: "intlayer-locale",
419
+ prefixDefault: false,
420
+ basePath: "",
421
+ serverSetCookie: "always",
422
+ noPrefix: false,
423
+ },
424
+ };
425
+ ```
426
+
427
+ **Sonra (v7):**
428
+
429
+ ```typescript
430
+ export default {
431
+ routing: {
432
+ mode: "prefix-no-default",
433
+ storage: "localStorage", // veya çerez depolama gerekiyorsa 'cookie'
434
+ headerName: "x-intlayer-locale",
435
+ basePath: "",
436
+ detectLocaleOnPrefetchNoPrefix: false,
437
+ },
438
+ };
439
+ ```
440
+
441
+ #### Sözlük içerik eşlemesi
442
+
443
+ | v6 Sözlük içeriği | v7 Sözlük içeriği |
444
+ | ----------------- | ----------------- |
445
+ | `autoFill: xxx` | `fill: xxx` |
446
+
447
+ #### Örnek geçiş
448
+
449
+ **Önce (v6):**
450
+
451
+ ```typescript
452
+ const content = {
453
+ key: "example",
454
+ autoFill: true, // Bu dosyayı yeniden yazar
455
+ content: {
456
+ title: "Merhaba Dünya",
457
+ },
458
+ };
459
+ ```
460
+
461
+ **Sonrası (v7):**
462
+
463
+ ```typescript
464
+ const content = {
465
+ key: "example",
466
+ fill: true, // Bu dosyayı yeniden yazar
467
+ content: {
468
+ title: "Merhaba Dünya",
469
+ },
470
+ };
471
+ ```
472
+
473
+ ---
474
+
475
+ ## v5'ten v6'ya Geçiş Notları
476
+
477
+ Daha fazla bilgi için [v5'ten v6'ya geçiş notlarını](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/releases/v6.md) kontrol edin.
478
+
479
+ ---
480
+
481
+ ## Faydalı bağlantılar
482
+
483
+ - [Yapılandırma Referansı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
484
+ - [Middleware Dokümantasyonu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/index.md)
485
+ - [TypeScript Türleri](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts)
486
+ - [GDPR Çerez Rehberi](https://gdpr.eu/cookies/)