@intlayer/docs 5.7.8 → 5.8.0

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 (297) hide show
  1. package/blog/ar/intlayer_with_next-i18next.md +5 -6
  2. package/blog/ar/intlayer_with_next-intl.md +3 -4
  3. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_react-intl.md +1 -1
  5. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
  6. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
  7. package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
  8. package/blog/de/intlayer_with_next-i18next.md +5 -6
  9. package/blog/de/intlayer_with_react-intl.md +1 -1
  10. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  11. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  12. package/blog/de/vue-i18n_vs_intlayer.md +268 -0
  13. package/blog/en/intlayer_with_next-i18next.md +5 -6
  14. package/blog/en/intlayer_with_next-intl.md +3 -4
  15. package/blog/en/intlayer_with_react-i18next.md +1 -1
  16. package/blog/en/intlayer_with_react-intl.md +1 -1
  17. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +89 -220
  18. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +85 -123
  19. package/blog/en/vue-i18n_vs_intlayer.md +268 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +5 -6
  21. package/blog/en-GB/intlayer_with_next-intl.md +3 -4
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
  25. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
  26. package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
  27. package/blog/es/intlayer_with_next-i18next.md +5 -6
  28. package/blog/es/intlayer_with_next-intl.md +3 -4
  29. package/blog/es/intlayer_with_react-i18next.md +1 -1
  30. package/blog/es/intlayer_with_react-intl.md +1 -1
  31. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  32. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  33. package/blog/es/vue-i18n_vs_intlayer.md +268 -0
  34. package/blog/fr/intlayer_with_next-i18next.md +5 -6
  35. package/blog/fr/intlayer_with_next-intl.md +3 -4
  36. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  37. package/blog/fr/intlayer_with_react-intl.md +1 -1
  38. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  39. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  40. package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
  41. package/blog/hi/intlayer_with_next-i18next.md +5 -6
  42. package/blog/hi/intlayer_with_next-intl.md +3 -4
  43. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  44. package/blog/hi/intlayer_with_react-intl.md +1 -1
  45. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
  46. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  47. package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
  48. package/blog/it/intlayer_with_next-i18next.md +5 -6
  49. package/blog/it/intlayer_with_next-intl.md +3 -4
  50. package/blog/it/intlayer_with_react-i18next.md +1 -1
  51. package/blog/it/intlayer_with_react-intl.md +1 -1
  52. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  53. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  54. package/blog/it/vue-i18n_vs_intlayer.md +268 -0
  55. package/blog/ja/intlayer_with_next-i18next.md +5 -6
  56. package/blog/ja/intlayer_with_next-intl.md +3 -4
  57. package/blog/ja/intlayer_with_react-intl.md +1 -1
  58. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  59. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  60. package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
  61. package/blog/ko/intlayer_with_next-i18next.md +5 -6
  62. package/blog/ko/intlayer_with_next-intl.md +3 -4
  63. package/blog/ko/intlayer_with_react-intl.md +1 -1
  64. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
  65. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  66. package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
  67. package/blog/pt/intlayer_with_next-i18next.md +5 -6
  68. package/blog/pt/intlayer_with_next-intl.md +3 -4
  69. package/blog/pt/intlayer_with_react-intl.md +1 -1
  70. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  71. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  72. package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
  73. package/blog/ru/intlayer_with_next-i18next.md +5 -6
  74. package/blog/ru/intlayer_with_next-intl.md +3 -4
  75. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  76. package/blog/ru/intlayer_with_react-intl.md +1 -1
  77. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
  78. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  79. package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
  80. package/blog/zh/intlayer_with_next-i18next.md +5 -6
  81. package/blog/zh/intlayer_with_next-intl.md +3 -4
  82. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  83. package/blog/zh/intlayer_with_react-intl.md +1 -1
  84. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  85. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  86. package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
  87. package/dist/cjs/generated/blog.entry.cjs +41 -0
  88. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  89. package/dist/cjs/generated/docs.entry.cjs +41 -0
  90. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  91. package/dist/esm/generated/blog.entry.mjs +41 -0
  92. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  93. package/dist/esm/generated/docs.entry.mjs +41 -0
  94. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  95. package/dist/types/generated/blog.entry.d.ts +1 -0
  96. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  97. package/dist/types/generated/docs.entry.d.ts +1 -0
  98. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  99. package/docs/ar/formatters.md +625 -0
  100. package/docs/ar/how_works_intlayer.md +2 -4
  101. package/docs/ar/interest_of_intlayer.md +159 -49
  102. package/docs/ar/intlayer_CMS.md +2 -3
  103. package/docs/ar/intlayer_visual_editor.md +2 -3
  104. package/docs/ar/intlayer_with_tanstack.md +1 -1
  105. package/docs/ar/introduction.md +7 -7
  106. package/docs/ar/packages/intlayer/index.md +3 -3
  107. package/docs/ar/packages/next-intlayer/index.md +3 -3
  108. package/docs/de/formatters.md +649 -0
  109. package/docs/de/interest_of_intlayer.md +161 -47
  110. package/docs/de/introduction.md +5 -5
  111. package/docs/de/packages/intlayer/index.md +3 -3
  112. package/docs/de/packages/next-intlayer/index.md +3 -3
  113. package/docs/de/packages/react-intlayer/index.md +3 -3
  114. package/docs/en/dictionary/enumeration.md +2 -2
  115. package/docs/en/dictionary/function_fetching.md +2 -2
  116. package/docs/en/dictionary/get_started.md +2 -2
  117. package/docs/en/dictionary/translation.md +2 -2
  118. package/docs/en/formatters.md +618 -0
  119. package/docs/en/how_works_intlayer.md +2 -4
  120. package/docs/en/interest_of_intlayer.md +170 -46
  121. package/docs/en/intlayer_CMS.md +2 -3
  122. package/docs/en/intlayer_visual_editor.md +2 -3
  123. package/docs/en/intlayer_with_create_react_app.md +2 -2
  124. package/docs/en/intlayer_with_express.md +2 -2
  125. package/docs/en/intlayer_with_tanstack.md +1 -1
  126. package/docs/en/introduction.md +7 -7
  127. package/docs/en/packages/express-intlayer/index.md +2 -2
  128. package/docs/en/packages/intlayer/getConfiguration.md +2 -3
  129. package/docs/en/packages/intlayer/getEnumeration.md +2 -7
  130. package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
  131. package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
  132. package/docs/en/packages/intlayer/getLocaleName.md +2 -3
  133. package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
  134. package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
  135. package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
  136. package/docs/en/packages/intlayer/getTranslation.md +2 -4
  137. package/docs/en/packages/intlayer/index.md +5 -5
  138. package/docs/en/packages/next-intlayer/index.md +5 -5
  139. package/docs/en/packages/next-intlayer/t.md +2 -2
  140. package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
  141. package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
  142. package/docs/en/packages/next-intlayer/useLocale.md +2 -2
  143. package/docs/en/packages/react-intlayer/index.md +5 -5
  144. package/docs/en/packages/react-intlayer/t.md +2 -2
  145. package/docs/en/packages/react-intlayer/useI18n.md +2 -2
  146. package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
  147. package/docs/en/packages/react-intlayer/useLocale.md +2 -2
  148. package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
  149. package/docs/en/packages/solid-intlayer/index.md +2 -2
  150. package/docs/en/packages/vite-intlayer/index.md +2 -2
  151. package/docs/en-GB/formatters.md +625 -0
  152. package/docs/en-GB/how_works_intlayer.md +2 -4
  153. package/docs/en-GB/interest_of_intlayer.md +157 -53
  154. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  155. package/docs/en-GB/introduction.md +2 -2
  156. package/docs/en-GB/packages/intlayer/index.md +3 -3
  157. package/docs/en-GB/packages/next-intlayer/index.md +3 -3
  158. package/docs/en-GB/packages/react-intlayer/index.md +3 -3
  159. package/docs/es/formatters.md +649 -0
  160. package/docs/es/how_works_intlayer.md +2 -4
  161. package/docs/es/interest_of_intlayer.md +156 -47
  162. package/docs/es/intlayer_with_tanstack.md +1 -1
  163. package/docs/es/introduction.md +5 -5
  164. package/docs/es/packages/intlayer/index.md +3 -3
  165. package/docs/es/packages/next-intlayer/index.md +3 -3
  166. package/docs/fr/formatters.md +649 -0
  167. package/docs/fr/how_works_intlayer.md +2 -4
  168. package/docs/fr/interest_of_intlayer.md +157 -46
  169. package/docs/fr/intlayer_with_tanstack.md +1 -1
  170. package/docs/fr/introduction.md +5 -5
  171. package/docs/fr/packages/intlayer/index.md +3 -3
  172. package/docs/fr/packages/next-intlayer/index.md +3 -3
  173. package/docs/fr/packages/react-intlayer/index.md +3 -3
  174. package/docs/hi/formatters.md +630 -0
  175. package/docs/hi/how_works_intlayer.md +2 -4
  176. package/docs/hi/interest_of_intlayer.md +155 -42
  177. package/docs/hi/intlayer_with_tanstack.md +1 -1
  178. package/docs/hi/introduction.md +5 -5
  179. package/docs/hi/packages/intlayer/index.md +3 -3
  180. package/docs/hi/packages/next-intlayer/index.md +3 -3
  181. package/docs/hi/packages/react-intlayer/index.md +3 -3
  182. package/docs/it/formatters.md +647 -0
  183. package/docs/it/how_works_intlayer.md +2 -4
  184. package/docs/it/interest_of_intlayer.md +157 -46
  185. package/docs/it/intlayer_with_tanstack.md +1 -1
  186. package/docs/it/introduction.md +5 -5
  187. package/docs/it/packages/intlayer/index.md +3 -3
  188. package/docs/it/packages/next-intlayer/index.md +3 -3
  189. package/docs/it/packages/react-intlayer/index.md +3 -3
  190. package/docs/ja/formatters.md +649 -0
  191. package/docs/ja/how_works_intlayer.md +2 -4
  192. package/docs/ja/interest_of_intlayer.md +154 -48
  193. package/docs/ja/intlayer_with_tanstack.md +1 -1
  194. package/docs/ja/introduction.md +5 -5
  195. package/docs/ja/packages/intlayer/index.md +3 -3
  196. package/docs/ja/packages/next-intlayer/index.md +3 -3
  197. package/docs/ja/packages/react-intlayer/index.md +3 -3
  198. package/docs/ko/formatters.md +649 -0
  199. package/docs/ko/how_works_intlayer.md +2 -4
  200. package/docs/ko/interest_of_intlayer.md +157 -48
  201. package/docs/ko/intlayer_with_tanstack.md +1 -1
  202. package/docs/ko/introduction.md +5 -5
  203. package/docs/ko/packages/intlayer/index.md +3 -3
  204. package/docs/ko/packages/next-intlayer/index.md +3 -3
  205. package/docs/ko/packages/react-intlayer/index.md +3 -3
  206. package/docs/pt/formatters.md +625 -0
  207. package/docs/pt/how_works_intlayer.md +2 -4
  208. package/docs/pt/interest_of_intlayer.md +162 -47
  209. package/docs/pt/intlayer_with_tanstack.md +1 -1
  210. package/docs/pt/introduction.md +5 -5
  211. package/docs/pt/packages/intlayer/index.md +3 -3
  212. package/docs/pt/packages/next-intlayer/index.md +3 -3
  213. package/docs/pt/packages/react-intlayer/index.md +3 -3
  214. package/docs/ru/autoFill.md +2 -2
  215. package/docs/ru/configuration.md +1 -40
  216. package/docs/ru/formatters.md +649 -0
  217. package/docs/ru/how_works_intlayer.md +5 -7
  218. package/docs/ru/index.md +1 -1
  219. package/docs/ru/interest_of_intlayer.md +165 -50
  220. package/docs/ru/intlayer_CMS.md +7 -8
  221. package/docs/ru/intlayer_cli.md +4 -7
  222. package/docs/ru/intlayer_visual_editor.md +5 -6
  223. package/docs/ru/intlayer_with_angular.md +1 -1
  224. package/docs/ru/intlayer_with_create_react_app.md +5 -5
  225. package/docs/ru/intlayer_with_lynx+react.md +1 -1
  226. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  227. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  228. package/docs/ru/intlayer_with_nuxt.md +1 -1
  229. package/docs/ru/intlayer_with_react_native+expo.md +2 -2
  230. package/docs/ru/intlayer_with_tanstack.md +3 -3
  231. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  232. package/docs/ru/intlayer_with_vite+react.md +3 -3
  233. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  234. package/docs/ru/intlayer_with_vite+svelte.md +1 -1
  235. package/docs/ru/intlayer_with_vite+vue.md +2 -2
  236. package/docs/ru/introduction.md +8 -8
  237. package/docs/ru/locale_mapper.md +1 -1
  238. package/docs/ru/packages/@intlayer/api/index.md +2 -2
  239. package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
  240. package/docs/ru/packages/@intlayer/cli/index.md +2 -2
  241. package/docs/ru/packages/@intlayer/config/index.md +2 -2
  242. package/docs/ru/packages/@intlayer/core/index.md +2 -2
  243. package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
  244. package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
  245. package/docs/ru/packages/@intlayer/editor/index.md +1 -1
  246. package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
  247. package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
  248. package/docs/ru/packages/angular-intlayer/index.md +1 -1
  249. package/docs/ru/packages/express-intlayer/index.md +3 -3
  250. package/docs/ru/packages/express-intlayer/t.md +1 -1
  251. package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
  252. package/docs/ru/packages/intlayer/getTranslation.md +3 -5
  253. package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
  254. package/docs/ru/packages/intlayer/index.md +6 -6
  255. package/docs/ru/packages/intlayer-cli/index.md +1 -1
  256. package/docs/ru/packages/intlayer-editor/index.md +2 -2
  257. package/docs/ru/packages/lynx-intlayer/index.md +1 -1
  258. package/docs/ru/packages/next-intlayer/index.md +7 -7
  259. package/docs/ru/packages/next-intlayer/t.md +4 -4
  260. package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
  261. package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
  262. package/docs/ru/packages/preact-intlayer/index.md +1 -1
  263. package/docs/ru/packages/react-intlayer/index.md +7 -7
  264. package/docs/ru/packages/react-intlayer/t.md +4 -4
  265. package/docs/ru/packages/react-native-intlayer/index.md +1 -1
  266. package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
  267. package/docs/ru/packages/solid-intlayer/index.md +3 -3
  268. package/docs/ru/packages/svelte-intlayer/index.md +1 -1
  269. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  270. package/docs/ru/packages/vue-intlayer/index.md +1 -1
  271. package/docs/ru/per_locale_file.md +1 -1
  272. package/docs/ru/roadmap.md +3 -5
  273. package/docs/ru/vs_code_extension.md +1 -1
  274. package/docs/zh/formatters.md +647 -0
  275. package/docs/zh/how_works_intlayer.md +2 -4
  276. package/docs/zh/interest_of_intlayer.md +155 -48
  277. package/docs/zh/intlayer_with_tanstack.md +1 -1
  278. package/docs/zh/introduction.md +5 -5
  279. package/docs/zh/packages/intlayer/index.md +3 -3
  280. package/docs/zh/packages/next-intlayer/index.md +3 -3
  281. package/docs/zh/packages/react-intlayer/index.md +3 -3
  282. package/frequent_questions/ar/domain_routing.md +1 -1
  283. package/frequent_questions/en/domain_routing.md +1 -1
  284. package/frequent_questions/en-GB/domain_routing.md +1 -1
  285. package/frequent_questions/es/domain_routing.md +1 -1
  286. package/frequent_questions/fr/domain_routing.md +1 -1
  287. package/frequent_questions/hi/domain_routing.md +1 -1
  288. package/frequent_questions/it/domain_routing.md +1 -1
  289. package/frequent_questions/ko/domain_routing.md +1 -1
  290. package/frequent_questions/pt/domain_routing.md +1 -1
  291. package/frequent_questions/ru/domain_routing.md +1 -1
  292. package/frequent_questions/ru/get_locale_cookie.md +4 -4
  293. package/frequent_questions/ru/static_rendering.md +1 -2
  294. package/frequent_questions/zh/domain_routing.md +1 -1
  295. package/package.json +11 -11
  296. package/src/generated/blog.entry.ts +41 -0
  297. package/src/generated/docs.entry.ts +41 -0
@@ -25,8 +25,8 @@ slugs:
25
25
  .
26
26
  └── Components
27
27
  └── MyComponent
28
- ├── index.content.cjs
29
- └── index.mjs
28
+ ├── index.content.ts
29
+ └── index.tsx
30
30
  ```
31
31
 
32
32
  Для этого роль Intlayer заключается в том, чтобы находить все ваши `файлы с объявлением контента` во всех различных форматах, присутствующих в вашем проекте, а затем генерировать из них `словари`.
@@ -45,12 +45,10 @@ slugs:
45
45
  - с использованием плагинов приложения, таких как пакет [`vite-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/vite-intlayer/index.md), или их эквивалентов для [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/next-intlayer/index.md). При использовании одного из этих плагинов Intlayer автоматически создаст ваши словари при запуске (dev) или сборке (prod) вашего приложения.
46
46
 
47
47
  1. Объявление файлов контента
48
-
49
48
  - Файлы контента могут быть определены в различных форматах, таких как TypeScript, ECMAScript, CommonJS или JSON.
50
49
  - Файлы контента могут быть определены в любом месте проекта, что позволяет улучшить обслуживание и масштабируемость. Важно соблюдать соглашения о расширениях файлов для файлов контента. По умолчанию это расширение `*.content.{js|cjs|mjs|ts|tsx|json}`, но его можно изменить в [файле конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
51
50
 
52
51
  2. Генерация `словарей`
53
-
54
52
  - Словари генерируются из файлов контента. По умолчанию словари Intlayer генерируются в директории `.intlayer/dictionaries` проекта.
55
53
  - Эти словари генерируются в различных форматах, чтобы удовлетворить все потребности и оптимизировать производительность приложения.
56
54
 
@@ -59,7 +57,7 @@ slugs:
59
57
 
60
58
  - Типы словарей генерируются из `файлов декларации контента` Intlayer. По умолчанию типы словарей Intlayer генерируются в директории `.intlayer/types` проекта.
61
59
 
62
- - [Расширение модулей](https://www.typescriptlang.org/docs/handbook/declaration-merging.html) Intlayer это функция TypeScript, которая позволяет вам определять дополнительные типы для Intlayer. Это упрощает процесс разработки, предлагая доступные или обязательные аргументы.
60
+ - [Расширение модулей](https://www.typescriptlang.org/docs/handbook/declaration-merging.html) Intlayer - это функция TypeScript, которая позволяет вам определять дополнительные типы для Intlayer. Это упрощает процесс разработки, предлагая доступные или обязательные аргументы.
63
61
  Среди сгенерированных типов добавляются типы словарей Intlayer или даже типы конфигурации языка в файл `types/intlayer.d.ts` и используются другими пакетами. Для этого необходимо, чтобы файл `tsconfig.json` был настроен на включение директории `types` проекта.
64
62
 
65
63
  ### Этап интерпретации словарей
@@ -91,8 +89,8 @@ Intlayer также предоставляет визуальный редакт
91
89
 
92
90
  ![визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.gif)
93
91
 
94
- - Сервер это простое приложение на Express, которое прослушивает запросы от клиента и получает контент вашего приложения, такой как `dictionaries` и конфигурация, чтобы сделать его доступным на стороне клиента.
95
- - С другой стороны, клиент это приложение на React, которое используется для взаимодействия с вашим контентом через визуальный интерфейс.
92
+ - Сервер - это простое приложение на Express, которое прослушивает запросы от клиента и получает контент вашего приложения, такой как `dictionaries` и конфигурация, чтобы сделать его доступным на стороне клиента.
93
+ - С другой стороны, клиент - это приложение на React, которое используется для взаимодействия с вашим контентом через визуальный интерфейс.
96
94
  Когда вы вызываете ваш контент с помощью `useIntlayer` и редактор включен, строки автоматически оборачиваются в объект Proxy с именем `IntlayerNode`. Этот узел использует `window.postMessage` для связи с обернутым iframe, содержащим интерфейс визуального редактора.
97
95
  Со стороны редактора, редактор прослушивает эти сообщения и имитирует реальное взаимодействие с вашим контентом, позволяя редактировать текст напрямую в контексте вашего приложения.
98
96
 
package/docs/ru/index.md CHANGED
@@ -32,7 +32,7 @@ Intlayer предлагает гибкий, современный подход
32
32
  Получите обзор того, как работает Intlayer, его основных функций и почему он меняет правила игры в области i18n.
33
33
 
34
34
  - **[Как работает Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/how_works_intlayer.md)**
35
- Погрузитесь в архитектурный дизайн и узнайте, как Intlayer обрабатывает все от объявления контента до доставки перевода.
35
+ Погрузитесь в архитектурный дизайн и узнайте, как Intlayer обрабатывает все - от объявления контента до доставки перевода.
36
36
 
37
37
  - **[Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)**
38
38
  Настройте Intlayer под нужды вашего проекта. Изучите варианты промежуточного программного обеспечения, структуру каталогов и расширенные настройки.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-14
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-08-20
4
4
  title: Преимущества Intlayer
5
5
  description: Узнайте о преимуществах и достоинствах использования Intlayer в ваших проектах. Поймите, почему Intlayer выделяется среди других фреймворков.
6
6
  keywords:
@@ -11,58 +11,122 @@ keywords:
11
11
  - Сравнение
12
12
  slugs:
13
13
  - doc
14
- - concept
15
- - interest
14
+ - why
16
15
  ---
17
16
 
18
- # Intlayer: Индивидуальный способ перевода вашего сайта
17
+ # Почему стоит рассмотреть Intlayer?
19
18
 
20
- **Intlayer** это библиотека интернационализации, разработанная специально для разработчиков на JavaScript. Она позволяет объявлять ваш контент в любом месте вашего кода. Она преобразует объявления многоязычного контента в структурированные словари для легкой интеграции в ваш код. Используя TypeScript, **Intlayer** делает вашу разработку более надежной и эффективной.
19
+ ## Что такое Intlayer?
21
20
 
22
- ## Пример использования
21
+ **Intlayer** - это библиотека интернационализации, разработанная специально для JavaScript-разработчиков. Она позволяет объявлять ваш контент в любом месте вашего кода. Она преобразует объявления многоязычного контента в структурированные словари для легкой интеграции в ваш код. Используя TypeScript, **Intlayer** делает вашу разработку более надежной и эффективной.
22
+
23
+ ## Почему был создан Intlayer?
24
+
25
+ Intlayer был создан для решения общей проблемы, которая затрагивает все популярные библиотеки i18n, такие как `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` и `vue-i18n`.
26
+
27
+ Все эти решения используют централизованный подход для перечисления и управления вашим контентом. Например:
28
+
29
+ ```bash
30
+ .
31
+ ├── locales
32
+ │ ├── en.json
33
+ │ ├── fr.json
34
+ │ └── es.json
35
+ ├── i18n.ts
36
+ └── src
37
+ └── components
38
+ └── MyComponent
39
+ └── index.tsx
40
+ ```
41
+
42
+ Или здесь с использованием пространств имён:
43
+
44
+ ```bash
45
+ .
46
+ ├── locales
47
+ │ ├── en
48
+ │ │ ├── footer.json
49
+ │ │ └── navbar.json
50
+ │ ├── fr
51
+ │ │ ├── footer.json
52
+ │ │ └── navbar.json
53
+ │ └── es
54
+ │ ├── footer.json
55
+ │ └── navbar.json
56
+ ├── i18n.ts
57
+ └── src
58
+ └── components
59
+ └── MyComponent
60
+ └── index.tsx
61
+ ```
62
+
63
+ Такой тип архитектуры замедляет процесс разработки и усложняет поддержку кода по нескольким причинам:
64
+
65
+ 1. **Для каждого нового созданного компонента необходимо:**
66
+ - Создать новый ресурс/пространство имён в папке `locales`
67
+ - Не забыть импортировать новое пространство имён на вашей странице
68
+ - Перевести ваш контент (часто выполняется вручную путём копирования/вставки из AI-сервисов)
69
+
70
+ 2. **Для любых изменений в ваших компонентах необходимо:**
71
+ - Найти соответствующий ресурс/пространство имён (которое находится далеко от компонента)
72
+ - Перевести ваш контент
73
+ - Убедиться, что ваш контент актуален для всех локалей
74
+ - Проверить, что в вашем пространстве имён нет неиспользуемых ключей/значений
75
+ - Убедиться, что структура ваших JSON-файлов одинакова для всех локалей
76
+
77
+ В профессиональных проектах, использующих эти решения, часто применяются платформы локализации для управления переводом вашего контента. Однако для крупных проектов это может быстро стать дорогостоящим.
78
+
79
+ Для решения этой проблемы Intlayer использует подход, при котором контент ограничивается областью компонента и хранится рядом с вашим компонентом, как это часто делается с CSS (`styled-components`), типами, документацией (`storybook`) или модульными тестами (`jest`).
23
80
 
24
81
  ```bash codeFormat="typescript"
25
82
  .
26
- └── Components
83
+ └── components
27
84
  └── MyComponent
28
85
  ├── index.content.ts
86
+ ├── index.test.tsx
87
+ ├── index.stories.tsx
29
88
  └── index.tsx
30
89
  ```
31
90
 
32
91
  ```bash codeFormat="commonjs"
33
92
  .
34
- └── Components
93
+ └── components
35
94
  └── MyComponent
36
95
  ├── index.content.cjs
37
- └── index.mjs
96
+ ├── index.test.mjs
97
+ ├── index.stories.mjs
98
+ └── index.tsx
38
99
  ```
39
100
 
40
101
  ```bash codeFormat="esm"
41
102
  .
42
- └── Components
103
+ └── components
43
104
  └── MyComponent
44
105
  ├── index.content.mjs
45
- └── index.js
106
+ ├── index.test.mjs
107
+ ├── index.stories.mjs
108
+ └── index.tsx
46
109
  ```
47
110
 
48
- ```tsx fileName="./Components/MyComponent/index.content.ts" codeFormat="typescript"
111
+ ```tsx fileName="./components/MyComponent/index.content.ts" codeFormat="typescript"
49
112
  import { t, type Dictionary } from "intlayer";
50
113
 
51
114
  const componentExampleContent = {
52
115
  key: "component-example",
53
116
  content: {
54
117
  myTranslatedContent: t({
55
- en: "Hello World", // английский
56
- fr: "Bonjour le monde", // французский
57
- es: "Hola Mundo", // испанский
118
+ en: "Hello World",
119
+ es: "Hola Mundo",
120
+ fr: "Bonjour le monde",
58
121
  }),
59
122
  },
60
123
  } satisfies Dictionary;
61
124
 
125
+ // Экспортируем контент компонента по умолчанию
62
126
  export default componentExampleContent;
63
127
  ```
64
128
 
65
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
129
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
66
130
  import { t } from "intlayer";
67
131
 
68
132
  /** @type {import('intlayer').Dictionary} */
@@ -70,9 +134,9 @@ const componentExampleContent = {
70
134
  key: "component-example",
71
135
  content: {
72
136
  myTranslatedContent: t({
73
- en: "Hello World", // английский
74
- fr: "Bonjour le monde", // французский
75
- es: "Hola Mundo", // испанский
137
+ en: "Hello World",
138
+ es: "Hola Mundo",
139
+ fr: "Bonjour le monde",
76
140
  }),
77
141
  },
78
142
  };
@@ -80,25 +144,27 @@ const componentExampleContent = {
80
144
  export default componentExampleContent;
81
145
  ```
82
146
 
83
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
147
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
84
148
  const { t } = require("intlayer");
85
149
 
86
150
  /** @type {import('intlayer').Dictionary} */
151
+ // Определение контента компонента с переводами
87
152
  const componentExampleContent = {
88
153
  key: "component-example",
89
154
  content: {
90
155
  myTranslatedContent: t({
91
- en: "Hello World", // английский
92
- fr: "Bonjour le monde", // французский
93
- es: "Hola Mundo", // испанский
156
+ en: "Hello World",
157
+ es: "Hola Mundo",
158
+ fr: "Bonjour le monde",
94
159
  }),
95
160
  },
96
161
  };
97
162
 
163
+ // Экспортируем контент компонента для CommonJS
98
164
  module.exports = componentExampleContent;
99
165
  ```
100
166
 
101
- ```tsx fileName="./Components/MyComponent/index.tsx" codeFormat="typescript"
167
+ ```tsx fileName="./components/MyComponent/index.tsx" codeFormat="typescript"
102
168
  import { useIntlayer } from "react-intlayer";
103
169
 
104
170
  export const ComponentExample = () => {
@@ -108,7 +174,7 @@ export const ComponentExample = () => {
108
174
  };
109
175
  ```
110
176
 
111
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
177
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
112
178
  import { useIntlayer } from "react-intlayer";
113
179
 
114
180
  const ComponentExample = () => {
@@ -118,7 +184,7 @@ const ComponentExample = () => {
118
184
  };
119
185
  ```
120
186
 
121
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
187
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
122
188
  const { useIntlayer } = require("react-intlayer");
123
189
 
124
190
  const ComponentExample = () => {
@@ -128,27 +194,76 @@ const ComponentExample = () => {
128
194
  };
129
195
  ```
130
196
 
131
- ## Почему стоит выбрать Intlayer?
132
-
133
- | Особенность | Описание |
134
- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
135
- | **Управление контентом на базе JavaScript** | Используйте гибкость JavaScript для эффективного определения и управления вашим контентом. |
136
- | **Типобезопасная среда** | Используйте TypeScript, чтобы гарантировать точность и отсутствие ошибок во всех ваших определениях контента. |
137
- | **Интегрированные файлы контента** | Держите ваши переводы рядом с соответствующими компонентами, что повышает удобство поддержки и ясность. |
138
- | **Упрощённая настройка** | Быстрый запуск с минимальной конфигурацией, особенно оптимизирован для проектов на Next.js. |
139
- | **Поддержка серверных компонентов** | Идеально подходит для серверных компонентов Next.js, обеспечивая плавный рендеринг на стороне сервера. |
140
- | **Расширенная маршрутизация** | Полная поддержка маршрутизации приложений Next.js, плавно адаптирующаяся к сложным структурам приложений. |
141
- | **Организованная кодовая база** | Поддерживайте вашу кодовую базу более организованной: 1 компонент = 1 словарь в той же папке. |
142
- | **Автоматический перевод в CI** | Автоматически заполняйте ваши переводы в CI, используя собственный API-ключ OpenAI, исключая необходимость в платформе локализации (L10n). |
143
- | **Интеграция MCP сервера** | Обеспечивает MCP (Model Context Protocol) сервер для автоматизации IDE, позволяя бесшовно управлять контентом и рабочими процессами интернационализации (i18n) непосредственно в вашей среде разработки. [Узнать больше](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/mcp_server.md). |
144
- | **Поддержка Markdown** | Импорт и интерпретация файлов markdown для многоязычного контента, такого как политики конфиденциальности. |
145
- | **Бесплатный визуальный редактор и CMS** | Бесплатный визуальный редактор и CMS доступны, если вам нужно работать с авторами контента для ваших переводов, что вновь устраняет необходимость в платформе локализации и позволяет вынести контент за пределы кодовой базы. |
146
- | **Упрощённый доступ к контенту** | Нет необходимости вызывать функцию `t` для каждого элемента контента; получите весь ваш контент напрямую, используя один хук. |
147
- | **Последовательная реализация** | Одинаковая реализация как для клиентских, так и для серверных компонентов, нет необходимости передавать функцию `t` через каждый серверный компонент. |
148
- | **Контент с возможностью tree-shaking** | Контент поддерживает tree-shaking, что уменьшает размер итогового бандла. |
149
- | **Неблокирующий статический рендеринг** | Intlayer не блокирует статический рендеринг, в отличие от `next-intl`. |
150
- | **Взаимодействие** | Обеспечивает взаимодействие с [react-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_react-i18next.md), [next-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_next-i18next.md), [next-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_next-intl.md) и [react-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_react-intl.md). |
151
-
152
- ## История документации
153
-
154
- - 5.5.10 - 2025-06-29: Инициализация истории
197
+ Этот подход позволяет вам:
198
+
199
+ 1. **Увеличить скорость разработки**
200
+ - Файлы `.content.{{ts|mjs|cjs|json}}` можно создавать с помощью расширения для VSCode
201
+ - Инструменты автозаполнения на базе ИИ в вашей IDE (например, GitHub Copilot) могут помочь вам объявлять ваш контент, уменьшая необходимость копирования/вставки
202
+
203
+ 2. **Очистить вашу кодовую базу**
204
+ - Снизить сложность
205
+ - Повысить поддерживаемость
206
+
207
+ 3. **Проще дублировать ваши компоненты и связанный с ними контент (например: компоненты входа/регистрации и т.д.)**
208
+ - Ограничивая риск влияния на контент других компонентов
209
+ - Копируя и вставляя ваш контент из одного приложения в другое без внешних зависимостей
210
+
211
+ 4. **Избегать загрязнения кодовой базы неиспользуемыми ключами/значениями для неиспользуемых компонентов**
212
+ - Если вы не используете компонент, Intlayer не будет импортировать его связанный контент
213
+ - Если вы удаляете компонент, вам будет проще не забыть удалить связанный с ним контент, так как он будет находиться в той же папке
214
+
215
+ 5. **Снизить затраты на размышления для ИИ-агентов при объявлении вашего многоязычного контента**
216
+ - ИИ-агенту не нужно сканировать всю вашу кодовую базу, чтобы понять, где реализовать ваш контент
217
+ - Переводы легко выполняются с помощью инструментов автозаполнения на базе ИИ в вашей IDE (например, GitHub Copilot)
218
+
219
+ ## Дополнительные возможности Intlayer
220
+
221
+ | Функция | Описание |
222
+ | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
223
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Поддержка нескольких фреймворков**<br><br>Intlayer совместим со всеми основными фреймворками и библиотеками, включая Next.js, React, Vite, Vue.js, Nuxt, Preact, Express и другие. |
224
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.png?raw=true) | **Управление контентом на основе JavaScript**<br><br>Используйте гибкость JavaScript для эффективного определения и управления вашим контентом. <br><br> - [Объявление контента](https://intlayer.org/doc/concept/content) |
225
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Файл объявления контента для каждого локалитета**<br><br>Ускорьте разработку, объявляя ваш контент один раз, до автоматической генерации.<br><br> - [Файл объявления контента для каждого локалитета](https://intlayer.org/doc/concept/per-locale-file) |
226
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Типобезопасная среда**<br><br>Используйте TypeScript, чтобы гарантировать отсутствие ошибок в определениях контента и коде, а также получать преимущества автозаполнения в IDE.<br><br> - [Настройка TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
227
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Упрощённая настройка**<br><br>Быстрый старт с минимальной конфигурацией. Легко настраивайте параметры интернационализации, маршрутизации, ИИ, сборки и обработки контента.<br><br> - [Изучите интеграцию с Next.js](https://intlayer.org/doc/environment/nextjs) |
228
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Упрощённый доступ к контенту**<br><br>Нет необходимости вызывать функцию `t` для каждого элемента контента. Получайте весь ваш контент напрямую с помощью одного хука.<br><br> - [Интеграция с React](https://intlayer.org/doc/environment/create-react-app) |
229
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Единообразная реализация серверных компонентов**<br><br>Идеально подходит для серверных компонентов Next.js, используйте одну и ту же реализацию как для клиентских, так и для серверных компонентов, нет необходимости передавать функцию `t` через каждый серверный компонент. <br><br> - [Серверные компоненты](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
230
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Организованная кодовая база**<br><br>Поддерживайте вашу кодовую базу более организованной: 1 компонент = 1 словарь в той же папке. Переводы, расположенные рядом с соответствующими компонентами, повышают удобство сопровождения и ясность. <br><br> - [Как работает Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
231
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Расширенная маршрутизация**<br><br>Полная поддержка маршрутизации приложений, плавно адаптирующаяся к сложным структурам приложений для Next.js, React, Vite, Vue.js и других.<br><br> - [Изучите интеграцию с Next.js](https://intlayer.org/doc/environment/nextjs) |
232
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Поддержка Markdown**<br><br>Импортируйте и интерпретируйте локализационные файлы и удалённый Markdown для многоязычного контента, такого как политики конфиденциальности, документация и др. Интерпретируйте и делайте метаданные Markdown доступными в вашем коде.<br><br> - [Файлы контента](https://intlayer.org/doc/concept/content/file) |
233
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Бесплатный визуальный редактор и CMS**<br><br>Для авторов контента доступен бесплатный визуальный редактор и CMS, что устраняет необходимость в платформе локализации. Сохраняйте синхронизацию контента с помощью Git или полностью/частично внешне управляйте им через CMS.<br><br> - [Редактор Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
234
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Контент с поддержкой tree-shaking**<br><br>Контент с поддержкой tree-shaking, уменьшающий размер итогового бандла. Загружает контент по компонентам, исключая неиспользуемый контент из вашего бандла. Поддерживает ленивую загрузку для повышения эффективности загрузки приложения. <br><br> - [Оптимизация сборки приложения](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
235
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Статическая отрисовка**<br><br>Не блокирует статическую отрисовку. <br><br> - [Интеграция с Next.js](https://intlayer.org/doc/environment/nextjs) |
236
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **Перевод с использованием ИИ**<br><br>Преобразуйте ваш сайт на 231 язык всего одним кликом с помощью продвинутых инструментов перевода на базе ИИ от Intlayer, используя вашего собственного поставщика ИИ/ключ API. <br><br> - [Интеграция CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Автозаполнение](https://intlayer.org/doc/concept/auto-fill) |
237
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **Интеграция сервера MCP**<br><br>Обеспечивает сервер MCP (Model Context Protocol) для автоматизации IDE, позволяя бесшовно управлять контентом и процессами интернационализации (i18n) непосредственно в вашей среде разработки. <br><br> - [Сервер MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/mcp_server.md) |
238
+ | ![Функция](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **Расширение VSCode**<br><br>Intlayer предоставляет расширение для VSCode, которое поможет вам управлять вашим контентом и переводами, создавать словари, переводить ваш контент и многое другое. <br><br> - [Расширение VSCode](https://intlayer.org/doc/vs-code-extension) |
239
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Взаимодействие**<br><br>Обеспечивает взаимодействие с react-i18next, next-i18next, next-intl и react-intl. <br><br> - [Intlayer и react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer и next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer и next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
240
+
241
+ ## Сравнение Intlayer с другими решениями
242
+
243
+ | Функция | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
244
+ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------- |
245
+ | **Переводы рядом с компонентами** | Да, контент расположен рядом с каждым компонентом | Нет | Нет | Нет | Нет | Нет | Да - с использованием `Single File Components` (SFCs) |
246
+ | **Интеграция с TypeScript** | Продвинутая, автоматически сгенерированные строгие типы | Базовая; дополнительная конфигурация для безопасности | Хорошая, но менее строгая | Типы, требуется конфигурация | Хорошая | Базовая | Хорошая (типы доступны; требуется настройка безопасности ключей) |
247
+ | **Обнаружение отсутствующих переводов** | Ошибка/предупреждение во время сборки | В основном строки-заменители во время выполнения | Строки-заменители | Требуется дополнительная настройка | Строки-заменители во время выполнения | Строки-заменители во время выполнения | Строки-заменители/предупреждения во время выполнения (настраиваемо) |
248
+ | **Обогащённый контент (JSX/Markdown/компоненты)** | Прямая поддержка, включая React-узлы | Ограничено / только интерполяция | Синтаксис ICU, не настоящий JSX | Ограничено | Не предназначено для сложных узлов | Ограничено | Ограничено (компоненты через `<i18n-t>`, Markdown через плагины) |
249
+ | **Перевод с использованием ИИ** | Да, поддерживает нескольких поставщиков ИИ. Можно использовать с собственными API-ключами. Учитывает контекст вашего приложения и объем контента | Нет | Нет | Нет | Нет | Нет | Нет |
250
+ | **Визуальный редактор** | Да, локальный визуальный редактор + опциональная CMS; может вынести содержимое кодовой базы; встраиваемый | Нет / доступно через внешние платформы локализации | Нет / доступно через внешние платформы локализации | Нет / доступно через внешние платформы локализации | Нет / доступно через внешние платформы локализации | Нет / доступно через внешние платформы локализации | Нет / доступно через внешние платформы локализации |
251
+ | **Локализованная маршрутизация** | Встроенная, поддержка middleware | Плагины или ручная настройка | Не встроена | Плагин/ручная настройка | Встроена | Встроена | Вручную через Vue Router (обрабатывается Nuxt i18n) |
252
+ | **Динамическая генерация маршрутов** | Да | Плагин/экосистема или ручная настройка | Не предоставляется | Плагин/ручная настройка | Да | Да | Не предоставляется (предоставляется Nuxt i18n) |
253
+ | **Множественное число** | Шаблоны на основе перечислений; см. документацию | Настраиваемо (плагины, такие как i18next-icu) | Продвинутое (ICU) | Продвинутое (ICU/messageformat) | Хорошо | Хорошо | Продвинутое (встроенные правила множественного числа) |
254
+ | **Форматирование (даты, числа, валюты)** | Оптимизированные форматтеры (Intl под капотом) | Через плагины или пользовательское использование Intl | Продвинутые ICU форматтеры | Помощники ICU/CLI | Хорошо (помощники Intl) | Хорошо (помощники Intl) | Встроенные форматтеры даты/числа (Intl) |
255
+ | **Формат содержимого** | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
256
+ | **Поддержка ICU** | В разработке (родной ICU) | Через плагин (i18next-icu) | Да | Да | Да | Через плагин (i18next-icu) | Через пользовательский форматтер/компилятор |
257
+ | **SEO помощники (hreflang, sitemap)** | Встроенные инструменты: помощники для sitemap, **robots.txt**, метаданные | Плагины сообщества/ручное управление | Не является ядром | Не является ядром | Хорошо | Хорошо | Не является ядром (Nuxt i18n предоставляет помощники) |
258
+ | **Экосистема / Сообщество** | Меньше, но быстро растет и активно реагирует | Самое большое и зрелое | Большое, корпоративное | Растущее, меньше | Среднего размера, ориентировано на Next.js | Среднего размера, ориентировано на Next.js | Большое в экосистеме Vue |
259
+ | **Серверный рендеринг и серверные компоненты** | Да, оптимизировано для SSR / React Server Components | Поддерживается, требуется некоторая настройка | Поддерживается в Next.js | Поддерживается | Полная поддержка | Полная поддержка | SSR через Nuxt/Vue SSR (без RSC) |
260
+ | **Tree-shaking (загрузка только используемого контента)** | Да, на уровне компонентов во время сборки с помощью плагинов Babel/SWC | Обычно загружает всё (можно улучшить с помощью пространств имён/разделения кода) | Обычно загружает всё | Не по умолчанию | Частично | Частично | Частично (с разделением кода/ручной настройкой) |
261
+ | **Ленивая загрузка** | Да, по локалям/по компонентам | Да (например, бэкенды/пространства имён по требованию) | Да (разделение пакетов локалей) | Да (динамический импорт каталогов) | Да (по маршрутам/локалям) | Да (по маршрутам/локалям) | Да (асинхронные сообщения локалей) |
262
+ | **Управление крупными проектами** | Поощряет модульность, подходит для дизайн-систем | Требует хорошей дисциплины в работе с файлами | Центральные каталоги могут стать большими | Может стать сложным | Модульный с настройкой | Модульный с настройкой | Модульный с настройкой Vue Router/Nuxt i18n |
263
+
264
+ ## История документа
265
+
266
+ | Версия | Дата | Изменения |
267
+ | ------ | ---------- | -------------------------------- |
268
+ | 5.8.0 | 2025-08-19 | Обновление сравнительной таблицы |
269
+ | 5.5.10 | 2025-06-29 | Инициализация истории |
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Intlayer CMS | Вынесите свой контент в Intlayer CMS
5
5
  description: Вынесите свой контент в Intlayer CMS, чтобы делегировать управление вашим контентом вашей команде.
6
6
  keywords:
@@ -23,7 +23,7 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
23
23
 
24
24
  <iframe title="Visual Editor + CMS для вашего веб-приложения: объяснение 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
25
25
 
26
- Intlayer CMS это приложение, которое позволяет вам выносить контент из проекта Intlayer.
26
+ Intlayer CMS - это приложение, которое позволяет вам выносить контент из проекта Intlayer.
27
27
 
28
28
  Для этого Intlayer вводит концепцию «удалённых словарей».
29
29
 
@@ -33,15 +33,15 @@ Intlayer CMS — это приложение, которое позволяет
33
33
 
34
34
  Intlayer различает «локальные» и «удалённые» словари.
35
35
 
36
- - 'Локальный' словарь это словарь, который объявлен в вашем проекте Intlayer. Например, файл объявления кнопки или вашей навигационной панели. Вынесение такого контента не имеет смысла, так как этот контент не предполагается часто изменять.
36
+ - 'Локальный' словарь - это словарь, который объявлен в вашем проекте Intlayer. Например, файл объявления кнопки или вашей навигационной панели. Вынесение такого контента не имеет смысла, так как этот контент не предполагается часто изменять.
37
37
 
38
- - 'Удалённый' словарь это словарь, который управляется через Intlayer CMS. Это может быть полезно, чтобы позволить вашей команде управлять контентом напрямую на вашем сайте, а также использовать функции A/B тестирования и автоматической оптимизации SEO.
38
+ - 'Удалённый' словарь - это словарь, который управляется через Intlayer CMS. Это может быть полезно, чтобы позволить вашей команде управлять контентом напрямую на вашем сайте, а также использовать функции A/B тестирования и автоматической оптимизации SEO.
39
39
 
40
40
  ## Визуальный редактор vs CMS
41
41
 
42
- [Визуальный редактор Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница будет перезагружена для отображения нового контента.
42
+ [Визуальный редактор Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница будет перезагружена для отображения нового контента.
43
43
 
44
- В отличие от этого, Intlayer CMS это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И сайт автоматически отобразит изменённый контент.
44
+ В отличие от этого, Intlayer CMS - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И сайт автоматически отобразит изменённый контент.
45
45
 
46
46
  ## Интеграция
47
47
 
@@ -345,7 +345,6 @@ module.exports = config;
345
345
  - Приложение запущено.
346
346
 
347
347
  - Конфигурация [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) правильно настроена в вашем файле конфигурации Intlayer.
348
-
349
348
  - Обязательные поля:
350
349
  - URL приложения должен совпадать с тем, который вы указали в конфигурации редактора (`applicationURL`).
351
350
  - URL CMS.
@@ -243,7 +243,7 @@ npx intlayer fill
243
243
 
244
244
  - **`--output-locales [outputLocales...]`**: Целевые локали для перевода. Если не указано, будут использованы все локали из вашей конфигурации, кроме исходной локали.
245
245
 
246
- - **`--mode [mode]`**: Режим перевода: 'complete' (полный), 'review' (проверка) или 'missing-only' (только отсутствующие). По умолчанию 'missing-only'.
246
+ - **`--mode [mode]`**: Режим перевода: 'complete' (полный), 'review' (проверка) или 'missing-only' (только отсутствующие). По умолчанию - 'missing-only'.
247
247
 
248
248
  **Опции Git:**
249
249
 
@@ -267,7 +267,7 @@ npx intlayer fill
267
267
  - **`--custom-prompt [prompt]`**: Укажите пользовательский запрос для инструкций по переводу.
268
268
  - **`--application-context [applicationContext]`**: Предоставьте дополнительный контекст для перевода ИИ.
269
269
 
270
- > Пример: `npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "Моё приложение магазин для кошек"`
270
+ > Пример: `npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "Моё приложение - магазин для кошек"`
271
271
 
272
272
  **Опции переменных окружения:**
273
273
 
@@ -365,7 +365,6 @@ npx intlayer doc translate
365
365
  > Пример: `npx intlayer doc translate --excluded-glob-pattern "docs/internal/**"`
366
366
 
367
367
  - **`--skip-if-modified-before [skipIfModifiedBefore]`**: Пропустить файл, если он был изменён до указанного времени.
368
-
369
368
  - Может быть абсолютным временем, например "2025-12-05" (строка или объект Date)
370
369
  - Может быть относительным временем в миллисекундах `1 * 60 * 60 * 1000` (1 час)
371
370
  - Эта опция проверяет время обновления файла с помощью метода `fs.stat`. Поэтому она может быть затронута Git или другими инструментами, которые изменяют файл.
@@ -373,7 +372,6 @@ npx intlayer doc translate
373
372
  > Пример: `npx intlayer doc translate --skip-if-modified-before "2025-12-05"`
374
373
 
375
374
  - **`--skip-if-modified-after [skipIfModifiedAfter]`**: Пропустить файл, если он был изменён в течение указанного времени.
376
-
377
375
  - Может быть абсолютным временем, например "2025-12-05" (строка или объект Date)
378
376
  - Может быть относительным временем в миллисекундах `1 * 60 * 60 * 1000` (1 час)
379
377
  - Эта опция проверяет время обновления файла с помощью метода `fs.stat`. Поэтому она может быть затронута Git или другими инструментами, которые изменяют файл.
@@ -405,7 +403,7 @@ npx intlayer doc translate
405
403
  - **`--application-context [applicationContext]`**: Предоставьте дополнительный контекст для перевода ИИ.
406
404
  - **`--custom-prompt [prompt]`**: Настроить базовый запрос, используемый для перевода. (Примечание: для большинства случаев рекомендуется использовать опцию `--custom-instructions`, так как она обеспечивает лучший контроль над поведением перевода.)
407
405
 
408
- > Пример: `npx intlayer doc translate --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Моё приложение магазин для кошек"`
406
+ > Пример: `npx intlayer doc translate --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Моё приложение - магазин для кошек"`
409
407
 
410
408
  **Опции переменных окружения:**
411
409
 
@@ -424,7 +422,6 @@ npx intlayer doc translate
424
422
  **Опции пользовательских инструкций:**
425
423
 
426
424
  - **`--custom-instructions [customInstructions]`**: Пользовательские инструкции, добавляемые в запрос. Полезно для применения специфических правил по форматированию, переводу URL и т.д.
427
-
428
425
  - Может быть абсолютное время, например "2025-12-05" (строка или объект Date)
429
426
  - Может быть относительное время в миллисекундах `1 * 60 * 60 * 1000` (1 час)
430
427
  - Эта опция проверяет время обновления файла с помощью метода `fs.stat`. Поэтому она может быть затронута Git или другими инструментами, которые изменяют файл.
@@ -495,7 +492,7 @@ npx intlayer doc review
495
492
 
496
493
  ## CLI SDK
497
494
 
498
- CLI SDK это библиотека, которая позволяет использовать Intlayer CLI в вашем собственном коде.
495
+ CLI SDK - это библиотека, которая позволяет использовать Intlayer CLI в вашем собственном коде.
499
496
 
500
497
  ```bash packageManager="npm"
501
498
  npm install @intlayer/cli --save-dev
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Intlayer визуальный редактор | Изменяйте свой контент, используя визуальный редактор
5
5
  description: Узнайте, как использовать редактор Intlayer для управления вашим многоязычным веб-сайтом. Следуйте шагам в этой онлайн-документации, чтобы настроить ваш проект за несколько минут.
6
6
  keywords:
@@ -22,7 +22,7 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
22
22
 
23
23
  <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
24
24
 
25
- Intlayer Visual Editor это инструмент, который оборачивает ваш веб-сайт для взаимодействия с файлами декларации контента с использованием визуального редактора.
25
+ Intlayer Visual Editor - это инструмент, который оборачивает ваш веб-сайт для взаимодействия с файлами декларации контента с использованием визуального редактора.
26
26
 
27
27
  ![Интерфейс Intlayer Visual Editor](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.gif)
28
28
 
@@ -30,9 +30,9 @@ Intlayer Visual Editor — это инструмент, который обор
30
30
 
31
31
  ## Визуальный редактор vs CMS
32
32
 
33
- Intlayer Visual Editor это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница будет перезагружена для отображения нового контента.
33
+ Intlayer Visual Editor - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница будет перезагружена для отображения нового контента.
34
34
 
35
- В отличие от этого, [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md) это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И веб-сайт автоматически отобразит изменённый контент.
35
+ В отличие от этого, [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md) - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И веб-сайт автоматически отобразит изменённый контент.
36
36
 
37
37
  ## Интеграция Intlayer в ваше приложение
38
38
 
@@ -257,7 +257,6 @@ pnpm intlayer-editor start -e development
257
257
  - Визуальный редактор и приложение работают.
258
258
 
259
259
  - Конфигурация [`editor`](https://intlayer.org/ru/doc/concept/configuration#editor-configuration) правильно настроена в вашем файле конфигурации Intlayer.
260
-
261
260
  - Обязательные поля:
262
261
  - URL приложения должен совпадать с тем, который вы указали в конфигурации редактора (`applicationURL`).
263
262
 
@@ -24,7 +24,7 @@ slugs:
24
24
 
25
25
  ## Что такое Intlayer?
26
26
 
27
- **Intlayer** это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
27
+ **Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
28
28
 
29
29
  С помощью Intlayer вы можете:
30
30