@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: Traduza seu aplicativo móvel React Native e Expo (i18n)
5
- description: Descubra como tornar seu aplicativo móvel React Native e Expo multilíngue. Siga a documentação para internacionalizar (i18n) e traduzir.
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2024-03-07
4
+ title: Começando com Intlayer em Vite + React
5
+ description: Aprenda como adicionar internacionalização (i18n) à sua aplicação Vite e React usando Intlayer. Siga este guia para tornar seu app multilíngue.
6
6
  keywords:
7
7
  - Internacionalização
8
8
  - Documentação
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
  # Começando a Internacionalizar (i18n) com Intlayer, Vite e 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
  Veja o [Modelo de Aplicação](https://github.com/aymericzip/intlayer-vite-react-template) no GitHub.
23
26
 
24
27
  ## O que é Intlayer?
@@ -27,10 +30,10 @@ Veja o [Modelo de Aplicação](https://github.com/aymericzip/intlayer-vite-react
27
30
 
28
31
  Com o Intlayer, você pode:
29
32
 
30
- - **Gerenciar traduções facilmente** usando dicionários declarativos no nível do componente.
31
- - **Localizar dinamicamente metadados**, rotas e conteúdo.
32
- - **Garantir suporte ao TypeScript** com tipos gerados automaticamente, melhorando o autocompletar e a detecção de erros.
33
- - **Aproveitar recursos avançados**, como detecção e troca dinâmica de idioma.
33
+ - **Gerencie traduções facilmente** usando dicionários declarativos no nível do componente.
34
+ - **Localize dinamicamente metadados**, rotas e conteúdo.
35
+ - **Garanta suporte ao TypeScript** com tipos autogerados, melhorando o autocompletar e a detecção de erros.
36
+ - **Beneficie-se de recursos avançados**, como detecção e troca dinâmica de localidade.
34
37
 
35
38
  ---
36
39
 
@@ -42,17 +45,17 @@ Instale os pacotes necessários usando npm:
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**
@@ -63,7 +66,7 @@ yarn add --save-dev vite-intlayer
63
66
  O pacote que integra o Intlayer com aplicações React. Ele fornece provedores de contexto e hooks para internacionalização em React.
64
67
 
65
68
  - **vite-intlayer**
66
- Inclui o plugin Vite para integrar o Intlayer com o [empacotador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), assim como middleware para detectar o idioma preferido do usuário, gerenciar cookies e lidar com redirecionamento de URL.
69
+ Inclui o plugin Vite para integrar o Intlayer com o [empacotador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), além de middleware para detectar a localidade preferida do usuário, gerenciar cookies e lidar com redirecionamento de URL.
67
70
 
68
71
  ### Passo 2: Configuração do seu projeto
69
72
 
@@ -164,7 +167,7 @@ module.exports = defineConfig({
164
167
  });
165
168
  ```
166
169
 
167
- > O plugin Vite `intlayerPlugin()` é usado para integrar o Intlayer com o Vite. Ele garante a construção dos arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Define as variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.
170
+ > O plugin Vite `intlayerPlugin()` é usado para integrar o Intlayer com o Vite. Ele garante a construção dos arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Define variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.
168
171
 
169
172
  ### Passo 4: Declare Seu Conteúdo
170
173
 
@@ -215,7 +218,7 @@ const appContent = {
215
218
  }),
216
219
 
217
220
  readTheDocs: t({
218
- en: "Click on the Vite and React logos to learn more",
221
+ en: "Clique nos logos do Vite e React para saber mais",
219
222
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
220
223
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
221
224
  }),
@@ -255,7 +258,7 @@ const appContent = {
255
258
  t <
256
259
  ReactNode >
257
260
  {
258
- // Não se esqueça de importar React se você usar um nó React no seu conteúdo
261
+ // Não se esqueça de importar React se usar um nó React no seu conteúdo
259
262
  en: (
260
263
  <>
261
264
  Edit <code>src/App.tsx</code> e salve para testar HMR
@@ -274,7 +277,7 @@ const appContent = {
274
277
  },
275
278
 
276
279
  readTheDocs: t({
277
- en: "Clique nos logos do Vite e React para saber mais",
280
+ en: "Click on the Vite and React logos to learn more",
278
281
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
279
282
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
280
283
  }),
@@ -292,13 +295,13 @@ const appContent = {
292
295
  key: "app",
293
296
  content: {
294
297
  viteLogo: t({
295
- pt: "Logo do Vite",
298
+ pt: "Logo Vite",
296
299
  en: "Vite logo",
297
300
  fr: "Logo Vite",
298
301
  es: "Logo Vite",
299
302
  }),
300
303
  reactLogo: t({
301
- pt: "Logo do React",
304
+ pt: "Logo React",
302
305
  en: "React logo",
303
306
  fr: "Logo React",
304
307
  es: "Logo React",
@@ -360,7 +363,7 @@ module.exports = appContent;
360
363
  "viteLogo": {
361
364
  "nodeType": "translation",
362
365
  "translation": {
363
- "pt": "Logo do Vite",
366
+ "pt": "Logo Vite",
364
367
  "en": "Vite logo",
365
368
  "fr": "Logo Vite",
366
369
  "es": "Logo Vite"
@@ -369,43 +372,43 @@ module.exports = appContent;
369
372
  "reactLogo": {
370
373
  "nodeType": "translation",
371
374
  "translation": {
372
- "pt": "Logo React",
373
375
  "en": "React logo",
374
376
  "fr": "Logo React",
375
- "es": "Logo React"
377
+ "es": "Logo React",
378
+ "pt": "Logo React"
376
379
  }
377
380
  },
378
381
  "title": {
379
382
  "nodeType": "translation",
380
383
  "translation": {
381
- "pt": "Vite + React",
382
384
  "en": "Vite + React",
383
385
  "fr": "Vite + React",
384
- "es": "Vite + React"
386
+ "es": "Vite + React",
387
+ "pt": "Vite + React"
385
388
  }
386
389
  },
387
390
  "count": {
388
391
  "nodeType": "translation",
389
392
  "translation": {
390
- "pt": "a contagem é ",
391
393
  "en": "count is ",
392
394
  "fr": "le compte est ",
393
- "es": "el recuento es "
395
+ "es": "el recuento es ",
396
+ "pt": "a contagem é "
394
397
  }
395
398
  },
396
399
  "edit": {
397
400
  "nodeType": "translation",
398
401
  "translation": {
399
- "pt": "Edite src/App.tsx e salve para testar HMR",
400
402
  "en": "Edit src/App.tsx and save to test HMR",
401
403
  "fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
402
- "es": "Edita src/App.tsx y guarda para probar HMR"
404
+ "es": "Edita src/App.tsx y guarda para probar HMR",
405
+ "pt": "Edite src/App.tsx e salve para testar HMR"
403
406
  }
404
407
  },
405
408
  "readTheDocs": {
406
409
  "nodeType": "translation",
407
410
  "translation": {
408
- "pt": "Clique nos logos do Vite e React para saber mais",
411
+ "pt": "Clique nos logos do Vite e do React para saber mais",
409
412
  "en": "Click on the Vite and React logos to learn more",
410
413
  "fr": "Cliquez sur les logos Vite et React pour en savoir plus",
411
414
  "es": "Haga clic en los logotipos de Vite y React para obtener más información"
@@ -566,7 +569,7 @@ const App = () => (
566
569
  module.exports = App;
567
570
  ```
568
571
 
569
- > Se quiser usar seu conteúdo em um atributo `string`, como `alt`, `title`, `href`, `aria-label`, etc., você deve chamar o valor da função, assim:
572
+ > Se você quiser usar seu conteúdo em um atributo do tipo `string`, como `alt`, `title`, `href`, `aria-label`, etc., você deve chamar o valor da função, assim:
570
573
 
571
574
  > ```jsx
572
575
  > <img src={content.image.src.value} alt={content.image.value} />
@@ -594,28 +597,6 @@ const LocaleSwitcher: FC = () => {
594
597
  };
595
598
  ```
596
599
 
597
- > Para saber mais sobre o hook `useIntlayer`, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/react-intlayer/useIntlayer.md).
598
-
599
- ### (Opcional) Passo 6: Alterar o idioma do seu conteúdo
600
-
601
- Para alterar o idioma do seu conteúdo, você pode usar a função `setLocale` fornecida pelo hook `useLocale`. Esta função permite definir o locale da aplicação e atualizar o conteúdo de acordo.
602
-
603
- ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
604
- import type { FC } from "react";
605
- import { Locales } from "intlayer";
606
- import { useLocale } from "react-intlayer";
607
-
608
- const LocaleSwitcher: FC = () => {
609
- const { setLocale } = useLocale();
610
-
611
- return (
612
- <button onClick={() => setLocale(Locales.English)}>
613
- Alterar idioma para Inglês
614
- </button>
615
- );
616
- };
617
- ```
618
-
619
600
  ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
620
601
  import { Locales } from "intlayer";
621
602
  import { useLocale } from "react-intlayer";
@@ -648,7 +629,7 @@ const LocaleSwitcher = () => {
648
629
 
649
630
  > Para saber mais sobre o hook `useLocale`, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/react-intlayer/useLocale.md).
650
631
 
651
- ### (Opcional) Passo 7: Adicionar Roteamento localizado à sua aplicação
632
+ ### (Opcional) Passo 7: Adicionar roteamento localizado à sua aplicação
652
633
 
653
634
  O objetivo deste passo é criar rotas únicas para cada idioma. Isso é útil para SEO e URLs amigáveis para SEO.
654
635
  Exemplo:
@@ -661,7 +642,7 @@ Exemplo:
661
642
 
662
643
  > Por padrão, as rotas não são prefixadas para o idioma padrão. Se você quiser prefixar o idioma padrão, pode definir a opção `middleware.prefixDefault` como `true` na sua configuração. Veja a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md) para mais informações.
663
644
 
664
- Para adicionar roteamento localizado à sua aplicação, você pode criar um componente `LocaleRouter` que envolve as rotas da sua aplicação e gerencia o roteamento baseado no idioma. Aqui está um exemplo usando o [React Router](https://reactrouter.com/home):
645
+ Para adicionar roteamento localizado à sua aplicação, você pode criar um componente `LocaleRouter` que envolve as rotas da sua aplicação e gerencia o roteamento baseado no idioma. Aqui está um exemplo usando [React Router](https://reactrouter.com/home):
665
646
 
666
647
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
667
648
  // Importando dependências e funções necessárias
@@ -674,7 +655,7 @@ import {
674
655
  Route,
675
656
  Navigate,
676
657
  useLocation,
677
- } from "react-router-dom"; // Componentes do roteador para gerenciamento de navegação
658
+ } from "react-router-dom"; // Componentes do roteador para gerenciar navegação
678
659
 
679
660
  // Desestruturando configuração do Intlayer
680
661
  const { internationalization, middleware } = configuration;
@@ -682,29 +663,29 @@ const { locales, defaultLocale } = internationalization;
682
663
 
683
664
  /**
684
665
  * Um componente que gerencia a localização e envolve os filhos com o contexto de local apropriado.
685
- * Ele gerencia a detecção e validação do local baseado na URL.
666
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
686
667
  */
687
668
  const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
688
669
  children,
689
670
  locale,
690
671
  }) => {
691
- const { pathname, search } = useLocation(); // Obter o caminho atual da URL
672
+ const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
692
673
 
693
- // Determinar o locale atual, usando o padrão caso não seja fornecido
674
+ // Determina o idioma atual, usando o padrão caso não seja fornecido
694
675
  const currentLocale = locale ?? defaultLocale;
695
676
 
696
- // Remover o prefixo do locale do caminho para construir um caminho base
677
+ // Remove o prefixo do idioma do caminho para construir um caminho base
697
678
  const pathWithoutLocale = getPathWithoutLocale(
698
679
  pathname // Caminho atual da URL
699
680
  );
700
681
 
701
682
  /**
702
- * Se middleware.prefixDefault for true, o locale padrão deve sempre ser prefixado.
683
+ * Se middleware.prefixDefault for true, o idioma padrão deve sempre ser prefixado.
703
684
  */
704
685
  if (middleware.prefixDefault) {
705
- // Validar o locale
686
+ // Valida o idioma
706
687
  if (!locale || !locales.includes(locale)) {
707
- // Redirecionar para o locale padrão com o caminho atualizado
688
+ // Redireciona para o idioma padrão com o caminho atualizado
708
689
  return (
709
690
  <Navigate
710
691
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -713,28 +694,28 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
713
694
  );
714
695
  }
715
696
 
716
- // Envolve os filhos com o IntlayerProvider e define o locale atual
697
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
717
698
  return (
718
699
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
719
700
  );
720
701
  } else {
721
702
  /**
722
- * Quando middleware.prefixDefault é falso, o locale padrão não é prefixado.
723
- * Assegure que o locale atual seja válido e não o locale padrão.
703
+ * Quando middleware.prefixDefault é falso, a localidade padrão não é prefixada.
704
+ * Assegura que a localidade atual seja válida e não a localidade padrão.
724
705
  */
725
706
  if (
726
707
  currentLocale.toString() !== defaultLocale.toString() &&
727
708
  !locales
728
709
  .filter(
729
- (locale) => locale.toString() !== defaultLocale.toString() // Exclui o locale padrão
710
+ (locale) => locale.toString() !== defaultLocale.toString() // Exclui a localidade padrão
730
711
  )
731
- .includes(currentLocale) // Verifica se o local atual está na lista de locais válidos
712
+ .includes(currentLocale) // Verifica se o idioma atual está na lista de idiomas válidos
732
713
  ) {
733
- // Redireciona para o caminho sem o prefixo de local
714
+ // Redireciona para o caminho sem o prefixo do idioma
734
715
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
735
716
  }
736
717
 
737
- // Envolve os filhos com o IntlayerProvider e define o local atual
718
+ // Envolve os filhos com o IntlayerProvider e define o idioma atual
738
719
  return (
739
720
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
740
721
  );
@@ -742,7 +723,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
742
723
  };
743
724
 
744
725
  /**
745
- * Um componente de roteador que configura rotas específicas por local.
726
+ * Um componente de roteador que configura rotas específicas por idioma.
746
727
  * Ele usa o React Router para gerenciar a navegação e renderizar componentes localizados.
747
728
  */
748
729
  export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
@@ -754,21 +735,21 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
754
735
  )
755
736
  .map((locale) => (
756
737
  <Route
757
- // Padrão de rota para capturar o locale (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
738
+ // Padrão de rota para capturar a localidade (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
758
739
  path={`/${locale}/*`}
759
740
  key={locale}
760
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de locale
741
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de localidade
761
742
  />
762
743
  ))}
763
744
 
764
745
  {
765
- // Se o prefixo do locale padrão estiver desativado, renderiza os filhos diretamente no caminho raiz
746
+ // Se o prefixo da localidade padrão estiver desativado, renderiza os filhos diretamente na raiz
766
747
  !middleware.prefixDefault && (
767
748
  <Route
768
749
  path="*"
769
750
  element={
770
751
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
771
- } // Envolve os filhos com o gerenciamento de locale
752
+ } // Envolve os filhos com o gerenciamento de localidade
772
753
  />
773
754
  )
774
755
  }
@@ -796,26 +777,26 @@ const { locales, defaultLocale } = internationalization;
796
777
 
797
778
  /**
798
779
  * Um componente que gerencia a localização e envolve os filhos com o contexto de local apropriado.
799
- * Ele gerencia a detecção e validação do locale baseado na URL.
780
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
800
781
  */
801
782
  const AppLocalized = ({ children, locale }) => {
802
783
  const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
803
784
 
804
- // Determina o locale atual, usando o padrão caso não seja fornecido
785
+ // Determina a localidade atual, usando a localidade padrão caso não seja fornecida
805
786
  const currentLocale = locale ?? defaultLocale;
806
787
 
807
- // Remove o prefixo do locale do caminho para construir um caminho base
788
+ // Remove o prefixo da localidade do caminho para construir um caminho base
808
789
  const pathWithoutLocale = getPathWithoutLocale(
809
790
  pathname // Caminho atual da URL
810
791
  );
811
792
 
812
793
  /**
813
- * Se middleware.prefixDefault for verdadeiro, o locale padrão deve sempre ser prefixado.
794
+ * Se middleware.prefixDefault for verdadeiro, a localidade padrão deve sempre ser prefixada.
814
795
  */
815
796
  if (middleware.prefixDefault) {
816
- // Valida o locale
797
+ // Valida a localidade
817
798
  if (!locale || !locales.includes(locale)) {
818
- // Redireciona para o locale padrão com o caminho atualizado
799
+ // Redireciona para a localidade padrão com o caminho atualizado
819
800
  return (
820
801
  <Navigate
821
802
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -824,28 +805,28 @@ const AppLocalized = ({ children, locale }) => {
824
805
  );
825
806
  }
826
807
 
827
- // Envolve os filhos com o IntlayerProvider e define o locale atual
808
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
828
809
  return (
829
810
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
830
811
  );
831
812
  } else {
832
813
  /**
833
- * Quando middleware.prefixDefault é falso, o locale padrão não é prefixado.
834
- * Assegure que o locale atual seja válido e não o locale padrão.
814
+ * Quando middleware.prefixDefault é falso, a localidade padrão não é prefixada.
815
+ * Garante que a localidade atual seja válida e não a localidade padrão.
835
816
  */
836
817
  if (
837
818
  currentLocale.toString() !== defaultLocale.toString() &&
838
819
  !locales
839
820
  .filter(
840
- (locale) => locale.toString() !== defaultLocale.toString() // Exclui o locale padrão
821
+ (locale) => locale.toString() !== defaultLocale.toString() // Exclui a localidade padrão
841
822
  )
842
- .includes(currentLocale) // Verifica se o locale atual está na lista de locales válidos
823
+ .includes(currentLocale) // Verifica se a localidade atual está na lista de localidades válidas
843
824
  ) {
844
- // Redireciona para o caminho sem o prefixo de locale
825
+ // Redireciona para o caminho sem o prefixo da localidade
845
826
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
846
827
  }
847
828
 
848
- // Envolve os filhos com o IntlayerProvider e define o locale atual
829
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
849
830
  return (
850
831
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
851
832
  );
@@ -853,7 +834,7 @@ const AppLocalized = ({ children, locale }) => {
853
834
  };
854
835
 
855
836
  /**
856
- * Um componente de roteador que configura rotas específicas por locale.
837
+ * Um componente de roteador que configura rotas específicas por localidade.
857
838
  * Ele usa o React Router para gerenciar a navegação e renderizar componentes localizados.
858
839
  */
859
840
  export const LocaleRouter = ({ children }) => (
@@ -865,21 +846,21 @@ export const LocaleRouter = ({ children }) => (
865
846
  )
866
847
  .map((locale) => (
867
848
  <Route
868
- // Padrão de rota para capturar o locale (ex: /en/, /fr/) e corresponder a todos os caminhos subsequentes
849
+ // Padrão de rota para capturar a localidade (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
869
850
  path={`/${locale}/*`}
870
851
  key={locale}
871
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de locale
852
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de localidade
872
853
  />
873
854
  ))}
874
855
 
875
856
  {
876
- // Se o prefixo do locale padrão estiver desabilitado, renderiza os filhos diretamente na raiz
857
+ // Se o prefixo da localidade padrão estiver desativado, renderiza os filhos diretamente na raiz
877
858
  !middleware.prefixDefault && (
878
859
  <Route
879
860
  path="*"
880
861
  element={
881
862
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
882
- } // Envolve os filhos com o gerenciamento de locale
863
+ } // Envolve os filhos com o gerenciamento de localidade
883
864
  />
884
865
  )
885
866
  }
@@ -905,27 +886,27 @@ const { internationalization, middleware } = configuration;
905
886
  const { locales, defaultLocale } = internationalization;
906
887
 
907
888
  /**
908
- * Um componente que gerencia a localização e envolve os filhos com o contexto de locale apropriado.
909
- * Ele gerencia a detecção e validação do locale baseado na URL.
889
+ * Um componente que gerencia a localização e envolve os filhos com o contexto de localidade apropriado.
890
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
910
891
  */
911
892
  const AppLocalized = ({ children, locale }) => {
912
- const { pathname, search } = useLocation(); // Obter o caminho atual da URL
893
+ const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
913
894
 
914
- // Determinar o locale atual, usando o padrão se não for fornecido
895
+ // Determina o locale atual, usando o padrão caso não seja fornecido
915
896
  const currentLocale = locale ?? defaultLocale;
916
897
 
917
- // Remover o prefixo do locale do caminho para construir um caminho base
898
+ // Remove o prefixo do locale do caminho para construir um caminho base
918
899
  const pathWithoutLocale = getPathWithoutLocale(
919
900
  pathname // Caminho atual da URL
920
901
  );
921
902
 
922
903
  /**
923
- * Se middleware.prefixDefault for verdadeiro, o locale padrão deve sempre ser prefixado.
904
+ * Se middleware.prefixDefault for true, o locale padrão deve sempre ser prefixado.
924
905
  */
925
906
  if (middleware.prefixDefault) {
926
- // Validar o locale
907
+ // Valida o locale
927
908
  if (!locale || !locales.includes(locale)) {
928
- // Redirecionar para o locale padrão com o caminho atualizado
909
+ // Redireciona para o locale padrão com o caminho atualizado
929
910
  return (
930
911
  <Navigate
931
912
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -941,7 +922,7 @@ const AppLocalized = ({ children, locale }) => {
941
922
  } else {
942
923
  /**
943
924
  * Quando middleware.prefixDefault é falso, o locale padrão não é prefixado.
944
- * Assegure que o locale atual seja válido e não o locale padrão.
925
+ * Garante que o locale atual seja válido e não o locale padrão.
945
926
  */
946
927
  if (
947
928
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -951,7 +932,7 @@ const AppLocalized = ({ children, locale }) => {
951
932
  )
952
933
  .includes(currentLocale) // Verifica se o locale atual está na lista de locales válidos
953
934
  ) {
954
- // Redireciona para o caminho sem prefixo de locale
935
+ // Redireciona para o caminho sem o prefixo do locale
955
936
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
956
937
  }
957
938
 
@@ -983,7 +964,7 @@ const LocaleRouter = ({ children }) => (
983
964
  ))}
984
965
 
985
966
  {
986
- // Se o prefixo para o locale padrão estiver desativado, renderiza os filhos diretamente na raiz
967
+ // Se o prefixo para o locale padrão estiver desabilitado, renderiza os filhos diretamente na raiz
987
968
  !middleware.prefixDefault && (
988
969
  <Route
989
970
  path="*"
@@ -1093,11 +1074,11 @@ const LocaleSwitcher: FC = () => {
1093
1074
 
1094
1075
  const { locale, availableLocales, setLocale } = useLocale({
1095
1076
  onLocaleChange: (locale) => {
1096
- // Constrói a URL com o locale atualizado
1077
+ // Construir a URL com o locale atualizado
1097
1078
  // Exemplo: /es/about?foo=bar
1098
1079
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1099
1080
 
1100
- // Atualiza o caminho da URL
1081
+ // Atualizar o caminho da URL
1101
1082
  navigate(pathWithLocale);
1102
1083
  },
1103
1084
  });
@@ -1118,19 +1099,19 @@ const LocaleSwitcher: FC = () => {
1118
1099
  key={localeItem}
1119
1100
  >
1120
1101
  <span>
1121
- {/* Local - ex. FR */}
1102
+ {/* Local - ex: FR */}
1122
1103
  {localeItem}
1123
1104
  </span>
1124
1105
  <span>
1125
- {/* Idioma na sua própria Localização - ex. Français */}
1106
+ {/* Idioma na sua própria localidade - ex: Français */}
1126
1107
  {getLocaleName(localeItem, locale)}
1127
1108
  </span>
1128
1109
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1129
- {/* Idioma na Localização atual - ex. Francés com a localização atual definida para Locales.SPANISH */}
1110
+ {/* Idioma na localidade atual - ex: Francés com localidade atual definida para Locales.SPANISH */}
1130
1111
  {getLocaleName(localeItem)}
1131
1112
  </span>
1132
1113
  <span dir="ltr" lang={Locales.ENGLISH}>
1133
- {/* Idioma em Inglês - ex. French */}
1114
+ {/* Idioma em inglês - ex: French */}
1134
1115
  {getLocaleName(localeItem, Locales.ENGLISH)}
1135
1116
  </span>
1136
1117
  </a>
@@ -1182,19 +1163,19 @@ const LocaleSwitcher = () => {
1182
1163
  key={localeItem}
1183
1164
  >
1184
1165
  <span>
1185
- {/* Local - ex. FR */}
1166
+ {/* Localidade - ex: FR */}
1186
1167
  {localeItem}
1187
1168
  </span>
1188
1169
  <span>
1189
- {/* Idioma no seu próprio local - ex. Français */}
1170
+ {/* Idioma na sua própria localidade - ex: Français */}
1190
1171
  {getLocaleName(localeItem, locale)}
1191
1172
  </span>
1192
1173
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1193
- {/* Idioma na Localização atual - ex. Francés com a localização atual definida para Locales.SPANISH */}
1174
+ {/* Idioma no Locale atual - ex. Francés com o locale atual definido para Locales.SPANISH */}
1194
1175
  {getLocaleName(localeItem)}
1195
1176
  </span>
1196
1177
  <span dir="ltr" lang={Locales.ENGLISH}>
1197
- {/* Idioma em Inglês - ex. French */}
1178
+ {/* Idioma em inglês - ex. French */}
1198
1179
  {getLocaleName(localeItem, Locales.ENGLISH)}
1199
1180
  </span>
1200
1181
  </a>
@@ -1250,11 +1231,11 @@ const LocaleSwitcher = () => {
1250
1231
  {localeItem}
1251
1232
  </span>
1252
1233
  <span>
1253
- {/* Idioma no seu próprio local - ex: Français */}
1234
+ {/* Língua no seu próprio local - ex: Français */}
1254
1235
  {getLocaleName(localeItem, locale)}
1255
1236
  </span>
1256
1237
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1257
- {/* Idioma no local atual - ex: Francés com local atual definido para Locales.SPANISH */}
1238
+ {/* Língua no local atual - ex: Francés com local atual definido para Locales.SPANISH */}
1258
1239
  {getLocaleName(localeItem)}
1259
1240
  </span>
1260
1241
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1292,11 +1273,11 @@ Quando sua aplicação suporta múltiplos idiomas, é crucial atualizar os atrib
1292
1273
  - **Renderização de Texto**: O atributo `dir` (direção) assegura que o texto seja exibido na ordem correta (por exemplo, da esquerda para a direita para inglês, da direita para a esquerda para árabe ou hebraico), o que é essencial para a legibilidade.
1293
1274
  - **SEO**: Motores de busca usam o atributo `lang` para determinar o idioma da sua página, ajudando a exibir o conteúdo localizado correto nos resultados de busca.
1294
1275
 
1295
- Ao atualizar esses atributos dinamicamente quando o idioma (locale) muda, você garante uma experiência consistente e acessível para os usuários em todos os idiomas suportados.
1276
+ Ao atualizar esses atributos dinamicamente quando o locale muda, você garante uma experiência consistente e acessível para os usuários em todos os idiomas suportados.
1296
1277
 
1297
1278
  #### Implementando o Hook
1298
1279
 
1299
- Crie um hook personalizado para gerenciar os atributos do HTML. O hook escuta as mudanças de idioma (locale) e atualiza os atributos conforme necessário:
1280
+ Crie um hook personalizado para gerenciar os atributos do HTML. O hook escuta as mudanças de locale e atualiza os atributos conforme necessário:
1300
1281
 
1301
1282
  ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
1302
1283
  import { useEffect } from "react";
@@ -1304,7 +1285,7 @@ import { useLocale } from "react-intlayer";
1304
1285
  import { getHTMLTextDir } from "intlayer";
1305
1286
 
1306
1287
  /**
1307
- * Atualiza os atributos `lang` e `dir` do elemento <html> com base no idioma atual.
1288
+ * Atualiza os atributos `lang` e `dir` do elemento HTML <html> com base no locale atual.
1308
1289
  * - `lang`: Informa aos navegadores e motores de busca o idioma da página.
1309
1290
  * - `dir`: Garante a ordem correta de leitura (ex: 'ltr' para inglês, 'rtl' para árabe).
1310
1291
  *
@@ -1331,7 +1312,7 @@ import { getHTMLTextDir } from "intlayer";
1331
1312
  /**
1332
1313
  * Atualiza os atributos `lang` e `dir` do elemento HTML <html> com base no locale atual.
1333
1314
  * - `lang`: Informa aos navegadores e motores de busca o idioma da página.
1334
- * - `dir`: Garante a ordem correta da leitura (por exemplo, 'ltr' para Inglês, 'rtl' para Árabe).
1315
+ * - `dir`: Garante a ordem correta de leitura (ex.: 'ltr' para inglês, 'rtl' para árabe).
1335
1316
  *
1336
1317
  * Esta atualização dinâmica é essencial para a renderização correta do texto, acessibilidade e SEO.
1337
1318
  */
@@ -1458,7 +1439,7 @@ Esse comportamento é útil por várias razões:
1458
1439
 
1459
1440
  - **SEO e Experiência do Usuário**: URLs localizadas ajudam os motores de busca a indexar corretamente páginas específicas por idioma e fornecem aos usuários conteúdo no idioma de sua preferência.
1460
1441
  - **Consistência**: Ao usar um link localizado em toda a sua aplicação, você garante que a navegação permaneça dentro do idioma atual, evitando mudanças inesperadas de idioma.
1461
- - **Manutenibilidade**: Centralizar a lógica de localização em um único componente simplifica o gerenciamento das URLs, tornando sua base de código mais fácil de manter e expandir conforme sua aplicação cresce.
1442
+ - **Manutenção**: Centralizar a lógica de localização em um único componente simplifica o gerenciamento das URLs, tornando seu código mais fácil de manter e expandir conforme sua aplicação cresce.
1462
1443
 
1463
1444
  Abaixo está a implementação de um componente `Link` localizado em TypeScript:
1464
1445
 
@@ -1478,15 +1459,15 @@ export interface LinkProps
1478
1459
  > {}
1479
1460
 
1480
1461
  /**
1481
- * Função utilitária para verificar se uma URL fornecida é externa.
1482
- * Se a URL começar com http:// ou https://, ela é considerada externa.
1462
+ * Função utilitária para verificar se uma URL é externa.
1463
+ * Se a URL começar com http:// ou https://, é considerada externa.
1483
1464
  */
1484
1465
  export const checkIsExternalLink = (href?: string): boolean =>
1485
1466
  /^https?:\/\//.test(href ?? "");
1486
1467
 
1487
1468
  /**
1488
1469
  * Um componente Link personalizado que adapta o atributo href com base na localidade atual.
1489
- * Para links internos, utiliza `getLocalizedUrl` para prefixar a URL com a localidade (ex: /fr/about).
1470
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com a localidade (ex: /fr/about).
1490
1471
  * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1491
1472
  */
1492
1473
  export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
@@ -1494,7 +1475,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1494
1475
  const { locale } = useLocale();
1495
1476
  const isExternalLink = checkIsExternalLink(href);
1496
1477
 
1497
- // Se o link for interno e um href válido for fornecido, obtém a URL localizada.
1478
+ // Se o link for interno e um href válido for fornecido, obtenha a URL localizada.
1498
1479
  const hrefI18n =
1499
1480
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1500
1481
 
@@ -1515,16 +1496,16 @@ import { useLocale } from "react-intlayer";
1515
1496
  import { forwardRef } from "react";
1516
1497
 
1517
1498
  /**
1518
- * Função utilitária para verificar se uma URL é externa.
1499
+ * Função utilitária para verificar se uma URL fornecida é externa.
1519
1500
  * Se a URL começar com http:// ou https://, é considerada externa.
1520
1501
  */
1521
1502
  export const checkIsExternalLink = (href?: string): boolean =>
1522
1503
  /^https?:\/\//.test(href ?? "");
1523
1504
 
1524
1505
  /**
1525
- * Um componente Link personalizado que adapta o atributo href com base no idioma atual.
1526
- * Para links internos, usa `getLocalizedUrl` para prefixar a URL com o idioma (ex: /fr/about).
1527
- * Isso garante que a navegação permaneça dentro do mesmo contexto de idioma.
1506
+ * Um componente Link personalizado que adapta o atributo href com base no locale atual.
1507
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com o locale (ex: /fr/about).
1508
+ * Isso garante que a navegação permaneça dentro do mesmo contexto de locale.
1528
1509
  */
1529
1510
  export const Link = forwardRef(({ href, children, ...props }, ref) => {
1530
1511
  const { locale } = useLocale();
@@ -1557,7 +1538,7 @@ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1557
1538
 
1558
1539
  /**
1559
1540
  * Um componente Link personalizado que adapta o atributo href com base na localidade atual.
1560
- * Para links internos, utiliza `getLocalizedUrl` para prefixar a URL com a localidade (ex.: /fr/about).
1541
+ * Para links internos, usa `getLocalizedUrl` para prefixar a URL com a localidade (ex.: /fr/about).
1561
1542
  * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1562
1543
  */
1563
1544
  const Link = forwardRef(({ href, children, ...props }, ref) => {
@@ -1585,7 +1566,7 @@ Link.displayName = "Link";
1585
1566
  #### Como Funciona
1586
1567
 
1587
1568
  - **Detectando Links Externos**:
1588
- A função auxiliar `checkIsExternalLink` determina se uma URL é externa. Links externos permanecem inalterados porque não precisam de localização.
1569
+ A função auxiliar `checkIsExternalLink` determina se uma URL é externa. Links externos são mantidos inalterados porque não precisam de localização.
1589
1570
 
1590
1571
  - **Recuperando a Localização Atual**:
1591
1572
  O hook `useLocale` fornece a localidade atual (por exemplo, `fr` para francês).
@@ -1600,7 +1581,7 @@ Ao integrar este componente `Link` em toda a sua aplicação, você mantém uma
1600
1581
 
1601
1582
  ### Configurar TypeScript
1602
1583
 
1603
- O Intlayer usa a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar sua base de código mais robusta.
1584
+ O Intlayer utiliza a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar sua base de código mais robusta.
1604
1585
 
1605
1586
  ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1606
1587
 
@@ -1629,7 +1610,7 @@ Para isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitig
1629
1610
  .intlayer
1630
1611
  ```
1631
1612
 
1632
- ### Extensão VS Code
1613
+ ### Extensão do VS Code
1633
1614
 
1634
1615
  Para melhorar sua experiência de desenvolvimento com o Intlayer, você pode instalar a extensão oficial **Intlayer VS Code Extension**.
1635
1616
 
@@ -1646,9 +1627,9 @@ Para mais detalhes sobre como usar a extensão, consulte a [documentação da Ex
1646
1627
 
1647
1628
  ---
1648
1629
 
1649
- ### Ir Além
1630
+ ### Avançar Mais
1650
1631
 
1651
- Para ir além, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md) ou externalizar seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_CMS.md).
1632
+ Para avançar mais, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md) ou externalizar seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_CMS.md).
1652
1633
 
1653
1634
  ---
1654
1635