@intlayer/docs 5.7.6 → 5.7.7

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/generated/docs.entry.cjs +44 -238
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +44 -238
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -2
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_tanstack.md +457 -0
  8. package/docs/ar/packages/next-intlayer/index.md +0 -1
  9. package/docs/ar/packages/react-intlayer/index.md +0 -1
  10. package/docs/de/intlayer_with_tanstack.md +458 -0
  11. package/docs/de/packages/next-intlayer/index.md +0 -1
  12. package/docs/de/packages/react-intlayer/index.md +0 -1
  13. package/docs/en/intlayer_with_tanstack.md +452 -0
  14. package/docs/en/packages/next-intlayer/index.md +0 -1
  15. package/docs/en/packages/react-intlayer/index.md +0 -1
  16. package/docs/en-GB/intlayer_with_tanstack.md +457 -0
  17. package/docs/en-GB/packages/next-intlayer/index.md +0 -1
  18. package/docs/en-GB/packages/react-intlayer/index.md +0 -1
  19. package/docs/es/intlayer_with_tanstack.md +435 -0
  20. package/docs/es/packages/next-intlayer/index.md +0 -1
  21. package/docs/es/packages/react-intlayer/index.md +0 -1
  22. package/docs/fr/intlayer_with_tanstack.md +435 -0
  23. package/docs/fr/packages/next-intlayer/index.md +0 -1
  24. package/docs/fr/packages/react-intlayer/index.md +0 -1
  25. package/docs/hi/intlayer_with_tanstack.md +438 -0
  26. package/docs/hi/packages/next-intlayer/index.md +0 -1
  27. package/docs/hi/packages/react-intlayer/index.md +0 -1
  28. package/docs/it/intlayer_with_tanstack.md +457 -0
  29. package/docs/it/packages/next-intlayer/index.md +0 -1
  30. package/docs/it/packages/react-intlayer/index.md +0 -1
  31. package/docs/ja/intlayer_with_tanstack.md +457 -0
  32. package/docs/ja/packages/next-intlayer/index.md +0 -1
  33. package/docs/ja/packages/react-intlayer/index.md +0 -1
  34. package/docs/ko/intlayer_with_tanstack.md +457 -0
  35. package/docs/ko/packages/next-intlayer/index.md +0 -1
  36. package/docs/ko/packages/react-intlayer/index.md +0 -1
  37. package/docs/pt/intlayer_with_tanstack.md +457 -0
  38. package/docs/pt/packages/next-intlayer/index.md +0 -1
  39. package/docs/pt/packages/react-intlayer/index.md +0 -1
  40. package/docs/ru/intlayer_with_tanstack.md +458 -0
  41. package/docs/ru/packages/next-intlayer/index.md +0 -1
  42. package/docs/ru/packages/react-intlayer/index.md +0 -1
  43. package/docs/zh/intlayer_with_tanstack.md +435 -0
  44. package/docs/zh/packages/next-intlayer/index.md +0 -1
  45. package/docs/zh/packages/react-intlayer/index.md +0 -1
  46. package/package.json +9 -9
  47. package/src/generated/docs.entry.ts +44 -238
  48. package/docs/ar/packages/next-intlayer/useIntlayerAsync.md +0 -237
  49. package/docs/ar/packages/react-intlayer/useIntlayerAsync.md +0 -252
  50. package/docs/de/packages/next-intlayer/useIntlayerAsync.md +0 -262
  51. package/docs/de/packages/react-intlayer/useIntlayerAsync.md +0 -256
  52. package/docs/en/packages/next-intlayer/useIntlayerAsync.md +0 -239
  53. package/docs/en/packages/react-intlayer/useIntlayerAsync.md +0 -254
  54. package/docs/en-GB/packages/next-intlayer/useIntlayerAsync.md +0 -237
  55. package/docs/en-GB/packages/react-intlayer/useIntlayerAsync.md +0 -257
  56. package/docs/es/packages/next-intlayer/useIntlayerAsync.md +0 -240
  57. package/docs/es/packages/react-intlayer/useIntlayerAsync.md +0 -276
  58. package/docs/fr/packages/next-intlayer/useIntlayerAsync.md +0 -238
  59. package/docs/fr/packages/react-intlayer/useIntlayerAsync.md +0 -252
  60. package/docs/hi/packages/next-intlayer/useIntlayerAsync.md +0 -237
  61. package/docs/hi/packages/react-intlayer/useIntlayerAsync.md +0 -252
  62. package/docs/it/packages/next-intlayer/useIntlayerAsync.md +0 -237
  63. package/docs/it/packages/react-intlayer/useIntlayerAsync.md +0 -252
  64. package/docs/ja/packages/next-intlayer/useIntlayerAsync.md +0 -237
  65. package/docs/ja/packages/react-intlayer/useIntlayerAsync.md +0 -268
  66. package/docs/ko/packages/next-intlayer/useIntlayerAsync.md +0 -260
  67. package/docs/ko/packages/react-intlayer/useIntlayerAsync.md +0 -271
  68. package/docs/pt/packages/next-intlayer/useIntlayerAsync.md +0 -238
  69. package/docs/pt/packages/react-intlayer/useIntlayerAsync.md +0 -252
  70. package/docs/ru/packages/next-intlayer/useIntlayerAsync.md +0 -237
  71. package/docs/ru/packages/react-intlayer/useIntlayerAsync.md +0 -252
  72. package/docs/zh/packages/next-intlayer/useIntlayerAsync.md +0 -239
  73. package/docs/zh/packages/react-intlayer/useIntlayerAsync.md +0 -257
@@ -1,276 +0,0 @@
1
- ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
4
- title: Documentación del Hook useIntlayerAsync | react-intlayer
5
- description: Vea cómo usar el hook useIntlayerAsync para el paquete react-intlayer
6
- keywords:
7
- - useIntlayerAsync
8
- - diccionario
9
- - clave
10
- - Intlayer
11
- - Internacionalización
12
- - Documentación
13
- - Next.js
14
- - JavaScript
15
- - React
16
- slugs:
17
- - doc
18
- - packages
19
- - react-intlayer
20
- - useIntlayerAsync
21
- ---
22
-
23
- # Integración con React: Documentación del Hook `useIntlayerAsync`
24
-
25
- El hook `useIntlayerAsync` extiende la funcionalidad de `useIntlayer` al no solo devolver diccionarios pre-renderizados, sino también al obtener actualizaciones de forma asíncrona, lo que lo hace ideal para aplicaciones que actualizan frecuentemente su contenido localizado después del renderizado inicial.
26
-
27
- ## Resumen
28
-
29
- - **Carga asíncrona de diccionarios:**
30
- En el montaje inicial, `useIntlayerAsync` primero devuelve cualquier diccionario de localización preobtenido o empaquetado estáticamente (igual que lo haría `useIntlayer`) y luego obtiene y fusiona de forma asíncrona cualquier diccionario remoto nuevo disponible.
31
- - **Gestión del estado de progreso:**
32
- El hook también proporciona un estado `isLoading`, que indica cuándo se está obteniendo un diccionario remoto. Esto permite a los desarrolladores mostrar indicadores de carga o estados esqueleto para una experiencia de usuario más fluida.
33
-
34
- ## Configuración del Entorno
35
-
36
- Intlayer proporciona un sistema de Gestión de Fuentes de Contenido (CSM) sin interfaz (headless) que permite a personas no desarrolladoras gestionar y actualizar el contenido de la aplicación de manera fluida. Usando el panel intuitivo de Intlayer, tu equipo puede editar textos localizados, imágenes y otros recursos sin modificar directamente el código. Esto agiliza el proceso de gestión de contenido, fomenta la colaboración y asegura que las actualizaciones se puedan realizar rápida y fácilmente.
37
-
38
- Para comenzar con Intlayer:
39
-
40
- 1. **Regístrate y obtén un token de acceso** en [https://intlayer.org/dashboard](https://intlayer.org/dashboard).
41
- 2. **Agrega las credenciales a tu archivo de configuración:**
42
- En tu proyecto React, configura el cliente de Intlayer con tus credenciales:
43
-
44
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
45
- import type { IntlayerConfig } from "intlayer";
46
-
47
- export default {
48
- // ...
49
- editor: {
50
- clientId: process.env.INTLAYER_CLIENT_ID,
51
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
52
- },
53
- } satisfies IntlayerConfig;
54
- ```
55
-
56
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
57
- import { type IntlayerConfig } from "intlayer";
58
-
59
- /** @type {import('intlayer').IntlayerConfig} */
60
- const config = {
61
- // ...
62
- editor: {
63
- clientId: process.env.INTLAYER_CLIENT_ID,
64
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
65
- },
66
- };
67
-
68
- export default config;
69
- ```
70
-
71
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
72
- /** @type {import('intlayer').IntlayerConfig} */
73
- const config = {
74
- // ...
75
- editor: {
76
- clientId: process.env.INTLAYER_CLIENT_ID,
77
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
78
- },
79
- };
80
-
81
- module.exports = config;
82
- ```
83
-
84
- 3. **Enviar un nuevo diccionario de idioma a Intlayer:**
85
-
86
- ```bash
87
- npx intlayer dictionary push -d my-first-dictionary-key
88
- ```
89
-
90
- Este comando sube tus diccionarios de contenido iniciales, haciéndolos disponibles para su obtención y edición asincrónica a través de la plataforma Intlayer.
91
-
92
- ## Importando `useIntlayerAsync` en React
93
-
94
- En tus componentes React, importa `useIntlayerAsync`:
95
-
96
- ```ts codeFormat="typescript"
97
- import { useIntlayerAsync } from "react-intlayer";
98
- ```
99
-
100
- ```js codeFormat="esm"
101
- import { useIntlayerAsync } from "react-intlayer";
102
- ```
103
-
104
- ```js codeFormat="commonjs"
105
- const { useIntlayerAsync } = require("react-intlayer");
106
- ```
107
-
108
- ## Parámetros
109
-
110
- 1. **`key`**:
111
- **Tipo**: `DictionaryKeys`
112
- La clave del diccionario utilizada para identificar el bloque de contenido localizado. Esta clave debe estar definida en tus archivos de declaración de contenido.
113
-
114
- 2. **`locale`** (opcional):
115
- **Tipo**: `Locales`
116
- La localidad específica a la que deseas dirigirte. Si se omite, el hook utiliza la localidad del contexto actual de Intlayer.
117
-
118
- 3. **`isRenderEditor`** (opcional, por defecto `true`):
119
- **Tipo**: `boolean`
120
- Determina si el contenido debe estar listo para renderizarse con la superposición del editor de Intlayer. Si se establece en `false`, los datos del diccionario devueltos excluirán las características específicas del editor.
121
-
122
- ## Valor de retorno
123
-
124
- El hook devuelve un objeto diccionario que contiene contenido localizado identificado por `key` y `locale`. También incluye un booleano `isLoading` que indica si actualmente se está obteniendo un diccionario remoto.
125
-
126
- ## Ejemplo de uso en un componente React
127
-
128
- ```tsx fileName="src/components/ComponentExample.tsx" codeFormat="typescript"
129
- import { useEffect, type FC } from "react";
130
- import { useIntlayerAsync } from "react-intlayer";
131
-
132
- export const ComponentExample: FC = () => {
133
- const { title, description, isLoading } = useIntlayerAsync("async-component");
134
-
135
- useEffect(() => {
136
- if (isLoading) {
137
- console.log("El contenido se está cargando...");
138
- }
139
- }, [isLoading]);
140
-
141
- return (
142
- <div>
143
- {isLoading ? (
144
- <div>
145
- <h1>Cargando…</h1>
146
- <p>Por favor espera mientras se actualiza el contenido.</p>
147
- </div>
148
- ) : (
149
- <div>
150
- <h1>{title.value}</h1>
151
- <p>{description.value}</p>
152
- </div>
153
- )}
154
- </div>
155
- );
156
- };
157
- ```
158
-
159
- ```jsx fileName="src/components/ComponentExample.mjx" codeFormat="esm"
160
- import { useEffect } from "react";
161
- import { useIntlayerAsync } from "react-intlayer";
162
-
163
- const ComponentExample = () => {
164
- const { title, description, isLoading } = useIntlayerAsync("async-component");
165
-
166
- useEffect(() => {
167
- if (isLoading) {
168
- console.log("El contenido se está cargando...");
169
- }
170
- }, [isLoading]);
171
-
172
- return (
173
- <div>
174
- {isLoading ? (
175
- <div>
176
- <h1>Cargando…</h1>
177
- <p>Por favor, espere mientras se actualiza el contenido.</p>
178
- </div>
179
- ) : (
180
- <div>
181
- <h1>{title.value}</h1>
182
- <p>{description.value}</p>
183
- </div>
184
- )}
185
- </div>
186
- );
187
- };
188
- ```
189
-
190
- ```jsx fileName="src/components/ComponentExample.csx" codeFormat="commonjs"
191
- const { useEffect } = require("react");
192
- const { useIntlayerAsync } = require("react-intlayer");
193
-
194
- const ComponentExample = () => {
195
- const { title, description, isLoading } = useIntlayerAsync("async-component");
196
-
197
- useEffect(() => {
198
- if (isLoading) {
199
- console.log("El contenido se está cargando...");
200
- }
201
- }, [isLoading]);
202
-
203
- return (
204
- <div>
205
- {isLoading ? (
206
- <div>
207
- <h1>Cargando…</h1>
208
- <p>Por favor, espere mientras se actualiza el contenido.</p>
209
- </div>
210
- ) : (
211
- <div>
212
- <h1>{title.value}</h1>
213
- <p>{description.value}</p>
214
- </div>
215
- )}
216
- </div>
217
- );
218
- };
219
- ```
220
-
221
- **Puntos clave:**
222
-
223
- - En la renderización inicial, `title` y `description` provienen del diccionario de localización preobtenido o incrustado estáticamente.
224
- - Mientras `isLoading` es `true`, una solicitud en segundo plano obtiene un diccionario actualizado.
225
- - Una vez que la obtención finaliza, `title` y `description` se actualizan con el contenido más reciente, y `isLoading` vuelve a `false`.
226
-
227
- ## Manejo de la Localización de Atributos
228
-
229
- También puedes obtener valores localizados para atributos de HTML diversos (por ejemplo, `alt`, `title`, `aria-label`):
230
-
231
- ```jsx
232
- <img src={title.image.src.value} alt={title.image.alt.value} />
233
- ```
234
-
235
- ## Archivos de Diccionario
236
-
237
- Todas las claves de contenido deben estar definidas en tus archivos de declaración de contenido para garantizar la seguridad de tipos y evitar errores en tiempo de ejecución. Estos archivos permiten la validación con TypeScript, asegurando que siempre hagas referencia a claves y locales existentes.
238
-
239
- - En la renderización inicial, `title` y `description` provienen del diccionario de localización preobtenido o incrustado estáticamente.
240
- - Mientras `isLoading` es `true`, una solicitud en segundo plano obtiene un diccionario actualizado.
241
- - Una vez que la obtención finaliza, `title` y `description` se actualizan con el contenido más reciente, y `isLoading` vuelve a `false`.
242
-
243
- ## Manejo de la Localización de Atributos
244
-
245
- También puedes obtener valores localizados para varios atributos HTML (por ejemplo, `alt`, `title`, `aria-label`):
246
-
247
- ```jsx
248
- <img src={title.image.src.value} alt={title.image.alt.value} />
249
- ```
250
-
251
- ## Archivos de Diccionario
252
-
253
- Todas las claves de contenido deben estar definidas en tus archivos de declaración de contenido para garantizar la seguridad de tipos y evitar errores en tiempo de ejecución. Estos archivos permiten la validación con TypeScript, asegurando que siempre hagas referencia a claves y locales existentes.
254
-
255
- Las instrucciones para configurar los archivos de declaración de contenido están disponibles [aquí](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/get_started.md).
256
-
257
- ## Información Adicional
258
-
259
- - **Editor Visual de Intlayer:**
260
- Integra con el editor visual de Intlayer para gestionar y editar contenido directamente desde la interfaz de usuario. Más detalles [aquí](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_visual_editor.md).
261
-
262
- ---
263
-
264
- **En resumen**, `useIntlayerAsync` es un hook poderoso de React diseñado para mejorar la experiencia del usuario y mantener el contenido actualizado combinando diccionarios pre-renderizados o preobtenidos con actualizaciones asíncronas de diccionarios. Aprovechando `isLoading` y las declaraciones de contenido basadas en TypeScript, puedes integrar contenido dinámico y localizado sin problemas en tus aplicaciones React.
265
-
266
- ## Historial del Documento
267
-
268
- - 5.5.10 - 2025-06-29: Historial inicial
269
-
270
- ---
271
-
272
- **En resumen**, `useIntlayerAsync` es un poderoso hook de React diseñado para mejorar la experiencia del usuario y mantener la frescura del contenido mediante la combinación de diccionarios pre-renderizados o pre-cargados con actualizaciones asíncronas de diccionarios. Aprovechando `isLoading` y las declaraciones de contenido basadas en TypeScript, puedes integrar de manera fluida contenido dinámico y localizado en tus aplicaciones React.
273
-
274
- ## Historial de Documentación
275
-
276
- - 5.5.10 - 2025-06-29: Historial inicial
@@ -1,238 +0,0 @@
1
- ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
4
- title: Documentation du Hook useIntlayerAsync | next-intlayer
5
- description: Découvrez comment utiliser le hook useIntlayerAsync pour le package next-intlayer
6
- keywords:
7
- - useIntlayerAsync
8
- - dictionnaire
9
- - clé
10
- - Intlayer
11
- - Internationalisation
12
- - Documentation
13
- - Next.js
14
- - JavaScript
15
- - React
16
- slugs:
17
- - doc
18
- - packages
19
- - next-intlayer
20
- - useIntlayerAsync
21
- ---
22
-
23
- # Intégration Next.js : Documentation du Hook `useIntlayerAsync`
24
-
25
- Le hook `useIntlayerAsync` étend la fonctionnalité de `useIntlayer` en ne se contentant pas de retourner les dictionnaires pré-rendus, mais en récupérant également les mises à jour de manière asynchrone, ce qui le rend idéal pour les applications qui mettent fréquemment à jour leur contenu localisé après le rendu initial.
26
-
27
- ## Vue d'ensemble
28
-
29
- - **Chargement asynchrone des dictionnaires :**
30
- Côté client, `useIntlayerAsync` retourne d'abord le dictionnaire de locale pré-rendu (comme `useIntlayer`), puis récupère et fusionne de manière asynchrone tous les dictionnaires distants nouvellement disponibles.
31
- - **Gestion de l'état de progression :**
32
- Le hook fournit également un état `isLoading`, indiquant lorsqu'un dictionnaire distant est en cours de récupération. Cela permet aux développeurs d'afficher des indicateurs de chargement ou des états de squelette pour une expérience utilisateur plus fluide.
33
-
34
- ## Configuration de l'environnement
35
-
36
- Intlayer fournit un système de gestion de source de contenu (CSM) sans interface (headless) qui permet aux non-développeurs de gérer et de mettre à jour le contenu des applications de manière fluide. En utilisant le tableau de bord intuitif d’Intlayer, votre équipe peut modifier les textes localisés, les images et d’autres ressources sans modifier directement le code. Cela simplifie le processus de gestion de contenu, favorise la collaboration et garantit que les mises à jour peuvent être effectuées rapidement et facilement.
37
-
38
- Pour commencer avec Intlayer, vous devez d’abord vous inscrire et obtenir un jeton d’accès dans le [tableau de bord](https://intlayer.org/dashboard). Une fois vos identifiants obtenus, ajoutez-les à votre fichier de configuration comme indiqué ci-dessous :
39
-
40
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
41
- import type { IntlayerConfig } from "intlayer";
42
-
43
- export default {
44
- // ...
45
- editor: {
46
- clientId: process.env.INTLAYER_CLIENT_ID,
47
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
48
- },
49
- } satisfies IntlayerConfig;
50
- ```
51
-
52
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
53
- import { type IntlayerConfig } from "intlayer";
54
-
55
- /** @type {import('intlayer').IntlayerConfig} */
56
- const config = {
57
- // ...
58
- editor: {
59
- clientId: process.env.INTLAYER_CLIENT_ID,
60
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
61
- },
62
- };
63
-
64
- export default config;
65
- ```
66
-
67
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
68
- /** @type {import('intlayer').IntlayerConfig} */
69
- const config = {
70
- // ...
71
- editor: {
72
- clientId: process.env.INTLAYER_CLIENT_ID,
73
- clientSecret: process.env.INTLAYER_CLIENT_SECRET,
74
- },
75
- };
76
-
77
- module.exports = config;
78
- ```
79
-
80
- Après avoir configuré vos identifiants, vous pouvez pousser un nouveau dictionnaire de locale vers Intlayer en exécutant :
81
-
82
- ```bash
83
- npx intlayer dictionary push -d my-first-dictionary-key
84
- ```
85
-
86
- Cette commande télécharge vos dictionnaires de contenu initiaux, les rendant disponibles pour une récupération et une édition asynchrones via la plateforme Intlayer.
87
-
88
- ## Importer `useIntlayerAsync` dans Next.js
89
-
90
- Puisque `useIntlayerAsync` est destiné aux composants **côté client**, vous l’importerez depuis le même point d’entrée client que `useIntlayer` :
91
-
92
- ```tsx codeFormat="typescript"
93
- "use client";
94
-
95
- import { useIntlayerAsync } from "next-intlayer";
96
- ```
97
-
98
- ```javascript codeFormat="esm"
99
- "use client";
100
-
101
- import { useIntlayerAsync } from "next-intlayer";
102
- ```
103
-
104
- ```javascript codeFormat="commonjs"
105
- "use client";
106
-
107
- const { useIntlayerAsync } = require("next-intlayer");
108
- ```
109
-
110
- Assurez-vous que le fichier d'importation est annoté avec `"use client"` en haut, si vous utilisez le Next.js App Router avec une séparation entre composants serveur et client.
111
-
112
- ## Paramètres
113
-
114
- 1. **`key`** :
115
- **Type** : `DictionaryKeys`
116
- La clé du dictionnaire utilisée pour identifier le bloc de contenu localisé. Cette clé doit être définie dans vos fichiers de déclaration de contenu.
117
-
118
- 2. **`locale`** (optionnel) :
119
- **Type** : `Locales`
120
- La locale spécifique que vous souhaitez cibler. Si elle est omise, le hook utilise la locale du contexte client.
121
-
122
- 3. **`isRenderEditor`** (optionnel, par défaut à `true`) :
123
- **Type** : `boolean`
124
- Détermine si le contenu doit être prêt à être rendu avec la superposition de l'éditeur Intlayer. Si défini sur `false`, les données du dictionnaire retournées excluront les fonctionnalités spécifiques à l'éditeur.
125
-
126
- ## Valeur de retour
127
-
128
- Le hook retourne un objet dictionnaire contenant le contenu localisé indexé par `key` et `locale`. Il inclut également un booléen `isLoading` indiquant si un dictionnaire distant est en cours de récupération.
129
-
130
- ## Exemple d'utilisation dans Next.js
131
-
132
- ### Exemple de composant côté client
133
-
134
- ```tsx fileName="src/components/AsyncClientComponentExample.tsx" codeFormat="typescript"
135
- "use client";
136
-
137
- import { useEffect, type FC } from "react";
138
- import { useIntlayerAsync } from "next-intlayer";
139
-
140
- export const AsyncClientComponentExample: FC = () => {
141
- const { title, description, isLoading } = useIntlayerAsync("async-component");
142
-
143
- useEffect(() => {
144
- if (isLoading) {
145
- console.log("Le contenu est en cours de chargement...");
146
- }
147
- }, [isLoading]);
148
-
149
- return (
150
- <div>
151
- <h1>{title.value}</h1>
152
- <p>{description.value}</p>
153
- </div>
154
- );
155
- };
156
- ```
157
-
158
- ```jsx fileName="src/components/AsyncClientComponentExample.mjx" codeFormat="esm"
159
- "use client";
160
-
161
- import { useEffect } from "react";
162
- import { useIntlayerAsync } from "next-intlayer";
163
-
164
- const AsyncClientComponentExample = () => {
165
- const { title, description, isLoading } = useIntlayerAsync("async-component");
166
-
167
- useEffect(() => {
168
- if (isLoading) {
169
- console.log("Le contenu est en cours de chargement...");
170
- }
171
- }, [isLoading]);
172
-
173
- return (
174
- <div>
175
- <h1>{title.value}</h1>
176
- <p>{description.value}</p>
177
- </div>
178
- );
179
- };
180
- ```
181
-
182
- ```jsx fileName="src/components/AsyncClientComponentExample.csx" codeFormat="commonjs"
183
- "use client";
184
-
185
- const { useEffect } = require("react");
186
- const { useIntlayerAsync } = require("next-intlayer");
187
-
188
- const AsyncClientComponentExample = () => {
189
- const { title, description, isLoading } = useIntlayerAsync("async-component");
190
-
191
- useEffect(() => {
192
- if (isLoading) {
193
- console.log("Le contenu est en cours de chargement...");
194
- }
195
- }, [isLoading]);
196
-
197
- return (
198
- <div>
199
- <h1>{title.value}</h1>
200
- <p>{description.value}</p>
201
- </div>
202
- );
203
- };
204
- ```
205
-
206
- **Points clés :**
207
-
208
- - Lors du rendu initial, `title` et `description` proviennent du dictionnaire de locale pré-rendu.
209
-
210
- - Tant que `isLoading` est `true`, une requête distante est effectuée en arrière-plan pour récupérer un dictionnaire mis à jour.
211
- - Une fois la récupération terminée, `title` et `description` sont mis à jour avec le contenu le plus récent, et `isLoading` revient à `false`.
212
-
213
- ## Gestion de la localisation des attributs
214
-
215
- Comme avec `useIntlayer`, vous pouvez récupérer des valeurs localisées pour divers attributs HTML (par exemple, `alt`, `title`, `aria-label`) :
216
-
217
- ```tsx
218
- <img src={title.image.src.value} alt={title.image.alt.value} />
219
- ```
220
-
221
- ## Fichiers de dictionnaire
222
-
223
- Toutes les clés de contenu doivent être définies dans vos fichiers de déclaration de contenu pour garantir la sécurité des types et éviter les erreurs à l'exécution. Ces fichiers permettent la validation TypeScript, assurant que vous référencez toujours des clés et des locales existantes.
224
-
225
- Instructions pour configurer les fichiers de déclaration de contenu sont disponibles [ici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md).
226
-
227
- ## Informations complémentaires
228
-
229
- - **Éditeur Visuel Intlayer :**
230
- Intégrez l'éditeur visuel Intlayer pour gérer et éditer le contenu directement depuis l'interface utilisateur. Plus de détails [ici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md).
231
-
232
- ---
233
-
234
- **En résumé**, `useIntlayerAsync` est un hook puissant côté client conçu pour améliorer l'expérience utilisateur et maintenir la fraîcheur du contenu en combinant des dictionnaires pré-rendus avec des mises à jour asynchrones des dictionnaires. En tirant parti de `isLoading` et des déclarations de contenu basées sur TypeScript, vous pouvez intégrer de manière fluide un contenu dynamique et localisé dans vos applications Next.js.
235
-
236
- ## Historique de la documentation
237
-
238
- - 5.5.10 - 2025-06-29 : Historique initial