@intlayer/docs 7.0.0-canary.2 → 7.0.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 (59) 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/configuration.md +0 -24
  6. package/docs/ar/intlayer_with_nextjs_16.md +1652 -0
  7. package/docs/ar/releases/v7.md +485 -0
  8. package/docs/de/configuration.md +0 -24
  9. package/docs/de/intlayer_with_nextjs_16.md +1662 -0
  10. package/docs/de/releases/v7.md +502 -0
  11. package/docs/en/autoFill.md +3 -1
  12. package/docs/en/configuration.md +53 -58
  13. package/docs/en/intlayer_with_nextjs_15.md +5 -2
  14. package/docs/en/intlayer_with_nextjs_16.md +4 -4
  15. package/docs/en/releases/v7.md +142 -2
  16. package/docs/en-GB/configuration.md +9 -30
  17. package/docs/en-GB/intlayer_with_nextjs_16.md +1642 -0
  18. package/docs/en-GB/releases/v7.md +485 -0
  19. package/docs/es/configuration.md +0 -24
  20. package/docs/es/intlayer_with_nextjs_16.md +1670 -0
  21. package/docs/es/releases/v7.md +502 -0
  22. package/docs/fr/configuration.md +0 -24
  23. package/docs/fr/intlayer_with_nextjs_16.md +1692 -0
  24. package/docs/fr/releases/v7.md +503 -0
  25. package/docs/hi/configuration.md +0 -24
  26. package/docs/hi/intlayer_with_nextjs_16.md +1618 -0
  27. package/docs/hi/releases/v7.md +485 -0
  28. package/docs/id/intlayer_with_nextjs_16.md +1604 -0
  29. package/docs/id/releases/v7.md +502 -0
  30. package/docs/it/configuration.md +0 -24
  31. package/docs/it/intlayer_with_nextjs_16.md +1600 -0
  32. package/docs/it/releases/v7.md +504 -0
  33. package/docs/ja/configuration.md +0 -24
  34. package/docs/ja/intlayer_CMS.md +0 -9
  35. package/docs/ja/intlayer_with_nextjs_16.md +1788 -0
  36. package/docs/ja/releases/v7.md +503 -0
  37. package/docs/ko/configuration.md +0 -24
  38. package/docs/ko/intlayer_with_nextjs_16.md +1641 -0
  39. package/docs/ko/releases/v7.md +503 -0
  40. package/docs/pl/intlayer_with_nextjs_16.md +1645 -0
  41. package/docs/pl/releases/v7.md +485 -0
  42. package/docs/pt/configuration.md +0 -24
  43. package/docs/pt/intlayer_with_nextjs_16.md +1646 -0
  44. package/docs/pt/introduction.md +0 -15
  45. package/docs/pt/releases/v7.md +485 -0
  46. package/docs/ru/configuration.md +0 -24
  47. package/docs/ru/intlayer_with_nextjs_16.md +1610 -0
  48. package/docs/ru/releases/v7.md +485 -0
  49. package/docs/tr/configuration.md +0 -24
  50. package/docs/tr/intlayer_with_nextjs_16.md +1599 -0
  51. package/docs/tr/releases/v7.md +485 -0
  52. package/docs/vi/intlayer_with_nextjs_16.md +1597 -0
  53. package/docs/vi/releases/v7.md +485 -0
  54. package/docs/zh/configuration.md +0 -24
  55. package/docs/zh/intlayer_CMS.md +0 -23
  56. package/docs/zh/intlayer_with_nextjs_16.md +1628 -0
  57. package/docs/zh/releases/v7.md +486 -0
  58. package/package.json +14 -14
  59. package/src/common.ts +5 -0
@@ -0,0 +1,503 @@
1
+ ---
2
+ createdAt: 2025-09-22
3
+ updatedAt: 2025-09-23
4
+ title: Nouvelle version Intlayer v7 - Quoi de neuf ?
5
+ description: Découvrez les nouveautés d'Intlayer v7. Améliorations majeures des performances, de l'expérience développeur, et nouvelles fonctionnalités pour améliorer votre flux de travail d'internationalisation.
6
+ keywords:
7
+ - Intlayer
8
+ - Localisation
9
+ - Développement
10
+ - Performance
11
+ - Expérience Développeur
12
+ - Fonctionnalités
13
+ - React
14
+ - Next.js
15
+ - JavaScript
16
+ - TypeScript
17
+ slugs:
18
+ - doc
19
+ - releases
20
+ - v7
21
+ ---
22
+
23
+ # Nouvelle version Intlayer v7 - Quoi de neuf ?
24
+
25
+ Bienvenue dans Intlayer v7 ! Cette version majeure introduit des améliorations significatives en termes de performance, de sécurité des types et d'expérience développeur. Voici les points forts, avec des notes de migration et des exemples pratiques.
26
+
27
+ ## Points forts
28
+
29
+ - Stratégie de mise en cache pour des builds plus rapides
30
+ - Génération améliorée des types TypeScript avec des types spécifiques à chaque locale
31
+ - Optimisation du bundle : Locales sous forme de chaînes de caractères au lieu d'énumérations
32
+ - Nouveaux modes de routage : `prefix-no-default`, `prefix-all`, `no-prefix`, `search-params`
33
+ - Stockage des locales conforme au RGPD avec localStorage par défaut
34
+ - Configuration flexible du stockage : cookies, localStorage, sessionStorage, ou plusieurs à la fois
35
+ - Taille du package Visual Editor réduite de 30 %
36
+ - Options de configuration du middleware améliorées
37
+ - Comportement mis à jour de la commande fill pour une meilleure gestion du contenu
38
+ - Stabilité renforcée avec des mises à jour complètes des fichiers de déclaration de contenu
39
+ - Gestion intelligente des tentatives de nouvelle traduction pour une meilleure précision
40
+ - Parallélisation pour un traitement plus rapide des traductions
41
+ - Découpage intelligent pour gérer les gros fichiers dans les limites du contexte IA
42
+
43
+ ---
44
+
45
+ ## Performance : Mise en cache pour des builds plus rapides
46
+
47
+ Au lieu de reconstruire les déclarations de contenu avec esbuild à chaque build, la version 7 met en œuvre une stratégie de mise en cache qui accélère le processus de build.
48
+
49
+ ```bash
50
+ npx intlayer build
51
+ ```
52
+
53
+ Le nouveau système de mise en cache :
54
+
55
+ - Stocke les déclarations de contenu compilées pour éviter un traitement redondant
56
+ - Détecte les modifications et reconstruit uniquement les fichiers modifiés
57
+ - Réduit significativement les temps de build pour les grands projets
58
+
59
+ ---
60
+
61
+ ## TypeScript : génération de types spécifiques à chaque locale
62
+
63
+ Les types TypeScript sont désormais générés par locale, offrant un typage plus strict et éliminant les types union à travers toutes les locales.
64
+
65
+ **Comportement v6 :**
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
+ **Comportement v7 :**
73
+
74
+ ```tsx
75
+ const content = getIntlayer("my-title-content", "en");
76
+ // typeof content = { title: "Mon titre" }
77
+ ```
78
+
79
+ Avantages :
80
+
81
+ - Autocomplétion plus précise dans votre IDE
82
+ - Meilleure sécurité des types sans pollution de type entre locales
83
+ - Performance améliorée grâce à la réduction de la complexité des types
84
+
85
+ ---
86
+
87
+ ## Optimisation du bundle : Locales en tant que chaînes de caractères
88
+
89
+ Le type `Locales` n'est plus un enum, ce qui signifie qu'il est désormais entièrement tree-shakeable et ne gonflera plus votre bundle avec des milliers d'enregistrements de locales inutilisées.
90
+
91
+ **v6 :**
92
+
93
+ ```typescript
94
+ import { Locales } from "intlayer";
95
+ // Enum incluant toutes les locales -> non tree-shakeable
96
+
97
+ const locale: Locales = Locales.ENGLISH;
98
+ ```
99
+
100
+ **v7 :**
101
+
102
+ ```typescript
103
+ import { Locales, Locale } from "intlayer";
104
+ // Type chaîne -> entièrement tree-shakeable
105
+
106
+ const locale: Locale = Locales.ENGLISH;
107
+ ```
108
+
109
+ > Parce que `Locales` n'est plus un enum, vous devrez changer le type de `Locales` à `Locale` pour obtenir la locale en tant que type.
110
+
111
+ Voir les [détails de l'implémentation](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) pour plus d'informations.
112
+
113
+ ---
114
+
115
+ ## Nouveaux modes de routage pour plus de flexibilité
116
+
117
+ La version 7 introduit une configuration unifiée `routing.mode` qui remplace les options précédentes `prefixDefault` et `noPrefix`, offrant un contrôle plus granulaire sur la structure des URL.
118
+
119
+ ### Modes de routage disponibles
120
+
121
+ - **`prefix-no-default`** (par défaut) : La locale par défaut n'a pas de préfixe, les autres locales en ont un
122
+ - `/dashboard` (en) ou `/fr/dashboard` (fr)
123
+ - **`prefix-all`** : Toutes les locales ont un préfixe
124
+ - `/en/dashboard` (en) ou `/fr/dashboard` (fr)
125
+ - **`no-prefix`** : Pas de préfixes de locale dans les URLs (locale gérée via le stockage/les en-têtes)
126
+ - `/dashboard` pour toutes les locales
127
+ - **`search-params`** : Locale passée en paramètre de requête
128
+ - `/dashboard?locale=en` ou `/dashboard?locale=fr`
129
+
130
+ ### Configuration de base
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", // par défaut
141
+ },
142
+ };
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Conformité RGPD : stockage localStorage / cookies
148
+
149
+ La version 7 privilégie la confidentialité des utilisateurs en utilisant `localStorage` comme mécanisme de stockage par défaut au lieu des cookies. Ce changement facilite la conformité au RGPD en évitant les exigences de consentement aux cookies pour les préférences de locale.
150
+
151
+ ### Options de configuration du stockage
152
+
153
+ Le nouveau champ `routing.storage` est également disponible en plus des options précédentes `middleware.cookieName` et `middleware.serverSetCookie`, offrant des configurations de stockage flexibles :
154
+
155
+ ```typescript
156
+ // Désactiver le stockage
157
+ storage: false
158
+
159
+ // Types de stockage simples
160
+ storage: 'cookie'
161
+ storage: 'localStorage'
162
+ storage: 'sessionStorage'
163
+
164
+ // Cookie avec attributs personnalisés
165
+ storage: {
166
+ type: 'cookie',
167
+ name: 'custom-locale',
168
+ domain: '.example.com',
169
+ secure: true,
170
+ sameSite: 'strict'
171
+ }
172
+
173
+ // localStorage avec clé personnalisée
174
+ storage: {
175
+ type: 'localStorage',
176
+ name: 'custom-locale'
177
+ }
178
+
179
+ // Plusieurs types de stockage pour la redondance
180
+ storage: ['cookie', 'localStorage']
181
+ ```
182
+
183
+ ### Exemple de configuration conforme au RGPD
184
+
185
+ Pour les applications en production qui doivent équilibrer fonctionnalité et conformité au RGPD :
186
+
187
+ ```typescript
188
+ typescript;
189
+ // intlayer.config.ts
190
+ export default {
191
+ internationalization: {
192
+ locales: ["en", "fr", "es"],
193
+ defaultLocale: "en",
194
+ },
195
+ routing: {
196
+ mode: "prefix-no-default",
197
+ storage: [
198
+ {
199
+ type: "localStorage", // Stockage principal (pas de consentement nécessaire)
200
+ name: "user-locale",
201
+ },
202
+ {
203
+ type: "cookie", // Stockage optionnel par cookie (consentement requis)
204
+ name: "user-locale",
205
+ secure: true,
206
+ sameSite: "strict",
207
+ httpOnly: false,
208
+ },
209
+ ],
210
+ },
211
+ };
212
+ ```
213
+
214
+ ### Activer / désactiver le stockage par cookie
215
+
216
+ Exemple avec React / Next.js :
217
+
218
+ Peut être défini globalement :
219
+
220
+ ```typescript
221
+ <IntlayerProvider isCookieEnabled={false}>
222
+ <App />
223
+ </IntlayerProvider>
224
+ ```
225
+
226
+ Peut être surchargé localement pour chaque hook :
227
+
228
+ ```ts
229
+ const { setLocale } = useLocale({ isCookieEnabled: false });
230
+
231
+ setLocale("en");
232
+ ```
233
+
234
+ **Note :** Les cookies sont activés par défaut.
235
+ **Note :** Consultez les [exigences GDPR concernant les cookies](https://gdpr.eu/cookies/) pour votre cas d'utilisation spécifique.
236
+
237
+ ---
238
+
239
+ ## Éditeur Visuel : paquet 30 % plus léger
240
+
241
+ Le paquet de l'Éditeur Visuel a été optimisé pour être 30 % plus léger que la version précédente, grâce à :
242
+
243
+ - Améliorations des performances de l'éditeur de code
244
+ - Suppression des dépendances inutiles aux paquets principaux d'Intlayer
245
+ - Meilleur tree-shaking et empaquetage des modules
246
+
247
+ Cela se traduit par des temps de téléchargement plus rapides et une meilleure performance à l'exécution pour votre application.
248
+
249
+ ---
250
+
251
+ ## Commande fill : comportement mis à jour pour une meilleure gestion du contenu
252
+
253
+ La version 7 introduit un comportement amélioré pour la commande `fill`, offrant une gestion du contenu plus prévisible et flexible :
254
+
255
+ ### Nouveau comportement de fill
256
+
257
+ - **`fill: true`** - Réécrit le fichier actuel avec le contenu rempli pour toutes les locales
258
+ - **`fill: "path/to/file"`** - Remplit le fichier spécifié sans modifier le fichier actuel
259
+ - **`fill: false`** - Désactive complètement le remplissage automatique
260
+
261
+ ### Support amélioré pour les structures de contenu complexes
262
+
263
+ La commande fill prend désormais en charge des structures de déclaration de contenu complexes, incluant :
264
+
265
+ - **Objets composés** : Déclarations de contenu qui référencent d'autres objets
266
+ - **Contenu déstructuré** : Contenu utilisant des motifs de déstructuration
267
+ - **Références imbriquées** : Objets qui s'appellent mutuellement dans des hiérarchies complexes
268
+ - **Structures de contenu dynamiques** : Contenu avec des propriétés conditionnelles ou calculées
269
+
270
+ ### Avantages
271
+
272
+ - **Intention plus claire** : Le comportement est désormais plus explicite sur ce qui est modifié
273
+ - **Meilleure séparation** : Les fichiers de contenu peuvent être conservés séparément des traductions remplies
274
+ - **Flux de travail amélioré** : Les développeurs ont plus de contrôle sur l’endroit où les traductions sont stockées
275
+ - **Support des structures complexes** : Gérer des architectures de contenu sophistiquées avec plusieurs objets interconnectés
276
+
277
+ ### Exemple d’utilisation
278
+
279
+ ```typescript
280
+ // Réécrit le fichier actuel avec toutes les locales
281
+ const content = {
282
+ key: "example",
283
+ fill: true, // Réécrit ce fichier
284
+ content: {
285
+ title: "Hello World",
286
+ },
287
+ };
288
+
289
+ // Remplit un fichier séparé sans modifier le fichier actuel
290
+ const content = {
291
+ key: "example",
292
+ fill: "./translations.json", // Crée/actualise translations.json
293
+ content: {
294
+ title: "Hello World",
295
+ },
296
+ };
297
+
298
+ // Désactive l’auto-remplissage
299
+ const content = {
300
+ key: "example",
301
+ fill: false, // Pas d’auto-remplissage
302
+ content: {
303
+ title: "Hello World",
304
+ },
305
+ };
306
+
307
+ // Structure de contenu complexe avec des objets composés
308
+ const sharedContent = {
309
+ buttons: {
310
+ save: "Enregistrer",
311
+ cancel: "Annuler",
312
+ },
313
+ };
314
+
315
+ const content = {
316
+ key: "complex-example",
317
+ fill: true,
318
+ content: {
319
+ // Références à d'autres objets
320
+ sharedContent,
321
+
322
+ // Contenu déstructuré
323
+ ...sharedContent,
324
+
325
+ // Références imbriquées
326
+ sections: [
327
+ {
328
+ ...sharedContent.buttons,
329
+ header: "Section 1",
330
+ },
331
+ ],
332
+ },
333
+ };
334
+ ```
335
+
336
+ ---
337
+
338
+ ## Stabilité améliorée et gestion des traductions
339
+
340
+ La version 7 introduit plusieurs améliorations pour rendre la traduction de contenu plus fiable et efficace :
341
+
342
+ ### Mises à jour complètes des fichiers de déclaration de contenu
343
+
344
+ Le système met désormais à jour les fichiers `.content.{ts,js,cjs,mjs}` plutôt que de faire des mises à jour partielles, garantissant :
345
+
346
+ - **Intégrité des données** : La réécriture complète des fichiers empêche les mises à jour partielles qui pourraient corrompre le contenu
347
+ - **Cohérence** : Toutes les locales sont mises à jour de manière atomique, maintenant la synchronisation
348
+ - **Fiabilité** : Réduit le risque de fichiers de contenu incomplets ou mal formés
349
+
350
+ ### Gestion intelligente des nouvelles tentatives
351
+
352
+ De nouveaux mécanismes de retry empêchent la transmission de contenu dans des formats incorrects, et évitent de casser tout le processus de remplissage si une requête échoue.
353
+
354
+ ### Parallélisation pour un traitement plus rapide
355
+
356
+ Les opérations de traduction s'exécutent désormais dans une file d'attente pour être traitées en parallèle. Cela accélère considérablement le processus.
357
+
358
+ ### Découpage intelligent pour les gros fichiers
359
+
360
+ Des stratégies avancées de découpage gèrent les gros fichiers de contenu sans dépasser les limites de contexte de l'IA :
361
+
362
+ ### Exemple de flux de travail
363
+
364
+ ```typescript
365
+ // Le gros fichier de contenu est automatiquement découpé
366
+ const content = {
367
+ key: "large-documentation",
368
+ fill: true,
369
+ content: {
370
+ // Contenu volumineux automatiquement découpé pour le traitement par IA
371
+ introduction: "..." // plus de 5000 caractères
372
+ sections: [
373
+ // Plusieurs grandes sections
374
+ ]
375
+ }
376
+ };
377
+ ```
378
+
379
+ Le système effectue automatiquement :
380
+
381
+ 1. Analyse la taille et la structure du contenu
382
+ 2. Découpe le contenu de manière appropriée
383
+ 3. Traite les morceaux en parallèle
384
+ 4. Valide et réessaie si nécessaire
385
+ 5. Reconstruit le fichier complet
386
+
387
+ ---
388
+
389
+ ## Notes de migration depuis la v6
390
+
391
+ ### Configurations supprimées
392
+
393
+ - **`middleware.cookieName`** : Remplacé par `routing.storage`
394
+ - **`middleware.serverSetCookie`** : Remplacé par `routing.storage`
395
+ - **`middleware.prefixDefault`** : Remplacé par `routing.mode`
396
+ - **`middleware.noPrefix`** : Remplacé par `routing.mode`
397
+
398
+ ### Correspondance de migration
399
+
400
+ #### Correspondance de configuration
401
+
402
+ | Configuration v6 | Configuration v7 |
403
+ | -------------------------- | -------------------------------------------------------------- |
404
+ | `autoFill: xxx` | `fill: xxx` |
405
+ | `prefixDefault: false` | `mode: 'prefix-no-default'` |
406
+ | `prefixDefault: true` | `mode: 'prefix-all'` |
407
+ | `noPrefix: true` | `mode: 'no-prefix'` |
408
+ | `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` |
409
+ | `serverSetCookie: 'never'` | `storage: false` ou supprimer le cookie du tableau de stockage |
410
+
411
+ #### Exemple de migration
412
+
413
+ **Avant (v6) :**
414
+
415
+ ````typescript
416
+ export default {
417
+ #### Correspondance de configuration
418
+
419
+ | Configuration v6 | Configuration v7 |
420
+ | -------------------------- | ---------------------------------------------------- |
421
+ | `autoFill: xxx` | `fill: xxx` |
422
+ | `prefixDefault: false` | `mode: 'prefix-no-default'` |
423
+ | `prefixDefault: true` | `mode: 'prefix-all'` |
424
+ | `noPrefix: true` | `mode: 'no-prefix'` |
425
+ | `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` |
426
+ | `serverSetCookie: 'never'` | `storage: false` ou supprimer le cookie du tableau storage |
427
+
428
+ #### Exemple de migration
429
+
430
+ **Avant (v6) :**
431
+
432
+ ```typescript
433
+ export default {
434
+ middleware: {
435
+ headerName: "x-intlayer-locale",
436
+ cookieName: "intlayer-locale",
437
+ prefixDefault: false,
438
+ basePath: "",
439
+ serverSetCookie: "always",
440
+ noPrefix: false,
441
+ },
442
+ };
443
+ ````
444
+
445
+ **Après (v7) :**
446
+
447
+ ```typescript
448
+ export default {
449
+ routing: {
450
+ mode: "prefix-no-default",
451
+ storage: "localStorage", // ou 'cookie' si vous avez besoin du stockage par cookie
452
+ headerName: "x-intlayer-locale",
453
+ basePath: "",
454
+ },
455
+ };
456
+ ```
457
+
458
+ #### Correspondance du contenu du dictionnaire
459
+
460
+ | Contenu dictionnaire v6 | Contenu dictionnaire v7 |
461
+ | ----------------------- | ----------------------- |
462
+ | `autoFill: xxx` | `fill: xxx` |
463
+
464
+ #### Exemple de migration
465
+
466
+ **Avant (v6) :**
467
+
468
+ ```typescript
469
+ const content = {
470
+ key: "example",
471
+ autoFill: true, // Réécrit ce fichier
472
+ content: {
473
+ title: "Bonjour le monde",
474
+ },
475
+ };
476
+ ```
477
+
478
+ **Après (v7) :**
479
+
480
+ ```typescript
481
+ const content = {
482
+ key: "example",
483
+ fill: true, // Réécrit ce fichier
484
+ content: {
485
+ title: "Bonjour le monde",
486
+ },
487
+ };
488
+ ```
489
+
490
+ ---
491
+
492
+ ## Notes de migration de la v5 à la v6
493
+
494
+ Consultez les [notes de migration de la v5 à la v6](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/releases/v6.md) pour plus d'informations.
495
+
496
+ ---
497
+
498
+ ## Liens utiles
499
+
500
+ - [Référence de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md)
501
+ - [Documentation Middleware](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/packages/next-intlayer/index.md)
502
+ - [Types TypeScript](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts)
503
+ - [Directives RGPD sur les cookies](https://gdpr.eu/cookies/)
@@ -332,30 +332,6 @@ module.exports = config;
332
332
  - यदि `noPrefix = false`: URL होगा `https://example.com/my-app/en`
333
333
  - यदि `noPrefix = true`: URL होगा `https://example.com`
334
334
 
335
- - **detectLocaleOnPrefetchNoPrefix**:
336
- - _प्रकार_: `boolean`
337
- - _डिफ़ॉल्ट_: `false`
338
- - _विवरण_: नियंत्रित करता है कि Next.js प्रीफ़ेच अनुरोधों के दौरान लोकल डिटेक्शन होता है या नहीं।
339
- - _उदाहरण_: `true`
340
- - _नोट_: यह सेटिंग Next.js के लोकल प्रीफ़ेचिंग को कैसे संभालता है, इसे प्रभावित करती है:
341
- - **उदाहरण परिदृश्य:**
342
- - उपयोगकर्ता के ब्राउज़र की भाषा `'fr'` है
343
- - वर्तमान पृष्ठ `/fr/about` है
344
- - लिंक `/about` को प्रीफ़ेच करता है
345
- - **`detectLocaleOnPrefetchNoPrefix: true` के साथ:**
346
- - प्रीफ़ेच ब्राउज़र से `'fr'` लोकल का पता लगाता है
347
- - प्रीफ़ेच को `/fr/about` पर पुनर्निर्देशित करता है
348
- - **`detectLocaleOnPrefetchNoPrefix: false` (डिफ़ॉल्ट) के साथ:**
349
- - प्रीफ़ेच डिफ़ॉल्ट लोकल का उपयोग करता है
350
- - प्रीफ़ेच को `/en/about` पर पुनर्निर्देशित करता है (मानते हुए कि `'en'` डिफ़ॉल्ट है)
351
- - **कब `true` का उपयोग करें:**
352
- - आपका ऐप गैर-स्थानीयकृत आंतरिक लिंक का उपयोग करता है (जैसे `<a href="/about">`)
353
- - आप नियमित और प्रीफ़ेच अनुरोधों के बीच सुसंगत स्थानीय पहचान व्यवहार चाहते हैं
354
- - **`false` (डिफ़ॉल्ट) कब उपयोग करें:**
355
- - आपका ऐप स्थानीय-उपसर्ग वाले लिंक का उपयोग करता है (जैसे `<a href="/fr/about">`)
356
- - आप प्रीफ़ेचिंग प्रदर्शन को अनुकूलित करना चाहते हैं
357
- - आप संभावित रीडायरेक्ट लूप से बचना चाहते हैं
358
-
359
335
  ---
360
336
 
361
337
  ### सामग्री विन्यास