@intlayer/docs 9.4.2 → 9.4.4

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 (1307) hide show
  1. package/blog/ar/date_time_number_formatting_locales.md +216 -0
  2. package/blog/ar/detecting_missing_translations.md +202 -0
  3. package/blog/ar/i18n_in_ci_cd_pipelines.md +247 -0
  4. package/blog/ar/i18n_meaning.md +0 -2
  5. package/blog/ar/i18n_testing_strategies.md +179 -0
  6. package/blog/ar/intlayer_with_i18next.md +3 -3
  7. package/blog/ar/intlayer_with_next-i18next.md +3 -3
  8. package/blog/ar/intlayer_with_next-intl.md +3 -3
  9. package/blog/ar/intlayer_with_react-i18next.md +3 -3
  10. package/blog/ar/intlayer_with_react-intl.md +3 -3
  11. package/blog/ar/intlayer_with_vue-i18n.md +3 -3
  12. package/blog/ar/is_i18next_outdated.md +315 -0
  13. package/blog/ar/is_next-intl_outdated.md +363 -0
  14. package/blog/ar/is_vue-i18n_outdated.md +338 -0
  15. package/blog/ar/list_i18n_technologies/build-tools/vite.md +177 -0
  16. package/blog/ar/list_i18n_technologies/frameworks/angular.md +0 -2
  17. package/blog/ar/list_i18n_technologies/frameworks/react-native.md +0 -2
  18. package/blog/ar/list_i18n_technologies/frameworks/react.md +0 -2
  19. package/blog/ar/list_i18n_technologies/frameworks/svelte.md +0 -2
  20. package/blog/ar/list_i18n_technologies/frameworks/vue.md +0 -2
  21. package/blog/ar/what_is_internationalization.md +0 -2
  22. package/blog/de/date_time_number_formatting_locales.md +216 -0
  23. package/blog/de/detecting_missing_translations.md +202 -0
  24. package/blog/de/i18n_in_ci_cd_pipelines.md +247 -0
  25. package/blog/de/i18n_meaning.md +0 -2
  26. package/blog/de/i18n_testing_strategies.md +179 -0
  27. package/blog/de/intlayer_with_i18next.md +3 -3
  28. package/blog/de/intlayer_with_next-i18next.md +3 -3
  29. package/blog/de/intlayer_with_next-intl.md +3 -3
  30. package/blog/de/intlayer_with_react-i18next.md +3 -3
  31. package/blog/de/intlayer_with_react-intl.md +3 -3
  32. package/blog/de/intlayer_with_vue-i18n.md +3 -3
  33. package/blog/de/is_i18next_outdated.md +315 -0
  34. package/blog/de/is_next-intl_outdated.md +363 -0
  35. package/blog/de/is_vue-i18n_outdated.md +338 -0
  36. package/blog/de/list_i18n_technologies/build-tools/vite.md +179 -0
  37. package/blog/de/list_i18n_technologies/frameworks/angular.md +0 -2
  38. package/blog/de/list_i18n_technologies/frameworks/react-native.md +0 -2
  39. package/blog/de/list_i18n_technologies/frameworks/react.md +0 -2
  40. package/blog/de/list_i18n_technologies/frameworks/svelte.md +0 -2
  41. package/blog/de/list_i18n_technologies/frameworks/vue.md +0 -2
  42. package/blog/de/what_is_internationalization.md +0 -2
  43. package/blog/en/date_time_number_formatting_locales.md +216 -0
  44. package/blog/en/detecting_missing_translations.md +202 -0
  45. package/blog/en/i18n_in_ci_cd_pipelines.md +247 -0
  46. package/blog/en/i18n_meaning.md +0 -2
  47. package/blog/en/i18n_testing_strategies.md +179 -0
  48. package/blog/en/icu_message_format.md +288 -0
  49. package/blog/en/intlayer_with_i18next.md +3 -3
  50. package/blog/en/intlayer_with_next-i18next.md +3 -3
  51. package/blog/en/intlayer_with_next-intl.md +3 -3
  52. package/blog/en/intlayer_with_react-i18next.md +3 -3
  53. package/blog/en/intlayer_with_react-intl.md +3 -3
  54. package/blog/en/intlayer_with_vue-i18n.md +3 -3
  55. package/blog/en/is_i18next_outdated.md +315 -0
  56. package/blog/en/is_next-intl_outdated.md +363 -0
  57. package/blog/en/is_vue-i18n_outdated.md +338 -0
  58. package/blog/en/list_i18n_technologies/build-tools/vite.md +179 -0
  59. package/blog/en/list_i18n_technologies/frameworks/angular.md +184 -108
  60. package/blog/en/list_i18n_technologies/frameworks/astro.md +268 -0
  61. package/blog/en/list_i18n_technologies/frameworks/nextjs.md +196 -0
  62. package/blog/en/list_i18n_technologies/frameworks/nuxt.md +255 -0
  63. package/blog/en/list_i18n_technologies/frameworks/react-native.md +133 -154
  64. package/blog/en/list_i18n_technologies/frameworks/react-router.md +331 -0
  65. package/blog/en/list_i18n_technologies/frameworks/react.md +176 -96
  66. package/blog/en/list_i18n_technologies/frameworks/solid.md +268 -0
  67. package/blog/en/list_i18n_technologies/frameworks/svelte.md +156 -88
  68. package/blog/en/list_i18n_technologies/frameworks/sveltekit.md +235 -0
  69. package/blog/en/list_i18n_technologies/frameworks/tanstack-start.md +280 -0
  70. package/blog/en/list_i18n_technologies/frameworks/vue.md +167 -95
  71. package/blog/en/what_is_internationalization.md +0 -2
  72. package/blog/en-GB/date_time_number_formatting_locales.md +216 -0
  73. package/blog/en-GB/detecting_missing_translations.md +202 -0
  74. package/blog/en-GB/i18n_in_ci_cd_pipelines.md +247 -0
  75. package/blog/en-GB/i18n_meaning.md +0 -2
  76. package/blog/en-GB/i18n_testing_strategies.md +179 -0
  77. package/blog/en-GB/intlayer_with_i18next.md +3 -3
  78. package/blog/en-GB/intlayer_with_next-i18next.md +3 -3
  79. package/blog/en-GB/intlayer_with_next-intl.md +3 -3
  80. package/blog/en-GB/intlayer_with_react-i18next.md +3 -3
  81. package/blog/en-GB/intlayer_with_react-intl.md +3 -3
  82. package/blog/en-GB/intlayer_with_vue-i18n.md +3 -3
  83. package/blog/en-GB/is_i18next_outdated.md +315 -0
  84. package/blog/en-GB/is_next-intl_outdated.md +363 -0
  85. package/blog/en-GB/is_vue-i18n_outdated.md +338 -0
  86. package/blog/en-GB/list_i18n_technologies/build-tools/vite.md +179 -0
  87. package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +0 -2
  88. package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +0 -2
  89. package/blog/en-GB/list_i18n_technologies/frameworks/react.md +0 -2
  90. package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +0 -2
  91. package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +0 -2
  92. package/blog/en-GB/what_is_internationalization.md +0 -2
  93. package/blog/es/date_time_number_formatting_locales.md +216 -0
  94. package/blog/es/detecting_missing_translations.md +202 -0
  95. package/blog/es/i18n_in_ci_cd_pipelines.md +247 -0
  96. package/blog/es/i18n_meaning.md +0 -2
  97. package/blog/es/i18n_testing_strategies.md +179 -0
  98. package/blog/es/intlayer_with_i18next.md +3 -3
  99. package/blog/es/intlayer_with_next-i18next.md +3 -3
  100. package/blog/es/intlayer_with_next-intl.md +3 -3
  101. package/blog/es/intlayer_with_react-i18next.md +3 -3
  102. package/blog/es/intlayer_with_react-intl.md +3 -3
  103. package/blog/es/intlayer_with_vue-i18n.md +3 -3
  104. package/blog/es/is_i18next_outdated.md +315 -0
  105. package/blog/es/is_next-intl_outdated.md +363 -0
  106. package/blog/es/is_vue-i18n_outdated.md +338 -0
  107. package/blog/es/list_i18n_technologies/build-tools/vite.md +179 -0
  108. package/blog/es/list_i18n_technologies/frameworks/angular.md +0 -2
  109. package/blog/es/list_i18n_technologies/frameworks/react-native.md +0 -2
  110. package/blog/es/list_i18n_technologies/frameworks/react.md +0 -2
  111. package/blog/es/list_i18n_technologies/frameworks/svelte.md +0 -2
  112. package/blog/es/list_i18n_technologies/frameworks/vue.md +0 -2
  113. package/blog/es/what_is_internationalization.md +0 -2
  114. package/blog/fr/date_time_number_formatting_locales.md +216 -0
  115. package/blog/fr/detecting_missing_translations.md +202 -0
  116. package/blog/fr/i18n_in_ci_cd_pipelines.md +247 -0
  117. package/blog/fr/i18n_meaning.md +0 -2
  118. package/blog/fr/i18n_testing_strategies.md +179 -0
  119. package/blog/fr/intlayer_with_i18next.md +3 -3
  120. package/blog/fr/intlayer_with_next-i18next.md +3 -3
  121. package/blog/fr/intlayer_with_next-intl.md +3 -3
  122. package/blog/fr/intlayer_with_react-i18next.md +3 -3
  123. package/blog/fr/intlayer_with_react-intl.md +3 -3
  124. package/blog/fr/intlayer_with_vue-i18n.md +3 -3
  125. package/blog/fr/is_i18next_outdated.md +315 -0
  126. package/blog/fr/is_next-intl_outdated.md +363 -0
  127. package/blog/fr/is_vue-i18n_outdated.md +338 -0
  128. package/blog/fr/list_i18n_technologies/build-tools/vite.md +179 -0
  129. package/blog/fr/list_i18n_technologies/frameworks/angular.md +0 -2
  130. package/blog/fr/list_i18n_technologies/frameworks/react-native.md +0 -2
  131. package/blog/fr/list_i18n_technologies/frameworks/react.md +0 -2
  132. package/blog/fr/list_i18n_technologies/frameworks/svelte.md +0 -2
  133. package/blog/fr/list_i18n_technologies/frameworks/vue.md +0 -2
  134. package/blog/fr/what_is_internationalization.md +0 -2
  135. package/blog/hi/date_time_number_formatting_locales.md +216 -0
  136. package/blog/hi/detecting_missing_translations.md +202 -0
  137. package/blog/hi/i18n_in_ci_cd_pipelines.md +247 -0
  138. package/blog/hi/i18n_meaning.md +0 -2
  139. package/blog/hi/i18n_testing_strategies.md +179 -0
  140. package/blog/hi/intlayer_with_i18next.md +3 -3
  141. package/blog/hi/intlayer_with_next-i18next.md +3 -3
  142. package/blog/hi/intlayer_with_next-intl.md +3 -3
  143. package/blog/hi/intlayer_with_react-i18next.md +3 -3
  144. package/blog/hi/intlayer_with_react-intl.md +3 -3
  145. package/blog/hi/intlayer_with_vue-i18n.md +3 -3
  146. package/blog/hi/is_i18next_outdated.md +317 -0
  147. package/blog/hi/is_next-intl_outdated.md +363 -0
  148. package/blog/hi/is_vue-i18n_outdated.md +338 -0
  149. package/blog/hi/list_i18n_technologies/build-tools/vite.md +177 -0
  150. package/blog/hi/list_i18n_technologies/frameworks/angular.md +0 -2
  151. package/blog/hi/list_i18n_technologies/frameworks/react-native.md +0 -2
  152. package/blog/hi/list_i18n_technologies/frameworks/react.md +0 -2
  153. package/blog/hi/list_i18n_technologies/frameworks/svelte.md +0 -2
  154. package/blog/hi/list_i18n_technologies/frameworks/vue.md +0 -2
  155. package/blog/hi/what_is_internationalization.md +0 -2
  156. package/blog/id/date_time_number_formatting_locales.md +216 -0
  157. package/blog/id/detecting_missing_translations.md +202 -0
  158. package/blog/id/i18n_in_ci_cd_pipelines.md +247 -0
  159. package/blog/id/i18n_meaning.md +0 -2
  160. package/blog/id/i18n_testing_strategies.md +179 -0
  161. package/blog/id/intlayer_with_i18next.md +3 -3
  162. package/blog/id/intlayer_with_next-i18next.md +3 -3
  163. package/blog/id/intlayer_with_next-intl.md +3 -3
  164. package/blog/id/intlayer_with_react-i18next.md +3 -3
  165. package/blog/id/intlayer_with_react-intl.md +3 -3
  166. package/blog/id/intlayer_with_vue-i18n.md +3 -3
  167. package/blog/id/is_i18next_outdated.md +317 -0
  168. package/blog/id/is_next-intl_outdated.md +363 -0
  169. package/blog/id/is_vue-i18n_outdated.md +338 -0
  170. package/blog/id/list_i18n_technologies/build-tools/vite.md +177 -0
  171. package/blog/id/list_i18n_technologies/frameworks/angular.md +0 -2
  172. package/blog/id/list_i18n_technologies/frameworks/react-native.md +0 -2
  173. package/blog/id/list_i18n_technologies/frameworks/react.md +0 -2
  174. package/blog/id/list_i18n_technologies/frameworks/svelte.md +0 -2
  175. package/blog/id/list_i18n_technologies/frameworks/vue.md +0 -2
  176. package/blog/id/what_is_internationalization.md +0 -2
  177. package/blog/it/date_time_number_formatting_locales.md +216 -0
  178. package/blog/it/detecting_missing_translations.md +202 -0
  179. package/blog/it/i18n_in_ci_cd_pipelines.md +247 -0
  180. package/blog/it/i18n_meaning.md +0 -2
  181. package/blog/it/i18n_testing_strategies.md +179 -0
  182. package/blog/it/intlayer_with_i18next.md +3 -3
  183. package/blog/it/intlayer_with_next-i18next.md +3 -3
  184. package/blog/it/intlayer_with_next-intl.md +3 -3
  185. package/blog/it/intlayer_with_react-i18next.md +3 -3
  186. package/blog/it/intlayer_with_react-intl.md +3 -3
  187. package/blog/it/intlayer_with_vue-i18n.md +3 -3
  188. package/blog/it/is_i18next_outdated.md +315 -0
  189. package/blog/it/is_next-intl_outdated.md +363 -0
  190. package/blog/it/is_vue-i18n_outdated.md +338 -0
  191. package/blog/it/list_i18n_technologies/build-tools/vite.md +179 -0
  192. package/blog/it/list_i18n_technologies/frameworks/angular.md +0 -2
  193. package/blog/it/list_i18n_technologies/frameworks/react-native.md +0 -2
  194. package/blog/it/list_i18n_technologies/frameworks/react.md +0 -2
  195. package/blog/it/list_i18n_technologies/frameworks/svelte.md +0 -2
  196. package/blog/it/list_i18n_technologies/frameworks/vue.md +0 -2
  197. package/blog/it/what_is_internationalization.md +0 -2
  198. package/blog/ja/date_time_number_formatting_locales.md +216 -0
  199. package/blog/ja/detecting_missing_translations.md +202 -0
  200. package/blog/ja/i18n_in_ci_cd_pipelines.md +247 -0
  201. package/blog/ja/i18n_meaning.md +0 -2
  202. package/blog/ja/i18n_testing_strategies.md +179 -0
  203. package/blog/ja/intlayer_with_i18next.md +3 -3
  204. package/blog/ja/intlayer_with_next-i18next.md +3 -3
  205. package/blog/ja/intlayer_with_next-intl.md +3 -3
  206. package/blog/ja/intlayer_with_react-i18next.md +3 -3
  207. package/blog/ja/intlayer_with_react-intl.md +3 -3
  208. package/blog/ja/intlayer_with_vue-i18n.md +3 -3
  209. package/blog/ja/is_i18next_outdated.md +315 -0
  210. package/blog/ja/is_next-intl_outdated.md +363 -0
  211. package/blog/ja/is_vue-i18n_outdated.md +338 -0
  212. package/blog/ja/list_i18n_technologies/build-tools/vite.md +179 -0
  213. package/blog/ja/list_i18n_technologies/frameworks/angular.md +0 -2
  214. package/blog/ja/list_i18n_technologies/frameworks/react-native.md +0 -2
  215. package/blog/ja/list_i18n_technologies/frameworks/react.md +0 -2
  216. package/blog/ja/list_i18n_technologies/frameworks/svelte.md +0 -2
  217. package/blog/ja/list_i18n_technologies/frameworks/vue.md +0 -2
  218. package/blog/ja/what_is_internationalization.md +0 -2
  219. package/blog/ko/date_time_number_formatting_locales.md +216 -0
  220. package/blog/ko/detecting_missing_translations.md +202 -0
  221. package/blog/ko/i18n_in_ci_cd_pipelines.md +247 -0
  222. package/blog/ko/i18n_meaning.md +0 -2
  223. package/blog/ko/i18n_testing_strategies.md +179 -0
  224. package/blog/ko/intlayer_with_i18next.md +3 -3
  225. package/blog/ko/intlayer_with_next-i18next.md +3 -3
  226. package/blog/ko/intlayer_with_next-intl.md +3 -3
  227. package/blog/ko/intlayer_with_react-i18next.md +3 -3
  228. package/blog/ko/intlayer_with_react-intl.md +3 -3
  229. package/blog/ko/intlayer_with_vue-i18n.md +3 -3
  230. package/blog/ko/is_i18next_outdated.md +317 -0
  231. package/blog/ko/is_next-intl_outdated.md +363 -0
  232. package/blog/ko/is_vue-i18n_outdated.md +338 -0
  233. package/blog/ko/list_i18n_technologies/build-tools/vite.md +179 -0
  234. package/blog/ko/list_i18n_technologies/frameworks/angular.md +0 -2
  235. package/blog/ko/list_i18n_technologies/frameworks/react-native.md +0 -2
  236. package/blog/ko/list_i18n_technologies/frameworks/react.md +0 -2
  237. package/blog/ko/list_i18n_technologies/frameworks/svelte.md +0 -2
  238. package/blog/ko/list_i18n_technologies/frameworks/vue.md +0 -2
  239. package/blog/ko/what_is_internationalization.md +0 -2
  240. package/blog/pl/date_time_number_formatting_locales.md +216 -0
  241. package/blog/pl/detecting_missing_translations.md +202 -0
  242. package/blog/pl/i18n_in_ci_cd_pipelines.md +247 -0
  243. package/blog/pl/i18n_meaning.md +0 -2
  244. package/blog/pl/i18n_testing_strategies.md +179 -0
  245. package/blog/pl/intlayer_with_i18next.md +3 -3
  246. package/blog/pl/intlayer_with_next-i18next.md +3 -3
  247. package/blog/pl/intlayer_with_next-intl.md +3 -3
  248. package/blog/pl/intlayer_with_react-i18next.md +3 -3
  249. package/blog/pl/intlayer_with_react-intl.md +3 -3
  250. package/blog/pl/intlayer_with_vue-i18n.md +3 -3
  251. package/blog/pl/is_i18next_outdated.md +315 -0
  252. package/blog/pl/is_next-intl_outdated.md +363 -0
  253. package/blog/pl/is_vue-i18n_outdated.md +338 -0
  254. package/blog/pl/list_i18n_technologies/build-tools/vite.md +177 -0
  255. package/blog/pl/list_i18n_technologies/frameworks/angular.md +0 -2
  256. package/blog/pl/list_i18n_technologies/frameworks/react-native.md +0 -2
  257. package/blog/pl/list_i18n_technologies/frameworks/react.md +0 -2
  258. package/blog/pl/list_i18n_technologies/frameworks/svelte.md +0 -2
  259. package/blog/pl/list_i18n_technologies/frameworks/vue.md +0 -2
  260. package/blog/pl/what_is_internationalization.md +0 -2
  261. package/blog/pt/date_time_number_formatting_locales.md +216 -0
  262. package/blog/pt/detecting_missing_translations.md +202 -0
  263. package/blog/pt/i18n_in_ci_cd_pipelines.md +247 -0
  264. package/blog/pt/i18n_meaning.md +0 -2
  265. package/blog/pt/i18n_testing_strategies.md +179 -0
  266. package/blog/pt/intlayer_with_i18next.md +3 -3
  267. package/blog/pt/intlayer_with_next-i18next.md +3 -3
  268. package/blog/pt/intlayer_with_next-intl.md +3 -3
  269. package/blog/pt/intlayer_with_react-i18next.md +3 -3
  270. package/blog/pt/intlayer_with_react-intl.md +3 -3
  271. package/blog/pt/intlayer_with_vue-i18n.md +3 -3
  272. package/blog/pt/is_i18next_outdated.md +315 -0
  273. package/blog/pt/is_next-intl_outdated.md +363 -0
  274. package/blog/pt/is_vue-i18n_outdated.md +338 -0
  275. package/blog/pt/list_i18n_technologies/build-tools/vite.md +179 -0
  276. package/blog/pt/list_i18n_technologies/frameworks/angular.md +0 -2
  277. package/blog/pt/list_i18n_technologies/frameworks/react-native.md +0 -2
  278. package/blog/pt/list_i18n_technologies/frameworks/react.md +0 -2
  279. package/blog/pt/list_i18n_technologies/frameworks/svelte.md +0 -2
  280. package/blog/pt/list_i18n_technologies/frameworks/vue.md +0 -2
  281. package/blog/pt/what_is_internationalization.md +0 -2
  282. package/blog/ru/date_time_number_formatting_locales.md +216 -0
  283. package/blog/ru/detecting_missing_translations.md +202 -0
  284. package/blog/ru/i18n_in_ci_cd_pipelines.md +247 -0
  285. package/blog/ru/i18n_meaning.md +0 -2
  286. package/blog/ru/i18n_testing_strategies.md +179 -0
  287. package/blog/ru/intlayer_with_i18next.md +3 -3
  288. package/blog/ru/intlayer_with_next-i18next.md +3 -3
  289. package/blog/ru/intlayer_with_next-intl.md +3 -3
  290. package/blog/ru/intlayer_with_react-i18next.md +3 -3
  291. package/blog/ru/intlayer_with_react-intl.md +3 -3
  292. package/blog/ru/intlayer_with_vue-i18n.md +3 -3
  293. package/blog/ru/is_i18next_outdated.md +315 -0
  294. package/blog/ru/is_next-intl_outdated.md +363 -0
  295. package/blog/ru/is_vue-i18n_outdated.md +338 -0
  296. package/blog/ru/list_i18n_technologies/build-tools/vite.md +179 -0
  297. package/blog/ru/list_i18n_technologies/frameworks/angular.md +0 -2
  298. package/blog/ru/list_i18n_technologies/frameworks/react-native.md +0 -2
  299. package/blog/ru/list_i18n_technologies/frameworks/react.md +0 -2
  300. package/blog/ru/list_i18n_technologies/frameworks/svelte.md +0 -2
  301. package/blog/ru/list_i18n_technologies/frameworks/vue.md +0 -2
  302. package/blog/ru/what_is_internationalization.md +0 -2
  303. package/blog/tr/date_time_number_formatting_locales.md +216 -0
  304. package/blog/tr/detecting_missing_translations.md +202 -0
  305. package/blog/tr/i18n_in_ci_cd_pipelines.md +247 -0
  306. package/blog/tr/i18n_meaning.md +0 -2
  307. package/blog/tr/i18n_testing_strategies.md +179 -0
  308. package/blog/tr/intlayer_with_i18next.md +3 -3
  309. package/blog/tr/intlayer_with_next-i18next.md +3 -3
  310. package/blog/tr/intlayer_with_next-intl.md +3 -3
  311. package/blog/tr/intlayer_with_react-i18next.md +3 -3
  312. package/blog/tr/intlayer_with_react-intl.md +3 -3
  313. package/blog/tr/intlayer_with_vue-i18n.md +3 -3
  314. package/blog/tr/is_i18next_outdated.md +315 -0
  315. package/blog/tr/is_next-intl_outdated.md +363 -0
  316. package/blog/tr/is_vue-i18n_outdated.md +338 -0
  317. package/blog/tr/list_i18n_technologies/build-tools/vite.md +179 -0
  318. package/blog/tr/list_i18n_technologies/frameworks/angular.md +0 -2
  319. package/blog/tr/list_i18n_technologies/frameworks/react-native.md +0 -2
  320. package/blog/tr/list_i18n_technologies/frameworks/react.md +0 -2
  321. package/blog/tr/list_i18n_technologies/frameworks/svelte.md +0 -2
  322. package/blog/tr/list_i18n_technologies/frameworks/vue.md +0 -2
  323. package/blog/tr/what_is_internationalization.md +0 -2
  324. package/blog/uk/date_time_number_formatting_locales.md +216 -0
  325. package/blog/uk/detecting_missing_translations.md +202 -0
  326. package/blog/uk/i18n_in_ci_cd_pipelines.md +247 -0
  327. package/blog/uk/i18n_meaning.md +0 -2
  328. package/blog/uk/i18n_testing_strategies.md +179 -0
  329. package/blog/uk/intlayer_with_i18next.md +3 -3
  330. package/blog/uk/intlayer_with_next-i18next.md +3 -3
  331. package/blog/uk/intlayer_with_next-intl.md +3 -3
  332. package/blog/uk/intlayer_with_react-i18next.md +3 -3
  333. package/blog/uk/intlayer_with_react-intl.md +3 -3
  334. package/blog/uk/intlayer_with_vue-i18n.md +3 -3
  335. package/blog/uk/is_i18next_outdated.md +315 -0
  336. package/blog/uk/is_next-intl_outdated.md +363 -0
  337. package/blog/uk/is_vue-i18n_outdated.md +338 -0
  338. package/blog/uk/list_i18n_technologies/build-tools/vite.md +177 -0
  339. package/blog/uk/list_i18n_technologies/frameworks/angular.md +0 -2
  340. package/blog/uk/list_i18n_technologies/frameworks/react-native.md +0 -2
  341. package/blog/uk/list_i18n_technologies/frameworks/react.md +0 -2
  342. package/blog/uk/list_i18n_technologies/frameworks/svelte.md +0 -2
  343. package/blog/uk/list_i18n_technologies/frameworks/vue.md +0 -2
  344. package/blog/uk/what_is_internationalization.md +0 -2
  345. package/blog/vi/date_time_number_formatting_locales.md +216 -0
  346. package/blog/vi/detecting_missing_translations.md +202 -0
  347. package/blog/vi/i18n_in_ci_cd_pipelines.md +247 -0
  348. package/blog/vi/i18n_meaning.md +0 -2
  349. package/blog/vi/i18n_testing_strategies.md +179 -0
  350. package/blog/vi/intlayer_with_i18next.md +3 -3
  351. package/blog/vi/intlayer_with_next-i18next.md +3 -3
  352. package/blog/vi/intlayer_with_next-intl.md +3 -3
  353. package/blog/vi/intlayer_with_react-i18next.md +3 -3
  354. package/blog/vi/intlayer_with_react-intl.md +3 -3
  355. package/blog/vi/intlayer_with_vue-i18n.md +3 -3
  356. package/blog/vi/is_i18next_outdated.md +317 -0
  357. package/blog/vi/is_next-intl_outdated.md +363 -0
  358. package/blog/vi/is_vue-i18n_outdated.md +338 -0
  359. package/blog/vi/list_i18n_technologies/build-tools/vite.md +177 -0
  360. package/blog/vi/list_i18n_technologies/frameworks/angular.md +0 -2
  361. package/blog/vi/list_i18n_technologies/frameworks/react-native.md +0 -2
  362. package/blog/vi/list_i18n_technologies/frameworks/react.md +0 -2
  363. package/blog/vi/list_i18n_technologies/frameworks/svelte.md +0 -2
  364. package/blog/vi/list_i18n_technologies/frameworks/vue.md +0 -2
  365. package/blog/vi/what_is_internationalization.md +0 -2
  366. package/blog/zh/date_time_number_formatting_locales.md +216 -0
  367. package/blog/zh/detecting_missing_translations.md +202 -0
  368. package/blog/zh/i18n_in_ci_cd_pipelines.md +247 -0
  369. package/blog/zh/i18n_meaning.md +0 -2
  370. package/blog/zh/i18n_testing_strategies.md +179 -0
  371. package/blog/zh/intlayer_with_i18next.md +3 -3
  372. package/blog/zh/intlayer_with_next-i18next.md +3 -3
  373. package/blog/zh/intlayer_with_next-intl.md +3 -3
  374. package/blog/zh/intlayer_with_react-i18next.md +3 -3
  375. package/blog/zh/intlayer_with_react-intl.md +3 -3
  376. package/blog/zh/intlayer_with_vue-i18n.md +3 -3
  377. package/blog/zh/is_i18next_outdated.md +317 -0
  378. package/blog/zh/is_next-intl_outdated.md +363 -0
  379. package/blog/zh/is_vue-i18n_outdated.md +338 -0
  380. package/blog/zh/list_i18n_technologies/build-tools/vite.md +179 -0
  381. package/blog/zh/list_i18n_technologies/frameworks/angular.md +0 -2
  382. package/blog/zh/list_i18n_technologies/frameworks/react-native.md +0 -2
  383. package/blog/zh/list_i18n_technologies/frameworks/react.md +0 -2
  384. package/blog/zh/list_i18n_technologies/frameworks/svelte.md +0 -2
  385. package/blog/zh/list_i18n_technologies/frameworks/vue.md +0 -2
  386. package/blog/zh/what_is_internationalization.md +0 -2
  387. package/dist/cjs/generated/blog.entry.cjs +320 -0
  388. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  389. package/dist/esm/generated/blog.entry.mjs +320 -0
  390. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  391. package/dist/types/authors.d.ts +5 -5
  392. package/dist/types/authors.d.ts.map +1 -1
  393. package/dist/types/blog.d.ts +10 -11
  394. package/dist/types/blog.d.ts.map +1 -1
  395. package/dist/types/common.d.ts +12 -13
  396. package/dist/types/common.d.ts.map +1 -1
  397. package/dist/types/doc.d.ts +10 -11
  398. package/dist/types/doc.d.ts.map +1 -1
  399. package/dist/types/frequentQuestions.d.ts +10 -11
  400. package/dist/types/frequentQuestions.d.ts.map +1 -1
  401. package/dist/types/generated/blog.entry.d.ts +17 -2
  402. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  403. package/dist/types/generated/docs.entry.d.ts +1 -2
  404. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  405. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -2
  406. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  407. package/dist/types/generated/legal.entry.d.ts +1 -2
  408. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  409. package/dist/types/legal.d.ts +10 -11
  410. package/dist/types/legal.d.ts.map +1 -1
  411. package/docs/ar/bundle_optimization.md +186 -186
  412. package/docs/ar/intlayer_with_adonisjs.md +3 -3
  413. package/docs/ar/intlayer_with_analog.md +3 -3
  414. package/docs/ar/intlayer_with_angular_19.md +3 -3
  415. package/docs/ar/intlayer_with_angular_21.md +3 -3
  416. package/docs/ar/intlayer_with_astro.md +3 -3
  417. package/docs/ar/intlayer_with_astro_lit.md +3 -3
  418. package/docs/ar/intlayer_with_astro_preact.md +3 -3
  419. package/docs/ar/intlayer_with_astro_react.md +3 -3
  420. package/docs/ar/intlayer_with_astro_solid.md +3 -3
  421. package/docs/ar/intlayer_with_astro_svelte.md +3 -3
  422. package/docs/ar/intlayer_with_astro_vanilla.md +3 -3
  423. package/docs/ar/intlayer_with_astro_vue.md +3 -3
  424. package/docs/ar/intlayer_with_create_react_app.md +3 -3
  425. package/docs/ar/intlayer_with_elysia.md +4 -4
  426. package/docs/ar/intlayer_with_express.md +3 -3
  427. package/docs/ar/intlayer_with_fastify.md +4 -4
  428. package/docs/ar/intlayer_with_hono.md +3 -3
  429. package/docs/ar/intlayer_with_lynx+react.md +3 -3
  430. package/docs/ar/intlayer_with_nestjs.md +3 -3
  431. package/docs/ar/intlayer_with_next-i18next.md +3 -3
  432. package/docs/ar/intlayer_with_nextjs_14.md +3 -3
  433. package/docs/ar/intlayer_with_nextjs_15.md +3 -3
  434. package/docs/ar/intlayer_with_nextjs_16.md +3 -3
  435. package/docs/ar/intlayer_with_nextjs_compiler.md +3 -3
  436. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +3 -3
  437. package/docs/ar/intlayer_with_nextjs_page_router.md +3 -3
  438. package/docs/ar/intlayer_with_nuxt.md +3 -3
  439. package/docs/ar/intlayer_with_react_native+expo.md +3 -3
  440. package/docs/ar/intlayer_with_react_router_v7.md +3 -3
  441. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +3 -3
  442. package/docs/ar/intlayer_with_solid_start.md +3 -3
  443. package/docs/ar/intlayer_with_svelte_kit.md +3 -3
  444. package/docs/ar/intlayer_with_tanstack+solid.md +3 -3
  445. package/docs/ar/intlayer_with_tanstack.md +3 -3
  446. package/docs/ar/intlayer_with_vite+lit.md +3 -3
  447. package/docs/ar/intlayer_with_vite+preact.md +3 -3
  448. package/docs/ar/intlayer_with_vite+react.md +3 -3
  449. package/docs/ar/intlayer_with_vite+react_compiler.md +3 -3
  450. package/docs/ar/intlayer_with_vite+solid.md +3 -3
  451. package/docs/ar/intlayer_with_vite+svelte.md +4 -12
  452. package/docs/ar/intlayer_with_vite+vanilla.md +3 -3
  453. package/docs/ar/intlayer_with_vite+vue.md +3 -3
  454. package/docs/ar/migration_from_i18next_to_intlayer.md +3 -3
  455. package/docs/ar/migration_from_next-i18next_to_intlayer.md +3 -3
  456. package/docs/ar/migration_from_next-intl_to_intlayer.md +3 -3
  457. package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  458. package/docs/ar/migration_from_react-i18next_to_intlayer.md +3 -3
  459. package/docs/ar/migration_from_vue-i18n_to_intlayer.md +3 -3
  460. package/docs/bn/bundle_optimization.md +186 -186
  461. package/docs/bn/intlayer_with_angular_21.md +3 -3
  462. package/docs/bn/intlayer_with_fastify.md +4 -4
  463. package/docs/bn/intlayer_with_hono.md +3 -3
  464. package/docs/bn/intlayer_with_vite+lit.md +3 -3
  465. package/docs/bn/intlayer_with_vite+vanilla.md +3 -3
  466. package/docs/cs/bundle_optimization.md +186 -186
  467. package/docs/cs/intlayer_with_angular_21.md +3 -3
  468. package/docs/cs/intlayer_with_fastify.md +4 -4
  469. package/docs/cs/intlayer_with_hono.md +3 -3
  470. package/docs/cs/intlayer_with_vite+lit.md +3 -3
  471. package/docs/cs/intlayer_with_vite+vanilla.md +3 -3
  472. package/docs/de/bundle_optimization.md +186 -186
  473. package/docs/de/intlayer_with_adonisjs.md +3 -3
  474. package/docs/de/intlayer_with_analog.md +3 -3
  475. package/docs/de/intlayer_with_angular_19.md +3 -3
  476. package/docs/de/intlayer_with_angular_21.md +3 -3
  477. package/docs/de/intlayer_with_astro.md +3 -3
  478. package/docs/de/intlayer_with_astro_lit.md +3 -3
  479. package/docs/de/intlayer_with_astro_preact.md +3 -3
  480. package/docs/de/intlayer_with_astro_react.md +3 -3
  481. package/docs/de/intlayer_with_astro_solid.md +3 -3
  482. package/docs/de/intlayer_with_astro_svelte.md +3 -3
  483. package/docs/de/intlayer_with_astro_vanilla.md +3 -3
  484. package/docs/de/intlayer_with_astro_vue.md +3 -3
  485. package/docs/de/intlayer_with_create_react_app.md +3 -3
  486. package/docs/de/intlayer_with_elysia.md +4 -4
  487. package/docs/de/intlayer_with_express.md +3 -3
  488. package/docs/de/intlayer_with_fastify.md +4 -4
  489. package/docs/de/intlayer_with_hono.md +3 -3
  490. package/docs/de/intlayer_with_lynx+react.md +3 -3
  491. package/docs/de/intlayer_with_nestjs.md +3 -3
  492. package/docs/de/intlayer_with_next-i18next.md +3 -3
  493. package/docs/de/intlayer_with_nextjs_14.md +3 -3
  494. package/docs/de/intlayer_with_nextjs_15.md +3 -3
  495. package/docs/de/intlayer_with_nextjs_16.md +3 -3
  496. package/docs/de/intlayer_with_nextjs_compiler.md +3 -3
  497. package/docs/de/intlayer_with_nextjs_no_locale_path.md +3 -3
  498. package/docs/de/intlayer_with_nextjs_page_router.md +3 -3
  499. package/docs/de/intlayer_with_nuxt.md +3 -3
  500. package/docs/de/intlayer_with_react_native+expo.md +3 -3
  501. package/docs/de/intlayer_with_react_router_v7.md +3 -3
  502. package/docs/de/intlayer_with_solid_start.md +3 -3
  503. package/docs/de/intlayer_with_svelte_kit.md +3 -3
  504. package/docs/de/intlayer_with_tanstack+solid.md +3 -3
  505. package/docs/de/intlayer_with_tanstack.md +3 -3
  506. package/docs/de/intlayer_with_vite+lit.md +3 -3
  507. package/docs/de/intlayer_with_vite+preact.md +3 -3
  508. package/docs/de/intlayer_with_vite+react.md +3 -3
  509. package/docs/de/intlayer_with_vite+react_compiler.md +3 -3
  510. package/docs/de/intlayer_with_vite+solid.md +3 -3
  511. package/docs/de/intlayer_with_vite+svelte.md +4 -12
  512. package/docs/de/intlayer_with_vite+vanilla.md +3 -3
  513. package/docs/de/intlayer_with_vite+vue.md +3 -3
  514. package/docs/de/migration_from_i18next_to_intlayer.md +3 -3
  515. package/docs/de/migration_from_next-i18next_to_intlayer.md +3 -3
  516. package/docs/de/migration_from_next-intl_to_intlayer.md +3 -3
  517. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  518. package/docs/de/migration_from_react-i18next_to_intlayer.md +3 -3
  519. package/docs/de/migration_from_vue-i18n_to_intlayer.md +3 -3
  520. package/docs/en/bundle_optimization.md +186 -186
  521. package/docs/en/intlayer_with_adonisjs.md +3 -3
  522. package/docs/en/intlayer_with_analog.md +3 -3
  523. package/docs/en/intlayer_with_angular_19.md +3 -3
  524. package/docs/en/intlayer_with_angular_21.md +3 -3
  525. package/docs/en/intlayer_with_astro.md +3 -3
  526. package/docs/en/intlayer_with_astro_lit.md +3 -3
  527. package/docs/en/intlayer_with_astro_preact.md +3 -3
  528. package/docs/en/intlayer_with_astro_react.md +3 -3
  529. package/docs/en/intlayer_with_astro_solid.md +3 -3
  530. package/docs/en/intlayer_with_astro_svelte.md +3 -3
  531. package/docs/en/intlayer_with_astro_vanilla.md +3 -3
  532. package/docs/en/intlayer_with_astro_vue.md +3 -3
  533. package/docs/en/intlayer_with_create_react_app.md +3 -3
  534. package/docs/en/intlayer_with_elysia.md +4 -4
  535. package/docs/en/intlayer_with_express.md +3 -3
  536. package/docs/en/intlayer_with_fastify.md +4 -4
  537. package/docs/en/intlayer_with_hono.md +3 -3
  538. package/docs/en/intlayer_with_lynx+react.md +3 -3
  539. package/docs/en/intlayer_with_nestjs.md +3 -3
  540. package/docs/en/intlayer_with_next-i18next.md +3 -3
  541. package/docs/en/intlayer_with_nextjs_14.md +3 -3
  542. package/docs/en/intlayer_with_nextjs_15.md +3 -3
  543. package/docs/en/intlayer_with_nextjs_16.md +3 -3
  544. package/docs/en/intlayer_with_nextjs_compiler.md +3 -3
  545. package/docs/en/intlayer_with_nextjs_no_locale_path.md +3 -3
  546. package/docs/en/intlayer_with_nextjs_page_router.md +3 -3
  547. package/docs/en/intlayer_with_nuxt.md +3 -3
  548. package/docs/en/intlayer_with_react_native+expo.md +3 -3
  549. package/docs/en/intlayer_with_react_router_v7.md +3 -3
  550. package/docs/en/intlayer_with_solid_start.md +3 -3
  551. package/docs/en/intlayer_with_svelte_kit.md +3 -3
  552. package/docs/en/intlayer_with_tanstack+solid.md +3 -3
  553. package/docs/en/intlayer_with_tanstack.md +3 -3
  554. package/docs/en/intlayer_with_vite+lit.md +3 -3
  555. package/docs/en/intlayer_with_vite+preact.md +3 -3
  556. package/docs/en/intlayer_with_vite+react.md +3 -3
  557. package/docs/en/intlayer_with_vite+react_compiler.md +3 -3
  558. package/docs/en/intlayer_with_vite+solid.md +3 -3
  559. package/docs/en/intlayer_with_vite+svelte.md +4 -12
  560. package/docs/en/intlayer_with_vite+vanilla.md +3 -3
  561. package/docs/en/intlayer_with_vite+vue.md +3 -3
  562. package/docs/en/migration_from_i18next_to_intlayer.md +3 -3
  563. package/docs/en/migration_from_next-i18next_to_intlayer.md +3 -3
  564. package/docs/en/migration_from_next-intl_to_intlayer.md +3 -3
  565. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  566. package/docs/en/migration_from_react-i18next_to_intlayer.md +3 -3
  567. package/docs/en/migration_from_vue-i18n_to_intlayer.md +3 -3
  568. package/docs/en-GB/bundle_optimization.md +186 -186
  569. package/docs/en-GB/intlayer_with_adonisjs.md +3 -3
  570. package/docs/en-GB/intlayer_with_analog.md +3 -3
  571. package/docs/en-GB/intlayer_with_angular_19.md +3 -3
  572. package/docs/en-GB/intlayer_with_angular_21.md +3 -3
  573. package/docs/en-GB/intlayer_with_astro.md +3 -3
  574. package/docs/en-GB/intlayer_with_astro_lit.md +3 -3
  575. package/docs/en-GB/intlayer_with_astro_preact.md +3 -3
  576. package/docs/en-GB/intlayer_with_astro_react.md +3 -3
  577. package/docs/en-GB/intlayer_with_astro_solid.md +3 -3
  578. package/docs/en-GB/intlayer_with_astro_svelte.md +3 -3
  579. package/docs/en-GB/intlayer_with_astro_vanilla.md +3 -3
  580. package/docs/en-GB/intlayer_with_astro_vue.md +3 -3
  581. package/docs/en-GB/intlayer_with_create_react_app.md +3 -3
  582. package/docs/en-GB/intlayer_with_elysia.md +4 -4
  583. package/docs/en-GB/intlayer_with_express.md +3 -3
  584. package/docs/en-GB/intlayer_with_fastify.md +4 -4
  585. package/docs/en-GB/intlayer_with_hono.md +3 -3
  586. package/docs/en-GB/intlayer_with_lynx+react.md +3 -3
  587. package/docs/en-GB/intlayer_with_nestjs.md +3 -3
  588. package/docs/en-GB/intlayer_with_next-i18next.md +3 -3
  589. package/docs/en-GB/intlayer_with_nextjs_14.md +3 -3
  590. package/docs/en-GB/intlayer_with_nextjs_15.md +3 -3
  591. package/docs/en-GB/intlayer_with_nextjs_16.md +3 -3
  592. package/docs/en-GB/intlayer_with_nextjs_compiler.md +3 -3
  593. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +3 -3
  594. package/docs/en-GB/intlayer_with_nextjs_page_router.md +3 -3
  595. package/docs/en-GB/intlayer_with_nuxt.md +3 -3
  596. package/docs/en-GB/intlayer_with_react_native+expo.md +3 -3
  597. package/docs/en-GB/intlayer_with_react_router_v7.md +3 -3
  598. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +3 -3
  599. package/docs/en-GB/intlayer_with_solid_start.md +3 -3
  600. package/docs/en-GB/intlayer_with_svelte_kit.md +3 -3
  601. package/docs/en-GB/intlayer_with_tanstack+solid.md +3 -3
  602. package/docs/en-GB/intlayer_with_tanstack.md +3 -3
  603. package/docs/en-GB/intlayer_with_vite+lit.md +3 -3
  604. package/docs/en-GB/intlayer_with_vite+preact.md +3 -3
  605. package/docs/en-GB/intlayer_with_vite+react.md +3 -3
  606. package/docs/en-GB/intlayer_with_vite+react_compiler.md +3 -3
  607. package/docs/en-GB/intlayer_with_vite+solid.md +3 -3
  608. package/docs/en-GB/intlayer_with_vite+svelte.md +4 -12
  609. package/docs/en-GB/intlayer_with_vite+vanilla.md +3 -3
  610. package/docs/en-GB/intlayer_with_vite+vue.md +3 -3
  611. package/docs/en-GB/migration_from_i18next_to_intlayer.md +3 -3
  612. package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +3 -3
  613. package/docs/en-GB/migration_from_next-intl_to_intlayer.md +3 -3
  614. package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  615. package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +3 -3
  616. package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +3 -3
  617. package/docs/es/bundle_optimization.md +186 -186
  618. package/docs/es/intlayer_with_adonisjs.md +3 -3
  619. package/docs/es/intlayer_with_analog.md +3 -3
  620. package/docs/es/intlayer_with_angular_19.md +3 -3
  621. package/docs/es/intlayer_with_angular_21.md +3 -3
  622. package/docs/es/intlayer_with_astro.md +3 -3
  623. package/docs/es/intlayer_with_astro_lit.md +3 -3
  624. package/docs/es/intlayer_with_astro_preact.md +3 -3
  625. package/docs/es/intlayer_with_astro_react.md +3 -3
  626. package/docs/es/intlayer_with_astro_solid.md +3 -3
  627. package/docs/es/intlayer_with_astro_svelte.md +3 -3
  628. package/docs/es/intlayer_with_astro_vanilla.md +3 -3
  629. package/docs/es/intlayer_with_astro_vue.md +3 -3
  630. package/docs/es/intlayer_with_create_react_app.md +3 -3
  631. package/docs/es/intlayer_with_elysia.md +4 -4
  632. package/docs/es/intlayer_with_express.md +3 -3
  633. package/docs/es/intlayer_with_fastify.md +4 -4
  634. package/docs/es/intlayer_with_hono.md +3 -3
  635. package/docs/es/intlayer_with_lynx+react.md +3 -3
  636. package/docs/es/intlayer_with_nestjs.md +3 -3
  637. package/docs/es/intlayer_with_next-i18next.md +3 -3
  638. package/docs/es/intlayer_with_nextjs_14.md +3 -3
  639. package/docs/es/intlayer_with_nextjs_15.md +3 -3
  640. package/docs/es/intlayer_with_nextjs_16.md +3 -3
  641. package/docs/es/intlayer_with_nextjs_compiler.md +3 -3
  642. package/docs/es/intlayer_with_nextjs_no_locale_path.md +3 -3
  643. package/docs/es/intlayer_with_nextjs_page_router.md +3 -3
  644. package/docs/es/intlayer_with_nuxt.md +3 -3
  645. package/docs/es/intlayer_with_react_native+expo.md +3 -3
  646. package/docs/es/intlayer_with_react_router_v7.md +3 -3
  647. package/docs/es/intlayer_with_solid_start.md +3 -3
  648. package/docs/es/intlayer_with_svelte_kit.md +3 -3
  649. package/docs/es/intlayer_with_tanstack+solid.md +3 -3
  650. package/docs/es/intlayer_with_tanstack.md +3 -3
  651. package/docs/es/intlayer_with_vite+lit.md +3 -3
  652. package/docs/es/intlayer_with_vite+preact.md +3 -3
  653. package/docs/es/intlayer_with_vite+react.md +3 -3
  654. package/docs/es/intlayer_with_vite+react_compiler.md +3 -3
  655. package/docs/es/intlayer_with_vite+solid.md +3 -3
  656. package/docs/es/intlayer_with_vite+svelte.md +4 -12
  657. package/docs/es/intlayer_with_vite+vanilla.md +3 -3
  658. package/docs/es/intlayer_with_vite+vue.md +3 -3
  659. package/docs/es/migration_from_i18next_to_intlayer.md +3 -3
  660. package/docs/es/migration_from_next-i18next_to_intlayer.md +3 -3
  661. package/docs/es/migration_from_next-intl_to_intlayer.md +3 -3
  662. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  663. package/docs/es/migration_from_react-i18next_to_intlayer.md +3 -3
  664. package/docs/es/migration_from_vue-i18n_to_intlayer.md +3 -3
  665. package/docs/fr/bundle_optimization.md +186 -186
  666. package/docs/fr/intlayer_with_adonisjs.md +3 -3
  667. package/docs/fr/intlayer_with_analog.md +3 -3
  668. package/docs/fr/intlayer_with_angular_19.md +3 -3
  669. package/docs/fr/intlayer_with_angular_21.md +3 -3
  670. package/docs/fr/intlayer_with_astro.md +3 -3
  671. package/docs/fr/intlayer_with_astro_lit.md +3 -3
  672. package/docs/fr/intlayer_with_astro_preact.md +3 -3
  673. package/docs/fr/intlayer_with_astro_react.md +3 -3
  674. package/docs/fr/intlayer_with_astro_solid.md +3 -3
  675. package/docs/fr/intlayer_with_astro_svelte.md +3 -3
  676. package/docs/fr/intlayer_with_astro_vanilla.md +3 -3
  677. package/docs/fr/intlayer_with_astro_vue.md +3 -3
  678. package/docs/fr/intlayer_with_create_react_app.md +3 -3
  679. package/docs/fr/intlayer_with_elysia.md +4 -4
  680. package/docs/fr/intlayer_with_express.md +3 -3
  681. package/docs/fr/intlayer_with_fastify.md +4 -4
  682. package/docs/fr/intlayer_with_hono.md +3 -3
  683. package/docs/fr/intlayer_with_lynx+react.md +3 -3
  684. package/docs/fr/intlayer_with_nestjs.md +3 -3
  685. package/docs/fr/intlayer_with_next-i18next.md +3 -3
  686. package/docs/fr/intlayer_with_nextjs_14.md +3 -3
  687. package/docs/fr/intlayer_with_nextjs_15.md +3 -3
  688. package/docs/fr/intlayer_with_nextjs_16.md +3 -3
  689. package/docs/fr/intlayer_with_nextjs_compiler.md +3 -3
  690. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +3 -3
  691. package/docs/fr/intlayer_with_nextjs_page_router.md +3 -3
  692. package/docs/fr/intlayer_with_nuxt.md +3 -3
  693. package/docs/fr/intlayer_with_react_native+expo.md +3 -3
  694. package/docs/fr/intlayer_with_react_router_v7.md +3 -3
  695. package/docs/fr/intlayer_with_solid_start.md +3 -3
  696. package/docs/fr/intlayer_with_svelte_kit.md +3 -3
  697. package/docs/fr/intlayer_with_tanstack+solid.md +3 -3
  698. package/docs/fr/intlayer_with_tanstack.md +3 -3
  699. package/docs/fr/intlayer_with_vite+lit.md +3 -3
  700. package/docs/fr/intlayer_with_vite+preact.md +3 -3
  701. package/docs/fr/intlayer_with_vite+react.md +3 -3
  702. package/docs/fr/intlayer_with_vite+react_compiler.md +3 -3
  703. package/docs/fr/intlayer_with_vite+solid.md +3 -3
  704. package/docs/fr/intlayer_with_vite+svelte.md +4 -12
  705. package/docs/fr/intlayer_with_vite+vanilla.md +3 -3
  706. package/docs/fr/intlayer_with_vite+vue.md +3 -3
  707. package/docs/fr/migration_from_i18next_to_intlayer.md +3 -3
  708. package/docs/fr/migration_from_next-i18next_to_intlayer.md +3 -3
  709. package/docs/fr/migration_from_next-intl_to_intlayer.md +3 -3
  710. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  711. package/docs/fr/migration_from_react-i18next_to_intlayer.md +3 -3
  712. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +3 -3
  713. package/docs/hi/bundle_optimization.md +186 -186
  714. package/docs/hi/intlayer_with_adonisjs.md +3 -3
  715. package/docs/hi/intlayer_with_analog.md +3 -3
  716. package/docs/hi/intlayer_with_angular_19.md +3 -3
  717. package/docs/hi/intlayer_with_angular_21.md +3 -3
  718. package/docs/hi/intlayer_with_astro.md +3 -3
  719. package/docs/hi/intlayer_with_astro_lit.md +3 -3
  720. package/docs/hi/intlayer_with_astro_preact.md +3 -3
  721. package/docs/hi/intlayer_with_astro_react.md +3 -3
  722. package/docs/hi/intlayer_with_astro_solid.md +3 -3
  723. package/docs/hi/intlayer_with_astro_svelte.md +3 -3
  724. package/docs/hi/intlayer_with_astro_vanilla.md +3 -3
  725. package/docs/hi/intlayer_with_astro_vue.md +3 -3
  726. package/docs/hi/intlayer_with_create_react_app.md +3 -3
  727. package/docs/hi/intlayer_with_elysia.md +4 -4
  728. package/docs/hi/intlayer_with_express.md +3 -3
  729. package/docs/hi/intlayer_with_fastify.md +4 -4
  730. package/docs/hi/intlayer_with_hono.md +3 -3
  731. package/docs/hi/intlayer_with_lynx+react.md +3 -3
  732. package/docs/hi/intlayer_with_nestjs.md +3 -3
  733. package/docs/hi/intlayer_with_next-i18next.md +3 -3
  734. package/docs/hi/intlayer_with_nextjs_14.md +3 -3
  735. package/docs/hi/intlayer_with_nextjs_15.md +3 -3
  736. package/docs/hi/intlayer_with_nextjs_16.md +3 -3
  737. package/docs/hi/intlayer_with_nextjs_compiler.md +3 -3
  738. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +3 -3
  739. package/docs/hi/intlayer_with_nextjs_page_router.md +3 -3
  740. package/docs/hi/intlayer_with_nuxt.md +3 -3
  741. package/docs/hi/intlayer_with_react_native+expo.md +3 -3
  742. package/docs/hi/intlayer_with_react_router_v7.md +3 -3
  743. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +3 -3
  744. package/docs/hi/intlayer_with_solid_start.md +3 -3
  745. package/docs/hi/intlayer_with_svelte_kit.md +3 -3
  746. package/docs/hi/intlayer_with_tanstack+solid.md +3 -3
  747. package/docs/hi/intlayer_with_tanstack.md +3 -3
  748. package/docs/hi/intlayer_with_vite+lit.md +3 -3
  749. package/docs/hi/intlayer_with_vite+preact.md +3 -3
  750. package/docs/hi/intlayer_with_vite+react.md +3 -3
  751. package/docs/hi/intlayer_with_vite+react_compiler.md +3 -3
  752. package/docs/hi/intlayer_with_vite+solid.md +3 -3
  753. package/docs/hi/intlayer_with_vite+svelte.md +4 -12
  754. package/docs/hi/intlayer_with_vite+vanilla.md +3 -3
  755. package/docs/hi/intlayer_with_vite+vue.md +3 -3
  756. package/docs/hi/migration_from_i18next_to_intlayer.md +3 -3
  757. package/docs/hi/migration_from_next-i18next_to_intlayer.md +3 -3
  758. package/docs/hi/migration_from_next-intl_to_intlayer.md +3 -3
  759. package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  760. package/docs/hi/migration_from_react-i18next_to_intlayer.md +3 -3
  761. package/docs/hi/migration_from_vue-i18n_to_intlayer.md +3 -3
  762. package/docs/hi/packages/intlayer/index.md +3 -3
  763. package/docs/id/bundle_optimization.md +186 -186
  764. package/docs/id/intlayer_with_adonisjs.md +3 -3
  765. package/docs/id/intlayer_with_analog.md +3 -3
  766. package/docs/id/intlayer_with_angular_19.md +3 -3
  767. package/docs/id/intlayer_with_angular_21.md +3 -3
  768. package/docs/id/intlayer_with_astro.md +3 -3
  769. package/docs/id/intlayer_with_astro_lit.md +3 -3
  770. package/docs/id/intlayer_with_astro_preact.md +3 -3
  771. package/docs/id/intlayer_with_astro_react.md +3 -3
  772. package/docs/id/intlayer_with_astro_solid.md +3 -3
  773. package/docs/id/intlayer_with_astro_svelte.md +3 -3
  774. package/docs/id/intlayer_with_astro_vanilla.md +3 -3
  775. package/docs/id/intlayer_with_astro_vue.md +3 -3
  776. package/docs/id/intlayer_with_create_react_app.md +3 -3
  777. package/docs/id/intlayer_with_elysia.md +4 -4
  778. package/docs/id/intlayer_with_express.md +3 -3
  779. package/docs/id/intlayer_with_fastify.md +4 -4
  780. package/docs/id/intlayer_with_hono.md +3 -3
  781. package/docs/id/intlayer_with_lynx+react.md +3 -3
  782. package/docs/id/intlayer_with_nestjs.md +3 -3
  783. package/docs/id/intlayer_with_next-i18next.md +3 -3
  784. package/docs/id/intlayer_with_nextjs_14.md +3 -3
  785. package/docs/id/intlayer_with_nextjs_15.md +3 -3
  786. package/docs/id/intlayer_with_nextjs_16.md +3 -3
  787. package/docs/id/intlayer_with_nextjs_compiler.md +3 -3
  788. package/docs/id/intlayer_with_nextjs_no_locale_path.md +3 -3
  789. package/docs/id/intlayer_with_nextjs_page_router.md +3 -3
  790. package/docs/id/intlayer_with_nuxt.md +3 -3
  791. package/docs/id/intlayer_with_react_native+expo.md +3 -3
  792. package/docs/id/intlayer_with_react_router_v7.md +3 -3
  793. package/docs/id/intlayer_with_solid_start.md +3 -3
  794. package/docs/id/intlayer_with_svelte_kit.md +3 -3
  795. package/docs/id/intlayer_with_tanstack+solid.md +3 -3
  796. package/docs/id/intlayer_with_tanstack.md +3 -3
  797. package/docs/id/intlayer_with_vite+lit.md +3 -3
  798. package/docs/id/intlayer_with_vite+preact.md +3 -3
  799. package/docs/id/intlayer_with_vite+react.md +3 -3
  800. package/docs/id/intlayer_with_vite+react_compiler.md +3 -3
  801. package/docs/id/intlayer_with_vite+solid.md +3 -3
  802. package/docs/id/intlayer_with_vite+svelte.md +4 -12
  803. package/docs/id/intlayer_with_vite+vanilla.md +3 -3
  804. package/docs/id/intlayer_with_vite+vue.md +3 -3
  805. package/docs/id/migration_from_i18next_to_intlayer.md +3 -3
  806. package/docs/id/migration_from_next-i18next_to_intlayer.md +3 -3
  807. package/docs/id/migration_from_next-intl_to_intlayer.md +3 -3
  808. package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  809. package/docs/id/migration_from_react-i18next_to_intlayer.md +3 -3
  810. package/docs/id/migration_from_vue-i18n_to_intlayer.md +3 -3
  811. package/docs/it/bundle_optimization.md +186 -186
  812. package/docs/it/intlayer_with_adonisjs.md +3 -3
  813. package/docs/it/intlayer_with_analog.md +3 -3
  814. package/docs/it/intlayer_with_angular_19.md +3 -3
  815. package/docs/it/intlayer_with_angular_21.md +3 -3
  816. package/docs/it/intlayer_with_astro.md +3 -3
  817. package/docs/it/intlayer_with_astro_lit.md +3 -3
  818. package/docs/it/intlayer_with_astro_preact.md +3 -3
  819. package/docs/it/intlayer_with_astro_react.md +3 -3
  820. package/docs/it/intlayer_with_astro_solid.md +3 -3
  821. package/docs/it/intlayer_with_astro_svelte.md +3 -3
  822. package/docs/it/intlayer_with_astro_vanilla.md +3 -3
  823. package/docs/it/intlayer_with_astro_vue.md +3 -3
  824. package/docs/it/intlayer_with_create_react_app.md +3 -3
  825. package/docs/it/intlayer_with_elysia.md +4 -4
  826. package/docs/it/intlayer_with_express.md +3 -3
  827. package/docs/it/intlayer_with_fastify.md +4 -4
  828. package/docs/it/intlayer_with_hono.md +3 -3
  829. package/docs/it/intlayer_with_lynx+react.md +3 -3
  830. package/docs/it/intlayer_with_nestjs.md +3 -3
  831. package/docs/it/intlayer_with_next-i18next.md +3 -3
  832. package/docs/it/intlayer_with_nextjs_14.md +3 -3
  833. package/docs/it/intlayer_with_nextjs_15.md +3 -3
  834. package/docs/it/intlayer_with_nextjs_16.md +3 -3
  835. package/docs/it/intlayer_with_nextjs_compiler.md +3 -3
  836. package/docs/it/intlayer_with_nextjs_no_locale_path.md +3 -3
  837. package/docs/it/intlayer_with_nextjs_page_router.md +3 -3
  838. package/docs/it/intlayer_with_nuxt.md +3 -3
  839. package/docs/it/intlayer_with_react_native+expo.md +3 -3
  840. package/docs/it/intlayer_with_react_router_v7.md +3 -3
  841. package/docs/it/intlayer_with_solid_start.md +3 -3
  842. package/docs/it/intlayer_with_svelte_kit.md +3 -3
  843. package/docs/it/intlayer_with_tanstack+solid.md +3 -3
  844. package/docs/it/intlayer_with_tanstack.md +3 -3
  845. package/docs/it/intlayer_with_vite+lit.md +3 -3
  846. package/docs/it/intlayer_with_vite+preact.md +3 -3
  847. package/docs/it/intlayer_with_vite+react.md +3 -3
  848. package/docs/it/intlayer_with_vite+react_compiler.md +3 -3
  849. package/docs/it/intlayer_with_vite+solid.md +3 -3
  850. package/docs/it/intlayer_with_vite+svelte.md +4 -12
  851. package/docs/it/intlayer_with_vite+vanilla.md +3 -3
  852. package/docs/it/intlayer_with_vite+vue.md +3 -3
  853. package/docs/it/migration_from_i18next_to_intlayer.md +3 -3
  854. package/docs/it/migration_from_next-i18next_to_intlayer.md +3 -3
  855. package/docs/it/migration_from_next-intl_to_intlayer.md +3 -3
  856. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  857. package/docs/it/migration_from_react-i18next_to_intlayer.md +3 -3
  858. package/docs/it/migration_from_vue-i18n_to_intlayer.md +3 -3
  859. package/docs/ja/bundle_optimization.md +186 -186
  860. package/docs/ja/intlayer_with_adonisjs.md +3 -3
  861. package/docs/ja/intlayer_with_analog.md +3 -3
  862. package/docs/ja/intlayer_with_angular_19.md +3 -3
  863. package/docs/ja/intlayer_with_angular_21.md +3 -3
  864. package/docs/ja/intlayer_with_astro.md +3 -3
  865. package/docs/ja/intlayer_with_astro_lit.md +3 -3
  866. package/docs/ja/intlayer_with_astro_preact.md +3 -3
  867. package/docs/ja/intlayer_with_astro_react.md +3 -3
  868. package/docs/ja/intlayer_with_astro_solid.md +3 -3
  869. package/docs/ja/intlayer_with_astro_svelte.md +3 -3
  870. package/docs/ja/intlayer_with_astro_vanilla.md +3 -3
  871. package/docs/ja/intlayer_with_astro_vue.md +3 -3
  872. package/docs/ja/intlayer_with_create_react_app.md +3 -3
  873. package/docs/ja/intlayer_with_elysia.md +4 -4
  874. package/docs/ja/intlayer_with_express.md +3 -3
  875. package/docs/ja/intlayer_with_fastify.md +4 -4
  876. package/docs/ja/intlayer_with_hono.md +3 -3
  877. package/docs/ja/intlayer_with_lynx+react.md +3 -3
  878. package/docs/ja/intlayer_with_nestjs.md +3 -3
  879. package/docs/ja/intlayer_with_next-i18next.md +3 -3
  880. package/docs/ja/intlayer_with_nextjs_14.md +3 -3
  881. package/docs/ja/intlayer_with_nextjs_15.md +3 -3
  882. package/docs/ja/intlayer_with_nextjs_16.md +3 -3
  883. package/docs/ja/intlayer_with_nextjs_compiler.md +3 -3
  884. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +3 -3
  885. package/docs/ja/intlayer_with_nextjs_page_router.md +3 -3
  886. package/docs/ja/intlayer_with_nuxt.md +3 -3
  887. package/docs/ja/intlayer_with_react_native+expo.md +3 -3
  888. package/docs/ja/intlayer_with_react_router_v7.md +3 -3
  889. package/docs/ja/intlayer_with_solid_start.md +3 -3
  890. package/docs/ja/intlayer_with_svelte_kit.md +3 -3
  891. package/docs/ja/intlayer_with_tanstack+solid.md +3 -3
  892. package/docs/ja/intlayer_with_tanstack.md +3 -3
  893. package/docs/ja/intlayer_with_vite+lit.md +3 -3
  894. package/docs/ja/intlayer_with_vite+preact.md +3 -3
  895. package/docs/ja/intlayer_with_vite+react.md +3 -3
  896. package/docs/ja/intlayer_with_vite+react_compiler.md +3 -3
  897. package/docs/ja/intlayer_with_vite+solid.md +3 -3
  898. package/docs/ja/intlayer_with_vite+svelte.md +4 -12
  899. package/docs/ja/intlayer_with_vite+vanilla.md +3 -3
  900. package/docs/ja/intlayer_with_vite+vue.md +3 -3
  901. package/docs/ja/migration_from_i18next_to_intlayer.md +3 -3
  902. package/docs/ja/migration_from_next-i18next_to_intlayer.md +3 -3
  903. package/docs/ja/migration_from_next-intl_to_intlayer.md +3 -3
  904. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  905. package/docs/ja/migration_from_react-i18next_to_intlayer.md +3 -3
  906. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +3 -3
  907. package/docs/ko/bundle_optimization.md +186 -186
  908. package/docs/ko/intlayer_with_adonisjs.md +3 -3
  909. package/docs/ko/intlayer_with_analog.md +3 -3
  910. package/docs/ko/intlayer_with_angular_19.md +3 -3
  911. package/docs/ko/intlayer_with_angular_21.md +3 -3
  912. package/docs/ko/intlayer_with_astro.md +3 -3
  913. package/docs/ko/intlayer_with_astro_lit.md +3 -3
  914. package/docs/ko/intlayer_with_astro_preact.md +3 -3
  915. package/docs/ko/intlayer_with_astro_react.md +3 -3
  916. package/docs/ko/intlayer_with_astro_solid.md +3 -3
  917. package/docs/ko/intlayer_with_astro_svelte.md +3 -3
  918. package/docs/ko/intlayer_with_astro_vanilla.md +3 -3
  919. package/docs/ko/intlayer_with_astro_vue.md +3 -3
  920. package/docs/ko/intlayer_with_create_react_app.md +3 -3
  921. package/docs/ko/intlayer_with_elysia.md +4 -4
  922. package/docs/ko/intlayer_with_express.md +3 -3
  923. package/docs/ko/intlayer_with_fastify.md +4 -4
  924. package/docs/ko/intlayer_with_hono.md +3 -3
  925. package/docs/ko/intlayer_with_lynx+react.md +3 -3
  926. package/docs/ko/intlayer_with_nestjs.md +3 -3
  927. package/docs/ko/intlayer_with_next-i18next.md +3 -3
  928. package/docs/ko/intlayer_with_nextjs_14.md +3 -3
  929. package/docs/ko/intlayer_with_nextjs_15.md +3 -3
  930. package/docs/ko/intlayer_with_nextjs_16.md +3 -3
  931. package/docs/ko/intlayer_with_nextjs_compiler.md +3 -3
  932. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +3 -3
  933. package/docs/ko/intlayer_with_nextjs_page_router.md +3 -3
  934. package/docs/ko/intlayer_with_nuxt.md +3 -3
  935. package/docs/ko/intlayer_with_react_native+expo.md +3 -3
  936. package/docs/ko/intlayer_with_react_router_v7.md +3 -3
  937. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +3 -3
  938. package/docs/ko/intlayer_with_solid_start.md +3 -3
  939. package/docs/ko/intlayer_with_svelte_kit.md +3 -3
  940. package/docs/ko/intlayer_with_tanstack+solid.md +3 -3
  941. package/docs/ko/intlayer_with_tanstack.md +3 -3
  942. package/docs/ko/intlayer_with_vite+lit.md +3 -3
  943. package/docs/ko/intlayer_with_vite+preact.md +3 -3
  944. package/docs/ko/intlayer_with_vite+react.md +3 -3
  945. package/docs/ko/intlayer_with_vite+react_compiler.md +3 -3
  946. package/docs/ko/intlayer_with_vite+solid.md +3 -3
  947. package/docs/ko/intlayer_with_vite+svelte.md +4 -12
  948. package/docs/ko/intlayer_with_vite+vanilla.md +3 -3
  949. package/docs/ko/intlayer_with_vite+vue.md +3 -3
  950. package/docs/ko/migration_from_i18next_to_intlayer.md +3 -3
  951. package/docs/ko/migration_from_next-i18next_to_intlayer.md +3 -3
  952. package/docs/ko/migration_from_next-intl_to_intlayer.md +3 -3
  953. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  954. package/docs/ko/migration_from_react-i18next_to_intlayer.md +3 -3
  955. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +3 -3
  956. package/docs/nl/bundle_optimization.md +186 -186
  957. package/docs/nl/intlayer_with_angular_21.md +3 -3
  958. package/docs/nl/intlayer_with_fastify.md +4 -4
  959. package/docs/nl/intlayer_with_hono.md +3 -3
  960. package/docs/nl/intlayer_with_vite+lit.md +3 -3
  961. package/docs/nl/intlayer_with_vite+vanilla.md +3 -3
  962. package/docs/pl/bundle_optimization.md +186 -186
  963. package/docs/pl/intlayer_with_adonisjs.md +3 -3
  964. package/docs/pl/intlayer_with_analog.md +3 -3
  965. package/docs/pl/intlayer_with_angular_19.md +3 -3
  966. package/docs/pl/intlayer_with_angular_21.md +3 -3
  967. package/docs/pl/intlayer_with_astro.md +3 -3
  968. package/docs/pl/intlayer_with_astro_lit.md +3 -3
  969. package/docs/pl/intlayer_with_astro_preact.md +3 -3
  970. package/docs/pl/intlayer_with_astro_react.md +3 -3
  971. package/docs/pl/intlayer_with_astro_solid.md +3 -3
  972. package/docs/pl/intlayer_with_astro_svelte.md +3 -3
  973. package/docs/pl/intlayer_with_astro_vanilla.md +3 -3
  974. package/docs/pl/intlayer_with_astro_vue.md +3 -3
  975. package/docs/pl/intlayer_with_create_react_app.md +3 -3
  976. package/docs/pl/intlayer_with_elysia.md +4 -4
  977. package/docs/pl/intlayer_with_express.md +3 -3
  978. package/docs/pl/intlayer_with_fastify.md +4 -4
  979. package/docs/pl/intlayer_with_hono.md +3 -3
  980. package/docs/pl/intlayer_with_lynx+react.md +3 -3
  981. package/docs/pl/intlayer_with_nestjs.md +3 -3
  982. package/docs/pl/intlayer_with_next-i18next.md +3 -3
  983. package/docs/pl/intlayer_with_nextjs_14.md +3 -3
  984. package/docs/pl/intlayer_with_nextjs_15.md +3 -3
  985. package/docs/pl/intlayer_with_nextjs_16.md +3 -3
  986. package/docs/pl/intlayer_with_nextjs_compiler.md +3 -3
  987. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +3 -3
  988. package/docs/pl/intlayer_with_nextjs_page_router.md +3 -3
  989. package/docs/pl/intlayer_with_nuxt.md +3 -3
  990. package/docs/pl/intlayer_with_react_native+expo.md +3 -3
  991. package/docs/pl/intlayer_with_react_router_v7.md +3 -3
  992. package/docs/pl/intlayer_with_solid_start.md +3 -3
  993. package/docs/pl/intlayer_with_svelte_kit.md +3 -3
  994. package/docs/pl/intlayer_with_tanstack+solid.md +3 -3
  995. package/docs/pl/intlayer_with_tanstack.md +3 -3
  996. package/docs/pl/intlayer_with_vite+lit.md +3 -3
  997. package/docs/pl/intlayer_with_vite+preact.md +3 -3
  998. package/docs/pl/intlayer_with_vite+react.md +3 -3
  999. package/docs/pl/intlayer_with_vite+react_compiler.md +3 -3
  1000. package/docs/pl/intlayer_with_vite+solid.md +3 -3
  1001. package/docs/pl/intlayer_with_vite+svelte.md +4 -12
  1002. package/docs/pl/intlayer_with_vite+vanilla.md +3 -3
  1003. package/docs/pl/intlayer_with_vite+vue.md +3 -3
  1004. package/docs/pl/migration_from_i18next_to_intlayer.md +3 -3
  1005. package/docs/pl/migration_from_next-i18next_to_intlayer.md +3 -3
  1006. package/docs/pl/migration_from_next-intl_to_intlayer.md +3 -3
  1007. package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1008. package/docs/pl/migration_from_react-i18next_to_intlayer.md +3 -3
  1009. package/docs/pl/migration_from_vue-i18n_to_intlayer.md +3 -3
  1010. package/docs/pt/bundle_optimization.md +186 -186
  1011. package/docs/pt/intlayer_with_adonisjs.md +3 -3
  1012. package/docs/pt/intlayer_with_analog.md +3 -3
  1013. package/docs/pt/intlayer_with_angular_19.md +3 -3
  1014. package/docs/pt/intlayer_with_angular_21.md +3 -3
  1015. package/docs/pt/intlayer_with_astro.md +3 -3
  1016. package/docs/pt/intlayer_with_astro_lit.md +3 -3
  1017. package/docs/pt/intlayer_with_astro_preact.md +3 -3
  1018. package/docs/pt/intlayer_with_astro_react.md +3 -3
  1019. package/docs/pt/intlayer_with_astro_solid.md +3 -3
  1020. package/docs/pt/intlayer_with_astro_svelte.md +3 -3
  1021. package/docs/pt/intlayer_with_astro_vanilla.md +3 -3
  1022. package/docs/pt/intlayer_with_astro_vue.md +3 -3
  1023. package/docs/pt/intlayer_with_create_react_app.md +3 -3
  1024. package/docs/pt/intlayer_with_elysia.md +4 -4
  1025. package/docs/pt/intlayer_with_express.md +3 -3
  1026. package/docs/pt/intlayer_with_fastify.md +4 -4
  1027. package/docs/pt/intlayer_with_hono.md +3 -3
  1028. package/docs/pt/intlayer_with_lynx+react.md +3 -3
  1029. package/docs/pt/intlayer_with_nestjs.md +3 -3
  1030. package/docs/pt/intlayer_with_next-i18next.md +3 -3
  1031. package/docs/pt/intlayer_with_nextjs_14.md +3 -3
  1032. package/docs/pt/intlayer_with_nextjs_15.md +3 -3
  1033. package/docs/pt/intlayer_with_nextjs_16.md +3 -3
  1034. package/docs/pt/intlayer_with_nextjs_compiler.md +3 -3
  1035. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +3 -3
  1036. package/docs/pt/intlayer_with_nextjs_page_router.md +3 -3
  1037. package/docs/pt/intlayer_with_nuxt.md +3 -3
  1038. package/docs/pt/intlayer_with_react_native+expo.md +3 -3
  1039. package/docs/pt/intlayer_with_react_router_v7.md +3 -3
  1040. package/docs/pt/intlayer_with_solid_start.md +3 -3
  1041. package/docs/pt/intlayer_with_svelte_kit.md +3 -3
  1042. package/docs/pt/intlayer_with_tanstack+solid.md +3 -3
  1043. package/docs/pt/intlayer_with_tanstack.md +3 -3
  1044. package/docs/pt/intlayer_with_vite+lit.md +3 -3
  1045. package/docs/pt/intlayer_with_vite+preact.md +3 -3
  1046. package/docs/pt/intlayer_with_vite+react.md +3 -3
  1047. package/docs/pt/intlayer_with_vite+react_compiler.md +3 -3
  1048. package/docs/pt/intlayer_with_vite+solid.md +3 -3
  1049. package/docs/pt/intlayer_with_vite+svelte.md +4 -12
  1050. package/docs/pt/intlayer_with_vite+vanilla.md +3 -3
  1051. package/docs/pt/intlayer_with_vite+vue.md +3 -3
  1052. package/docs/pt/migration_from_i18next_to_intlayer.md +3 -3
  1053. package/docs/pt/migration_from_next-i18next_to_intlayer.md +3 -3
  1054. package/docs/pt/migration_from_next-intl_to_intlayer.md +3 -3
  1055. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1056. package/docs/pt/migration_from_react-i18next_to_intlayer.md +3 -3
  1057. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +3 -3
  1058. package/docs/ru/bundle_optimization.md +186 -186
  1059. package/docs/ru/intlayer_with_adonisjs.md +3 -3
  1060. package/docs/ru/intlayer_with_analog.md +3 -3
  1061. package/docs/ru/intlayer_with_angular_19.md +3 -3
  1062. package/docs/ru/intlayer_with_angular_21.md +3 -3
  1063. package/docs/ru/intlayer_with_astro.md +3 -3
  1064. package/docs/ru/intlayer_with_astro_lit.md +3 -3
  1065. package/docs/ru/intlayer_with_astro_preact.md +3 -3
  1066. package/docs/ru/intlayer_with_astro_react.md +3 -3
  1067. package/docs/ru/intlayer_with_astro_solid.md +3 -3
  1068. package/docs/ru/intlayer_with_astro_svelte.md +3 -3
  1069. package/docs/ru/intlayer_with_astro_vanilla.md +3 -3
  1070. package/docs/ru/intlayer_with_astro_vue.md +3 -3
  1071. package/docs/ru/intlayer_with_create_react_app.md +3 -3
  1072. package/docs/ru/intlayer_with_elysia.md +4 -4
  1073. package/docs/ru/intlayer_with_express.md +3 -3
  1074. package/docs/ru/intlayer_with_fastify.md +4 -4
  1075. package/docs/ru/intlayer_with_hono.md +3 -3
  1076. package/docs/ru/intlayer_with_lynx+react.md +3 -3
  1077. package/docs/ru/intlayer_with_nestjs.md +3 -3
  1078. package/docs/ru/intlayer_with_next-i18next.md +3 -3
  1079. package/docs/ru/intlayer_with_nextjs_14.md +3 -3
  1080. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  1081. package/docs/ru/intlayer_with_nextjs_16.md +3 -3
  1082. package/docs/ru/intlayer_with_nextjs_compiler.md +3 -3
  1083. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +3 -3
  1084. package/docs/ru/intlayer_with_nextjs_page_router.md +3 -3
  1085. package/docs/ru/intlayer_with_nuxt.md +3 -3
  1086. package/docs/ru/intlayer_with_react_native+expo.md +3 -3
  1087. package/docs/ru/intlayer_with_react_router_v7.md +3 -3
  1088. package/docs/ru/intlayer_with_solid_start.md +3 -3
  1089. package/docs/ru/intlayer_with_svelte_kit.md +3 -3
  1090. package/docs/ru/intlayer_with_tanstack+solid.md +3 -3
  1091. package/docs/ru/intlayer_with_tanstack.md +3 -3
  1092. package/docs/ru/intlayer_with_vite+lit.md +3 -3
  1093. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  1094. package/docs/ru/intlayer_with_vite+react.md +3 -3
  1095. package/docs/ru/intlayer_with_vite+react_compiler.md +3 -3
  1096. package/docs/ru/intlayer_with_vite+solid.md +3 -3
  1097. package/docs/ru/intlayer_with_vite+svelte.md +4 -12
  1098. package/docs/ru/intlayer_with_vite+vanilla.md +3 -3
  1099. package/docs/ru/intlayer_with_vite+vue.md +3 -3
  1100. package/docs/ru/migration_from_i18next_to_intlayer.md +3 -3
  1101. package/docs/ru/migration_from_next-i18next_to_intlayer.md +3 -3
  1102. package/docs/ru/migration_from_next-intl_to_intlayer.md +3 -3
  1103. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1104. package/docs/ru/migration_from_react-i18next_to_intlayer.md +3 -3
  1105. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +3 -3
  1106. package/docs/tr/bundle_optimization.md +186 -186
  1107. package/docs/tr/intlayer_with_adonisjs.md +3 -3
  1108. package/docs/tr/intlayer_with_analog.md +3 -3
  1109. package/docs/tr/intlayer_with_angular_19.md +3 -3
  1110. package/docs/tr/intlayer_with_angular_21.md +3 -3
  1111. package/docs/tr/intlayer_with_astro.md +3 -3
  1112. package/docs/tr/intlayer_with_astro_lit.md +3 -3
  1113. package/docs/tr/intlayer_with_astro_preact.md +3 -3
  1114. package/docs/tr/intlayer_with_astro_react.md +3 -3
  1115. package/docs/tr/intlayer_with_astro_solid.md +3 -3
  1116. package/docs/tr/intlayer_with_astro_svelte.md +3 -3
  1117. package/docs/tr/intlayer_with_astro_vanilla.md +3 -3
  1118. package/docs/tr/intlayer_with_astro_vue.md +3 -3
  1119. package/docs/tr/intlayer_with_create_react_app.md +3 -3
  1120. package/docs/tr/intlayer_with_elysia.md +4 -4
  1121. package/docs/tr/intlayer_with_express.md +3 -3
  1122. package/docs/tr/intlayer_with_fastify.md +4 -4
  1123. package/docs/tr/intlayer_with_hono.md +3 -3
  1124. package/docs/tr/intlayer_with_lynx+react.md +3 -3
  1125. package/docs/tr/intlayer_with_nestjs.md +3 -3
  1126. package/docs/tr/intlayer_with_next-i18next.md +3 -3
  1127. package/docs/tr/intlayer_with_nextjs_14.md +3 -3
  1128. package/docs/tr/intlayer_with_nextjs_15.md +3 -3
  1129. package/docs/tr/intlayer_with_nextjs_16.md +3 -3
  1130. package/docs/tr/intlayer_with_nextjs_compiler.md +3 -3
  1131. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +3 -3
  1132. package/docs/tr/intlayer_with_nextjs_page_router.md +3 -3
  1133. package/docs/tr/intlayer_with_nuxt.md +3 -3
  1134. package/docs/tr/intlayer_with_react_native+expo.md +3 -3
  1135. package/docs/tr/intlayer_with_react_router_v7.md +3 -3
  1136. package/docs/tr/intlayer_with_solid_start.md +3 -3
  1137. package/docs/tr/intlayer_with_svelte_kit.md +3 -3
  1138. package/docs/tr/intlayer_with_tanstack+solid.md +3 -3
  1139. package/docs/tr/intlayer_with_tanstack.md +3 -3
  1140. package/docs/tr/intlayer_with_vite+lit.md +3 -3
  1141. package/docs/tr/intlayer_with_vite+preact.md +3 -3
  1142. package/docs/tr/intlayer_with_vite+react.md +3 -3
  1143. package/docs/tr/intlayer_with_vite+react_compiler.md +3 -3
  1144. package/docs/tr/intlayer_with_vite+solid.md +3 -3
  1145. package/docs/tr/intlayer_with_vite+svelte.md +4 -12
  1146. package/docs/tr/intlayer_with_vite+vanilla.md +3 -3
  1147. package/docs/tr/intlayer_with_vite+vue.md +3 -3
  1148. package/docs/tr/migration_from_i18next_to_intlayer.md +3 -3
  1149. package/docs/tr/migration_from_next-i18next_to_intlayer.md +3 -3
  1150. package/docs/tr/migration_from_next-intl_to_intlayer.md +3 -3
  1151. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1152. package/docs/tr/migration_from_react-i18next_to_intlayer.md +3 -3
  1153. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +3 -3
  1154. package/docs/uk/bundle_optimization.md +186 -186
  1155. package/docs/uk/intlayer_with_adonisjs.md +3 -3
  1156. package/docs/uk/intlayer_with_analog.md +3 -3
  1157. package/docs/uk/intlayer_with_angular_19.md +3 -3
  1158. package/docs/uk/intlayer_with_angular_21.md +3 -3
  1159. package/docs/uk/intlayer_with_astro.md +3 -3
  1160. package/docs/uk/intlayer_with_astro_lit.md +3 -3
  1161. package/docs/uk/intlayer_with_astro_preact.md +3 -3
  1162. package/docs/uk/intlayer_with_astro_react.md +3 -3
  1163. package/docs/uk/intlayer_with_astro_solid.md +3 -3
  1164. package/docs/uk/intlayer_with_astro_svelte.md +3 -3
  1165. package/docs/uk/intlayer_with_astro_vanilla.md +3 -3
  1166. package/docs/uk/intlayer_with_astro_vue.md +3 -3
  1167. package/docs/uk/intlayer_with_create_react_app.md +3 -3
  1168. package/docs/uk/intlayer_with_elysia.md +4 -4
  1169. package/docs/uk/intlayer_with_express.md +3 -3
  1170. package/docs/uk/intlayer_with_fastify.md +4 -4
  1171. package/docs/uk/intlayer_with_hono.md +3 -3
  1172. package/docs/uk/intlayer_with_lynx+react.md +3 -3
  1173. package/docs/uk/intlayer_with_nestjs.md +3 -3
  1174. package/docs/uk/intlayer_with_next-i18next.md +3 -3
  1175. package/docs/uk/intlayer_with_nextjs_14.md +3 -3
  1176. package/docs/uk/intlayer_with_nextjs_15.md +3 -3
  1177. package/docs/uk/intlayer_with_nextjs_16.md +3 -3
  1178. package/docs/uk/intlayer_with_nextjs_compiler.md +3 -3
  1179. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +3 -3
  1180. package/docs/uk/intlayer_with_nextjs_page_router.md +3 -3
  1181. package/docs/uk/intlayer_with_nuxt.md +3 -3
  1182. package/docs/uk/intlayer_with_react_native+expo.md +3 -3
  1183. package/docs/uk/intlayer_with_react_router_v7.md +3 -3
  1184. package/docs/uk/intlayer_with_solid_start.md +3 -3
  1185. package/docs/uk/intlayer_with_svelte_kit.md +3 -3
  1186. package/docs/uk/intlayer_with_tanstack+solid.md +3 -3
  1187. package/docs/uk/intlayer_with_tanstack.md +3 -3
  1188. package/docs/uk/intlayer_with_vite+lit.md +3 -3
  1189. package/docs/uk/intlayer_with_vite+preact.md +3 -3
  1190. package/docs/uk/intlayer_with_vite+react.md +3 -3
  1191. package/docs/uk/intlayer_with_vite+react_compiler.md +3 -3
  1192. package/docs/uk/intlayer_with_vite+solid.md +3 -3
  1193. package/docs/uk/intlayer_with_vite+svelte.md +4 -12
  1194. package/docs/uk/intlayer_with_vite+vanilla.md +3 -3
  1195. package/docs/uk/intlayer_with_vite+vue.md +3 -3
  1196. package/docs/uk/migration_from_i18next_to_intlayer.md +3 -3
  1197. package/docs/uk/migration_from_next-i18next_to_intlayer.md +3 -3
  1198. package/docs/uk/migration_from_next-intl_to_intlayer.md +3 -3
  1199. package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1200. package/docs/uk/migration_from_react-i18next_to_intlayer.md +3 -3
  1201. package/docs/uk/migration_from_vue-i18n_to_intlayer.md +3 -3
  1202. package/docs/ur/bundle_optimization.md +186 -186
  1203. package/docs/ur/intlayer_with_angular_21.md +3 -3
  1204. package/docs/ur/intlayer_with_fastify.md +4 -4
  1205. package/docs/ur/intlayer_with_hono.md +3 -3
  1206. package/docs/ur/intlayer_with_vite+lit.md +3 -3
  1207. package/docs/ur/intlayer_with_vite+vanilla.md +3 -3
  1208. package/docs/vi/bundle_optimization.md +186 -186
  1209. package/docs/vi/intlayer_with_adonisjs.md +3 -3
  1210. package/docs/vi/intlayer_with_analog.md +3 -3
  1211. package/docs/vi/intlayer_with_angular_19.md +3 -3
  1212. package/docs/vi/intlayer_with_angular_21.md +3 -3
  1213. package/docs/vi/intlayer_with_astro.md +3 -3
  1214. package/docs/vi/intlayer_with_astro_lit.md +3 -3
  1215. package/docs/vi/intlayer_with_astro_preact.md +3 -3
  1216. package/docs/vi/intlayer_with_astro_react.md +3 -3
  1217. package/docs/vi/intlayer_with_astro_solid.md +3 -3
  1218. package/docs/vi/intlayer_with_astro_svelte.md +3 -3
  1219. package/docs/vi/intlayer_with_astro_vanilla.md +3 -3
  1220. package/docs/vi/intlayer_with_astro_vue.md +3 -3
  1221. package/docs/vi/intlayer_with_create_react_app.md +3 -3
  1222. package/docs/vi/intlayer_with_elysia.md +4 -4
  1223. package/docs/vi/intlayer_with_express.md +3 -3
  1224. package/docs/vi/intlayer_with_fastify.md +4 -4
  1225. package/docs/vi/intlayer_with_hono.md +3 -3
  1226. package/docs/vi/intlayer_with_lynx+react.md +3 -3
  1227. package/docs/vi/intlayer_with_nestjs.md +3 -3
  1228. package/docs/vi/intlayer_with_next-i18next.md +3 -3
  1229. package/docs/vi/intlayer_with_nextjs_14.md +3 -3
  1230. package/docs/vi/intlayer_with_nextjs_15.md +3 -3
  1231. package/docs/vi/intlayer_with_nextjs_16.md +3 -3
  1232. package/docs/vi/intlayer_with_nextjs_compiler.md +3 -3
  1233. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +3 -3
  1234. package/docs/vi/intlayer_with_nextjs_page_router.md +3 -3
  1235. package/docs/vi/intlayer_with_nuxt.md +3 -3
  1236. package/docs/vi/intlayer_with_react_native+expo.md +3 -3
  1237. package/docs/vi/intlayer_with_react_router_v7.md +3 -3
  1238. package/docs/vi/intlayer_with_solid_start.md +3 -3
  1239. package/docs/vi/intlayer_with_svelte_kit.md +3 -3
  1240. package/docs/vi/intlayer_with_tanstack+solid.md +3 -3
  1241. package/docs/vi/intlayer_with_tanstack.md +3 -3
  1242. package/docs/vi/intlayer_with_vite+lit.md +3 -3
  1243. package/docs/vi/intlayer_with_vite+preact.md +3 -3
  1244. package/docs/vi/intlayer_with_vite+react.md +3 -3
  1245. package/docs/vi/intlayer_with_vite+react_compiler.md +3 -3
  1246. package/docs/vi/intlayer_with_vite+solid.md +3 -3
  1247. package/docs/vi/intlayer_with_vite+svelte.md +4 -12
  1248. package/docs/vi/intlayer_with_vite+vanilla.md +3 -3
  1249. package/docs/vi/intlayer_with_vite+vue.md +3 -3
  1250. package/docs/vi/migration_from_i18next_to_intlayer.md +3 -3
  1251. package/docs/vi/migration_from_next-i18next_to_intlayer.md +3 -3
  1252. package/docs/vi/migration_from_next-intl_to_intlayer.md +3 -3
  1253. package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1254. package/docs/vi/migration_from_react-i18next_to_intlayer.md +3 -3
  1255. package/docs/vi/migration_from_vue-i18n_to_intlayer.md +3 -3
  1256. package/docs/zh/bundle_optimization.md +186 -186
  1257. package/docs/zh/intlayer_with_adonisjs.md +3 -3
  1258. package/docs/zh/intlayer_with_analog.md +3 -3
  1259. package/docs/zh/intlayer_with_angular_19.md +3 -3
  1260. package/docs/zh/intlayer_with_angular_21.md +3 -3
  1261. package/docs/zh/intlayer_with_astro.md +3 -3
  1262. package/docs/zh/intlayer_with_astro_lit.md +3 -3
  1263. package/docs/zh/intlayer_with_astro_preact.md +3 -3
  1264. package/docs/zh/intlayer_with_astro_react.md +3 -3
  1265. package/docs/zh/intlayer_with_astro_solid.md +3 -3
  1266. package/docs/zh/intlayer_with_astro_svelte.md +3 -3
  1267. package/docs/zh/intlayer_with_astro_vanilla.md +3 -3
  1268. package/docs/zh/intlayer_with_astro_vue.md +3 -3
  1269. package/docs/zh/intlayer_with_create_react_app.md +3 -3
  1270. package/docs/zh/intlayer_with_elysia.md +4 -4
  1271. package/docs/zh/intlayer_with_express.md +3 -3
  1272. package/docs/zh/intlayer_with_fastify.md +4 -4
  1273. package/docs/zh/intlayer_with_hono.md +3 -3
  1274. package/docs/zh/intlayer_with_lynx+react.md +3 -3
  1275. package/docs/zh/intlayer_with_nestjs.md +3 -3
  1276. package/docs/zh/intlayer_with_next-i18next.md +3 -3
  1277. package/docs/zh/intlayer_with_nextjs_14.md +3 -3
  1278. package/docs/zh/intlayer_with_nextjs_15.md +3 -3
  1279. package/docs/zh/intlayer_with_nextjs_16.md +3 -3
  1280. package/docs/zh/intlayer_with_nextjs_compiler.md +3 -3
  1281. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +3 -3
  1282. package/docs/zh/intlayer_with_nextjs_page_router.md +3 -3
  1283. package/docs/zh/intlayer_with_nuxt.md +3 -3
  1284. package/docs/zh/intlayer_with_react_native+expo.md +3 -3
  1285. package/docs/zh/intlayer_with_react_router_v7.md +3 -3
  1286. package/docs/zh/intlayer_with_solid_start.md +3 -3
  1287. package/docs/zh/intlayer_with_svelte_kit.md +3 -3
  1288. package/docs/zh/intlayer_with_tanstack+solid.md +3 -3
  1289. package/docs/zh/intlayer_with_tanstack.md +3 -3
  1290. package/docs/zh/intlayer_with_vite+lit.md +3 -3
  1291. package/docs/zh/intlayer_with_vite+preact.md +3 -3
  1292. package/docs/zh/intlayer_with_vite+react.md +3 -3
  1293. package/docs/zh/intlayer_with_vite+react_compiler.md +3 -3
  1294. package/docs/zh/intlayer_with_vite+solid.md +3 -3
  1295. package/docs/zh/intlayer_with_vite+svelte.md +4 -12
  1296. package/docs/zh/intlayer_with_vite+vanilla.md +3 -3
  1297. package/docs/zh/intlayer_with_vite+vue.md +3 -3
  1298. package/docs/zh/migration_from_i18next_to_intlayer.md +3 -3
  1299. package/docs/zh/migration_from_next-i18next_to_intlayer.md +3 -3
  1300. package/docs/zh/migration_from_next-intl_to_intlayer.md +3 -3
  1301. package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1302. package/docs/zh/migration_from_react-i18next_to_intlayer.md +3 -3
  1303. package/docs/zh/migration_from_vue-i18n_to_intlayer.md +3 -3
  1304. package/docs/zh-TW/bundle_optimization.md +186 -186
  1305. package/docs/zh-TW/intlayer_with_angular_21.md +3 -3
  1306. package/package.json +8 -8
  1307. package/src/generated/blog.entry.ts +329 -0
@@ -0,0 +1,216 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "Formatear fechas y números por idioma con Intl"
5
+ description: Probablemente no necesitas una librería de formateo. Cómo maneja Intl fechas, números, monedas y listas por idioma, el costo de caché y el bug de zona horaria en producción.
6
+ keywords:
7
+ - formatear fecha por idioma
8
+ - Intl.DateTimeFormat
9
+ - Intl.NumberFormat
10
+ - toLocaleDateString
11
+ - formato moneda locale
12
+ - formato tiempo relativo
13
+ slugs:
14
+ - blog
15
+ - date-time-number-formatting-locales
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Formatear fechas y números por idioma con Intl
20
+
21
+ Traducir cadenas de texto es la mitad visible de la internacionalización. La otra mitad, la que suele saturar los reportes de errores, es el formateo: un usuario en Alemania que ve `1,234.56` en vez de `1.234,56`, un usuario en Japón que ve `08/02/2026` y asume que es agosto, o una fecha que se renderiza distinto en el servidor y en el navegador, rompiendo la hidratación en React.
22
+
23
+ Nada de eso requiere dependencias externas. `Intl` ya está presente de forma nativa en cualquier entorno moderno.
24
+
25
+ ## Tabla de contenidos
26
+
27
+ <TOC/>
28
+
29
+ ## Comienza eliminando tu helper de fechas
30
+
31
+ Casi cualquier repositorio conserva una función `formatDate` escrita antes de contemplar la internacionalización. Suele forzar un orden rígido, un separador y, por lo general, nombres de meses en inglés.
32
+
33
+ ```ts
34
+ // Lo que deberías borrar.
35
+ const formatDate = (d: Date) =>
36
+ `${d.getMonth() + 1}/${d.getDate()}/${d.getFullYear()}`;
37
+ ```
38
+
39
+ `Intl.DateTimeFormat` la reemplaza y resuelve el formato de manera adecuada en cada idioma:
40
+
41
+ ```ts
42
+ new Intl.DateTimeFormat("de-DE", { dateStyle: "long" }).format(date);
43
+ // "2. August 2026"
44
+ new Intl.DateTimeFormat("ja-JP", { dateStyle: "long" }).format(date);
45
+ // "2026年8月2日"
46
+ ```
47
+
48
+ Lo mismo ocurre con los valores numéricos. `toFixed(2)` produce `1234.56` en todas partes, lo cual es incorrecto en casi toda Europa.
49
+
50
+ ## Qué cubre `Intl`
51
+
52
+ | API | Caso de uso |
53
+ | :------------------------ | :----------------------------------------------------------------- |
54
+ | `Intl.DateTimeFormat` | Fechas y horas, con ajustes predefinidos `dateStyle` / `timeStyle` |
55
+ | `Intl.NumberFormat` | Decimales, divisas, porcentajes, unidades, notación compacta |
56
+ | `Intl.RelativeTimeFormat` | "hace 3 días", "en 2 horas" |
57
+ | `Intl.ListFormat` | "a, b y c" frente a "a, b, and c" |
58
+ | `Intl.PluralRules` | Categoría de plural a la que pertenece un valor numérico |
59
+ | `Intl.Collator` | Ordenación alfabética correcta según cada lengua |
60
+
61
+ `Intl.Collator` es el gran olvidado. Ejecutar `array.sort()` sobre cadenas utiliza el orden de los puntos de código Unicode, de modo que los caracteres con tilde terminan ordenados tras la `z` y la `ö` sueca se sitúa en un lugar erróneo. Si ordenas listas que los usuarios van a leer, utiliza siempre un collator.
62
+
63
+ ```ts
64
+ ["zebra", "édouard", "apple"].sort(new Intl.Collator("es").compare);
65
+ // ["apple", "édouard", "zebra"]
66
+ ```
67
+
68
+ ## Prefiere preajustes antes que opciones construidas a mano
69
+
70
+ `dateStyle` y `timeStyle` dejan que el locale determine el orden lógico y los separadores pertinentes. Especificar `year`, `month` y `day` por separado otorga un control que rara vez conviene tener, ya que el orden correcto cambia por región y terminas sobreescribiendo los datos de CLDR con tus propias suposiciones.
71
+
72
+ ```ts
73
+ // El idioma determina la estructura.
74
+ new Intl.DateTimeFormat(locale, { dateStyle: "medium" }).format(d);
75
+
76
+ // Forzaste la estructura, y te equivocarás en otra región.
77
+ new Intl.DateTimeFormat(locale, {
78
+ year: "numeric",
79
+ month: "2-digit",
80
+ day: "2-digit",
81
+ }).format(d);
82
+ ```
83
+
84
+ Usa componentes explícitos únicamente cuando el diseño visual exija con exactitud un ancho fijo, como en una columna de tabla estrecha.
85
+
86
+ ## Crear formateadores es costoso
87
+
88
+ Este es un detalle de rendimiento clave. Construir un `Intl.NumberFormat` implica cargar datos de locale en memoria, y es una operación mucho más pesada que la subsiguiente llamada a `.format()`. Hacerlo dentro de un bucle de renderizado sobre mil filas genera un impacto medible.
89
+
90
+ ```ts
91
+ // Reconstruye el formateador en cada iteración.
92
+ rows.map((r) => new Intl.NumberFormat(locale).format(r.total));
93
+
94
+ // Construye una vez y reutiliza.
95
+ const nf = new Intl.NumberFormat(locale);
96
+ rows.map((r) => nf.format(r.total));
97
+ ```
98
+
99
+ `toLocaleDateString()` y `toLocaleString()` esconden exactamente el mismo problema: cada invocación genera un nuevo formateador. Son tolerables para un dato aislado, pero pésimos para una lista.
100
+
101
+ Guárdalos en caché mediante la combinación de idioma y opciones:
102
+
103
+ ```ts
104
+ const cache = new Map<string, Intl.NumberFormat>();
105
+
106
+ const getNumberFormat = (
107
+ locale: string,
108
+ options: Intl.NumberFormatOptions = {}
109
+ ) => {
110
+ const key = `${locale}:${JSON.stringify(options)}`;
111
+ let formatter = cache.get(key);
112
+ if (!formatter) {
113
+ formatter = new Intl.NumberFormat(locale, options);
114
+ cache.set(key, formatter);
115
+ }
116
+ return formatter;
117
+ };
118
+ ```
119
+
120
+ ## El bug de zona horaria que solo salta en producción
121
+
122
+ Este problema ha costado tardes enteras. El servidor genera una fecha durante el SSR, el navegador la hidrata en el cliente, y React lanza un error de hydration mismatch porque ambas partes generaron un texto diferente.
123
+
124
+ La raíz del problema radica en que `Intl.DateTimeFormat` recurre a la zona horaria del sistema operativo cuando no se especifica ninguna. Tu servidor en producción corre bajo UTC, mientras que tu ordenador local está en otra zona horaria. Como resultado, el fallo es invisible en local y solo estalla en producción.
125
+
126
+ ```ts
127
+ // Un servidor en UTC y un navegador en UTC+9 difieren. Error de hidratación.
128
+ new Intl.DateTimeFormat(locale, { dateStyle: "short" }).format(d);
129
+
130
+ // Ambos coinciden sin ambigüedades.
131
+ new Intl.DateTimeFormat(locale, { dateStyle: "short", timeZone: "UTC" }).format(
132
+ d
133
+ );
134
+ ```
135
+
136
+ Tres soluciones prácticas:
137
+
138
+ - **Fijar la zona horaria** en el servidor y pasarla explícitamente. Determinista, pero todo el mundo ve la hora en UTC.
139
+ - **Renderizar solo en el cliente**, manteniendo un placeholder estable durante el SSR. Preciso para el usuario, aunque añade un pequeño parpadeo.
140
+ - **Guardar la zona horaria del usuario** y pasarla en ambos entornos. La mejor experiencia, con algo más de trabajo de sincronización.
141
+
142
+ Elijas la que elijas, define siempre `timeZone` de forma explícita en cualquier fecha que se renderice tanto en el servidor como en el cliente. Una fecha sin zona horaria asignada es una fecha con dos valores contradictorios.
143
+
144
+ ## Una divisa necesita una divisa, no un idioma
145
+
146
+ El idioma y la divisa son independientes. `fr-FR` no implica euros de forma estricta: un usuario francés puede estar revisando una factura en dólares estadounidenses.
147
+
148
+ ```ts
149
+ new Intl.NumberFormat("fr-FR", { style: "currency", currency: "USD" }).format(
150
+ 1234.5
151
+ );
152
+ // "1 234,50 $US"
153
+ ```
154
+
155
+ El locale define los separadores, los grupos de dígitos y la posición del símbolo. La moneda proviene de tus datos de negocio. Deducir una a partir de la otra genera incidencias en facturación.
156
+
157
+ Considera también la opción `currencyDisplay`. En interfaces donde conviven varias monedas que usan el signo de dólar, `"code"` despeja la ambigüedad entre dólares estadounidenses, canadienses y australianos.
158
+
159
+ ## El tiempo relativo es más legible que una marca temporal absoluta
160
+
161
+ Para sucesos recientes, "hace 2 horas" supera a cualquier fecha estática, e `Intl.RelativeTimeFormat` se encarga de localizarlo adecuadamente.
162
+
163
+ ```ts
164
+ new Intl.RelativeTimeFormat("es", { numeric: "auto" }).format(-1, "day");
165
+ // "ayer"
166
+ ```
167
+
168
+ `numeric: "auto"` es la clave para obtener "ayer" en lugar de "hace 1 día". Sin esta opción obtendrás la forma numérica estricta en cada idioma, lo que resulta artificial.
169
+
170
+ ## Qué aporta Intlayer
171
+
172
+ Intlayer envuelve estas APIs en utilidades con caché integrada para que no tengas que mantener un mapa manual, aplicando el idioma activo de forma predeterminada sin requerir pasarlo en cada invocación.
173
+
174
+ ```ts
175
+ import {
176
+ number,
177
+ currency,
178
+ date,
179
+ relativeTime,
180
+ units,
181
+ compact,
182
+ list,
183
+ } from "intlayer";
184
+
185
+ number(1234.5); // "1.234,5"
186
+ currency(1234.5, { currency: "EUR" }); // "1.234,50 €"
187
+ date(new Date(), "short");
188
+ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "hace 2 horas"
189
+ units(5, { unit: "kilometer", unitDisplay: "long" }); // "5 kilómetros"
190
+ compact(1200); // "1,2 K"
191
+ list(["manzana", "plátano", "naranja"]); // "manzana, plátano y naranja"
192
+ ```
193
+
194
+ La función `date()` admite preajustes (`"short"`, `"long"`, `"dateOnly"`, `"timeOnly"`, `"full"`), de manera que los casos habituales no precisen de un objeto de opciones extenso. Existen equivalentes para React y Vue como hooks y composables que resuelven el idioma activo directamente desde el contexto de la aplicación.
195
+
196
+ Esto representa una capa de caché y resolución de locale por defecto construida sobre las APIs estándar de la plataforma. La lógica de formateo sigue siendo la de `Intl`. Puedes consultar las firmas completas en la [documentación de formateadores](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/formatters.md).
197
+
198
+ ## Errores habituales
199
+
200
+ - **`toLocaleDateString()` sin indicar locale.** Toma la configuración regional del host, que en un servidor depende de cómo se construyó el contenedor.
201
+ - **Formatear dentro de un bucle.** La instanciación del formateador concentra casi todo el costo. Construye una sola vez.
202
+ - **Omitir `timeZone` en fechas isomórficas.** Desencadena errores de hidratación imposibles de reproducir en tu máquina local.
203
+ - **Inferir la moneda a partir del idioma.** `fr-FR` no implica automáticamente euros.
204
+ - **Usar `sort()` directo sobre texto visible.** Emplea siempre `Intl.Collator`.
205
+ - **Escribir meses o días fijos en el código.** Ya están disponibles en CLDR para cada idioma.
206
+ - **Mantener `numeric: "always"` en tiempo relativo.** Provoca "hace 1 día" en lenguas que cuentan con una palabra específica como ayer.
207
+
208
+ ## Para profundizar
209
+
210
+ - [Formateadores y utilidades de idioma: `number`, `currency`, `date`, `relativeTime`, `list`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/formatters.md)
211
+ - [Referencia de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md)
212
+ - [Informes de benchmark entre frameworks](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/benchmark/index.md)
213
+ - [Adaptador de compatibilidad react-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compat/react-intl.md)
214
+ - [Formato de mensajes ICU: plurales, selección y esqueletos numéricos](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/icu_message_format.md)
215
+ - [Cómo probar traducciones, incluyendo formateadores y plurales](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/i18n_testing_strategies.md)
216
+ - [Qué abarca realmente la internacionalización](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/what_is_internationalization.md)
@@ -0,0 +1,202 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "Cómo detectar traducciones faltantes antes de que lo hagan tus usuarios"
5
+ description: Las traducciones faltantes fallan en silencio. Por qué el fallback las oculta, las cuatro capas de detección efectivas y cómo bloquear una compilación por una clave no traducida.
6
+ keywords:
7
+ - encontrar traducciones faltantes
8
+ - claves de traducción faltantes
9
+ - auditoría i18n
10
+ - cadenas no traducidas
11
+ - cobertura de traducción
12
+ - lint i18n
13
+ slugs:
14
+ - blog
15
+ - detecting-missing-translations
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Cómo detectar traducciones faltantes antes de que lo hagan tus usuarios
20
+
21
+ Una traducción faltante casi nunca genera una excepción explícita. Según tu configuración, le muestra el texto en inglés a un usuario en Japón, o imprime `checkout.summary.total` en plena pantalla en producción. Ambos problemas se despliegan, ambos pasan la revisión de código sin alertas, y ambos terminan siendo descubiertos por un cliente antes que por ti.
22
+
23
+ ## Tabla de contenidos
24
+
25
+ <TOC/>
26
+
27
+ ## Esto aplica sin importar la biblioteca que utilices
28
+
29
+ Nada de lo expuesto aquí depende de una tecnología en particular. Las capas de detección funcionan igual en i18next, react-i18next, next-intl, react-intl, vue-i18n, next-translate o Lingui, porque todas resuelven las claves y fallan bajo la misma lógica.
30
+
31
+ Las herramientas también son portables. Si tus mensajes están hoy en catálogos JSON, el [plugin Sync JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/plugins/sync-json.md) conecta Intlayer a esos archivos para que obtengas los comandos de auditoría, autocompletado y pruebas sin mover tu contenido ni alterar un solo import:
32
+
33
+ ```ts fileName="intlayer.config.ts"
34
+ import { syncJSON } from "@intlayer/sync-json-plugin";
35
+
36
+ const config = {
37
+ plugins: [
38
+ syncJSON({
39
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
40
+ format: "i18next", // o "icu" para next-intl / react-intl
41
+ }),
42
+ ],
43
+ };
44
+
45
+ export default config;
46
+ ```
47
+
48
+ Si prefieres mantener idéntica la API en tiempo de ejecución, los [adaptadores de compatibilidad](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compat/index.md) crean alias para `useTranslation`, `$t` y similares en el empaquetador. En cualquier caso, toma los comandos siguientes como una implementación concreta de la idea, no como una imposición.
49
+
50
+ ## Por qué son invisibles
51
+
52
+ Cada biblioteca de i18n resuelve una clave mediante la misma cadena: buscar en el locale activo, recurrir a un valor predeterminado por fallback y, si eso falla, devolver la clave literal. Este último paso es el verdadero problema. No hay error, no hay advertencia en producción y ningún test falla, porque nada en la canalización considera anormal una clave no traducida.
53
+
54
+ El fallback empeora las cosas en lugar de solucionarlas. Una página que se muestra silenciosamente en inglés luce impecable para un desarrollador que habla inglés y para cada verificación automatizada de tu CI. El error solo es perceptible para la persona que no comprende el resultado.
55
+
56
+ Así que la pregunta no es "cómo manejo las traducciones faltantes en tiempo de ejecución". Es "cómo hago que sea imposible hacer merge de una traducción faltante".
57
+
58
+ ## Los cuatro lugares donde puedes detectarlas
59
+
60
+ Cada capa detecta situaciones que las otras ignoran. Necesitas más de una.
61
+
62
+ | Capa | Detecta | Pasa por alto |
63
+ | :-------------- | :------------------------------------------- | :--------------------------------------------- |
64
+ | Tipos | Claves que no existen en absoluto | Clave existente pero sin traducir en `ja` |
65
+ | Linter | Cadenas fijas nunca enviadas a traducir | Claves omitidas de un catálogo |
66
+ | Auditoría | Cobertura de locales en cada clave declarada | Textos que nunca se prepararon para traducir |
67
+ | Tests de render | Claves que se resuelven pero se muestran mal | Todo lo no cubierto explícitamente por un test |
68
+
69
+ La brecha habitual en la mayoría de los equipos está en la tercera fila: saben que sus claves son válidas, pero nada comprueba que los dieciocho idiomas cuenten efectivamente con un valor.
70
+
71
+ ## Capa 1: haz que la clave sea un tipo, no un string
72
+
73
+ `t("checkout.summry.total")` es un simple error tipográfico que compila sin problemas. Si tus claves son cadenas planas, cada cambio de nombre es un riesgo en producción y cada eliminación deja una clave huérfana.
74
+
75
+ Las claves tipadas convierten ese error en un fallo de compilación. `react-i18next` lo soporta mediante declaration merging, `next-intl` lo infiere de la estructura de mensajes, Lingui deriva identificadores del texto de origen e Intlayer genera tipos a partir de los archivos de declaración. Todos cumplen su propósito; lo que cambia es la cantidad de código de configuración que debes escribir.
76
+
77
+ Esta capa es necesaria pero no suficiente. Los tipos describen la estructura del catálogo por defecto. No dicen nada sobre si el coreano tiene un valor asignado para esa clave.
78
+
79
+ ## Capa 2: inspecciona con linter las cadenas que nunca llegaron a ser claves
80
+
81
+ La traducción que no encuentras suele ser la que nunca se externalizó. Un texto hardcodeado dentro de un componente es invisible para cualquier auditoría de catálogo, porque para las herramientas simplemente no existe.
82
+
83
+ El plugin de ESLint de Intlayer cubre esto con `no-raw-text`, sumado a `no-unused-content` para el caso inverso: contenido declarado que ya no se utiliza en ninguna parte.
84
+
85
+ ```js fileName="eslint.config.mjs"
86
+ import intlayer from "@intlayer/eslint-plugin";
87
+
88
+ export default [
89
+ intlayer.configs.recommended,
90
+ {
91
+ rules: {
92
+ "@intlayer/no-raw-text": "error",
93
+ "@intlayer/no-unused-content": "warn",
94
+ },
95
+ },
96
+ ];
97
+ ```
98
+
99
+ `no-unused-content` evita que los catálogos crezcan descontroladamente. Las claves muertas no rompen la aplicación, pero engrosan innecesariamente las facturas de traducción. Revisa la lista de reglas en la [documentación del plugin ESLint](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/eslint.md).
100
+
101
+ ## Capa 3: audita la cobertura de locales
102
+
103
+ Esta capa responde directamente a la pregunta principal. Intlayer la incluye como comando de CLI:
104
+
105
+ ```bash packageManager="npm"
106
+ npx intlayer content test
107
+ ```
108
+
109
+ Lee los idiomas configurados y los diccionarios declarados, e informa con precisión qué claves faltan en qué idiomas y en qué archivo.
110
+
111
+ Un detalle crucial antes de incorporarlo en tus pipelines: **el CLI imprime un reporte pero devuelve código de salida cero.** Si lo agregas esperando que bloquee un build defectuoso, obtendrás una ejecución verde con un informe que nadie leerá. Para bloquear builds, utiliza la API programática que se detalla a continuación.
112
+
113
+ ## Capa 4: compruébalo mediante aserciones en la suite de pruebas
114
+
115
+ `listMissingTranslations()` te devuelve la misma auditoría estructurada como datos, ideal para crear una barrera de compilación.
116
+
117
+ ```ts fileName="i18n.test.ts"
118
+ /* @vitest-environment node */
119
+ import { listMissingTranslations } from "intlayer/cli";
120
+ import { describe, expect, it } from "vitest";
121
+
122
+ describe("translations", () => {
123
+ it("no tiene locales requeridos faltantes", async () => {
124
+ const result = await listMissingTranslations();
125
+
126
+ if (result.missingRequiredLocales.length > 0) {
127
+ console.log(result.missingTranslations);
128
+ }
129
+
130
+ expect(result.missingRequiredLocales).toHaveLength(0);
131
+ });
132
+ });
133
+ ```
134
+
135
+ Se devuelven tres campos y la distinción es importante:
136
+
137
+ - `missingTranslations`: por cada clave, qué idiomas faltan y en qué archivo se encuentran. Esto es lo que imprimes si la prueba falla.
138
+ - `missingLocales`: la unión de idiomas faltantes en todas las claves.
139
+ - `missingRequiredLocales`: limitado a los `requiredLocales` de tu configuración, o todos si no definiste la propiedad.
140
+
141
+ ## `requiredLocales` es el parámetro que hace viable el control
142
+
143
+ Soportar dieciocho idiomas no significa que todos deban estar completos al 100% para poder desplegar. Casi todos los equipos tienen un nivel crítico que bloquea el lanzamiento y otro nivel que se completa progresivamente.
144
+
145
+ ```ts fileName="intlayer.config.ts"
146
+ import { Locales, type IntlayerConfig } from "intlayer";
147
+
148
+ const config: IntlayerConfig = {
149
+ internationalization: {
150
+ locales: [
151
+ Locales.ENGLISH,
152
+ Locales.FRENCH,
153
+ Locales.JAPANESE,
154
+ Locales.POLISH,
155
+ ],
156
+ requiredLocales: [Locales.ENGLISH, Locales.FRENCH],
157
+ defaultLocale: Locales.ENGLISH,
158
+ },
159
+ };
160
+
161
+ export default config;
162
+ ```
163
+
164
+ Sin `requiredLocales`, cada idioma configurado se vuelve obligatorio y tu build permanecerá roto hasta que llegue la última traducción. Esa es la razón por la que los equipos terminan desactivando el chequeo por completo, lo cual es peor que no tenerlo.
165
+
166
+ ## Encontrar las omisiones que ya están en producción
167
+
168
+ Las capas anteriores evitan nuevas omisiones. Para una aplicación que ya está en vivo, dos estrategias resultan muy útiles.
169
+
170
+ **Pseudolocalización.** Ejecuta un idioma ficticio donde cada cadena se modifique, por ejemplo `[!!! Ĉĥéçķöũţ !!!]`. Cualquier texto que permanezca en inglés normal está hardcodeado. Descubre en diez minutos lo que una auditoría de catálogo no puede ver por diseño, ya que analiza la página renderizada y no los archivos de datos.
171
+
172
+ **Rastrea tu propio sitio.** Si manejas URLs localizadas, haz peticiones a páginas de muestra por cada idioma y busca en el HTML las cadenas de tu idioma base. Una página en `/ja/` que contiene "Add to cart" es una traducción faltante o un fallback no planificado.
173
+
174
+ ```bash
175
+ curl -s https://example.com/ja/checkout | grep -c "Add to cart"
176
+ ```
177
+
178
+ ## Llenar los vacíos
179
+
180
+ Cuando sabes qué falta, `intlayer fill` autocompleta las entradas vacías, y la opción `autoFill` genera archivos por idioma al declarar contenido. Consulta [autoFill](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/autoFill.md).
181
+
182
+ Conviene ser realistas: las traducciones generadas automáticamente convierten una falta _visible_ en una falta _invisible_. La clave ahora tiene contenido, la auditoría se pone en verde y nadie ha revisado el texto. Úsalo para desbloquear entregas y luego envía las salidas a revisión humana en todo texto crítico para la toma de decisiones. Es una ayuda inicial, no un reemplazo.
183
+
184
+ ## Errores comunes
185
+
186
+ - **Tratar el fallback como una funcionalidad de protección.** Es solo una estrategia de renderizado de emergencia, no una red de seguridad. Una página que calladamente sale en inglés es un bug que nadie reporta.
187
+ - **Confiar en el reporte de CLI para bloquear CI.** `intlayer content test` sale con código cero. Usa una aserción en tests.
188
+ - **Exigir todos los idiomas.** La comprobación se desactiva en cuanto frena una entrega por una traducción parcial.
189
+ - **Auditar catálogos pero nunca la pantalla renderizada.** Las cadenas hardcodeadas son invisibles en los catálogos por definición.
190
+ - **Comprobar únicamente el idioma por defecto.** Es el único que nunca va a faltar.
191
+ - **Dar por cerrado el ciclo solo con autocompletado de IA.** Auditoría en verde con textos jamás revisados.
192
+
193
+ ## Para profundizar
194
+
195
+ - [Probar el contenido: auditoría CLI, API programática y aserciones UI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/testing.md)
196
+ - [Reglas del plugin ESLint, incluyendo `no-raw-text` y `no-unused-content`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/eslint.md)
197
+ - [autoFill: generación de archivos de declaración por locale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/autoFill.md)
198
+ - [Referencia de configuración: `locales`, `requiredLocales`, `defaultLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md)
199
+ - [Informes de benchmark entre frameworks](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/benchmark/index.md)
200
+ - [Adaptador de compatibilidad i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compat/i18next.md)
201
+ - [Qué abarca realmente la internacionalización](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/what_is_internationalization.md)
202
+ - [i18n por componente vs centralizada](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/per-component_vs_centralized_i18n.md)
@@ -0,0 +1,247 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "Automatizar traducciones en CI/CD sin enviar textos defectuosos"
5
+ description: Tres puntos clave para automatizar i18n, pre-push, pull request y runtime. Cómo bloquear una compilación por cobertura, autocompletar de forma segura y evitar el bucle infinito de commits.
6
+ keywords:
7
+ - automatizar traducciones ci
8
+ - i18n ci cd
9
+ - github actions traducciones
10
+ - husky pre-push
11
+ - localización continua
12
+ - pipeline de traducción
13
+ slugs:
14
+ - blog
15
+ - i18n-in-ci-cd-pipelines
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Automatizar traducciones en CI/CD sin enviar textos defectuosos
20
+
21
+ La traducción manual no sobrevive al ritmo ágil de despliegues. Alguien añade una cadena el viernes, la exportación se retrasa al siguiente sprint, y para entonces tres idiomas más están desactualizados. Automatizarlo es sencillo. Automatizarlo sin publicar silenciosamente contenido generado por máquinas a los usuarios es la parte que requiere verdadera atención.
22
+
23
+ ## Tabla de contenidos
24
+
25
+ <TOC/>
26
+
27
+ ## No necesitas migrar para automatizar
28
+
29
+ Los esquemas de pipeline descritos a continuación son independientes de la biblioteca utilizada, al igual que las herramientas. Si tus textos son catálogos JSON para i18next, next-intl, react-intl, vue-i18n o next-translate, el [plugin Sync JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/plugins/sync-json.md) lee y escribe esos archivos directamente en su lugar:
30
+
31
+ ```ts fileName="intlayer.config.ts"
32
+ import { syncJSON } from "@intlayer/sync-json-plugin";
33
+
34
+ const config = {
35
+ plugins: [
36
+ syncJSON({
37
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
38
+ format: "i18next", // o "icu" para next-intl / react-intl
39
+ }),
40
+ ],
41
+ };
42
+
43
+ export default config;
44
+ ```
45
+
46
+ Tu aplicación sigue importando lo mismo de siempre. Los procesos de CI completan y protegen tus catálogos existentes, y el diff que el revisor ve es una simple actualización en `locales/fr/checkout.json`, no una migración de arquitectura. Existe un [plugin Sync PO](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/plugins/sync-po.md) para flujos gettext, y [adaptadores de compatibilidad](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compat/index.md) para mantener la API en tiempo de ejecución sin cambios.
47
+
48
+ ## Separa el control de bloqueo (gate) del llenado (fill)
49
+
50
+ Dos tareas distintas se confunden continuamente.
51
+
52
+ Un **gate** es una verificación que falla. Establece que esta compilación no debe desplegarse porque faltan idiomas requeridos. No escribe ningún archivo.
53
+
54
+ Un **fill** es una mutación. Genera las traducciones faltantes y realiza un commit con ellas. Nunca hace fallar una compilación.
55
+
56
+ Ejecutar únicamente un fill implica que nada se bloquea jamás y las traducciones generadas por máquina llegan a producción sin revisión. Ejecutar únicamente un gate hace que el build se ponga rojo y un humano tenga que intervenir cada vez. La mayoría de los equipos necesitan ambos vinculados a disparadores diferentes: fill en un pull request, gate al fusionar en la rama de lanzamiento.
57
+
58
+ ## Dónde ubicar la automatización
59
+
60
+ | Etapa | Disparador | Ideal para | Costo |
61
+ | :------------ | :--------- | :---------------------------------------- | :------------------------------------------- |
62
+ | Hook pre-push | Git local | Feedback rápido, cero minutos de CI | Se ejecuta en la máquina y clave API del dev |
63
+ | Pull request | Job de CI | Revisión previa al merge, un lugar seguro | Minutos de CI más llamadas al modelo por PR |
64
+ | Rama release | Job de CI | Bloqueo estricto por cobertura | Económico, sin llamadas a modelos |
65
+ | Runtime | CMS | Cambios de contenido sin recompilar | Dependencia de servicio alojado |
66
+
67
+ ## Pre-push: el ciclo más rápido
68
+
69
+ Husky ejecuta el llenado antes de que el código salga de la máquina, permitiendo que las traducciones lleguen en el mismo push que introdujo las nuevas cadenas.
70
+
71
+ ```bash fileName=".husky/pre-push"
72
+ npx intlayer build
73
+ npx intlayer fill --unpushed --mode complete
74
+ ```
75
+
76
+ `--unpushed` limita el trabajo al contenido que aún no ha sido enviado, evitando esperas innecesarias en cada push. `--mode complete` rellena únicamente lo que falta sin reescribir entradas que ya tienen valor, garantizando que una traducción revisada nunca sea reemplazada en silencio.
77
+
78
+ En un monorepo, delimita cada aplicación:
79
+
80
+ ```bash fileName=".husky/pre-push"
81
+ npx intlayer build --base-dir ./app1
82
+ npx intlayer fill --base-dir ./app1 --unpushed --mode complete
83
+ npx intlayer build --base-dir ./app2
84
+ npx intlayer fill --base-dir ./app2 --unpushed --mode complete
85
+ ```
86
+
87
+ La desventaja es real: cada desarrollador requiere una clave de API, y el costo recae sobre quien envía el push. Por eso la mayoría de los equipos trasladan esto a la CI cuando crecen.
88
+
89
+ ## Pull request: generar donde se realiza la revisión
90
+
91
+ El mismo trabajo en GitHub Actions, enfocado en el diff:
92
+
93
+ ```yaml fileName=".github/workflows/intlayer-translate.yml"
94
+ name: Intlayer Auto-Fill
95
+ on:
96
+ pull_request:
97
+ branches: ["main"]
98
+
99
+ permissions:
100
+ contents: write
101
+ pull-requests: write
102
+
103
+ concurrency:
104
+ group: "autofill-${{ github.ref }}"
105
+ cancel-in-progress: true
106
+
107
+ jobs:
108
+ autofill:
109
+ runs-on: ubuntu-latest
110
+ env:
111
+ AI_PROVIDER: openai
112
+ AI_MODEL: gpt-5-mini
113
+ AI_API_KEY: ${{ secrets.AI_API_KEY }}
114
+ steps:
115
+ - uses: actions/checkout@v4
116
+ with:
117
+ persist-credentials: true
118
+ fetch-depth: 0
119
+ - uses: actions/setup-node@v4
120
+ with:
121
+ node-version: 20
122
+ - run: npm install
123
+ - run: npx intlayer build
124
+ - run: npx intlayer fill --git-diff --mode complete --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY
125
+ - name: Commit
126
+ run: |
127
+ if [ -n "$(git status --porcelain)" ]; then
128
+ git config --local user.email "action@github.com"
129
+ git config --local user.name "GitHub Action"
130
+ git add .
131
+ git commit -m "chore: auto-fill missing translations [skip ci]"
132
+ git push origin HEAD:${{ github.head_ref }}
133
+ fi
134
+ ```
135
+
136
+ Cuatro detalles son fundamentales aquí:
137
+
138
+ - **`fetch-depth: 0`** es obligatorio para que funcione `--git-diff`. Un clon superficial no tiene una base contra la cual calcular el diff, por lo que el proceso no genera nada silenciosamente.
139
+ - **`[skip ci]` en el mensaje de commit** evita que el flujo de trabajo se reactive a sí mismo en bucle infinito. Sin él, el commit inicia una ejecución que vuelve a hacer commit, agotando el presupuesto de CI en una noche.
140
+ - **`concurrency` con `cancel-in-progress`** impide que dos pushes concurrentes compitan intentando escribir los mismos archivos a la vez.
141
+ - **`--git-diff`** limita el autocompletado a lo modificado en el PR. Si lo omites, retraduces todo el catálogo en cada ejecución.
142
+
143
+ Las traducciones se incorporan como un commit en la rama del PR, lo que significa que el revisor las ve en el diff. Ese es el beneficio principal de hacerlo aquí en lugar de después del merge.
144
+
145
+ ## Rama de release: el control de bloqueo (gate)
146
+
147
+ El gate no requiere acceso a modelos y debe ser sumamente rápido.
148
+
149
+ ```yaml fileName=".github/workflows/ci.yml"
150
+ - run: npm run test:i18n
151
+ ```
152
+
153
+ Respaldado por una prueba que realiza aserciones sobre la cobertura en lugar del simple reporte de la terminal:
154
+
155
+ ```ts fileName="i18n.test.ts"
156
+ import { listMissingTranslations } from "intlayer/cli";
157
+
158
+ test("no tiene locales requeridos faltantes", async () => {
159
+ const result = await listMissingTranslations();
160
+ if (result.missingRequiredLocales.length > 0) {
161
+ console.log(result.missingTranslations);
162
+ }
163
+ expect(result.missingRequiredLocales).toHaveLength(0);
164
+ });
165
+ ```
166
+
167
+ `npx intlayer content test` imprime un informe pero devuelve código de salida cero, por lo que solo informa sin bloquear. Úsalo en local; usa la aserción en CI. Más detalles en [detectar traducciones faltantes](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/detecting_missing_translations.md).
168
+
169
+ ## `requiredLocales` hace viable el gate
170
+
171
+ Un gate que exija dieciocho idiomas completos bloquea cada despliegue hasta que el idioma más rezagado esté listo, terminando por ser desactivado en menos de un mes.
172
+
173
+ ```ts fileName="intlayer.config.ts"
174
+ import { Locales, type IntlayerConfig } from "intlayer";
175
+
176
+ const config: IntlayerConfig = {
177
+ internationalization: {
178
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
179
+ requiredLocales: [Locales.ENGLISH],
180
+ defaultLocale: Locales.ENGLISH,
181
+ },
182
+ };
183
+
184
+ export default config;
185
+ ```
186
+
187
+ Declara los locales que soportas y exige como obligatorios solo aquellos que deben bloquear un lanzamiento. El resto se completa de forma asíncrona sin frenar tus entregas.
188
+
189
+ ## Desacoplar las traducciones del repositorio
190
+
191
+ El otro enfoque consiste en declarar un idioma base en código y gestionar el resto de forma remota a través del CMS con Live Sync. Las modificaciones de contenido ya no requieren recompilación, separando el ritmo editorial del ciclo de despliegue técnico.
192
+
193
+ ```ts fileName="intlayer.config.ts"
194
+ const config: IntlayerConfig = {
195
+ internationalization: {
196
+ locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],
197
+ requiredLocales: [Locales.ENGLISH],
198
+ defaultLocale: Locales.ENGLISH,
199
+ },
200
+ editor: {
201
+ clientId: process.env.INTLAYER_CLIENT_ID,
202
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
203
+ liveSync: true,
204
+ },
205
+ };
206
+
207
+ export default config;
208
+ ```
209
+
210
+ Esto se adapta a equipos donde personas no técnicas gestionan los textos. Es un intercambio: ganas autonomía editorial y pierdes la propiedad de que un checkout de git describa con exactitud todo lo que la app renderiza. Detalles en la [documentación del CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_CMS.md).
211
+
212
+ Ten en cuenta que `clientSecret` es una credencial sensible de servidor. Pertenece a los secretos de CI y al entorno de tu servidor, nunca a nada que llegue al cliente.
213
+
214
+ ## La limitación honesta
215
+
216
+ Todo lo anterior automatiza la _cobertura_, no la _calidad_. Un autocompletado por máquina convierte una ausencia visible en una invisible: la auditoría se vuelve verde porque la clave ya tiene un valor, pero nadie la ha leído.
217
+
218
+ Esto es aceptable para herramientas internas, notas de versiones o locales en fase beta. No es aceptable para páginas de precios, avisos legales, mensajes de error de pago o cualquier texto que el usuario lea antes de tomar una decisión. En esos casos, canaliza el contenido mediante revisión humana y usa `--mode complete` para no sobrescribir cadenas ya revisadas.
219
+
220
+ Proporciona contexto al modelo para que la salida sea consistente:
221
+
222
+ ```ts
223
+ ai: {
224
+ applicationContext: "Aplicación de facturación B2B. Tono formal. Nunca traducir el nombre del producto.",
225
+ }
226
+ ```
227
+
228
+ ## Errores comunes
229
+
230
+ - **Omitir `[skip ci]` en el auto-commit.** El flujo se reactiva en un bucle sin fin.
231
+ - **Clonado superficial con `--git-diff`.** No hay base para calcular diferencias, no se llena nada y no se genera aviso.
232
+ - **Llenar todo el catálogo en cada ejecución.** Limita el alcance con `--git-diff` o `--unpushed` para controlar costos.
233
+ - **Usar el reporte de CLI como gate.** Devuelve código de salida 0.
234
+ - **Exigir todos los locales como requeridos.** El control se desactiva en el primer lanzamiento bloqueado.
235
+ - **Un job de fill sin ningún gate.** Nada falla nunca, y textos no revisados van a producción.
236
+ - **Claves de API de modelos en el repositorio.** Deben estar en secretos de CI, al igual que `clientSecret`.
237
+
238
+ ## Para profundizar
239
+
240
+ - [CI/CD: autogeneración de traducciones con Husky, GitHub Actions y el CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/CI_CD.md)
241
+ - [Probar el contenido y bloquear compilaciones por cobertura](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/testing.md)
242
+ - [autoFill: generación de archivos de declaración por locale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/autoFill.md)
243
+ - [Referencia de configuración: `locales`, `requiredLocales`, `editor`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md)
244
+ - [Informes de benchmark entre frameworks](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/benchmark/index.md)
245
+ - [Adaptador de compatibilidad i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compat/i18next.md)
246
+ - [Cómo detectar traducciones faltantes](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/detecting_missing_translations.md)
247
+ - [Cómo probar traducciones sin pruebas frágiles](https://github.com/aymericzip/intlayer/blob/main/docs/blog/es/i18n_testing_strategies.md)