@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: "Định dạng ngày tháng và số theo từng ngôn ngữ bằng Intl"
5
+ description: Bạn nhiều khả năng không cần đến thư viện định dạng bên ngoài. Cách Intl xử lý ngày tháng, số, tiền tệ và danh sách theo locale, chi phí bộ nhớ đệm và lỗi múi giờ trên production.
6
+ keywords:
7
+ - định dạng ngày theo locale
8
+ - Intl.DateTimeFormat
9
+ - Intl.NumberFormat
10
+ - toLocaleDateString
11
+ - định dạng tiền tệ locale
12
+ - định dạng thời gian tương đối
13
+ slugs:
14
+ - blog
15
+ - date-time-number-formatting-locales
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Định dạng ngày tháng và số theo từng ngôn ngữ bằng Intl
20
+
21
+ Dịch văn bản chỉ là một nửa nhìn thấy được của quốc tế hóa (i18n). Nửa còn lại, nơi phát sinh vô số báo cáo lỗi, chính là định dạng: một người dùng ở Đức nhìn thấy `1,234.56` thay vì `1.234,56`, một người dùng ở Nhật Bản thấy `08/02/2026` và hiểu nhầm là tháng Tám, hay một ngày tháng hiển thị khác nhau giữa server và client khiến trang web bị sập do lỗi hydration mismatch trong React.
22
+
23
+ Bạn không cần cài thêm bất kỳ thư viện nào để giải quyết việc này. API `Intl` tiêu chuẩn đã được tích hợp sẵn trong mọi môi trường chạy JavaScript hiện đại.
24
+
25
+ ## Mục lục
26
+
27
+ <TOC/>
28
+
29
+ ## Bắt đầu bằng việc xóa các hàm trợ giúp xử lý ngày tự viết
30
+
31
+ Gần như mọi dự án đều tồn tại một hàm `formatDate` được viết từ trước khi đội ngũ nghĩ tới việc hỗ trợ đa ngôn ngữ. Nó cố định một thứ tự hiển thị, một dấu phân cách và hầu như luôn dùng tên tháng bằng tiếng Anh.
32
+
33
+ ```ts
34
+ // Đoạn mã bạn nên xóa bỏ:
35
+ const formatDate = (d: Date) =>
36
+ `${d.getMonth() + 1}/${d.getDate()}/${d.getFullYear()}`;
37
+ ```
38
+
39
+ `Intl.DateTimeFormat` thay thế hoàn toàn hàm này và xử lý chuẩn xác cho mọi ngôn ngữ:
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
+ Điều tương tự cũng áp dụng cho các giá trị số. Việc gọi `toFixed(2)` tạo ra `1234.56` ở mọi nơi, điều này không đúng quy chuẩn tại hầu hết các quốc gia châu Âu.
49
+
50
+ ## Những gì `Intl` bao hàm
51
+
52
+ | API | Trường hợp sử dụng |
53
+ | :------------------------ | :-------------------------------------------------------- |
54
+ | `Intl.DateTimeFormat` | Ngày và giờ, hỗ trợ các preset `dateStyle` / `timeStyle` |
55
+ | `Intl.NumberFormat` | Số thập phân, tiền tệ, phần trăm, đơn vị, ký hiệu thu gọn |
56
+ | `Intl.RelativeTimeFormat` | "3 ngày trước", "trong 2 giờ nữa" |
57
+ | `Intl.ListFormat` | "a, b và c" theo ngữ pháp từng ngôn ngữ |
58
+ | `Intl.PluralRules` | Xác định dạng số nhiều tương ứng với giá trị số |
59
+ | `Intl.Collator` | Sắp xếp chuỗi ký tự chuẩn xác theo quy tắc ngôn ngữ |
60
+
61
+ `Intl.Collator` là công cụ thường xuyên bị bỏ quên nhất. Lệnh `array.sort()` mặc định trên chuỗi ký tự so sánh theo mã Unicode, khiến các ký tự có dấu thanh bị đẩy xuống sau chữ `z` và chữ `ö` trong tiếng Thụy Điển nằm sai chỗ. Nếu bạn cần sắp xếp các danh sách hiển thị cho người dùng, hãy luôn dùng collator.
62
+
63
+ ```ts
64
+ ["zebra", "édouard", "apple"].sort(new Intl.Collator("vi").compare);
65
+ // ["apple", "édouard", "zebra"]
66
+ ```
67
+
68
+ ## Ưu tiên dùng các preset hơn là tự cấu hình thủ công
69
+
70
+ `dateStyle` và `timeStyle` để cho locale tự quyết định thứ tự hợp lý và dấu phân cách phù hợp. Việc tự cấu hình từng trường `year`, `month`, `day` mang lại quyền kiểm soát không mong muốn, bởi vì quy ước khác nhau theo từng quốc gia và bạn sẽ vô tình ghi đè dữ liệu chuẩn của CLDR bằng phỏng đoán chủ quan.
71
+
72
+ ```ts
73
+ // Locale tự quyết định cấu trúc chuẩn:
74
+ new Intl.DateTimeFormat(locale, { dateStyle: "medium" }).format(d);
75
+
76
+ // Tự gượng ép cấu trúc sẽ gây sai lệch ở các quốc gia khác:
77
+ new Intl.DateTimeFormat(locale, {
78
+ year: "numeric",
79
+ month: "2-digit",
80
+ day: "2-digit",
81
+ }).format(d);
82
+ ```
83
+
84
+ Chỉ định rõ từng thành phần chỉ khi giao diện thực sự bắt buộc chiều rộng cố định, ví dụ như trong một cột bảng hẹp.
85
+
86
+ ## Khởi tạo đối tượng định dạng (formatter) tiêu tốn nhiều tài nguyên
87
+
88
+ Đây là chi tiết ảnh hưởng trực tiếp đến hiệu năng. Việc khởi tạo một đối tượng `Intl.NumberFormat` đòi hỏi tải dữ liệu locale tương đối lớn vào bộ nhớ, và thao tác này nặng hơn rất nhiều so với lời gọi hàm `.format()` diễn ra sau đó. Nếu khởi tạo bên trong một vòng lặp render hàng nghìn dòng dữ liệu, ứng dụng sẽ bị khựng rõ rệt.
89
+
90
+ ```ts
91
+ // Tạo lại formatter ở mỗi dòng (chậm):
92
+ rows.map((r) => new Intl.NumberFormat(locale).format(r.total));
93
+
94
+ // Tạo một lần rồi tái sử dụng (nhanh):
95
+ const nf = new Intl.NumberFormat(locale);
96
+ rows.map((r) => nf.format(r.total));
97
+ ```
98
+
99
+ Các hàm `toLocaleDateString()` và `toLocaleString()` cũng ẩn chứa đúng vấn đề này: mỗi lần gọi là một lần khởi tạo formatter mới. Chúng chấp nhận được cho một giá trị đơn lẻ, nhưng hoàn toàn sai lầm khi áp dụng cho danh sách.
100
+
101
+ Hãy lưu cache theo sự kết hợp giữa locale và tập tùy chọn:
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
+ ## Lỗi múi giờ chỉ phát tác trên production
121
+
122
+ Đây là lỗi từng làm mất hàng buổi chiều của nhiều lập trình viên. Server tạo chuỗi ngày tháng khi SSR, trình duyệt thực hiện hydration ở client, và React báo lỗi hydration mismatch khiến ứng dụng ngưng trệ vì hai bên sinh ra hai đoạn text khác nhau.
123
+
124
+ Nguyên nhân là `Intl.DateTimeFormat` sẽ lấy múi giờ mặc định của hệ điều hành nếu bạn không truyền vào giá trị cụ thể. Server production chạy ở múi giờ UTC, trong khi máy cá nhân của lập trình viên lại ở múi giờ địa phương khác. Do đó lỗi hoàn toàn tàng hình ở môi trường local và chỉ nổ ra khi lên production.
125
+
126
+ ```ts
127
+ // Server (UTC) và trình duyệt client lệch múi giờ, gây lỗi hydration:
128
+ new Intl.DateTimeFormat(locale, { dateStyle: "short" }).format(d);
129
+
130
+ // Cả hai bên thống nhất tuyệt đối:
131
+ new Intl.DateTimeFormat(locale, { dateStyle: "short", timeZone: "UTC" }).format(
132
+ d
133
+ );
134
+ ```
135
+
136
+ Ba giải pháp thực tế:
137
+
138
+ - **Khóa cố định múi giờ** trên server và truyền xuống rõ ràng. Nhất quán và an toàn, nhưng người dùng nhìn thấy giờ UTC.
139
+ - **Chỉ render ở client**, hiển thị một khung placeholder ổn định trong lượt chạy SSR. Chính xác cho từng người dùng, đánh đổi một nháy giật nhẹ giao diện.
140
+ - **Lưu múi giờ của người dùng** và truyền vào ở cả server lẫn client. Trải nghiệm tối ưu nhất với một chút công sức thiết lập.
141
+
142
+ Dù chọn cách nào, hãy luôn truyền thuộc tính `timeZone` một cách tường minh cho bất kỳ ngày tháng nào được render ở cả hai phía server và client. Một ngày tháng không gắn múi giờ là một ngày tháng mang hai giá trị đối nghịch nhau.
143
+
144
+ ## Tiền tệ cần mã tiền tệ, không phải locale
145
+
146
+ Locale và tiền tệ là hai khái niệm độc lập. `fr-FR` không đồng nghĩa với euro: một khách hàng ở Pháp hoàn toàn có thể đang xem hóa đơn bằng USD.
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
+ Locale quy định dấu phân cách, cách gom nhóm số và vị trí ký hiệu. Loại tiền tệ phải được cung cấp từ dữ liệu giao dịch. Tự suy diễn tiền tệ từ locale là mầm mống dẫn đến sai sót kế toán.
156
+
157
+ Đồng thời lưu ý thuộc tính `currencyDisplay`. Trong giao diện có nhiều loại tiền cùng mang ký hiệu đô la ($), tùy chọn `"code"` sẽ xóa bỏ hoàn toàn sự mập mờ giữa đô la Mỹ, Canada hay Úc.
158
+
159
+ ## Thời gian tương đối dễ đọc hơn thời gian tuyệt đối
160
+
161
+ Đối với những sự kiện mới diễn ra, "2 giờ trước" trực quan hơn nhiều so với một mốc thời gian cứng nhắc, và `Intl.RelativeTimeFormat` giải quyết việc bản địa hóa một cách tự nhiên.
162
+
163
+ ```ts
164
+ new Intl.RelativeTimeFormat("vi", { numeric: "auto" }).format(-1, "day");
165
+ // "hôm qua"
166
+ ```
167
+
168
+ Tùy chọn `numeric: "auto"` tạo ra từ "hôm qua" thay vì cụm từ số khô khan "1 ngày trước".
169
+
170
+ ## Những gì Intlayer bổ sung
171
+
172
+ Intlayer đóng gói các API này thành các hàm trợ giúp có sẵn cơ chế cache, giúp bạn không cần tự quản lý Map thủ công, đồng thời tự động áp dụng ngôn ngữ đang hoạt động thay vì bắt buộc truyền vào ở mọi nơi.
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" }); // "2 giờ trước"
189
+ units(5, { unit: "kilometer", unitDisplay: "long" }); // "5 kilômét"
190
+ compact(1200); // "1,2 N"
191
+ list(["táo", "chuối", "cam"]); // "táo, chuối và cam"
192
+ ```
193
+
194
+ Hàm `date()` cũng hỗ trợ các preset (`"short"`, `"long"`, `"dateOnly"`, `"timeOnly"`, `"full"`). Đối với React và Vue, các hook và composable tương ứng sẽ tự động giải quyết ngôn ngữ đang kích hoạt từ context.
195
+
196
+ Đây là một tầng cache và xử lý ngôn ngữ mặc định trên nền tảng API chuẩn. Hành vi định dạng cốt lõi vẫn hoàn toàn dựa trên `Intl`. Xem đầy đủ chữ ký hàm tại [tài liệu formatters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/formatters.md).
197
+
198
+ ## Các sai lầm thường gặp
199
+
200
+ - **Gọi `toLocaleDateString()` mà không chỉ định locale.** Dùng locale của môi trường máy chủ vốn phụ thuộc cấu hình container.
201
+ - **Định dạng trong vòng lặp mà không có cache.** Quá trình khởi tạo formatter chiếm phần lớn thời gian CPU.
202
+ - **Bỏ quên `timeZone` trên các ngày tháng render đồng hình.** Gây lỗi hydration không thể tái hiện ở môi trường local.
203
+ - **Suy diễn tiền tệ từ mã ngôn ngữ.** `fr-FR` không đảm bảo giao dịch tính bằng euro.
204
+ - **Dùng `sort()` thông thường cho văn bản giao diện.** Luôn dùng `Intl.Collator`.
205
+ - **Hardcode tên tháng hoặc thứ trong tuần.** Dữ liệu đã có sẵn trong CLDR cho mọi thứ tiếng.
206
+ - **Giữ nguyên `numeric: "always"` trong thời gian tương đối.** Tạo ra "1 ngày trước" thay vì "hôm qua".
207
+
208
+ ## Tìm hiểu thêm
209
+
210
+ - [Formatters và các tiện ích ngôn ngữ: `number`, `currency`, `date`, `relativeTime`, `list`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/formatters.md)
211
+ - [Tài liệu tham khảo cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md)
212
+ - [Báo cáo benchmark so sánh các framework](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/benchmark/index.md)
213
+ - [Adapter tương thích react-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/react-intl.md)
214
+ - [Định dạng tin nhắn ICU: số nhiều, lựa chọn và skeleton số](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/icu_message_format.md)
215
+ - [Cách kiểm thử bản dịch, bao gồm kiểm tra formatter và số nhiều](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/i18n_testing_strategies.md)
216
+ - [Bản chất thực sự của quốc tế hóa bao gồm những gì](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/what_is_internationalization.md)
@@ -0,0 +1,202 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "Cách phát hiện các bản dịch còn thiếu trước khi người dùng nhìn thấy"
5
+ description: Các bản dịch còn thiếu thường lỗi trong im lặng. Tại sao fallback lại che giấu chúng, bốn tầng phát hiện thực sự hiệu quả và cách làm fail một bản build khi có key chưa được dịch.
6
+ keywords:
7
+ - tìm bản dịch còn thiếu
8
+ - key dịch thuật bị thiếu
9
+ - audit i18n
10
+ - chuỗi chưa được dịch
11
+ - độ bao phủ dịch thuật
12
+ - lint i18n
13
+ slugs:
14
+ - blog
15
+ - detecting-missing-translations
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Cách phát hiện các bản dịch còn thiếu trước khi người dùng nhìn thấy
20
+
21
+ Một bản dịch bị thiếu hầu như không bao giờ ném ra exception làm gián đoạn chương trình. Tùy theo cấu hình, nó hoặc hiển thị chuỗi tiếng Anh cho một người dùng Nhật Bản, hoặc in thẳng `checkout.summary.total` trên trang web đang hoạt động ở môi trường production. Cả hai trường hợp đều được deploy, đều vượt qua code review, và cuối cùng đều bị phát hiện bởi khách hàng thay vì bởi đội ngũ phát triển.
22
+
23
+ ## Mục lục
24
+
25
+ <TOC/>
26
+
27
+ ## Áp dụng cho bất kỳ thư viện nào bạn đang sử dụng
28
+
29
+ Không có nội dung nào ở đây bị giới hạn trong một stack công nghệ cụ thể. Các tầng phát hiện bên dưới hoạt động tương tự nhau trên i18next, react-i18next, next-intl, react-intl, vue-i18n, next-translate hay Lingui, bởi vì chúng đều phân giải key theo cùng một cơ chế và thất bại theo cùng một cách.
30
+
31
+ Bộ công cụ cũng rất linh hoạt. Nếu các thông điệp của bạn hiện nằm trong các catalog JSON, [plugin Sync JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/plugins/sync-json.md) sẽ trỏ Intlayer tới các file đó, giúp bạn có được các lệnh audit, fill và test mà không cần di chuyển nội dung hay thay đổi một dòng import nào:
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", // hoặc "icu" cho next-intl / react-intl
41
+ }),
42
+ ],
43
+ };
44
+
45
+ export default config;
46
+ ```
47
+
48
+ Nếu bạn muốn runtime API giữ nguyên không đổi, các [adapter tương thích](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/index.md) sẽ tạo alias cho `useTranslation`, `$t` và các hàm tương đương ở cấp độ bundler. Dù thế nào đi nữa, hãy xem các câu lệnh dưới đây là một phương án triển khai cụ thể của nguyên lý, chứ không phải một điều kiện bắt buộc.
49
+
50
+ ## Tại sao các chỗ thiếu lại vô hình?
51
+
52
+ Mọi thư viện i18n đều phân giải một key qua cùng một chuỗi: tìm locale đang hoạt động, chuyển sang locale mặc định (fallback), và nếu vẫn thất bại, trả về chính chuỗi key đó. Bước cuối cùng này chính là nguồn cơn của vấn đề. Không có lỗi nào, không có cảnh báo nào trên production và không có bài test nào bị fail, bởi vì không có thành phần nào trong pipeline coi một key bị thiếu là điều bất thường.
53
+
54
+ Cơ chế fallback khiến tình hình tồi tệ hơn chứ không hề cải thiện. Một trang web âm thầm render bằng tiếng Anh trông hoàn toàn bình thường đối với một lập trình viên nói tiếng Anh và đối với mọi kiểm tra tự động của bạn. Lỗi chỉ hiển thị trước mắt người không đọc hiểu được ngôn ngữ đó.
55
+
56
+ Vì vậy, câu hỏi không phải là "làm thế nào để xử lý các bản dịch còn thiếu ở runtime". Mà là "làm thế nào để ngăn chặn tuyệt đối việc merge một bản dịch còn thiếu".
57
+
58
+ ## Bốn tầng giúp bạn phát hiện ra chúng
59
+
60
+ Mỗi tầng sẽ bắt được những lỗi mà các tầng khác bỏ sót. Bạn sẽ muốn kết hợp nhiều tầng.
61
+
62
+ | Tầng | Phát hiện được | Bỏ sót |
63
+ | :----------- | :-------------------------------------------- | :----------------------------------------------- |
64
+ | Kiểu dữ liệu | Các key hoàn toàn không tồn tại | Key có tồn tại nhưng bị bỏ trống trong `ja` |
65
+ | Linter | Các chuỗi hardcode chưa từng được đem đi dịch | Các key bị thiếu trong một catalog |
66
+ | Audit | Độ bao phủ ngôn ngữ trên mọi key đã khai báo | Đoạn text chưa từng được chuyển thành chuỗi dịch |
67
+ | Test render | Các key được phân giải nhưng hiển thị sai | Mọi thứ không được bài test bao phủ |
68
+
69
+ Lỗ hổng phổ biến nhất ở các đội ngũ là dòng thứ ba: họ biết các key của mình hợp lệ về mặt cú pháp, nhưng không có gì kiểm tra xem cả mười tám locale có thực sự mang giá trị hay không.
70
+
71
+ ## Tầng 1: Biến key thành kiểu dữ liệu (Type), không phải chuỗi thuần túy
72
+
73
+ `t("checkout.summry.total")` là một lỗi chính tả nhưng vẫn compile hoàn toàn bình thường. Nếu key chỉ là chuỗi string đơn giản, mỗi lần đổi tên đều tiềm ẩn rủi ro production và mỗi lần xóa bỏ đều để lại key rác mồ côi.
74
+
75
+ Key có kiểu dữ liệu (typed keys) sẽ biến lỗi này thành lỗi build. `react-i18next` hỗ trợ qua declaration merging, `next-intl` suy luận từ cấu trúc thông điệp, Lingui tạo ID từ văn bản nguồn, và Intlayer sinh kiểu dữ liệu nghiêm ngặt từ các file khai báo nội dung. Tất cả đều hiệu quả; điều khác biệt là bạn phải cấu hình nhiều hay ít.
76
+
77
+ Tầng này là cần thiết nhưng chưa đủ. Type chỉ mô tả cấu trúc của catalog mặc định. Chúng không thể chứng minh liệu tiếng Hàn có giá trị cho key đó hay chưa.
78
+
79
+ ## Tầng 2: Lint các chuỗi chưa từng trở thành key
80
+
81
+ Bản dịch mà bạn không thể tìm thấy thường là bản dịch chưa từng được tách ra ngoài. Một nhãn chữ bị hardcode trong một component sẽ hoàn toàn vô hình trước mọi công cụ audit catalog, bởi vì đối với bộ công cụ, chuỗi đó chưa từng tồn tại.
82
+
83
+ Plugin ESLint của Intlayer giải quyết điều này bằng `no-raw-text`, đi kèm với `no-unused-content` cho trường hợp ngược lại: nội dung đã khai báo nhưng không còn được đọc bởi bất kỳ đâu.
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` là quy tắc giúp catalog không bị phình to vô hạn. Key rác không làm hỏng logic phần mềm, nhưng chúng làm cho hóa đơn của các nhà cung cấp dịch vụ dịch thuật tăng cao ngoài ý muốn. Xem danh sách quy tắc đầy đủ trong [tài liệu plugin ESLint](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/eslint.md).
100
+
101
+ ## Tầng 3: Audit độ bao phủ locale
102
+
103
+ Đây là tầng giải đáp trực tiếp câu hỏi cốt lõi. Intlayer cung cấp nó dưới dạng lệnh CLI:
104
+
105
+ ```bash packageManager="npm"
106
+ npx intlayer content test
107
+ ```
108
+
109
+ Lệnh này đọc các locale đã cấu hình và các từ điển đã khai báo, sau đó báo cáo chính xác key nào đang thiếu những locale nào và nằm ở file nào.
110
+
111
+ Một chi tiết rất đáng lưu ý trước khi gắn nó vào pipeline: **CLI in báo cáo nhưng thoát với mã 0 (thành công).** Nếu bạn đưa nó vào pipeline với kỳ vọng nó sẽ chặn đứng build khi có lỗi, bạn sẽ nhận được một build màu xanh kèm theo một danh sách cảnh báo mà không ai để mắt tới. Để chặn build, hãy dùng API dạng code được mô tả dưới đây.
112
+
113
+ ## Tầng 4: Kiểm tra bằng Assertion trong bộ test suite
114
+
115
+ `listMissingTranslations()` trả về cho bạn cùng một dữ liệu audit đó dưới dạng cấu trúc dữ liệu, hoàn hảo cho một rào chắn kiểm tra khi build (build gate).
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("không có locale bắt buộc nào bị thiếu", 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
+ Có ba trường được trả về với sự phân biệt rõ ràng:
136
+
137
+ - `missingTranslations`: theo từng key, những locale nào bị thiếu và ở file nào. Đây là dữ liệu bạn in ra khi test fail.
138
+ - `missingLocales`: tập hợp tất cả các locale bị thiếu trên mọi key.
139
+ - `missingRequiredLocales`: giới hạn trong phạm vi các `requiredLocales` từ file cấu hình của bạn, hoặc toàn bộ locale nếu bạn chưa thiết lập giá trị này.
140
+
141
+ ## `requiredLocales` là tùy chọn giúp gate tồn tại được trong thực tế
142
+
143
+ Hỗ trợ mười tám ngôn ngữ không có nghĩa là cả mười tám ngôn ngữ đều phải hoàn thiện 100% mới được deploy. Phần lớn các đội ngũ đều phân chia thành một nhóm bắt buộc chặn đợt release và một nhóm được hoàn thiện dần theo tiến độ.
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
+ Nếu không có `requiredLocales`, mọi locale được khai báo đều trở thành bắt buộc và build của bạn sẽ liên tục bị lỗi đỏ cho đến khi ngôn ngữ cuối cùng được cập nhật xong. Đó là lý do khiến các đội ngũ cuối cùng phải tắt hoàn toàn bài kiểm tra này, điều này còn tệ hơn là không có bài kiểm tra nào.
165
+
166
+ ## Tìm kiếm các phần thiếu đã tồn tại trên production
167
+
168
+ Các tầng ở trên ngăn ngừa phát sinh khoảng trống mới. Đối với một ứng dụng đã phát hành, hai phương pháp sau đây rất hữu ích.
169
+
170
+ **Pseudolocalization (Bản địa hóa giả lập).** Chạy một locale giả lập nơi mọi chuỗi ký tự đều bị biến đổi, ví dụ `[!!! Ĉĥéçķöũţ !!!]`. Bất kỳ nội dung nào vẫn hiển thị bằng tiếng Anh nguyên bản đều chắc chắn là chuỗi bị hardcode. Phương pháp này chỉ mất mười phút để phát hiện những gì mà audit catalog hoàn toàn không thể thấy, vì nó kiểm tra trang web đã được render thực tế.
171
+
172
+ **Thu thập dữ liệu (crawl) chính trang web của bạn.** Nếu bạn sử dụng các URL theo locale, hãy tải một mẫu các trang theo từng ngôn ngữ và tìm kiếm chuỗi của ngôn ngữ mặc định trong mã nguồn HTML. Một trang trong `/ja/` có chứa cụm từ "Add to cart" chắc chắn là một bản dịch bị thiếu hoặc một fallback ngoài ý muốn.
173
+
174
+ ```bash
175
+ curl -s https://example.com/ja/checkout | grep -c "Add to cart"
176
+ ```
177
+
178
+ ## Lấp đầy các khoảng trống
179
+
180
+ Khi bạn đã biết phần nào bị thiếu, `intlayer fill` sẽ tự động điền các mục còn trống, và tùy chọn `autoFill` có thể tạo các file theo từng locale ngay khi nội dung được khai báo. Xem [autoFill](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/autoFill.md).
181
+
182
+ Cần nhìn nhận thẳng thắn: bản dịch do máy tự điền sẽ biến một khoảng trống **nhìn thấy được** thành một khoảng trống **vô hình**. Key hiện đã có giá trị, audit báo xanh, nhưng chưa có bất kỳ ai đọc lại câu từ đó. Hãy dùng nó để gỡ nút thắt cho đợt release, sau đó bắt buộc phải có người duyệt lại đối với bất kỳ nội dung nào mà khách hàng đọc trước khi đưa ra quyết định. Đó là giàn giáo tạm thời, không phải là kết quả sau cùng.
183
+
184
+ ## Các sai lầm thường gặp
185
+
186
+ - **Coi fallback là một tính năng an toàn.** Nó chỉ là chiến lược hiển thị dự phòng, không phải lưới an toàn. Một trang âm thầm hiển thị tiếng Anh là một bug không ai hay biết.
187
+ - **Dựa vào báo cáo CLI để chặn CI.** `intlayer content test` luôn thoát với mã 0. Hãy dùng assertion trong test suite.
188
+ - **Bắt buộc toàn bộ ngôn ngữ.** Kiểm tra sẽ bị gỡ bỏ ngay lần đầu tiên nó làm gián đoạn kế hoạch release khẩn cấp.
189
+ - **Audit catalog nhưng không bao giờ nhìn vào giao diện render.** Chuỗi hardcode về mặt định nghĩa không thể xuất hiện trong catalog.
190
+ - **Chỉ test ngôn ngữ mặc định.** Đó là ngôn ngữ duy nhất không bao giờ có nguy cơ bị thiếu.
191
+ - **Dừng lại ở việc tự động điền bằng máy.** Audit xanh nhưng câu chữ chưa từng được duyệt.
192
+
193
+ ## Tìm hiểu thêm
194
+
195
+ - [Kiểm thử nội dung: CLI audit, programmatic API và assertion giao diện UI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/testing.md)
196
+ - [Các quy tắc plugin ESLint (bao gồm `no-raw-text` và `no-unused-content`)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/eslint.md)
197
+ - [autoFill: sinh các file khai báo theo locale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/autoFill.md)
198
+ - [Tài liệu tham khảo cấu hình: `locales`, `requiredLocales`, `defaultLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md)
199
+ - [Báo cáo benchmark so sánh các framework](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/benchmark/index.md)
200
+ - [Adapter tương thích i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/i18next.md)
201
+ - [Bản chất thực sự của quốc tế hóa bao gồm những gì](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/what_is_internationalization.md)
202
+ - [i18n theo component so với i18n tập trung](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/per-component_vs_centralized_i18n.md)