@intlayer/docs 7.5.0-canary.1 → 7.5.1

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 (394) hide show
  1. package/README.md +19 -19
  2. package/blog/ar/intlayer_with_i18next.md +1 -1
  3. package/blog/ar/intlayer_with_next-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_next-intl.md +1 -1
  5. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  6. package/blog/ar/intlayer_with_react-intl.md +1 -1
  7. package/blog/ar/intlayer_with_vue-i18n.md +1 -1
  8. package/blog/ar/l10n_platform_alternative/Lokalise.md +80 -0
  9. package/blog/ar/l10n_platform_alternative/crowdin.md +86 -0
  10. package/blog/ar/l10n_platform_alternative/phrase.md +82 -0
  11. package/blog/de/intlayer_with_i18next.md +1 -1
  12. package/blog/de/intlayer_with_next-i18next.md +1 -1
  13. package/blog/de/intlayer_with_next-intl.md +1 -1
  14. package/blog/de/intlayer_with_react-i18next.md +1 -1
  15. package/blog/de/intlayer_with_react-intl.md +1 -1
  16. package/blog/de/intlayer_with_vue-i18n.md +1 -1
  17. package/blog/de/l10n_platform_alternative/Lokalise.md +84 -0
  18. package/blog/de/l10n_platform_alternative/crowdin.md +80 -0
  19. package/blog/de/l10n_platform_alternative/phrase.md +82 -0
  20. package/blog/en/intlayer_with_i18next.md +1 -1
  21. package/blog/en/intlayer_with_next-i18next.md +1 -1
  22. package/blog/en/intlayer_with_next-intl.md +1 -1
  23. package/blog/en/intlayer_with_react-i18next.md +1 -1
  24. package/blog/en/intlayer_with_react-intl.md +1 -1
  25. package/blog/en/intlayer_with_vue-i18n.md +1 -1
  26. package/blog/en/l10n_platform_alternative/Lokalise.md +80 -0
  27. package/blog/en/l10n_platform_alternative/crowdin.md +80 -0
  28. package/blog/en/l10n_platform_alternative/phrase.md +78 -0
  29. package/blog/en-GB/intlayer_with_i18next.md +1 -1
  30. package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
  31. package/blog/en-GB/intlayer_with_next-intl.md +1 -1
  32. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  33. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  34. package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
  35. package/blog/en-GB/l10n_platform_alternative/Lokalise.md +80 -0
  36. package/blog/en-GB/l10n_platform_alternative/crowdin.md +80 -0
  37. package/blog/en-GB/l10n_platform_alternative/phrase.md +78 -0
  38. package/blog/es/intlayer_with_i18next.md +1 -1
  39. package/blog/es/intlayer_with_next-i18next.md +1 -1
  40. package/blog/es/intlayer_with_next-intl.md +1 -1
  41. package/blog/es/intlayer_with_react-i18next.md +1 -1
  42. package/blog/es/intlayer_with_react-intl.md +1 -1
  43. package/blog/es/intlayer_with_vue-i18n.md +1 -1
  44. package/blog/es/l10n_platform_alternative/Lokalise.md +80 -0
  45. package/blog/es/l10n_platform_alternative/crowdin.md +86 -0
  46. package/blog/es/l10n_platform_alternative/phrase.md +84 -0
  47. package/blog/fr/intlayer_with_i18next.md +1 -1
  48. package/blog/fr/intlayer_with_next-i18next.md +1 -1
  49. package/blog/fr/intlayer_with_next-intl.md +1 -1
  50. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  51. package/blog/fr/intlayer_with_react-intl.md +1 -1
  52. package/blog/fr/intlayer_with_vue-i18n.md +1 -1
  53. package/blog/fr/l10n_platform_alternative/Lokalise.md +84 -0
  54. package/blog/fr/l10n_platform_alternative/crowdin.md +86 -0
  55. package/blog/fr/l10n_platform_alternative/phrase.md +91 -0
  56. package/blog/hi/intlayer_with_i18next.md +1 -1
  57. package/blog/hi/intlayer_with_next-i18next.md +1 -1
  58. package/blog/hi/intlayer_with_next-intl.md +1 -1
  59. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  60. package/blog/hi/intlayer_with_react-intl.md +1 -1
  61. package/blog/hi/intlayer_with_vue-i18n.md +1 -1
  62. package/blog/hi/l10n_platform_alternative/Lokalise.md +86 -0
  63. package/blog/hi/l10n_platform_alternative/crowdin.md +84 -0
  64. package/blog/hi/l10n_platform_alternative/phrase.md +78 -0
  65. package/blog/id/intlayer_with_i18next.md +1 -1
  66. package/blog/id/intlayer_with_next-i18next.md +1 -1
  67. package/blog/id/intlayer_with_next-intl.md +1 -1
  68. package/blog/id/intlayer_with_react-i18next.md +1 -1
  69. package/blog/id/intlayer_with_react-intl.md +1 -1
  70. package/blog/id/intlayer_with_vue-i18n.md +1 -1
  71. package/blog/id/l10n_platform_alternative/Lokalise.md +86 -0
  72. package/blog/id/l10n_platform_alternative/crowdin.md +84 -0
  73. package/blog/id/l10n_platform_alternative/phrase.md +89 -0
  74. package/blog/it/intlayer_with_i18next.md +1 -1
  75. package/blog/it/intlayer_with_next-i18next.md +1 -1
  76. package/blog/it/intlayer_with_next-intl.md +1 -1
  77. package/blog/it/intlayer_with_react-i18next.md +1 -1
  78. package/blog/it/intlayer_with_react-intl.md +1 -1
  79. package/blog/it/intlayer_with_vue-i18n.md +1 -1
  80. package/blog/it/l10n_platform_alternative/Lokalise.md +84 -0
  81. package/blog/it/l10n_platform_alternative/crowdin.md +86 -0
  82. package/blog/it/l10n_platform_alternative/phrase.md +82 -0
  83. package/blog/ja/intlayer_with_i18next.md +1 -1
  84. package/blog/ja/intlayer_with_next-i18next.md +1 -1
  85. package/blog/ja/intlayer_with_next-intl.md +1 -1
  86. package/blog/ja/intlayer_with_react-i18next.md +1 -1
  87. package/blog/ja/intlayer_with_react-intl.md +1 -1
  88. package/blog/ja/intlayer_with_vue-i18n.md +1 -1
  89. package/blog/ja/l10n_platform_alternative/Lokalise.md +80 -0
  90. package/blog/ja/l10n_platform_alternative/crowdin.md +80 -0
  91. package/blog/ja/l10n_platform_alternative/phrase.md +78 -0
  92. package/blog/ko/intlayer_with_i18next.md +1 -1
  93. package/blog/ko/intlayer_with_next-i18next.md +1 -1
  94. package/blog/ko/intlayer_with_next-intl.md +1 -1
  95. package/blog/ko/intlayer_with_react-i18next.md +1 -1
  96. package/blog/ko/intlayer_with_react-intl.md +1 -1
  97. package/blog/ko/intlayer_with_vue-i18n.md +1 -1
  98. package/blog/ko/l10n_platform_alternative/Lokalise.md +80 -0
  99. package/blog/ko/l10n_platform_alternative/crowdin.md +86 -0
  100. package/blog/ko/l10n_platform_alternative/phrase.md +78 -0
  101. package/blog/pl/intlayer_with_i18next.md +1 -1
  102. package/blog/pl/intlayer_with_next-i18next.md +1 -1
  103. package/blog/pl/intlayer_with_next-intl.md +1 -1
  104. package/blog/pl/intlayer_with_react-i18next.md +1 -1
  105. package/blog/pl/intlayer_with_react-intl.md +1 -1
  106. package/blog/pl/intlayer_with_vue-i18n.md +1 -1
  107. package/blog/pl/l10n_platform_alternative/Lokalise.md +84 -0
  108. package/blog/pl/l10n_platform_alternative/crowdin.md +80 -0
  109. package/blog/pl/l10n_platform_alternative/phrase.md +82 -0
  110. package/blog/pt/intlayer_with_i18next.md +1 -1
  111. package/blog/pt/intlayer_with_next-i18next.md +1 -1
  112. package/blog/pt/intlayer_with_next-intl.md +1 -1
  113. package/blog/pt/intlayer_with_react-i18next.md +1 -1
  114. package/blog/pt/intlayer_with_react-intl.md +1 -1
  115. package/blog/pt/intlayer_with_vue-i18n.md +1 -1
  116. package/blog/pt/l10n_platform_alternative/Lokalise.md +80 -0
  117. package/blog/pt/l10n_platform_alternative/crowdin.md +86 -0
  118. package/blog/pt/l10n_platform_alternative/phrase.md +78 -0
  119. package/blog/ru/intlayer_with_i18next.md +1 -1
  120. package/blog/ru/intlayer_with_next-i18next.md +1 -1
  121. package/blog/ru/intlayer_with_next-intl.md +1 -1
  122. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  123. package/blog/ru/intlayer_with_react-intl.md +1 -1
  124. package/blog/ru/intlayer_with_vue-i18n.md +1 -1
  125. package/blog/ru/l10n_platform_alternative/Lokalise.md +80 -0
  126. package/blog/ru/l10n_platform_alternative/crowdin.md +86 -0
  127. package/blog/ru/l10n_platform_alternative/phrase.md +82 -0
  128. package/blog/tr/intlayer_with_i18next.md +1 -1
  129. package/blog/tr/intlayer_with_next-i18next.md +1 -1
  130. package/blog/tr/intlayer_with_next-intl.md +1 -1
  131. package/blog/tr/intlayer_with_react-i18next.md +1 -1
  132. package/blog/tr/intlayer_with_vue-i18n.md +1 -1
  133. package/blog/tr/l10n_platform_alternative/Lokalise.md +80 -0
  134. package/blog/tr/l10n_platform_alternative/crowdin.md +80 -0
  135. package/blog/tr/l10n_platform_alternative/phrase.md +89 -0
  136. package/blog/vi/intlayer_with_i18next.md +1 -1
  137. package/blog/vi/intlayer_with_next-i18next.md +1 -1
  138. package/blog/vi/intlayer_with_next-intl.md +1 -1
  139. package/blog/vi/intlayer_with_react-i18next.md +1 -1
  140. package/blog/vi/intlayer_with_react-intl.md +1 -1
  141. package/blog/vi/intlayer_with_vue-i18n.md +1 -1
  142. package/blog/vi/l10n_platform_alternative/Lokalise.md +87 -0
  143. package/blog/vi/l10n_platform_alternative/crowdin.md +80 -0
  144. package/blog/vi/l10n_platform_alternative/phrase.md +82 -0
  145. package/blog/zh/intlayer_with_i18next.md +1 -1
  146. package/blog/zh/intlayer_with_next-i18next.md +1 -1
  147. package/blog/zh/intlayer_with_next-intl.md +1 -1
  148. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  149. package/blog/zh/intlayer_with_react-intl.md +1 -1
  150. package/blog/zh/intlayer_with_vue-i18n.md +1 -1
  151. package/blog/zh/l10n_platform_alternative/Lokalise.md +80 -0
  152. package/blog/zh/l10n_platform_alternative/crowdin.md +84 -0
  153. package/blog/zh/l10n_platform_alternative/phrase.md +84 -0
  154. package/dist/cjs/common.cjs +6 -6
  155. package/dist/cjs/common.cjs.map +1 -1
  156. package/dist/cjs/generated/blog.entry.cjs +61 -4
  157. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  158. package/dist/cjs/generated/docs.entry.cjs +4 -4
  159. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  160. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -4
  161. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  162. package/dist/cjs/generated/legal.entry.cjs +4 -4
  163. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  164. package/dist/esm/generated/blog.entry.mjs +57 -0
  165. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  166. package/dist/types/generated/blog.entry.d.ts +3 -0
  167. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  168. package/docs/ar/dictionary/content_file.md +1 -1
  169. package/docs/ar/intlayer_CMS.md +1 -1
  170. package/docs/ar/intlayer_visual_editor.md +1 -1
  171. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  172. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  173. package/docs/ar/intlayer_with_nuxt.md +3 -3
  174. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  175. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
  176. package/docs/ar/intlayer_with_tanstack.md +1 -1
  177. package/docs/ar/intlayer_with_vite+react.md +1 -1
  178. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  179. package/docs/ar/packages/intlayer/getLocaleName.md +17 -1
  180. package/docs/ar/plugins/sync-json.md +1 -1
  181. package/docs/de/dictionary/content_file.md +1 -1
  182. package/docs/de/intlayer_CMS.md +1 -1
  183. package/docs/de/intlayer_visual_editor.md +1 -1
  184. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  185. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  186. package/docs/de/intlayer_with_nuxt.md +3 -3
  187. package/docs/de/intlayer_with_react_router_v7.md +1 -1
  188. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
  189. package/docs/de/intlayer_with_tanstack.md +1 -1
  190. package/docs/de/intlayer_with_vite+react.md +1 -1
  191. package/docs/de/intlayer_with_vite+vue.md +1 -1
  192. package/docs/de/packages/intlayer/getLocaleName.md +17 -1
  193. package/docs/de/plugins/sync-json.md +1 -1
  194. package/docs/en/dictionary/content_file.md +1 -1
  195. package/docs/en/intlayer_CMS.md +1 -1
  196. package/docs/en/intlayer_visual_editor.md +1 -1
  197. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  198. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  199. package/docs/en/intlayer_with_nuxt.md +3 -3
  200. package/docs/en/intlayer_with_react_router_v7.md +1 -1
  201. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
  202. package/docs/en/intlayer_with_tanstack.md +1 -1
  203. package/docs/en/intlayer_with_vite+preact.md +1 -2
  204. package/docs/en/intlayer_with_vite+react.md +1 -1
  205. package/docs/en/intlayer_with_vite+vue.md +1 -1
  206. package/docs/en/packages/intlayer/getLocaleName.md +17 -0
  207. package/docs/en/plugins/sync-json.md +1 -1
  208. package/docs/en-GB/dictionary/content_file.md +1 -1
  209. package/docs/en-GB/intlayer_CMS.md +1 -1
  210. package/docs/en-GB/intlayer_visual_editor.md +1 -1
  211. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  212. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  213. package/docs/en-GB/intlayer_with_nuxt.md +3 -3
  214. package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
  215. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  216. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  217. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  218. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  219. package/docs/en-GB/packages/intlayer/getLocaleName.md +17 -1
  220. package/docs/en-GB/plugins/sync-json.md +1 -1
  221. package/docs/es/dictionary/content_file.md +1 -1
  222. package/docs/es/intlayer_CMS.md +1 -1
  223. package/docs/es/intlayer_visual_editor.md +1 -1
  224. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  225. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  226. package/docs/es/intlayer_with_nuxt.md +3 -3
  227. package/docs/es/intlayer_with_react_router_v7.md +1 -1
  228. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
  229. package/docs/es/intlayer_with_tanstack.md +1 -1
  230. package/docs/es/intlayer_with_vite+react.md +1 -1
  231. package/docs/es/intlayer_with_vite+vue.md +1 -1
  232. package/docs/es/packages/intlayer/getLocaleName.md +17 -1
  233. package/docs/es/plugins/sync-json.md +1 -1
  234. package/docs/fr/dictionary/content_file.md +1 -1
  235. package/docs/fr/intlayer_CMS.md +1 -1
  236. package/docs/fr/intlayer_visual_editor.md +1 -1
  237. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  238. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  239. package/docs/fr/intlayer_with_nuxt.md +3 -3
  240. package/docs/fr/intlayer_with_react_router_v7.md +1 -1
  241. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  242. package/docs/fr/intlayer_with_tanstack.md +1 -1
  243. package/docs/fr/intlayer_with_vite+react.md +1 -1
  244. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  245. package/docs/fr/packages/intlayer/getLocaleName.md +17 -1
  246. package/docs/fr/plugins/sync-json.md +1 -1
  247. package/docs/hi/dictionary/content_file.md +1 -1
  248. package/docs/hi/intlayer_CMS.md +1 -1
  249. package/docs/hi/intlayer_visual_editor.md +1 -1
  250. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  251. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  252. package/docs/hi/intlayer_with_nuxt.md +3 -3
  253. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  254. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  255. package/docs/hi/intlayer_with_tanstack.md +1 -1
  256. package/docs/hi/intlayer_with_vite+react.md +1 -1
  257. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  258. package/docs/hi/packages/intlayer/getLocaleName.md +17 -1
  259. package/docs/hi/plugins/sync-json.md +1 -1
  260. package/docs/id/dictionary/content_file.md +1 -1
  261. package/docs/id/intlayer_CMS.md +1 -1
  262. package/docs/id/intlayer_visual_editor.md +1 -1
  263. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  264. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  265. package/docs/id/intlayer_with_nuxt.md +3 -3
  266. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  267. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
  268. package/docs/id/intlayer_with_tanstack.md +1 -1
  269. package/docs/id/intlayer_with_vite+preact.md +1 -2
  270. package/docs/id/intlayer_with_vite+react.md +1 -1
  271. package/docs/id/intlayer_with_vite+vue.md +1 -1
  272. package/docs/id/packages/intlayer/getLocaleName.md +17 -0
  273. package/docs/id/plugins/sync-json.md +1 -1
  274. package/docs/it/dictionary/content_file.md +1 -1
  275. package/docs/it/intlayer_CMS.md +1 -1
  276. package/docs/it/intlayer_visual_editor.md +1 -1
  277. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  278. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  279. package/docs/it/intlayer_with_nuxt.md +3 -3
  280. package/docs/it/intlayer_with_react_router_v7.md +1 -1
  281. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
  282. package/docs/it/intlayer_with_tanstack.md +1 -1
  283. package/docs/it/intlayer_with_vite+react.md +1 -1
  284. package/docs/it/intlayer_with_vite+vue.md +1 -1
  285. package/docs/it/packages/intlayer/getLocaleName.md +17 -1
  286. package/docs/it/plugins/sync-json.md +1 -1
  287. package/docs/ja/dictionary/content_file.md +1 -1
  288. package/docs/ja/intlayer_CMS.md +1 -1
  289. package/docs/ja/intlayer_visual_editor.md +1 -1
  290. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  291. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  292. package/docs/ja/intlayer_with_nuxt.md +3 -3
  293. package/docs/ja/intlayer_with_react_router_v7.md +1 -1
  294. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
  295. package/docs/ja/intlayer_with_tanstack.md +1 -1
  296. package/docs/ja/intlayer_with_vite+react.md +1 -1
  297. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  298. package/docs/ja/packages/intlayer/getLocaleName.md +17 -1
  299. package/docs/ja/plugins/sync-json.md +1 -1
  300. package/docs/ko/dictionary/content_file.md +1 -1
  301. package/docs/ko/intlayer_CMS.md +1 -1
  302. package/docs/ko/intlayer_visual_editor.md +1 -1
  303. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  304. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  305. package/docs/ko/intlayer_with_nuxt.md +3 -3
  306. package/docs/ko/intlayer_with_react_router_v7.md +1 -1
  307. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
  308. package/docs/ko/intlayer_with_tanstack.md +1 -1
  309. package/docs/ko/intlayer_with_vite+react.md +1 -1
  310. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  311. package/docs/ko/packages/intlayer/getLocaleName.md +17 -1
  312. package/docs/ko/plugins/sync-json.md +1 -1
  313. package/docs/pl/dictionary/content_file.md +1 -1
  314. package/docs/pl/intlayer_CMS.md +1 -1
  315. package/docs/pl/intlayer_visual_editor.md +1 -1
  316. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  317. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  318. package/docs/pl/intlayer_with_nuxt.md +3 -3
  319. package/docs/pl/intlayer_with_react_router_v7.md +1 -1
  320. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
  321. package/docs/pl/intlayer_with_tanstack.md +1 -1
  322. package/docs/pl/intlayer_with_vite+preact.md +1 -2
  323. package/docs/pl/intlayer_with_vite+react.md +1 -1
  324. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  325. package/docs/pl/packages/intlayer/getLocaleName.md +17 -0
  326. package/docs/pl/plugins/sync-json.md +1 -1
  327. package/docs/pt/dictionary/content_file.md +1 -1
  328. package/docs/pt/intlayer_CMS.md +1 -1
  329. package/docs/pt/intlayer_visual_editor.md +1 -1
  330. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  331. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  332. package/docs/pt/intlayer_with_nuxt.md +3 -3
  333. package/docs/pt/intlayer_with_react_router_v7.md +1 -1
  334. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +1 -1
  335. package/docs/pt/intlayer_with_tanstack.md +1 -1
  336. package/docs/pt/intlayer_with_vite+react.md +1 -1
  337. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  338. package/docs/pt/packages/intlayer/getLocaleName.md +17 -1
  339. package/docs/pt/plugins/sync-json.md +1 -1
  340. package/docs/ru/dictionary/content_file.md +1 -1
  341. package/docs/ru/intlayer_CMS.md +1 -1
  342. package/docs/ru/intlayer_visual_editor.md +1 -1
  343. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  344. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  345. package/docs/ru/intlayer_with_nuxt.md +3 -3
  346. package/docs/ru/intlayer_with_react_router_v7.md +1 -1
  347. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
  348. package/docs/ru/intlayer_with_tanstack.md +1 -1
  349. package/docs/ru/intlayer_with_vite+react.md +1 -1
  350. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  351. package/docs/ru/packages/intlayer/getLocaleName.md +17 -1
  352. package/docs/ru/plugins/sync-json.md +1 -1
  353. package/docs/tr/dictionary/content_file.md +1 -1
  354. package/docs/tr/intlayer_CMS.md +1 -1
  355. package/docs/tr/intlayer_visual_editor.md +1 -1
  356. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  357. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  358. package/docs/tr/intlayer_with_nuxt.md +3 -3
  359. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  360. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  361. package/docs/tr/intlayer_with_tanstack.md +1 -1
  362. package/docs/tr/intlayer_with_vite+react.md +1 -1
  363. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  364. package/docs/tr/packages/intlayer/getLocaleName.md +17 -0
  365. package/docs/tr/plugins/sync-json.md +1 -1
  366. package/docs/vi/dictionary/content_file.md +1 -1
  367. package/docs/vi/intlayer_CMS.md +1 -1
  368. package/docs/vi/intlayer_visual_editor.md +1 -1
  369. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  370. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  371. package/docs/vi/intlayer_with_nuxt.md +3 -3
  372. package/docs/vi/intlayer_with_react_router_v7.md +1 -1
  373. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  374. package/docs/vi/intlayer_with_tanstack.md +1 -1
  375. package/docs/vi/intlayer_with_vite+preact.md +1 -2
  376. package/docs/vi/intlayer_with_vite+react.md +1 -1
  377. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  378. package/docs/vi/packages/intlayer/getLocaleName.md +17 -0
  379. package/docs/vi/plugins/sync-json.md +1 -1
  380. package/docs/zh/dictionary/content_file.md +1 -1
  381. package/docs/zh/intlayer_CMS.md +1 -1
  382. package/docs/zh/intlayer_visual_editor.md +1 -1
  383. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  384. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  385. package/docs/zh/intlayer_with_nuxt.md +3 -3
  386. package/docs/zh/intlayer_with_react_router_v7.md +1 -1
  387. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
  388. package/docs/zh/intlayer_with_tanstack.md +1 -1
  389. package/docs/zh/intlayer_with_vite+react.md +1 -1
  390. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  391. package/docs/zh/packages/intlayer/getLocaleName.md +17 -1
  392. package/docs/zh/plugins/sync-json.md +1 -1
  393. package/package.json +8 -8
  394. package/src/generated/blog.entry.ts +57 -0
@@ -29,7 +29,7 @@ history:
29
29
 
30
30
  # Como automatizar suas traduções JSON do react-i18next usando Intlayer
31
31
 
32
- <iframe title="Como automatizar suas traduções JSON do react-i18next usando 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"/>
32
+ <iframe title="Como automatizar suas traduções JSON do react-i18next usando 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
33
 
34
34
  ## O que é o Intlayer?
35
35
 
@@ -27,7 +27,7 @@ history:
27
27
 
28
28
  # Como automatizar suas traduções JSON do react-intl usando Intlayer
29
29
 
30
- <iframe title="Como automatizar suas traduções JSON do react-intl usando 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"/>
30
+ <iframe title="Como automatizar suas traduções JSON do react-intl usando 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"/>
31
31
 
32
32
  ## Índice
33
33
 
@@ -27,7 +27,7 @@ history:
27
27
 
28
28
  # Internacionalização (i18n) em Vue.js com vue-i18n e Intlayer
29
29
 
30
- <iframe title="Como automatizar suas traduções JSON do vue-i18n usando 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"/>
30
+ <iframe title="Como automatizar suas traduções JSON do vue-i18n usando 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"/>
31
31
 
32
32
  ## Índice
33
33
 
@@ -0,0 +1,80 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: Alternativa de Plataforma L10n para o Lokalise
5
+ description: Encontre a melhor plataforma L10n alternativa ao Lokalise para as suas necessidades
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: Versão inicial
18
+ ---
19
+
20
+ # Uma alternativa open-source de L10n ao Lokalise (TMS)
21
+
22
+ ## Índice
23
+
24
+ <TOC/>
25
+
26
+ # Sistema de Gestão de Tradução
27
+
28
+ Um Translation Management System (TMS) é uma plataforma de software projetada para automatizar e otimizar o processo de tradução e localização (L10n). Tradicionalmente, um TMS funciona como um hub centralizado onde o conteúdo é carregado, organizado e atribuído a tradutores humanos. Ele gere fluxos de trabalho, armazena memórias de tradução (para evitar traduzir a mesma frase duas vezes) e trata da entrega dos ficheiros traduzidos de volta aos desenvolvedores ou gestores de conteúdo.
29
+
30
+ Em essência, um TMS tem sido historicamente a ponte entre o código técnico (onde as strings residem) e os linguistas humanos (que entendem a cultura).
31
+
32
+ # Lokalise
33
+
34
+ Lokalise é um actor significativo no panorama moderno de TMS. Fundada em 2017, chegou para revolucionar o mercado ao focar-se fortemente na developer experience (DX) e na integração com design. Ao contrário de concorrentes mais antigos, a Lokalise priorizou uma UI elegante, APIs poderosas e integrações com ferramentas como Figma e GitHub para reduzir o atrito de mover ficheiros de um lado para o outro.
35
+
36
+ Construiu o seu sucesso por ser o TMS "developer-friendly", automatizando a extração e inserção de strings para libertar tempo de engenharia. Resolveu, de forma eficaz, o problema da _continuous localization_ para equipas tecnológicas muito rápidas que queriam livrar-se dos emails com folhas de cálculo manuais.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer é conhecido principalmente como uma solução de i18n, mas também integra um headless CMS. Ao contrário da Lokalise, que atua em grande parte como uma ferramenta de sincronização externa para as suas strings, o Intlayer vive mais perto do seu código. Controla toda a stack — desde o bundling layer até o remote content delivery — resultando num fluxo de conteúdo mais suave e eficiente.
41
+
42
+ ## Porque é que os paradigmas mudaram desde a IA?
43
+
44
+ A Lokalise aperfeiçoou o lado "DevOps" da localização — mover strings automaticamente. Contudo, a chegada dos Large Language Models (LLMs) alterou fundamentalmente os paradigmas da localização. O gargalo já não é _mover_ as strings; é _gerá-las_.
45
+
46
+ Com LLMs, o custo da tradução desabou e a velocidade aumentou exponencialmente. O papel da equipa de localização está a mudar de "gerir tradutores" para "gerir contexto e revisão".
47
+
48
+ Embora a Lokalise tenha acrescentado funcionalidades de IA, continua fundamentalmente a ser uma plataforma concebida para gerir fluxos de trabalho humanos e cobrar por assento ou por número de chaves. Num mundo orientado por IA, o valor reside em quão bem consegue orquestrar os seus modelos de IA para gerar conteúdo contextualizado, e não apenas em quão facilmente consegue atribuir uma tarefa a uma agência humana.
49
+
50
+ Hoje, o fluxo de trabalho mais eficiente é traduzir e posicionar as suas páginas globalmente usando IA primeiro. Depois, numa segunda fase, utiliza-se copywriters humanos para otimizar conteúdos específicos de alto tráfego e aumentar a conversão, uma vez que o produto já esteja a gerar receita.
51
+
52
+ ## Porque o Intlayer é uma boa alternativa à Lokalise?
53
+
54
+ O Intlayer é uma solução nascida na era da IA. Foi concebido com o princípio de que a tradução bruta é uma mercadoria, mas o _contexto_ é rei.
55
+
56
+ A Lokalise é frequentemente criticada pelos seus escalões de preços elevados, que podem tornar-se proibitivamente caros à medida que uma startup cresce. O Intlayer adota uma abordagem diferente:
57
+
58
+ 1. **Eficiência de custos:** Não fica preso a um modelo de preços "por chave" ou "por assento" que penaliza o crescimento. Com o Intlayer, paga pela sua própria inferência (BYO Key), o que significa que os seus custos escalam diretamente com o seu uso real, e não com as margens da plataforma.
59
+ 2. **Integração de Workflow:** Enquanto a Lokalise exige sincronização de ficheiros (mesmo que automatizada), o Intlayer permite a definição de Conteúdo Declarativo diretamente nos seus ficheiros de componentes (React, Next.js, etc.). Isto mantém o contexto junto à UI, reduzindo erros.
60
+ 3. **Gestão Visual:** O Intlayer fornece um editor visual que interage diretamente com a sua aplicação em execução, garantindo que as edições são feitas em contexto visual completo—algo frequentemente desconectado nas listas de ficheiros de TMS tradicionais.
61
+
62
+ # Comparação lado a lado
63
+
64
+ | Funcionalidade | Lokalise (TMS moderno) | Intlayer (Nativo de IA) |
65
+ | :----------------------- | :------------------------------------------------------ | :------------------------------------------------------------- |
66
+ | **Filosofia central** | Automação & L10n na fase de design. | Gerencia a lógica de conteúdo e geração por IA. |
67
+ | **Modelo de preços** | Por assento / MAU / contagem de chaves (Custo elevado). | Pague pela sua própria inferência (BYO Key). |
68
+ | **Integração** | Sincronização via API / plugins Figma. | Integração profunda com o código (Declarativo). |
69
+ | **Atualizações** | Atrasos na sincronização / criação de PR necessária. | Sincronização instantânea com a codebase ou aplicação ao vivo. |
70
+ | **Formatos de ficheiro** | Agnóstico (Mobile, Web, Documents). | Web moderna (JSON, JS, TS). |
71
+ | **Testes** | Fluxo de revisão. | CI / CLI / Testes A/B. |
72
+ | **Hospedagem** | SaaS (Código fechado). | Código aberto e auto-hospedável (Docker). |
73
+
74
+ Intlayer oferece uma solução i18n completa e tudo-em-um que permite uma integração profunda do seu conteúdo. O seu conteúdo remoto pode ser sincronizado diretamente com a sua base de código ou com a sua aplicação em produção. Em comparação, o Lokalise geralmente depende da criação de Pull Requests para atualizar o conteúdo no seu repositório, o que mantém uma separação entre o "estado do conteúdo" e o "estado da aplicação."
75
+
76
+ Além disso, o Intlayer pode ser utilizado como um Feature Flag ou ferramenta de A/B testing, permitindo-lhe testar dinamicamente diferentes variações de conteúdo. Enquanto o Lokalise se foca em acertar as palavras, o Intlayer foca-se em acertar a _experiência do utilizador_ através do fornecimento dinâmico de dados.
77
+
78
+ A Lokalise é excelente para aplicações móveis (iOS/Android) e fluxos de trabalho orientados por design. No entanto, para aplicações web modernas que utilizam frameworks como Next.js ou React, o tratamento nativo da Intlayer de `.js`, `.ts` e dicionários JSON oferece uma experiência de desenvolvedor (DX) superior, com suporte completo a TypeScript para conteúdo — garantindo que nunca envie uma chave de tradução em falta novamente.
79
+
80
+ Por fim, para quem prioriza soberania e controlo dos dados, a Intlayer é open-source e pode ser self-hosted. Docker files estão disponíveis diretamente no repositório, dando-lhe propriedade total da sua infraestrutura de localização — um contraste acentuado com o modelo SaaS fechado da Lokalise.
@@ -0,0 +1,86 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: Alternativa de Plataforma L10n
5
+ description: Encontre a melhor alternativa de plataforma L10n para as suas necessidades
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
+ # Uma alternativa Open-Source de L10n ao Crowdin (TMS)
21
+
22
+ ## Índice
23
+
24
+ <TOC/>
25
+
26
+ # Sistema de Gestão de Traduções
27
+
28
+ Um Translation Management System (TMS) é uma plataforma de software projetada para automatizar e otimizar o processo de tradução e localização (L10n). Tradicionalmente, um TMS funciona como um hub centralizado onde o conteúdo é carregado, organizado e atribuído a tradutores humanos. Ele gere fluxos de trabalho, armazena memórias de tradução (para evitar retraduzir a mesma frase duas vezes) e trata da entrega dos ficheiros traduzidos de volta aos desenvolvedores ou gestores de conteúdo.
29
+
30
+ Na prática, historicamente um TMS tem sido a ponte entre o código técnico (onde as strings residem) e os linguistas humanos (que compreendem a cultura).
31
+
32
+ # Crowdin
33
+
34
+ Um Sistema de Gestão de Tradução (TMS) é uma plataforma de software projetada para automatizar e agilizar o processo de tradução e localização (L10n). Tradicionalmente, um TMS funciona como um hub centralizado onde o conteúdo é carregado, organizado e atribuído a tradutores humanos. Ele gere fluxos de trabalho, armazena memórias de tradução (para evitar traduzir a mesma frase duas vezes) e trata da entrega dos ficheiros traduzidos de volta aos desenvolvedores ou gestores de conteúdo.
35
+
36
+ Em essência, um TMS tem sido historicamente a ponte entre o código técnico (onde as strings residem) e os linguistas humanos (que entendem a cultura).
37
+
38
+ # Crowdin
39
+
40
+ Crowdin é um veterano neste domínio. Fundada em 2009, surgiu numa altura em que o principal desafio da localização era a conectividade. A sua missão era clara: colocar copywriters, tradutores e responsáveis de projeto em relação uns com os outros de forma eficaz.
41
+
42
+ Durante mais de uma década, o Crowdin tem sido o padrão da indústria para gerir a localização. Resolveu o problema da fragmentação ao permitir que equipas carreguem ficheiros `.po`, `.xml` ou `.yaml` e que os tradutores trabalhem neles numa interface na nuvem. Construiu a sua reputação numa automação sólida dos fluxos de trabalho, permitindo às empresas escalar de uma língua para dez sem se afogarem em folhas de cálculo.
43
+
44
+ # Intlayer
45
+
46
+ O Intlayer é conhecido principalmente como uma solução de i18n, mas também integra um CMS. Ao contrário do Crowdin, que se limita a atuar como um wrapper em torno da sua configuração de i18n existente, o Intlayer controla toda a stack — desde a camada de bundling até a entrega remota de conteúdo — resultando num fluxo de conteúdo mais fluido e eficiente.
47
+
48
+ ## Por que os paradigmas mudaram desde a chegada da IA?
49
+
50
+ Enquanto o Crowdin otimizava o fluxo de trabalho humano, a chegada dos Large Language Models (LLMs) alterou fundamentalmente os paradigmas da localização. O papel do copywriter já não é criar a tradução do zero, mas revisar o conteúdo gerado pela IA.
51
+
52
+ Por quê? Porque a IA é 1.000x mais barata e infinitamente mais rápida.
53
+
54
+ No entanto, existe uma limitação. O copywriting não se trata apenas de tradução; trata-se de adaptar a mensagem a diferentes culturas e contextos. Não vendemos um iPhone à sua avó da mesma forma que o vendemos a um executivo empresarial chinês. O tom, os usos idiomáticos e os marcadores culturais devem ser diferentes.
55
+
56
+ Hoje, o fluxo de trabalho mais eficiente é traduzir e posicionar as suas páginas globalmente usando AI primeiro. Depois, numa segunda fase, utiliza-se copywriters humanos para otimizar conteúdos específicos de alto tráfego e aumentar a conversão, uma vez que o produto já esteja a gerar receita.
57
+
58
+ Embora a receita da Crowdin — impulsionada principalmente pelas suas soluções legadas bem comprovadas — continue a apresentar bom desempenho, acredito que o setor tradicional de localização será severamente impactado num horizonte de 5 a 10 anos. O modelo de pagar por palavra ou por seat por uma ferramenta de gestão está a tornar-se obsoleto.
59
+
60
+ ## Por que o Intlayer é uma boa alternativa ao Crowdin?
61
+
62
+ Intlayer é uma solução nascida na era da IA. Foi arquitetada com o princípio de que em 2026 a tradução bruta já não possui valor intrínseco. É uma commodity.
63
+
64
+ Portanto, o Intlayer não se posiciona meramente como um TMS, mas como uma solução de **Content Management** que integra profundamente um editor visual e lógica de internacionalização.
65
+
66
+ Com o Intlayer, você gera suas traduções ao custo das suas inferências. Você não está preso ao modelo de preços de uma plataforma; você escolhe o provedor (OpenAI, Anthropic, Mistral, etc.), escolhe o modelo e traduz via CI (Continuous Integration), CLI, ou diretamente através do CMS integrado. Isso desloca o valor do acesso a tradutores para a gestão do contexto.
67
+
68
+ # Comparação lado a lado
69
+
70
+ | Funcionalidade | Crowdin (TMS Legado) | Intlayer (Nativo em IA) |
71
+ | :----------------------- | :------------------------------------------------------------------- | :--------------------------------------------------------------------- |
72
+ | **Filosofia Central** | Conecta humanos a strings. | Gerencia a lógica de conteúdo e geração por IA. |
73
+ | **Modelo de Preços** | Por assento / nível hospedado. | Pague pela sua própria inferência (traga sua própria chave — BYO Key). |
74
+ | **Integração** | Troca baseada em ficheiros (Upload/Download). | Integração profunda com o código (Declarativa). |
75
+ | **Atualizações** | Frequentemente requer reconstruções no CI/CD para implantar o texto. | Sincronização instantânea com a codebase ou aplicação ao vivo. |
76
+ | **Formatos de Ficheiro** | Diversos (.po, .xml, .yaml, etc.). | Web moderna (JSON, JS, TS). |
77
+ | **Testes** | Limitado. | CI / CLI. |
78
+ | **Hospedagem** | SaaS (na sua maioria). | Open Source e auto-hospedável (Docker). |
79
+
80
+ Intlayer oferece uma solução i18n completa e tudo-em-um que permite uma integração profunda do seu conteúdo. O seu conteúdo remoto pode ser sincronizado diretamente com a sua codebase ou com a sua aplicação em produção. Em comparação, o Crowdin frequentemente exige uma reconstrução da sua aplicação na pipeline de CI/CD para atualizar o conteúdo, criando atrito entre a equipa de tradução e o processo de implantação.
81
+
82
+ Além disso, o Intlayer pode ser utilizado como uma ferramenta de Feature Flag ou de A/B testing, permitindo testar dinamicamente diferentes variações de conteúdo — algo que ferramentas TMS padrão, como o Crowdin, não suportam nativamente.
83
+
84
+ Crowdin suporta uma ampla gama de formatos de ficheiro — incluindo tipos legados como `.po`, `.xml` e `.yaml`, o que pode ser benéfico para projetos com fluxos de trabalho estabelecidos ou sistemas mais antigos. O Intlayer, por contraste, funciona principalmente com formatos modernos orientados para a web, como `.json`, `.js` e `.ts`. Isto significa que o Intlayer pode não ser compatível com todos os formatos legados, o que é uma consideração para equipas a migrarem de plataformas mais antigas.
85
+
86
+ Finalmente, para quem prioriza a soberania e o controlo dos dados, o Intlayer é open-source e pode ser self-hosted. Ficheiros Docker estão disponíveis diretamente no repositório, permitindo-lhe controlo total sobre a sua infraestrutura de localização.
@@ -0,0 +1,78 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: Plataforma de L10n alternativa ao Phrase
5
+ description: Encontre a melhor plataforma de L10n alternativa ao Phrase para as suas necessidades
6
+ keywords:
7
+ - L10n
8
+ - TMS
9
+ - Phrase
10
+ slugs:
11
+ - blog
12
+ - l10n-platform-alternative
13
+ - phrase
14
+ history:
15
+ - version: 7.5.0
16
+ date: 2025-12-18
17
+ changes: Versão inicial
18
+ ---
19
+
20
+ # Uma alternativa Open-Source de L10n ao Phrase (TMS)
21
+
22
+ ## Índice
23
+
24
+ <TOC/>
25
+
26
+ # Sistema de Gestão de Tradução
27
+
28
+ Um Translation Management System (TMS) é uma plataforma de software projetada para automatizar e simplificar o processo de tradução e localização (L10n). Tradicionalmente, um TMS funciona como um hub centralizado onde o conteúdo é carregado, organizado e atribuído a tradutores humanos. Ele gere fluxos de trabalho, armazena memórias de tradução (para evitar retraduzir a mesma frase duas vezes) e trata da entrega dos ficheiros traduzidos de volta aos desenvolvedores ou gestores de conteúdo.
29
+
30
+ Essencialmente, um TMS tem sido historicamente a ponte entre o código técnico (onde as strings vivem) e os linguistas humanos (que compreendem a cultura).
31
+
32
+ # Phrase (anteriormente PhraseApp)
33
+
34
+ Phrase é um jogador de peso no espaço de localização empresarial. Originalmente conhecida como PhraseApp, cresceu significativamente, especialmente após a sua fusão com a Memsource. Posiciona-se como uma Localization Suite abrangente, concebida para a localização de software, oferecendo capacidades robustas de API e amplo suporte a formatos.
35
+
36
+ Phrase foi construída para escalar. É a escolha de referência para grandes empresas que precisam gerir fluxos de trabalho complexos, vastas memórias de tradução e processos rígidos de garantia de qualidade entre várias equipas. A sua força reside na capacidade de lidar com tarefas de localização "heavy duty", oferecendo um ecossistema tudo-em-um tanto para strings de software como para tradução de documentos.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer é conhecido principalmente como uma solução i18n, mas também integra um headless CMS. Ao contrário do Phrase, que funciona como uma grande suíte empresarial externa, o Intlayer atua como uma camada ágil integrada ao código. Controla toda a stack — desde a camada de bundling até à entrega remota de conteúdo — resultando num fluxo de conteúdo mais fluido e eficiente para aplicações web modernas.
41
+
42
+ ## Porque é que os paradigmas mudaram desde a IA?
43
+
44
+ O Phrase foi concebido para resolver os problemas da década anterior: gerir equipas massivas de tradutores humanos e padronizar fluxos de trabalho através de departamentos empresariais fragmentados. Sobressai na governança de fluxos de trabalho.
45
+
46
+ No entanto, a chegada dos Modelos de Linguagem de Grande Escala (LLMs) mudou fundamentalmente os paradigmas da localização. O desafio já não é "como gerimos 50 tradutores?" mas sim "como validamos conteúdo gerado por IA de forma eficiente?"
47
+
48
+ Embora o Phrase tenha integrado funcionalidades de IA, muitas vezes estas são sobrepostas a uma arquitetura legada concebida para fluxos de trabalho centrados em humanos e licenciamento por assento. Na era moderna, o atrito de "push para o TMS" e "pull do TMS" está a tornar-se obsoleto. Os developers esperam que o conteúdo seja tão fluido quanto o código.
49
+
50
+ Hoje, o fluxo de trabalho mais eficiente é traduzir e posicionar as suas páginas globalmente usando IA primeiro. Depois, numa segunda fase, utiliza-se copywriters humanos para otimizar conteúdos específicos de alto tráfego e aumentar a conversão, uma vez que o produto já esteja a gerar receitas.
51
+
52
+ ## Por que o Intlayer é uma boa alternativa ao Phrase?
53
+
54
+ O Intlayer é uma solução nascida na era da IA, concebida especificamente para o ecossistema moderno de JavaScript/TypeScript. Ele desafia o modelo enterprise pesado do Phrase com agilidade e transparência.
55
+
56
+ 1. **Transparência de preços:** O Phrase é conhecido pelo seu pricing Enterprise, que pode ser opaco e caro para empresas em crescimento. O Intlayer permite que você traga as suas próprias chaves de API (OpenAI, Anthropic, etc.), garantindo que paga preços de mercado pela inteligência em vez de uma sobretaxa numa subscrição da plataforma.
57
+ 2. **Developer Experience (DX):** O Phrase depende fortemente de ferramentas CLI e chamadas de API para sincronizar arquivos. O Intlayer integra-se diretamente ao bundler e ao runtime. Isso significa que suas definições são estritamente tipadas (TypeScript), e chaves ausentes são detectadas em tempo de compilação, não em produção.
58
+ 3. **Velocidade de entrega:** O Intlayer remove a "caixa preta" do TMS. Você não envia arquivos para fora e espera que eles voltem. Você gera traduções instantaneamente via IA no seu pipeline de CI ou no ambiente local, mantendo o ciclo de desenvolvimento enxuto.
59
+
60
+ # Comparação lado a lado
61
+
62
+ | Funcionalidade | Phrase (TMS Empresarial) | Intlayer (Nativo em IA) |
63
+ | :---------------------- | :------------------------------------------------- | :----------------------------------------------------------- |
64
+ | **Filosofia Principal** | Governança Empresarial e Fluxos de Trabalho. | Gerencia a lógica de conteúdo e a geração por IA. |
65
+ | **Modelo de Preços** | Empresarial customizado / por assento (alto). | Pague pela sua própria inferência (BYO Key). |
66
+ | **Integração** | Uso intensivo de API / CLI. | Integração profunda com o código (Declarativa). |
67
+ | **Atualizações** | Sincronização necessária / Dependente de pipeline. | Sincronização instantânea com a codebase ou app em produção. |
68
+ | **Formatos de Arquivo** | Extremamente abrangente (Legado & Documentos). | Web moderna (JSON, JS, TS). |
69
+ | **Testes** | Verificações de QA / Etapas de LQA. | CI / CLI / Testes A/B. |
70
+ | **Hospedagem** | SaaS (Estritamente Empresarial). | Open Source & Auto-hospedável (Docker). |
71
+
72
+ Intlayer oferece uma solução i18n completa e all-in-one que permite uma integração profunda do seu conteúdo. O seu conteúdo remoto pode ser sincronizado diretamente com a sua codebase ou com a sua aplicação em produção. Em comparação, o Phrase é uma dependência externa poderosa, porém complexa, que frequentemente exige gestores de localização dedicados para operar de forma eficaz.
73
+
74
+ Além disso, o Intlayer pode ser utilizado como um Feature Flag ou ferramenta de A/B testing, permitindo testar diferentes variações de conteúdo de forma dinâmica. O Phrase é desenhado para assegurar consistência linguística, enquanto o Intlayer ajuda a otimizar conversões e a experiência do utilizador através de dados dinâmicos.
75
+
76
+ Embora o Phrase seja incontestável para necessidades empresariais complexas e multi-formato (por exemplo, traduzir PDFs, legendas e software simultaneamente), o Intlayer é a escolha superior para equipes de produto que constroem aplicações web e que desejam propriedade total, type safety e um AI-driven workflow moderno, sem a sobrecarga empresarial.
77
+
78
+ Por fim, para quem prioriza soberania e controle dos dados, o Intlayer é open-source e pode ser self-hosted. Os arquivos Docker estão disponíveis diretamente no repositório, dando-lhe propriedade total da sua infraestrutura de localização — algo impossível com o ecossistema SaaS fechado do Phrase.
@@ -31,7 +31,7 @@ history:
31
31
 
32
32
  # Как автоматизировать ваши JSON-переводы i18next с помощью Intlayer
33
33
 
34
- <iframe title="Как автоматизировать ваши JSON-переводы 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
+ <iframe title="Как автоматизировать ваши JSON-переводы 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"/>
35
35
 
36
36
  ## Что такое Intlayer?
37
37
 
@@ -27,7 +27,7 @@ history:
27
27
 
28
28
  # Интернационализация Next.js (i18n) с next-i18next и Intlayer
29
29
 
30
- <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"/>
30
+ <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"/>
31
31
 
32
32
  ## Содержание
33
33
 
@@ -26,7 +26,7 @@ history:
26
26
 
27
27
  # Как автоматизировать перевод JSON для next-intl с помощью Intlayer
28
28
 
29
- <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"/>
29
+ <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"/>
30
30
 
31
31
  ## Что такое Intlayer?
32
32
 
@@ -29,7 +29,7 @@ history:
29
29
 
30
30
  # Как автоматизировать ваши JSON-переводы react-i18next с помощью Intlayer
31
31
 
32
- <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"/>
32
+ <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"/>
33
33
 
34
34
  ## Что такое Intlayer?
35
35
 
@@ -27,7 +27,7 @@ history:
27
27
 
28
28
  # Как автоматизировать ваши JSON-переводы react-intl с помощью Intlayer
29
29
 
30
- <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"/>
30
+ <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"/>
31
31
 
32
32
  ## Содержание
33
33
 
@@ -27,7 +27,7 @@ history:
27
27
 
28
28
  # Интернационализация Vue.js (i18n) с vue-i18n и Intlayer
29
29
 
30
- <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"/>
30
+ <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"/>
31
31
 
32
32
  ## Содержание
33
33
 
@@ -0,0 +1,80 @@
1
+ ---
2
+ createdAt: 2025-12-18
3
+ updatedAt: 2025-11-06
4
+ title: Open-Source альтернатива Lokalise для L10n
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
+ # Система управления переводами (Translation Management System)
27
+
28
+ Система управления переводами (TMS) — это программная платформа, предназначенная для автоматизации и оптимизации процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружается, упорядочивается и назначается контент человеческим переводчикам. Она управляет рабочими процессами, хранит память переводов (чтобы не переводить одно и то же предложение дважды) и занимается доставкой переведённых файлов обратно разработчикам или контент-менеджерам.
29
+
30
+ По сути, TMS исторически была мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культуру).
31
+
32
+ # Lokalise
33
+
34
+ Lokalise — значимый игрок в современной экосистеме TMS. Основанная в 2017 году, компания появилась, чтобы нарушить рынок, уделяя большое внимание developer experience (DX) и интеграции дизайна. В отличие от старых конкурентов, Lokalise сделал ставку на аккуратный UI, мощные API и интеграции с такими инструментами, как Figma и GitHub, чтобы уменьшить трение при перемещении файлов туда и обратно.
35
+
36
+ Её успех строился на роли "дружелюбной к разработчикам" TMS: автоматизации извлечения и вставки строк, освобождая время инженеров. Она эффективно решила проблему _непрерывной локализации_ для быстро движущихся технических команд, которые хотели избавиться от ручной рассылки таблиц по электронной почте.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Lokalise, который в основном выступает как внешний инструмент синхронизации ваших строк, Intlayer располагается ближе к вашему коду. Он контролирует весь стек — от слоя сборки (bundling layer) до удалённой доставки контента — что приводит к более плавному и эффективному потоку контента.
41
+
42
+ ## Почему парадигмы изменились с появлением AI?
43
+
44
+ Lokalise довёл до совершенства «DevOps»-сторону локализации — автоматическое перемещение строк. Однако появление Large Language Models (LLMs) фундаментально сместило парадигмы локализации. Узким местом больше не является _перемещение_ строк; им стало _создание_ этих строк.
45
+
46
+ С появлением LLMs стоимость перевода резко упала, а скорость выполнения выросла экспоненциально. Роль команды локализации смещается с «управления переводчиками» к «управлению контекстом и проверкой».
47
+
48
+ Хотя Lokalise добавил AI‑функции, по сути это остаётся платформой, предназначенной для управления человеческими рабочими процессами и взимания платы за «seat» или по количеству ключей. В мире, ориентированном на AI, ценность заключается в том, насколько хорошо вы умеете оркестровать ваши AI‑модели для генерации контента, учитывающего контекст, а не только в том, насколько просто поручить задачу человеческому агентству.
49
+
50
+ Сегодня наиболее эффективный рабочий процесс — сначала переводить и позиционировать ваши страницы глобально с помощью AI. Затем, на втором этапе, вы привлекаете человеческих копирайтеров для оптимизации конкретного контента с высоким трафиком, чтобы повысить конверсию, когда продукт уже начинает приносить доход.
51
+
52
+ ## Почему Intlayer — хорошая альтернатива Lokalise?
53
+
54
+ Intlayer — решение, рождённое в эпоху AI. Оно было спроектировано с принципом, что сырый перевод — это товар, но _контекст_ — король.
55
+
56
+ Lokalise часто критикуют за крутые уровни ценообразования, которые могут стать непомерно дорогими по мере роста стартапа. Intlayer придерживается иного подхода:
57
+
58
+ 1. **Cost Efficiency:** Вы не привязаны к модели ценообразования «per key» или «per seat», которая наказывает рост. С Intlayer вы платите за свой собственный inference (BYO Key), то есть ваши расходы масштабируются прямо пропорционально фактическому использованию, а не марже платформы.
59
+ 2. **Интеграция в рабочий процесс:** В то время как Lokalise требует синхронизации файлов (даже если она автоматизирована), Intlayer позволяет задавать Declarative Content непосредственно в ваших файлах компонентов (React, Next.js и т.д.). Это сохраняет контекст рядом с UI, снижая количество ошибок.
60
+ 3. **Визуальное управление:** Intlayer предоставляет визуальный редактор, который взаимодействует напрямую с запущенным приложением, обеспечивая внесение правок в полном визуальном контексте — то, что часто теряется в традиционных списках файлов TMS.
61
+
62
+ # Сравнение бок о бок
63
+
64
+ | Функция | Lokalise (Modern TMS) | Intlayer (AI-Native) |
65
+ | :------------------ | :--------------------------------------------------------- | :---------------------------------------------------- |
66
+ | **Core Philosophy** | Автоматизация и L10n на этапе дизайна. | Управляет логикой контента и генерацией с помощью AI. |
67
+ | **Pricing Model** | По месту / MAU / по количеству ключей (высокая стоимость). | Платите за собственные вычисления (BYO Key). |
68
+ | **Integration** | Синхронизация через API / плагины Figma. | Глубокая интеграция с кодом (декларативная). |
69
+ | **Updates** | Задержки синхронизации / требуется создание PR. | Мгновенная синхронизация с codebase или live app. |
70
+ | **File Formats** | Универсальные (Mobile, Web, Documents). | Современный веб (JSON, JS, TS). |
71
+ | **Testing** | Процесс ревью. | CI / CLI / A/B тестирование. |
72
+ | **Hosting** | SaaS (Closed Source). | Open Source & self-hostable (Docker). |
73
+
74
+ Intlayer предлагает полноценное, универсальное решение для i18n, которое позволяет глубоко интегрировать ваш контент. Ваш удалённый контент может синхронизироваться напрямую с кодовой базой или с работающим приложением. Для сравнения, Lokalise обычно полагается на создание Pull Request'ов для обновления контента в вашем репозитории, что сохраняет разделение между «состоянием контента» и «состоянием приложения».
75
+
76
+ Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B-тестирования, позволяющий динамически тестировать разные варианты контента. Если Lokalise фокусируется на корректности формулировок, то Intlayer ориентирован на правильный _пользовательский опыт_ через динамическую выдачу данных.
77
+
78
+ Lokalise отлично подходит для мобильных приложений (iOS/Android) и рабочих процессов, ориентированных на дизайн. Однако для современных веб-приложений, использующих фреймворки вроде Next.js или React, нативная обработка Intlayer файлов `.js`, `.ts` и JSON-словарей обеспечивает превосходный developer experience (DX) с полной поддержкой TypeScript для контента — это гарантирует, что вы больше никогда не выпустите приложение с отсутствующим ключом перевода.
79
+
80
+ Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer является open-source и может быть развернут самостоятельно. Docker-файлы доступны прямо в репозитории, что даёт вам полный контроль над вашей инфраструктурой локализации — резкий контраст с закрытой SaaS-моделью Lokalise.
@@ -0,0 +1,86 @@
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: Первоначальная версия
18
+ ---
19
+
20
+ # Открытая альтернатива Crowdin (TMS) для L10n
21
+
22
+ ## Содержание
23
+
24
+ <TOC/>
25
+
26
+ # Система управления переводами (TMS)
27
+
28
+ Система управления переводом (Translation Management System, TMS) — это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в качестве централизованного хаба, куда загружается, организуется и назначается контент живым переводчикам. Она управляет рабочими процессами, хранит translation memories (чтобы не переводить одну и ту же фразу дважды) и обеспечивает доставку переведённых файлов обратно разработчикам или менеджерам контента.
29
+
30
+ По сути, TMS исторически являлась мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культуру).
31
+
32
+ # Crowdin
33
+
34
+ Crowdin — ветеран в этой сфере. Основан в 2009 году, он появился в эпоху, когда основной проблемой локализации было обеспечение связности. Его миссия была ясна: эффективно связывать копирайтеров, переводчиков и владельцев проектов.
35
+
36
+ В течение более десяти лет Crowdin был отраслевым стандартом для управления локализацией. Он решил проблему фрагментации, позволив командам загружать файлы `.po`, `.xml` или `.yaml` и переводчикам работать с ними через облачный интерфейс. Репутацию он заработал благодаря надежной автоматизации рабочих процессов, что позволяло компаниям масштабироваться с одного языка до десяти, не утопая в таблицах.
37
+
38
+ # Intlayer
39
+
40
+ Intlayer известен прежде всего как решение для i18n, но также интегрирует CMS. В отличие от Crowdin, который ограничен ролью оболочки поверх вашей существующей i18n-настройки, Intlayer контролирует весь стек — от слоя бандлинга до удалённой доставки контента — что обеспечивает более плавный и эффективный поток контента.
41
+
42
+ ## Почему парадигмы изменились с появлением AI?
43
+
44
+ Хотя Crowdin оптимизировал человеческий рабочий процесс, появление Large Language Models (LLMs) фундаментально сместило парадигмы локализации. Роль копирайтера больше не в создании перевода с нуля, а в проверке и доработке контента, сгенерированного AI.
45
+
46
+ Почему? Потому что AI в 1 000 раз дешевле и бесконечно быстрее.
47
+
48
+ Однако есть ограничение. Копирайтинг — это не просто перевод; это адаптация сообщения для разных культур и контекстов. Мы не продаём iPhone вашей бабушке так же, как продаём его китайскому бизнес-руководителю. Тон, идиоматические обороты и культурные маркеры должны отличаться.
49
+
50
+ Сегодня наиболее эффективный рабочий процесс — сначала глобально переводить и позиционировать ваши страницы с помощью AI. Затем, на втором этапе, привлекаются человеческие копирайтеры для оптимизации конкретного высокотрафикового контента с целью повышения конверсии, когда продукт уже генерирует доход.
51
+
52
+ Хотя доходы Crowdin — в основном обеспечиваемые его проверенными legacy-решениями — по-прежнему остаются высокими, я считаю, что традиционный сектор локализации будет серьёзно затронут в горизонте 5–10 лет. Модель оплаты за слово или за место (seat) для инструмента управления становится устаревшей.
53
+
54
+ ## Почему Intlayer — хорошая альтернатива Crowdin?
55
+
56
+ Intlayer — решение, рождённое в эпоху AI. Оно было спроектировано с принципом, что в 2026 году сырой перевод перестаёт иметь внутреннюю ценность. Он становится товаром.
57
+
58
+ Поэтому Intlayer не позиционирует себя просто как TMS, а как решение для **управления контентом**, которое глубоко интегрирует визуальный редактор и логику интернационализации.
59
+
60
+ С Intlayer вы генерируете переводы за счёт собственных инференсов. Вы не привязаны к ценовой модели платформы; вы выбираете провайдера (OpenAI, Anthropic, Mistral и т.д.), выбираете модель и выполняете перевод через CI (Continuous Integration), CLI или напрямую через интегрированную CMS. Это смещает ценность с доступа к переводчикам к управлению контекстом.
61
+
62
+ # Сравнение бок о бок
63
+
64
+ | Feature | Crowdin (Legacy TMS) | Intlayer (AI-Native) |
65
+ | :------------------ | :-------------------------------------------------- | :-------------------------------------------------------------- |
66
+ | **Core Philosophy** | Соединяет людей со строками. | Управляет логикой контента и генерацией AI. |
67
+ | **Pricing Model** | За место (seat) / хостинговый тариф. | Платите за собственные инференсы (BYO Key). |
68
+ | **Integration** | Обмен файлами (Upload/Download). | Глубокая интеграция с кодовой базой (декларативно). |
69
+ | **Updates** | Часто требует пересборки в CI/CD для деплоя текста. | Мгновенная синхронизация с кодовой базой или живым приложением. |
70
+ | **File Formats** | Разнообразные (.po, .xml, .yaml и т.д.). | Современные веб-форматы (JSON, JS, TS). |
71
+ | **Testing** | Ограниченное. | CI / CLI. |
72
+ | **Hosting** | В основном SaaS. | Open Source и возможность самохостинга (Docker). |
73
+ | **Pricing Model** | Per seat / hosted tier. | Pay for your own inference (BYO Key). |
74
+ | **Integration** | File-based exchange (Upload/Download). | Deep code integration (Declarative). |
75
+ | **Updates** | Often requires CI/CD rebuilds to deploy text. | Instant sync with codebase or live app. |
76
+ | **File Formats** | Diverse (.po, .xml, .yaml, etc.). | Modern Web (JSON, JS, TS). |
77
+ | **Testing** | Limited. | CI / CLI. |
78
+ | **Hosting** | SaaS (mostly). | Open Source & Self-Hostable (Docker). |
79
+
80
+ Intlayer предлагает полноценное, «all-in-one» решение для i18n, которое позволяет глубоко интегрировать ваш контент. Ваш удалённый контент может синхронизироваться напрямую с кодовой базой или с работающим приложением. В сравнении, Crowdin часто требует пересборки приложения в вашем CI/CD pipeline для обновления контента, что создаёт трения между командой переводчиков и процессом деплоя.
81
+
82
+ Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B-тестирования, позволяющий динамически тестировать различные варианты контента — то, что стандартные TMS-инструменты, такие как Crowdin, не поддерживают нативно.
83
+
84
+ Crowdin поддерживает широкий спектр форматов файлов — включая устаревшие типы, такие как `.po`, `.xml` и `.yaml`, что может быть полезно для проектов с устоявшимися рабочими процессами или для старых систем. Intlayer, напротив, в основном работает с современными веб‑ориентированными форматами, такими как `.json`, `.js` и `.ts`. Это означает, что Intlayer может быть несовместим с некоторыми устаревшими форматами файлов, что следует учитывать командам, мигрирующим с более старых платформ.
85
+
86
+ Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer — проект с открытым исходным кодом и может быть развернут самостоятельно. Файлы Docker доступны прямо в репозитории, что даёт вам полный контроль над вашей инфраструктурой локализации.