@intlayer/docs 5.7.5 → 5.7.6

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 (97) hide show
  1. package/blog/ar/intlayer_with_i18next.md +1 -1
  2. package/dist/cjs/common.cjs +0 -1
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/docs.entry.cjs +80 -0
  5. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  6. package/dist/esm/common.mjs +0 -1
  7. package/dist/esm/common.mjs.map +1 -1
  8. package/dist/esm/generated/docs.entry.mjs +80 -0
  9. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  10. package/dist/types/common.d.ts.map +1 -1
  11. package/dist/types/generated/docs.entry.d.ts +1 -0
  12. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  13. package/docs/ar/packages/react-intlayer/useI18n.md +250 -0
  14. package/docs/de/dictionary/gender.md +3 -3
  15. package/docs/de/packages/react-intlayer/useI18n.md +250 -0
  16. package/docs/en/configuration.md +2 -2
  17. package/docs/en/packages/react-intlayer/useI18n.md +250 -0
  18. package/docs/en-GB/packages/react-intlayer/useI18n.md +254 -0
  19. package/docs/es/dictionary/enumeration.md +1 -1
  20. package/docs/es/dictionary/gender.md +3 -3
  21. package/docs/es/locale_mapper.md +1 -1
  22. package/docs/es/packages/react-intlayer/useI18n.md +250 -0
  23. package/docs/fr/intlayer_with_vite+preact.md +1 -1
  24. package/docs/fr/packages/react-intlayer/useI18n.md +250 -0
  25. package/docs/hi/dictionary/enumeration.md +0 -1
  26. package/docs/hi/packages/react-intlayer/useI18n.md +259 -0
  27. package/docs/it/packages/react-intlayer/useI18n.md +250 -0
  28. package/docs/ja/dictionary/enumeration.md +0 -1
  29. package/docs/ja/packages/react-intlayer/useI18n.md +250 -0
  30. package/docs/ko/dictionary/enumeration.md +0 -1
  31. package/docs/ko/packages/react-intlayer/useI18n.md +250 -0
  32. package/docs/pt/packages/react-intlayer/useI18n.md +250 -0
  33. package/docs/ru/dictionary/enumeration.md +0 -1
  34. package/docs/ru/packages/react-intlayer/useI18n.md +250 -0
  35. package/docs/zh/packages/react-intlayer/useI18n.md +250 -0
  36. package/frequent_questions/ar/unknown_command.md +1 -1
  37. package/frequent_questions/de/array_as_content_declaration.md +1 -1
  38. package/frequent_questions/de/build_dictionaries.md +1 -1
  39. package/frequent_questions/de/build_error_CI_CD.md +1 -1
  40. package/frequent_questions/de/customized_locale_list.md +1 -1
  41. package/frequent_questions/de/esbuild_error.md +1 -1
  42. package/frequent_questions/de/intlayer_command_undefined.md +1 -1
  43. package/frequent_questions/de/locale_incorect_in_url.md +1 -1
  44. package/frequent_questions/de/static_rendering.md +1 -1
  45. package/frequent_questions/de/translated_path_url.md +1 -1
  46. package/frequent_questions/de/unknown_command.md +1 -1
  47. package/frequent_questions/en-GB/customized_locale_list.md +1 -1
  48. package/frequent_questions/es/array_as_content_declaration.md +1 -1
  49. package/frequent_questions/es/build_dictionaries.md +1 -1
  50. package/frequent_questions/es/customized_locale_list.md +1 -1
  51. package/frequent_questions/es/domain_routing.md +1 -1
  52. package/frequent_questions/es/get_locale_cookie.md +1 -1
  53. package/frequent_questions/es/intlayer_command_undefined.md +1 -1
  54. package/frequent_questions/es/locale_incorect_in_url.md +1 -1
  55. package/frequent_questions/es/static_rendering.md +1 -1
  56. package/frequent_questions/es/translated_path_url.md +1 -1
  57. package/frequent_questions/es/unknown_command.md +1 -1
  58. package/frequent_questions/fr/array_as_content_declaration.md +1 -1
  59. package/frequent_questions/fr/build_dictionaries.md +1 -1
  60. package/frequent_questions/fr/customized_locale_list.md +1 -1
  61. package/frequent_questions/fr/domain_routing.md +1 -1
  62. package/frequent_questions/fr/esbuild_error.md +1 -1
  63. package/frequent_questions/fr/intlayer_command_undefined.md +1 -1
  64. package/frequent_questions/fr/static_rendering.md +1 -1
  65. package/frequent_questions/fr/translated_path_url.md +1 -1
  66. package/frequent_questions/fr/unknown_command.md +1 -1
  67. package/frequent_questions/it/array_as_content_declaration.md +1 -1
  68. package/frequent_questions/it/build_dictionaries.md +1 -1
  69. package/frequent_questions/it/customized_locale_list.md +1 -1
  70. package/frequent_questions/it/esbuild_error.md +1 -1
  71. package/frequent_questions/it/intlayer_command_undefined.md +1 -1
  72. package/frequent_questions/it/locale_incorect_in_url.md +1 -1
  73. package/frequent_questions/it/static_rendering.md +1 -1
  74. package/frequent_questions/it/translated_path_url.md +1 -1
  75. package/frequent_questions/it/unknown_command.md +1 -1
  76. package/frequent_questions/ko/build_dictionaries.md +2 -2
  77. package/frequent_questions/ko/customized_locale_list.md +3 -3
  78. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  79. package/frequent_questions/pt/array_as_content_declaration.md +1 -1
  80. package/frequent_questions/pt/build_dictionaries.md +1 -1
  81. package/frequent_questions/pt/build_error_CI_CD.md +1 -1
  82. package/frequent_questions/pt/customized_locale_list.md +1 -1
  83. package/frequent_questions/pt/domain_routing.md +1 -1
  84. package/frequent_questions/pt/esbuild_error.md +1 -1
  85. package/frequent_questions/pt/intlayer_command_undefined.md +1 -1
  86. package/frequent_questions/pt/locale_incorect_in_url.md +1 -1
  87. package/frequent_questions/pt/static_rendering.md +1 -1
  88. package/frequent_questions/pt/translated_path_url.md +1 -1
  89. package/frequent_questions/pt/unknown_command.md +1 -1
  90. package/frequent_questions/zh/build_dictionaries.md +3 -3
  91. package/frequent_questions/zh/customized_locale_list.md +3 -3
  92. package/frequent_questions/zh/esbuild_error.md +3 -3
  93. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  94. package/frequent_questions/zh/translated_path_url.md +3 -3
  95. package/package.json +9 -9
  96. package/src/common.ts +0 -1
  97. 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: Documentação do Hook useI18n | react-intlayer
5
+ description: Aprenda como usar o hook useI18n no pacote react-intlayer
6
+ keywords:
7
+ - useI18n
8
+ - i18n
9
+ - tradução
10
+ - dicionário
11
+ - Intlayer
12
+ - internacionalização
13
+ - documentação
14
+ - Next.js
15
+ - JavaScript
16
+ - React
17
+ slugs:
18
+ - doc
19
+ - packages
20
+ - react-intlayer
21
+ - useI18n
22
+ ---
23
+
24
+ # Integração com React: Documentação do Hook `useI18n`
25
+
26
+ Esta seção fornece orientações detalhadas sobre como usar o hook `useI18n` em aplicações React, permitindo uma localização eficiente de conteúdo.
27
+
28
+ ## Importando `useI18n` no React
29
+
30
+ O hook `useI18n` pode ser importado e integrado em aplicações React conforme o contexto, da seguinte forma:
31
+
32
+ - **Componentes Cliente:**
33
+
34
+ ```typescript codeFormat="typescript"
35
+ import { useI18n } from "react-intlayer"; // Use em componentes React do lado do cliente
36
+ ```
37
+
38
+ ```javascript codeFormat="esm"
39
+ import { useI18n } from "react-intlayer"; // Use em componentes React do lado do cliente
40
+ ```
41
+
42
+ ```javascript codeFormat="commonjs"
43
+ const { useI18n } = require("react-intlayer"); // Use em componentes React do lado do cliente
44
+ ```
45
+
46
+ - **Componentes Servidor:**
47
+
48
+ ```typescript codeFormat="commonjs"
49
+ import { useI18n } from "react-intlayer/server"; // Use em componentes React do lado do servidor
50
+ ```
51
+
52
+ ```javascript codeFormat="esm"
53
+ import { useI18n } from "react-intlayer/server"; // Use em componentes React do lado do servidor
54
+ ```
55
+
56
+ ```javascript codeFormat="commonjs"
57
+ const { useI18n } = require("react-intlayer/server"); // Use em componentes React do lado do servidor
58
+ ```
59
+
60
+ ## Parâmetros
61
+
62
+ Este hook aceita dois parâmetros:
63
+
64
+ 1. **`namespace`**: Um namespace de dicionário para delimitar as chaves de tradução.
65
+ 2. **`locale`** (opcional): O locale desejado. Se não especificado, o locale do contexto será usado como padrão.
66
+
67
+ ## Dicionário
68
+
69
+ Todas as chaves do dicionário devem ser declaradas dentro dos arquivos de declaração de conteúdo para aumentar a segurança de tipos e evitar erros. [Instruções de configuração podem ser encontradas aqui](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/get_started.md).
70
+
71
+ ## Exemplos de Uso em React
72
+
73
+ Exemplos de uso do 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> {/* Exibe o título */}
152
+ <p>{t("description")}</p> {/* Exibe a descrição */}
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> {/* Exibe o título */}
167
+ <p>{t("description")}</p> {/* Exibe a descrição */}
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> {/* Exibe o título */}
182
+ <p>{t("description")}</p> {/* Exibe a descrição */}
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> {/* Exibe o título */}
197
+ <p>{t("description")}</p> {/* Exibe a descrição */}
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> {/* Exibe o título */}
212
+ <p>{t("description")}</p> {/* Exibe a descrição */}
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
+ ## Manipulação de Atributos
234
+
235
+ Ao localizar atributos, acesse os valores de tradução de forma apropriada:
236
+
237
+ ```jsx
238
+ <!-- Para atributos de acessibilidade (ex.: aria-label), use .value pois são necessárias strings puras -->
239
+ <button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
240
+ ```
241
+
242
+ ## Recursos Adicionais
243
+
244
+ - **Editor Visual Intlayer**: Para uma experiência de gerenciamento de conteúdo mais intuitiva, consulte a documentação do editor visual [aqui](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md).
245
+
246
+ Esta seção cobre especificamente a integração do hook `useI18n` em aplicações React, simplificando o processo de localização e garantindo a consistência do conteúdo entre diferentes locais.
247
+
248
+ ## Histórico da Documentação
249
+
250
+ - 6.0.0 - 2025-06-29: Escrita inicial da documentação do hook `useI18n`
@@ -15,7 +15,6 @@ slugs:
15
15
  - doc
16
16
  - concept
17
17
  - content
18
- - dictionary
19
18
  - enumeration
20
19
  ---
21
20
 
@@ -0,0 +1,250 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-06-29
4
+ title: Документация по хуку useI18n | react-intlayer
5
+ description: Узнайте, как использовать хук useI18n в пакете react-intlayer
6
+ keywords:
7
+ - useI18n
8
+ - i18n
9
+ - перевод
10
+ - словарь
11
+ - Intlayer
12
+ - интернационализация
13
+ - документация
14
+ - Next.js
15
+ - JavaScript
16
+ - React
17
+ slugs:
18
+ - doc
19
+ - packages
20
+ - react-intlayer
21
+ - useI18n
22
+ ---
23
+
24
+ # Интеграция с React: Документация по хуку `useI18n`
25
+
26
+ В этом разделе представлено подробное руководство по использованию хука `useI18n` в приложениях React, что позволяет эффективно локализовать контент.
27
+
28
+ ## Импортирование `useI18n` в React
29
+
30
+ Хук `useI18n` можно импортировать и интегрировать в приложения React в зависимости от контекста следующим образом:
31
+
32
+ - **Клиентские компоненты:**
33
+
34
+ ```typescript codeFormat="typescript"
35
+ import { useI18n } from "react-intlayer"; // Используйте в клиентских React-компонентах
36
+ ```
37
+
38
+ ```javascript codeFormat="esm"
39
+ import { useI18n } from "react-intlayer"; // Используйте в клиентских React-компонентах
40
+ ```
41
+
42
+ ```javascript codeFormat="commonjs"
43
+ const { useI18n } = require("react-intlayer"); // Используйте в клиентских React-компонентах
44
+ ```
45
+
46
+ - **Серверные компоненты:**
47
+
48
+ ```typescript codeFormat="commonjs"
49
+ import { useI18n } from "react-intlayer/server"; // Используйте в серверных React-компонентах
50
+ ```
51
+
52
+ ```javascript codeFormat="esm"
53
+ import { useI18n } from "react-intlayer/server"; // Используйте в серверных React-компонентах
54
+ ```
55
+
56
+ ```javascript codeFormat="commonjs"
57
+ const { useI18n } = require("react-intlayer/server"); // Используйте в серверных React-компонентах
58
+ ```
59
+
60
+ ## Параметры
61
+
62
+ Этот хук принимает два параметра:
63
+
64
+ 1. **`namespace`**: Пространство имён словаря для ограничения области ключей перевода.
65
+ 2. **`locale`** (необязательно): Желаемая локаль. Если не указана, по умолчанию будет использоваться локаль из контекста.
66
+
67
+ ## Словарь
68
+
69
+ Все ключи словаря должны быть объявлены в файлах декларации контента для повышения безопасности типов и предотвращения ошибок. [Инструкции по настройке можно найти здесь](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md).
70
+
71
+ ## Примеры использования в React
72
+
73
+ Примеры использования хука `useI18n` в 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> {/* Отобразить заголовок */}
152
+ <p>{t("description")}</p> {/* Отобразить описание */}
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> {/* Отобразить заголовок */}
167
+ <p>{t("description")}</p> {/* Отобразить описание */}
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> {/* Отобразить заголовок */}
182
+ <p>{t("description")}</p> {/* Отобразить описание */}
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> {/* Отобразить заголовок */}
197
+ <p>{t("description")}</p> {/* Отобразить описание */}
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> {/* Отобразить заголовок */}
212
+ <p>{t("description")}</p> {/* Отобразить описание */}
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
+ ## Обработка атрибутов
234
+
235
+ При локализации атрибутов обращайтесь к значениям перевода соответствующим образом:
236
+
237
+ ```jsx
238
+ <!-- Для атрибутов доступности (например, aria-label) используйте .value, так как требуются чистые строки -->
239
+ <button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
240
+ ```
241
+
242
+ ## Дополнительные ресурсы
243
+
244
+ - **Визуальный редактор Intlayer**: Для более интуитивного управления контентом обратитесь к документации по визуальному редактору [здесь](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md).
245
+
246
+ Этот раздел специально охватывает интеграцию хука `useI18n` в React-приложениях, упрощая процесс локализации и обеспечивая согласованность контента между различными локалями.
247
+
248
+ ## История документации
249
+
250
+ - 6.0.0 - 2025-06-29: Первоначальное написание документации по хуку `useI18n`