@intlayer/docs 5.5.11 → 5.5.12

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 (313) 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 +3 -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_with_vite+react.md +100 -108
  164. package/docs/de/intlayer_with_vite+react.md +121 -142
  165. package/docs/en/CI_CD.md +3 -1
  166. package/docs/en/autoFill.md +3 -1
  167. package/docs/en/configuration.md +4 -1
  168. package/docs/en/dictionary/condition.md +3 -1
  169. package/docs/en/dictionary/content_extention_customization.md +3 -1
  170. package/docs/en/dictionary/enumeration.md +3 -1
  171. package/docs/en/dictionary/file.md +3 -1
  172. package/docs/en/dictionary/function_fetching.md +3 -1
  173. package/docs/en/dictionary/get_started.md +3 -1
  174. package/docs/en/dictionary/insertion.md +3 -1
  175. package/docs/en/dictionary/markdown.md +3 -1
  176. package/docs/en/dictionary/nesting.md +3 -1
  177. package/docs/en/dictionary/translation.md +3 -1
  178. package/docs/en/how_works_intlayer.md +3 -1
  179. package/docs/en/index.md +3 -1
  180. package/docs/en/interest_of_intlayer.md +3 -1
  181. package/docs/en/intlayer_CMS.md +3 -1
  182. package/docs/en/intlayer_cli.md +3 -1
  183. package/docs/en/intlayer_visual_editor.md +3 -1
  184. package/docs/en/intlayer_with_angular.md +3 -1
  185. package/docs/en/intlayer_with_create_react_app.md +3 -1
  186. package/docs/en/intlayer_with_express.md +3 -1
  187. package/docs/en/intlayer_with_lynx+react.md +3 -1
  188. package/docs/en/intlayer_with_nextjs_14.md +6 -1
  189. package/docs/en/intlayer_with_nextjs_15.md +5 -1
  190. package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
  191. package/docs/en/intlayer_with_nuxt.md +3 -1
  192. package/docs/en/intlayer_with_react_native+expo.md +3 -1
  193. package/docs/en/intlayer_with_vite+preact.md +3 -1
  194. package/docs/en/intlayer_with_vite+react.md +9 -7
  195. package/docs/en/intlayer_with_vite+solid.md +3 -1
  196. package/docs/en/intlayer_with_vite+svelte.md +3 -1
  197. package/docs/en/intlayer_with_vite+vue.md +3 -1
  198. package/docs/en/introduction.md +3 -1
  199. package/docs/en/mcp_server.md +42 -1
  200. package/docs/en/packages/@intlayer/api/index.md +3 -1
  201. package/docs/en/packages/@intlayer/chokidar/index.md +3 -1
  202. package/docs/en/packages/@intlayer/cli/index.md +3 -1
  203. package/docs/en/packages/@intlayer/config/index.md +3 -1
  204. package/docs/en/packages/@intlayer/core/index.md +3 -1
  205. package/docs/en/packages/@intlayer/design-system/index.md +3 -1
  206. package/docs/en/packages/@intlayer/dictionary-entry/index.md +3 -1
  207. package/docs/en/packages/@intlayer/editor/index.md +3 -1
  208. package/docs/en/packages/@intlayer/editor-react/index.md +3 -1
  209. package/docs/en/packages/@intlayer/webpack/index.md +3 -1
  210. package/docs/en/packages/angular-intlayer/index.md +3 -1
  211. package/docs/en/packages/express-intlayer/index.md +3 -1
  212. package/docs/en/packages/express-intlayer/t.md +3 -1
  213. package/docs/en/packages/intlayer/getConfiguration.md +3 -1
  214. package/docs/en/packages/intlayer/getEnumeration.md +3 -1
  215. package/docs/en/packages/intlayer/getHTMLTextDir.md +3 -1
  216. package/docs/en/packages/intlayer/getLocaleLang.md +3 -1
  217. package/docs/en/packages/intlayer/getLocaleName.md +3 -1
  218. package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -1
  219. package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -1
  220. package/docs/en/packages/intlayer/getPathWithoutLocale.md +3 -1
  221. package/docs/en/packages/intlayer/getTranslation.md +3 -1
  222. package/docs/en/packages/intlayer/getTranslationContent.md +3 -1
  223. package/docs/en/packages/intlayer/index.md +3 -1
  224. package/docs/en/packages/intlayer-cli/index.md +3 -1
  225. package/docs/en/packages/intlayer-editor/index.md +3 -1
  226. package/docs/en/packages/lynx-intlayer/index.md +3 -1
  227. package/docs/en/packages/next-intlayer/index.md +3 -1
  228. package/docs/en/packages/next-intlayer/t.md +3 -1
  229. package/docs/en/packages/next-intlayer/useDictionary.md +3 -1
  230. package/docs/en/packages/next-intlayer/useIntlayer.md +3 -1
  231. package/docs/en/packages/next-intlayer/useIntlayerAsync.md +3 -1
  232. package/docs/en/packages/next-intlayer/useLocale.md +3 -1
  233. package/docs/en/packages/nuxt-intlayer/index.md +3 -1
  234. package/docs/en/packages/preact-intlayer/index.md +3 -1
  235. package/docs/en/packages/react-intlayer/index.md +3 -1
  236. package/docs/en/packages/react-intlayer/t.md +3 -1
  237. package/docs/en/packages/react-intlayer/useDictionary.md +3 -1
  238. package/docs/en/packages/react-intlayer/useIntlayer.md +3 -1
  239. package/docs/en/packages/react-intlayer/useIntlayerAsync.md +3 -1
  240. package/docs/en/packages/react-intlayer/useLocale.md +3 -1
  241. package/docs/en/packages/react-native-intlayer/index.md +3 -1
  242. package/docs/en/packages/react-scripts-intlayer/index.md +3 -1
  243. package/docs/en/packages/solid-intlayer/index.md +3 -1
  244. package/docs/en/packages/svelte-intlayer/index.md +3 -1
  245. package/docs/en/packages/vite-intlayer/index.md +3 -1
  246. package/docs/en/packages/vue-intlayer/index.md +3 -1
  247. package/docs/en/per_locale_file.md +3 -1
  248. package/docs/en/roadmap.md +5 -2
  249. package/docs/en/vs_code_extension.md +3 -1
  250. package/docs/en-GB/intlayer_with_vite+react.md +64 -83
  251. package/docs/es/intlayer_with_vite+react.md +91 -94
  252. package/docs/fr/intlayer_with_vite+react.md +73 -65
  253. package/docs/hi/intlayer_with_vite+react.md +107 -107
  254. package/docs/it/intlayer_with_vite+react.md +156 -112
  255. package/docs/ja/intlayer_with_vite+react.md +153 -218
  256. package/docs/ko/intlayer_with_vite+react.md +116 -148
  257. package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
  258. package/docs/pt/intlayer_with_vite+react.md +110 -132
  259. package/docs/ru/intlayer_with_vite+react.md +98 -83
  260. package/docs/zh/intlayer_with_vite+react.md +147 -184
  261. package/docs/zh/packages/intlayer/getLocalizedUrl.md +1 -23
  262. package/frequent_questions/ar/build_error_CI_CD.md +75 -0
  263. package/frequent_questions/de/build_error_CI_CD.md +75 -0
  264. package/frequent_questions/en/build_error_CI_CD.md +75 -0
  265. package/frequent_questions/en-GB/build_error_CI_CD.md +75 -0
  266. package/frequent_questions/es/build_error_CI_CD.md +75 -0
  267. package/frequent_questions/fr/build_error_CI_CD.md +75 -0
  268. package/frequent_questions/hi/build_error_CI_CD.md +75 -0
  269. package/frequent_questions/it/build_error_CI_CD.md +75 -0
  270. package/frequent_questions/ja/build_error_CI_CD.md +75 -0
  271. package/frequent_questions/ja/intlayer_command_undefined.md +3 -3
  272. package/frequent_questions/ko/build_error_CI_CD.md +75 -0
  273. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  274. package/frequent_questions/pt/build_error_CI_CD.md +75 -0
  275. package/frequent_questions/ru/build_error_CI_CD.md +75 -0
  276. package/frequent_questions/zh/build_error_CI_CD.md +75 -0
  277. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  278. package/legal/ar/privacy_notice.md +83 -0
  279. package/legal/ar/terms_of_service.md +55 -0
  280. package/legal/de/privacy_notice.md +83 -0
  281. package/legal/de/terms_of_service.md +55 -0
  282. package/legal/en/privacy_notice.md +83 -0
  283. package/legal/en/terms_of_service.md +55 -0
  284. package/legal/en-GB/privacy_notice.md +83 -0
  285. package/legal/en-GB/terms_of_service.md +55 -0
  286. package/legal/es/privacy_notice.md +83 -0
  287. package/legal/es/terms_of_service.md +55 -0
  288. package/legal/fr/privacy_notice.md +83 -0
  289. package/legal/fr/terms_of_service.md +55 -0
  290. package/legal/hi/privacy_notice.md +83 -0
  291. package/legal/hi/terms_of_service.md +55 -0
  292. package/legal/it/privacy_notice.md +83 -0
  293. package/legal/it/terms_of_service.md +55 -0
  294. package/legal/ja/privacy_notice.md +83 -0
  295. package/legal/ja/terms_of_service.md +55 -0
  296. package/legal/ko/privacy_notice.md +83 -0
  297. package/legal/ko/terms_of_service.md +55 -0
  298. package/legal/pt/privacy_notice.md +83 -0
  299. package/legal/pt/terms_of_service.md +55 -0
  300. package/legal/ru/privacy_notice.md +83 -0
  301. package/legal/ru/terms_of_service.md +55 -0
  302. package/legal/zh/privacy_notice.md +83 -0
  303. package/legal/zh/terms_of_service.md +55 -0
  304. package/package.json +7 -6
  305. package/src/blog.ts +6 -4
  306. package/src/common.ts +23 -7
  307. package/src/doc.ts +6 -4
  308. package/src/frequentQuestions.ts +6 -4
  309. package/src/generated/blog.entry.ts +1177 -280
  310. package/src/generated/docs.entry.ts +3868 -1217
  311. package/src/generated/frequentQuestions.entry.ts +808 -178
  312. package/src/generated/legal.entry.ts +34 -36
  313. package/src/legal.ts +6 -4
@@ -1,20 +1,20 @@
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
17
+ - vite-and-react
18
18
  ---
19
19
 
20
20
  # Começando a Internacionalizar (i18n) com Intlayer, Vite e React
@@ -27,10 +27,10 @@ Veja o [Modelo de Aplicação](https://github.com/aymericzip/intlayer-vite-react
27
27
 
28
28
  Com o Intlayer, você pode:
29
29
 
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.
30
+ - **Gerencie traduções facilmente** usando dicionários declarativos no nível do componente.
31
+ - **Localize dinamicamente metadados**, rotas e conteúdo.
32
+ - **Garanta suporte ao TypeScript** com tipos autogerados, melhorando o autocompletar e a detecção de erros.
33
+ - **Beneficie-se de recursos avançados**, como detecção e troca dinâmica de localidade.
34
34
 
35
35
  ---
36
36
 
@@ -63,7 +63,7 @@ yarn add --save-dev vite-intlayer
63
63
  O pacote que integra o Intlayer com aplicações React. Ele fornece provedores de contexto e hooks para internacionalização em React.
64
64
 
65
65
  - **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.
66
+ 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
67
 
68
68
  ### Passo 2: Configuração do seu projeto
69
69
 
@@ -164,7 +164,7 @@ module.exports = defineConfig({
164
164
  });
165
165
  ```
166
166
 
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.
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 variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.
168
168
 
169
169
  ### Passo 4: Declare Seu Conteúdo
170
170
 
@@ -215,7 +215,7 @@ const appContent = {
215
215
  }),
216
216
 
217
217
  readTheDocs: t({
218
- en: "Click on the Vite and React logos to learn more",
218
+ en: "Clique nos logos do Vite e React para saber mais",
219
219
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
220
220
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
221
221
  }),
@@ -255,7 +255,7 @@ const appContent = {
255
255
  t <
256
256
  ReactNode >
257
257
  {
258
- // Não se esqueça de importar React se você usar um nó React no seu conteúdo
258
+ // Não se esqueça de importar React se usar um nó React no seu conteúdo
259
259
  en: (
260
260
  <>
261
261
  Edit <code>src/App.tsx</code> e salve para testar HMR
@@ -274,7 +274,7 @@ const appContent = {
274
274
  },
275
275
 
276
276
  readTheDocs: t({
277
- en: "Clique nos logos do Vite e React para saber mais",
277
+ en: "Click on the Vite and React logos to learn more",
278
278
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
279
279
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
280
280
  }),
@@ -292,13 +292,13 @@ const appContent = {
292
292
  key: "app",
293
293
  content: {
294
294
  viteLogo: t({
295
- pt: "Logo do Vite",
295
+ pt: "Logo Vite",
296
296
  en: "Vite logo",
297
297
  fr: "Logo Vite",
298
298
  es: "Logo Vite",
299
299
  }),
300
300
  reactLogo: t({
301
- pt: "Logo do React",
301
+ pt: "Logo React",
302
302
  en: "React logo",
303
303
  fr: "Logo React",
304
304
  es: "Logo React",
@@ -360,7 +360,7 @@ module.exports = appContent;
360
360
  "viteLogo": {
361
361
  "nodeType": "translation",
362
362
  "translation": {
363
- "pt": "Logo do Vite",
363
+ "pt": "Logo Vite",
364
364
  "en": "Vite logo",
365
365
  "fr": "Logo Vite",
366
366
  "es": "Logo Vite"
@@ -369,43 +369,43 @@ module.exports = appContent;
369
369
  "reactLogo": {
370
370
  "nodeType": "translation",
371
371
  "translation": {
372
- "pt": "Logo React",
373
372
  "en": "React logo",
374
373
  "fr": "Logo React",
375
- "es": "Logo React"
374
+ "es": "Logo React",
375
+ "pt": "Logo React"
376
376
  }
377
377
  },
378
378
  "title": {
379
379
  "nodeType": "translation",
380
380
  "translation": {
381
- "pt": "Vite + React",
382
381
  "en": "Vite + React",
383
382
  "fr": "Vite + React",
384
- "es": "Vite + React"
383
+ "es": "Vite + React",
384
+ "pt": "Vite + React"
385
385
  }
386
386
  },
387
387
  "count": {
388
388
  "nodeType": "translation",
389
389
  "translation": {
390
- "pt": "a contagem é ",
391
390
  "en": "count is ",
392
391
  "fr": "le compte est ",
393
- "es": "el recuento es "
392
+ "es": "el recuento es ",
393
+ "pt": "a contagem é "
394
394
  }
395
395
  },
396
396
  "edit": {
397
397
  "nodeType": "translation",
398
398
  "translation": {
399
- "pt": "Edite src/App.tsx e salve para testar HMR",
400
399
  "en": "Edit src/App.tsx and save to test HMR",
401
400
  "fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
402
- "es": "Edita src/App.tsx y guarda para probar HMR"
401
+ "es": "Edita src/App.tsx y guarda para probar HMR",
402
+ "pt": "Edite src/App.tsx e salve para testar HMR"
403
403
  }
404
404
  },
405
405
  "readTheDocs": {
406
406
  "nodeType": "translation",
407
407
  "translation": {
408
- "pt": "Clique nos logos do Vite e React para saber mais",
408
+ "pt": "Clique nos logos do Vite e do React para saber mais",
409
409
  "en": "Click on the Vite and React logos to learn more",
410
410
  "fr": "Cliquez sur les logos Vite et React pour en savoir plus",
411
411
  "es": "Haga clic en los logotipos de Vite y React para obtener más información"
@@ -566,7 +566,7 @@ const App = () => (
566
566
  module.exports = App;
567
567
  ```
568
568
 
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:
569
+ > 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
570
 
571
571
  > ```jsx
572
572
  > <img src={content.image.src.value} alt={content.image.value} />
@@ -594,28 +594,6 @@ const LocaleSwitcher: FC = () => {
594
594
  };
595
595
  ```
596
596
 
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
597
  ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
620
598
  import { Locales } from "intlayer";
621
599
  import { useLocale } from "react-intlayer";
@@ -648,7 +626,7 @@ const LocaleSwitcher = () => {
648
626
 
649
627
  > 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
628
 
651
- ### (Opcional) Passo 7: Adicionar Roteamento localizado à sua aplicação
629
+ ### (Opcional) Passo 7: Adicionar roteamento localizado à sua aplicação
652
630
 
653
631
  O objetivo deste passo é criar rotas únicas para cada idioma. Isso é útil para SEO e URLs amigáveis para SEO.
654
632
  Exemplo:
@@ -661,7 +639,7 @@ Exemplo:
661
639
 
662
640
  > 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
641
 
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):
642
+ 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
643
 
666
644
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
667
645
  // Importando dependências e funções necessárias
@@ -674,7 +652,7 @@ import {
674
652
  Route,
675
653
  Navigate,
676
654
  useLocation,
677
- } from "react-router-dom"; // Componentes do roteador para gerenciamento de navegação
655
+ } from "react-router-dom"; // Componentes do roteador para gerenciar navegação
678
656
 
679
657
  // Desestruturando configuração do Intlayer
680
658
  const { internationalization, middleware } = configuration;
@@ -682,29 +660,29 @@ const { locales, defaultLocale } = internationalization;
682
660
 
683
661
  /**
684
662
  * 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.
663
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
686
664
  */
687
665
  const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
688
666
  children,
689
667
  locale,
690
668
  }) => {
691
- const { pathname, search } = useLocation(); // Obter o caminho atual da URL
669
+ const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
692
670
 
693
- // Determinar o locale atual, usando o padrão caso não seja fornecido
671
+ // Determina o idioma atual, usando o padrão caso não seja fornecido
694
672
  const currentLocale = locale ?? defaultLocale;
695
673
 
696
- // Remover o prefixo do locale do caminho para construir um caminho base
674
+ // Remove o prefixo do idioma do caminho para construir um caminho base
697
675
  const pathWithoutLocale = getPathWithoutLocale(
698
676
  pathname // Caminho atual da URL
699
677
  );
700
678
 
701
679
  /**
702
- * Se middleware.prefixDefault for true, o locale padrão deve sempre ser prefixado.
680
+ * Se middleware.prefixDefault for true, o idioma padrão deve sempre ser prefixado.
703
681
  */
704
682
  if (middleware.prefixDefault) {
705
- // Validar o locale
683
+ // Valida o idioma
706
684
  if (!locale || !locales.includes(locale)) {
707
- // Redirecionar para o locale padrão com o caminho atualizado
685
+ // Redireciona para o idioma padrão com o caminho atualizado
708
686
  return (
709
687
  <Navigate
710
688
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -713,28 +691,28 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
713
691
  );
714
692
  }
715
693
 
716
- // Envolve os filhos com o IntlayerProvider e define o locale atual
694
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
717
695
  return (
718
696
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
719
697
  );
720
698
  } else {
721
699
  /**
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.
700
+ * Quando middleware.prefixDefault é falso, a localidade padrão não é prefixada.
701
+ * Assegura que a localidade atual seja válida e não a localidade padrão.
724
702
  */
725
703
  if (
726
704
  currentLocale.toString() !== defaultLocale.toString() &&
727
705
  !locales
728
706
  .filter(
729
- (locale) => locale.toString() !== defaultLocale.toString() // Exclui o locale padrão
707
+ (locale) => locale.toString() !== defaultLocale.toString() // Exclui a localidade padrão
730
708
  )
731
- .includes(currentLocale) // Verifica se o local atual está na lista de locais válidos
709
+ .includes(currentLocale) // Verifica se o idioma atual está na lista de idiomas válidos
732
710
  ) {
733
- // Redireciona para o caminho sem o prefixo de local
711
+ // Redireciona para o caminho sem o prefixo do idioma
734
712
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
735
713
  }
736
714
 
737
- // Envolve os filhos com o IntlayerProvider e define o local atual
715
+ // Envolve os filhos com o IntlayerProvider e define o idioma atual
738
716
  return (
739
717
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
740
718
  );
@@ -742,7 +720,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
742
720
  };
743
721
 
744
722
  /**
745
- * Um componente de roteador que configura rotas específicas por local.
723
+ * Um componente de roteador que configura rotas específicas por idioma.
746
724
  * Ele usa o React Router para gerenciar a navegação e renderizar componentes localizados.
747
725
  */
748
726
  export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
@@ -754,21 +732,21 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
754
732
  )
755
733
  .map((locale) => (
756
734
  <Route
757
- // Padrão de rota para capturar o locale (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
735
+ // Padrão de rota para capturar a localidade (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
758
736
  path={`/${locale}/*`}
759
737
  key={locale}
760
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de locale
738
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de localidade
761
739
  />
762
740
  ))}
763
741
 
764
742
  {
765
- // Se o prefixo do locale padrão estiver desativado, renderiza os filhos diretamente no caminho raiz
743
+ // Se o prefixo da localidade padrão estiver desativado, renderiza os filhos diretamente na raiz
766
744
  !middleware.prefixDefault && (
767
745
  <Route
768
746
  path="*"
769
747
  element={
770
748
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
771
- } // Envolve os filhos com o gerenciamento de locale
749
+ } // Envolve os filhos com o gerenciamento de localidade
772
750
  />
773
751
  )
774
752
  }
@@ -796,26 +774,26 @@ const { locales, defaultLocale } = internationalization;
796
774
 
797
775
  /**
798
776
  * 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.
777
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
800
778
  */
801
779
  const AppLocalized = ({ children, locale }) => {
802
780
  const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
803
781
 
804
- // Determina o locale atual, usando o padrão caso não seja fornecido
782
+ // Determina a localidade atual, usando a localidade padrão caso não seja fornecida
805
783
  const currentLocale = locale ?? defaultLocale;
806
784
 
807
- // Remove o prefixo do locale do caminho para construir um caminho base
785
+ // Remove o prefixo da localidade do caminho para construir um caminho base
808
786
  const pathWithoutLocale = getPathWithoutLocale(
809
787
  pathname // Caminho atual da URL
810
788
  );
811
789
 
812
790
  /**
813
- * Se middleware.prefixDefault for verdadeiro, o locale padrão deve sempre ser prefixado.
791
+ * Se middleware.prefixDefault for verdadeiro, a localidade padrão deve sempre ser prefixada.
814
792
  */
815
793
  if (middleware.prefixDefault) {
816
- // Valida o locale
794
+ // Valida a localidade
817
795
  if (!locale || !locales.includes(locale)) {
818
- // Redireciona para o locale padrão com o caminho atualizado
796
+ // Redireciona para a localidade padrão com o caminho atualizado
819
797
  return (
820
798
  <Navigate
821
799
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -824,28 +802,28 @@ const AppLocalized = ({ children, locale }) => {
824
802
  );
825
803
  }
826
804
 
827
- // Envolve os filhos com o IntlayerProvider e define o locale atual
805
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
828
806
  return (
829
807
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
830
808
  );
831
809
  } else {
832
810
  /**
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.
811
+ * Quando middleware.prefixDefault é falso, a localidade padrão não é prefixada.
812
+ * Garante que a localidade atual seja válida e não a localidade padrão.
835
813
  */
836
814
  if (
837
815
  currentLocale.toString() !== defaultLocale.toString() &&
838
816
  !locales
839
817
  .filter(
840
- (locale) => locale.toString() !== defaultLocale.toString() // Exclui o locale padrão
818
+ (locale) => locale.toString() !== defaultLocale.toString() // Exclui a localidade padrão
841
819
  )
842
- .includes(currentLocale) // Verifica se o locale atual está na lista de locales válidos
820
+ .includes(currentLocale) // Verifica se a localidade atual está na lista de localidades válidas
843
821
  ) {
844
- // Redireciona para o caminho sem o prefixo de locale
822
+ // Redireciona para o caminho sem o prefixo da localidade
845
823
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
846
824
  }
847
825
 
848
- // Envolve os filhos com o IntlayerProvider e define o locale atual
826
+ // Envolve os filhos com o IntlayerProvider e define a localidade atual
849
827
  return (
850
828
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
851
829
  );
@@ -853,7 +831,7 @@ const AppLocalized = ({ children, locale }) => {
853
831
  };
854
832
 
855
833
  /**
856
- * Um componente de roteador que configura rotas específicas por locale.
834
+ * Um componente de roteador que configura rotas específicas por localidade.
857
835
  * Ele usa o React Router para gerenciar a navegação e renderizar componentes localizados.
858
836
  */
859
837
  export const LocaleRouter = ({ children }) => (
@@ -865,21 +843,21 @@ export const LocaleRouter = ({ children }) => (
865
843
  )
866
844
  .map((locale) => (
867
845
  <Route
868
- // Padrão de rota para capturar o locale (ex: /en/, /fr/) e corresponder a todos os caminhos subsequentes
846
+ // Padrão de rota para capturar a localidade (ex.: /en/, /fr/) e corresponder a todos os caminhos subsequentes
869
847
  path={`/${locale}/*`}
870
848
  key={locale}
871
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de locale
849
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envolve os filhos com o gerenciamento de localidade
872
850
  />
873
851
  ))}
874
852
 
875
853
  {
876
- // Se o prefixo do locale padrão estiver desabilitado, renderiza os filhos diretamente na raiz
854
+ // Se o prefixo da localidade padrão estiver desativado, renderiza os filhos diretamente na raiz
877
855
  !middleware.prefixDefault && (
878
856
  <Route
879
857
  path="*"
880
858
  element={
881
859
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
882
- } // Envolve os filhos com o gerenciamento de locale
860
+ } // Envolve os filhos com o gerenciamento de localidade
883
861
  />
884
862
  )
885
863
  }
@@ -905,27 +883,27 @@ const { internationalization, middleware } = configuration;
905
883
  const { locales, defaultLocale } = internationalization;
906
884
 
907
885
  /**
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.
886
+ * Um componente que gerencia a localização e envolve os filhos com o contexto de localidade apropriado.
887
+ * Ele gerencia a detecção e validação da localidade baseada na URL.
910
888
  */
911
889
  const AppLocalized = ({ children, locale }) => {
912
- const { pathname, search } = useLocation(); // Obter o caminho atual da URL
890
+ const { pathname, search } = useLocation(); // Obtém o caminho atual da URL
913
891
 
914
- // Determinar o locale atual, usando o padrão se não for fornecido
892
+ // Determina o locale atual, usando o padrão caso não seja fornecido
915
893
  const currentLocale = locale ?? defaultLocale;
916
894
 
917
- // Remover o prefixo do locale do caminho para construir um caminho base
895
+ // Remove o prefixo do locale do caminho para construir um caminho base
918
896
  const pathWithoutLocale = getPathWithoutLocale(
919
897
  pathname // Caminho atual da URL
920
898
  );
921
899
 
922
900
  /**
923
- * Se middleware.prefixDefault for verdadeiro, o locale padrão deve sempre ser prefixado.
901
+ * Se middleware.prefixDefault for true, o locale padrão deve sempre ser prefixado.
924
902
  */
925
903
  if (middleware.prefixDefault) {
926
- // Validar o locale
904
+ // Valida o locale
927
905
  if (!locale || !locales.includes(locale)) {
928
- // Redirecionar para o locale padrão com o caminho atualizado
906
+ // Redireciona para o locale padrão com o caminho atualizado
929
907
  return (
930
908
  <Navigate
931
909
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -941,7 +919,7 @@ const AppLocalized = ({ children, locale }) => {
941
919
  } else {
942
920
  /**
943
921
  * 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.
922
+ * Garante que o locale atual seja válido e não o locale padrão.
945
923
  */
946
924
  if (
947
925
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -951,7 +929,7 @@ const AppLocalized = ({ children, locale }) => {
951
929
  )
952
930
  .includes(currentLocale) // Verifica se o locale atual está na lista de locales válidos
953
931
  ) {
954
- // Redireciona para o caminho sem prefixo de locale
932
+ // Redireciona para o caminho sem o prefixo do locale
955
933
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
956
934
  }
957
935
 
@@ -983,7 +961,7 @@ const LocaleRouter = ({ children }) => (
983
961
  ))}
984
962
 
985
963
  {
986
- // Se o prefixo para o locale padrão estiver desativado, renderiza os filhos diretamente na raiz
964
+ // Se o prefixo para o locale padrão estiver desabilitado, renderiza os filhos diretamente na raiz
987
965
  !middleware.prefixDefault && (
988
966
  <Route
989
967
  path="*"
@@ -1093,11 +1071,11 @@ const LocaleSwitcher: FC = () => {
1093
1071
 
1094
1072
  const { locale, availableLocales, setLocale } = useLocale({
1095
1073
  onLocaleChange: (locale) => {
1096
- // Constrói a URL com o locale atualizado
1074
+ // Construir a URL com o locale atualizado
1097
1075
  // Exemplo: /es/about?foo=bar
1098
1076
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1099
1077
 
1100
- // Atualiza o caminho da URL
1078
+ // Atualizar o caminho da URL
1101
1079
  navigate(pathWithLocale);
1102
1080
  },
1103
1081
  });
@@ -1118,19 +1096,19 @@ const LocaleSwitcher: FC = () => {
1118
1096
  key={localeItem}
1119
1097
  >
1120
1098
  <span>
1121
- {/* Local - ex. FR */}
1099
+ {/* Local - ex: FR */}
1122
1100
  {localeItem}
1123
1101
  </span>
1124
1102
  <span>
1125
- {/* Idioma na sua própria Localização - ex. Français */}
1103
+ {/* Idioma na sua própria localidade - ex: Français */}
1126
1104
  {getLocaleName(localeItem, locale)}
1127
1105
  </span>
1128
1106
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1129
- {/* Idioma na Localização atual - ex. Francés com a localização atual definida para Locales.SPANISH */}
1107
+ {/* Idioma na localidade atual - ex: Francés com localidade atual definida para Locales.SPANISH */}
1130
1108
  {getLocaleName(localeItem)}
1131
1109
  </span>
1132
1110
  <span dir="ltr" lang={Locales.ENGLISH}>
1133
- {/* Idioma em Inglês - ex. French */}
1111
+ {/* Idioma em inglês - ex: French */}
1134
1112
  {getLocaleName(localeItem, Locales.ENGLISH)}
1135
1113
  </span>
1136
1114
  </a>
@@ -1182,19 +1160,19 @@ const LocaleSwitcher = () => {
1182
1160
  key={localeItem}
1183
1161
  >
1184
1162
  <span>
1185
- {/* Local - ex. FR */}
1163
+ {/* Localidade - ex: FR */}
1186
1164
  {localeItem}
1187
1165
  </span>
1188
1166
  <span>
1189
- {/* Idioma no seu próprio local - ex. Français */}
1167
+ {/* Idioma na sua própria localidade - ex: Français */}
1190
1168
  {getLocaleName(localeItem, locale)}
1191
1169
  </span>
1192
1170
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1193
- {/* Idioma na Localização atual - ex. Francés com a localização atual definida para Locales.SPANISH */}
1171
+ {/* Idioma no Locale atual - ex. Francés com o locale atual definido para Locales.SPANISH */}
1194
1172
  {getLocaleName(localeItem)}
1195
1173
  </span>
1196
1174
  <span dir="ltr" lang={Locales.ENGLISH}>
1197
- {/* Idioma em Inglês - ex. French */}
1175
+ {/* Idioma em inglês - ex. French */}
1198
1176
  {getLocaleName(localeItem, Locales.ENGLISH)}
1199
1177
  </span>
1200
1178
  </a>
@@ -1250,11 +1228,11 @@ const LocaleSwitcher = () => {
1250
1228
  {localeItem}
1251
1229
  </span>
1252
1230
  <span>
1253
- {/* Idioma no seu próprio local - ex: Français */}
1231
+ {/* Língua no seu próprio local - ex: Français */}
1254
1232
  {getLocaleName(localeItem, locale)}
1255
1233
  </span>
1256
1234
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1257
- {/* Idioma no local atual - ex: Francés com local atual definido para Locales.SPANISH */}
1235
+ {/* Língua no local atual - ex: Francés com local atual definido para Locales.SPANISH */}
1258
1236
  {getLocaleName(localeItem)}
1259
1237
  </span>
1260
1238
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1292,11 +1270,11 @@ Quando sua aplicação suporta múltiplos idiomas, é crucial atualizar os atrib
1292
1270
  - **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
1271
  - **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
1272
 
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.
1273
+ 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
1274
 
1297
1275
  #### Implementando o Hook
1298
1276
 
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:
1277
+ 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
1278
 
1301
1279
  ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
1302
1280
  import { useEffect } from "react";
@@ -1304,7 +1282,7 @@ import { useLocale } from "react-intlayer";
1304
1282
  import { getHTMLTextDir } from "intlayer";
1305
1283
 
1306
1284
  /**
1307
- * Atualiza os atributos `lang` e `dir` do elemento <html> com base no idioma atual.
1285
+ * Atualiza os atributos `lang` e `dir` do elemento HTML <html> com base no locale atual.
1308
1286
  * - `lang`: Informa aos navegadores e motores de busca o idioma da página.
1309
1287
  * - `dir`: Garante a ordem correta de leitura (ex: 'ltr' para inglês, 'rtl' para árabe).
1310
1288
  *
@@ -1331,7 +1309,7 @@ import { getHTMLTextDir } from "intlayer";
1331
1309
  /**
1332
1310
  * Atualiza os atributos `lang` e `dir` do elemento HTML <html> com base no locale atual.
1333
1311
  * - `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).
1312
+ * - `dir`: Garante a ordem correta de leitura (ex.: 'ltr' para inglês, 'rtl' para árabe).
1335
1313
  *
1336
1314
  * Esta atualização dinâmica é essencial para a renderização correta do texto, acessibilidade e SEO.
1337
1315
  */
@@ -1458,7 +1436,7 @@ Esse comportamento é útil por várias razões:
1458
1436
 
1459
1437
  - **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
1438
  - **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.
1439
+ - **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
1440
 
1463
1441
  Abaixo está a implementação de um componente `Link` localizado em TypeScript:
1464
1442
 
@@ -1478,15 +1456,15 @@ export interface LinkProps
1478
1456
  > {}
1479
1457
 
1480
1458
  /**
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.
1459
+ * Função utilitária para verificar se uma URL é externa.
1460
+ * Se a URL começar com http:// ou https://, é considerada externa.
1483
1461
  */
1484
1462
  export const checkIsExternalLink = (href?: string): boolean =>
1485
1463
  /^https?:\/\//.test(href ?? "");
1486
1464
 
1487
1465
  /**
1488
1466
  * 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).
1467
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com a localidade (ex: /fr/about).
1490
1468
  * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1491
1469
  */
1492
1470
  export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
@@ -1494,7 +1472,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1494
1472
  const { locale } = useLocale();
1495
1473
  const isExternalLink = checkIsExternalLink(href);
1496
1474
 
1497
- // Se o link for interno e um href válido for fornecido, obtém a URL localizada.
1475
+ // Se o link for interno e um href válido for fornecido, obtenha a URL localizada.
1498
1476
  const hrefI18n =
1499
1477
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1500
1478
 
@@ -1515,16 +1493,16 @@ import { useLocale } from "react-intlayer";
1515
1493
  import { forwardRef } from "react";
1516
1494
 
1517
1495
  /**
1518
- * Função utilitária para verificar se uma URL é externa.
1496
+ * Função utilitária para verificar se uma URL fornecida é externa.
1519
1497
  * Se a URL começar com http:// ou https://, é considerada externa.
1520
1498
  */
1521
1499
  export const checkIsExternalLink = (href?: string): boolean =>
1522
1500
  /^https?:\/\//.test(href ?? "");
1523
1501
 
1524
1502
  /**
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.
1503
+ * Um componente Link personalizado que adapta o atributo href com base no locale atual.
1504
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com o locale (ex: /fr/about).
1505
+ * Isso garante que a navegação permaneça dentro do mesmo contexto de locale.
1528
1506
  */
1529
1507
  export const Link = forwardRef(({ href, children, ...props }, ref) => {
1530
1508
  const { locale } = useLocale();
@@ -1557,7 +1535,7 @@ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1557
1535
 
1558
1536
  /**
1559
1537
  * 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).
1538
+ * Para links internos, usa `getLocalizedUrl` para prefixar a URL com a localidade (ex.: /fr/about).
1561
1539
  * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1562
1540
  */
1563
1541
  const Link = forwardRef(({ href, children, ...props }, ref) => {
@@ -1585,7 +1563,7 @@ Link.displayName = "Link";
1585
1563
  #### Como Funciona
1586
1564
 
1587
1565
  - **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.
1566
+ A função auxiliar `checkIsExternalLink` determina se uma URL é externa. Links externos são mantidos inalterados porque não precisam de localização.
1589
1567
 
1590
1568
  - **Recuperando a Localização Atual**:
1591
1569
  O hook `useLocale` fornece a localidade atual (por exemplo, `fr` para francês).
@@ -1600,7 +1578,7 @@ Ao integrar este componente `Link` em toda a sua aplicação, você mantém uma
1600
1578
 
1601
1579
  ### Configurar TypeScript
1602
1580
 
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.
1581
+ 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
1582
 
1605
1583
  ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1606
1584
 
@@ -1629,7 +1607,7 @@ Para isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitig
1629
1607
  .intlayer
1630
1608
  ```
1631
1609
 
1632
- ### Extensão VS Code
1610
+ ### Extensão do VS Code
1633
1611
 
1634
1612
  Para melhorar sua experiência de desenvolvimento com o Intlayer, você pode instalar a extensão oficial **Intlayer VS Code Extension**.
1635
1613
 
@@ -1646,9 +1624,9 @@ Para mais detalhes sobre como usar a extensão, consulte a [documentação da Ex
1646
1624
 
1647
1625
  ---
1648
1626
 
1649
- ### Ir Além
1627
+ ### Avançar Mais
1650
1628
 
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).
1629
+ 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
1630
 
1653
1631
  ---
1654
1632