@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,36 +1,36 @@
1
1
  ---
2
- createdAt: 2025-03-07
3
- updatedAt: 2025-06-29
4
- title: Traduce tu aplicación móvil React Native y Expo (i18n)
5
- description: Descubre cómo hacer que tu aplicación móvil React Native y Expo sea multilingüe. Sigue la documentación para internacionalizar (i18n) y traducirla.
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2024-03-07
4
+ title: Comenzando con Intlayer en Vite + React
5
+ description: Aprende cómo agregar internacionalización (i18n) a tu aplicación Vite y React usando Intlayer. Sigue esta guía para hacer tu aplicación multilingüe.
6
6
  keywords:
7
7
  - Internacionalización
8
8
  - Documentación
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
- # Comenzando con la internacionalización (i18n) usando Intlayer, Vite y React
20
+ # Comenzando con la internacionalización (i18n) usando Intlayer en Vite y React
21
21
 
22
22
  Consulta la [Plantilla de Aplicación](https://github.com/aymericzip/intlayer-vite-react-template) en GitHub.
23
23
 
24
24
  ## ¿Qué es Intlayer?
25
25
 
26
- **Intlayer** es una biblioteca innovadora y de código abierto para la internacionalización (i18n) diseñada para simplificar el soporte multilingüe en aplicaciones web modernas.
26
+ **Intlayer** es una biblioteca innovadora y de código abierto para internacionalización (i18n) diseñada para simplificar el soporte multilingüe en aplicaciones web modernas.
27
27
 
28
28
  Con Intlayer, puedes:
29
29
 
30
- - **Gestionar traducciones fácilmente** usando diccionarios declarativos a nivel de componente.
31
- - **Localizar dinámicamente metadatos**, rutas y contenido.
32
- - **Garantizar soporte para TypeScript** con tipos autogenerados, mejorando la autocompletación y la detección de errores.
33
- - **Beneficiarte de funciones avanzadas**, como la detección y el cambio dinámico de locales.
30
+ - **Gestiona fácilmente las traducciones** usando diccionarios declarativos a nivel de componente.
31
+ - **Localiza dinámicamente metadatos**, rutas y contenido.
32
+ - **Asegura soporte para TypeScript** con tipos autogenerados, mejorando la autocompletación y la detección de errores.
33
+ - **Benefíciate de funciones avanzadas**, como la detección y el cambio dinámico de idioma.
34
34
 
35
35
  ---
36
36
 
@@ -57,13 +57,13 @@ yarn add --save-dev vite-intlayer
57
57
 
58
58
  - **intlayer**
59
59
 
60
- El paquete principal que proporciona herramientas de internacionalización para la gestión de configuración, traducción, [declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/get_started.md), transpiliación y [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_cli.md).
60
+ El paquete principal que proporciona herramientas de internacionalización para la gestión de configuración, traducción, [declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/get_started.md), transpile y [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_cli.md).
61
61
 
62
62
  - **react-intlayer**
63
63
  El paquete que integra Intlayer con aplicaciones React. Proporciona proveedores de contexto y hooks para la internacionalización en React.
64
64
 
65
65
  - **vite-intlayer**
66
- Incluye el plugin de Vite para integrar Intlayer con el [empaquetador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), así como middleware para detectar la configuración regional preferida del usuario, gestionar cookies y manejar la redirección de URL.
66
+ Incluye el plugin de Vite para integrar Intlayer con el [empaquetador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), así como middleware para detectar el idioma preferido del usuario, gestionar cookies y manejar redirecciones de URL.
67
67
 
68
68
  ### Paso 2: Configuración de tu proyecto
69
69
 
@@ -91,14 +91,13 @@ export default config;
91
91
  import { Locales } from "intlayer";
92
92
 
93
93
  /** @type {import('intlayer').IntlayerConfig} */
94
- // Configuración de Intlayer para internacionalización
95
94
  const config = {
96
95
  internationalization: {
97
96
  locales: [
98
97
  Locales.ENGLISH,
99
98
  Locales.FRENCH,
100
99
  Locales.SPANISH,
101
- // Tus otros locales
100
+ // Tus otros idiomas
102
101
  ],
103
102
  defaultLocale: Locales.ENGLISH,
104
103
  },
@@ -111,14 +110,13 @@ export default config;
111
110
  const { Locales } = require("intlayer");
112
111
 
113
112
  /** @type {import('intlayer').IntlayerConfig} */
114
- // Configuración de Intlayer para internacionalización
115
113
  const config = {
116
114
  internationalization: {
117
115
  locales: [
118
116
  Locales.ENGLISH,
119
117
  Locales.FRENCH,
120
118
  Locales.SPANISH,
121
- // Tus otros locales
119
+ // Tus otros idiomas
122
120
  ],
123
121
  defaultLocale: Locales.ENGLISH,
124
122
  },
@@ -127,11 +125,11 @@ const config = {
127
125
  module.exports = config;
128
126
  ```
129
127
 
130
- > A través de este archivo de configuración, puedes configurar URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, deshabilitar los logs de Intlayer en la consola, y más. Para una lista completa de los parámetros disponibles, consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md).
128
+ > A través de este archivo de configuración, puedes configurar URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, desactivar los registros de Intlayer en la consola, y más. Para una lista completa de los parámetros disponibles, consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md).
131
129
 
132
130
  ### Paso 3: Integra Intlayer en tu configuración de Vite
133
131
 
134
- Agrega el plugin de intlayer en tu configuración.
132
+ Agrega el plugin intlayer en tu configuración.
135
133
 
136
134
  ```typescript fileName="vite.config.ts" codeFormat="typescript"
137
135
  import { defineConfig } from "vite";
@@ -166,7 +164,7 @@ module.exports = defineConfig({
166
164
  });
167
165
  ```
168
166
 
169
- > El plugin `intlayerPlugin()` para Vite se utiliza para integrar Intlayer con Vite. Asegura la construcción de archivos de declaración de contenido y los supervisa en modo de desarrollo. Define variables de entorno de Intlayer dentro de la aplicación Vite. Además, proporciona alias para optimizar el rendimiento.
167
+ > El plugin `intlayerPlugin()` de Vite se utiliza para integrar Intlayer con Vite. Garantiza la construcción de archivos de declaración de contenido y los supervisa en modo de desarrollo. Define variables de entorno de Intlayer dentro de la aplicación Vite. Además, proporciona alias para optimizar el rendimiento.
170
168
 
171
169
  ### Paso 4: Declara Tu Contenido
172
170
 
@@ -361,7 +359,7 @@ module.exports = appContent;
361
359
  "reactLogo": {
362
360
  "nodeType": "translation",
363
361
  "translation": {
364
- "en": "React logo",
362
+ "en": "Logo React",
365
363
  "fr": "Logo React",
366
364
  "es": "Logo React"
367
365
  }
@@ -393,7 +391,7 @@ module.exports = appContent;
393
391
  "readTheDocs": {
394
392
  "nodeType": "translation",
395
393
  "translation": {
396
- "en": "Haga clic en los logotipos de Vite y React para obtener más información",
394
+ "en": "Click on the Vite and React logos to learn more",
397
395
  "fr": "Cliquez sur les logos Vite et React pour en savoir plus",
398
396
  "es": "Haga clic en los logotipos de Vite y React para obtener más información"
399
397
  }
@@ -402,7 +400,7 @@ module.exports = appContent;
402
400
  }
403
401
  ```
404
402
 
405
- > Sus declaraciones de contenido pueden definirse en cualquier parte de su aplicación tan pronto como se incluyan en el directorio `contentDir` (por defecto, `./src`). Y coincidan con la extensión del archivo de declaración de contenido (por defecto, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
403
+ > Sus declaraciones de contenido pueden definirse en cualquier lugar de su aplicación tan pronto como se incluyan en el directorio `contentDir` (por defecto, `./src`). Y coincidan con la extensión del archivo de declaración de contenido (por defecto, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
406
404
 
407
405
  > Para más detalles, consulte la [documentación de declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/get_started.md).
408
406
 
@@ -450,7 +448,7 @@ const AppContent: FC = () => {
450
448
  );
451
449
  };
452
450
 
453
- const App = () => (
451
+ const App: FC = () => (
454
452
  <IntlayerProvider>
455
453
  <AppContent />
456
454
  </IntlayerProvider>
@@ -553,7 +551,7 @@ const App = () => (
553
551
  module.exports = App;
554
552
  ```
555
553
 
556
- > Si quieres usar tu contenido en un atributo de tipo `string`, como `alt`, `title`, `href`, `aria-label`, etc., debes llamar al valor de la función, así:
554
+ > Si deseas usar tu contenido en un atributo de tipo `string`, como `alt`, `title`, `href`, `aria-label`, etc., debes llamar al valor de la función, así:
557
555
 
558
556
  > ```jsx
559
557
  > <img src={content.image.src.value} alt={content.image.value} />
@@ -611,9 +609,9 @@ const LocaleSwitcher = () => {
611
609
  };
612
610
  ```
613
611
 
614
- > Para aprender más sobre el hook `useLocale`, consulta la [documentación](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/react-intlayer/useLocale.md).
612
+ > Para aprender más sobre el hook `useLocale`, consulte la [documentación](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/react-intlayer/useLocale.md).
615
613
 
616
- ### (Opcional) Paso 7: Añadir enrutamiento localizado a tu aplicación
614
+ ### (Opcional) Paso 7: Agregar enrutamiento localizado a su aplicación
617
615
 
618
616
  El propósito de este paso es crear rutas únicas para cada idioma. Esto es útil para SEO y URLs amigables con SEO.
619
617
  Ejemplo:
@@ -624,9 +622,9 @@ Ejemplo:
624
622
  - https://example.com/fr/about
625
623
  ```
626
624
 
627
- > Por defecto, las rutas no tienen prefijo para la configuración regional predeterminada. Si deseas agregar un prefijo para la configuración regional predeterminada, puedes establecer la opción `middleware.prefixDefault` en `true` en tu configuración. Consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md) para más información.
625
+ > Por defecto, las rutas no tienen prefijo para la configuración regional predeterminada. Si desea agregar un prefijo para la configuración regional predeterminada, puede establecer la opción `middleware.prefixDefault` en `true` en su configuración. Consulte la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md) para obtener más información.
628
626
 
629
- Para agregar enrutamiento localizado a tu aplicación, puedes crear un componente `LocaleRouter` que envuelva las rutas de tu aplicación y gestione el enrutamiento basado en la configuración regional. Aquí tienes un ejemplo usando [React Router](https://reactrouter.com/home):
627
+ Para agregar enrutamiento localizado a su aplicación, puede crear un componente `LocaleRouter` que envuelva las rutas de su aplicación y gestione el enrutamiento basado en la configuración regional. Aquí hay un ejemplo usando [React Router](https://reactrouter.com/home):
630
628
 
631
629
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
632
630
  // Importando las dependencias y funciones necesarias
@@ -646,8 +644,8 @@ const { internationalization, middleware } = configuration;
646
644
  const { locales, defaultLocale } = internationalization;
647
645
 
648
646
  /**
649
- * Un componente que maneja la localización y envuelve a los hijos con el contexto de configuración regional apropiado.
650
- * Gestiona la detección y validación de la configuración regional basada en la URL.
647
+ * Un componente que maneja la localización y envuelve a los hijos con el contexto de locale apropiado.
648
+ * Gestiona la detección y validación del locale basado en la URL.
651
649
  */
652
650
  const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
653
651
  children,
@@ -664,7 +662,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
664
662
  );
665
663
 
666
664
  /**
667
- * Si middleware.prefixDefault es verdadero, la configuración regional predeterminada siempre debe tener prefijo.
665
+ * Si middleware.prefixDefault es true, la configuración regional predeterminada siempre debe tener prefijo.
668
666
  */
669
667
  if (middleware.prefixDefault) {
670
668
  // Validar la configuración regional
@@ -684,8 +682,8 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
684
682
  );
685
683
  } else {
686
684
  /**
687
- * Cuando middleware.prefixDefault es falso, la configuración regional predeterminada no se antepone.
688
- * Asegúrate de que la configuración regional actual sea válida y no la predeterminada.
685
+ * Cuando middleware.prefixDefault es falso, la configuración regional predeterminada no tiene prefijo.
686
+ * Asegúrate de que la configuración regional actual sea válida y no sea la predeterminada.
689
687
  */
690
688
  if (
691
689
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -693,13 +691,13 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
693
691
  .filter(
694
692
  (locale) => locale.toString() !== defaultLocale.toString() // Excluir la configuración regional predeterminada
695
693
  )
696
- .includes(currentLocale) // Verifica si la localidad actual está en la lista de localidades válidas
694
+ .includes(currentLocale) // Verifica si la configuración regional actual está en la lista de configuraciones regionales válidas
697
695
  ) {
698
- // Redirige a la ruta sin el prefijo de localidad
696
+ // Redirige a la ruta sin el prefijo de configuración regional
699
697
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
700
698
  }
701
699
 
702
- // Envuelve los hijos con IntlayerProvider y establece la localidad actual
700
+ // Envuelve los hijos con IntlayerProvider y establece la configuración regional actual
703
701
  return (
704
702
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
705
703
  );
@@ -707,7 +705,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
707
705
  };
708
706
 
709
707
  /**
710
- * Un componente de enrutador que configura rutas específicas por localidad.
708
+ * Un componente de enrutador que configura rutas específicas por configuración regional.
711
709
  * Utiliza React Router para gestionar la navegación y renderizar componentes localizados.
712
710
  */
713
711
  export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
@@ -719,7 +717,7 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
719
717
  )
720
718
  .map((locale) => (
721
719
  <Route
722
- // Patrón de ruta para capturar la localidad (por ejemplo, /en/, /fr/) y coincidir con todas las rutas posteriores
720
+ // Patrón de ruta para capturar la localidad (por ejemplo, /en/, /fr/) y coincidir con todas las rutas subsecuentes
723
721
  path={`/${locale}/*`}
724
722
  key={locale}
725
723
  element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envuelve los hijos con la gestión de la localidad
@@ -727,7 +725,7 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
727
725
  ))}
728
726
 
729
727
  {
730
- // Si la prefijación de la localidad por defecto está deshabilitada, renderiza los hijos directamente en la ruta raíz
728
+ // Si el prefijo para la localidad por defecto está deshabilitado, renderiza los hijos directamente en la ruta raíz
731
729
  !middleware.prefixDefault && (
732
730
  <Route
733
731
  path="*"
@@ -743,7 +741,7 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
743
741
  ```
744
742
 
745
743
  ```jsx fileName="src/components/LocaleRouter.mjx" codeFormat="esm"
746
- // Importando las dependencias y funciones necesarias
744
+ // Importación de dependencias y funciones necesarias
747
745
  import { configuration, getPathWithoutLocale } from "intlayer"; // Funciones utilitarias y tipos de 'intlayer'
748
746
  // Funciones utilitarias y tipos de 'intlayer'
749
747
  import { IntlayerProvider } from "react-intlayer"; // Proveedor para el contexto de internacionalización
@@ -755,33 +753,32 @@ import {
755
753
  useLocation,
756
754
  } from "react-router-dom"; // Componentes del enrutador para gestionar la navegación
757
755
 
758
- // Desestructurando la configuración de Intlayer
756
+ // Desestructuración de la configuración desde Intlayer
759
757
  const { internationalization, middleware } = configuration;
760
758
  const { locales, defaultLocale } = internationalization;
761
759
 
762
760
  /**
763
761
  * Un componente que maneja la localización y envuelve a los hijos con el contexto de idioma apropiado.
764
- /**
765
762
  * Gestiona la detección y validación de la localización basada en la URL.
766
763
  */
767
764
  const AppLocalized = ({ children, locale }) => {
768
- const { pathname, search } = useLocation(); // Obtener la ruta actual de la URL
765
+ const { pathname, search } = useLocation(); // Obtener la ruta URL actual
769
766
 
770
- // Determinar la localización actual, usando la localización por defecto si no se proporciona
767
+ // Determinar la localización actual, usando la predeterminada si no se proporciona
771
768
  const currentLocale = locale ?? defaultLocale;
772
769
 
773
770
  // Eliminar el prefijo de localización de la ruta para construir una ruta base
774
771
  const pathWithoutLocale = getPathWithoutLocale(
775
- pathname // Ruta actual de la URL
772
+ pathname // Ruta URL actual
776
773
  );
777
774
 
778
775
  /**
779
- * Si middleware.prefixDefault es verdadero, la localización por defecto siempre debe tener prefijo.
776
+ * Si middleware.prefixDefault es true, la localización predeterminada siempre debe tener prefijo.
780
777
  */
781
778
  if (middleware.prefixDefault) {
782
779
  // Validar la localización
783
780
  if (!locale || !locales.includes(locale)) {
784
- // Redirigir a la localización por defecto con la ruta actualizada
781
+ // Redirigir a la localización predeterminada con la ruta actualizada
785
782
  return (
786
783
  <Navigate
787
784
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -796,7 +793,7 @@ const AppLocalized = ({ children, locale }) => {
796
793
  );
797
794
  } else {
798
795
  /**
799
- * Cuando middleware.prefixDefault es falso, la localidad por defecto no se antepone.
796
+ * Cuando middleware.prefixDefault es falso, la localidad por defecto no tiene prefijo.
800
797
  * Asegura que la localidad actual sea válida y no la localidad por defecto.
801
798
  */
802
799
  if (
@@ -871,8 +868,8 @@ const { internationalization, middleware } = configuration;
871
868
  const { locales, defaultLocale } = internationalization;
872
869
 
873
870
  /**
874
- * Un componente que maneja la localización y envuelve a los hijos con el contexto de idioma apropiado.
875
- * Gestiona la detección y validación del idioma basado en la URL.
871
+ * Un componente que maneja la localización y envuelve a los hijos con el contexto de locale apropiado.
872
+ * Gestiona la detección y validación del locale basado en la URL.
876
873
  */
877
874
  const AppLocalized = ({ children, locale }) => {
878
875
  const { pathname, search } = useLocation(); // Obtener la ruta URL actual
@@ -886,7 +883,7 @@ const AppLocalized = ({ children, locale }) => {
886
883
  );
887
884
 
888
885
  /**
889
- * Si middleware.prefixDefault es true, la configuración regional predeterminada siempre debe tener prefijo.
886
+ * Si middleware.prefixDefault es verdadero, la configuración regional predeterminada siempre debe tener prefijo.
890
887
  */
891
888
  if (middleware.prefixDefault) {
892
889
  // Validar la configuración regional
@@ -900,22 +897,22 @@ const AppLocalized = ({ children, locale }) => {
900
897
  );
901
898
  }
902
899
 
903
- // Envuelve los hijos con IntlayerProvider y establece la configuración regional actual
900
+ // Envuelve los hijos con IntlayerProvider y establece la localidad actual
904
901
  return (
905
902
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
906
903
  );
907
904
  } else {
908
905
  /**
909
- * Cuando middleware.prefixDefault es falso, la configuración regional predeterminada no se antepone.
910
- * Asegúrate de que la configuración regional actual sea válida y no la predeterminada.
906
+ * Cuando middleware.prefixDefault es falso, la localidad por defecto no se antepone.
907
+ * Asegura que la localidad actual sea válida y no la localidad por defecto.
911
908
  */
912
909
  if (
913
910
  currentLocale.toString() !== defaultLocale.toString() &&
914
911
  !locales
915
912
  .filter(
916
- (locale) => locale.toString() !== defaultLocale.toString() // Excluir la configuración regional predeterminada
913
+ (locale) => locale.toString() !== defaultLocale.toString() // Excluir la localidad por defecto
917
914
  )
918
- .includes(currentLocale) // Verificar si la configuración regional actual está en la lista de configuraciones regionales válidas
915
+ .includes(currentLocale) // Verifica si la localidad actual está en la lista de localidades válidas
919
916
  ) {
920
917
  // Redirigir a la ruta sin el prefijo de la localidad
921
918
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
@@ -944,18 +941,18 @@ const LocaleRouter = ({ children }) => (
944
941
  // Patrón de ruta para capturar la localidad (por ejemplo, /en/, /fr/) y coincidir con todas las rutas subsecuentes
945
942
  path={`/${locale}/*`}
946
943
  key={locale}
947
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envuelve los hijos con la gestión de la localización
944
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Envuelve los hijos con la gestión de la configuración regional
948
945
  />
949
946
  ))}
950
947
 
951
948
  {
952
- // Si la prefijación de la localización por defecto está deshabilitada, renderiza los hijos directamente en la ruta raíz
949
+ // Si la prefijación de la configuración regional predeterminada está deshabilitada, renderiza los hijos directamente en la ruta raíz
953
950
  !middleware.prefixDefault && (
954
951
  <Route
955
952
  path="*"
956
953
  element={
957
954
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
958
- } // Envuelve los hijos con la gestión de la localización
955
+ } // Envuelve los hijos con la gestión de la configuración regional
959
956
  />
960
957
  )
961
958
  }
@@ -1003,7 +1000,7 @@ const App = () => (
1003
1000
  );
1004
1001
  ```
1005
1002
 
1006
- Paralelamente, también puedes usar el `intLayerMiddlewarePlugin` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1003
+ Paralelamente, también puedes usar el `intLayerMiddlewarePlugin` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada basándose en las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1007
1004
 
1008
1005
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1009
1006
  import { defineConfig } from "vite";
@@ -1084,7 +1081,7 @@ const LocaleSwitcher: FC = () => {
1084
1081
  key={localeItem}
1085
1082
  >
1086
1083
  <span>
1087
- {/* Localización - p.ej. FR */}
1084
+ {/* Local - p.ej. FR */}
1088
1085
  {localeItem}
1089
1086
  </span>
1090
1087
  <span>
@@ -1092,7 +1089,7 @@ const LocaleSwitcher: FC = () => {
1092
1089
  {getLocaleName(localeItem, locale)}
1093
1090
  </span>
1094
1091
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1095
- {/* Idioma en la localización actual - p.ej. Francés con la localización actual configurada a Locales.SPANISH */}
1092
+ {/* Idioma en la localización actual - p.ej. Francés con la localización actual configurada en Locales.SPANISH */}
1096
1093
  {getLocaleName(localeItem)}
1097
1094
  </span>
1098
1095
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1156,11 +1153,11 @@ const LocaleSwitcher = () => {
1156
1153
  {getLocaleName(localeItem, locale)}
1157
1154
  </span>
1158
1155
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1159
- {/* Idioma en la configuración regional actual - p.ej. Francés con la configuración regional actual establecida en Locales.SPANISH */}
1156
+ {/* Idioma en la configuración regional actual - por ejemplo, Francés con la configuración regional actual establecida en Locales.SPANISH */}
1160
1157
  {getLocaleName(localeItem)}
1161
1158
  </span>
1162
1159
  <span dir="ltr" lang={Locales.ENGLISH}>
1163
- {/* Idioma en inglés - p.ej. French */}
1160
+ {/* Idioma en inglés - por ejemplo, French */}
1164
1161
  {getLocaleName(localeItem, Locales.ENGLISH)}
1165
1162
  </span>
1166
1163
  </a>
@@ -1212,15 +1209,15 @@ const LocaleSwitcher = () => {
1212
1209
  key={localeItem}
1213
1210
  >
1214
1211
  <span>
1215
- {/* Localización - p.ej. FR */}
1212
+ {/* Localidad - por ejemplo, FR */}
1216
1213
  {localeItem}
1217
1214
  </span>
1218
1215
  <span>
1219
- {/* Idioma en su propia localización - p.ej. Français */}
1216
+ {/* Idioma en su propia Localidad - por ejemplo, Français */}
1220
1217
  {getLocaleName(localeItem, locale)}
1221
1218
  </span>
1222
1219
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1223
- {/* Idioma en la localización actual - p.ej. Francés con la localización actual configurada a Locales.SPANISH */}
1220
+ {/* Idioma en la Localidad actual - por ejemplo, Francés con la localidad actual configurada en Locales.SPANISH */}
1224
1221
  {getLocaleName(localeItem)}
1225
1222
  </span>
1226
1223
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1242,15 +1239,15 @@ const LocaleSwitcher = () => {
1242
1239
  > - [`getLocalizedUrl` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/intlayer/getLocalizedUrl.md)
1243
1240
  > - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/intlayer/getHTMLTextDir.md)
1244
1241
  > - [`hrefLang` attribute](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1245
- > - [`lang` attribute](https://developer.mozilla.org/es/docs/Web/HTML/Global_attributes/lang)
1246
- > - [`dir` attribute](https://developer.mozilla.org/es/docs/Web/HTML/Global_attributes/dir)
1247
- > - [`aria-current` attribute](https://developer.mozilla.org/es/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1242
+ > - [`lang` attribute](https://developer.mozilla.org/es/docs/Web/HTML/Atributos_globales/lang)
1243
+ > - [`dir` attribute](https://developer.mozilla.org/es/docs/Web/HTML/Atributos_globales/dir)
1244
+ > - [`aria-current` attribute](https://developer.mozilla.org/es/docs/Web/Accessibility/ARIA/Atributos/aria-current)
1248
1245
 
1249
1246
  A continuación se muestra el **Paso 9** actualizado con explicaciones añadidas y ejemplos de código refinados:
1250
1247
 
1251
1248
  ---
1252
1249
 
1253
- ### (Opcional) Paso 9: Cambiar los atributos de idioma y dirección del HTML
1250
+ ### (Opcional) Paso 9: Cambiar los atributos de idioma y dirección en el HTML
1254
1251
 
1255
1252
  Cuando tu aplicación soporta múltiples idiomas, es crucial actualizar los atributos `lang` y `dir` de la etiqueta `<html>` para que coincidan con la configuración regional actual. Hacer esto garantiza:
1256
1253
 
@@ -1272,7 +1269,7 @@ import { getHTMLTextDir } from "intlayer";
1272
1269
  /**
1273
1270
  * Actualiza los atributos `lang` y `dir` del elemento HTML <html> según la configuración regional actual.
1274
1271
  * - `lang`: Informa a los navegadores y motores de búsqueda sobre el idioma de la página.
1275
- * - `dir`: Garantiza el orden correcto de lectura (por ejemplo, 'ltr' para inglés, 'rtl' para árabe).
1272
+ * - `dir`: Asegura el orden correcto de lectura (por ejemplo, 'ltr' para inglés, 'rtl' para árabe).
1276
1273
  *
1277
1274
  * Esta actualización dinámica es esencial para el renderizado correcto del texto, accesibilidad y SEO.
1278
1275
  */
@@ -1297,7 +1294,7 @@ import { getHTMLTextDir } from "intlayer";
1297
1294
  /**
1298
1295
  * Actualiza los atributos `lang` y `dir` del elemento HTML <html> según el locale actual.
1299
1296
  * - `lang`: Informa a los navegadores y motores de búsqueda sobre el idioma de la página.
1300
- * - `dir`: Asegura el orden de lectura correcto (por ejemplo, 'ltr' para inglés, 'rtl' para árabe).
1297
+ * - `dir`: Garantiza el orden correcto de lectura (por ejemplo, 'ltr' para inglés, 'rtl' para árabe).
1301
1298
  *
1302
1299
  * Esta actualización dinámica es esencial para una correcta representación del texto, accesibilidad y SEO.
1303
1300
  */
@@ -1324,16 +1321,16 @@ const { getHTMLTextDir } = require("intlayer");
1324
1321
  * - `lang`: Informa a los navegadores y motores de búsqueda sobre el idioma de la página.
1325
1322
  * - `dir`: Asegura el orden correcto de lectura (por ejemplo, 'ltr' para inglés, 'rtl' para árabe).
1326
1323
  *
1327
- * Esta actualización dinámica es esencial para una correcta renderización del texto, accesibilidad y SEO.
1324
+ * Esta actualización dinámica es esencial para una correcta representación del texto, accesibilidad y SEO.
1328
1325
  */
1329
1326
  const useI18nHTMLAttributes = () => {
1330
1327
  const { locale } = useLocale();
1331
1328
 
1332
1329
  useEffect(() => {
1333
- // Actualiza el atributo de idioma al locale actual.
1330
+ // Actualiza el atributo de idioma a la configuración regional actual.
1334
1331
  document.documentElement.lang = locale;
1335
1332
 
1336
- // Establece la dirección del texto según el locale actual.
1333
+ // Establece la dirección del texto según la configuración regional actual.
1337
1334
  document.documentElement.dir = getHTMLTextDir(locale);
1338
1335
  }, [locale]);
1339
1336
  };
@@ -1373,7 +1370,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1373
1370
  import "./App.css";
1374
1371
 
1375
1372
  const AppContent = () => {
1376
- // Aplica el hook para actualizar los atributos lang y dir de la etiqueta <html> según la configuración regional.
1373
+ // Aplicar el hook para actualizar los atributos lang y dir de la etiqueta <html> según la configuración regional.
1377
1374
  useI18nHTMLAttributes();
1378
1375
 
1379
1376
  // ... Resto de tu componente
@@ -1395,7 +1392,7 @@ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1395
1392
  require("./App.css");
1396
1393
 
1397
1394
  const AppContent = () => {
1398
- // Aplicar el hook para actualizar los atributos lang y dir de la etiqueta <html> según la configuración regional.
1395
+ // Aplica el hook para actualizar los atributos lang y dir de la etiqueta <html> según la configuración regional.
1399
1396
  useI18nHTMLAttributes();
1400
1397
 
1401
1398
  // ... Resto de tu componente
@@ -1412,19 +1409,19 @@ module.exports = App;
1412
1409
 
1413
1410
  Al aplicar estos cambios, tu aplicación:
1414
1411
 
1415
- - Asegurará que el atributo de **idioma** (`lang`) refleje correctamente la configuración regional actual, lo cual es importante para el SEO y el comportamiento del navegador.
1412
+ - Asegurará que el atributo **language** (`lang`) refleje correctamente la configuración regional actual, lo cual es importante para SEO y el comportamiento del navegador.
1416
1413
  - Ajustará la **dirección del texto** (`dir`) según la configuración regional, mejorando la legibilidad y usabilidad para idiomas con diferentes órdenes de lectura.
1417
1414
  - Proporcionará una experiencia más **accesible**, ya que las tecnologías de asistencia dependen de estos atributos para funcionar de manera óptima.
1418
1415
 
1419
- ### (Opcional) Paso 10: Creación de un Componente de Enlace Localizado
1416
+ ### (Opcional) Paso 10: Crear un Componente de Enlace Localizado
1420
1417
 
1421
- Para garantizar que la navegación de su aplicación respete la configuración regional actual, puede crear un componente personalizado `Link`. Este componente antepone automáticamente a las URL internas el idioma actual. Por ejemplo, cuando un usuario francófono hace clic en un enlace a la página "Acerca de", es redirigido a `/fr/about` en lugar de `/about`.
1418
+ Para asegurar que la navegación de su aplicación respete la configuración regional actual, puede crear un componente personalizado `Link`. Este componente antepone automáticamente a las URLs internas el idioma actual. Por ejemplo, cuando un usuario francófono hace clic en un enlace a la página "Acerca de", es redirigido a `/fr/about` en lugar de `/about`.
1422
1419
 
1423
1420
  Este comportamiento es útil por varias razones:
1424
1421
 
1425
- - **SEO y experiencia del usuario**: Las URL localizadas ayudan a los motores de búsqueda a indexar correctamente las páginas específicas de cada idioma y proporcionan a los usuarios contenido en su idioma preferido.
1422
+ - **SEO y experiencia del usuario**: Las URLs localizadas ayudan a los motores de búsqueda a indexar correctamente las páginas específicas por idioma y proporcionan a los usuarios contenido en su idioma preferido.
1426
1423
  - **Consistencia**: Al usar un enlace localizado en toda su aplicación, garantiza que la navegación se mantenga dentro de la configuración regional actual, evitando cambios inesperados de idioma.
1427
- - **Mantenibilidad**: Centralizar la lógica de localización en un solo componente simplifica la gestión de URLs, haciendo que tu base de código sea más fácil de mantener y ampliar a medida que tu aplicación crece.
1424
+ - **Mantenibilidad**: Centralizar la lógica de localización en un solo componente simplifica la gestión de URLs, haciendo que tu base de código sea más fácil de mantener y extender a medida que tu aplicación crece.
1428
1425
 
1429
1426
  A continuación se muestra la implementación de un componente `Link` localizado en TypeScript:
1430
1427
 
@@ -1523,8 +1520,8 @@ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1523
1520
 
1524
1521
  /**
1525
1522
  * Un componente Link personalizado que adapta el atributo href según la configuración regional actual.
1526
- * Para enlaces internos, utiliza `getLocalizedUrl` para anteponer la configuración regional a la URL (por ejemplo, /fr/about).
1527
- * Esto asegura que la navegación se mantenga dentro del mismo contexto de configuración regional.
1523
+ * Para enlaces internos, utiliza `getLocalizedUrl` para anteponer la URL con la configuración regional (por ejemplo, /fr/about).
1524
+ * Esto asegura que la navegación se mantenga dentro del mismo contexto regional.
1528
1525
  */
1529
1526
  const Link = forwardRef(({ href, children, ...props }, ref) => {
1530
1527
  const { locale } = useLocale();
@@ -1557,7 +1554,7 @@ Link.displayName = "Link";
1557
1554
  El hook `useLocale` proporciona el locale actual (por ejemplo, `fr` para francés).
1558
1555
 
1559
1556
  - **Localización de la URL**:
1560
- Para enlaces internos (es decir, no externos), se utiliza `getLocalizedUrl` para anteponer automáticamente el locale actual a la URL. Esto significa que si tu usuario está en francés, pasar `/about` como `href` se transformará en `/fr/about`.
1557
+ Para enlaces internos (es decir, no externos), se utiliza `getLocalizedUrl` para prefijar automáticamente la URL con el locale actual. Esto significa que si tu usuario está en francés, pasar `/about` como `href` se transformará en `/fr/about`.
1561
1558
 
1562
1559
  - **Retorno del Enlace**:
1563
1560
  El componente devuelve un elemento `<a>` con la URL localizada, asegurando que la navegación sea coherente con la configuración regional.
@@ -1572,14 +1569,14 @@ Intlayer utiliza la ampliación de módulos para aprovechar las ventajas de Type
1572
1569
 
1573
1570
  ![texto alternativo](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1574
1571
 
1575
- Asegúrese de que su configuración de TypeScript incluya los tipos autogenerados.
1572
+ Asegúrese de que su configuración de TypeScript incluya los tipos generados automáticamente.
1576
1573
 
1577
1574
  ```json5 fileName="tsconfig.json"
1578
1575
  {
1579
1576
  // ... Sus configuraciones existentes de TypeScript
1580
1577
  "include": [
1581
1578
  // ... Tus configuraciones existentes de TypeScript
1582
- ".intlayer/**/*.ts", // Incluir los tipos autogenerados
1579
+ ".intlayer/**/*.ts", // Incluir los tipos generados automáticamente
1583
1580
  ],
1584
1581
  }
1585
1582
  ```
@@ -1597,15 +1594,15 @@ Para hacerlo, puedes agregar las siguientes instrucciones a tu archivo `.gitigno
1597
1594
 
1598
1595
  ### Extensión para VS Code
1599
1596
 
1600
- Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la extensión oficial **Intlayer VS Code Extension**.
1597
+ Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la **Extensión oficial de Intlayer para VS Code**.
1601
1598
 
1602
1599
  [Instalar desde el Marketplace de VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1603
1600
 
1604
- Esta extensión proporciona:
1601
+ Esta extensión ofrece:
1605
1602
 
1606
1603
  - **Autocompletado** para las claves de traducción.
1607
1604
  - **Detección de errores en tiempo real** para traducciones faltantes.
1608
- - **Previsualizaciones en línea** del contenido traducido.
1605
+ - **Vistas previas en línea** del contenido traducido.
1609
1606
  - **Acciones rápidas** para crear y actualizar traducciones fácilmente.
1610
1607
 
1611
1608
  Para más detalles sobre cómo usar la extensión, consulta la [documentación de la extensión Intlayer para VS Code](https://intlayer.org/doc/vs-code-extension).
@@ -1620,4 +1617,4 @@ Para ir más allá, puedes implementar el [editor visual](https://github.com/aym
1620
1617
 
1621
1618
  ## Historial del documento
1622
1619
 
1623
- - 5.5.10 - 2025-06-29: Inicio del historial
1620
+ - 5.5.10 - 2025-06-29: Historial inicial