@intlayer/docs 5.5.11 → 5.6.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 (494) hide show
  1. package/blog/ar/intlayer_with_next-intl.md +0 -1
  2. package/blog/ar/list_i18n_technologies/CMS/wordpress.md +1 -1
  3. package/blog/ar/list_i18n_technologies/frameworks/angular.md +1 -1
  4. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +1 -1
  5. package/blog/ar/list_i18n_technologies/frameworks/react-native.md +1 -1
  6. package/blog/ar/list_i18n_technologies/frameworks/react.md +1 -1
  7. package/blog/ar/list_i18n_technologies/frameworks/svelte.md +1 -1
  8. package/blog/ar/list_i18n_technologies/frameworks/vue.md +1 -1
  9. package/blog/ar/what_is_internationalization.md +2 -2
  10. package/blog/de/intlayer_with_next-intl.md +0 -1
  11. package/blog/de/list_i18n_technologies/CMS/wordpress.md +1 -1
  12. package/blog/de/list_i18n_technologies/frameworks/angular.md +1 -1
  13. package/blog/de/list_i18n_technologies/frameworks/flutter.md +1 -1
  14. package/blog/de/list_i18n_technologies/frameworks/react-native.md +1 -1
  15. package/blog/de/list_i18n_technologies/frameworks/react.md +1 -1
  16. package/blog/de/list_i18n_technologies/frameworks/svelte.md +1 -1
  17. package/blog/de/list_i18n_technologies/frameworks/vue.md +1 -1
  18. package/blog/de/what_is_internationalization.md +2 -2
  19. package/blog/en/intlayer_with_next-intl.md +0 -1
  20. package/blog/en/list_i18n_technologies/CMS/wordpress.md +1 -1
  21. package/blog/en/list_i18n_technologies/frameworks/angular.md +1 -1
  22. package/blog/en/list_i18n_technologies/frameworks/flutter.md +1 -1
  23. package/blog/en/list_i18n_technologies/frameworks/react-native.md +1 -1
  24. package/blog/en/list_i18n_technologies/frameworks/react.md +1 -1
  25. package/blog/en/list_i18n_technologies/frameworks/svelte.md +1 -1
  26. package/blog/en/list_i18n_technologies/frameworks/vue.md +1 -1
  27. package/blog/en/what_is_internationalization.md +2 -2
  28. package/blog/en-GB/intlayer_with_next-intl.md +0 -1
  29. package/blog/en-GB/list_i18n_technologies/CMS/wordpress.md +1 -1
  30. package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +1 -1
  31. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +1 -1
  32. package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +1 -1
  33. package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +1 -1
  34. package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +1 -1
  35. package/blog/en-GB/what_is_internationalization.md +2 -2
  36. package/blog/es/intlayer_with_next-intl.md +0 -1
  37. package/blog/es/list_i18n_technologies/CMS/wordpress.md +1 -1
  38. package/blog/es/list_i18n_technologies/frameworks/angular.md +1 -1
  39. package/blog/es/list_i18n_technologies/frameworks/flutter.md +1 -1
  40. package/blog/es/list_i18n_technologies/frameworks/react-native.md +1 -1
  41. package/blog/es/list_i18n_technologies/frameworks/react.md +1 -1
  42. package/blog/es/list_i18n_technologies/frameworks/svelte.md +1 -1
  43. package/blog/es/list_i18n_technologies/frameworks/vue.md +1 -1
  44. package/blog/es/what_is_internationalization.md +2 -2
  45. package/blog/fr/intlayer_with_next-intl.md +0 -1
  46. package/blog/fr/list_i18n_technologies/CMS/wordpress.md +1 -1
  47. package/blog/fr/list_i18n_technologies/frameworks/angular.md +1 -1
  48. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +1 -1
  49. package/blog/fr/list_i18n_technologies/frameworks/react-native.md +1 -1
  50. package/blog/fr/list_i18n_technologies/frameworks/react.md +1 -1
  51. package/blog/fr/list_i18n_technologies/frameworks/svelte.md +1 -1
  52. package/blog/fr/list_i18n_technologies/frameworks/vue.md +1 -1
  53. package/blog/fr/what_is_internationalization.md +2 -2
  54. package/blog/hi/list_i18n_technologies/CMS/wordpress.md +1 -1
  55. package/blog/hi/list_i18n_technologies/frameworks/angular.md +1 -1
  56. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +1 -1
  57. package/blog/hi/list_i18n_technologies/frameworks/react-native.md +1 -1
  58. package/blog/hi/list_i18n_technologies/frameworks/react.md +1 -1
  59. package/blog/hi/list_i18n_technologies/frameworks/svelte.md +1 -1
  60. package/blog/hi/list_i18n_technologies/frameworks/vue.md +1 -1
  61. package/blog/hi/what_is_internationalization.md +2 -2
  62. package/blog/it/intlayer_with_next-intl.md +0 -1
  63. package/blog/it/list_i18n_technologies/CMS/wordpress.md +1 -1
  64. package/blog/it/list_i18n_technologies/frameworks/angular.md +1 -1
  65. package/blog/it/list_i18n_technologies/frameworks/react-native.md +1 -1
  66. package/blog/it/list_i18n_technologies/frameworks/react.md +1 -1
  67. package/blog/it/list_i18n_technologies/frameworks/svelte.md +1 -1
  68. package/blog/it/list_i18n_technologies/frameworks/vue.md +1 -1
  69. package/blog/it/what_is_internationalization.md +2 -2
  70. package/blog/ja/intlayer_with_next-intl.md +0 -1
  71. package/blog/ja/list_i18n_technologies/CMS/wordpress.md +1 -1
  72. package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
  73. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +1 -1
  74. package/blog/ja/list_i18n_technologies/frameworks/react-native.md +1 -1
  75. package/blog/ja/list_i18n_technologies/frameworks/react.md +1 -1
  76. package/blog/ja/list_i18n_technologies/frameworks/svelte.md +1 -1
  77. package/blog/ja/list_i18n_technologies/frameworks/vue.md +1 -1
  78. package/blog/ja/what_is_internationalization.md +2 -2
  79. package/blog/ko/intlayer_with_next-intl.md +0 -1
  80. package/blog/ko/list_i18n_technologies/CMS/wordpress.md +1 -1
  81. package/blog/ko/list_i18n_technologies/frameworks/angular.md +1 -1
  82. package/blog/ko/list_i18n_technologies/frameworks/react-native.md +1 -1
  83. package/blog/ko/list_i18n_technologies/frameworks/react.md +1 -1
  84. package/blog/ko/list_i18n_technologies/frameworks/vue.md +1 -1
  85. package/blog/pt/intlayer_with_next-intl.md +0 -1
  86. package/blog/pt/list_i18n_technologies/CMS/wordpress.md +1 -1
  87. package/blog/pt/list_i18n_technologies/frameworks/angular.md +1 -1
  88. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +1 -1
  89. package/blog/pt/list_i18n_technologies/frameworks/react-native.md +1 -1
  90. package/blog/pt/list_i18n_technologies/frameworks/react.md +1 -1
  91. package/blog/pt/list_i18n_technologies/frameworks/svelte.md +1 -1
  92. package/blog/pt/list_i18n_technologies/frameworks/vue.md +1 -1
  93. package/blog/pt/what_is_internationalization.md +2 -2
  94. package/blog/ru/intlayer_with_next-intl.md +0 -1
  95. package/blog/ru/list_i18n_technologies/CMS/wordpress.md +1 -1
  96. package/blog/ru/list_i18n_technologies/frameworks/angular.md +1 -1
  97. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +1 -1
  98. package/blog/ru/list_i18n_technologies/frameworks/react-native.md +1 -1
  99. package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
  100. package/blog/ru/list_i18n_technologies/frameworks/svelte.md +1 -1
  101. package/blog/ru/list_i18n_technologies/frameworks/vue.md +1 -1
  102. package/blog/ru/what_is_internationalization.md +2 -2
  103. package/blog/zh/intlayer_with_next-intl.md +0 -1
  104. package/blog/zh/list_i18n_technologies/CMS/wordpress.md +1 -1
  105. package/blog/zh/list_i18n_technologies/frameworks/angular.md +1 -1
  106. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +1 -1
  107. package/blog/zh/list_i18n_technologies/frameworks/react-native.md +1 -1
  108. package/blog/zh/list_i18n_technologies/frameworks/react.md +1 -1
  109. package/blog/zh/list_i18n_technologies/frameworks/svelte.md +1 -1
  110. package/blog/zh/list_i18n_technologies/frameworks/vue.md +1 -1
  111. package/blog/zh/what_is_internationalization.md +2 -2
  112. package/dist/cjs/blog.cjs +2 -2
  113. package/dist/cjs/blog.cjs.map +1 -1
  114. package/dist/cjs/common.cjs +17 -6
  115. package/dist/cjs/common.cjs.map +1 -1
  116. package/dist/cjs/doc.cjs +2 -2
  117. package/dist/cjs/doc.cjs.map +1 -1
  118. package/dist/cjs/frequentQuestions.cjs +2 -2
  119. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  120. package/dist/cjs/generated/blog.entry.cjs +1152 -252
  121. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  122. package/dist/cjs/generated/docs.entry.cjs +3778 -1124
  123. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  124. package/dist/cjs/generated/frequentQuestions.entry.cjs +794 -161
  125. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  126. package/dist/cjs/generated/legal.entry.cjs +32 -31
  127. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  128. package/dist/cjs/legal.cjs +2 -2
  129. package/dist/cjs/legal.cjs.map +1 -1
  130. package/dist/esm/blog.mjs +2 -2
  131. package/dist/esm/blog.mjs.map +1 -1
  132. package/dist/esm/common.mjs +17 -6
  133. package/dist/esm/common.mjs.map +1 -1
  134. package/dist/esm/doc.mjs +2 -2
  135. package/dist/esm/doc.mjs.map +1 -1
  136. package/dist/esm/frequentQuestions.mjs +2 -2
  137. package/dist/esm/frequentQuestions.mjs.map +1 -1
  138. package/dist/esm/generated/blog.entry.mjs +1151 -252
  139. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  140. package/dist/esm/generated/docs.entry.mjs +3777 -1124
  141. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  142. package/dist/esm/generated/frequentQuestions.entry.mjs +793 -161
  143. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  144. package/dist/esm/generated/legal.entry.mjs +31 -31
  145. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  146. package/dist/esm/legal.mjs +2 -2
  147. package/dist/esm/legal.mjs.map +1 -1
  148. package/dist/types/blog.d.ts +2 -2
  149. package/dist/types/blog.d.ts.map +1 -1
  150. package/dist/types/common.d.ts +5 -2
  151. package/dist/types/common.d.ts.map +1 -1
  152. package/dist/types/doc.d.ts +2 -2
  153. package/dist/types/doc.d.ts.map +1 -1
  154. package/dist/types/frequentQuestions.d.ts +2 -2
  155. package/dist/types/frequentQuestions.d.ts.map +1 -1
  156. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  157. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  158. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  159. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  160. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  161. package/dist/types/legal.d.ts +2 -2
  162. package/dist/types/legal.d.ts.map +1 -1
  163. package/docs/ar/intlayer_CMS.md +1 -0
  164. package/docs/ar/intlayer_cli.md +292 -177
  165. package/docs/ar/intlayer_visual_editor.md +1 -0
  166. package/docs/ar/intlayer_with_angular.md +1 -0
  167. package/docs/ar/intlayer_with_create_react_app.md +1 -0
  168. package/docs/ar/intlayer_with_lynx+react.md +1 -0
  169. package/docs/ar/intlayer_with_nextjs_14.md +1 -0
  170. package/docs/ar/intlayer_with_nextjs_15.md +3 -1
  171. package/docs/ar/intlayer_with_nuxt.md +1 -0
  172. package/docs/ar/intlayer_with_react_native+expo.md +1 -0
  173. package/docs/ar/intlayer_with_vite+preact.md +4 -3
  174. package/docs/ar/intlayer_with_vite+react.md +108 -112
  175. package/docs/ar/intlayer_with_vite+solid.md +4 -3
  176. package/docs/ar/intlayer_with_vite+svelte.md +4 -3
  177. package/docs/ar/intlayer_with_vite+vue.md +5 -4
  178. package/docs/ar/mcp_server.md +126 -92
  179. package/docs/de/intlayer_CMS.md +1 -0
  180. package/docs/de/intlayer_cli.md +291 -171
  181. package/docs/de/intlayer_visual_editor.md +1 -0
  182. package/docs/de/intlayer_with_angular.md +1 -0
  183. package/docs/de/intlayer_with_create_react_app.md +1 -0
  184. package/docs/de/intlayer_with_lynx+react.md +1 -0
  185. package/docs/de/intlayer_with_nextjs_14.md +1 -0
  186. package/docs/de/intlayer_with_nextjs_15.md +3 -1
  187. package/docs/de/intlayer_with_nuxt.md +1 -0
  188. package/docs/de/intlayer_with_react_native+expo.md +1 -0
  189. package/docs/de/intlayer_with_vite+preact.md +4 -3
  190. package/docs/de/intlayer_with_vite+react.md +128 -146
  191. package/docs/de/intlayer_with_vite+solid.md +4 -3
  192. package/docs/de/intlayer_with_vite+svelte.md +4 -3
  193. package/docs/de/intlayer_with_vite+vue.md +5 -4
  194. package/docs/de/mcp_server.md +116 -112
  195. package/docs/en/CI_CD.md +3 -1
  196. package/docs/en/autoFill.md +3 -1
  197. package/docs/en/configuration.md +7 -3
  198. package/docs/en/dictionary/condition.md +3 -1
  199. package/docs/en/dictionary/content_extention_customization.md +3 -1
  200. package/docs/en/dictionary/enumeration.md +3 -1
  201. package/docs/en/dictionary/file.md +3 -1
  202. package/docs/en/dictionary/function_fetching.md +3 -1
  203. package/docs/en/dictionary/get_started.md +3 -1
  204. package/docs/en/dictionary/insertion.md +3 -1
  205. package/docs/en/dictionary/markdown.md +3 -1
  206. package/docs/en/dictionary/nesting.md +3 -1
  207. package/docs/en/dictionary/translation.md +3 -1
  208. package/docs/en/how_works_intlayer.md +3 -1
  209. package/docs/en/index.md +3 -1
  210. package/docs/en/interest_of_intlayer.md +3 -1
  211. package/docs/en/intlayer_CMS.md +4 -1
  212. package/docs/en/intlayer_cli.md +246 -136
  213. package/docs/en/intlayer_visual_editor.md +4 -1
  214. package/docs/en/intlayer_with_angular.md +4 -1
  215. package/docs/en/intlayer_with_create_react_app.md +4 -1
  216. package/docs/en/intlayer_with_express.md +3 -1
  217. package/docs/en/intlayer_with_lynx+react.md +4 -1
  218. package/docs/en/intlayer_with_nextjs_14.md +7 -1
  219. package/docs/en/intlayer_with_nextjs_15.md +8 -2
  220. package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
  221. package/docs/en/intlayer_with_nuxt.md +4 -1
  222. package/docs/en/intlayer_with_react_native+expo.md +4 -1
  223. package/docs/en/intlayer_with_vite+preact.md +9 -4
  224. package/docs/en/intlayer_with_vite+react.md +18 -10
  225. package/docs/en/intlayer_with_vite+solid.md +7 -4
  226. package/docs/en/intlayer_with_vite+svelte.md +7 -4
  227. package/docs/en/intlayer_with_vite+vue.md +10 -5
  228. package/docs/en/introduction.md +3 -1
  229. package/docs/en/mcp_server.md +114 -80
  230. package/docs/en/packages/@intlayer/api/index.md +3 -1
  231. package/docs/en/packages/@intlayer/chokidar/index.md +3 -1
  232. package/docs/en/packages/@intlayer/cli/index.md +3 -1
  233. package/docs/en/packages/@intlayer/config/index.md +3 -1
  234. package/docs/en/packages/@intlayer/core/index.md +3 -1
  235. package/docs/en/packages/@intlayer/design-system/index.md +3 -1
  236. package/docs/en/packages/@intlayer/dictionary-entry/index.md +3 -1
  237. package/docs/en/packages/@intlayer/editor/index.md +3 -1
  238. package/docs/en/packages/@intlayer/editor-react/index.md +3 -1
  239. package/docs/en/packages/@intlayer/webpack/index.md +3 -1
  240. package/docs/en/packages/angular-intlayer/index.md +3 -1
  241. package/docs/en/packages/express-intlayer/index.md +3 -1
  242. package/docs/en/packages/express-intlayer/t.md +3 -1
  243. package/docs/en/packages/intlayer/getConfiguration.md +3 -1
  244. package/docs/en/packages/intlayer/getEnumeration.md +3 -1
  245. package/docs/en/packages/intlayer/getHTMLTextDir.md +3 -1
  246. package/docs/en/packages/intlayer/getLocaleLang.md +3 -1
  247. package/docs/en/packages/intlayer/getLocaleName.md +3 -1
  248. package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -1
  249. package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -1
  250. package/docs/en/packages/intlayer/getPathWithoutLocale.md +3 -1
  251. package/docs/en/packages/intlayer/getTranslation.md +3 -1
  252. package/docs/en/packages/intlayer/getTranslationContent.md +3 -1
  253. package/docs/en/packages/intlayer/index.md +3 -1
  254. package/docs/en/packages/intlayer-cli/index.md +3 -1
  255. package/docs/en/packages/intlayer-editor/index.md +3 -1
  256. package/docs/en/packages/lynx-intlayer/index.md +3 -1
  257. package/docs/en/packages/next-intlayer/index.md +3 -1
  258. package/docs/en/packages/next-intlayer/t.md +3 -1
  259. package/docs/en/packages/next-intlayer/useDictionary.md +3 -1
  260. package/docs/en/packages/next-intlayer/useIntlayer.md +3 -1
  261. package/docs/en/packages/next-intlayer/useIntlayerAsync.md +3 -1
  262. package/docs/en/packages/next-intlayer/useLocale.md +3 -1
  263. package/docs/en/packages/nuxt-intlayer/index.md +3 -1
  264. package/docs/en/packages/preact-intlayer/index.md +3 -1
  265. package/docs/en/packages/react-intlayer/index.md +3 -1
  266. package/docs/en/packages/react-intlayer/t.md +3 -1
  267. package/docs/en/packages/react-intlayer/useDictionary.md +3 -1
  268. package/docs/en/packages/react-intlayer/useIntlayer.md +3 -1
  269. package/docs/en/packages/react-intlayer/useIntlayerAsync.md +3 -1
  270. package/docs/en/packages/react-intlayer/useLocale.md +3 -1
  271. package/docs/en/packages/react-native-intlayer/index.md +3 -1
  272. package/docs/en/packages/react-scripts-intlayer/index.md +3 -1
  273. package/docs/en/packages/solid-intlayer/index.md +3 -1
  274. package/docs/en/packages/svelte-intlayer/index.md +3 -1
  275. package/docs/en/packages/vite-intlayer/index.md +3 -1
  276. package/docs/en/packages/vue-intlayer/index.md +3 -1
  277. package/docs/en/per_locale_file.md +3 -1
  278. package/docs/en/roadmap.md +5 -2
  279. package/docs/en/vs_code_extension.md +3 -1
  280. package/docs/en-GB/intlayer_CMS.md +1 -0
  281. package/docs/en-GB/intlayer_cli.md +257 -138
  282. package/docs/en-GB/intlayer_visual_editor.md +1 -0
  283. package/docs/en-GB/intlayer_with_angular.md +1 -0
  284. package/docs/en-GB/intlayer_with_create_react_app.md +1 -0
  285. package/docs/en-GB/intlayer_with_lynx+react.md +1 -0
  286. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -0
  287. package/docs/en-GB/intlayer_with_nextjs_15.md +3 -1
  288. package/docs/en-GB/intlayer_with_nuxt.md +1 -0
  289. package/docs/en-GB/intlayer_with_react_native+expo.md +1 -0
  290. package/docs/en-GB/intlayer_with_vite+preact.md +4 -3
  291. package/docs/en-GB/intlayer_with_vite+react.md +71 -87
  292. package/docs/en-GB/intlayer_with_vite+solid.md +4 -3
  293. package/docs/en-GB/intlayer_with_vite+svelte.md +4 -3
  294. package/docs/en-GB/intlayer_with_vite+vue.md +5 -4
  295. package/docs/en-GB/mcp_server.md +116 -82
  296. package/docs/es/intlayer_CMS.md +1 -0
  297. package/docs/es/intlayer_cli.md +283 -164
  298. package/docs/es/intlayer_visual_editor.md +1 -0
  299. package/docs/es/intlayer_with_angular.md +1 -0
  300. package/docs/es/intlayer_with_create_react_app.md +1 -0
  301. package/docs/es/intlayer_with_lynx+react.md +1 -0
  302. package/docs/es/intlayer_with_nextjs_14.md +1 -0
  303. package/docs/es/intlayer_with_nextjs_15.md +3 -1
  304. package/docs/es/intlayer_with_nuxt.md +1 -0
  305. package/docs/es/intlayer_with_react_native+expo.md +1 -0
  306. package/docs/es/intlayer_with_vite+preact.md +4 -3
  307. package/docs/es/intlayer_with_vite+react.md +98 -98
  308. package/docs/es/intlayer_with_vite+solid.md +4 -3
  309. package/docs/es/intlayer_with_vite+svelte.md +4 -3
  310. package/docs/es/intlayer_with_vite+vue.md +5 -4
  311. package/docs/es/mcp_server.md +120 -86
  312. package/docs/es/vs_code_extension.md +1 -0
  313. package/docs/fr/intlayer_CMS.md +1 -0
  314. package/docs/fr/intlayer_cli.md +280 -184
  315. package/docs/fr/intlayer_visual_editor.md +1 -0
  316. package/docs/fr/intlayer_with_angular.md +1 -0
  317. package/docs/fr/intlayer_with_create_react_app.md +1 -0
  318. package/docs/fr/intlayer_with_lynx+react.md +1 -0
  319. package/docs/fr/intlayer_with_nextjs_14.md +1 -0
  320. package/docs/fr/intlayer_with_nextjs_15.md +3 -1
  321. package/docs/fr/intlayer_with_nuxt.md +1 -0
  322. package/docs/fr/intlayer_with_react_native+expo.md +1 -0
  323. package/docs/fr/intlayer_with_vite+preact.md +5 -4
  324. package/docs/fr/intlayer_with_vite+react.md +80 -69
  325. package/docs/fr/intlayer_with_vite+solid.md +4 -3
  326. package/docs/fr/intlayer_with_vite+svelte.md +4 -3
  327. package/docs/fr/intlayer_with_vite+vue.md +5 -4
  328. package/docs/fr/mcp_server.md +121 -87
  329. package/docs/hi/intlayer_CMS.md +1 -0
  330. package/docs/hi/intlayer_cli.md +295 -174
  331. package/docs/hi/intlayer_visual_editor.md +1 -0
  332. package/docs/hi/intlayer_with_angular.md +1 -0
  333. package/docs/hi/intlayer_with_create_react_app.md +1 -0
  334. package/docs/hi/intlayer_with_lynx+react.md +1 -0
  335. package/docs/hi/intlayer_with_nextjs_14.md +1 -0
  336. package/docs/hi/intlayer_with_nextjs_15.md +3 -1
  337. package/docs/hi/intlayer_with_nuxt.md +1 -0
  338. package/docs/hi/intlayer_with_react_native+expo.md +1 -0
  339. package/docs/hi/intlayer_with_vite+preact.md +4 -3
  340. package/docs/hi/intlayer_with_vite+react.md +114 -111
  341. package/docs/hi/intlayer_with_vite+solid.md +4 -3
  342. package/docs/hi/intlayer_with_vite+svelte.md +4 -3
  343. package/docs/hi/intlayer_with_vite+vue.md +5 -4
  344. package/docs/hi/mcp_server.md +118 -84
  345. package/docs/it/intlayer_CMS.md +1 -0
  346. package/docs/it/intlayer_cli.md +282 -167
  347. package/docs/it/intlayer_visual_editor.md +1 -0
  348. package/docs/it/intlayer_with_angular.md +1 -0
  349. package/docs/it/intlayer_with_create_react_app.md +1 -0
  350. package/docs/it/intlayer_with_lynx+react.md +1 -0
  351. package/docs/it/intlayer_with_nextjs_14.md +1 -0
  352. package/docs/it/intlayer_with_nextjs_15.md +3 -1
  353. package/docs/it/intlayer_with_nuxt.md +1 -0
  354. package/docs/it/intlayer_with_react_native+expo.md +1 -0
  355. package/docs/it/intlayer_with_vite+preact.md +4 -3
  356. package/docs/it/intlayer_with_vite+react.md +163 -116
  357. package/docs/it/intlayer_with_vite+solid.md +4 -3
  358. package/docs/it/intlayer_with_vite+svelte.md +4 -3
  359. package/docs/it/intlayer_with_vite+vue.md +4 -4
  360. package/docs/it/mcp_server.md +120 -86
  361. package/docs/ja/intlayer_CMS.md +1 -0
  362. package/docs/ja/intlayer_cli.md +285 -168
  363. package/docs/ja/intlayer_visual_editor.md +1 -0
  364. package/docs/ja/intlayer_with_angular.md +1 -0
  365. package/docs/ja/intlayer_with_create_react_app.md +1 -0
  366. package/docs/ja/intlayer_with_lynx+react.md +1 -0
  367. package/docs/ja/intlayer_with_nextjs_14.md +1 -0
  368. package/docs/ja/intlayer_with_nextjs_15.md +3 -1
  369. package/docs/ja/intlayer_with_nuxt.md +1 -0
  370. package/docs/ja/intlayer_with_react_native+expo.md +1 -0
  371. package/docs/ja/intlayer_with_vite+preact.md +4 -3
  372. package/docs/ja/intlayer_with_vite+react.md +160 -222
  373. package/docs/ja/intlayer_with_vite+solid.md +4 -3
  374. package/docs/ja/intlayer_with_vite+svelte.md +4 -3
  375. package/docs/ja/intlayer_with_vite+vue.md +5 -4
  376. package/docs/ja/mcp_server.md +121 -85
  377. package/docs/ko/intlayer_CMS.md +1 -0
  378. package/docs/ko/intlayer_cli.md +291 -175
  379. package/docs/ko/intlayer_visual_editor.md +1 -0
  380. package/docs/ko/intlayer_with_angular.md +1 -0
  381. package/docs/ko/intlayer_with_create_react_app.md +1 -0
  382. package/docs/ko/intlayer_with_lynx+react.md +1 -0
  383. package/docs/ko/intlayer_with_nextjs_14.md +1 -0
  384. package/docs/ko/intlayer_with_nextjs_15.md +3 -1
  385. package/docs/ko/intlayer_with_nuxt.md +1 -0
  386. package/docs/ko/intlayer_with_react_native+expo.md +1 -0
  387. package/docs/ko/intlayer_with_vite+preact.md +4 -3
  388. package/docs/ko/intlayer_with_vite+react.md +123 -152
  389. package/docs/ko/intlayer_with_vite+solid.md +4 -3
  390. package/docs/ko/intlayer_with_vite+svelte.md +4 -3
  391. package/docs/ko/intlayer_with_vite+vue.md +5 -4
  392. package/docs/ko/mcp_server.md +117 -83
  393. package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
  394. package/docs/pt/intlayer_CMS.md +1 -0
  395. package/docs/pt/intlayer_cli.md +274 -154
  396. package/docs/pt/intlayer_visual_editor.md +1 -0
  397. package/docs/pt/intlayer_with_angular.md +1 -0
  398. package/docs/pt/intlayer_with_create_react_app.md +1 -0
  399. package/docs/pt/intlayer_with_lynx+react.md +1 -0
  400. package/docs/pt/intlayer_with_nextjs_14.md +1 -0
  401. package/docs/pt/intlayer_with_nextjs_15.md +3 -1
  402. package/docs/pt/intlayer_with_nuxt.md +1 -0
  403. package/docs/pt/intlayer_with_react_native+expo.md +1 -0
  404. package/docs/pt/intlayer_with_vite+preact.md +4 -3
  405. package/docs/pt/intlayer_with_vite+react.md +117 -136
  406. package/docs/pt/intlayer_with_vite+solid.md +4 -3
  407. package/docs/pt/intlayer_with_vite+svelte.md +4 -3
  408. package/docs/pt/intlayer_with_vite+vue.md +4 -4
  409. package/docs/pt/mcp_server.md +121 -87
  410. package/docs/ru/intlayer_CMS.md +1 -0
  411. package/docs/ru/intlayer_cli.md +287 -170
  412. package/docs/ru/intlayer_visual_editor.md +1 -0
  413. package/docs/ru/intlayer_with_angular.md +1 -0
  414. package/docs/ru/intlayer_with_create_react_app.md +1 -0
  415. package/docs/ru/intlayer_with_lynx+react.md +1 -0
  416. package/docs/ru/intlayer_with_nextjs_14.md +1 -0
  417. package/docs/ru/intlayer_with_nextjs_15.md +3 -1
  418. package/docs/ru/intlayer_with_nuxt.md +1 -0
  419. package/docs/ru/intlayer_with_react_native+expo.md +1 -0
  420. package/docs/ru/intlayer_with_vite+preact.md +4 -3
  421. package/docs/ru/intlayer_with_vite+react.md +105 -87
  422. package/docs/ru/intlayer_with_vite+solid.md +4 -3
  423. package/docs/ru/intlayer_with_vite+svelte.md +4 -3
  424. package/docs/ru/intlayer_with_vite+vue.md +5 -4
  425. package/docs/ru/mcp_server.md +119 -85
  426. package/docs/zh/intlayer_CMS.md +1 -0
  427. package/docs/zh/intlayer_cli.md +275 -155
  428. package/docs/zh/intlayer_visual_editor.md +1 -0
  429. package/docs/zh/intlayer_with_angular.md +1 -0
  430. package/docs/zh/intlayer_with_create_react_app.md +1 -0
  431. package/docs/zh/intlayer_with_lynx+react.md +1 -0
  432. package/docs/zh/intlayer_with_nextjs_14.md +1 -0
  433. package/docs/zh/intlayer_with_nextjs_15.md +3 -1
  434. package/docs/zh/intlayer_with_nuxt.md +1 -0
  435. package/docs/zh/intlayer_with_react_native+expo.md +1 -0
  436. package/docs/zh/intlayer_with_vite+preact.md +4 -3
  437. package/docs/zh/intlayer_with_vite+react.md +154 -188
  438. package/docs/zh/intlayer_with_vite+solid.md +4 -3
  439. package/docs/zh/intlayer_with_vite+svelte.md +4 -3
  440. package/docs/zh/intlayer_with_vite+vue.md +5 -4
  441. package/docs/zh/mcp_server.md +119 -86
  442. package/docs/zh/packages/intlayer/getLocalizedUrl.md +1 -23
  443. package/frequent_questions/ar/build_error_CI_CD.md +75 -0
  444. package/frequent_questions/de/build_error_CI_CD.md +75 -0
  445. package/frequent_questions/en/build_error_CI_CD.md +75 -0
  446. package/frequent_questions/en-GB/build_error_CI_CD.md +75 -0
  447. package/frequent_questions/es/build_error_CI_CD.md +75 -0
  448. package/frequent_questions/fr/build_error_CI_CD.md +75 -0
  449. package/frequent_questions/hi/build_error_CI_CD.md +75 -0
  450. package/frequent_questions/it/build_error_CI_CD.md +75 -0
  451. package/frequent_questions/ja/build_error_CI_CD.md +75 -0
  452. package/frequent_questions/ja/intlayer_command_undefined.md +3 -3
  453. package/frequent_questions/ko/build_error_CI_CD.md +75 -0
  454. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  455. package/frequent_questions/pt/build_error_CI_CD.md +75 -0
  456. package/frequent_questions/ru/build_error_CI_CD.md +75 -0
  457. package/frequent_questions/zh/build_error_CI_CD.md +75 -0
  458. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  459. package/legal/ar/privacy_notice.md +83 -0
  460. package/legal/ar/terms_of_service.md +55 -0
  461. package/legal/de/privacy_notice.md +83 -0
  462. package/legal/de/terms_of_service.md +55 -0
  463. package/legal/en/privacy_notice.md +83 -0
  464. package/legal/en/terms_of_service.md +55 -0
  465. package/legal/en-GB/privacy_notice.md +83 -0
  466. package/legal/en-GB/terms_of_service.md +55 -0
  467. package/legal/es/privacy_notice.md +83 -0
  468. package/legal/es/terms_of_service.md +55 -0
  469. package/legal/fr/privacy_notice.md +83 -0
  470. package/legal/fr/terms_of_service.md +55 -0
  471. package/legal/hi/privacy_notice.md +83 -0
  472. package/legal/hi/terms_of_service.md +55 -0
  473. package/legal/it/privacy_notice.md +83 -0
  474. package/legal/it/terms_of_service.md +55 -0
  475. package/legal/ja/privacy_notice.md +83 -0
  476. package/legal/ja/terms_of_service.md +55 -0
  477. package/legal/ko/privacy_notice.md +83 -0
  478. package/legal/ko/terms_of_service.md +55 -0
  479. package/legal/pt/privacy_notice.md +83 -0
  480. package/legal/pt/terms_of_service.md +55 -0
  481. package/legal/ru/privacy_notice.md +83 -0
  482. package/legal/ru/terms_of_service.md +55 -0
  483. package/legal/zh/privacy_notice.md +83 -0
  484. package/legal/zh/terms_of_service.md +55 -0
  485. package/package.json +12 -11
  486. package/src/blog.ts +6 -4
  487. package/src/common.ts +25 -7
  488. package/src/doc.ts +6 -4
  489. package/src/frequentQuestions.ts +6 -4
  490. package/src/generated/blog.entry.ts +1177 -280
  491. package/src/generated/docs.entry.ts +3868 -1217
  492. package/src/generated/frequentQuestions.entry.ts +808 -178
  493. package/src/generated/legal.entry.ts +34 -36
  494. package/src/legal.ts +6 -4
@@ -1,24 +1,27 @@
1
1
  ---
2
- createdAt: 2025-03-07
3
- updatedAt: 2025-06-29
4
- title: Переводите ваше мобильное приложение React Native и Expo (i18n)
5
- description: Узнайте, как сделать ваше мобильное приложение React Native и Expo многоязычным. Следуйте документации для интернационализации (i18n) и перевода.
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2024-03-07
4
+ title: Начало работы с Intlayer в Vite + React
5
+ description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение на Vite и React с помощью Intlayer. Следуйте этому руководству, чтобы сделать ваше приложение многоязычным.
6
6
  keywords:
7
7
  - Интернационализация
8
8
  - Документация
9
9
  - Intlayer
10
10
  - Vite
11
11
  - React
12
- - React Native
12
+ - i18n
13
13
  - JavaScript
14
14
  slugs:
15
15
  - doc
16
16
  - environment
17
- - react-native-and-expo
18
- ---
17
+ - vite-and-react
18
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
19
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4---
19
20
 
20
21
  # Начало работы с интернационализацией (i18n) с Intlayer, Vite и React
21
22
 
23
+ <iframe title="The best i18n solution for Vite and React? Discover 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
24
+
22
25
  Смотрите [шаблон приложения](https://github.com/aymericzip/intlayer-vite-react-template) на GitHub.
23
26
 
24
27
  ## Что такое Intlayer?
@@ -27,10 +30,10 @@ slugs:
27
30
 
28
31
  С помощью Intlayer вы можете:
29
32
 
30
- - **Легко управлять переводами** с использованием декларативных словарей на уровне компонентов.
31
- - **Динамически локализовать метаданные**, маршруты и контент.
32
- - **Обеспечить поддержку TypeScript** с помощью автогенерируемых типов, улучшая автодополнение и обнаружение ошибок.
33
- - **Воспользоваться расширенными функциями**, такими как динамическое определение и переключение локали.
33
+ - **Легко управляйте переводами** с помощью декларативных словарей на уровне компонентов.
34
+ - **Динамически локализуйте метаданные**, маршруты и контент.
35
+ - **Обеспечьте поддержку TypeScript** с автогенерируемыми типами, улучшая автозаполнение и обнаружение ошибок.
36
+ - **Воспользуйтесь расширенными возможностями**, такими как динамическое определение и переключение локали.
34
37
 
35
38
  ---
36
39
 
@@ -42,28 +45,28 @@ slugs:
42
45
 
43
46
  ```bash packageManager="npm"
44
47
  npm install intlayer react-intlayer
45
- npm install --save-dev vite-intlayer
48
+ npm install vite-intlayer --save-dev
46
49
  ```
47
50
 
48
51
  ```bash packageManager="pnpm"
49
52
  pnpm add intlayer react-intlayer
50
- pnpm add --save-dev vite-intlayer
53
+ pnpm add vite-intlayer --save-dev
51
54
  ```
52
55
 
53
56
  ```bash packageManager="yarn"
54
57
  yarn add intlayer react-intlayer
55
- yarn add --save-dev vite-intlayer
58
+ yarn add vite-intlayer --save-dev
56
59
  ```
57
60
 
58
61
  - **intlayer**
59
62
 
60
- Основной пакет, который предоставляет инструменты интернационализации для управления конфигурацией, переводами, [объявления контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md), транспиляции и [CLI-команд](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_cli.md).
63
+ Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, перевода, [объявления контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md), транспиляции и [CLI-команд](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_cli.md).
61
64
 
62
65
  - **react-intlayer**
63
66
  Пакет, который интегрирует Intlayer с приложением на React. Он предоставляет провайдеры контекста и хуки для интернационализации в React.
64
67
 
65
68
  - **vite-intlayer**
66
- Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочтительной локали пользователя, управления cookie и обработки перенаправления URL.
69
+ Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочтительной локали пользователя, управления куки и обработки перенаправления URL.
67
70
 
68
71
  ### Шаг 2: Конфигурация вашего проекта
69
72
 
@@ -91,7 +94,6 @@ export default config;
91
94
  import { Locales } from "intlayer";
92
95
 
93
96
  /** @type {import('intlayer').IntlayerConfig} */
94
- // Конфигурация для интернационализации приложения
95
97
  const config = {
96
98
  internationalization: {
97
99
  locales: [
@@ -111,7 +113,6 @@ export default config;
111
113
  const { Locales } = require("intlayer");
112
114
 
113
115
  /** @type {import('intlayer').IntlayerConfig} */
114
- // Конфигурация для интернационализации приложения
115
116
  const config = {
116
117
  internationalization: {
117
118
  locales: [
@@ -127,7 +128,7 @@ const config = {
127
128
  module.exports = config;
128
129
  ```
129
130
 
130
- > Через этот файл конфигурации вы можете настроить локализованные URL-адреса, перенаправление в middleware, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
131
+ > Через этот файл конфигурации вы можете настроить локализованные URL-адреса, перенаправление в промежуточном ПО, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
131
132
 
132
133
  ### Шаг 3: Интеграция Intlayer в вашу конфигурацию Vite
133
134
 
@@ -166,7 +167,7 @@ module.exports = defineConfig({
166
167
  });
167
168
  ```
168
169
 
169
- > Плагин Vite `intlayerPlugin()` используется для интеграции Intlayer с Vite. Он обеспечивает сборку файлов деклараций контента и отслеживает их в режиме разработки. Определяет переменные окружения Intlayer внутри приложения Vite. Кроме того, предоставляет алиасы для оптимизации производительности.
170
+ > Плагин Vite `intlayerPlugin()` используется для интеграции Intlayer с Vite. Он обеспечивает создание файлов деклараций контента и отслеживает их в режиме разработки. Он определяет переменные окружения Intlayer внутри приложения Vite. Кроме того, он предоставляет алиасы для оптимизации производительности.
170
171
 
171
172
  ### Шаг 4: Объявите Ваш Контент
172
173
 
@@ -235,12 +236,12 @@ const appContent = {
235
236
  key: "app",
236
237
  content: {
237
238
  viteLogo: t({
238
- en: "Vite logo",
239
+ en: "Логотип Vite",
239
240
  fr: "Logo Vite",
240
241
  es: "Logo Vite",
241
242
  }),
242
243
  reactLogo: t({
243
- en: "React logo",
244
+ en: "Логотип React",
244
245
  fr: "Logo React",
245
246
  es: "Logo React",
246
247
  }),
@@ -248,7 +249,7 @@ const appContent = {
248
249
  title: "Vite + React",
249
250
 
250
251
  count: t({
251
- en: "count is ",
252
+ en: "счет: ",
252
253
  fr: "le compte est ",
253
254
  es: "el recuento es ",
254
255
  }),
@@ -316,10 +317,10 @@ const appContent = {
316
317
  t <
317
318
  ReactNode >
318
319
  {
319
- // Не забудьте импортировать React, если используете React node в вашем контенте
320
+ // Не забудьте импортировать React, если вы используете React node в вашем контенте
320
321
  en: (
321
322
  <>
322
- Edit <code>src/App.tsx</code> и сохраните, чтобы проверить HMR
323
+ Edit <code>src/App.tsx</code> and save to test HMR
323
324
  </>
324
325
  ),
325
326
  fr: (
@@ -329,8 +330,7 @@ const appContent = {
329
330
  ),
330
331
  es: (
331
332
  <>
332
- Редактируйте <code>src/App.tsx</code> и сохраняйте, чтобы
333
- протестировать HMR
333
+ Edita <code>src/App.tsx</code> y guarda para probar HMR
334
334
  </>
335
335
  ),
336
336
  },
@@ -394,7 +394,7 @@ module.exports = appContent;
394
394
  "en": "Edit src/App.tsx and save to test HMR",
395
395
  "fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
396
396
  "es": "Edita src/App.tsx y guarda para probar HMR",
397
- "ru": "Редактируйте src/App.tsx и сохраняйте, чтобы проверить HMR"
397
+ "ru": "Отредактируйте src/App.tsx и сохраните, чтобы проверить HMR"
398
398
  }
399
399
  },
400
400
  "readTheDocs": {
@@ -411,7 +411,7 @@ module.exports = appContent;
411
411
 
412
412
  > Для получения дополнительной информации обратитесь к [документации по объявлениям контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md).
413
413
 
414
- > Если ваш файл контента включает код TSX, вам следует рассмотреть возможность импорта `import React from "react";` в вашем файле контента.
414
+ > Если ваш файл контента включает код TSX, рекомендуется импортировать `import React from "react";` в вашем файле контента.
415
415
 
416
416
  ### Шаг 5: Использование Intlayer в вашем коде
417
417
 
@@ -532,6 +532,7 @@ const AppContent = () => {
532
532
  <img
533
533
  src={reactLogo}
534
534
  className="logo react"
535
+ alt={content.reactLogo.value} // альтернативный текст для логотипа React
535
536
  alt={content.reactLogo.value}
536
537
  />
537
538
  </a>
@@ -568,7 +569,7 @@ module.exports = App;
568
569
 
569
570
  ### (Необязательно) Шаг 6: Изменение языка вашего контента
570
571
 
571
- Для изменения языка вашего контента вы можете использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция позволяет установить локаль приложения и обновить контент соответственно.
572
+ Чтобы изменить язык вашего контента, вы можете использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция позволяет установить локаль приложения и обновить контент соответственно.
572
573
 
573
574
  ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
574
575
  import type { FC } from "react";
@@ -580,7 +581,7 @@ const LocaleSwitcher: FC = () => {
580
581
 
581
582
  return (
582
583
  <button onClick={() => setLocale(Locales.English)}>
583
- Изменить язык на английский
584
+ Change Language to English
584
585
  </button>
585
586
  );
586
587
  };
@@ -620,7 +621,7 @@ const LocaleSwitcher = () => {
620
621
 
621
622
  ### (Необязательно) Шаг 7: Добавьте локализованную маршрутизацию в ваше приложение
622
623
 
623
- Цель этого шага — создать уникальные маршруты для каждого языка. Это полезно для SEO и создания SEO-дружественных URL.
624
+ Цель этого шага — создать уникальные маршруты для каждого языка. Это полезно для SEO и URL, дружественных к SEO.
624
625
  Пример:
625
626
 
626
627
  ```plaintext
@@ -631,7 +632,7 @@ const LocaleSwitcher = () => {
631
632
 
632
633
  > По умолчанию маршруты не имеют префикса для локали по умолчанию. Если вы хотите добавить префикс для локали по умолчанию, вы можете установить опцию `middleware.prefixDefault` в значение `true` в вашей конфигурации. Подробнее смотрите в [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
633
634
 
634
- Чтобы добавить локализованную маршрутизацию в ваше приложение, вы можете создать компонент `LocaleRouter`, который обернет маршруты вашего приложения и будет обрабатывать маршрутизацию на основе локали. Вот пример с использованием [React Router](https://reactrouter.com/home):
635
+ Чтобы добавить локализованную маршрутизацию в ваше приложение, вы можете создать компонент `LocaleRouter`, который оборачивает маршруты вашего приложения и обрабатывает маршрутизацию на основе локали. Вот пример с использованием [React Router](https://reactrouter.com/home):
635
636
 
636
637
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
637
638
  // Импорт необходимых зависимостей и функций
@@ -658,39 +659,39 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
658
659
  children,
659
660
  locale,
660
661
  }) => {
661
- const { pathname, search } = useLocation(); // Получаем текущий путь URL
662
+ const { pathname, search } = useLocation(); // Получить текущий путь URL
662
663
 
663
- // Определяем текущую локаль, используя локаль по умолчанию, если не указана
664
+ // Определить текущую локаль, используя локаль по умолчанию, если не указана
664
665
  const currentLocale = locale ?? defaultLocale;
665
666
 
666
- // Удаляем префикс локали из пути для формирования базового пути
667
+ // Удалить префикс локали из пути для формирования базового пути
667
668
  const pathWithoutLocale = getPathWithoutLocale(
668
669
  pathname // Текущий путь URL
669
670
  );
670
671
 
671
672
  /**
672
- * Если middleware.prefixDefault равно true, префикс локали по умолчанию всегда должен присутствовать.
673
+ * Если middleware.prefixDefault равно true, префикс локали по умолчанию должен всегда присутствовать.
673
674
  */
674
675
  if (middleware.prefixDefault) {
675
- // Проверяем валидность локали
676
+ // Проверить валидность локали
676
677
  if (!locale || !locales.includes(locale)) {
677
- // Перенаправляем на локаль по умолчанию с обновленным путем
678
+ // Перенаправить на локаль по умолчанию с обновлённым путем
678
679
  return (
679
680
  <Navigate
680
681
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
681
- replace // Заменить текущую запись в истории на новую
682
+ replace // Заменить текущую запись истории новой
682
683
  />
683
684
  );
684
685
  }
685
686
 
686
- // Оборачиваем дочерние элементы в IntlayerProvider и устанавливаем текущую локаль
687
+ // Обернуть дочерние элементы в IntlayerProvider и установить текущую локаль
687
688
  return (
688
689
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
689
690
  );
690
691
  } else {
691
692
  /**
692
- * Когда middleware.prefixDefault равно false, префикс для локали по умолчанию не используется.
693
- * Убедитесь, что текущая локаль действительна и не является локалью по умолчанию.
693
+ * Когда middleware.prefixDefault равно false, локаль по умолчанию не префиксируется.
694
+ * Убедиться, что текущая локаль действительна и не является локалью по умолчанию.
694
695
  */
695
696
  if (
696
697
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -698,13 +699,13 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
698
699
  .filter(
699
700
  (locale) => locale.toString() !== defaultLocale.toString() // Исключить локаль по умолчанию
700
701
  )
701
- .includes(currentLocale) // Проверяет, находится ли текущая локаль в списке допустимых локалей
702
+ .includes(currentLocale) // Проверить, находится ли текущая локаль в списке допустимых локалей
702
703
  ) {
703
- // Перенаправляет на путь без префикса локали
704
+ // Перенаправить на путь без префикса локали
704
705
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
705
706
  }
706
707
 
707
- // Оборачивает дочерние элементы в IntlayerProvider и устанавливает текущую локаль
708
+ // Обернуть дочерние элементы в IntlayerProvider и установить текущую локаль
708
709
  return (
709
710
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
710
711
  );
@@ -712,7 +713,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
712
713
  };
713
714
 
714
715
  /**
715
- * Компонент роутера, который настраивает маршруты с учетом локали.
716
+ * Компонент маршрутизатора, который настраивает маршруты для конкретных локалей.
716
717
  * Использует React Router для управления навигацией и рендеринга локализованных компонентов.
717
718
  */
718
719
  export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
@@ -732,7 +733,7 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
732
733
  ))}
733
734
 
734
735
  {
735
- // Если префикс для локали по умолчанию отключен, рендерит дочерние элементы напрямую по корневому пути
736
+ // Если префикс для локали по умолчанию отключен, рендерить дочерние элементы напрямую по корневому пути
736
737
  !middleware.prefixDefault && (
737
738
  <Route
738
739
  path="*"
@@ -780,16 +781,16 @@ const AppLocalized = ({ children, locale }) => {
780
781
  );
781
782
 
782
783
  /**
783
- * Если middleware.prefixDefault равно true, локаль по умолчанию всегда должна иметь префикс.
784
+ * Если middleware.prefixDefault равно true, префикс локали по умолчанию должен всегда присутствовать.
784
785
  */
785
786
  if (middleware.prefixDefault) {
786
787
  // Проверить локаль
787
788
  if (!locale || !locales.includes(locale)) {
788
- // Перенаправить на локаль по умолчанию с обновлённым путём
789
+ // Перенаправить на локаль по умолчанию с обновлённым путем
789
790
  return (
790
791
  <Navigate
791
792
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
792
- replace // Заменить текущую запись истории на новую
793
+ replace // Заменить текущую запись в истории на новую
793
794
  />
794
795
  );
795
796
  }
@@ -801,7 +802,7 @@ const AppLocalized = ({ children, locale }) => {
801
802
  } else {
802
803
  /**
803
804
  * Когда middleware.prefixDefault равно false, префикс для локали по умолчанию не используется.
804
- * Убедитесь, что текущая локаль действительна и не является локалью по умолчанию.
805
+ * Убедиться, что текущая локаль действительна и не является локалью по умолчанию.
805
806
  */
806
807
  if (
807
808
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -809,13 +810,13 @@ const AppLocalized = ({ children, locale }) => {
809
810
  .filter(
810
811
  (locale) => locale.toString() !== defaultLocale.toString() // Исключить локаль по умолчанию
811
812
  )
812
- .includes(currentLocale) // Проверяет, входит ли текущая локаль в список допустимых локалей
813
+ .includes(currentLocale) // Проверить, находится ли текущая локаль в списке допустимых локалей
813
814
  ) {
814
- // Перенаправляет на путь без префикса локали
815
+ // Перенаправить на путь без префикса локали
815
816
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
816
817
  }
817
818
 
818
- // Оборачивает дочерние элементы в IntlayerProvider и устанавливает текущую локаль
819
+ // Обернуть дочерние элементы в IntlayerProvider и установить текущую локаль
819
820
  return (
820
821
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
821
822
  );
@@ -824,7 +825,7 @@ const AppLocalized = ({ children, locale }) => {
824
825
 
825
826
  /**
826
827
  * Компонент маршрутизатора, который настраивает маршруты для конкретных локалей.
827
- * Использует React Router для управления навигацией и отображения локализованных компонентов.
828
+ * Использует React Router для управления навигацией и рендеринга локализованных компонентов.
828
829
  */
829
830
  export const LocaleRouter = ({ children }) => (
830
831
  <BrowserRouter>
@@ -835,7 +836,7 @@ export const LocaleRouter = ({ children }) => (
835
836
  )
836
837
  .map((locale) => (
837
838
  <Route
838
- // Шаблон маршрута для захвата локали (например, /en/, /fr/) и соответствия всем последующим путям
839
+ // Шаблон маршрута для захвата локали (например, /en/, /fr/) и сопоставления всех последующих путей
839
840
  path={`/${locale}/*`}
840
841
  key={locale}
841
842
  element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Оборачивает дочерние элементы с управлением локалью
@@ -843,7 +844,7 @@ export const LocaleRouter = ({ children }) => (
843
844
  ))}
844
845
 
845
846
  {
846
- // Если префикс локали по умолчанию отключен, рендерит дочерние элементы напрямую по корневому пути
847
+ // Если префикс для локали по умолчанию отключен, рендерить дочерние элементы напрямую по корневому пути
847
848
  !middleware.prefixDefault && (
848
849
  <Route
849
850
  path="*"
@@ -881,7 +882,7 @@ const { locales, defaultLocale } = internationalization;
881
882
  const AppLocalized = ({ children, locale }) => {
882
883
  const { pathname, search } = useLocation(); // Получить текущий путь URL
883
884
 
884
- // Определить текущую локаль, использовать локаль по умолчанию, если не указана
885
+ // Определить текущую локаль, используя локаль по умолчанию, если не указана
885
886
  const currentLocale = locale ?? defaultLocale;
886
887
 
887
888
  // Удалить префикс локали из пути для построения базового пути
@@ -899,7 +900,7 @@ const AppLocalized = ({ children, locale }) => {
899
900
  return (
900
901
  <Navigate
901
902
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
902
- replace // Заменить текущую запись в истории на новую
903
+ replace // Заменить текущую запись истории на новую
903
904
  />
904
905
  );
905
906
  }
@@ -911,7 +912,7 @@ const AppLocalized = ({ children, locale }) => {
911
912
  } else {
912
913
  /**
913
914
  * Когда middleware.prefixDefault равно false, префикс для локали по умолчанию не добавляется.
914
- * Убедиться, что текущая локаль действительна и не является локалью по умолчанию.
915
+ * Убедиться, что текущая локаль валидна и не является локалью по умолчанию.
915
916
  */
916
917
  if (
917
918
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -919,7 +920,7 @@ const AppLocalized = ({ children, locale }) => {
919
920
  .filter(
920
921
  (locale) => locale.toString() !== defaultLocale.toString() // Исключить локаль по умолчанию
921
922
  )
922
- .includes(currentLocale) // Проверить, входит ли текущая локаль в список допустимых локалей
923
+ .includes(currentLocale) // Проверить, что текущая локаль есть в списке валидных локалей
923
924
  ) {
924
925
  // Перенаправить на путь без префикса локали
925
926
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
@@ -1096,7 +1097,7 @@ const LocaleSwitcher: FC = () => {
1096
1097
  {getLocaleName(localeItem, locale)}
1097
1098
  </span>
1098
1099
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1099
- {/* Язык на текущей локали - например, Francés при установленной локали Locales.SPANISH */}
1100
+ {/* Язык на текущей локали - например, Francés при текущей локали Locales.SPANISH */}
1100
1101
  {getLocaleName(localeItem)}
1101
1102
  </span>
1102
1103
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1127,7 +1128,7 @@ const LocaleSwitcher = () => {
1127
1128
 
1128
1129
  const { locale, availableLocales, setLocale } = useLocale({
1129
1130
  onLocaleChange: (locale) => {
1130
- // Построить URL с обновлённой локалью
1131
+ // Сформировать URL с обновленной локалью
1131
1132
  // Пример: /es/about?foo=bar
1132
1133
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1133
1134
 
@@ -1156,7 +1157,7 @@ const LocaleSwitcher = () => {
1156
1157
  {localeItem}
1157
1158
  </span>
1158
1159
  <span>
1159
- {/* Язык на своем собственном языке локали - например, Français */}
1160
+ {/* Язык на его собственной локали - например, Français */}
1160
1161
  {getLocaleName(localeItem, locale)}
1161
1162
  </span>
1162
1163
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
@@ -1191,7 +1192,7 @@ const LocaleSwitcher = () => {
1191
1192
 
1192
1193
  const { locale, availableLocales, setLocale } = useLocale({
1193
1194
  onLocaleChange: (locale) => {
1194
- // Сформировать URL с обновлённой локалью
1195
+ // Сформировать URL с обновленной локалью
1195
1196
  // Пример: /es/about?foo=bar
1196
1197
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1197
1198
 
@@ -1220,7 +1221,7 @@ const LocaleSwitcher = () => {
1220
1221
  {localeItem}
1221
1222
  </span>
1222
1223
  <span>
1223
- {/* Язык на своей локали - например, Français */}
1224
+ {/* Язык на его собственной локали - например, Français */}
1224
1225
  {getLocaleName(localeItem, locale)}
1225
1226
  </span>
1226
1227
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
@@ -1241,16 +1242,16 @@ const LocaleSwitcher = () => {
1241
1242
 
1242
1243
  > Ссылки на документацию:
1243
1244
  >
1244
- > - [`useLocale` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md)
1245
- > - [`getLocaleName` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/intlayer/getLocaleName.md)
1246
- > - [`getLocalizedUrl` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/intlayer/getLocalizedUrl.md)
1245
+ > - [`useLocale` хук](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md)
1246
+ > - [`getLocaleName` хук](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/intlayer/getLocaleName.md)
1247
+ > - [`getLocalizedUrl` хук](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/intlayer/getLocalizedUrl.md)
1247
1248
  > - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/intlayer/getHTMLTextDir.md)
1248
1249
  > - [`hrefLang` attribute](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1249
1250
  > - [`lang` attribute](https://developer.mozilla.org/ru/docs/Web/HTML/Global_attributes/lang)
1250
1251
  > - [`dir` attribute`](https://developer.mozilla.org/ru/docs/Web/HTML/Global_attributes/dir)
1251
1252
  > - [`aria-current` attribute`](https://developer.mozilla.org/ru/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1252
1253
 
1253
- Ниже приведён обновлённый **Шаг 9** с дополнительными пояснениями и уточнёнными примерами кода:
1254
+ Ниже приведён обновлённый **Шаг 9** с дополнительными объяснениями и уточнёнными примерами кода:
1254
1255
 
1255
1256
  ---
1256
1257
 
@@ -1258,7 +1259,7 @@ const LocaleSwitcher = () => {
1258
1259
 
1259
1260
  Когда ваше приложение поддерживает несколько языков, крайне важно обновлять атрибуты `lang` и `dir` тега `<html>`, чтобы они соответствовали текущей локали. Это обеспечивает:
1260
1261
 
1261
- - **Доступность**: программы чтения с экрана и вспомогательные технологии полагаются на правильный атрибут `lang` для точного произношения и интерпретации содержимого.
1262
+ - **Доступность**: программы чтения с экрана и вспомогательные технологии полагаются на правильный атрибут `lang` для точного произношения и интерпретации контента.
1262
1263
  - **Отображение текста**: атрибут `dir` (направление) гарантирует, что текст отображается в правильном порядке (например, слева направо для английского, справа налево для арабского или иврита), что важно для удобочитаемости.
1263
1264
  - **SEO**: поисковые системы используют атрибут `lang` для определения языка вашей страницы, помогая показывать правильный локализованный контент в результатах поиска.
1264
1265
 
@@ -1275,7 +1276,7 @@ import { getHTMLTextDir } from "intlayer";
1275
1276
 
1276
1277
  /**
1277
1278
  * Обновляет атрибуты `lang` и `dir` элемента <html> в зависимости от текущей локали.
1278
- * - `lang`: информирует браузеры и поисковые системы о языке страницы.
1279
+ * - `lang`: сообщает браузерам и поисковым системам язык страницы.
1279
1280
  * - `dir`: обеспечивает правильный порядок чтения (например, 'ltr' для английского, 'rtl' для арабского).
1280
1281
  *
1281
1282
  * Это динамическое обновление необходимо для правильного отображения текста, доступности и SEO.
@@ -1309,7 +1310,7 @@ export const useI18nHTMLAttributes = () => {
1309
1310
  const { locale } = useLocale();
1310
1311
 
1311
1312
  useEffect(() => {
1312
- // Обновить атрибут языка в соответствии с текущей локалью.
1313
+ // Обновить атрибут языка на текущую локаль.
1313
1314
  document.documentElement.lang = locale;
1314
1315
 
1315
1316
  // Установить направление текста в зависимости от текущей локали.
@@ -1328,7 +1329,7 @@ const { getHTMLTextDir } = require("intlayer");
1328
1329
  * - `lang`: Информирует браузеры и поисковые системы о языке страницы.
1329
1330
  * - `dir`: Обеспечивает правильный порядок чтения (например, 'ltr' для английского, 'rtl' для арабского).
1330
1331
  *
1331
- * Это динамическое обновление необходимо для правильного отображения текста, доступности и SEO.
1332
+ * Это динамическое обновление необходимо для корректного отображения текста, доступности и SEO.
1332
1333
  */
1333
1334
  const useI18nHTMLAttributes = () => {
1334
1335
  const { locale } = useLocale();
@@ -1412,6 +1413,23 @@ const App = () => (
1412
1413
  );
1413
1414
 
1414
1415
  module.exports = App;
1416
+ ```
1417
+
1418
+ Применяя эти изменения, ваше приложение будет:
1419
+
1420
+ - Обеспечивать корректное отражение текущей локали в атрибуте **language** (`lang`), что важно для SEO и поведения браузера.
1421
+ - Регулировать **направление текста** (`dir`) в соответствии с локалью, улучшая читаемость и удобство для языков с разным порядком чтения.
1422
+ - Обеспечивать более **доступный** опыт, так как вспомогательные технологии зависят от этих атрибутов для оптимальной работы.
1423
+
1424
+ ### (Необязательно) Шаг 10: Создание локализованного компонента ссылки
1425
+
1426
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
1427
+ import type { FC } from "react";
1428
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
1429
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1430
+ import "./App.css";
1431
+
1432
+ const AppContent: FC = () => {
1415
1433
  // Примените хук для обновления атрибутов lang и dir тега <html> в зависимости от локали.
1416
1434
  useI18nHTMLAttributes();
1417
1435
 
@@ -1431,16 +1449,16 @@ module.exports = App;
1431
1449
 
1432
1450
  - Обеспечивать корректное отражение текущей локали в атрибуте **языка** (`lang`), что важно для SEO и поведения браузера.
1433
1451
  - Настраивать **направление текста** (`dir`) в соответствии с локалью, улучшая читаемость и удобство использования для языков с разным порядком чтения.
1434
- - Предоставлять более **доступный** опыт, поскольку вспомогательные технологии зависят от этих атрибутов для оптимальной работы.
1452
+ - Обеспечивать более **доступный** опыт, так как вспомогательные технологии зависят от этих атрибутов для оптимальной работы.
1435
1453
 
1436
1454
  ### (Необязательно) Шаг 10: Создание локализованного компонента Link
1437
1455
 
1438
- Чтобы обеспечить навигацию вашего приложения с учётом текущей локали, вы можете создать собственный компонент `Link`. Этот компонент автоматически добавляет префикс текущего языка к внутренним URL, например, когда франкоязычный пользователь нажимает на ссылку на страницу "О нас", его перенаправляет на `/fr/about` вместо `/about`.
1456
+ Чтобы обеспечить навигацию вашего приложения с учётом текущей локали, вы можете создать пользовательский компонент `Link`. Этот компонент автоматически добавляет префикс текущего языка к внутренним URL, например, когда франкоязычный пользователь нажимает на ссылку на страницу "О нас", его перенаправляет на `/fr/about` вместо `/about`.
1439
1457
 
1440
1458
  Такое поведение полезно по нескольким причинам:
1441
1459
 
1442
- - **SEO и пользовательский опыт**: Локализованные URL помогают поисковым системам правильно индексировать страницы на разных языках и предоставлять пользователям контент на их предпочтительном языке.
1443
- - **Последовательность**: Используя локализованные ссылки по всему приложению, вы гарантируете, что навигация остаётся в рамках текущей локали, предотвращая неожиданные переключения языка.
1460
+ - **SEO и удобство для пользователя**: Локализованные URL помогают поисковым системам правильно индексировать страницы на разных языках и предоставлять пользователям контент на предпочитаемом языке.
1461
+ - **Последовательность**: Используя локализованную ссылку по всему приложению, вы гарантируете, что навигация остаётся в рамках текущей локали, предотвращая неожиданные переключения языка.
1444
1462
  - **Поддерживаемость**: Централизация логики локализации в одном компоненте упрощает управление URL-адресами, делая ваш код более удобным для поддержки и расширения по мере роста приложения.
1445
1463
 
1446
1464
  Ниже приведена реализация локализованного компонента `Link` на TypeScript:
@@ -1506,8 +1524,8 @@ export const checkIsExternalLink = (href?: string): boolean =>
1506
1524
 
1507
1525
  /**
1508
1526
  * Кастомный компонент Link, который адаптирует атрибут href в зависимости от текущей локали.
1509
- * Для внутренних ссылок используется `getLocalizedUrl` для добавления префикса локали к URL (например, /fr/about).
1510
- * Это гарантирует, что навигация остается в контексте той же локали.
1527
+ * Для внутренних ссылок используется `getLocalizedUrl`, чтобы добавить префикс локали к URL (например, /fr/about).
1528
+ * Это гарантирует, что навигация остается в контексте одной локали.
1511
1529
  */
1512
1530
  export const Link = forwardRef(({ href, children, ...props }, ref) => {
1513
1531
  const { locale } = useLocale();
@@ -1533,7 +1551,7 @@ const { useLocale } = require("react-intlayer");
1533
1551
  const { forwardRef } = require("react");
1534
1552
 
1535
1553
  /**
1536
- * Утилитная функция для проверки, является ли данный URL внешним.
1554
+ * Вспомогательная функция для проверки, является ли данный URL внешним.
1537
1555
  * Если URL начинается с http:// или https://, он считается внешним.
1538
1556
  */
1539
1557
  const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
@@ -1541,13 +1559,13 @@ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1541
1559
  /**
1542
1560
  * Пользовательский компонент Link, который адаптирует атрибут href в зависимости от текущей локали.
1543
1561
  * Для внутренних ссылок используется `getLocalizedUrl`, чтобы добавить префикс локали к URL (например, /fr/about).
1544
- * Это гарантирует, что навигация остается в контексте одной и той же локали.
1562
+ * Это гарантирует, что навигация останется в контексте той же локали.
1545
1563
  */
1546
1564
  const Link = forwardRef(({ href, children, ...props }, ref) => {
1547
1565
  const { locale } = useLocale();
1548
1566
  const isExternalLink = checkIsExternalLink(href);
1549
1567
 
1550
- // Если ссылка внутренняя и href валиден, получить локализованный URL.
1568
+ // Если ссылка внутренняя и задан корректный href, получить локализованный URL.
1551
1569
  const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
1552
1570
 
1553
1571
  return (
@@ -1616,14 +1634,14 @@ Intlayer использует расширение модулей (module augmen
1616
1634
 
1617
1635
  Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
1618
1636
 
1619
- [Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1637
+ [Установить из магазина расширений VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1620
1638
 
1621
1639
  Это расширение предоставляет:
1622
1640
 
1623
1641
  - **Автодополнение** для ключей переводов.
1624
1642
  - **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
1625
- - **Встроенный предварительный просмотр** переведённого контента.
1626
- - **Быстрые действия** для лёгкого создания и обновления переводов.
1643
+ - **Встроенный просмотр** переведенного контента.
1644
+ - **Быстрые действия** для удобного создания и обновления переводов.
1627
1645
 
1628
1646
  Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
1629
1647