@intlayer/docs 5.7.5 → 5.7.6-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.
- package/blog/ar/intlayer_with_i18next.md +1 -1
- package/dist/cjs/common.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +80 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +0 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +80 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/packages/react-intlayer/useI18n.md +250 -0
- package/docs/de/dictionary/gender.md +3 -3
- package/docs/de/packages/react-intlayer/useI18n.md +250 -0
- package/docs/en/configuration.md +2 -2
- package/docs/en/packages/react-intlayer/useI18n.md +250 -0
- package/docs/en-GB/packages/react-intlayer/useI18n.md +254 -0
- package/docs/es/dictionary/enumeration.md +1 -1
- package/docs/es/dictionary/gender.md +3 -3
- package/docs/es/locale_mapper.md +1 -1
- package/docs/es/packages/react-intlayer/useI18n.md +250 -0
- package/docs/fr/intlayer_with_vite+preact.md +1 -1
- package/docs/fr/packages/react-intlayer/useI18n.md +250 -0
- package/docs/hi/dictionary/enumeration.md +0 -1
- package/docs/hi/packages/react-intlayer/useI18n.md +259 -0
- package/docs/it/packages/react-intlayer/useI18n.md +250 -0
- package/docs/ja/dictionary/enumeration.md +0 -1
- package/docs/ja/packages/react-intlayer/useI18n.md +250 -0
- package/docs/ko/dictionary/enumeration.md +0 -1
- package/docs/ko/packages/react-intlayer/useI18n.md +250 -0
- package/docs/pt/packages/react-intlayer/useI18n.md +250 -0
- package/docs/ru/dictionary/enumeration.md +0 -1
- package/docs/ru/packages/react-intlayer/useI18n.md +250 -0
- package/docs/zh/packages/react-intlayer/useI18n.md +250 -0
- package/frequent_questions/ar/unknown_command.md +1 -1
- package/frequent_questions/de/array_as_content_declaration.md +1 -1
- package/frequent_questions/de/build_dictionaries.md +1 -1
- package/frequent_questions/de/build_error_CI_CD.md +1 -1
- package/frequent_questions/de/customized_locale_list.md +1 -1
- package/frequent_questions/de/esbuild_error.md +1 -1
- package/frequent_questions/de/intlayer_command_undefined.md +1 -1
- package/frequent_questions/de/locale_incorect_in_url.md +1 -1
- package/frequent_questions/de/static_rendering.md +1 -1
- package/frequent_questions/de/translated_path_url.md +1 -1
- package/frequent_questions/de/unknown_command.md +1 -1
- package/frequent_questions/en-GB/customized_locale_list.md +1 -1
- package/frequent_questions/es/array_as_content_declaration.md +1 -1
- package/frequent_questions/es/build_dictionaries.md +1 -1
- package/frequent_questions/es/customized_locale_list.md +1 -1
- package/frequent_questions/es/domain_routing.md +1 -1
- package/frequent_questions/es/get_locale_cookie.md +1 -1
- package/frequent_questions/es/intlayer_command_undefined.md +1 -1
- package/frequent_questions/es/locale_incorect_in_url.md +1 -1
- package/frequent_questions/es/static_rendering.md +1 -1
- package/frequent_questions/es/translated_path_url.md +1 -1
- package/frequent_questions/es/unknown_command.md +1 -1
- package/frequent_questions/fr/array_as_content_declaration.md +1 -1
- package/frequent_questions/fr/build_dictionaries.md +1 -1
- package/frequent_questions/fr/customized_locale_list.md +1 -1
- package/frequent_questions/fr/domain_routing.md +1 -1
- package/frequent_questions/fr/esbuild_error.md +1 -1
- package/frequent_questions/fr/intlayer_command_undefined.md +1 -1
- package/frequent_questions/fr/static_rendering.md +1 -1
- package/frequent_questions/fr/translated_path_url.md +1 -1
- package/frequent_questions/fr/unknown_command.md +1 -1
- package/frequent_questions/it/array_as_content_declaration.md +1 -1
- package/frequent_questions/it/build_dictionaries.md +1 -1
- package/frequent_questions/it/customized_locale_list.md +1 -1
- package/frequent_questions/it/esbuild_error.md +1 -1
- package/frequent_questions/it/intlayer_command_undefined.md +1 -1
- package/frequent_questions/it/locale_incorect_in_url.md +1 -1
- package/frequent_questions/it/static_rendering.md +1 -1
- package/frequent_questions/it/translated_path_url.md +1 -1
- package/frequent_questions/it/unknown_command.md +1 -1
- package/frequent_questions/ko/build_dictionaries.md +2 -2
- package/frequent_questions/ko/customized_locale_list.md +3 -3
- package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
- package/frequent_questions/pt/array_as_content_declaration.md +1 -1
- package/frequent_questions/pt/build_dictionaries.md +1 -1
- package/frequent_questions/pt/build_error_CI_CD.md +1 -1
- package/frequent_questions/pt/customized_locale_list.md +1 -1
- package/frequent_questions/pt/domain_routing.md +1 -1
- package/frequent_questions/pt/esbuild_error.md +1 -1
- package/frequent_questions/pt/intlayer_command_undefined.md +1 -1
- package/frequent_questions/pt/locale_incorect_in_url.md +1 -1
- package/frequent_questions/pt/static_rendering.md +1 -1
- package/frequent_questions/pt/translated_path_url.md +1 -1
- package/frequent_questions/pt/unknown_command.md +1 -1
- package/frequent_questions/zh/build_dictionaries.md +3 -3
- package/frequent_questions/zh/customized_locale_list.md +3 -3
- package/frequent_questions/zh/esbuild_error.md +3 -3
- package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
- package/frequent_questions/zh/translated_path_url.md +3 -3
- package/package.json +8 -8
- package/src/common.ts +0 -1
- package/src/generated/docs.entry.ts +80 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-08-11
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Documentación del Hook useI18n | react-intlayer
|
|
5
|
+
description: Aprende cómo usar el hook useI18n en el paquete react-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- useI18n
|
|
8
|
+
- i18n
|
|
9
|
+
- traducción
|
|
10
|
+
- diccionario
|
|
11
|
+
- Intlayer
|
|
12
|
+
- internacionalización
|
|
13
|
+
- documentación
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- React
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- packages
|
|
20
|
+
- react-intlayer
|
|
21
|
+
- useI18n
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Integración en React: Documentación del Hook `useI18n`
|
|
25
|
+
|
|
26
|
+
Esta sección proporciona una guía detallada sobre cómo usar el hook `useI18n` dentro de aplicaciones React, permitiendo una localización eficiente del contenido.
|
|
27
|
+
|
|
28
|
+
## Importando `useI18n` en React
|
|
29
|
+
|
|
30
|
+
El hook `useI18n` puede ser importado e integrado en aplicaciones React según el contexto de la siguiente manera:
|
|
31
|
+
|
|
32
|
+
- **Componentes Cliente:**
|
|
33
|
+
|
|
34
|
+
```typescript codeFormat="typescript"
|
|
35
|
+
import { useI18n } from "react-intlayer"; // Usar en componentes React del lado del cliente
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```javascript codeFormat="esm"
|
|
39
|
+
import { useI18n } from "react-intlayer"; // Usar en componentes React del lado del cliente
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```javascript codeFormat="commonjs"
|
|
43
|
+
const { useI18n } = require("react-intlayer"); // Usar en componentes React del lado del cliente
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- **Componentes Servidor:**
|
|
47
|
+
|
|
48
|
+
```typescript codeFormat="commonjs"
|
|
49
|
+
import { useI18n } from "react-intlayer/server"; // Usar en componentes React del lado del servidor
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```javascript codeFormat="esm"
|
|
53
|
+
import { useI18n } from "react-intlayer/server"; // Usar en componentes React del lado del servidor
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```javascript codeFormat="commonjs"
|
|
57
|
+
const { useI18n } = require("react-intlayer/server"); // Usar en componentes React del lado del servidor
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Parámetros
|
|
61
|
+
|
|
62
|
+
Este hook acepta dos parámetros:
|
|
63
|
+
|
|
64
|
+
1. **`namespace`**: Un espacio de nombres del diccionario para delimitar las claves de traducción.
|
|
65
|
+
2. **`locale`** (opcional): La configuración regional deseada. Si no se especifica, se usará la configuración regional del contexto por defecto.
|
|
66
|
+
|
|
67
|
+
## Diccionario
|
|
68
|
+
|
|
69
|
+
Todas las claves del diccionario deben declararse dentro de archivos de declaración de contenido para mejorar la seguridad de tipos y prevenir errores. [Las instrucciones de configuración se pueden encontrar aquí](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/get_started.md).
|
|
70
|
+
|
|
71
|
+
## Ejemplos de uso en React
|
|
72
|
+
|
|
73
|
+
Ejemplos de uso del hook `useI18n` dentro de componentes React:
|
|
74
|
+
|
|
75
|
+
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
76
|
+
import type { FC } from "react";
|
|
77
|
+
import { ClientComponentExample, ServerComponentExample } from "@components";
|
|
78
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
79
|
+
import { useI18n, IntlayerServerProvider } from "react-intlayer/server";
|
|
80
|
+
import { Locales } from "intlayer";
|
|
81
|
+
|
|
82
|
+
const App: FC<{ locale: Locales }> = ({ locale }) => {
|
|
83
|
+
const t = useI18n("home-page", locale);
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<>
|
|
87
|
+
<p>{t("introduction")}</p>
|
|
88
|
+
<IntlayerProvider locale={locale}>
|
|
89
|
+
<ClientComponentExample />
|
|
90
|
+
</IntlayerProvider>
|
|
91
|
+
<IntlayerServerProvider locale={locale}>
|
|
92
|
+
<ServerComponentExample />
|
|
93
|
+
</IntlayerServerProvider>
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```jsx fileName="src/app.jsx" codeFormat="esm"
|
|
100
|
+
import { ClientComponentExample, ServerComponentExample } from "@components";
|
|
101
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
102
|
+
import { IntlayerServerProvider, useI18n } from "react-intlayer/server";
|
|
103
|
+
|
|
104
|
+
const App = ({ locale }) => {
|
|
105
|
+
const t = useI18n("home-page", locale);
|
|
106
|
+
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<p>{t("introduction")}</p>
|
|
110
|
+
<IntlayerProvider locale={locale}>
|
|
111
|
+
<ClientComponentExample />
|
|
112
|
+
</IntlayerProvider>
|
|
113
|
+
<IntlayerServerProvider locale={locale}>
|
|
114
|
+
<ServerComponentExample />
|
|
115
|
+
</IntlayerServerProvider>
|
|
116
|
+
</>
|
|
117
|
+
);
|
|
118
|
+
};
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```jsx fileName="src/app.cjs" codeFormat="commonjs"
|
|
122
|
+
const { IntlayerProvider } = require("react-intlayer");
|
|
123
|
+
const { IntlayerServerProvider, useI18n } = require("react-intlayer/server");
|
|
124
|
+
|
|
125
|
+
const App = ({ locale }) => {
|
|
126
|
+
const t = useI18n("home-page", locale);
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<>
|
|
130
|
+
<p>{t("introduction")}</p>
|
|
131
|
+
<IntlayerProvider locale={locale}>
|
|
132
|
+
<ClientComponentExample />
|
|
133
|
+
</IntlayerProvider>
|
|
134
|
+
<IntlayerServerProvider locale={locale}>
|
|
135
|
+
<ServerComponentExample />
|
|
136
|
+
</IntlayerServerProvider>
|
|
137
|
+
</>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```tsx fileName="src/components/ComponentExample.tsx" codeFormat="typescript"
|
|
143
|
+
import type { FC } from "react";
|
|
144
|
+
import { useI18n } from "react-intlayer";
|
|
145
|
+
|
|
146
|
+
const ComponentExample: FC = () => {
|
|
147
|
+
const t = useI18n("component-example");
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<div>
|
|
151
|
+
<h1>{t("title")}</h1> {/* Mostrar el título */}
|
|
152
|
+
<p>{t("description")}</p> {/* Mostrar la descripción */}
|
|
153
|
+
</div>
|
|
154
|
+
);
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```jsx fileName="src/components/ComponentExample.jsx" codeFormat="esm"
|
|
159
|
+
import { useI18n } from "react-intlayer";
|
|
160
|
+
|
|
161
|
+
const ComponentExample = () => {
|
|
162
|
+
const t = useI18n("component-example");
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
<div>
|
|
166
|
+
<h1>{t("title")}</h1> {/* Mostrar el título */}
|
|
167
|
+
<p>{t("description")}</p> {/* Mostrar la descripción */}
|
|
168
|
+
</div>
|
|
169
|
+
);
|
|
170
|
+
};
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```jsx fileName="src/components/ComponentExample.cjs" codeFormat="commonjs"
|
|
174
|
+
const { useI18n } = require("react-intlayer");
|
|
175
|
+
|
|
176
|
+
const ComponentExample = () => {
|
|
177
|
+
const t = useI18n("component-example");
|
|
178
|
+
|
|
179
|
+
return (
|
|
180
|
+
<div>
|
|
181
|
+
<h1>{t("title")}</h1> {/* Mostrar el título */}
|
|
182
|
+
<p>{t("description")}</p> {/* Mostrar la descripción */}
|
|
183
|
+
</div>
|
|
184
|
+
);
|
|
185
|
+
};
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```tsx fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
|
|
189
|
+
import { useI18n } from "react-intlayer/server";
|
|
190
|
+
|
|
191
|
+
const ServerComponentExample = () => {
|
|
192
|
+
const t = useI18n("server-component");
|
|
193
|
+
|
|
194
|
+
return (
|
|
195
|
+
<div>
|
|
196
|
+
<h1>{t("title")}</h1> {/* Mostrar el título */}
|
|
197
|
+
<p>{t("description")}</p> {/* Mostrar la descripción */}
|
|
198
|
+
</div>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```jsx fileName="src/components/ServerComponentExample.jsx" codeFormat="esm"
|
|
204
|
+
import { useI18n } from "react-intlayer/server";
|
|
205
|
+
|
|
206
|
+
const ServerComponentExample = () => {
|
|
207
|
+
const t = useI18n("server-component");
|
|
208
|
+
|
|
209
|
+
return (
|
|
210
|
+
<div>
|
|
211
|
+
<h1>{t("title")}</h1> {/* Mostrar el título */}
|
|
212
|
+
<p>{t("description")}</p> {/* Mostrar la descripción */}
|
|
213
|
+
</div>
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
```jsx fileName="src/components/ServerComponentExample.cjs" codeFormat="commonjs"
|
|
219
|
+
const { useI18n } = require("react-intlayer/server");
|
|
220
|
+
|
|
221
|
+
const ServerComponentExample = () => {
|
|
222
|
+
const t = useI18n("server-component");
|
|
223
|
+
|
|
224
|
+
return (
|
|
225
|
+
<div>
|
|
226
|
+
<h1>{t("title")}</h1>
|
|
227
|
+
<p>{t("description")}</p>
|
|
228
|
+
</div>
|
|
229
|
+
);
|
|
230
|
+
};
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Manejo de Atributos
|
|
234
|
+
|
|
235
|
+
Al localizar atributos, accede a los valores de traducción de manera adecuada:
|
|
236
|
+
|
|
237
|
+
```jsx
|
|
238
|
+
<!-- Para atributos de accesibilidad (por ejemplo, aria-label), usa .value ya que se requieren cadenas puras -->
|
|
239
|
+
<button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Recursos Adicionales
|
|
243
|
+
|
|
244
|
+
- **Editor Visual de Intlayer**: Para una experiencia de gestión de contenido más intuitiva, consulta la documentación del editor visual [aquí](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_visual_editor.md).
|
|
245
|
+
|
|
246
|
+
Esta sección cubre específicamente la integración del hook `useI18n` en aplicaciones React, simplificando el proceso de localización y asegurando la consistencia del contenido a través de diferentes locales.
|
|
247
|
+
|
|
248
|
+
## Historial de la Documentación
|
|
249
|
+
|
|
250
|
+
- 6.0.0 - 2025-06-29: Escritura inicial de la documentación del hook `useI18n`
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-08-11
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Documentation du Hook useI18n | react-intlayer
|
|
5
|
+
description: Apprenez à utiliser le hook useI18n dans le package react-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- useI18n
|
|
8
|
+
- i18n
|
|
9
|
+
- traduction
|
|
10
|
+
- dictionnaire
|
|
11
|
+
- Intlayer
|
|
12
|
+
- internationalisation
|
|
13
|
+
- documentation
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- React
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- packages
|
|
20
|
+
- react-intlayer
|
|
21
|
+
- useI18n
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Intégration React : Documentation du Hook `useI18n`
|
|
25
|
+
|
|
26
|
+
Cette section fournit des instructions détaillées sur la manière d’utiliser le hook `useI18n` dans les applications React, permettant une localisation efficace du contenu.
|
|
27
|
+
|
|
28
|
+
## Importer `useI18n` dans React
|
|
29
|
+
|
|
30
|
+
Le hook `useI18n` peut être importé et intégré dans les applications React selon le contexte comme suit :
|
|
31
|
+
|
|
32
|
+
- **Composants Client :**
|
|
33
|
+
|
|
34
|
+
```typescript codeFormat="typescript"
|
|
35
|
+
import { useI18n } from "react-intlayer"; // Utiliser dans les composants React côté client
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```javascript codeFormat="esm"
|
|
39
|
+
import { useI18n } from "react-intlayer"; // Utiliser dans les composants React côté client
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```javascript codeFormat="commonjs"
|
|
43
|
+
const { useI18n } = require("react-intlayer"); // Utiliser dans les composants React côté client
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- **Composants Serveur :**
|
|
47
|
+
|
|
48
|
+
```typescript codeFormat="commonjs"
|
|
49
|
+
import { useI18n } from "react-intlayer/server"; // Utiliser dans les composants React côté serveur
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```javascript codeFormat="esm"
|
|
53
|
+
import { useI18n } from "react-intlayer/server"; // Utiliser dans les composants React côté serveur
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```javascript codeFormat="commonjs"
|
|
57
|
+
const { useI18n } = require("react-intlayer/server"); // Utiliser dans les composants React côté serveur
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Paramètres
|
|
61
|
+
|
|
62
|
+
Ce hook accepte deux paramètres :
|
|
63
|
+
|
|
64
|
+
1. **`namespace`** : Un espace de noms de dictionnaire pour délimiter les clés de traduction.
|
|
65
|
+
2. **`locale`** (optionnel) : La locale souhaitée. Si elle n'est pas spécifiée, la locale du contexte sera utilisée par défaut.
|
|
66
|
+
|
|
67
|
+
## Dictionnaire
|
|
68
|
+
|
|
69
|
+
Toutes les clés du dictionnaire doivent être déclarées dans des fichiers de déclaration de contenu afin d'améliorer la sécurité des types et d'éviter les erreurs. [Les instructions de configuration sont disponibles ici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md).
|
|
70
|
+
|
|
71
|
+
## Exemples d'utilisation dans React
|
|
72
|
+
|
|
73
|
+
Exemples d'utilisation du hook `useI18n` dans des composants React :
|
|
74
|
+
|
|
75
|
+
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
76
|
+
import type { FC } from "react";
|
|
77
|
+
import { ClientComponentExample, ServerComponentExample } from "@components";
|
|
78
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
79
|
+
import { useI18n, IntlayerServerProvider } from "react-intlayer/server";
|
|
80
|
+
import { Locales } from "intlayer";
|
|
81
|
+
|
|
82
|
+
const App: FC<{ locale: Locales }> = ({ locale }) => {
|
|
83
|
+
const t = useI18n("home-page", locale);
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<>
|
|
87
|
+
<p>{t("introduction")}</p>
|
|
88
|
+
<IntlayerProvider locale={locale}>
|
|
89
|
+
<ClientComponentExample />
|
|
90
|
+
</IntlayerProvider>
|
|
91
|
+
<IntlayerServerProvider locale={locale}>
|
|
92
|
+
<ServerComponentExample />
|
|
93
|
+
</IntlayerServerProvider>
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```jsx fileName="src/app.jsx" codeFormat="esm"
|
|
100
|
+
import { ClientComponentExample, ServerComponentExample } from "@components";
|
|
101
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
102
|
+
import { IntlayerServerProvider, useI18n } from "react-intlayer/server";
|
|
103
|
+
|
|
104
|
+
const App = ({ locale }) => {
|
|
105
|
+
const t = useI18n("home-page", locale);
|
|
106
|
+
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<p>{t("introduction")}</p>
|
|
110
|
+
<IntlayerProvider locale={locale}>
|
|
111
|
+
<ClientComponentExample />
|
|
112
|
+
</IntlayerProvider>
|
|
113
|
+
<IntlayerServerProvider locale={locale}>
|
|
114
|
+
<ServerComponentExample />
|
|
115
|
+
</IntlayerServerProvider>
|
|
116
|
+
</>
|
|
117
|
+
);
|
|
118
|
+
};
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```jsx fileName="src/app.cjs" codeFormat="commonjs"
|
|
122
|
+
const { IntlayerProvider } = require("react-intlayer");
|
|
123
|
+
const { IntlayerServerProvider, useI18n } = require("react-intlayer/server");
|
|
124
|
+
|
|
125
|
+
const App = ({ locale }) => {
|
|
126
|
+
const t = useI18n("home-page", locale);
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<>
|
|
130
|
+
<p>{t("introduction")}</p>
|
|
131
|
+
<IntlayerProvider locale={locale}>
|
|
132
|
+
<ClientComponentExample />
|
|
133
|
+
</IntlayerProvider>
|
|
134
|
+
<IntlayerServerProvider locale={locale}>
|
|
135
|
+
<ServerComponentExample />
|
|
136
|
+
</IntlayerServerProvider>
|
|
137
|
+
</>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```tsx fileName="src/components/ComponentExample.tsx" codeFormat="typescript"
|
|
143
|
+
import type { FC } from "react";
|
|
144
|
+
import { useI18n } from "react-intlayer";
|
|
145
|
+
|
|
146
|
+
const ComponentExample: FC = () => {
|
|
147
|
+
const t = useI18n("component-example");
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<div>
|
|
151
|
+
<h1>{t("title")}</h1> {/* Affiche le titre */}
|
|
152
|
+
<p>{t("description")}</p> {/* Affiche la description */}
|
|
153
|
+
</div>
|
|
154
|
+
);
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```jsx fileName="src/components/ComponentExample.jsx" codeFormat="esm"
|
|
159
|
+
import { useI18n } from "react-intlayer";
|
|
160
|
+
|
|
161
|
+
const ComponentExample = () => {
|
|
162
|
+
const t = useI18n("component-example");
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
<div>
|
|
166
|
+
<h1>{t("title")}</h1> {/* Affiche le titre */}
|
|
167
|
+
<p>{t("description")}</p> {/* Affiche la description */}
|
|
168
|
+
</div>
|
|
169
|
+
);
|
|
170
|
+
};
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```jsx fileName="src/components/ComponentExample.cjs" codeFormat="commonjs"
|
|
174
|
+
const { useI18n } = require("react-intlayer");
|
|
175
|
+
|
|
176
|
+
const ComponentExample = () => {
|
|
177
|
+
const t = useI18n("component-example");
|
|
178
|
+
|
|
179
|
+
return (
|
|
180
|
+
<div>
|
|
181
|
+
<h1>{t("title")}</h1> {/* Affiche le titre */}
|
|
182
|
+
<p>{t("description")}</p> {/* Affiche la description */}
|
|
183
|
+
</div>
|
|
184
|
+
);
|
|
185
|
+
};
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```tsx fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
|
|
189
|
+
import { useI18n } from "react-intlayer/server";
|
|
190
|
+
|
|
191
|
+
const ServerComponentExample = () => {
|
|
192
|
+
const t = useI18n("server-component");
|
|
193
|
+
|
|
194
|
+
return (
|
|
195
|
+
<div>
|
|
196
|
+
<h1>{t("title")}</h1> {/* Affiche le titre */}
|
|
197
|
+
<p>{t("description")}</p> {/* Affiche la description */}
|
|
198
|
+
</div>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```jsx fileName="src/components/ServerComponentExample.jsx" codeFormat="esm"
|
|
204
|
+
import { useI18n } from "react-intlayer/server";
|
|
205
|
+
|
|
206
|
+
const ServerComponentExample = () => {
|
|
207
|
+
const t = useI18n("server-component");
|
|
208
|
+
|
|
209
|
+
return (
|
|
210
|
+
<div>
|
|
211
|
+
<h1>{t("title")}</h1> {/* Affiche le titre */}
|
|
212
|
+
<p>{t("description")}</p> {/* Affiche la description */}
|
|
213
|
+
</div>
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
```jsx fileName="src/components/ServerComponentExample.cjs" codeFormat="commonjs"
|
|
219
|
+
const { useI18n } = require("react-intlayer/server");
|
|
220
|
+
|
|
221
|
+
const ServerComponentExample = () => {
|
|
222
|
+
const t = useI18n("server-component");
|
|
223
|
+
|
|
224
|
+
return (
|
|
225
|
+
<div>
|
|
226
|
+
<h1>{t("title")}</h1>
|
|
227
|
+
<p>{t("description")}</p>
|
|
228
|
+
</div>
|
|
229
|
+
);
|
|
230
|
+
};
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Gestion des attributs
|
|
234
|
+
|
|
235
|
+
Lors de la localisation des attributs, accédez aux valeurs de traduction de manière appropriée :
|
|
236
|
+
|
|
237
|
+
```jsx
|
|
238
|
+
<!-- Pour les attributs d'accessibilité (par exemple, aria-label), utilisez .value car des chaînes pures sont requises -->
|
|
239
|
+
<button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Ressources supplémentaires
|
|
243
|
+
|
|
244
|
+
- **Éditeur visuel Intlayer** : Pour une expérience de gestion de contenu plus intuitive, consultez la documentation de l'éditeur visuel [ici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md).
|
|
245
|
+
|
|
246
|
+
Cette section couvre spécifiquement l'intégration du hook `useI18n` dans les applications React, simplifiant le processus de localisation et garantissant la cohérence du contenu à travers différentes locales.
|
|
247
|
+
|
|
248
|
+
## Historique de la documentation
|
|
249
|
+
|
|
250
|
+
- 6.0.0 - 29-06-2025 : Rédaction initiale de la documentation du hook `useI18n`
|