@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-01-02
3
+ updatedAt: 2025-11-06
4
+ title: Як автоматизувати JSON-переклади react-intl за допомогою Intlayer
5
+ description: Автоматизуйте свої JSON-переклади за допомогою Intlayer та react-intl для покращеної інтернаціоналізації в React-додатках.
6
+ keywords:
7
+ - react-intl
8
+ - Intlayer
9
+ - Internationalization
10
+ - Blog
11
+ - i18n
12
+ - JavaScript
13
+ - React
14
+ - FormatJS
15
+ slugs:
16
+ - blog
17
+ - intlayer-with-react-intl
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-переклади react-intl за допомогою Intlayer
32
+
33
+ <iframe title="Як автоматизувати JSON-переклади react-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"/>
34
+
35
+ ## Зміст
36
+
37
+ <TOC/>
38
+
39
+ ## Що таке Intlayer?
40
+
41
+ **Intlayer** — інноваційна відкрита бібліотека для інтернаціоналізації, створена щоб усунути недоліки традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у React-застосунках.
42
+
43
+ Перегляньте конкретне порівняння з react-intl у нашому дописі в блозі [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).
44
+
45
+ ## Чому поєднувати Intlayer з react-intl?
46
+
47
+ Хоча Intlayer надає відмінне самостійне рішення для i18n (див. наш [керівництво з інтеграції з React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_vite+react.md)), ви можете захотіти поєднати його з react-intl з кількох причин:
48
+
49
+ Intlayer пропонує багатий набір **розширених функцій**, що виходять за межі традиційних i18n-інструментів. Він допомагає вам:
50
+
51
+ - **Автоматично виявляти та заповнювати відсутні переклади**, щоб спростити локалізацію.
52
+ - **Тестувати та перевіряти ваші переклади** безпосередньо у ваших робочих процесах розробки або CI/CD.
53
+ - **Керуйте контентом на рівні компонентів**, що забезпечує чисту, масштабовану та підтримувану структуру всього вашого додатку.
54
+ - **Виносьте контент зовні**, щоб його могли легко редагувати вся ваша команда (розробники, перекладачі та контент-менеджери).
55
+
56
+ Проте **react-intl** залишається відмінним і широко використовуваним рішенням для i18n завдяки своїй **зрілій екосистемі**, **широкій підтримці спільноти** та **великій сумісності з плагінами**.
57
+
58
+ Комбінуючи **Intlayer** з **react-intl**, ви отримуєте найкраще з обох світів — стабільність і зрілість екосистеми react-intl разом із сучасним управлінням контентом, автоматизацією та покращенням developer experience від Intlayer.
59
+
60
+ У цьому посібнику пояснюється, як використовувати Intlayer як **адаптер для react-intl**, що дозволяє вам:
61
+
62
+ - Поступово мігрувати з react-intl на Intlayer.
63
+ - Зберігайте існуючі плагіни та робочі процеси react-intl.
64
+ - Автоматизуйте свої JSON-переклади в CLI або CI/CD конвеєрах.
65
+ - Тестуйте, синхронізуйте та ефективніше керуйте перекладами.
66
+
67
+ ## Покроковий посібник з налаштування Intlayer з react-intl
68
+
69
+ ### Крок 1: Встановлення залежностей
70
+
71
+ Встановіть необхідні пакети:
72
+
73
+ ```bash packageManager="npm"
74
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
75
+ npx intlayer init
76
+ ```
77
+
78
+ ```bash packageManager="pnpm"
79
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
80
+ pnpm intlayer init
81
+ ```
82
+
83
+ ```bash packageManager="yarn"
84
+ yarn add intlayer @intlayer/sync-json-plugin --dev
85
+ yarn intlayer init
86
+ ```
87
+
88
+ ```bash packageManager="bun"
89
+ bun add intlayer @intlayer/sync-json-plugin --dev
90
+ bunx intlayer init
91
+ ```
92
+
93
+ **Опис пакетів:**
94
+
95
+ - **intlayer**: Ядро бібліотеки для управління інтернаціоналізацією, декларації контенту та збірки
96
+ - **@intlayer/sync-json-plugin**: Плагін для експорту декларацій контенту Intlayer у формат JSON, сумісний з react-intl
97
+
98
+ ### Крок 2: Реалізація плагіна Intlayer для обгортання JSON
99
+
100
+ Створіть файл конфігурації Intlayer, щоб визначити підтримувані локалі:
101
+
102
+ **Якщо ви також хочете експортувати JSON-словники для react-intl**, додайте плагін `syncJSON`:
103
+
104
+ ```typescript fileName="intlayer.config.ts"
105
+ import { Locales, type IntlayerConfig } from "intlayer";
106
+ import { syncJSON } from "@intlayer/sync-json-plugin";
107
+
108
+ const config: IntlayerConfig = {
109
+ internationalization: {
110
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
111
+ defaultLocale: Locales.ENGLISH,
112
+ },
113
+ plugins: [
114
+ syncJSON({
115
+ format: "icu",
116
+ source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,
117
+ }),
118
+ ],
119
+ };
120
+
121
+ export default config;
122
+ ```
123
+
124
+ Плагін `syncJSON` автоматично обгортає JSON. Він читатиме та записуватиме JSON-файли, не змінюючи архітектуру вмісту.
125
+
126
+ Якщо ви хочете, щоб ці JSON-файли співіснували з деклараційними файлами Intlayer (`.content` files), Intlayer виконає це таким чином:
127
+
128
+ 1. завантажить як JSON-файли, так і файли декларацій вмісту та перетворить їх на словник Intlayer.
129
+ 2. якщо виникнуть конфлікти між JSON та файлами декларацій вмісту, Intlayer виконає злиття всіх цих словників. Порядок злиття залежатиме від пріоритету плагінів та пріоритету файлу декларації вмісту (усі параметри конфігуровані).
130
+
131
+ Якщо зміни вносяться за допомогою CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
132
+
133
+ Щоб дізнатися більше про плагін `syncJSON`, будь ласка, перегляньте [документацію плагіна `syncJSON`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/plugins/sync-json.md).
134
+
135
+ ### Крок 4: Налаштування AI-провайдера
136
+
137
+ Intlayer відкриває набір розширених можливостей автоматизації та дружніх до розробників функцій для вашого робочого процесу i18next.
138
+
139
+ - **Автоматичне виявлення та заповнення відсутніх перекладів**: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі та перекладає лише їх, тож 99% вашого JSON залишається незмінним.
140
+ - **Переклад по частинах (chunked) для великих JSON-файлів**: Коли ваші файли перекладу дуже великі, Intlayer автоматично розбиває обробку на керовані частини, перекладаючи їх окремо, щоб уникнути обмежень API та проблем з пам'яттю.
141
+ - **Паралелізація namespace**: Якщо у вас сотні namespaces (або файлів), Intlayer паралелізує завдання перекладу, ефективно прискорюючи ваші CI/CD або масові операції перекладу.
142
+ - **Гнучка підтримка AI-провайдерів**: Обирайте бажаного AI-провайдера (наприклад, OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте свій API-ключ і перемикайте провайдерів за потреби.
143
+ - **Надійна обробка відповідей AI**: Intlayer вміє обробляти крайні випадки, коли провайдер AI повертає текст як рядок або як об'єкт, і навіть автоматично повторює запити, якщо формат є непослідовним.
144
+ - **Готово для CLI та CI/CD**: Запускайте перевірки Intlayer та автоматичне заповнення безпосередньо у ваших тестах або пайплайнах, роблячи процес локалізації надійним та автоматизованим.
145
+ - **Інтегрується поверх вашої існуючої конфігурації**: Вам не потрібно змінювати i18next або Next.js. Intlayer працює як плагін-додаток до вашої поточної конфігурації, надаючи всі ці переваги з мінімальною міграцією.
146
+
147
+ Ось приклад налаштування AI-провайдера:
148
+
149
+ ```ts fileName="intlayer.config.ts"
150
+ import { Locales, type IntlayerConfig } from "intlayer";
151
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
152
+
153
+ const config: IntlayerConfig = {
154
+ internationalization: {
155
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
156
+ defaultLocale: Locales.ENGLISH,
157
+ },
158
+ ai: {
159
+ provider: "openai",
160
+ model: "gpt-5-mini",
161
+ apiKey: process.env.OPENAI_API_KEY,
162
+ },
163
+ plugins: [
164
+ syncJSON({
165
+ format: "icu",
166
+ source: ({ key, locale }) => `./messages/${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
+ Рекомендується ігнорувати файли, згенеровані Intlayer:
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,206 @@
1
+ ---
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-11-06
4
+ title: Intlayer та vue-i18n
5
+ description: Інтеграція Intlayer з vue-i18n для комплексного рішення інтернаціоналізації Vue.js
6
+ keywords:
7
+ - vue-i18n
8
+ - Intlayer
9
+ - Інтернаціоналізація
10
+ - Блог
11
+ - Vue.js
12
+ - Nuxt
13
+ - JavaScript
14
+ - Vue
15
+ slugs:
16
+ - blog
17
+ - intlayer-with-vue-i18n
18
+ youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
19
+ history:
20
+ - version: 7.0.7
21
+ date: 2025-11-06
22
+ changes: Додано документацію щодо підтримки провайдерів ШІ
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
+ # Інтернаціоналізація (i18n) у Vue.js за допомогою vue-i18n та Intlayer
32
+
33
+ <iframe title="Як автоматизувати ваші JSON-переклади vue-i18n за допомогою 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** — це інноваційна відкрита бібліотека для інтернаціоналізації, створена для вирішення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у застосунках на Vue.js та Nuxt.
42
+
43
+ Див. конкретне порівняння з vue-i18n у нашому дописі в блозі [vue-i18n проти Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/vue-i18n_vs_intlayer.md).
44
+
45
+ ## Чому поєднувати Intlayer з vue-i18n?
46
+
47
+ Хоча Intlayer забезпечує відмінне автономне рішення для i18n (див. наш [посібник з інтеграції для Vue.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_vite+vue.md)), ви можете захотіти поєднати його з vue-i18n з кількох причин:
48
+
49
+ Intlayer пропонує широкий набір **розширених можливостей**, які виходять за межі традиційних i18n-інструментів. Він допомагає вам:
50
+
51
+ - **Автоматично виявляти та заповнювати відсутні переклади**, щоб спростити локалізацію.
52
+ - **Тестувати та валідувати ваші переклади** безпосередньо у процесах розробки або CI/CD.
53
+ - **Керувати вмістом на рівні компонентів**, забезпечуючи чисту, масштабовану та зручну для підтримки структуру додатка.
54
+ - **Виносьте ваш контент у зовнішні файли**, роблячи його легко редагованим для всієї вашої команди (розробників, перекладачів та контент-менеджерів).
55
+
56
+ Однак **vue-i18n** залишається відмінним і широко використовуваним рішенням для i18n завдяки його **зрілій екосистемі**, **широкій підтримці спільноти** та **великій сумісності з плагінами**.
57
+
58
+ Поєднавши **Intlayer** з **vue-i18n**, ви отримаєте найкраще з обох світів — стабільність і зрілість екосистеми vue-i18n разом із сучасним управлінням контентом, автоматизацією та покращеним досвідом розробника, які надає Intlayer.
59
+
60
+ Цей посібник пояснює, як використовувати Intlayer як **адаптер для vue-i18n**, що дозволяє вам:
61
+
62
+ - Поступово мігрувати з vue-i18n на Intlayer.
63
+ - Зберегти існуючі плагіни та робочі процеси vue-i18n.
64
+ - Автоматизувати ваші JSON-переклади у CLI або CI/CD пайплайнах.
65
+ - Тестуйте, синхронізуйте та керуйте перекладами ефективніше.
66
+
67
+ ---
68
+
69
+ ## Покроковий посібник з налаштування Intlayer з vue-i18n
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 для vue-i18n
99
+
100
+ ### Крок 2: Реалізуйте плагін Intlayer для обгортання JSON
101
+
102
+ Створіть файл конфігурації Intlayer, щоб визначити підтримувані локалі:
103
+
104
+ **Якщо ви також хочете експортувати JSON-словники для vue-i18n**, додайте плагін `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
+ // Налаштування Intlayer
111
+ const config: IntlayerConfig = {
112
+ internationalization: {
113
+ // Підтримувані локалі та локаль за замовчуванням
114
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
115
+ defaultLocale: Locales.ENGLISH,
116
+ },
117
+ plugins: [
118
+ syncJSON({
119
+ format: "vue-i18n",
120
+ source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
121
+ }),
122
+ ],
123
+ };
124
+
125
+ export default config;
126
+ ```
127
+
128
+ Плагін `syncJSON` автоматично обгортає JSON. Він читає та записує JSON-файли, не змінюючи архітектуру вмісту.
129
+
130
+ Якщо ви хочете, щоб ці JSON-файли співіснували з файлами декларацій вмісту Intlayer (`.content` файли), Intlayer працюватиме таким чином:
131
+
132
+ 1. завантажити як JSON-файли, так і файли декларацій вмісту та перетворити їх в словник Intlayer.
133
+ 2. якщо виникають конфлікти між JSON та файлами декларацій вмісту, Intlayer виконає злиття всіх словників. Порядок застосування значень залежить від пріоритету плагінів та пріоритету файлу декларації вмісту (усі ці параметри можна налаштувати).
134
+
135
+ Якщо зміни вносяться через CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
136
+
137
+ Щоб побачити докладніші відомості про плагін `syncJSON`, зверніться до [документації плагіна syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/plugins/sync-json.md).
138
+
139
+ ### Крок 4: Налаштування AI-провайдера
140
+
141
+ Intlayer відкриває низку просунутих автоматизаційних і зручних для розробника функцій для вашого робочого процесу i18next.
142
+
143
+ - **Автоматичне виявлення та заповнення відсутніх перекладів**: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі й перекладає лише їх, тому 99% вашого JSON залишається без змін.
144
+ - **Покроковий (chunked) переклад для великих JSON-файлів**: коли ваші файли перекладів дуже великі, Intlayer автоматично розбиває обробку на керовані частини (chunks) і перекладає їх окремо, щоб уникнути лімітів API та проблем з пам’яттю.
145
+ - **Паралелізація неймспейсів**: Якщо у вас сотні неймспейсів (або файлів), Intlayer паралелізує завдання перекладу, ефективно прискорюючи ваші CI/CD або масові операції перекладу.
146
+ - **Гнучка підтримка AI-провайдерів**: Вибирайте бажаного провайдера AI (наприклад OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте власний API-ключ і перемикайте провайдерів за потреби.
147
+ - **Надійна обробка відповідей AI**: Intlayer може обробляти крайові випадки, коли ваш провайдер AI повертає текст або як рядок, або як об'єкт, навіть автоматично повторюючи запити, коли формат непослідовний.
148
+ - **Готовність до CLI та CI/CD**: Запускайте перевірки Intlayer і автоматичне заповнення безпосередньо у ваших тестах або пайплайнах, роблячи процес локалізації надійним та автоматизованим.
149
+ - **Інтегрується поверх вашої існуючої конфігурації**: Вам не потрібно змінювати основу i18next або Next.js. Intlayer працює як додатковий плагін до вашої поточної конфігурації, забезпечуючи всі ці переваги з мінімальною міграцією.
150
+
151
+ Ось приклад того, як налаштувати AI-провайдера:
152
+
153
+ ```ts fileName="intlayer.config.ts"
154
+ import { Locales, type IntlayerConfig } from "intlayer";
155
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
156
+
157
+ const config: IntlayerConfig = {
158
+ internationalization: {
159
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
160
+ defaultLocale: Locales.ENGLISH,
161
+ },
162
+ ai: {
163
+ provider: "openai",
164
+ model: "gpt-5-mini",
165
+ apiKey: process.env.OPENAI_API_KEY,
166
+ },
167
+ plugins: [
168
+ syncJSON({
169
+ format: "vue-i18n",
170
+ source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
171
+ }),
172
+ ],
173
+ };
174
+
175
+ export default config;
176
+ ```
177
+
178
+ Потім ви можете виконати наступну команду, щоб заповнити ваші переклади:
179
+
180
+ ```bash
181
+ npx intlayer fill
182
+ ```
183
+
184
+ Ця команда заповнить ваші переклади за допомогою AI-провайдера, якого ви налаштували.
185
+
186
+ > Див. усіх доступних AI-провайдерів у [документації Intlayer щодо конфігурації AI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md#ai-configuration).
187
+ > Див. усі доступні команди у [документації Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
188
+
189
+ ---
190
+
191
+ ## Конфігурація Git
192
+
193
+ Виключіть згенеровані файли з контролю версій:
194
+
195
+ ```plaintext fileName=".gitignore"
196
+ # Ігнорувати файли, згенеровані Intlayer
197
+ .intlayer
198
+ ```
199
+
200
+ Ці файли автоматично регенеруються під час процесу збірки і їх не потрібно додавати до вашого репозиторію.
201
+
202
+ ### Розширення для VS Code
203
+
204
+ Для покращення досвіду розробника встановіть офіційне **розширення Intlayer для VS Code**:
205
+
206
+ [Встановити з VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
@@ -0,0 +1,80 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: L10n Platform Alternative for Lokalise
5
+ description: Знайдіть найкращу L10n-платформу як альтернативу Lokalise відповідно до ваших потреб
6
+ keywords:
7
+ - L10n
8
+ - TMS
9
+ - Lokalise
10
+ slugs:
11
+ - blog
12
+ - l10n-platform-alternative
13
+ - lokalise
14
+ history:
15
+ - version: 7.5.0
16
+ date: 2025-12-18
17
+ changes: Початкова версія
18
+ ---
19
+
20
+ # Open-Source альтернатива Lokalise для L10N (TMS)
21
+
22
+ ## Зміст
23
+
24
+ <TOC/>
25
+
26
+ # Система управління перекладами
27
+
28
+ Система управління перекладами (Translation Management System, TMS) — це програмна платформа, призначена для автоматизації та оптимізації процесу перекладу й локалізації (L10n). Традиційно TMS виступає централізованим хабом, куди завантажується, організовується та призначається контент для людських перекладачів. Вона керує робочими процесами, зберігає пам'ять перекладів (щоб уникнути повторного перекладу того самого речення), а також відповідає за доставку перекладених файлів назад до розробників або менеджерів контенту.
29
+
30
+ По суті, історично TMS була мостом між технічним кодом (де зберігаються рядки) та людськими лінгвістами (які розуміють культуру).
31
+
32
+ # Lokalise
33
+
34
+ Lokalise є важливим гравцем у сучасному ландшафті TMS. Заснована у 2017 році, вона прийшла, щоб змінити ринок, зосередившись насамперед на developer experience (DX) та інтеграції дизайну. На відміну від старіших конкурентів, Lokalise віддавала пріоритет стильному UI, потужним APIs та інтеграціям з інструментами на кшталт Figma і GitHub, щоб зменшити тертя при переміщенні файлів туди й назад.
35
+
36
+ Вона побудувала свій успіх на тому, що була "дружньою до розробників" TMS, автоматизуючи екстракцію й вставку strings, щоб звільнити інженерний час. Вона ефективно вирішила проблему _continuous localization_ для швидко рухомих технічних команд, які хотіли позбутися ручних електронних таблиць та листування.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer відомий насамперед як рішення для i18n, але також інтегрує headless CMS. На відміну від Lokalise, який здебільшого виступає зовнішнім інструментом синхронізації ваших рядків, Intlayer розташовується ближче до вашого коду. Він контролює весь стек — від шару бандлінгу до віддаленої доставки контенту — що призводить до більш плавного й ефективного потоку контенту.
41
+
42
+ ## Чому парадигми змінилися з появою AI?
43
+
44
+ Lokalise відшліфував "DevOps" аспект локалізації — автоматичне переміщення рядків. Однак поява Великих мовних моделей (LLMs) фундаментально змінила парадигми локалізації. Вузьким місцем більше не є _переміщення_ рядків; ним стала _генерація_ їх.
45
+
46
+ З появою LLMs вартість перекладу впала, а швидкість зросла експоненційно. Роль команди локалізації зміщується від "керування перекладачами" до "керування контекстом і рецензування".
47
+
48
+ Хоча Lokalise додав AI-функції, за своєю суттю він залишається платформою, призначеною для управління людськими робочими процесами та стягування плати за кількість seats або keys. В AI-first світі цінність полягає в тому, наскільки добре ви можете оркеструвати свої AI-моделі для генерації контенту з урахуванням контексту, а не лише в тому, наскільки легко можна доручити завдання людській агенції.
49
+
50
+ Сьогодні найефективніший робочий процес — спочатку переводити та позиціонувати ваші сторінки глобально з використанням AI. Потім, на другому етапі, ви залучаєте людських копірайтерів для оптимізації конкретного контенту з високим трафіком, щоб підвищити конверсію, коли продукт уже генерує дохід.
51
+
52
+ ## Чому Intlayer — хороша альтернатива Lokalise?
53
+
54
+ Intlayer — рішення, народжене в епоху AI. Воно було спроектоване з принципом, що сирий переклад — це товар, але _контекст_ — король.
55
+
56
+ Lokalise часто критикують за високі цінові рівні, які можуть стати надзвичайно дорогими в міру масштабування стартапу. Intlayer впроваджує інший підхід:
57
+
58
+ 1. **Ефективність витрат:** Ви не прив'язані до моделі ціноутворення 'per key' або 'per seat', яка карає за зростання. З Intlayer ви платите за власний inference (BYO Key), тобто ваші витрати масштабуються безпосередньо відповідно до фактичного використання, а не маржі платформи.
59
+ 2. **Інтеграція робочого процесу:** Хоча Lokalise вимагає синхронізації файлів (навіть якщо вона автоматизована), Intlayer дозволяє робити декларативне визначення контенту безпосередньо у файлах ваших компонентів (React, Next.js тощо). Це тримає контекст поруч із UI, зменшуючи кількість помилок.
60
+ 3. **Візуальне керування:** Intlayer надає візуальний редактор, який взаємодіє безпосередньо з працюючим додатком, гарантуючи, що правки вносяться в повному візуальному контексті — те, що часто відключено в традиційних списках файлів TMS.
61
+
62
+ # Порівняння пліч-о-пліч
63
+
64
+ | Функція | Lokalise (сучасний TMS) | Intlayer (AI-Native) |
65
+ | :----------------------- | :---------------------------------------------------- | :-------------------------------------------------- |
66
+ | **Основна філософія** | Автоматизація та локалізація на етапі дизайну (L10n). | Керує логікою контенту та AI-генерацією. |
67
+ | **Модель ціноутворення** | За місце / MAU / кількість ключів (висока вартість). | Оплата за власний inference (BYO Key). |
68
+ | **Інтеграція** | Синхронізація через API / плагіни для Figma. | Глибока інтеграція з кодом (декларативна). |
69
+ | **Оновлення** | Затримки синхронізації / необхідне створення PR. | Миттєва синхронізація з кодовою базою або live app. |
70
+ | **Формати файлів** | Агностичний (Mobile, Web, Documents). | Сучасний веб (JSON, JS, TS). |
71
+ | **Тестування** | Workflow перегляду. | CI / CLI / A/B тестування. |
72
+ | **Хостинг** | SaaS (закритий код). | Open Source та самохостинг (Docker). |
73
+
74
+ Intlayer пропонує повноцінне, універсальне рішення для i18n, яке дозволяє глибоко інтегрувати ваш контент. Ваш віддалений контент можна синхронізувати безпосередньо з кодовою базою або з вашим живим застосунком. Для порівняння, Lokalise зазвичай покладається на створення Pull Requests для оновлення контенту в репозиторії, що підтримує розмежування між "content state" і "application state".
75
+
76
+ Крім того, Intlayer можна використовувати як Feature Flag або інструмент A/B тестування, що дозволяє динамічно перевіряти різні варіанти контенту. Якщо Lokalise зосереджується на правильності слів, то Intlayer спрямований на забезпечення правильного _користувацького досвіду_ через динамічну доставку даних.
77
+
78
+ Lokalise відмінно підходить для мобільних додатків (iOS/Android) і workflow, орієнтованих на дизайн. Однак для сучасних веб‑додатків на основі фреймворків типу Next.js або React нативна робота Intlayer з `.js`, `.ts` і JSON-словниками забезпечує кращий developer experience (DX) з повною підтримкою TypeScript для контенту — гарантує, що ви більше ніколи не випустите реліз із відсутнім ключем перекладу.
79
+
80
+ Нарешті, для тих, хто віддає пріоритет контролю та суверенітету над даними, Intlayer є open-source і може бути self-hosted. Docker-файли доступні прямо в репозиторії, що дає вам повну власність над інфраструктурою локалізації — різкий контраст із закритою SaaS‑моделлю Lokalise.
@@ -0,0 +1,80 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: Альтернатива L10n-платформі
5
+ description: Знайдіть найкращу альтернативу L10n-платформі для ваших потреб
6
+ keywords:
7
+ - L10n
8
+ - TMS
9
+ - Crowdin
10
+ slugs:
11
+ - blog
12
+ - l10n-platform-alternative
13
+ - crowdin
14
+ history:
15
+ - version: 7.5.0
16
+ date: 2025-12-18
17
+ changes: Initial version
18
+ ---
19
+
20
+ # Open-Source альтернатива Crowdin для L10n (TMS)
21
+
22
+ ## Зміст
23
+
24
+ <TOC/>
25
+
26
+ # Система управління перекладами
27
+
28
+ Система управління перекладами (Translation Management System, TMS) — це програмна платформа, призначена для автоматизації та оптимізації процесу перекладу й локалізації (L10n). Традиційно TMS виступає як централізований хаб, куди завантажують контент, організовують його та призначають виконання людським перекладачам. Вона управляє робочими процесами, зберігає translation memories (щоб не перекладати те саме речення двічі) і займається доставкою перекладених файлів назад розробникам або менеджерам контенту.
29
+
30
+ По суті, TMS історично була мостом між технічним кодом (де зберігаються рядки) і людськими лінгвістами (які розуміють культуру).
31
+
32
+ # Crowdin
33
+
34
+ Crowdin — ветеран у цій сфері. Заснована в 2009 році, вона з’явилася в період, коли основною проблемою локалізації була підключеність (connectivity). Її місія була проста: ефективно поєднувати копірайтерів, перекладачів і власників проєктів.
35
+
36
+ Понад десять років Crowdin був галузевим стандартом для керування локалізацією. Він вирішив проблему фрагментації, дозволивши командам завантажувати файли `.po`, `.xml` або `.yaml` та працювати з ними перекладачам у хмарному інтерфейсі. Репутацію він здобув завдяки надійній автоматизації робочих процесів, що дозволяло компаніям масштабуватися з однієї мови до десяти, не потопаючи в електронних таблицях.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer відомий насамперед як i18n-рішення, але також інтегрує CMS. На відміну від Crowdin, який обмежується роллю wrapper навколо вашої існуючої i18n-налаштування, Intlayer контролює весь стек — від bundling layer до віддаленої доставки контенту — що призводить до плавнішого та ефективнішого потоку контенту.
41
+
42
+ ## Чому парадигми змінилися з появою AI?
43
+
44
+ У той час як Crowdin оптимізував людський робочий процес, поява Large Language Models (LLMs) фундаментально змінила парадигми локалізації. Роль копірайтера більше не полягає в тому, щоб створювати переклад з нуля, а в тому, щоб переглядати контент, згенерований AI.
45
+
46
+ Чому? Тому що AI в 1,000x дешевший і безмежно швидший.
47
+
48
+ Однак існує обмеження. Копірайтинг — це не просто переклад; це адаптація повідомлення до різних культур і контекстів. Ми не продаємо iPhone вашій бабусі так само, як продаємо його китайському бізнес-керівникові. Тон, ідіома й культурні маркери мають відрізнятися.
49
+
50
+ Сьогодні найефективніший робочий процес — спочатку перекладати й позиціонувати ваші сторінки глобально за допомогою AI. Потім, на другому етапі, залучати людських копірайтерів для оптимізації певного контенту з високою відвідуваністю, щоб підвищити конверсію, коли продукт уже приносить дохід.
51
+
52
+ Хоча дохід Crowdin — сформований переважно його добре перевіреними успадкованими рішеннями — і надалі показує хороші результати, я вважаю, що традиційний сектор локалізації зазнає серйозного впливу в горизонті 5–10 років. Модель оплати за слово або за місце для інструмента управління стає застарілою.
53
+
54
+ ## Чому Intlayer — гарна альтернатива Crowdin?
55
+
56
+ Intlayer — це рішення, народжене в епоху AI. Воно спроектоване з принципом, що в 2026 році «сирий» переклад більше не має внутрішньої цінності. Це товар.
57
+
58
+ Тому Intlayer не позиціонує себе просто як TMS, а як рішення **Content Management**, яке глибоко інтегрує візуальний редактор та логіку інтернаціоналізації.
59
+
60
+ З Intlayer ви створюєте переклади за рахунок своїх інференсів. Ви не прив'язані до моделі ціноутворення платформи: ви обираєте провайдера (OpenAI, Anthropic, Mistral тощо), ви обираєте модель і здійснюєте переклад через CI (Continuous Integration), CLI або безпосередньо через інтегрований CMS. Це переносить цінність із доступу до перекладачів на управління контекстом.
61
+
62
+ # Порівняння пліч-о-пліч
63
+
64
+ | Функція | Crowdin (Legacy TMS) | Intlayer (AI-Native) |
65
+ | :----------------------- | :------------------------------------------------------ | :-------------------------------------------------------- |
66
+ | **Основна філософія** | Поєднує людей з рядками. | Керує логікою контенту та генерацією AI. |
67
+ | **Модель ціноутворення** | За користувача / тариф розміщення. | Оплачуєте власні інференси (BYO Key). |
68
+ | **Інтеграція** | Обмін файлами (завантаження/вивантаження). | Глибока інтеграція з кодом (декларативна). |
69
+ | **Оновлення** | Часто вимагає перебудов у CI/CD для розгортання тексту. | Миттєва синхронізація з кодовою базою або живим додатком. |
70
+ | **Формати файлів** | Різноманітні (.po, .xml, .yaml тощо). | Сучасний веб (JSON, JS, TS). |
71
+ | **Тестування** | Обмежене. | CI / CLI. |
72
+ | **Хостинг** | SaaS (переважно). | Open Source та можливість самостійного хостингу (Docker). |
73
+
74
+ Intlayer пропонує комплексне все‑в‑одному рішення для i18n, яке дозволяє глибоку інтеграцію вашого контенту. Ваш віддалений контент можна синхронізувати безпосередньо з вашою codebase або з live‑аплікацією. Для порівняння, Crowdin часто вимагає перебудови вашої аплікації в CI/CD пайплайні для оновлення контенту, що створює тертя між командою перекладу та процесом розгортання.
75
+
76
+ Крім того, Intlayer можна використовувати як Feature Flag або інструмент A/B тестування, що дозволяє динамічно тестувати різні варіації контенту — функціонал, який стандартні TMS, такі як Crowdin, не підтримують нативно.
77
+
78
+ Crowdin підтримує широкий спектр форматів файлів — включно із застарілими типами, такими як `.po`, `.xml` та `.yaml`, що може бути корисним для проєктів з усталеними робочими процесами або старих систем. Натомість Intlayer працює переважно з сучасними веб-орієнтованими форматами, такими як `.json`, `.js` та `.ts`. Це означає, що Intlayer може не бути сумісним з усіма застарілими форматами файлів, що слід враховувати командам, які мігрують зі старих платформ.
79
+
80
+ Нарешті, для тих, хто надає пріоритет суверенітету даних та контролю, Intlayer є open-source і може бути self-hosted. Файли Docker доступні безпосередньо в репозиторії, що дає вам повну власність над вашою інфраструктурою локалізації.