@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,247 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "품질 저하 없이 CI/CD 파이프라인에서 번역을 자동화하는 방법"
5
+ description: i18n을 자동화할 수 있는 3단계 (pre-push, pull request, 런타임). 커버리지를 기반으로 빌드를 제어(gate)하고, 안전하게 자동 채우기를 수행하며, 무한 커밋 루프를 방지하는 방법.
6
+ keywords:
7
+ - 번역 자동화 ci
8
+ - i18n ci cd
9
+ - github actions 번역
10
+ - husky pre-push
11
+ - 지속적 현지화
12
+ - 번역 파이프라인
13
+ slugs:
14
+ - blog
15
+ - i18n-in-ci-cd-pipelines
16
+ author: aymericzip
17
+ ---
18
+
19
+ # 품질 저하 없이 CI/CD 파이프라인에서 번역을 자동화하는 방법
20
+
21
+ 수동 번역은 빠른 배포 주기를 따라가지 못합니다. 누군가 금요일에 문자열을 추가하면 다음 스프린트까지 내보내기가 지연되고, 그사이 세 개 이상의 언어가 뒤처집니다. 자동화 자체는 어렵지 않습니다. 하지만 검증되지 않은 기계 번역 결과를 고객에게 무분별하게 노출하지 않으면서 안전하게 자동화하는 방법을 고민해야 합니다.
22
+
23
+ ## 목차
24
+
25
+ <TOC/>
26
+
27
+ ## 자동화를 위해 기존 코드를 마이그레이션할 필요는 없습니다
28
+
29
+ 아래 파이프라인 구조와 도구는 특정 라이브러리에 종속되지 않습니다. 메시지가 i18next, next-intl, react-intl, vue-i18n 또는 next-translate를 위한 JSON 카탈로그 형태라면, [Sync JSON 플러그인](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/plugins/sync-json.md)이 해당 파일을 제자리에서 직접 읽고 씁니다:
30
+
31
+ ```ts fileName="intlayer.config.ts"
32
+ import { syncJSON } from "@intlayer/sync-json-plugin";
33
+
34
+ const config = {
35
+ plugins: [
36
+ syncJSON({
37
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
38
+ format: "i18next", // 또는 next-intl / react-intl용 "icu"
39
+ }),
40
+ ],
41
+ };
42
+
43
+ export default config;
44
+ ```
45
+
46
+ 기존 애플리케이션의 import문은 그대로 유지됩니다. CI 작업이 기존 카탈로그를 채우고 검증하므로, 리뷰어가 보게 되는 변경 사항은 대규모 코드 전환이 아닌 `locales/fr/checkout.json` 파일의 변경일 뿐입니다. gettext 워크플로를 위한 [Sync PO 플러그인](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/plugins/sync-po.md)과 런타임 API를 유지해 주는 [호환 어댑터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/index.md)도 제공됩니다.
47
+
48
+ ## 차단 검사(Gate)와 자동 완성(Fill) 분리하기
49
+
50
+ 서로 다른 두 가지 작업이 자주 혼동되곤 합니다.
51
+
52
+ **게이트(Gate)**는 실패를 유발하는 검사입니다. 필수 로케일 번역이 누락되었을 때 빌드가 통과되지 못하도록 막는 역할을 하며, 어떤 파일도 수정하지 않습니다.
53
+
54
+ **필(Fill)**은 변경 작업입니다. 누락된 번역을 생성하고 이를 커밋합니다. 빌드를 실패시키지 않습니다.
55
+
56
+ Fill만 단독으로 실행하면 아무것도 차단되지 않아 검토되지 않은 AI 번역 결과가 프로덕션에 그대로 배포됩니다. 반대로 Gate만 실행하면 빌드가 빈번히 깨져 사람이 매번 수동으로 해결해야 합니다. 대부분의 팀에서는 두 가지를 서로 다른 트리거에 연결하는 방식을 선택합니다. 즉, Pull Request에서는 Fill을 실행하고, 릴리스 브랜치로 머지할 때 Gate를 적용합니다.
57
+
58
+ ## 자동화를 적용할 수 있는 단계 비교
59
+
60
+ | 단계 | 트리거 | 적합한 용도 | 비용 |
61
+ | :------------ | :------- | :---------------------------------------- | :------------------------------------- |
62
+ | Pre-push 훅 | 로컬 Git | 빠른 피드백, CI 실행 시간 소모 없음 | 개발자의 로컬 머신 및 개인 API 키 사용 |
63
+ | Pull request | CI Job | 머지 전 코드 리뷰, 시크릿의 안전한 중앙화 | CI 실행 시간 및 PR당 AI 모델 호출 비용 |
64
+ | 릴리스 브랜치 | CI Job | 커버리지에 대한 엄격한 차단(Gate) | 저렴함, AI 모델 호출 없음 |
65
+ | 런타임 | CMS | 빌드 없이 실시간 콘텐츠 변경 | 호스팅 서비스 의존성 |
66
+
67
+ ## Pre-push: 가장 빠른 피드백 루프
68
+
69
+ Husky를 사용하면 코드가 로컬 머신을 벗어나기 전에 번역을 채워 넣을 수 있어, 새로운 문자열이 추가된 커밋과 동일한 푸시 내에 번역이 함께 포함됩니다.
70
+
71
+ ```bash fileName=".husky/pre-push"
72
+ npx intlayer build
73
+ npx intlayer fill --unpushed --mode complete
74
+ ```
75
+
76
+ `--unpushed`는 아직 푸시되지 않은 콘텐츠로 작업을 제한하므로 매번 푸시할 때 오랜 시간이 걸리지 않습니다. `--mode complete`는 값이 비어 있는 항목만 채우고 이미 번역된 항목은 덮어쓰지 않으므로 사람이 검토한 번역이 유실되지 않습니다.
77
+
78
+ 모노레포의 경우 각 앱별로 범위를 지정합니다:
79
+
80
+ ```bash fileName=".husky/pre-push"
81
+ npx intlayer build --base-dir ./app1
82
+ npx intlayer fill --base-dir ./app1 --unpushed --mode complete
83
+ npx intlayer build --base-dir ./app2
84
+ npx intlayer fill --base-dir ./app2 --unpushed --mode complete
85
+ ```
86
+
87
+ 단점도 명확합니다. 모든 개발자가 API 키를 가지고 있어야 하며 비용 부담이 푸시를 수행하는 사람에게 발생합니다. 그렇기 때문에 팀 규모가 커지면 대개 이 작업을 CI로 이전합니다.
88
+
89
+ ## Pull request: 리뷰가 일어나는 곳에서 자동 완성하기
90
+
91
+ GitHub Actions를 통해 변경된 diff에 대해서만 동일한 작업을 수행합니다:
92
+
93
+ ```yaml fileName=".github/workflows/intlayer-translate.yml"
94
+ name: Intlayer Auto-Fill
95
+ on:
96
+ pull_request:
97
+ branches: ["main"]
98
+
99
+ permissions:
100
+ contents: write
101
+ pull-requests: write
102
+
103
+ concurrency:
104
+ group: "autofill-${{ github.ref }}"
105
+ cancel-in-progress: true
106
+
107
+ jobs:
108
+ autofill:
109
+ runs-on: ubuntu-latest
110
+ env:
111
+ AI_PROVIDER: openai
112
+ AI_MODEL: gpt-5-mini
113
+ AI_API_KEY: ${{ secrets.AI_API_KEY }}
114
+ steps:
115
+ - uses: actions/checkout@v4
116
+ with:
117
+ persist-credentials: true
118
+ fetch-depth: 0
119
+ - uses: actions/setup-node@v4
120
+ with:
121
+ node-version: 20
122
+ - run: npm install
123
+ - run: npx intlayer build
124
+ - run: npx intlayer fill --git-diff --mode complete --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY
125
+ - name: Commit
126
+ run: |
127
+ if [ -n "$(git status --porcelain)" ]; then
128
+ git config --local user.email "action@github.com"
129
+ git config --local user.name "GitHub Action"
130
+ git add .
131
+ git commit -m "chore: auto-fill missing translations [skip ci]"
132
+ git push origin HEAD:${{ github.head_ref }}
133
+ fi
134
+ ```
135
+
136
+ 여기에는 4가지 필수적인 설정이 있습니다:
137
+
138
+ - **`fetch-depth: 0`**: `--git-diff`가 작동하기 위해 반드시 필요합니다. Shallow clone은 비교할 베이스가 없어 아무것도 채우지 않고 넘어갑니다.
139
+ - **커밋 메시지의 `[skip ci]`**: 워크플로가 무한 재귀 실행되는 것을 막아줍니다. 이 문구가 없으면 커밋이 새 실행을 트리거하고 그 실행이 다시 커밋하여 밤새 CI 크레딧을 낭비하게 됩니다.
140
+ - **`cancel-in-progress`가 포함된 `concurrency`**: 두 번의 동시 푸시가 같은 파일을 덮어쓰며 경쟁하는 것을 방지합니다.
141
+ - **`--git-diff`**: PR에서 변경된 사항으로만 대상을 좁힙니다. 이를 생략하면 매 실행마다 전체 카탈로그를 다시 번역하게 됩니다.
142
+
143
+ 자동 생성된 번역이 PR 브랜치에 커밋으로 남기 때문에 리뷰어가 diff를 통해 눈으로 확인할 수 있습니다. 이것이 머지 후가 아니라 PR 단계에서 수행하는 핵심 이유입니다.
144
+
145
+ ## 릴리스 브랜치: Gate 단계
146
+
147
+ Gate는 모델 호출이 필요 없으며 빠르게 실행되어야 합니다.
148
+
149
+ ```yaml fileName=".github/workflows/ci.yml"
150
+ - run: npm run test:i18n
151
+ ```
152
+
153
+ 터미널 출력에만 의존하지 않고 테스트 코드로 커버리지를 직접 단언(assert)합니다:
154
+
155
+ ```ts fileName="i18n.test.ts"
156
+ import { listMissingTranslations } from "intlayer/cli";
157
+
158
+ test("필수 로케일에 누락된 번역이 없다", async () => {
159
+ const result = await listMissingTranslations();
160
+ if (result.missingRequiredLocales.length > 0) {
161
+ console.log(result.missingTranslations);
162
+ }
163
+ expect(result.missingRequiredLocales).toHaveLength(0);
164
+ });
165
+ ```
166
+
167
+ `npx intlayer content test`는 리포트를 출력하지만 종료 코드 0을 반환하므로 정보 제공용일 뿐 빌드를 막지 못합니다. 로컬에서는 이 CLI를 쓰고, CI에서는 테스트 어설션을 활용하세요. 자세한 내용은 [누락된 번역 감지하기](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/detecting_missing_translations.md)를 참고하세요.
168
+
169
+ ## `requiredLocales`로 지속 가능한 검사 유지하기
170
+
171
+ 18개 언어가 모두 완료되어야만 통과하는 Gate는 가장 느린 언어가 완성될 때까지 모든 릴리스를 막아버려, 결국 한 달도 안 되어 비활성화되고 맙니다.
172
+
173
+ ```ts fileName="intlayer.config.ts"
174
+ import { Locales, type IntlayerConfig } from "intlayer";
175
+
176
+ const config: IntlayerConfig = {
177
+ internationalization: {
178
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
179
+ requiredLocales: [Locales.ENGLISH],
180
+ defaultLocale: Locales.ENGLISH,
181
+ },
182
+ };
183
+
184
+ export default config;
185
+ ```
186
+
187
+ 서비스하는 모든 로케일을 등록하되, 릴리스를 차단해야 하는 핵심 언어만 `requiredLocales`로 지정하세요. 나머지 언어는 비동기적으로 완성해 나가며 배포 일정을 지연시키지 않습니다.
188
+
189
+ ## 번역 데이터를 저장소에서 완전히 분리하기
190
+
191
+ 또 다른 모델은 코드에는 기본 언어 하나만 선언하고, 나머지는 Live Sync가 지원되는 CMS를 통해 원격으로 관리하는 것입니다. 이렇게 하면 콘텐츠가 바뀌어도 애플리케이션을 다시 빌드할 필요가 없어 콘텐츠 수정 주기와 코드 배포 주기가 완전히 분리됩니다.
192
+
193
+ ```ts fileName="intlayer.config.ts"
194
+ const config: IntlayerConfig = {
195
+ internationalization: {
196
+ locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],
197
+ requiredLocales: [Locales.ENGLISH],
198
+ defaultLocale: Locales.ENGLISH,
199
+ },
200
+ editor: {
201
+ clientId: process.env.INTLAYER_CLIENT_ID,
202
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
203
+ liveSync: true,
204
+ },
205
+ };
206
+
207
+ export default config;
208
+ ```
209
+
210
+ 이 방식은 비개발자가 문구를 직접 관리하는 조직에 잘 맞습니다. 편집의 자율성을 얻는 대신, Git 체크아웃만으로 앱 렌더링 상태를 온전히 파악하기 어려워진다는 트레이드오프가 있습니다. 자세한 내용은 [CMS 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 확인하세요.
211
+
212
+ `clientSecret`은 서버 측 보안 자격 증명입니다. CI 시크릿이나 서버 환경 변수에서 관리해야 하며 클라이언트 번들에 노출되지 않도록 주의하세요.
213
+
214
+ ## 솔직한 한계점
215
+
216
+ 위의 모든 방법은 번역의 **존재(커버리지)**를 자동화하는 것이지 **품질**을 보장하는 것은 아닙니다. 자동 채우기는 눈에 띄는 빈자리를 눈에 띄지 않는 자리로 바꿉니다. 키에 값이 채워졌으므로 검사는 통과하지만 아무도 그 문장을 읽어보지 않았기 때문입니다.
217
+
218
+ 내부용 도구, 변경 로그, 베타 로케일이라면 이것으로 충분할 수 있습니다. 하지만 가격 정책, 법적 고지, 결제 오류 메시지 등 고객의 결정에 직접적인 영향을 미치는 영역에는 적합하지 않습니다. 이런 중요한 문구는 반드시 사람의 검토를 거치도록 하고, `--mode complete`를 적용하여 검토된 텍스트가 덮어씌워지지 않도록 하세요.
219
+
220
+ 모델에 맥락을 제공하여 일관된 결과를 얻을 수 있도록 설정하세요:
221
+
222
+ ```ts
223
+ ai: {
224
+ applicationContext: "B2B 청구 관리 앱. 정중한 어조 사용. 제품명은 절대로 번역하지 말 것.",
225
+ }
226
+ ```
227
+
228
+ ## 흔한 실수들
229
+
230
+ - **자동 커밋에 `[skip ci]` 누락.** 작업이 무한 루프를 돌며 크레딧을 낭비합니다.
231
+ - **`--git-diff` 사용 시 Shallow clone 적용.** 비교 기준이 없어 아무것도 채워지지 않고 오류도 나지 않습니다.
232
+ - **매 실행마다 전체 카탈로그 번역.** 비용 절감을 위해 `--git-diff`나 `--unpushed`로 범위를 좁히세요.
233
+ - **CLI 리포트를 Gate로 활용.** 항상 종료 코드 0으로 끝나 빌드가 멈추지 않습니다.
234
+ - **모든 로케일을 필수(required)로 설정.** 첫 릴리스 지연 발생 시 검사 자체가 제거될 위험이 큽니다.
235
+ - **Gate 없는 Fill 전용 작업.** 어떤 빌드도 실패하지 않아 검증되지 않은 기계 번역이 그대로 배포됩니다.
236
+ - **저장소에 모델 API 키 노출.** `clientSecret`과 마찬가지로 반드시 CI 시크릿에 보관해야 합니다.
237
+
238
+ ## 더 알아보기
239
+
240
+ - [CI/CD: Husky, GitHub Actions, CMS를 통한 번역 자동 생성](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/CI_CD.md)
241
+ - [콘텐츠 테스트 및 커버리지 기반 빌드 차단](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/testing.md)
242
+ - [autoFill: 로케일별 선언 파일 자동 생성](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/autoFill.md)
243
+ - [설정 레퍼런스: `locales`, `requiredLocales`, `editor`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/configuration.md)
244
+ - [프레임워크 간 벤치마크 리포트](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/benchmark/index.md)
245
+ - [i18next 호환 어댑터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/i18next.md)
246
+ - [누락된 번역 감지하기](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/detecting_missing_translations.md)
247
+ - [깨지기 쉬운 테스트 없이 번역 검증하기](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/i18n_testing_strategies.md)
@@ -19,8 +19,6 @@ author: aymericzip
19
19
 
20
20
  # i18n 의미: 국제화란 무엇이며 왜 중요한가요?
21
21
 
22
- ![i18n 일러스트레이션](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
23
-
24
22
  ## "i18n 의미" 이해하기
25
23
 
26
24
  소프트웨어 개발, 웹 디자인 또는 디지털 마케팅에 종사하고 있다면 **i18n**이라는 용어를 접해본 적이 있을 것입니다. 진정한 **i18n 의미**는 단순히 **국제화** (internationalization)의 수략어(numeronym)입니다.
@@ -0,0 +1,179 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "깨지기 쉬운 테스트 없이 번역을 검증하는 방법"
5
+ description: 다국어(i18n) 앱에서 테스트할 가치가 있는 것과 그렇지 않은 것. Provider 기반 렌더링 테스트, 의사 현지화(pseudolocalization), RTL 및 복수형 커버리지, 스냅샷의 함정.
6
+ keywords:
7
+ - 번역 테스트
8
+ - i18n 테스트
9
+ - testing library i18n
10
+ - 의사 현지화
11
+ - 로케일 프로바이더 테스트
12
+ - 스냅샷 테스트 i18n
13
+ slugs:
14
+ - blog
15
+ - i18n-testing-strategies
16
+ author: aymericzip
17
+ ---
18
+
19
+ # 깨지기 쉬운 테스트 없이 번역을 검증하는 방법
20
+
21
+ 대부분의 i18n 테스트 스위트는 두 가지 원인으로 인해 실패합니다. 하나는 리터럴 문구를 검증하여 문구가 조금만 바뀌어도 50개의 테스트가 깨지고 결국 팀이 테스트를 지워버리는 경우입니다. 다른 하나는 기본 로케일로만 모든 것을 렌더링하여 나머지 17개 언어에 대해서는 아무것도 입증하지 못하는 경우입니다. 두 방식 모두 누구도 신뢰하지 않는 테스트 스위트로 귀결됩니다.
22
+
23
+ ## 목차
24
+
25
+ <TOC/>
26
+
27
+ ## 라이브러리에 구애받지 않는 패턴
28
+
29
+ 아래의 모든 패턴은 어떤 i18n 스택에서도 동일하게 작동합니다. Provider를 `I18nextProvider`, `NextIntlClientProvider` 또는 `IntlProvider`로 변경해도 라이브러리 API가 아닌 렌더링된 결과물을 검증하므로 테스트 코드는 동일합니다.
30
+
31
+ 커버리지 도구 역시 마찬가지로 적용할 수 있습니다. 기존 카탈로그를 가리키는 [Sync JSON 플러그인](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/plugins/sync-json.md)이나 현재 import를 별칭(alias) 처리하는 [호환 어댑터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/index.md)를 사용하면 기존 JSON 파일에 대해 커버리지 검증을 즉시 수행할 수 있습니다.
32
+
33
+ ## 실제로 무엇을 테스트할지 정의하기
34
+
35
+ 번역 품질은 코드로 테스트할 수 있는 대상이 아닙니다. 어떤 어설션도 독일어 표현이 자연스러운지 판단할 수 없으며, 이를 시도하면 테스트 코드에 하드코딩된 문자열만 넘쳐나게 됩니다.
36
+
37
+ 기계적으로 테스트할 가치가 있는 항목은 다음과 같습니다:
38
+
39
+ | 테스트할 가치가 있는 것 | 테스트할 가치가 없는 것 |
40
+ | :----------------------------------------- | :---------------------------- |
41
+ | 필수 로케일에 값이 모두 존재하는지 | 문구가 세련되고 자연스러운지 |
42
+ | 컴포넌트에 올바른 로케일이 전달되는지 | 각 레이블의 정확한 문자열 |
43
+ | 각 카테고리별 복수형이 올바르게 처리되는지 | 번역가가 작업을 꼼꼼히 했는지 |
44
+ | RTL 로케일에서 텍스트 방향 및 미러링 적용 | 모든 로케일의 모든 문자열 |
45
+ | 서식화된 날짜와 숫자가 로케일을 따르는지 | `Intl` 내부 구현의 정확성 |
46
+
47
+ 커버리지 확인은 컴포넌트 단위 테스트가 아닌 단일 데이터 기반 테스트로 처리해야 합니다. 이는 [누락된 번역 감지하기](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/detecting_missing_translations.md)에서 다루고 있으며, 이 글에서는 그 외의 항목을 다룹니다.
48
+
49
+ ## Provider 하위에서 렌더링하고 역할(role)로 검증하기
50
+
51
+ 핵심 패턴은 컴포넌트를 로케일 프로바이더 내부에서 마운트하고 텍스트 내용 대신 역할(role) 또는 테스트 ID로 요소를 찾는 것입니다.
52
+
53
+ ```tsx fileName="CartSummary.test.tsx"
54
+ import { render, screen } from "@testing-library/react";
55
+ import { IntlayerProvider } from "react-intlayer/client";
56
+ import { CartSummary } from "./CartSummary";
57
+
58
+ test("프랑스어로 요약 헤딩을 렌더링한다", () => {
59
+ render(
60
+ <IntlayerProvider locale="fr-FR">
61
+ <CartSummary />
62
+ </IntlayerProvider>
63
+ );
64
+
65
+ expect(screen.getByRole("heading")).toBeInTheDocument();
66
+ });
67
+ ```
68
+
69
+ `getByRole("heading")`을 사용하면 텍스트가 수정되어도 테스트가 유지됩니다. 반면 `getByText("Récapitulatif")`는 단어가 바뀌면 즉시 깨집니다. 문자열 자체를 명시적으로 검증해야 하는 드문 상황에서만 리터럴을 사용하세요.
70
+
71
+ `aria-label` 같은 속성의 경우 렌더링 가능한 노드가 아니라 원본 문자열이 필요합니다. React에서 `useIntlayer` 항목은 이를 위해 `.value` 필드를 제공합니다.
72
+
73
+ ## 로케일 전반에 걸쳐 테스트 매개변수화하기
74
+
75
+ 언어마다 테스트를 하나씩 작성하는 것보다 하나의 테스트 로직을 모든 로케일에 걸쳐 실행하는 것이 훨씬 가치 있습니다.
76
+
77
+ ```tsx fileName="direction.test.tsx"
78
+ import { getHTMLTextDir } from "intlayer";
79
+ import { render } from "@testing-library/react";
80
+ import { IntlayerProvider } from "react-intlayer/client";
81
+
82
+ describe.each(["en", "fr", "ja", "ar"])("locale %s", (locale) => {
83
+ it("키 이름으로 폴백되지 않고 렌더링된다", () => {
84
+ const { container } = render(
85
+ <IntlayerProvider locale={locale}>
86
+ <CartSummary />
87
+ </IntlayerProvider>
88
+ );
89
+
90
+ // 키가 그대로 렌더링되었다면 조회가 실패했음을 의미합니다.
91
+ expect(container.textContent).not.toMatch(/^[a-z]+(\.[a-z]+)+$/);
92
+ });
93
+
94
+ it("올바른 텍스트 방향을 설정한다", () => {
95
+ expect(getHTMLTextDir(locale)).toBe(locale === "ar" ? "rtl" : "ltr");
96
+ });
97
+ });
98
+ ```
99
+
100
+ 첫 번째 단언문은 간단하면서도 강력합니다. 키 조회가 실패하여 라이브러리가 키 이름을 표시하면 DOM에 `cart.summary.title`과 같은 형태가 남습니다. 이를 통해 개별 텍스트를 나열하지 않고도 많은 버그를 걸러낼 수 있습니다.
101
+
102
+ ## 의사 현지화(Pseudolocalization)로 카탈로그의 사각지대 찾기
103
+
104
+ 모든 문자열을 변형하는 가짜 로케일을 추가하세요 (예: `Checkout`을 `[!!! Çĥéçķöũţ !!!]`로 변환). 그런 다음 해당 로케일로 페이지를 렌더링합니다.
105
+
106
+ 여전히 일반 영어로 남아 있는 문자열은 코드에 하드코딩된 것입니다. 도구 입장에서는 해당 문자열이 존재하지 않으므로 카탈로그 기반 검사로는 이를 찾을 수 없습니다. 대괄호는 텍스트를 약 30% 늘려주므로, 독일어 등 긴 언어에서 레이아웃이 깨지는 문제를 사전에 발견하는 효과도 있습니다.
107
+
108
+ 이 작업은 텍스트가 아닌 화면의 시각적 이상을 감지하는 것이므로 유닛 테스트보다는 시각적 회귀 또는 E2E 테스트로 실행하는 것이 좋습니다.
109
+
110
+ ## 복수형은 언어별이 아니라 카테고리별로 테스트하기
111
+
112
+ 영어에는 단수와 복수 두 가지 형태만 있어 대부분의 개발자가 두 가지만 확인하기 때문에 복수형 버그가 자주 숨어 있습니다. 폴란드어는 4가지, 아랍어는 6가지 형식을 가집니다.
113
+
114
+ ```ts fileName="plural.test.ts"
115
+ // 아랍어는 zero, one, two, few, many, other를 모두 사용합니다.
116
+ describe.each([0, 1, 2, 3, 11, 100])("개수 %i", (count) => {
117
+ it("아랍어에서 빈 문자열이 아닌 결과를 반환한다", () => {
118
+ expect(formatItems(count, "ar")).not.toBe("");
119
+ });
120
+ });
121
+ ```
122
+
123
+ 모든 곳에서 단순히 1과 2만 테스트하지 말고, 가장 복잡한 언어의 각 CLDR 카테고리에 해당하는 숫자를 선택하세요. `Intl.PluralRules`를 사용하면 숫자가 어떤 카테고리에 속하는지 알 수 있으므로 추측하지 않고 표본을 구성할 수 있습니다. 카테고리에 관한 자세한 내용은 [ICU 메시지 포맷 가이드](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/icu_message_format.md)에서 확인하세요.
124
+
125
+ ## 스냅샷(Snapshot)의 함정
126
+
127
+ 스냅샷과 i18n은 어울리지 않습니다. 다국어 컴포넌트의 스냅샷은 내부의 모든 텍스트를 저장합니다. 번역가가 포르투갈어 오타를 수정하면 성공하던 테스트가 실패하고, 리뷰어는 변경된 내용을 제대로 평가할 수 없게 됩니다. 이런 일이 몇 번 반복되면 누구나 diff를 읽지 않고 `-u`를 실행하게 되어 스냅샷은 무의미해집니다.
128
+
129
+ 스냅샷을 사용하려면 단 하나의 로케일에서만 생성하고, 내용 검사가 아닌 구조적 검사로만 다루세요. 로케일별 세부 내용은 명시적인 어설션으로 검증해야 합니다.
130
+
131
+ ## 렌더링뿐만 아니라 로케일 협상(Negotiation)도 테스트하기
132
+
133
+ 프로덕션에서 가장 흔한 i18n 버그는 번역 누락이 아닙니다. 바로 잘못된 로케일이 선택되는 것입니다. URL은 `/fr/`인데 클라이언트가 `navigator.language`를 읽어 서로 충돌하는 경우입니다.
134
+
135
+ 컴포넌트와 분리하여 순수 함수로 로케일 결정 순서를 직접 테스트하세요:
136
+
137
+ ```ts fileName="locale-resolution.test.ts"
138
+ it("저장된 기본 설정보다 URL을 우선시한다", () => {
139
+ expect(resolveLocale({ url: "/fr/about", stored: "de", header: "ja" })).toBe(
140
+ "fr"
141
+ );
142
+ });
143
+
144
+ it("URL에 접두사가 없으면 헤더로 폴백한다", () => {
145
+ expect(resolveLocale({ url: "/about", stored: null, header: "ja" })).toBe(
146
+ "ja"
147
+ );
148
+ });
149
+ ```
150
+
151
+ 이 테스트는 대부분의 코드베이스에서 놓치고 있는 가장 가치 있는 i18n 테스트이며, DOM도 필요하지 않습니다.
152
+
153
+ ## 테스트 단계별 실행 전략
154
+
155
+ - **Unit**: 로케일 협상, 포매터, 복수형 카테고리. 빠르고 DOM 불필요.
156
+ - **Component**: 로케일당 1회 Provider 기반 렌더링, 역할(role) 및 원시 키 노출 여부 검증.
157
+ - **Coverage**: 필수 로케일 누락이 없음을 검증하는 단일 데이터 기반 테스트.
158
+ - **Visual / E2E**: 의사 현지화 및 RTL 페이지 검증 (시각적 결함 감지).
159
+
160
+ 앞의 세 가지는 매 커밋마다 CI 파이프라인에서 실행하세요. 마지막 항목은 매 push마다 돌리기엔 무거우므로 야간 빌드에 적합합니다.
161
+
162
+ ## 흔한 실수들
163
+
164
+ - **모든 곳에서 리터럴 텍스트 검증하기.** 몇 달 안에 테스트 스위트를 포기하게 만드는 주원인입니다.
165
+ - **다국어 컴포넌트 스냅샷 생성하기.** 번역 수정 때마다 빌드가 깨지고 검토가 형식적으로 변합니다.
166
+ - **기본 로케일만 테스트하기.** 유일하게 누락될 일이 없는 언어만 검사하는 셈입니다.
167
+ - **복수형을 1과 2로만 테스트하기.** 영어 외 언어에 존재하는 다양한 카테고리를 놓칩니다.
168
+ - **i18n 라이브러리를 통째로 모킹하기.** 이 경우 모의 객체가 문자열을 반환하는지만 검증할 뿐입니다.
169
+ - **협상 로직을 테스트하지 않기.** 실서비스에서 가장 자주 발생하며 가장 테스트하기 쉬운 항목입니다.
170
+
171
+ ## 더 알아보기
172
+
173
+ - [콘텐츠 테스트: CLI 감사, 프로그래밍 API 및 UI 단언문](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/testing.md)
174
+ - [ESLint 플러그인: 하드코딩된 문자열 및 미사용 콘텐츠 감지](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/eslint.md)
175
+ - [포매터 및 로케일 유틸리티 (`getHTMLTextDir` 포함)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/formatters.md)
176
+ - [프레임워크별 벤치마크 리포트](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/benchmark/index.md)
177
+ - [react-i18next 호환 어댑터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/react-i18next.md)
178
+ - [누락된 번역 감지하기](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/detecting_missing_translations.md)
179
+ - [ICU 메시지 포맷: 복수형, select 및 스켈레톤](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ko/icu_message_format.md)
@@ -74,15 +74,15 @@ npx intlayer init --interactive
74
74
  ```
75
75
 
76
76
  ```bash packageManager="pnpm"
77
- pnpm dlx intlayer@canary init --interactive
77
+ pnpm dlx intlayer init --interactive
78
78
  ```
79
79
 
80
80
  ```bash packageManager="yarn"
81
- yarn dlx intlayer@canary init --interactive
81
+ yarn dlx intlayer init --interactive
82
82
  ```
83
83
 
84
84
  ```bash packageManager="bun"
85
- bunx intlayer@canary init --interactive
85
+ bunx intlayer init --interactive
86
86
  ```
87
87
 
88
88
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.
@@ -67,15 +67,15 @@ npx intlayer init --interactive
67
67
  ```
68
68
 
69
69
  ```bash packageManager="pnpm"
70
- pnpm dlx intlayer@canary init --interactive
70
+ pnpm dlx intlayer init --interactive
71
71
  ```
72
72
 
73
73
  ```bash packageManager="yarn"
74
- yarn dlx intlayer@canary init --interactive
74
+ yarn dlx intlayer init --interactive
75
75
  ```
76
76
 
77
77
  ```bash packageManager="bun"
78
- bunx intlayer@canary init --interactive
78
+ bunx intlayer init --interactive
79
79
  ```
80
80
 
81
81
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.
@@ -68,15 +68,15 @@ npx intlayer init --interactive
68
68
  ```
69
69
 
70
70
  ```bash packageManager="pnpm"
71
- pnpm dlx intlayer@canary init --interactive
71
+ pnpm dlx intlayer init --interactive
72
72
  ```
73
73
 
74
74
  ```bash packageManager="yarn"
75
- yarn dlx intlayer@canary init --interactive
75
+ yarn dlx intlayer init --interactive
76
76
  ```
77
77
 
78
78
  ```bash packageManager="bun"
79
- bunx intlayer@canary init --interactive
79
+ bunx intlayer init --interactive
80
80
  ```
81
81
 
82
82
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.
@@ -68,15 +68,15 @@ npx intlayer init --interactive
68
68
  ```
69
69
 
70
70
  ```bash packageManager="pnpm"
71
- pnpm dlx intlayer@canary init --interactive
71
+ pnpm dlx intlayer init --interactive
72
72
  ```
73
73
 
74
74
  ```bash packageManager="yarn"
75
- yarn dlx intlayer@canary init --interactive
75
+ yarn dlx intlayer init --interactive
76
76
  ```
77
77
 
78
78
  ```bash packageManager="bun"
79
- bunx intlayer@canary init --interactive
79
+ bunx intlayer init --interactive
80
80
  ```
81
81
 
82
82
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.
@@ -66,15 +66,15 @@ npx intlayer init --interactive
66
66
  ```
67
67
 
68
68
  ```bash packageManager="pnpm"
69
- pnpm dlx intlayer@canary init --interactive
69
+ pnpm dlx intlayer init --interactive
70
70
  ```
71
71
 
72
72
  ```bash packageManager="yarn"
73
- yarn dlx intlayer@canary init --interactive
73
+ yarn dlx intlayer init --interactive
74
74
  ```
75
75
 
76
76
  ```bash packageManager="bun"
77
- bunx intlayer@canary init --interactive
77
+ bunx intlayer init --interactive
78
78
  ```
79
79
 
80
80
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.
@@ -68,15 +68,15 @@ npx intlayer init --interactive
68
68
  ```
69
69
 
70
70
  ```bash packageManager="pnpm"
71
- pnpm dlx intlayer@canary init --interactive
71
+ pnpm dlx intlayer init --interactive
72
72
  ```
73
73
 
74
74
  ```bash packageManager="yarn"
75
- yarn dlx intlayer@canary init --interactive
75
+ yarn dlx intlayer init --interactive
76
76
  ```
77
77
 
78
78
  ```bash packageManager="bun"
79
- bunx intlayer@canary init --interactive
79
+ bunx intlayer init --interactive
80
80
  ```
81
81
 
82
82
  > `--interactive` 플래그는 선택 사항입니다. AI 에이전트인 경우 `intlayer-cli init`를 사용하세요.