@intlayer/docs 7.5.12 → 7.5.13

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 (197) hide show
  1. package/blog/uk/compiler_vs_declarative_i18n.md +224 -0
  2. package/blog/uk/i18n_using_next-i18next.md +1086 -0
  3. package/blog/uk/i18n_using_next-intl.md +760 -0
  4. package/blog/uk/index.md +69 -0
  5. package/blog/uk/internationalization_and_SEO.md +273 -0
  6. package/blog/uk/intlayer_with_i18next.md +211 -0
  7. package/blog/uk/intlayer_with_next-i18next.md +202 -0
  8. package/blog/uk/intlayer_with_next-intl.md +203 -0
  9. package/blog/uk/intlayer_with_react-i18next.md +200 -0
  10. package/blog/uk/intlayer_with_react-intl.md +202 -0
  11. package/blog/uk/intlayer_with_vue-i18n.md +206 -0
  12. package/blog/uk/l10n_platform_alternative/Lokalise.md +80 -0
  13. package/blog/uk/l10n_platform_alternative/crowdin.md +80 -0
  14. package/blog/uk/l10n_platform_alternative/phrase.md +78 -0
  15. package/blog/uk/list_i18n_technologies/CMS/drupal.md +143 -0
  16. package/blog/uk/list_i18n_technologies/CMS/wix.md +167 -0
  17. package/blog/uk/list_i18n_technologies/CMS/wordpress.md +189 -0
  18. package/blog/uk/list_i18n_technologies/frameworks/angular.md +125 -0
  19. package/blog/uk/list_i18n_technologies/frameworks/flutter.md +128 -0
  20. package/blog/uk/list_i18n_technologies/frameworks/react-native.md +217 -0
  21. package/blog/uk/list_i18n_technologies/frameworks/react.md +155 -0
  22. package/blog/uk/list_i18n_technologies/frameworks/svelte.md +145 -0
  23. package/blog/uk/list_i18n_technologies/frameworks/vue.md +144 -0
  24. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1499 -0
  25. package/blog/uk/nextjs-multilingual-seo-comparison.md +360 -0
  26. package/blog/uk/rag_powered_documentation_assistant.md +288 -0
  27. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  28. package/blog/uk/vue-i18n_vs_intlayer.md +279 -0
  29. package/blog/uk/what_is_internationalization.md +167 -0
  30. package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
  31. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  32. package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
  33. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  34. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  35. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  36. package/docs/ar/configuration.md +6 -1
  37. package/docs/ar/dictionary/content_file.md +6 -1
  38. package/docs/de/configuration.md +6 -1
  39. package/docs/de/dictionary/content_file.md +6 -1
  40. package/docs/en/configuration.md +6 -1
  41. package/docs/en/dictionary/content_file.md +6 -1
  42. package/docs/en-GB/configuration.md +6 -1
  43. package/docs/en-GB/dictionary/content_file.md +3 -1
  44. package/docs/es/configuration.md +6 -1
  45. package/docs/es/dictionary/content_file.md +6 -1
  46. package/docs/fr/configuration.md +6 -1
  47. package/docs/fr/dictionary/content_file.md +3 -1
  48. package/docs/hi/configuration.md +6 -1
  49. package/docs/hi/dictionary/content_file.md +3 -1
  50. package/docs/id/configuration.md +6 -1
  51. package/docs/id/dictionary/content_file.md +3 -1
  52. package/docs/it/configuration.md +6 -1
  53. package/docs/it/dictionary/content_file.md +3 -1
  54. package/docs/ja/configuration.md +6 -1
  55. package/docs/ja/dictionary/content_file.md +3 -1
  56. package/docs/ko/configuration.md +6 -1
  57. package/docs/ko/dictionary/content_file.md +3 -1
  58. package/docs/pl/configuration.md +3 -1
  59. package/docs/pl/dictionary/content_file.md +3 -1
  60. package/docs/pt/configuration.md +6 -1
  61. package/docs/pt/dictionary/content_file.md +3 -1
  62. package/docs/ru/configuration.md +6 -1
  63. package/docs/ru/dictionary/content_file.md +6 -1
  64. package/docs/tr/configuration.md +6 -1
  65. package/docs/tr/dictionary/content_file.md +3 -1
  66. package/docs/uk/CI_CD.md +198 -0
  67. package/docs/uk/autoFill.md +307 -0
  68. package/docs/uk/bundle_optimization.md +185 -0
  69. package/docs/uk/cli/build.md +64 -0
  70. package/docs/uk/cli/ci.md +137 -0
  71. package/docs/uk/cli/configuration.md +63 -0
  72. package/docs/uk/cli/debug.md +46 -0
  73. package/docs/uk/cli/doc-review.md +43 -0
  74. package/docs/uk/cli/doc-translate.md +132 -0
  75. package/docs/uk/cli/editor.md +28 -0
  76. package/docs/uk/cli/fill.md +130 -0
  77. package/docs/uk/cli/index.md +190 -0
  78. package/docs/uk/cli/init.md +84 -0
  79. package/docs/uk/cli/list.md +90 -0
  80. package/docs/uk/cli/list_projects.md +128 -0
  81. package/docs/uk/cli/live.md +41 -0
  82. package/docs/uk/cli/login.md +157 -0
  83. package/docs/uk/cli/pull.md +78 -0
  84. package/docs/uk/cli/push.md +98 -0
  85. package/docs/uk/cli/sdk.md +71 -0
  86. package/docs/uk/cli/test.md +76 -0
  87. package/docs/uk/cli/transform.md +65 -0
  88. package/docs/uk/cli/version.md +24 -0
  89. package/docs/uk/cli/watch.md +37 -0
  90. package/docs/uk/configuration.md +742 -0
  91. package/docs/uk/dictionary/condition.md +237 -0
  92. package/docs/uk/dictionary/content_file.md +1134 -0
  93. package/docs/uk/dictionary/enumeration.md +245 -0
  94. package/docs/uk/dictionary/file.md +232 -0
  95. package/docs/uk/dictionary/function_fetching.md +212 -0
  96. package/docs/uk/dictionary/gender.md +273 -0
  97. package/docs/uk/dictionary/insertion.md +187 -0
  98. package/docs/uk/dictionary/markdown.md +383 -0
  99. package/docs/uk/dictionary/nesting.md +273 -0
  100. package/docs/uk/dictionary/translation.md +332 -0
  101. package/docs/uk/formatters.md +595 -0
  102. package/docs/uk/how_works_intlayer.md +256 -0
  103. package/docs/uk/index.md +175 -0
  104. package/docs/uk/interest_of_intlayer.md +297 -0
  105. package/docs/uk/intlayer_CMS.md +569 -0
  106. package/docs/uk/intlayer_visual_editor.md +292 -0
  107. package/docs/uk/intlayer_with_angular.md +710 -0
  108. package/docs/uk/intlayer_with_astro.md +256 -0
  109. package/docs/uk/intlayer_with_create_react_app.md +1258 -0
  110. package/docs/uk/intlayer_with_express.md +429 -0
  111. package/docs/uk/intlayer_with_fastify.md +446 -0
  112. package/docs/uk/intlayer_with_lynx+react.md +548 -0
  113. package/docs/uk/intlayer_with_nestjs.md +283 -0
  114. package/docs/uk/intlayer_with_next-i18next.md +640 -0
  115. package/docs/uk/intlayer_with_next-intl.md +456 -0
  116. package/docs/uk/intlayer_with_nextjs_page_router.md +1541 -0
  117. package/docs/uk/intlayer_with_nuxt.md +711 -0
  118. package/docs/uk/intlayer_with_react_router_v7.md +600 -0
  119. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +669 -0
  120. package/docs/uk/intlayer_with_svelte_kit.md +579 -0
  121. package/docs/uk/intlayer_with_tanstack.md +818 -0
  122. package/docs/uk/intlayer_with_vite+preact.md +1748 -0
  123. package/docs/uk/intlayer_with_vite+react.md +1449 -0
  124. package/docs/uk/intlayer_with_vite+solid.md +302 -0
  125. package/docs/uk/intlayer_with_vite+svelte.md +520 -0
  126. package/docs/uk/intlayer_with_vite+vue.md +1113 -0
  127. package/docs/uk/introduction.md +222 -0
  128. package/docs/uk/locale_mapper.md +242 -0
  129. package/docs/uk/mcp_server.md +211 -0
  130. package/docs/uk/packages/express-intlayer/t.md +465 -0
  131. package/docs/uk/packages/intlayer/getEnumeration.md +159 -0
  132. package/docs/uk/packages/intlayer/getHTMLTextDir.md +121 -0
  133. package/docs/uk/packages/intlayer/getLocaleLang.md +81 -0
  134. package/docs/uk/packages/intlayer/getLocaleName.md +135 -0
  135. package/docs/uk/packages/intlayer/getLocalizedUrl.md +338 -0
  136. package/docs/uk/packages/intlayer/getMultilingualUrls.md +359 -0
  137. package/docs/uk/packages/intlayer/getPathWithoutLocale.md +75 -0
  138. package/docs/uk/packages/intlayer/getPrefix.md +213 -0
  139. package/docs/uk/packages/intlayer/getTranslation.md +190 -0
  140. package/docs/uk/packages/intlayer/getTranslationContent.md +189 -0
  141. package/docs/uk/packages/next-intlayer/t.md +365 -0
  142. package/docs/uk/packages/next-intlayer/useDictionary.md +276 -0
  143. package/docs/uk/packages/next-intlayer/useIntlayer.md +263 -0
  144. package/docs/uk/packages/next-intlayer/useLocale.md +166 -0
  145. package/docs/uk/packages/react-intlayer/t.md +311 -0
  146. package/docs/uk/packages/react-intlayer/useDictionary.md +295 -0
  147. package/docs/uk/packages/react-intlayer/useI18n.md +250 -0
  148. package/docs/uk/packages/react-intlayer/useIntlayer.md +251 -0
  149. package/docs/uk/packages/react-intlayer/useLocale.md +210 -0
  150. package/docs/uk/per_locale_file.md +345 -0
  151. package/docs/uk/plugins/sync-json.md +398 -0
  152. package/docs/uk/readme.md +265 -0
  153. package/docs/uk/releases/v6.md +305 -0
  154. package/docs/uk/releases/v7.md +624 -0
  155. package/docs/uk/roadmap.md +346 -0
  156. package/docs/uk/testing.md +204 -0
  157. package/docs/vi/configuration.md +6 -1
  158. package/docs/vi/dictionary/content_file.md +6 -1
  159. package/docs/zh/configuration.md +6 -1
  160. package/docs/zh/dictionary/content_file.md +6 -1
  161. package/frequent_questions/ar/error-vite-env-only.md +77 -0
  162. package/frequent_questions/de/error-vite-env-only.md +77 -0
  163. package/frequent_questions/en/error-vite-env-only.md +77 -0
  164. package/frequent_questions/en-GB/error-vite-env-only.md +77 -0
  165. package/frequent_questions/es/error-vite-env-only.md +76 -0
  166. package/frequent_questions/fr/error-vite-env-only.md +77 -0
  167. package/frequent_questions/hi/error-vite-env-only.md +77 -0
  168. package/frequent_questions/id/error-vite-env-only.md +77 -0
  169. package/frequent_questions/it/error-vite-env-only.md +77 -0
  170. package/frequent_questions/ja/error-vite-env-only.md +77 -0
  171. package/frequent_questions/ko/error-vite-env-only.md +77 -0
  172. package/frequent_questions/pl/error-vite-env-only.md +77 -0
  173. package/frequent_questions/pt/error-vite-env-only.md +77 -0
  174. package/frequent_questions/ru/error-vite-env-only.md +77 -0
  175. package/frequent_questions/tr/error-vite-env-only.md +77 -0
  176. package/frequent_questions/uk/SSR_Next_no_[locale].md +104 -0
  177. package/frequent_questions/uk/array_as_content_declaration.md +72 -0
  178. package/frequent_questions/uk/build_dictionaries.md +58 -0
  179. package/frequent_questions/uk/build_error_CI_CD.md +74 -0
  180. package/frequent_questions/uk/bun_set_up.md +53 -0
  181. package/frequent_questions/uk/customized_locale_list.md +64 -0
  182. package/frequent_questions/uk/domain_routing.md +113 -0
  183. package/frequent_questions/uk/error-vite-env-only.md +77 -0
  184. package/frequent_questions/uk/esbuild_error.md +29 -0
  185. package/frequent_questions/uk/get_locale_cookie.md +142 -0
  186. package/frequent_questions/uk/intlayer_command_undefined.md +155 -0
  187. package/frequent_questions/uk/locale_incorect_in_url.md +73 -0
  188. package/frequent_questions/uk/package_version_error.md +181 -0
  189. package/frequent_questions/uk/static_rendering.md +44 -0
  190. package/frequent_questions/uk/translated_path_url.md +55 -0
  191. package/frequent_questions/uk/unknown_command.md +97 -0
  192. package/frequent_questions/vi/error-vite-env-only.md +77 -0
  193. package/frequent_questions/zh/error-vite-env-only.md +77 -0
  194. package/legal/uk/privacy_notice.md +83 -0
  195. package/legal/uk/terms_of_service.md +55 -0
  196. package/package.json +6 -6
  197. package/src/generated/frequentQuestions.entry.ts +20 -0
@@ -0,0 +1,273 @@
1
+ ---
2
+ createdAt: 2025-07-27
3
+ updatedAt: 2025-07-27
4
+ title: Гендерно-орієнтований контент
5
+ description: Дізнайтеся, як використовувати гендерно-орієнтований контент в Intlayer для динамічного відображення вмісту залежно від гендеру. Слідуйте цій документації, щоб ефективно реалізувати гендерно-специфічний контент у вашому проєкті.
6
+ keywords:
7
+ - Гендерно-орієнтований контент
8
+ - Динамічний рендеринг
9
+ - Документація
10
+ - Intlayer
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - doc
16
+ - concept
17
+ - content
18
+ - gender
19
+ history:
20
+ - version: 5.7.2
21
+ date: 2025-07-27
22
+ changes: Додано підтримку гендерно-залежного контенту
23
+ ---
24
+
25
+ # Гендерно-орієнтований контент / Гендер в Intlayer
26
+
27
+ ## Як працює гендерна логіка
28
+
29
+ У Intlayer контент, залежний від гендера, реалізується за допомогою функції `gender`, яка зіставляє конкретні значення гендера ('male', 'female') з відповідним вмістом. Такий підхід дозволяє динамічно обирати контент залежно від заданого гендера. При інтеграції з React Intlayer або Next Intlayer відповідний вміст автоматично вибирається відповідно до гендера, переданого під час виконання.
30
+
31
+ ## Налаштування контенту, залежного від гендера
32
+
33
+ Щоб налаштувати контент залежно від гендера у вашому проекті Intlayer, створіть модуль контенту, який містить ваші визначення для конкретних гендерів. Нижче наведені приклади в різних форматах.
34
+
35
+ ```typescript fileName="**/*.content.ts" contentDeclarationFormat="typescript"
36
+ import { gender, type Dictionary } from "intlayer";
37
+
38
+ const myGenderContent = {
39
+ key: "my_key",
40
+ content: {
41
+ myGender: gender({
42
+ male: "мій контент для чоловіків",
43
+ female: "мій контент для жінок",
44
+ fallback: "мій контент, коли стать не вказана", // Необов'язково
45
+ }),
46
+ },
47
+ } satisfies Dictionary;
48
+
49
+ export default myGenderContent;
50
+ ```
51
+
52
+ ```javascript fileName="**/*.content.mjs" contentDeclarationFormat="esm"
53
+ import { gender } from "intlayer";
54
+
55
+ /** @type {import('intlayer').Dictionary} */
56
+ const myGenderContent = {
57
+ key: "my_key",
58
+ content: {
59
+ myGender: gender({
60
+ male: "мій контент для чоловіків",
61
+ female: "мій контент для жінок",
62
+ fallback: "мій контент, коли стать не вказана", // Необов'язково
63
+ }),
64
+ },
65
+ };
66
+
67
+ export default myGenderContent;
68
+ ```
69
+
70
+ ```javascript fileName="**/*.content.cjs" contentDeclarationFormat="commonjs"
71
+ const { gender } = require("intlayer");
72
+
73
+ /** @type {import('intlayer').Dictionary} */
74
+ const myGenderContent = {
75
+ key: "my_key",
76
+ content: {
77
+ myGender: gender({
78
+ male: "мій контент для чоловіків",
79
+ female: "мій контент для жінок",
80
+ fallback: "мій контент, коли стать не вказана", // Необов'язково
81
+ }),
82
+ },
83
+ };
84
+
85
+ module.exports = myGenderContent;
86
+ ```
87
+
88
+ ```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
89
+ {
90
+ "$schema": "https://intlayer.org/schema.json",
91
+ "key": "my_key",
92
+ "content": {
93
+ "myGender": {
94
+ "nodeType": "gender",
95
+ "gender": {
96
+ "male": "мій контент для чоловіків",
97
+ "female": "мій контент для жінок",
98
+ "fallback": "мій контент, коли стать не вказана", // Необов'язково
99
+ },
100
+ },
101
+ },
102
+ }
103
+ ```
104
+
105
+ > Якщо не вказано fallback, останній оголошений ключ буде використано як fallback, якщо стать не вказана або не відповідає жодній визначеній статі.
106
+
107
+ ## Використання контенту за гендером у React Intlayer
108
+
109
+ Щоб використовувати контент, залежний від гендеру, у React-компоненті, імпортуйте й застосуйте хук `useIntlayer` з пакету `react-intlayer`. Цей хук отримує контент за вказаним ключем і дозволяє передати гендер, щоб обрати відповідний варіант виводу.
110
+
111
+ ```tsx fileName="**/*.tsx" codeFormat="typescript"
112
+ import type { FC } from "react";
113
+ import { useIntlayer } from "react-intlayer";
114
+
115
+ const GenderComponent: FC = () => {
116
+ const { myGender } = useIntlayer("my_key");
117
+
118
+ return (
119
+ <div>
120
+ <p>
121
+ {
122
+ /* Вивід: мій контент для чоловіків */
123
+ myGender("male")
124
+ }
125
+ </p>
126
+ <p>
127
+ {
128
+ /* Вивід: мій контент для жіночої аудиторії */
129
+ myGender("female")
130
+ }
131
+ </p>
132
+ <p>
133
+ {
134
+ /* Вивід: мій контент для чоловічої аудиторії */
135
+ myGender("m")
136
+ }
137
+ </p>
138
+ <p>
139
+ {
140
+ /* Вивід: мій контент для жіночої аудиторії */
141
+ myGender("f")
142
+ }
143
+ </p>
144
+ <p>
145
+ {
146
+ /* Вивід: мій контент, коли стать не вказана */
147
+ myGender("")
148
+ }
149
+ </p>
150
+ <p>
151
+ {
152
+ /* Вивід: мій контент, коли стать не вказана */
153
+ myGender(undefined)
154
+ }
155
+ </p>
156
+ </div>
157
+ );
158
+ };
159
+
160
+ export default GenderComponent;
161
+ ```
162
+
163
+ ```javascript fileName="**/*.mjx" codeFormat="esm"
164
+ import { useIntlayer } from "react-intlayer";
165
+
166
+ const GenderComponent = () => {
167
+ const { myGender } = useIntlayer("my_key");
168
+
169
+ return (
170
+ <div>
171
+ <p>
172
+ {
173
+ /* Вивід: мій контент для чоловіків */
174
+ myGender("male")
175
+ }
176
+ </p>
177
+ <p>
178
+ {
179
+ /* Вивід: мій контент для жінок */
180
+ myGender("female")
181
+ }
182
+ </p>
183
+ <p>
184
+ {
185
+ /* Вивід: мій контент для чоловіків */
186
+ myGender("m")
187
+ }
188
+ </p>
189
+ <p>
190
+ {
191
+ /* Вивід: мій контент для жінок */
192
+ myGender("f")
193
+ }
194
+ </p>
195
+ <p>
196
+ {
197
+ /* Вивід: мій контент, коли стать не вказана */
198
+ myGender("")
199
+ }
200
+ </p>
201
+ <p>
202
+ {
203
+ /* Вивід: мій контент, коли стать не вказана */
204
+ myGender(undefined)
205
+ }
206
+ </p>
207
+ </div>
208
+ );
209
+ };
210
+
211
+ export default GenderComponent;
212
+ ```
213
+
214
+ ```javascript fileName="**/*.cjs" codeFormat="commonjs"
215
+ const { useIntlayer } = require("react-intlayer");
216
+
217
+ const GenderComponent = () => {
218
+ const { myGender } = useIntlayer("my_key");
219
+
220
+ return (
221
+ <div>
222
+ <p>
223
+ {
224
+ /* Вивід: мій контент для чоловічих користувачів */
225
+ myGender("male")
226
+ }
227
+ </p>
228
+ <p>
229
+ {
230
+ /* Вивід: мій контент для жіночих користувачів */
231
+ myGender("female")
232
+ }
233
+ </p>
234
+ <p>
235
+ {
236
+ /* Вивід: мій контент для чоловічих користувачів */
237
+ myGender("m")
238
+ }
239
+ </p>
240
+ <p>
241
+ {
242
+ /* Вивід: мій контент для жіночих користувачів */
243
+ myGender("f")
244
+ }
245
+ </p>
246
+ <p>
247
+ {
248
+ /* Вивід: мій контент, коли gender не вказано */
249
+ myGender("")
250
+ }
251
+ </p>
252
+ <p>
253
+ {
254
+ /* Вивід: мій контент, коли gender не вказано */
255
+ myGender(undefined)
256
+ }
257
+ </p>
258
+ </div>
259
+ );
260
+ };
261
+
262
+ module.exports = GenderComponent;
263
+ ```
264
+
265
+ ## Додаткові ресурси
266
+
267
+ Для детальнішої інформації щодо налаштування та використання зверніться до таких ресурсів:
268
+
269
+ - [Документація Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md)
270
+ - [Документація React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_create_react_app.md)
271
+ - [Документація Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_nextjs_15.md)
272
+
273
+ Ці ресурси надають додаткові відомості щодо налаштування та використання Intlayer у різних середовищах та фреймворках.
@@ -0,0 +1,187 @@
1
+ ---
2
+ createdAt: 2025-03-13
3
+ updatedAt: 2025-06-29
4
+ title: Вставлення
5
+ description: Дізнайтеся, як оголошувати та використовувати заповнювачі (placeholders) для вставлення вмісту. Ця документація проведе вас крок за кроком по процесу динамічного вставлення значень у заздалегідь визначені структури вмісту.
6
+ keywords:
7
+ - Вставлення
8
+ - Динамічний вміст
9
+ - Заповнювачі
10
+ - Intlayer
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - doc
16
+ - concept
17
+ - content
18
+ - insertion
19
+ history:
20
+ - version: 5.5.10
21
+ date: 2025-06-29
22
+ changes: Ініціалізація історії
23
+ ---
24
+
25
+ # Вміст вставлень / Вставлення в Intlayer
26
+
27
+ ## Як працює вставлення
28
+
29
+ В Intlayer вставки контенту реалізуються за допомогою функції `insertion`, яка виявляє поля-плейсхолдери в рядку (наприклад `{{name}}` або `{{age}}`), що можуть бути динамічно замінені під час виконання. Такий підхід дозволяє створювати гнучкі, шаблоноподібні рядки, де конкретні частини вмісту визначаються даними, переданими з вашого застосунку.
30
+
31
+ При інтеграції з React Intlayer або Next Intlayer достатньо передати об'єкт даних, що містить значення для кожного плейсхолдера, і Intlayer автоматично відрендерить вміст із заміненими плейсхолдерами.
32
+
33
+ ## Налаштування Insertion-контенту
34
+
35
+ Щоб налаштувати insertion-контент у вашому проєкті Intlayer, створіть модуль контенту, який містить визначення вставок. Нижче наведено приклади в різних форматах.
36
+
37
+ ```typescript fileName="**/*.content.ts" contentDeclarationFormat="typescript"
38
+ import { insert, type Dictionary } from "intlayer";
39
+
40
+ const myInsertionContent = {
41
+ key: "my_key",
42
+ content: {
43
+ myInsertion: insert("Привіт, мене звати {{name}} і мені {{age}} років!"),
44
+ },
45
+ } satisfies Dictionary;
46
+
47
+ export default myInsertionContent;
48
+ ```
49
+
50
+ ```javascript fileName="**/*.content.mjs" contentDeclarationFormat="esm"
51
+ import { insert } from "intlayer";
52
+
53
+ /** @type {import('intlayer').Dictionary} */
54
+ const myInsertionContent = {
55
+ key: "my_key",
56
+ content: {
57
+ myInsertion: insert("Привіт, мене звати {{name}} і мені {{age}} років!"),
58
+ },
59
+ };
60
+
61
+ export default myInsertionContent;
62
+ ```
63
+
64
+ ```javascript fileName="**/*.content.cjs" contentDeclarationFormat="commonjs"
65
+ const { insert } = require("intlayer");
66
+
67
+ /** @type {import('intlayer').Dictionary} */
68
+ const myInsertionContent = {
69
+ key: "my_key",
70
+ content: {
71
+ myInsertion: insert(
72
+ "Hello, my name is {{name}} and I am {{age}} years old!"
73
+ ),
74
+ },
75
+ };
76
+
77
+ module.exports = myInsertionContent;
78
+ ```
79
+
80
+ ```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
81
+ {
82
+ "$schema": "https://intlayer.org/schema.json",
83
+ "key": "my_key",
84
+ "content": {
85
+ "myInsertion": {
86
+ "nodeType": "insertion",
87
+ "insertion": "Hello, my name is {{name}} and I am {{age}} years old!",
88
+ },
89
+ },
90
+ }
91
+ ```
92
+
93
+ ## Використання вставного контенту з React Intlayer
94
+
95
+ Щоб використовувати insertion контент у React-компоненті, імпортуйте та використайте хук `useIntlayer` з пакету `react-intlayer`. Цей хук отримує контент для вказаного ключа і дозволяє передати об'єкт, який зіставляє кожен заповнювач (placeholder) у вашому контенті зі значенням, яке ви хочете відобразити.
96
+
97
+ ```tsx fileName="**/*.tsx" codeFormat="typescript"
98
+ import type { FC } from "react";
99
+ import { useIntlayer } from "react-intlayer";
100
+
101
+ const InsertionComponent: FC = () => {
102
+ const { myInsertion } = useIntlayer("my_key");
103
+
104
+ return (
105
+ <div>
106
+ <p>
107
+ {
108
+ /* Виведе: "Hello, my name is John and I am 30 years old!" */
109
+ myInsertion({ name: "John", age: "30" })
110
+ }
111
+ </p>
112
+ <p>
113
+ {
114
+ /* Ви можете повторно використовувати ту саму вставку з різними значеннями */
115
+ myInsertion({ name: "Alice", age: "25" })
116
+ }
117
+ </p>
118
+ </div>
119
+ );
120
+ };
121
+
122
+ export default InsertionComponent;
123
+ ```
124
+
125
+ ```javascript fileName="**/*.mjx" codeFormat="esm"
126
+ import { useIntlayer } from "react-intlayer";
127
+
128
+ const InsertionComponent = () => {
129
+ const { myInsertion } = useIntlayer("my_key");
130
+
131
+ return (
132
+ <div>
133
+ <p>
134
+ {
135
+ /* Вивід: "Привіт, мене звати John і мені 30 років!" */
136
+ myInsertion({ name: "John", age: "30" })
137
+ }
138
+ </p>
139
+ <p>
140
+ {
141
+ /* Ви можете повторно використовувати ту саму вставку з іншими значеннями */
142
+ myInsertion({ name: "Alice", age: "25" })
143
+ }
144
+ </p>
145
+ </div>
146
+ );
147
+ };
148
+
149
+ export default InsertionComponent;
150
+ ```
151
+
152
+ ```javascript fileName="**/*.cjs" codeFormat="commonjs"
153
+ const { useIntlayer } = require("react-intlayer");
154
+
155
+ const InsertionComponent = () => {
156
+ const { myInsertion } = useIntlayer("my_key");
157
+
158
+ return (
159
+ <div>
160
+ <p>
161
+ {
162
+ /* Вивід: "Привіт, мене звуть John і мені 30 років!" */
163
+ myInsertion({ name: "John", age: "30" })
164
+ }
165
+ </p>
166
+ <p>
167
+ {
168
+ /* Ви можете повторно використовувати той самий insertion з різними значеннями */
169
+ myInsertion({ name: "Alice", age: "25" })
170
+ }
171
+ </p>
172
+ </div>
173
+ );
174
+ };
175
+
176
+ module.exports = InsertionComponent;
177
+ ```
178
+
179
+ ## Додаткові ресурси
180
+
181
+ Для більш детальної інформації щодо конфігурації та використання, зверніться до наступних ресурсів:
182
+
183
+ - [Документація Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md)
184
+ - [Документація Intlayer для React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_create_react_app.md)
185
+ - [Документація Intlayer для Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_nextjs_15.md)
186
+
187
+ Ці ресурси надають додаткову інформацію щодо налаштування та використання Intlayer у різних середовищах та фреймворках.