@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,202 @@
1
+ ---
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-11-06
4
+ title: Intlayer та next-i18next
5
+ description: Інтегруйте Intlayer з next-i18next для комплексного рішення інтернаціоналізації в Next.js
6
+ keywords:
7
+ - i18next
8
+ - next-i18next
9
+ - Intlayer
10
+ - Інтернаціоналізація
11
+ - Блог
12
+ - Next.js
13
+ - JavaScript
14
+ - React
15
+ slugs:
16
+ - blog
17
+ - intlayer-with-next-i18next
18
+ youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
19
+ history:
20
+ - version: 7.0.7
21
+ date: 2025-11-06
22
+ changes: Додано документацію про підтримку AI-провайдерів
23
+ - version: 7.0.6
24
+ date: 2025-11-01
25
+ changes: Додано плагін loadJSON
26
+ - version: 7.0.0
27
+ date: 2025-10-29
28
+ changes: Заміна на плагін syncJSON та повний перепис
29
+ ---
30
+
31
+ # Як автоматизувати JSON-переклади next-i18next за допомогою Intlayer
32
+
33
+ <iframe title="Як автоматизувати JSON-переклади next-i18next за допомогою Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
34
+
35
+ ## Зміст
36
+
37
+ <TOC/>
38
+
39
+ ## Що таке Intlayer?
40
+
41
+ **Intlayer** — інноваційна open-source бібліотека для інтернаціоналізації, створена для усунення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у додатках Next.js.
42
+
43
+ Перегляньте конкретне порівняння з next-intl у нашому дописі в блозі [next-i18next vs. next-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md).
44
+
45
+ ## Чому поєднувати Intlayer з next-i18next?
46
+
47
+ Хоча **Intlayer** є відмінним самостійним i18n-рішенням (див. наш [гайд по інтеграції з Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_nextjs_16.md)), ви можете захотіти поєднати його з next-i18next з кількох причин:
48
+
49
+ Intlayer пропонує широкий набір **розширених можливостей**, що виходять за рамки традиційних i18n-інструментів. Воно допомагає вам:
50
+
51
+ - **Автоматично виявляти та заповнювати відсутні переклади**, щоб спростити локалізацію.
52
+ - **Тестувати та валідувати ваші переклади** безпосередньо у ваших workflow для розробки або CI/CD.
53
+ - **Керуйте контентом на рівні компонентів**, що забезпечує чисту, масштабовану та підтримувану структуру в усьому вашому додатку.
54
+ - **Виносьте контент зовні**, роблячи його легко редагованим для всієї вашої команди (розробників, перекладачів та контент-менеджерів).
55
+
56
+ Однак **i18next** залишається відмінним та широко застосовуваним рішенням для i18n завдяки своїй **зрілій екосистемі**, **широкій підтримці спільноти** та **великій сумісності з плагінами**.
57
+
58
+ Поєднавши **Intlayer** з **i18next**, ви отримуєте найкраще з обох світів — стабільність та зрілість екосистеми i18next разом із сучасним керуванням контентом, автоматизацією та покращеним досвідом розробника від Intlayer.
59
+
60
+ Цей посібник пояснює, як використовувати Intlayer як **адаптер для i18next**, що дозволяє вам:
61
+
62
+ - Поступово мігрувати з i18next на Intlayer.
63
+ - Зберігайте наявні плагіни та робочі процеси i18next.
64
+ - Автоматизуйте переклади JSON через CLI або CI/CD конвеєри.
65
+ - Тестуйте, синхронізуйте та керуйте перекладами ефективніше.
66
+
67
+ ---
68
+
69
+ ## Покроковий посібник із налаштування Intlayer з next-i18next
70
+
71
+ ### Крок 1: Встановлення залежностей
72
+
73
+ Встановіть необхідні пакети, використовуючи ваш улюблений пакетний менеджер:
74
+
75
+ ```bash packageManager="npm"
76
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
77
+ npx intlayer init
78
+ ```
79
+
80
+ ```bash packageManager="pnpm"
81
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
82
+ pnpm intlayer init
83
+ ```
84
+
85
+ ```bash packageManager="yarn"
86
+ yarn add intlayer @intlayer/sync-json-plugin --dev
87
+ yarn intlayer init
88
+ ```
89
+
90
+ ```bash packageManager="bun"
91
+ bun add intlayer @intlayer/sync-json-plugin --dev
92
+ bunx intlayer init
93
+ ```
94
+
95
+ **Пояснення пакетів:**
96
+
97
+ - **intlayer**: Основна бібліотека для декларації та управління контентом
98
+ - **@intlayer/sync-json-plugin**: Плагін для синхронізації декларацій контенту Intlayer у формат JSON для i18next
99
+
100
+ ### Крок 2: Реалізація плагіна Intlayer для обгортання JSON
101
+
102
+ Створіть файл конфігурації Intlayer, щоб визначити підтримувані локалі:
103
+
104
+ **Якщо ви також хочете експортувати JSON-словники для i18next**, додайте плагін `syncJSON`:
105
+
106
+ ```typescript fileName="intlayer.config.ts"
107
+ import { Locales, type IntlayerConfig } from "intlayer";
108
+ import { syncJSON } from "@intlayer/sync-json-plugin";
109
+
110
+ const config: IntlayerConfig = {
111
+ internationalization: {
112
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
113
+ defaultLocale: Locales.ENGLISH,
114
+ },
115
+ plugins: [
116
+ syncJSON({
117
+ source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
118
+ }),
119
+ ],
120
+ };
121
+
122
+ export default config;
123
+ ```
124
+
125
+ Плагін `syncJSON` автоматично обгортає JSON. Він читає та записує JSON-файли без зміни архітектури контенту.
126
+
127
+ Якщо ви хочете, щоб ці JSON-файли співіснували з файлами декларації контенту Intlayer (`.content` файли), Intlayer працюватиме таким чином:
128
+
129
+ 1. завантажити як JSON-файли, так і файли декларації контенту й перетворити їх на словник Intlayer.
130
+ 2. якщо виникають конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Результат залежить від пріоритету плагінів та пріоритету файлу декларації контенту — обидва параметри конфігуровані.
131
+
132
+ Якщо зміни вносяться за допомогою CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
133
+
134
+ Щоб дізнатися більше про плагін `syncJSON`, див. [документацію плагіна syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/plugins/sync-json.md).
135
+
136
+ ### Крок 4: Налаштування AI-провайдера
137
+
138
+ Intlayer відкриває набір розширених автоматизацій та зручних для розробника функцій для вашого робочого процесу i18next.
139
+
140
+ - **Автоматичне виявлення та заповнення відсутніх перекладів**: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі й перекладає лише їх, тож 99% вашого JSON залишається незмінним.
141
+ - **Порційний (chunked) переклад для великих JSON-файлів**: Коли ваші файли перекладу дуже великі, Intlayer автоматично розбиває обробку на керовані порції, перекладаючи їх незалежно, щоб уникнути лімітів API та проблем із пам'яттю.
142
+ - **Паралелізація namespace-ів**: Якщо у вас сотні namespace-ів (або файлів), Intlayer паралелізує задачі перекладу, ефективно прискорюючи ваші CI/CD або масові операції перекладу.
143
+ - **Гнучка підтримка AI-провайдерів**: Оберіть бажаного AI-провайдера (наприклад, OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте власний API-ключ і перемикайте провайдерів за потреби.
144
+ - **Стійка обробка відповідей AI**: Intlayer вміє обробляти крайові випадки, коли ваш AI-провайдер повертає текст або як рядок, або як об'єкт, навіть автоматично повторюючи запит, якщо формат непослідовний.
145
+ - **Готовий для CLI та CI/CD**: Запускайте перевірки Intlayer та автоматичне заповнення безпосередньо у ваших тестах або пайплайнах, роблячи процес локалізації надійним та автоматизованим.
146
+ - **Інтегрується поверх вашої існуючої конфігурації**: Вам не потрібно змінювати ваш i18next або Next.js фундамент. Intlayer працює як додатковий плагін до вашої поточної конфігурації, надаючи всі ці переваги з мінімальною міграцією.
147
+
148
+ Ось приклад налаштування AI-провайдера:
149
+
150
+ ```ts fileName="intlayer.config.ts"
151
+ import { Locales, type IntlayerConfig } from "intlayer";
152
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
153
+
154
+ const config: IntlayerConfig = {
155
+ internationalization: {
156
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
157
+ defaultLocale: Locales.ENGLISH,
158
+ },
159
+ ai: {
160
+ provider: "openai",
161
+ model: "gpt-5-mini",
162
+ apiKey: process.env.OPENAI_API_KEY,
163
+ },
164
+ plugins: [
165
+ syncJSON({
166
+ source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
167
+ }),
168
+ ],
169
+ };
170
+
171
+ export default config;
172
+ ```
173
+
174
+ Тоді ви можете виконати наступну команду, щоб заповнити ваші переклади:
175
+
176
+ ```bash
177
+ npx intlayer fill
178
+ ```
179
+
180
+ Це заповнить ваші переклади за допомогою AI-провайдера, який ви налаштували.
181
+
182
+ > Дивіться всіх доступних AI-провайдерів у [документації Intlayer щодо конфігурації AI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md#ai-configuration).
183
+ > Дивіться всі доступні команди у [документації Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
184
+
185
+ ---
186
+
187
+ ## Конфігурація Git
188
+
189
+ Виключити згенеровані файли з контролю версій:
190
+
191
+ ```plaintext fileName=".gitignore"
192
+ # Ігнорувати файли, згенеровані Intlayer
193
+ .intlayer
194
+ ```
195
+
196
+ Ці файли автоматично генеруються під час процесу збірки й не потребують коміту у ваш репозиторій.
197
+
198
+ ### Розширення для VS Code
199
+
200
+ Для покращення досвіду розробника встановіть офіційне розширення **Intlayer для VS Code**:
201
+
202
+ [Встановити з VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
@@ -0,0 +1,203 @@
1
+ ---
2
+ createdAt: 2025-01-02
3
+ updatedAt: 2025-11-06
4
+ title: Як автоматизувати JSON-переклади next-intl за допомогою Intlayer
5
+ description: Автоматизуйте ваші JSON-переклади за допомогою Intlayer і next-intl для покращеної інтернаціоналізації у застосунках Next.js.
6
+ keywords:
7
+ - Intlayer
8
+ - next-intl
9
+ - Інтернаціоналізація
10
+ - Блог
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - blog
16
+ - intlayer-with-next-intl
17
+ youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
18
+ history:
19
+ - version: 7.0.7
20
+ date: 2025-11-06
21
+ changes: Додано документацію про підтримку AI-провайдера
22
+ - version: 7.0.6
23
+ date: 2025-11-01
24
+ changes: Додано плагін loadJSON
25
+ - version: 7.0.0
26
+ date: 2025-10-29
27
+ changes: Перехід на плагін syncJSON
28
+ ---
29
+
30
+ # Як автоматизувати JSON-переклади next-intl за допомогою Intlayer
31
+
32
+ <iframe title="Як автоматизувати JSON-переклади next-intl за допомогою Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
33
+
34
+ # Зміст
35
+
36
+ <TOC/>
37
+
38
+ ## Що таке Intlayer?
39
+
40
+ **Intlayer** — інноваційна open-source бібліотека для інтернаціоналізації, створена щоб вирішити обмеження традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у додатках Next.js.
41
+
42
+ Перегляньте конкретне порівняння з next-intl у нашому дописі в блозі [next-i18next vs. next-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md).
43
+
44
+ ## Чому поєднувати Intlayer з next-intl?
45
+
46
+ Intlayer пропонує широкий набір **розширених можливостей**, які виходять за межі традиційних інструментів i18n. Він допомагає вам:
47
+
48
+ - **Автоматично визначати й заповнювати відсутні переклади** для спрощення локалізації.
49
+ - **Тестувати й перевіряти ваші переклади** безпосередньо в робочих процесах розробки або CI/CD.
50
+ - **Керувати контентом на рівні компонентів**, що забезпечує чисту, масштабовану та зручну для підтримки структуру в додатку.
51
+ - **Виносити контент зовні**, роблячи його зручним для редагування всією командою (розробники, перекладачі та контент-менеджери).
52
+
53
+ Однак **next-intl** залишається відмінним і широко поширеним рішенням для i18n завдяки своїй **зрілій екосистемі**, **широкій підтримці спільноти** та **великий сумісності з плагінами**.
54
+
55
+ Поєднавши **Intlayer** з **next-intl**, ви отримуєте найкраще з обох світів — стабільність і зрілість екосистеми next-intl разом із сучасним управлінням контентом, автоматизацією та покращенням developer experience від Intlayer.
56
+
57
+ Цей посібник пояснює, як використовувати Intlayer як **адаптер для next-intl**, що дозволяє вам:
58
+
59
+ - Поступово мігрувати з next-intl на Intlayer.
60
+ - Зберігати існуючі плагіни та робочі процеси next-intl.
61
+ - Автоматизувати ваші JSON-переклади в CLI або конвеєрах CI/CD.
62
+ - Тестувати, синхронізувати та ефективніше керувати перекладами.
63
+
64
+ ## Зміст
65
+
66
+ <TOC/>
67
+
68
+ ## Крок за кроком: налаштування Intlayer з next-intl
69
+
70
+ ### Крок 1: Встановлення залежностей
71
+
72
+ Встановіть необхідні пакети:
73
+
74
+ ```bash packageManager="npm"
75
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
76
+ npx intlayer init
77
+ ```
78
+
79
+ ```bash packageManager="pnpm"
80
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
81
+ pnpm intlayer init
82
+ ```
83
+
84
+ ```bash packageManager="yarn"
85
+ yarn add intlayer @intlayer/sync-json-plugin --dev
86
+ yarn intlayer init
87
+ ```
88
+
89
+ ```bash packageManager="bun"
90
+ bun add intlayer @intlayer/sync-json-plugin --dev
91
+ bunx intlayer init
92
+ ```
93
+
94
+ **Опис пакетів:**
95
+
96
+ - **intlayer**: Основна бібліотека для управління інтернаціоналізацією, декларації контенту та побудови
97
+ - **@intlayer/sync-json-plugin**: Плагін для експорту декларацій контенту Intlayer у JSON-формат, сумісний з next-intl
98
+
99
+ ### Крок 2: Реалізуйте плагін Intlayer для обгортання JSON
100
+
101
+ Створіть конфігураційний файл Intlayer, щоб визначити ваші підтримувані локалі:
102
+
103
+ **Якщо ви також хочете експортувати JSON-словники для next-intl**, додайте плагін `syncJSON`:
104
+
105
+ ```typescript fileName="intlayer.config.ts"
106
+ import { Locales, type IntlayerConfig } from "intlayer";
107
+ import { syncJSON } from "@intlayer/sync-json-plugin";
108
+
109
+ const config: IntlayerConfig = {
110
+ internationalization: {
111
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
112
+ defaultLocale: Locales.ENGLISH,
113
+ },
114
+ plugins: [
115
+ syncJSON({
116
+ format: "icu",
117
+ source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
118
+ }),
119
+ ],
120
+ };
121
+
122
+ export default config;
123
+ ```
124
+
125
+ Плагін `syncJSON` автоматично обгортає JSON. Він читатиме та записуватиме JSON-файли, не змінюючи архітектуру вмісту.
126
+
127
+ Якщо ви хочете співіснування цих JSON разом із файлами декларації вмісту Intlayer (`.content` файли), Intlayer працюватиме таким чином:
128
+
129
+ 1. завантажити як JSON, так і файли декларації вмісту та перетворити їх на словник Intlayer.
130
+ 2. якщо існують конфлікти між JSON і файлами декларації вмісту, Intlayer виконає злиття всіх цих словників. Це залежатиме від пріоритету плагінів і пріоритету файлу декларації вмісту (усе можна налаштувати).
131
+
132
+ Якщо зміни внесені через CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
133
+
134
+ Щоб дізнатися більше про плагін `syncJSON`, будь ласка, зверніться до [документації плагіна syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/plugins/sync-json.md).
135
+
136
+ ### Крок 4: Налаштування AI-провайдера
137
+
138
+ Intlayer відкриває набір розширених автоматизаційних та зручних для розробника можливостей для вашого i18next workflow.
139
+
140
+ - **Автоматичне виявлення та заповнення відсутніх перекладів**: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі й перекладає лише їх, тож 99% вашого JSON залишається незмінним.
141
+ - **Переклад чанками для великих JSON-файлів**: коли ваші файли перекладів дуже великі, Intlayer автоматично розбиває обробку на керовані частини (chunks), перекладаючи їх окремо, щоб уникнути обмежень API та проблем із пам'яттю.
142
+ - **Паралелізація неймспейсів**: Якщо у вас сотні неймспейсів (або файлів), Intlayer паралелізує завдання перекладу, ефективно пришвидшуючи ваші CI/CD або масові операції перекладу.
143
+ - **Гнучка підтримка AI-провайдерів**: Оберіть бажаного AI-провайдера (наприклад, OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте власний API-ключ і за потреби змінюйте провайдерів.
144
+ - **Надійна обробка відповідей AI**: Intlayer може обробляти крайові випадки, коли ваш AI-провайдер повертає текст або як рядок, або як об'єкт, навіть автоматично повторюючи запит, якщо формат непослідовний.
145
+ - **Готово для CLI та CI/CD**: Запускайте перевірки Intlayer і автоматичне заповнення безпосередньо у ваших тестах або pipelines, роблячи процес локалізації надійним і автоматизованим.
146
+ - **Інтегрується поверх вашої існуючої конфігурації**: Вам не потрібно змінювати вашу основу i18next або Next.js. Intlayer працює як додатковий плагін до вашої поточної конфігурації, надаючи всі ці переваги з мінімальною міграцією.
147
+
148
+ Ось приклад налаштування AI-провайдера:
149
+
150
+ ```ts fileName="intlayer.config.ts"
151
+ import { Locales, type IntlayerConfig } from "intlayer";
152
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
153
+
154
+ const config: IntlayerConfig = {
155
+ internationalization: {
156
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
157
+ defaultLocale: Locales.ENGLISH,
158
+ },
159
+ ai: {
160
+ provider: "openai",
161
+ model: "gpt-5-mini",
162
+ apiKey: process.env.OPENAI_API_KEY,
163
+ },
164
+ plugins: [
165
+ syncJSON({
166
+ format: "icu",
167
+ source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
168
+ }),
169
+ ],
170
+ };
171
+
172
+ export default config;
173
+ ```
174
+
175
+ Тоді ви можете виконати наступну команду, щоб заповнити ваші переклади:
176
+
177
+ ```bash
178
+ npx intlayer fill
179
+ ```
180
+
181
+ Це заповнить ваші переклади за допомогою AI-провайдера, якого ви налаштували.
182
+
183
+ > Див. усіх доступних AI-провайдерів у [документації конфігурації AI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md#ai-configuration).
184
+ > Див. усі доступні команди в [документації Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
185
+
186
+ ---
187
+
188
+ ## Конфігурація Git
189
+
190
+ Рекомендується ігнорувати файли, згенеровані Intlayer:
191
+
192
+ ```plaintext fileName=".gitignore"
193
+ # Ігнорувати файли, згенеровані Intlayer
194
+ .intlayer
195
+ ```
196
+
197
+ Ці файли можуть бути згенеровані під час процесу збірки й їх не потрібно додавати до системи контролю версій.
198
+
199
+ ### Розширення для VS Code
200
+
201
+ Для покращення досвіду розробника встановіть офіційне **Intlayer VS Code Extension**:
202
+
203
+ [Встановити з VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
@@ -0,0 +1,200 @@
1
+ ---
2
+ createdAt: 2025-01-02
3
+ updatedAt: 2025-11-06
4
+ title: Як автоматизувати ваші JSON-переклади для react-i18next за допомогою Intlayer
5
+ description: Автоматизуйте свої JSON-переклади за допомогою Intlayer та react-i18next для покращеної інтернаціоналізації у React-додатках.
6
+ keywords:
7
+ - react-i18next
8
+ - i18next
9
+ - Intlayer
10
+ - Інтернаціоналізація
11
+ - i18n
12
+ - Блог
13
+ - React
14
+ - JavaScript
15
+ - TypeScript
16
+ - Управління контентом
17
+ slugs:
18
+ - blog
19
+ - intlayer-with-react-i18next
20
+ youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
21
+ history:
22
+ - version: 7.0.7
23
+ date: 2025-11-06
24
+ changes: Додано документацію щодо підтримки AI-провайдерів
25
+ - version: 7.0.6
26
+ date: 2025-11-01
27
+ changes: Додано плагін loadJSON
28
+ - version: 7.0.0
29
+ date: 2025-10-29
30
+ changes: Перехід на плагін syncJSON
31
+ ---
32
+
33
+ # Як автоматизувати JSON-переклади react-i18next за допомогою Intlayer
34
+
35
+ <iframe title="Як автоматизувати JSON-переклади react-i18next за допомогою Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
36
+
37
+ ## Що таке Intlayer?
38
+
39
+ **Intlayer** — інноваційна відкрита бібліотека для інтернаціоналізації, створена для вирішення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом в React-додатках.
40
+
41
+ Дивіться конкретне порівняння з react-i18next у нашому дописі в блозі [react-i18next vs. react-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md).
42
+
43
+ ## Чому варто поєднувати Intlayer з react-i18next?
44
+
45
+ Хоча Intlayer забезпечує відмінне самостійне рішення для i18n (див. наше [керівництво з інтеграції з React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_vite+react.md)), ви можете захотіти поєднати його з react-i18next з кількох причин.
46
+
47
+ Intlayer пропонує широкий набір **просунутих функцій**, які виходять за межі традиційних i18n-інструментів. Воно допомагає вам:
48
+
49
+ - **Автоматично виявляти та заповнювати відсутні переклади**, щоб спростити локалізацію.
50
+ - **Тестуйте та перевіряйте свої переклади** безпосередньо у своїх робочих процесах розробки або CI/CD.
51
+ - **Керуйте контентом на рівні компонентів**, що дозволяє мати чисту, масштабовану та підтримувану структуру по всьому застосунку.
52
+ - **Винесіть контент назовні**, щоб його могли легко редагувати вся команда (розробники, перекладачі та контент-менеджери).
53
+
54
+ Однак **i18next** залишається відмінним і широко використовуваним рішенням для i18n завдяки своїй **зрілої екосистемі**, **широкій підтримці спільноти** та **широкій сумісності з плагінами**.
55
+
56
+ Поєднавши **Intlayer** з **i18next**, ви отримаєте найкраще з обох світів — стабільність та зрілість екосистеми i18next разом із сучасним content management, automation та покращеним developer experience від Intlayer.
57
+
58
+ Цей посібник пояснює, як використовувати Intlayer як **адаптер для i18next**, що дозволяє вам:
59
+
60
+ - Поступово переходити з i18next на Intlayer.
61
+ - Зберегти існуючі плагіни та робочі процеси i18next.
62
+ - Автоматизувати ваші JSON-переклади в CLI або в конвеєрах CI/CD.
63
+ - Ефективніше тестувати, синхронізувати та керувати перекладами.
64
+
65
+ ## Зміст
66
+
67
+ <TOC/>
68
+
69
+ ## Покроковий посібник із налаштування Intlayer з react-i18next
70
+
71
+ ### Крок 1: Встановлення залежностей
72
+
73
+ Встановіть необхідні пакети:
74
+
75
+ ```bash packageManager="npm"
76
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
77
+ npx intlayer init
78
+ ```
79
+
80
+ ```bash packageManager="pnpm"
81
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
82
+ pnpm intlayer init
83
+ ```
84
+
85
+ ```bash packageManager="yarn"
86
+ yarn add intlayer @intlayer/sync-json-plugin --dev
87
+ yarn intlayer init
88
+ ```
89
+
90
+ ```bash packageManager="bun"
91
+ bun add intlayer @intlayer/sync-json-plugin --dev
92
+ bunx intlayer init
93
+ ```
94
+
95
+ **Опис пакетів:**
96
+
97
+ - **intlayer**: Базова бібліотека для керування інтернаціоналізацією, декларації контенту та збірки
98
+ - **@intlayer/sync-json-plugin**: Плагін для експорту декларацій контенту Intlayer у JSON-формат, сумісний з react-i18next
99
+
100
+ ### Крок 2: Реалізуйте плагін Intlayer для обгортання JSON
101
+
102
+ Створіть файл конфігурації Intlayer, щоб визначити підтримувані локалі:
103
+
104
+ **Якщо ви також хочете експортувати JSON-словники для react-i18next**, додайте плагін `syncJSON`:
105
+
106
+ ```typescript fileName="intlayer.config.ts"
107
+ import { Locales, type IntlayerConfig } from "intlayer";
108
+ import { syncJSON } from "@intlayer/sync-json-plugin";
109
+
110
+ const config: IntlayerConfig = {
111
+ internationalization: {
112
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
113
+ defaultLocale: Locales.ENGLISH,
114
+ },
115
+ plugins: [
116
+ syncJSON({
117
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
118
+ }),
119
+ ],
120
+ };
121
+
122
+ export default config;
123
+ ```
124
+
125
+ Плагін `syncJSON` автоматично обгортатиме JSON. Він читатиме та записуватиме JSON-файли, не змінюючи архітектуру вмісту.
126
+
127
+ Якщо ви хочете, щоб цей JSON співіснував із файлами декларації вмісту Intlayer (`.content` файли), Intlayer виконуватиме наступні кроки:
128
+
129
+ 1. завантажити як JSON-файли, так і файли декларації вмісту та перетворити їх на словник Intlayer.
130
+ 2. якщо виникнуть конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Порядок злиття залежатиме від пріоритету плагінів та пріоритету файлу декларації контенту (усі ці параметри конфігуруються).
131
+
132
+ Якщо зміни вносяться через CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
133
+
134
+ Щоб дізнатися більше про плагін `syncJSON`, будь ласка, див. [документацію плагіна syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/plugins/sync-json.md).
135
+
136
+ ### Крок 4: Налаштування AI-провайдера
137
+
138
+ Intlayer відкриває набір просунутих автоматизацій і функцій, орієнтованих на розробника, для вашого i18next workflow.
139
+
140
+ - **Автоматичне виявлення та заповнення відсутніх перекладів**: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі та перекладає лише їх, тож 99% вашого JSON залишається незмінним.
141
+ - **Чанкований переклад для великих JSON-файлів**: Коли ваші файли перекладу дуже великі, Intlayer автоматично розбиває обробку на керовані частини (chunks), перекладаючи їх незалежно, щоб уникнути обмежень API та проблем з пам'яттю.
142
+ - **Паралелізація namespace-ів**: Якщо у вас сотні namespace-ів (або файлів), Intlayer паралелізує завдання перекладу, ефективно пришвидшуючи ваші CI/CD або масові операції перекладу.
143
+ - **Гнучка підтримка постачальників AI**: Вибирайте бажаного постачальника AI (наприклад, OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте власний API-ключ і перемикайте постачальників за потреби.
144
+ - **Надійна обробка відповідей AI**: Intlayer може обробляти крайові випадки, коли ваш постачальник AI повертає текст або як рядок, або як об'єкт, навіть автоматично повторюючи запит, якщо формат непослідовний.
145
+ - **Готово до CLI та CI/CD**: Виконуйте перевірки Intlayer і автоматичне заповнення безпосередньо в тестах або пайплайнах, роблячи процес локалізації надійним та автоматизованим.
146
+ - **Інтегрується поверх вашої існуючої конфігурації**: Не потрібно змінювати вашу основу на i18next або Next.js. Intlayer працює як додатковий плагін до вашої поточної конфігурації, надаючи всі ці переваги з мінімальною міграцією.
147
+
148
+ Ось приклад того, як налаштувати AI-провайдера:
149
+
150
+ ```ts fileName="intlayer.config.ts"
151
+ import { Locales, type IntlayerConfig } from "intlayer";
152
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
153
+
154
+ const config: IntlayerConfig = {
155
+ internationalization: {
156
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
157
+ defaultLocale: Locales.ENGLISH,
158
+ },
159
+ ai: {
160
+ provider: "openai",
161
+ model: "gpt-5-mini",
162
+ apiKey: process.env.OPENAI_API_KEY,
163
+ },
164
+ plugins: [
165
+ syncJSON({
166
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
167
+ }),
168
+ ],
169
+ };
170
+
171
+ export default config;
172
+ ```
173
+
174
+ Потім ви можете виконати наступну команду, щоб заповнити ваші переклади:
175
+
176
+ ```bash
177
+ npx intlayer fill
178
+ ```
179
+
180
+ Це заповнить ваші переклади за допомогою AI-провайдера, якого ви налаштували.
181
+
182
+ > Перегляньте всі доступні AI-провайдери в [документації конфігурації Intlayer AI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md#ai-configuration).
183
+ > Перегляньте всі доступні команди в [документації CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
184
+
185
+ ## Налаштування Git
186
+
187
+ Рекомендується ігнорувати автоматично згенеровані файли Intlayer:
188
+
189
+ ```plaintext fileName=".gitignore"
190
+ # Ігнорувати файли, згенеровані Intlayer
191
+ .intlayer
192
+ ```
193
+
194
+ Ці файли можуть бути відновлені під час процесу збірки й їх не потрібно додавати до системи контролю версій.
195
+
196
+ ### Розширення для VS Code
197
+
198
+ Для покращення досвіду розробника встановіть офіційне **Intlayer VS Code Extension**:
199
+
200
+ [Встановити з VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)