@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: Nowy Intlayer v7 - Co nowego?
5
+ description: Odkryj, co nowego w Intlayer v7. Znaczące ulepszenia wydajności, doświadczenia deweloperskiego oraz nowe funkcje usprawniające proces internacjonalizacji.
6
+ keywords:
7
+ - Intlayer
8
+ - Lokalizacja
9
+ - Rozwój
10
+ - Wydajność
11
+ - Doświadczenie Dewelopera
12
+ - Funkcje
13
+ - React
14
+ - Next.js
15
+ - JavaScript
16
+ - TypeScript
17
+ slugs:
18
+ - doc
19
+ - releases
20
+ - v7
21
+ ---
22
+
23
+ # Nowy Intlayer v7 - Co nowego?
24
+
25
+ Witamy w Intlayer v7! To duże wydanie wprowadza znaczące ulepszenia w wydajności, bezpieczeństwie typów oraz doświadczeniu deweloperskim. Poniżej znajdują się najważniejsze zmiany, wraz z notatkami migracyjnymi i praktycznymi przykładami.
26
+
27
+ ## Najważniejsze zmiany
28
+
29
+ - Strategia buforowania dla szybszych kompilacji
30
+ - Ulepszone generowanie typów TypeScript z typami specyficznymi dla lokalizacji
31
+ - Optymalizacja pakietu: lokalizacje jako łańcuchy znaków zamiast enumów
32
+ - Nowe tryby routingu: `prefix-no-default`, `prefix-all`, `no-prefix`, `search-params`
33
+ - Przechowywanie lokalizacji zgodne z RODO, domyślnie w localStorage
34
+ - Elastyczna konfiguracja przechowywania: cookies, localStorage, sessionStorage lub wiele jednocześnie
35
+ - Pakiet Visual Editor mniejszy o 30%
36
+ - Rozszerzone opcje konfiguracji middleware
37
+ - Zaktualizowane zachowanie polecenia fill dla lepszego zarządzania treścią
38
+ - Zwiększona stabilność dzięki pełnym aktualizacjom plików deklaracji treści
39
+ - Inteligentne zarządzanie ponownymi próbami dla dokładności tłumaczeń
40
+ - Równoległe przetwarzanie dla szybszej obsługi tłumaczeń
41
+ - Inteligentne dzielenie na fragmenty, aby obsłużyć duże pliki w ramach limitów kontekstu AI
42
+
43
+ ---
44
+
45
+ ## Wydajność: Caching dla szybszych kompilacji
46
+
47
+ Zamiast przebudowywać deklaracje treści za pomocą esbuild przy każdym buildzie, wersja 7 wprowadza strategię cache’owania, która przyspiesza proces budowania.
48
+
49
+ ```bash
50
+ npx intlayer build
51
+ ```
52
+
53
+ Nowy system cache’owania:
54
+
55
+ - Przechowuje skompilowane deklaracje treści, aby uniknąć zbędnego przetwarzania
56
+ - Wykrywa zmiany i przebudowuje tylko zmodyfikowane pliki
57
+ - Znacząco skraca czas budowania dużych projektów
58
+
59
+ ---
60
+
61
+ ## TypeScript: Generowanie typów specyficznych dla lokalizacji
62
+
63
+ Typy TypeScript są teraz generowane dla każdej lokalizacji osobno, co zapewnia silniejsze typowanie i eliminuje typy unii obejmujące wszystkie lokalizacje.
64
+
65
+ **Zachowanie w wersji 6:**
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
+ **Zachowanie w wersji 7:**
73
+
74
+ ```tsx
75
+ const content = getIntlayer("my-title-content", "en");
76
+ // typeof content = { title: "My title" }
77
+ ```
78
+
79
+ Korzyści:
80
+
81
+ - Bardziej precyzyjne podpowiedzi w Twoim IDE
82
+ - Lepsze bezpieczeństwo typów bez zanieczyszczenia typów między lokalizacjami
83
+ - Poprawiona wydajność dzięki zmniejszeniu złożoności typów
84
+
85
+ ---
86
+
87
+ ## Optymalizacja bundla: Lokalizacje jako stringi
88
+
89
+ Typ `Locales` nie jest już enumeracją, co oznacza, że jest teraz w pełni możliwy do tree-shakingu i nie będzie powiększał Twojego bundla o tysiące nieużywanych rekordów lokalizacji.
90
+
91
+ **v6:**
92
+
93
+ ```typescript
94
+ import { Locales } from "intlayer";
95
+ // Enum zawierający wszystkie lokalizacje -> nie jest możliwy do tree-shakingu
96
+
97
+ const locale: Locales = Locales.ENGLISH;
98
+ ```
99
+
100
+ **v7:**
101
+
102
+ ```typescript
103
+ import { Locales, Locale } from "intlayer";
104
+ // Typ string -> w pełni możliwy do tree-shakingu
105
+
106
+ const locale: Locale = Locales.ENGLISH;
107
+ ```
108
+
109
+ > Ponieważ `Locales` nie jest już enumeracją, będziesz musiał zmienić typ z `Locales` na `Locale`, aby uzyskać lokalizację jako typ.
110
+
111
+ Zobacz [szczegóły implementacji](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) po więcej informacji.
112
+
113
+ ---
114
+
115
+ ## Nowe tryby routingu dla większej elastyczności
116
+
117
+ Wersja v7 wprowadza zunifikowaną konfigurację `routing.mode`, która zastępuje poprzednie opcje `prefixDefault` i `noPrefix`, oferując bardziej szczegółową kontrolę nad strukturą URL.
118
+
119
+ ### Dostępne tryby routingu
120
+
121
+ - **`prefix-no-default`** (domyślny): Domyślna lokalizacja nie ma prefiksu, inne lokalizacje mają
122
+ - `/dashboard` (en) lub `/fr/dashboard` (fr)
123
+ - **`prefix-all`**: Wszystkie lokalizacje mają prefiks
124
+ - `/en/dashboard` (en) lub `/fr/dashboard` (fr)
125
+ - **`no-prefix`**: Brak prefiksów lokalizacji w URL (lokalizacja obsługiwana przez storage/headers)
126
+ - `/dashboard` dla wszystkich lokalizacji
127
+ - **`search-params`**: Lokalizacja przekazywana jako parametr zapytania
128
+ - `/dashboard?locale=en` lub `/dashboard?locale=fr`
129
+
130
+ ### Podstawowa konfiguracja
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", // domyślnie
141
+ },
142
+ };
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Zgodność z RODO: storage w localStorage / cookies
148
+
149
+ Wersja v7 stawia na prywatność użytkownika, używając `localStorage` jako domyślnego mechanizmu przechowywania zamiast cookies. Ta zmiana pomaga w zgodności z RODO, unikając wymagań dotyczących zgody na cookies dla preferencji lokalizacji.
150
+
151
+ ### Opcje konfiguracji storage
152
+
153
+ Nowe pole `routing.storage` jest również dostępne oprócz wcześniejszych opcji `middleware.cookieName` i `middleware.serverSetCookie`, oferując elastyczne konfiguracje przechowywania:
154
+
155
+ ```typescript
156
+ // Wyłącz przechowywanie
157
+ storage: false
158
+
159
+ // Proste typy przechowywania
160
+ storage: 'cookie'
161
+ storage: 'localStorage'
162
+ storage: 'sessionStorage'
163
+
164
+ // Cookie z niestandardowymi atrybutami
165
+ storage: {
166
+ type: 'cookie',
167
+ name: 'custom-locale',
168
+ domain: '.example.com',
169
+ secure: true,
170
+ sameSite: 'strict'
171
+ }
172
+
173
+ // localStorage z niestandardowym kluczem
174
+ storage: {
175
+ type: 'localStorage',
176
+ name: 'custom-locale'
177
+ }
178
+
179
+ // Wiele typów przechowywania dla redundancji
180
+ storage: ['cookie', 'localStorage']
181
+ ```
182
+
183
+ ### Przykład konfiguracji zgodnej z RODO
184
+
185
+ Dla aplikacji produkcyjnych, które muszą wyważyć funkcjonalność z zgodnością z RODO:
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", // Główne przechowywanie (nie wymaga zgody)
199
+ name: "user-locale",
200
+ },
201
+ {
202
+ type: "cookie", // Opcjonalne przechowywanie w ciasteczkach (wymaga zgody)
203
+ name: "user-locale",
204
+ secure: true,
205
+ sameSite: "strict",
206
+ httpOnly: false,
207
+ },
208
+ ],
209
+ },
210
+ };
211
+ ```
212
+
213
+ ### Włączanie / wyłączanie przechowywania w ciasteczkach
214
+
215
+ Przykład użycia w React / Next.js:
216
+
217
+ Można zdefiniować globalnie:
218
+
219
+ ```typescript
220
+ <IntlayerProvider isCookieEnabled={false}>
221
+ <App />
222
+ </IntlayerProvider>
223
+ ```
224
+
225
+ Można nadpisać lokalnie dla każdego hooka:
226
+
227
+ ```ts
228
+ const { setLocale } = useLocale({ isCookieEnabled: false });
229
+
230
+ setLocale("en");
231
+ ```
232
+
233
+ **Uwaga:** Cookies są domyślnie włączone.
234
+ **Uwaga:** Sprawdź [wymagania dotyczące plików cookie zgodne z RODO](https://gdpr.eu/cookies/) dla swojego konkretnego przypadku użycia.
235
+
236
+ ---
237
+
238
+ ## Edytor wizualny: pakiet o 30% mniejszy
239
+
240
+ Pakiet Edytora wizualnego został zoptymalizowany i jest o 30% mniejszy niż poprzednia wersja, dzięki:
241
+
242
+ - Poprawie wydajności edytora kodu
243
+ - Usunięciu niepotrzebnych zależności od pakietów rdzenia Intlayer
244
+ - Lepszemu tree-shakingowi i bundlowaniu modułów
245
+
246
+ Skutkuje to szybszym czasem pobierania i lepszą wydajnością działania Twojej aplikacji.
247
+
248
+ ---
249
+
250
+ ## Komenda fill: Zaktualizowane zachowanie dla lepszego zarządzania treścią
251
+
252
+ Wersja 7 wprowadza ulepszone zachowanie komendy `fill`, zapewniając bardziej przewidywalne i elastyczne zarządzanie treścią:
253
+
254
+ ### Nowe zachowanie polecenia fill
255
+
256
+ - **`fill: true`** - Nadpisuje bieżący plik wypełnioną zawartością dla wszystkich lokalizacji
257
+ - **`fill: "ścieżka/do/pliku"`** - Wypełnia określony plik bez modyfikowania bieżącego pliku
258
+ - **`fill: false`** - Całkowicie wyłącza automatyczne wypełnianie
259
+
260
+ ### Ulepszone wsparcie dla złożonych struktur zawartości
261
+
262
+ Polecenie fill obsługuje teraz złożone struktury deklaracji zawartości, w tym:
263
+
264
+ - **Obiekty złożone**: Deklaracje zawartości, które odwołują się do innych obiektów
265
+ - **Zawartość destrukturyzowana**: Zawartość wykorzystująca wzorce destrukturyzacji
266
+ - **Zagnieżdżone odwołania**: Obiekty wywołujące się nawzajem w złożonych hierarchiach
267
+ - **Dynamiczne struktury zawartości**: Zawartość z warunkowymi lub obliczanymi właściwościami
268
+
269
+ ### Korzyści
270
+
271
+ - **Jasniejszy zamiar**: Zachowanie jest teraz bardziej jednoznaczne co do tego, co jest modyfikowane
272
+ - **Lepsze rozdzielenie**: Pliki z zawartością mogą być przechowywane oddzielnie od wypełnionych tłumaczeń
273
+ - **Ulepszony przepływ pracy**: Deweloperzy mają większą kontrolę nad miejscem przechowywania tłumaczeń
274
+ - **Wsparcie dla złożonych struktur**: Obsługa zaawansowanych architektur zawartości z wieloma powiązanymi obiektami
275
+
276
+ ### Przykład użycia
277
+
278
+ ```typescript
279
+ // Nadpisz bieżący plik wszystkimi lokalizacjami
280
+ const content = {
281
+ key: "example",
282
+ fill: true, // Nadpisuje ten plik
283
+ content: {
284
+ title: "Hello World",
285
+ },
286
+ };
287
+
288
+ // Wypełnij osobny plik bez modyfikacji bieżącego pliku
289
+ const content = {
290
+ key: "example",
291
+ fill: "./translations.json", // Tworzy/aktualizuje translations.json
292
+ content: {
293
+ title: "Hello World",
294
+ },
295
+ };
296
+
297
+ // Wyłącz automatyczne wypełnianie
298
+ const content = {
299
+ key: "example",
300
+ fill: false, // Brak automatycznego wypełniania
301
+ content: {
302
+ title: "Hello World",
303
+ },
304
+ };
305
+
306
+ // Złożona struktura treści z obiektami złożonymi
307
+ const sharedContent = {
308
+ buttons: {
309
+ save: "Zapisz",
310
+ cancel: "Anuluj",
311
+ },
312
+ };
313
+
314
+ const content = {
315
+ key: "complex-example",
316
+ fill: true,
317
+ content: {
318
+ // Odwołania do innych obiektów
319
+ sharedContent,
320
+
321
+ // Rozpakowana zawartość
322
+ ...sharedContent,
323
+
324
+ // Zagnieżdżone odwołania
325
+ sections: [
326
+ {
327
+ ...sharedContent.buttons,
328
+ header: "Sekcja 1",
329
+ },
330
+ ],
331
+ },
332
+ };
333
+ ```
334
+
335
+ ---
336
+
337
+ ## Zwiększona stabilność i zarządzanie tłumaczeniami
338
+
339
+ Wersja 7 wprowadza kilka usprawnień, które czynią tłumaczenie treści bardziej niezawodnym i efektywnym:
340
+
341
+ ### Pełne aktualizacje plików deklaracji treści
342
+
343
+ System teraz aktualizuje pliki `.content.{ts,js,cjs,mjs}` zamiast częściowych aktualizacji, co zapewnia:
344
+
345
+ - **Integralność danych**: Pełne przepisywanie plików zapobiega częściowym aktualizacjom, które mogłyby uszkodzić zawartość
346
+ - **Spójność**: Wszystkie lokalizacje są aktualizowane atomowo, co utrzymuje synchronizację
347
+ - **Niezawodność**: Zmniejsza ryzyko niekompletnych lub uszkodzonych plików zawartości
348
+
349
+ ### Inteligentne zarządzanie ponownymi próbami
350
+
351
+ Nowe mechanizmy ponownych prób zapobiegają przesyłaniu zawartości w niepoprawnych formatach i unikają przerwania całego procesu wypełniania, jeśli jedno żądanie się nie powiedzie.
352
+
353
+ ### Równoległość dla szybszego przetwarzania
354
+
355
+ Operacje tłumaczenia są teraz wykonywane w kolejce, aby uruchamiać je równolegle. Znacząco przyspiesza to proces.
356
+
357
+ ### Inteligentne dzielenie na fragmenty dla dużych plików
358
+
359
+ Zaawansowane strategie dzielenia na fragmenty radzą sobie z dużymi plikami zawartości, nie przekraczając limitów kontekstu AI:
360
+
361
+ ### Przykładowy przebieg pracy
362
+
363
+ ```typescript
364
+ // Duży plik zawartości jest automatycznie dzielony na fragmenty
365
+ const content = {
366
+ key: "large-documentation",
367
+ fill: true,
368
+ content: {
369
+ // Duża zawartość automatycznie dzielona na fragmenty do przetwarzania przez AI
370
+ introduction: "..." // ponad 5000 znaków
371
+ sections: [
372
+ // Wiele dużych sekcji
373
+ ]
374
+ }
375
+ };
376
+ ```
377
+
378
+ System automatycznie:
379
+
380
+ 1. Analizuje rozmiar i strukturę zawartości
381
+ 2. Odpowiednio dzieli zawartość na fragmenty
382
+ 3. Przetwarza fragmenty równolegle
383
+ 4. Waliduje i ponawia próby w razie potrzeby
384
+ 5. Odtwarza kompletny plik
385
+
386
+ ---
387
+
388
+ ## Notatki migracyjne z wersji v6
389
+
390
+ ### Usunięte konfiguracje
391
+
392
+ - **`middleware.cookieName`**: Zastąpione przez `routing.storage`
393
+ - **`middleware.serverSetCookie`**: Zastąpione przez `routing.storage`
394
+ - **`middleware.prefixDefault`**: Zastąpione przez `routing.mode`
395
+ - **`middleware.noPrefix`**: Zastąpione przez `routing.mode`
396
+
397
+ ### Mapowanie migracji
398
+
399
+ #### Mapowanie konfiguracji
400
+
401
+ | Konfiguracja v6 | Konfiguracja v7 |
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` lub usuń cookie z tablicy storage` |
409
+
410
+ #### Przykład migracji
411
+
412
+ **Przed (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
+ **Po (v7):**
428
+
429
+ ```typescript
430
+ export default {
431
+ routing: {
432
+ mode: "prefix-no-default",
433
+ storage: "localStorage", // lub 'cookie', jeśli potrzebujesz przechowywania w ciasteczkach
434
+ headerName: "x-intlayer-locale",
435
+ basePath: "",
436
+ detectLocaleOnPrefetchNoPrefix: false,
437
+ },
438
+ };
439
+ ```
440
+
441
+ #### Mapowanie zawartości słownika
442
+
443
+ | Zawartość słownika v6 | Zawartość słownika v7 |
444
+ | --------------------- | --------------------- |
445
+ | `autoFill: xxx` | `fill: xxx` |
446
+
447
+ #### Przykład migracji
448
+
449
+ **Przed (v6):**
450
+
451
+ ```typescript
452
+ const content = {
453
+ key: "example",
454
+ autoFill: true, // Nadpisuje ten plik
455
+ content: {
456
+ title: "Hello World",
457
+ },
458
+ };
459
+ ```
460
+
461
+ **Po (v7):**
462
+
463
+ ```typescript
464
+ const content = {
465
+ key: "example",
466
+ fill: true, // Nadpisuje ten plik
467
+ content: {
468
+ title: "Hello World",
469
+ },
470
+ };
471
+ ```
472
+
473
+ ---
474
+
475
+ ## Notatki dotyczące migracji z v5 do v6
476
+
477
+ Sprawdź [notatki dotyczące migracji z v5 do v6](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/releases/v6.md) po więcej informacji.
478
+
479
+ ---
480
+
481
+ ## Przydatne linki
482
+
483
+ - [Referencja konfiguracji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/configuration.md)
484
+ - [Dokumentacja Middleware](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/packages/next-intlayer/index.md)
485
+ - [Typy TypeScript](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts)
486
+ - [Wytyczne dotyczące plików cookie zgodne z RODO](https://gdpr.eu/cookies/)