@intlayer/docs 9.4.2 → 9.4.3

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 (1289) 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/generated/blog.entry.d.ts +16 -0
  392. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  393. package/docs/ar/bundle_optimization.md +186 -186
  394. package/docs/ar/intlayer_with_adonisjs.md +3 -3
  395. package/docs/ar/intlayer_with_analog.md +3 -3
  396. package/docs/ar/intlayer_with_angular_19.md +3 -3
  397. package/docs/ar/intlayer_with_angular_21.md +3 -3
  398. package/docs/ar/intlayer_with_astro.md +3 -3
  399. package/docs/ar/intlayer_with_astro_lit.md +3 -3
  400. package/docs/ar/intlayer_with_astro_preact.md +3 -3
  401. package/docs/ar/intlayer_with_astro_react.md +3 -3
  402. package/docs/ar/intlayer_with_astro_solid.md +3 -3
  403. package/docs/ar/intlayer_with_astro_svelte.md +3 -3
  404. package/docs/ar/intlayer_with_astro_vanilla.md +3 -3
  405. package/docs/ar/intlayer_with_astro_vue.md +3 -3
  406. package/docs/ar/intlayer_with_create_react_app.md +3 -3
  407. package/docs/ar/intlayer_with_elysia.md +4 -4
  408. package/docs/ar/intlayer_with_express.md +3 -3
  409. package/docs/ar/intlayer_with_fastify.md +4 -4
  410. package/docs/ar/intlayer_with_hono.md +3 -3
  411. package/docs/ar/intlayer_with_lynx+react.md +3 -3
  412. package/docs/ar/intlayer_with_nestjs.md +3 -3
  413. package/docs/ar/intlayer_with_next-i18next.md +3 -3
  414. package/docs/ar/intlayer_with_nextjs_14.md +3 -3
  415. package/docs/ar/intlayer_with_nextjs_15.md +3 -3
  416. package/docs/ar/intlayer_with_nextjs_16.md +3 -3
  417. package/docs/ar/intlayer_with_nextjs_compiler.md +3 -3
  418. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +3 -3
  419. package/docs/ar/intlayer_with_nextjs_page_router.md +3 -3
  420. package/docs/ar/intlayer_with_nuxt.md +3 -3
  421. package/docs/ar/intlayer_with_react_native+expo.md +3 -3
  422. package/docs/ar/intlayer_with_react_router_v7.md +3 -3
  423. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +3 -3
  424. package/docs/ar/intlayer_with_solid_start.md +3 -3
  425. package/docs/ar/intlayer_with_svelte_kit.md +3 -3
  426. package/docs/ar/intlayer_with_tanstack+solid.md +3 -3
  427. package/docs/ar/intlayer_with_tanstack.md +3 -3
  428. package/docs/ar/intlayer_with_vite+lit.md +3 -3
  429. package/docs/ar/intlayer_with_vite+preact.md +3 -3
  430. package/docs/ar/intlayer_with_vite+react.md +3 -3
  431. package/docs/ar/intlayer_with_vite+react_compiler.md +3 -3
  432. package/docs/ar/intlayer_with_vite+solid.md +3 -3
  433. package/docs/ar/intlayer_with_vite+svelte.md +4 -12
  434. package/docs/ar/intlayer_with_vite+vanilla.md +3 -3
  435. package/docs/ar/intlayer_with_vite+vue.md +3 -3
  436. package/docs/ar/migration_from_i18next_to_intlayer.md +3 -3
  437. package/docs/ar/migration_from_next-i18next_to_intlayer.md +3 -3
  438. package/docs/ar/migration_from_next-intl_to_intlayer.md +3 -3
  439. package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  440. package/docs/ar/migration_from_react-i18next_to_intlayer.md +3 -3
  441. package/docs/ar/migration_from_vue-i18n_to_intlayer.md +3 -3
  442. package/docs/bn/bundle_optimization.md +186 -186
  443. package/docs/bn/intlayer_with_angular_21.md +3 -3
  444. package/docs/bn/intlayer_with_fastify.md +4 -4
  445. package/docs/bn/intlayer_with_hono.md +3 -3
  446. package/docs/bn/intlayer_with_vite+lit.md +3 -3
  447. package/docs/bn/intlayer_with_vite+vanilla.md +3 -3
  448. package/docs/cs/bundle_optimization.md +186 -186
  449. package/docs/cs/intlayer_with_angular_21.md +3 -3
  450. package/docs/cs/intlayer_with_fastify.md +4 -4
  451. package/docs/cs/intlayer_with_hono.md +3 -3
  452. package/docs/cs/intlayer_with_vite+lit.md +3 -3
  453. package/docs/cs/intlayer_with_vite+vanilla.md +3 -3
  454. package/docs/de/bundle_optimization.md +186 -186
  455. package/docs/de/intlayer_with_adonisjs.md +3 -3
  456. package/docs/de/intlayer_with_analog.md +3 -3
  457. package/docs/de/intlayer_with_angular_19.md +3 -3
  458. package/docs/de/intlayer_with_angular_21.md +3 -3
  459. package/docs/de/intlayer_with_astro.md +3 -3
  460. package/docs/de/intlayer_with_astro_lit.md +3 -3
  461. package/docs/de/intlayer_with_astro_preact.md +3 -3
  462. package/docs/de/intlayer_with_astro_react.md +3 -3
  463. package/docs/de/intlayer_with_astro_solid.md +3 -3
  464. package/docs/de/intlayer_with_astro_svelte.md +3 -3
  465. package/docs/de/intlayer_with_astro_vanilla.md +3 -3
  466. package/docs/de/intlayer_with_astro_vue.md +3 -3
  467. package/docs/de/intlayer_with_create_react_app.md +3 -3
  468. package/docs/de/intlayer_with_elysia.md +4 -4
  469. package/docs/de/intlayer_with_express.md +3 -3
  470. package/docs/de/intlayer_with_fastify.md +4 -4
  471. package/docs/de/intlayer_with_hono.md +3 -3
  472. package/docs/de/intlayer_with_lynx+react.md +3 -3
  473. package/docs/de/intlayer_with_nestjs.md +3 -3
  474. package/docs/de/intlayer_with_next-i18next.md +3 -3
  475. package/docs/de/intlayer_with_nextjs_14.md +3 -3
  476. package/docs/de/intlayer_with_nextjs_15.md +3 -3
  477. package/docs/de/intlayer_with_nextjs_16.md +3 -3
  478. package/docs/de/intlayer_with_nextjs_compiler.md +3 -3
  479. package/docs/de/intlayer_with_nextjs_no_locale_path.md +3 -3
  480. package/docs/de/intlayer_with_nextjs_page_router.md +3 -3
  481. package/docs/de/intlayer_with_nuxt.md +3 -3
  482. package/docs/de/intlayer_with_react_native+expo.md +3 -3
  483. package/docs/de/intlayer_with_react_router_v7.md +3 -3
  484. package/docs/de/intlayer_with_solid_start.md +3 -3
  485. package/docs/de/intlayer_with_svelte_kit.md +3 -3
  486. package/docs/de/intlayer_with_tanstack+solid.md +3 -3
  487. package/docs/de/intlayer_with_tanstack.md +3 -3
  488. package/docs/de/intlayer_with_vite+lit.md +3 -3
  489. package/docs/de/intlayer_with_vite+preact.md +3 -3
  490. package/docs/de/intlayer_with_vite+react.md +3 -3
  491. package/docs/de/intlayer_with_vite+react_compiler.md +3 -3
  492. package/docs/de/intlayer_with_vite+solid.md +3 -3
  493. package/docs/de/intlayer_with_vite+svelte.md +4 -12
  494. package/docs/de/intlayer_with_vite+vanilla.md +3 -3
  495. package/docs/de/intlayer_with_vite+vue.md +3 -3
  496. package/docs/de/migration_from_i18next_to_intlayer.md +3 -3
  497. package/docs/de/migration_from_next-i18next_to_intlayer.md +3 -3
  498. package/docs/de/migration_from_next-intl_to_intlayer.md +3 -3
  499. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  500. package/docs/de/migration_from_react-i18next_to_intlayer.md +3 -3
  501. package/docs/de/migration_from_vue-i18n_to_intlayer.md +3 -3
  502. package/docs/en/bundle_optimization.md +186 -186
  503. package/docs/en/intlayer_with_adonisjs.md +3 -3
  504. package/docs/en/intlayer_with_analog.md +3 -3
  505. package/docs/en/intlayer_with_angular_19.md +3 -3
  506. package/docs/en/intlayer_with_angular_21.md +3 -3
  507. package/docs/en/intlayer_with_astro.md +3 -3
  508. package/docs/en/intlayer_with_astro_lit.md +3 -3
  509. package/docs/en/intlayer_with_astro_preact.md +3 -3
  510. package/docs/en/intlayer_with_astro_react.md +3 -3
  511. package/docs/en/intlayer_with_astro_solid.md +3 -3
  512. package/docs/en/intlayer_with_astro_svelte.md +3 -3
  513. package/docs/en/intlayer_with_astro_vanilla.md +3 -3
  514. package/docs/en/intlayer_with_astro_vue.md +3 -3
  515. package/docs/en/intlayer_with_create_react_app.md +3 -3
  516. package/docs/en/intlayer_with_elysia.md +4 -4
  517. package/docs/en/intlayer_with_express.md +3 -3
  518. package/docs/en/intlayer_with_fastify.md +4 -4
  519. package/docs/en/intlayer_with_hono.md +3 -3
  520. package/docs/en/intlayer_with_lynx+react.md +3 -3
  521. package/docs/en/intlayer_with_nestjs.md +3 -3
  522. package/docs/en/intlayer_with_next-i18next.md +3 -3
  523. package/docs/en/intlayer_with_nextjs_14.md +3 -3
  524. package/docs/en/intlayer_with_nextjs_15.md +3 -3
  525. package/docs/en/intlayer_with_nextjs_16.md +3 -3
  526. package/docs/en/intlayer_with_nextjs_compiler.md +3 -3
  527. package/docs/en/intlayer_with_nextjs_no_locale_path.md +3 -3
  528. package/docs/en/intlayer_with_nextjs_page_router.md +3 -3
  529. package/docs/en/intlayer_with_nuxt.md +3 -3
  530. package/docs/en/intlayer_with_react_native+expo.md +3 -3
  531. package/docs/en/intlayer_with_react_router_v7.md +3 -3
  532. package/docs/en/intlayer_with_solid_start.md +3 -3
  533. package/docs/en/intlayer_with_svelte_kit.md +3 -3
  534. package/docs/en/intlayer_with_tanstack+solid.md +3 -3
  535. package/docs/en/intlayer_with_tanstack.md +3 -3
  536. package/docs/en/intlayer_with_vite+lit.md +3 -3
  537. package/docs/en/intlayer_with_vite+preact.md +3 -3
  538. package/docs/en/intlayer_with_vite+react.md +3 -3
  539. package/docs/en/intlayer_with_vite+react_compiler.md +3 -3
  540. package/docs/en/intlayer_with_vite+solid.md +3 -3
  541. package/docs/en/intlayer_with_vite+svelte.md +4 -12
  542. package/docs/en/intlayer_with_vite+vanilla.md +3 -3
  543. package/docs/en/intlayer_with_vite+vue.md +3 -3
  544. package/docs/en/migration_from_i18next_to_intlayer.md +3 -3
  545. package/docs/en/migration_from_next-i18next_to_intlayer.md +3 -3
  546. package/docs/en/migration_from_next-intl_to_intlayer.md +3 -3
  547. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  548. package/docs/en/migration_from_react-i18next_to_intlayer.md +3 -3
  549. package/docs/en/migration_from_vue-i18n_to_intlayer.md +3 -3
  550. package/docs/en-GB/bundle_optimization.md +186 -186
  551. package/docs/en-GB/intlayer_with_adonisjs.md +3 -3
  552. package/docs/en-GB/intlayer_with_analog.md +3 -3
  553. package/docs/en-GB/intlayer_with_angular_19.md +3 -3
  554. package/docs/en-GB/intlayer_with_angular_21.md +3 -3
  555. package/docs/en-GB/intlayer_with_astro.md +3 -3
  556. package/docs/en-GB/intlayer_with_astro_lit.md +3 -3
  557. package/docs/en-GB/intlayer_with_astro_preact.md +3 -3
  558. package/docs/en-GB/intlayer_with_astro_react.md +3 -3
  559. package/docs/en-GB/intlayer_with_astro_solid.md +3 -3
  560. package/docs/en-GB/intlayer_with_astro_svelte.md +3 -3
  561. package/docs/en-GB/intlayer_with_astro_vanilla.md +3 -3
  562. package/docs/en-GB/intlayer_with_astro_vue.md +3 -3
  563. package/docs/en-GB/intlayer_with_create_react_app.md +3 -3
  564. package/docs/en-GB/intlayer_with_elysia.md +4 -4
  565. package/docs/en-GB/intlayer_with_express.md +3 -3
  566. package/docs/en-GB/intlayer_with_fastify.md +4 -4
  567. package/docs/en-GB/intlayer_with_hono.md +3 -3
  568. package/docs/en-GB/intlayer_with_lynx+react.md +3 -3
  569. package/docs/en-GB/intlayer_with_nestjs.md +3 -3
  570. package/docs/en-GB/intlayer_with_next-i18next.md +3 -3
  571. package/docs/en-GB/intlayer_with_nextjs_14.md +3 -3
  572. package/docs/en-GB/intlayer_with_nextjs_15.md +3 -3
  573. package/docs/en-GB/intlayer_with_nextjs_16.md +3 -3
  574. package/docs/en-GB/intlayer_with_nextjs_compiler.md +3 -3
  575. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +3 -3
  576. package/docs/en-GB/intlayer_with_nextjs_page_router.md +3 -3
  577. package/docs/en-GB/intlayer_with_nuxt.md +3 -3
  578. package/docs/en-GB/intlayer_with_react_native+expo.md +3 -3
  579. package/docs/en-GB/intlayer_with_react_router_v7.md +3 -3
  580. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +3 -3
  581. package/docs/en-GB/intlayer_with_solid_start.md +3 -3
  582. package/docs/en-GB/intlayer_with_svelte_kit.md +3 -3
  583. package/docs/en-GB/intlayer_with_tanstack+solid.md +3 -3
  584. package/docs/en-GB/intlayer_with_tanstack.md +3 -3
  585. package/docs/en-GB/intlayer_with_vite+lit.md +3 -3
  586. package/docs/en-GB/intlayer_with_vite+preact.md +3 -3
  587. package/docs/en-GB/intlayer_with_vite+react.md +3 -3
  588. package/docs/en-GB/intlayer_with_vite+react_compiler.md +3 -3
  589. package/docs/en-GB/intlayer_with_vite+solid.md +3 -3
  590. package/docs/en-GB/intlayer_with_vite+svelte.md +4 -12
  591. package/docs/en-GB/intlayer_with_vite+vanilla.md +3 -3
  592. package/docs/en-GB/intlayer_with_vite+vue.md +3 -3
  593. package/docs/en-GB/migration_from_i18next_to_intlayer.md +3 -3
  594. package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +3 -3
  595. package/docs/en-GB/migration_from_next-intl_to_intlayer.md +3 -3
  596. package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  597. package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +3 -3
  598. package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +3 -3
  599. package/docs/es/bundle_optimization.md +186 -186
  600. package/docs/es/intlayer_with_adonisjs.md +3 -3
  601. package/docs/es/intlayer_with_analog.md +3 -3
  602. package/docs/es/intlayer_with_angular_19.md +3 -3
  603. package/docs/es/intlayer_with_angular_21.md +3 -3
  604. package/docs/es/intlayer_with_astro.md +3 -3
  605. package/docs/es/intlayer_with_astro_lit.md +3 -3
  606. package/docs/es/intlayer_with_astro_preact.md +3 -3
  607. package/docs/es/intlayer_with_astro_react.md +3 -3
  608. package/docs/es/intlayer_with_astro_solid.md +3 -3
  609. package/docs/es/intlayer_with_astro_svelte.md +3 -3
  610. package/docs/es/intlayer_with_astro_vanilla.md +3 -3
  611. package/docs/es/intlayer_with_astro_vue.md +3 -3
  612. package/docs/es/intlayer_with_create_react_app.md +3 -3
  613. package/docs/es/intlayer_with_elysia.md +4 -4
  614. package/docs/es/intlayer_with_express.md +3 -3
  615. package/docs/es/intlayer_with_fastify.md +4 -4
  616. package/docs/es/intlayer_with_hono.md +3 -3
  617. package/docs/es/intlayer_with_lynx+react.md +3 -3
  618. package/docs/es/intlayer_with_nestjs.md +3 -3
  619. package/docs/es/intlayer_with_next-i18next.md +3 -3
  620. package/docs/es/intlayer_with_nextjs_14.md +3 -3
  621. package/docs/es/intlayer_with_nextjs_15.md +3 -3
  622. package/docs/es/intlayer_with_nextjs_16.md +3 -3
  623. package/docs/es/intlayer_with_nextjs_compiler.md +3 -3
  624. package/docs/es/intlayer_with_nextjs_no_locale_path.md +3 -3
  625. package/docs/es/intlayer_with_nextjs_page_router.md +3 -3
  626. package/docs/es/intlayer_with_nuxt.md +3 -3
  627. package/docs/es/intlayer_with_react_native+expo.md +3 -3
  628. package/docs/es/intlayer_with_react_router_v7.md +3 -3
  629. package/docs/es/intlayer_with_solid_start.md +3 -3
  630. package/docs/es/intlayer_with_svelte_kit.md +3 -3
  631. package/docs/es/intlayer_with_tanstack+solid.md +3 -3
  632. package/docs/es/intlayer_with_tanstack.md +3 -3
  633. package/docs/es/intlayer_with_vite+lit.md +3 -3
  634. package/docs/es/intlayer_with_vite+preact.md +3 -3
  635. package/docs/es/intlayer_with_vite+react.md +3 -3
  636. package/docs/es/intlayer_with_vite+react_compiler.md +3 -3
  637. package/docs/es/intlayer_with_vite+solid.md +3 -3
  638. package/docs/es/intlayer_with_vite+svelte.md +4 -12
  639. package/docs/es/intlayer_with_vite+vanilla.md +3 -3
  640. package/docs/es/intlayer_with_vite+vue.md +3 -3
  641. package/docs/es/migration_from_i18next_to_intlayer.md +3 -3
  642. package/docs/es/migration_from_next-i18next_to_intlayer.md +3 -3
  643. package/docs/es/migration_from_next-intl_to_intlayer.md +3 -3
  644. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  645. package/docs/es/migration_from_react-i18next_to_intlayer.md +3 -3
  646. package/docs/es/migration_from_vue-i18n_to_intlayer.md +3 -3
  647. package/docs/fr/bundle_optimization.md +186 -186
  648. package/docs/fr/intlayer_with_adonisjs.md +3 -3
  649. package/docs/fr/intlayer_with_analog.md +3 -3
  650. package/docs/fr/intlayer_with_angular_19.md +3 -3
  651. package/docs/fr/intlayer_with_angular_21.md +3 -3
  652. package/docs/fr/intlayer_with_astro.md +3 -3
  653. package/docs/fr/intlayer_with_astro_lit.md +3 -3
  654. package/docs/fr/intlayer_with_astro_preact.md +3 -3
  655. package/docs/fr/intlayer_with_astro_react.md +3 -3
  656. package/docs/fr/intlayer_with_astro_solid.md +3 -3
  657. package/docs/fr/intlayer_with_astro_svelte.md +3 -3
  658. package/docs/fr/intlayer_with_astro_vanilla.md +3 -3
  659. package/docs/fr/intlayer_with_astro_vue.md +3 -3
  660. package/docs/fr/intlayer_with_create_react_app.md +3 -3
  661. package/docs/fr/intlayer_with_elysia.md +4 -4
  662. package/docs/fr/intlayer_with_express.md +3 -3
  663. package/docs/fr/intlayer_with_fastify.md +4 -4
  664. package/docs/fr/intlayer_with_hono.md +3 -3
  665. package/docs/fr/intlayer_with_lynx+react.md +3 -3
  666. package/docs/fr/intlayer_with_nestjs.md +3 -3
  667. package/docs/fr/intlayer_with_next-i18next.md +3 -3
  668. package/docs/fr/intlayer_with_nextjs_14.md +3 -3
  669. package/docs/fr/intlayer_with_nextjs_15.md +3 -3
  670. package/docs/fr/intlayer_with_nextjs_16.md +3 -3
  671. package/docs/fr/intlayer_with_nextjs_compiler.md +3 -3
  672. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +3 -3
  673. package/docs/fr/intlayer_with_nextjs_page_router.md +3 -3
  674. package/docs/fr/intlayer_with_nuxt.md +3 -3
  675. package/docs/fr/intlayer_with_react_native+expo.md +3 -3
  676. package/docs/fr/intlayer_with_react_router_v7.md +3 -3
  677. package/docs/fr/intlayer_with_solid_start.md +3 -3
  678. package/docs/fr/intlayer_with_svelte_kit.md +3 -3
  679. package/docs/fr/intlayer_with_tanstack+solid.md +3 -3
  680. package/docs/fr/intlayer_with_tanstack.md +3 -3
  681. package/docs/fr/intlayer_with_vite+lit.md +3 -3
  682. package/docs/fr/intlayer_with_vite+preact.md +3 -3
  683. package/docs/fr/intlayer_with_vite+react.md +3 -3
  684. package/docs/fr/intlayer_with_vite+react_compiler.md +3 -3
  685. package/docs/fr/intlayer_with_vite+solid.md +3 -3
  686. package/docs/fr/intlayer_with_vite+svelte.md +4 -12
  687. package/docs/fr/intlayer_with_vite+vanilla.md +3 -3
  688. package/docs/fr/intlayer_with_vite+vue.md +3 -3
  689. package/docs/fr/migration_from_i18next_to_intlayer.md +3 -3
  690. package/docs/fr/migration_from_next-i18next_to_intlayer.md +3 -3
  691. package/docs/fr/migration_from_next-intl_to_intlayer.md +3 -3
  692. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  693. package/docs/fr/migration_from_react-i18next_to_intlayer.md +3 -3
  694. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +3 -3
  695. package/docs/hi/bundle_optimization.md +186 -186
  696. package/docs/hi/intlayer_with_adonisjs.md +3 -3
  697. package/docs/hi/intlayer_with_analog.md +3 -3
  698. package/docs/hi/intlayer_with_angular_19.md +3 -3
  699. package/docs/hi/intlayer_with_angular_21.md +3 -3
  700. package/docs/hi/intlayer_with_astro.md +3 -3
  701. package/docs/hi/intlayer_with_astro_lit.md +3 -3
  702. package/docs/hi/intlayer_with_astro_preact.md +3 -3
  703. package/docs/hi/intlayer_with_astro_react.md +3 -3
  704. package/docs/hi/intlayer_with_astro_solid.md +3 -3
  705. package/docs/hi/intlayer_with_astro_svelte.md +3 -3
  706. package/docs/hi/intlayer_with_astro_vanilla.md +3 -3
  707. package/docs/hi/intlayer_with_astro_vue.md +3 -3
  708. package/docs/hi/intlayer_with_create_react_app.md +3 -3
  709. package/docs/hi/intlayer_with_elysia.md +4 -4
  710. package/docs/hi/intlayer_with_express.md +3 -3
  711. package/docs/hi/intlayer_with_fastify.md +4 -4
  712. package/docs/hi/intlayer_with_hono.md +3 -3
  713. package/docs/hi/intlayer_with_lynx+react.md +3 -3
  714. package/docs/hi/intlayer_with_nestjs.md +3 -3
  715. package/docs/hi/intlayer_with_next-i18next.md +3 -3
  716. package/docs/hi/intlayer_with_nextjs_14.md +3 -3
  717. package/docs/hi/intlayer_with_nextjs_15.md +3 -3
  718. package/docs/hi/intlayer_with_nextjs_16.md +3 -3
  719. package/docs/hi/intlayer_with_nextjs_compiler.md +3 -3
  720. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +3 -3
  721. package/docs/hi/intlayer_with_nextjs_page_router.md +3 -3
  722. package/docs/hi/intlayer_with_nuxt.md +3 -3
  723. package/docs/hi/intlayer_with_react_native+expo.md +3 -3
  724. package/docs/hi/intlayer_with_react_router_v7.md +3 -3
  725. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +3 -3
  726. package/docs/hi/intlayer_with_solid_start.md +3 -3
  727. package/docs/hi/intlayer_with_svelte_kit.md +3 -3
  728. package/docs/hi/intlayer_with_tanstack+solid.md +3 -3
  729. package/docs/hi/intlayer_with_tanstack.md +3 -3
  730. package/docs/hi/intlayer_with_vite+lit.md +3 -3
  731. package/docs/hi/intlayer_with_vite+preact.md +3 -3
  732. package/docs/hi/intlayer_with_vite+react.md +3 -3
  733. package/docs/hi/intlayer_with_vite+react_compiler.md +3 -3
  734. package/docs/hi/intlayer_with_vite+solid.md +3 -3
  735. package/docs/hi/intlayer_with_vite+svelte.md +4 -12
  736. package/docs/hi/intlayer_with_vite+vanilla.md +3 -3
  737. package/docs/hi/intlayer_with_vite+vue.md +3 -3
  738. package/docs/hi/migration_from_i18next_to_intlayer.md +3 -3
  739. package/docs/hi/migration_from_next-i18next_to_intlayer.md +3 -3
  740. package/docs/hi/migration_from_next-intl_to_intlayer.md +3 -3
  741. package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  742. package/docs/hi/migration_from_react-i18next_to_intlayer.md +3 -3
  743. package/docs/hi/migration_from_vue-i18n_to_intlayer.md +3 -3
  744. package/docs/hi/packages/intlayer/index.md +3 -3
  745. package/docs/id/bundle_optimization.md +186 -186
  746. package/docs/id/intlayer_with_adonisjs.md +3 -3
  747. package/docs/id/intlayer_with_analog.md +3 -3
  748. package/docs/id/intlayer_with_angular_19.md +3 -3
  749. package/docs/id/intlayer_with_angular_21.md +3 -3
  750. package/docs/id/intlayer_with_astro.md +3 -3
  751. package/docs/id/intlayer_with_astro_lit.md +3 -3
  752. package/docs/id/intlayer_with_astro_preact.md +3 -3
  753. package/docs/id/intlayer_with_astro_react.md +3 -3
  754. package/docs/id/intlayer_with_astro_solid.md +3 -3
  755. package/docs/id/intlayer_with_astro_svelte.md +3 -3
  756. package/docs/id/intlayer_with_astro_vanilla.md +3 -3
  757. package/docs/id/intlayer_with_astro_vue.md +3 -3
  758. package/docs/id/intlayer_with_create_react_app.md +3 -3
  759. package/docs/id/intlayer_with_elysia.md +4 -4
  760. package/docs/id/intlayer_with_express.md +3 -3
  761. package/docs/id/intlayer_with_fastify.md +4 -4
  762. package/docs/id/intlayer_with_hono.md +3 -3
  763. package/docs/id/intlayer_with_lynx+react.md +3 -3
  764. package/docs/id/intlayer_with_nestjs.md +3 -3
  765. package/docs/id/intlayer_with_next-i18next.md +3 -3
  766. package/docs/id/intlayer_with_nextjs_14.md +3 -3
  767. package/docs/id/intlayer_with_nextjs_15.md +3 -3
  768. package/docs/id/intlayer_with_nextjs_16.md +3 -3
  769. package/docs/id/intlayer_with_nextjs_compiler.md +3 -3
  770. package/docs/id/intlayer_with_nextjs_no_locale_path.md +3 -3
  771. package/docs/id/intlayer_with_nextjs_page_router.md +3 -3
  772. package/docs/id/intlayer_with_nuxt.md +3 -3
  773. package/docs/id/intlayer_with_react_native+expo.md +3 -3
  774. package/docs/id/intlayer_with_react_router_v7.md +3 -3
  775. package/docs/id/intlayer_with_solid_start.md +3 -3
  776. package/docs/id/intlayer_with_svelte_kit.md +3 -3
  777. package/docs/id/intlayer_with_tanstack+solid.md +3 -3
  778. package/docs/id/intlayer_with_tanstack.md +3 -3
  779. package/docs/id/intlayer_with_vite+lit.md +3 -3
  780. package/docs/id/intlayer_with_vite+preact.md +3 -3
  781. package/docs/id/intlayer_with_vite+react.md +3 -3
  782. package/docs/id/intlayer_with_vite+react_compiler.md +3 -3
  783. package/docs/id/intlayer_with_vite+solid.md +3 -3
  784. package/docs/id/intlayer_with_vite+svelte.md +4 -12
  785. package/docs/id/intlayer_with_vite+vanilla.md +3 -3
  786. package/docs/id/intlayer_with_vite+vue.md +3 -3
  787. package/docs/id/migration_from_i18next_to_intlayer.md +3 -3
  788. package/docs/id/migration_from_next-i18next_to_intlayer.md +3 -3
  789. package/docs/id/migration_from_next-intl_to_intlayer.md +3 -3
  790. package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  791. package/docs/id/migration_from_react-i18next_to_intlayer.md +3 -3
  792. package/docs/id/migration_from_vue-i18n_to_intlayer.md +3 -3
  793. package/docs/it/bundle_optimization.md +186 -186
  794. package/docs/it/intlayer_with_adonisjs.md +3 -3
  795. package/docs/it/intlayer_with_analog.md +3 -3
  796. package/docs/it/intlayer_with_angular_19.md +3 -3
  797. package/docs/it/intlayer_with_angular_21.md +3 -3
  798. package/docs/it/intlayer_with_astro.md +3 -3
  799. package/docs/it/intlayer_with_astro_lit.md +3 -3
  800. package/docs/it/intlayer_with_astro_preact.md +3 -3
  801. package/docs/it/intlayer_with_astro_react.md +3 -3
  802. package/docs/it/intlayer_with_astro_solid.md +3 -3
  803. package/docs/it/intlayer_with_astro_svelte.md +3 -3
  804. package/docs/it/intlayer_with_astro_vanilla.md +3 -3
  805. package/docs/it/intlayer_with_astro_vue.md +3 -3
  806. package/docs/it/intlayer_with_create_react_app.md +3 -3
  807. package/docs/it/intlayer_with_elysia.md +4 -4
  808. package/docs/it/intlayer_with_express.md +3 -3
  809. package/docs/it/intlayer_with_fastify.md +4 -4
  810. package/docs/it/intlayer_with_hono.md +3 -3
  811. package/docs/it/intlayer_with_lynx+react.md +3 -3
  812. package/docs/it/intlayer_with_nestjs.md +3 -3
  813. package/docs/it/intlayer_with_next-i18next.md +3 -3
  814. package/docs/it/intlayer_with_nextjs_14.md +3 -3
  815. package/docs/it/intlayer_with_nextjs_15.md +3 -3
  816. package/docs/it/intlayer_with_nextjs_16.md +3 -3
  817. package/docs/it/intlayer_with_nextjs_compiler.md +3 -3
  818. package/docs/it/intlayer_with_nextjs_no_locale_path.md +3 -3
  819. package/docs/it/intlayer_with_nextjs_page_router.md +3 -3
  820. package/docs/it/intlayer_with_nuxt.md +3 -3
  821. package/docs/it/intlayer_with_react_native+expo.md +3 -3
  822. package/docs/it/intlayer_with_react_router_v7.md +3 -3
  823. package/docs/it/intlayer_with_solid_start.md +3 -3
  824. package/docs/it/intlayer_with_svelte_kit.md +3 -3
  825. package/docs/it/intlayer_with_tanstack+solid.md +3 -3
  826. package/docs/it/intlayer_with_tanstack.md +3 -3
  827. package/docs/it/intlayer_with_vite+lit.md +3 -3
  828. package/docs/it/intlayer_with_vite+preact.md +3 -3
  829. package/docs/it/intlayer_with_vite+react.md +3 -3
  830. package/docs/it/intlayer_with_vite+react_compiler.md +3 -3
  831. package/docs/it/intlayer_with_vite+solid.md +3 -3
  832. package/docs/it/intlayer_with_vite+svelte.md +4 -12
  833. package/docs/it/intlayer_with_vite+vanilla.md +3 -3
  834. package/docs/it/intlayer_with_vite+vue.md +3 -3
  835. package/docs/it/migration_from_i18next_to_intlayer.md +3 -3
  836. package/docs/it/migration_from_next-i18next_to_intlayer.md +3 -3
  837. package/docs/it/migration_from_next-intl_to_intlayer.md +3 -3
  838. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  839. package/docs/it/migration_from_react-i18next_to_intlayer.md +3 -3
  840. package/docs/it/migration_from_vue-i18n_to_intlayer.md +3 -3
  841. package/docs/ja/bundle_optimization.md +186 -186
  842. package/docs/ja/intlayer_with_adonisjs.md +3 -3
  843. package/docs/ja/intlayer_with_analog.md +3 -3
  844. package/docs/ja/intlayer_with_angular_19.md +3 -3
  845. package/docs/ja/intlayer_with_angular_21.md +3 -3
  846. package/docs/ja/intlayer_with_astro.md +3 -3
  847. package/docs/ja/intlayer_with_astro_lit.md +3 -3
  848. package/docs/ja/intlayer_with_astro_preact.md +3 -3
  849. package/docs/ja/intlayer_with_astro_react.md +3 -3
  850. package/docs/ja/intlayer_with_astro_solid.md +3 -3
  851. package/docs/ja/intlayer_with_astro_svelte.md +3 -3
  852. package/docs/ja/intlayer_with_astro_vanilla.md +3 -3
  853. package/docs/ja/intlayer_with_astro_vue.md +3 -3
  854. package/docs/ja/intlayer_with_create_react_app.md +3 -3
  855. package/docs/ja/intlayer_with_elysia.md +4 -4
  856. package/docs/ja/intlayer_with_express.md +3 -3
  857. package/docs/ja/intlayer_with_fastify.md +4 -4
  858. package/docs/ja/intlayer_with_hono.md +3 -3
  859. package/docs/ja/intlayer_with_lynx+react.md +3 -3
  860. package/docs/ja/intlayer_with_nestjs.md +3 -3
  861. package/docs/ja/intlayer_with_next-i18next.md +3 -3
  862. package/docs/ja/intlayer_with_nextjs_14.md +3 -3
  863. package/docs/ja/intlayer_with_nextjs_15.md +3 -3
  864. package/docs/ja/intlayer_with_nextjs_16.md +3 -3
  865. package/docs/ja/intlayer_with_nextjs_compiler.md +3 -3
  866. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +3 -3
  867. package/docs/ja/intlayer_with_nextjs_page_router.md +3 -3
  868. package/docs/ja/intlayer_with_nuxt.md +3 -3
  869. package/docs/ja/intlayer_with_react_native+expo.md +3 -3
  870. package/docs/ja/intlayer_with_react_router_v7.md +3 -3
  871. package/docs/ja/intlayer_with_solid_start.md +3 -3
  872. package/docs/ja/intlayer_with_svelte_kit.md +3 -3
  873. package/docs/ja/intlayer_with_tanstack+solid.md +3 -3
  874. package/docs/ja/intlayer_with_tanstack.md +3 -3
  875. package/docs/ja/intlayer_with_vite+lit.md +3 -3
  876. package/docs/ja/intlayer_with_vite+preact.md +3 -3
  877. package/docs/ja/intlayer_with_vite+react.md +3 -3
  878. package/docs/ja/intlayer_with_vite+react_compiler.md +3 -3
  879. package/docs/ja/intlayer_with_vite+solid.md +3 -3
  880. package/docs/ja/intlayer_with_vite+svelte.md +4 -12
  881. package/docs/ja/intlayer_with_vite+vanilla.md +3 -3
  882. package/docs/ja/intlayer_with_vite+vue.md +3 -3
  883. package/docs/ja/migration_from_i18next_to_intlayer.md +3 -3
  884. package/docs/ja/migration_from_next-i18next_to_intlayer.md +3 -3
  885. package/docs/ja/migration_from_next-intl_to_intlayer.md +3 -3
  886. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  887. package/docs/ja/migration_from_react-i18next_to_intlayer.md +3 -3
  888. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +3 -3
  889. package/docs/ko/bundle_optimization.md +186 -186
  890. package/docs/ko/intlayer_with_adonisjs.md +3 -3
  891. package/docs/ko/intlayer_with_analog.md +3 -3
  892. package/docs/ko/intlayer_with_angular_19.md +3 -3
  893. package/docs/ko/intlayer_with_angular_21.md +3 -3
  894. package/docs/ko/intlayer_with_astro.md +3 -3
  895. package/docs/ko/intlayer_with_astro_lit.md +3 -3
  896. package/docs/ko/intlayer_with_astro_preact.md +3 -3
  897. package/docs/ko/intlayer_with_astro_react.md +3 -3
  898. package/docs/ko/intlayer_with_astro_solid.md +3 -3
  899. package/docs/ko/intlayer_with_astro_svelte.md +3 -3
  900. package/docs/ko/intlayer_with_astro_vanilla.md +3 -3
  901. package/docs/ko/intlayer_with_astro_vue.md +3 -3
  902. package/docs/ko/intlayer_with_create_react_app.md +3 -3
  903. package/docs/ko/intlayer_with_elysia.md +4 -4
  904. package/docs/ko/intlayer_with_express.md +3 -3
  905. package/docs/ko/intlayer_with_fastify.md +4 -4
  906. package/docs/ko/intlayer_with_hono.md +3 -3
  907. package/docs/ko/intlayer_with_lynx+react.md +3 -3
  908. package/docs/ko/intlayer_with_nestjs.md +3 -3
  909. package/docs/ko/intlayer_with_next-i18next.md +3 -3
  910. package/docs/ko/intlayer_with_nextjs_14.md +3 -3
  911. package/docs/ko/intlayer_with_nextjs_15.md +3 -3
  912. package/docs/ko/intlayer_with_nextjs_16.md +3 -3
  913. package/docs/ko/intlayer_with_nextjs_compiler.md +3 -3
  914. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +3 -3
  915. package/docs/ko/intlayer_with_nextjs_page_router.md +3 -3
  916. package/docs/ko/intlayer_with_nuxt.md +3 -3
  917. package/docs/ko/intlayer_with_react_native+expo.md +3 -3
  918. package/docs/ko/intlayer_with_react_router_v7.md +3 -3
  919. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +3 -3
  920. package/docs/ko/intlayer_with_solid_start.md +3 -3
  921. package/docs/ko/intlayer_with_svelte_kit.md +3 -3
  922. package/docs/ko/intlayer_with_tanstack+solid.md +3 -3
  923. package/docs/ko/intlayer_with_tanstack.md +3 -3
  924. package/docs/ko/intlayer_with_vite+lit.md +3 -3
  925. package/docs/ko/intlayer_with_vite+preact.md +3 -3
  926. package/docs/ko/intlayer_with_vite+react.md +3 -3
  927. package/docs/ko/intlayer_with_vite+react_compiler.md +3 -3
  928. package/docs/ko/intlayer_with_vite+solid.md +3 -3
  929. package/docs/ko/intlayer_with_vite+svelte.md +4 -12
  930. package/docs/ko/intlayer_with_vite+vanilla.md +3 -3
  931. package/docs/ko/intlayer_with_vite+vue.md +3 -3
  932. package/docs/ko/migration_from_i18next_to_intlayer.md +3 -3
  933. package/docs/ko/migration_from_next-i18next_to_intlayer.md +3 -3
  934. package/docs/ko/migration_from_next-intl_to_intlayer.md +3 -3
  935. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  936. package/docs/ko/migration_from_react-i18next_to_intlayer.md +3 -3
  937. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +3 -3
  938. package/docs/nl/bundle_optimization.md +186 -186
  939. package/docs/nl/intlayer_with_angular_21.md +3 -3
  940. package/docs/nl/intlayer_with_fastify.md +4 -4
  941. package/docs/nl/intlayer_with_hono.md +3 -3
  942. package/docs/nl/intlayer_with_vite+lit.md +3 -3
  943. package/docs/nl/intlayer_with_vite+vanilla.md +3 -3
  944. package/docs/pl/bundle_optimization.md +186 -186
  945. package/docs/pl/intlayer_with_adonisjs.md +3 -3
  946. package/docs/pl/intlayer_with_analog.md +3 -3
  947. package/docs/pl/intlayer_with_angular_19.md +3 -3
  948. package/docs/pl/intlayer_with_angular_21.md +3 -3
  949. package/docs/pl/intlayer_with_astro.md +3 -3
  950. package/docs/pl/intlayer_with_astro_lit.md +3 -3
  951. package/docs/pl/intlayer_with_astro_preact.md +3 -3
  952. package/docs/pl/intlayer_with_astro_react.md +3 -3
  953. package/docs/pl/intlayer_with_astro_solid.md +3 -3
  954. package/docs/pl/intlayer_with_astro_svelte.md +3 -3
  955. package/docs/pl/intlayer_with_astro_vanilla.md +3 -3
  956. package/docs/pl/intlayer_with_astro_vue.md +3 -3
  957. package/docs/pl/intlayer_with_create_react_app.md +3 -3
  958. package/docs/pl/intlayer_with_elysia.md +4 -4
  959. package/docs/pl/intlayer_with_express.md +3 -3
  960. package/docs/pl/intlayer_with_fastify.md +4 -4
  961. package/docs/pl/intlayer_with_hono.md +3 -3
  962. package/docs/pl/intlayer_with_lynx+react.md +3 -3
  963. package/docs/pl/intlayer_with_nestjs.md +3 -3
  964. package/docs/pl/intlayer_with_next-i18next.md +3 -3
  965. package/docs/pl/intlayer_with_nextjs_14.md +3 -3
  966. package/docs/pl/intlayer_with_nextjs_15.md +3 -3
  967. package/docs/pl/intlayer_with_nextjs_16.md +3 -3
  968. package/docs/pl/intlayer_with_nextjs_compiler.md +3 -3
  969. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +3 -3
  970. package/docs/pl/intlayer_with_nextjs_page_router.md +3 -3
  971. package/docs/pl/intlayer_with_nuxt.md +3 -3
  972. package/docs/pl/intlayer_with_react_native+expo.md +3 -3
  973. package/docs/pl/intlayer_with_react_router_v7.md +3 -3
  974. package/docs/pl/intlayer_with_solid_start.md +3 -3
  975. package/docs/pl/intlayer_with_svelte_kit.md +3 -3
  976. package/docs/pl/intlayer_with_tanstack+solid.md +3 -3
  977. package/docs/pl/intlayer_with_tanstack.md +3 -3
  978. package/docs/pl/intlayer_with_vite+lit.md +3 -3
  979. package/docs/pl/intlayer_with_vite+preact.md +3 -3
  980. package/docs/pl/intlayer_with_vite+react.md +3 -3
  981. package/docs/pl/intlayer_with_vite+react_compiler.md +3 -3
  982. package/docs/pl/intlayer_with_vite+solid.md +3 -3
  983. package/docs/pl/intlayer_with_vite+svelte.md +4 -12
  984. package/docs/pl/intlayer_with_vite+vanilla.md +3 -3
  985. package/docs/pl/intlayer_with_vite+vue.md +3 -3
  986. package/docs/pl/migration_from_i18next_to_intlayer.md +3 -3
  987. package/docs/pl/migration_from_next-i18next_to_intlayer.md +3 -3
  988. package/docs/pl/migration_from_next-intl_to_intlayer.md +3 -3
  989. package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  990. package/docs/pl/migration_from_react-i18next_to_intlayer.md +3 -3
  991. package/docs/pl/migration_from_vue-i18n_to_intlayer.md +3 -3
  992. package/docs/pt/bundle_optimization.md +186 -186
  993. package/docs/pt/intlayer_with_adonisjs.md +3 -3
  994. package/docs/pt/intlayer_with_analog.md +3 -3
  995. package/docs/pt/intlayer_with_angular_19.md +3 -3
  996. package/docs/pt/intlayer_with_angular_21.md +3 -3
  997. package/docs/pt/intlayer_with_astro.md +3 -3
  998. package/docs/pt/intlayer_with_astro_lit.md +3 -3
  999. package/docs/pt/intlayer_with_astro_preact.md +3 -3
  1000. package/docs/pt/intlayer_with_astro_react.md +3 -3
  1001. package/docs/pt/intlayer_with_astro_solid.md +3 -3
  1002. package/docs/pt/intlayer_with_astro_svelte.md +3 -3
  1003. package/docs/pt/intlayer_with_astro_vanilla.md +3 -3
  1004. package/docs/pt/intlayer_with_astro_vue.md +3 -3
  1005. package/docs/pt/intlayer_with_create_react_app.md +3 -3
  1006. package/docs/pt/intlayer_with_elysia.md +4 -4
  1007. package/docs/pt/intlayer_with_express.md +3 -3
  1008. package/docs/pt/intlayer_with_fastify.md +4 -4
  1009. package/docs/pt/intlayer_with_hono.md +3 -3
  1010. package/docs/pt/intlayer_with_lynx+react.md +3 -3
  1011. package/docs/pt/intlayer_with_nestjs.md +3 -3
  1012. package/docs/pt/intlayer_with_next-i18next.md +3 -3
  1013. package/docs/pt/intlayer_with_nextjs_14.md +3 -3
  1014. package/docs/pt/intlayer_with_nextjs_15.md +3 -3
  1015. package/docs/pt/intlayer_with_nextjs_16.md +3 -3
  1016. package/docs/pt/intlayer_with_nextjs_compiler.md +3 -3
  1017. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +3 -3
  1018. package/docs/pt/intlayer_with_nextjs_page_router.md +3 -3
  1019. package/docs/pt/intlayer_with_nuxt.md +3 -3
  1020. package/docs/pt/intlayer_with_react_native+expo.md +3 -3
  1021. package/docs/pt/intlayer_with_react_router_v7.md +3 -3
  1022. package/docs/pt/intlayer_with_solid_start.md +3 -3
  1023. package/docs/pt/intlayer_with_svelte_kit.md +3 -3
  1024. package/docs/pt/intlayer_with_tanstack+solid.md +3 -3
  1025. package/docs/pt/intlayer_with_tanstack.md +3 -3
  1026. package/docs/pt/intlayer_with_vite+lit.md +3 -3
  1027. package/docs/pt/intlayer_with_vite+preact.md +3 -3
  1028. package/docs/pt/intlayer_with_vite+react.md +3 -3
  1029. package/docs/pt/intlayer_with_vite+react_compiler.md +3 -3
  1030. package/docs/pt/intlayer_with_vite+solid.md +3 -3
  1031. package/docs/pt/intlayer_with_vite+svelte.md +4 -12
  1032. package/docs/pt/intlayer_with_vite+vanilla.md +3 -3
  1033. package/docs/pt/intlayer_with_vite+vue.md +3 -3
  1034. package/docs/pt/migration_from_i18next_to_intlayer.md +3 -3
  1035. package/docs/pt/migration_from_next-i18next_to_intlayer.md +3 -3
  1036. package/docs/pt/migration_from_next-intl_to_intlayer.md +3 -3
  1037. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1038. package/docs/pt/migration_from_react-i18next_to_intlayer.md +3 -3
  1039. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +3 -3
  1040. package/docs/ru/bundle_optimization.md +186 -186
  1041. package/docs/ru/intlayer_with_adonisjs.md +3 -3
  1042. package/docs/ru/intlayer_with_analog.md +3 -3
  1043. package/docs/ru/intlayer_with_angular_19.md +3 -3
  1044. package/docs/ru/intlayer_with_angular_21.md +3 -3
  1045. package/docs/ru/intlayer_with_astro.md +3 -3
  1046. package/docs/ru/intlayer_with_astro_lit.md +3 -3
  1047. package/docs/ru/intlayer_with_astro_preact.md +3 -3
  1048. package/docs/ru/intlayer_with_astro_react.md +3 -3
  1049. package/docs/ru/intlayer_with_astro_solid.md +3 -3
  1050. package/docs/ru/intlayer_with_astro_svelte.md +3 -3
  1051. package/docs/ru/intlayer_with_astro_vanilla.md +3 -3
  1052. package/docs/ru/intlayer_with_astro_vue.md +3 -3
  1053. package/docs/ru/intlayer_with_create_react_app.md +3 -3
  1054. package/docs/ru/intlayer_with_elysia.md +4 -4
  1055. package/docs/ru/intlayer_with_express.md +3 -3
  1056. package/docs/ru/intlayer_with_fastify.md +4 -4
  1057. package/docs/ru/intlayer_with_hono.md +3 -3
  1058. package/docs/ru/intlayer_with_lynx+react.md +3 -3
  1059. package/docs/ru/intlayer_with_nestjs.md +3 -3
  1060. package/docs/ru/intlayer_with_next-i18next.md +3 -3
  1061. package/docs/ru/intlayer_with_nextjs_14.md +3 -3
  1062. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  1063. package/docs/ru/intlayer_with_nextjs_16.md +3 -3
  1064. package/docs/ru/intlayer_with_nextjs_compiler.md +3 -3
  1065. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +3 -3
  1066. package/docs/ru/intlayer_with_nextjs_page_router.md +3 -3
  1067. package/docs/ru/intlayer_with_nuxt.md +3 -3
  1068. package/docs/ru/intlayer_with_react_native+expo.md +3 -3
  1069. package/docs/ru/intlayer_with_react_router_v7.md +3 -3
  1070. package/docs/ru/intlayer_with_solid_start.md +3 -3
  1071. package/docs/ru/intlayer_with_svelte_kit.md +3 -3
  1072. package/docs/ru/intlayer_with_tanstack+solid.md +3 -3
  1073. package/docs/ru/intlayer_with_tanstack.md +3 -3
  1074. package/docs/ru/intlayer_with_vite+lit.md +3 -3
  1075. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  1076. package/docs/ru/intlayer_with_vite+react.md +3 -3
  1077. package/docs/ru/intlayer_with_vite+react_compiler.md +3 -3
  1078. package/docs/ru/intlayer_with_vite+solid.md +3 -3
  1079. package/docs/ru/intlayer_with_vite+svelte.md +4 -12
  1080. package/docs/ru/intlayer_with_vite+vanilla.md +3 -3
  1081. package/docs/ru/intlayer_with_vite+vue.md +3 -3
  1082. package/docs/ru/migration_from_i18next_to_intlayer.md +3 -3
  1083. package/docs/ru/migration_from_next-i18next_to_intlayer.md +3 -3
  1084. package/docs/ru/migration_from_next-intl_to_intlayer.md +3 -3
  1085. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1086. package/docs/ru/migration_from_react-i18next_to_intlayer.md +3 -3
  1087. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +3 -3
  1088. package/docs/tr/bundle_optimization.md +186 -186
  1089. package/docs/tr/intlayer_with_adonisjs.md +3 -3
  1090. package/docs/tr/intlayer_with_analog.md +3 -3
  1091. package/docs/tr/intlayer_with_angular_19.md +3 -3
  1092. package/docs/tr/intlayer_with_angular_21.md +3 -3
  1093. package/docs/tr/intlayer_with_astro.md +3 -3
  1094. package/docs/tr/intlayer_with_astro_lit.md +3 -3
  1095. package/docs/tr/intlayer_with_astro_preact.md +3 -3
  1096. package/docs/tr/intlayer_with_astro_react.md +3 -3
  1097. package/docs/tr/intlayer_with_astro_solid.md +3 -3
  1098. package/docs/tr/intlayer_with_astro_svelte.md +3 -3
  1099. package/docs/tr/intlayer_with_astro_vanilla.md +3 -3
  1100. package/docs/tr/intlayer_with_astro_vue.md +3 -3
  1101. package/docs/tr/intlayer_with_create_react_app.md +3 -3
  1102. package/docs/tr/intlayer_with_elysia.md +4 -4
  1103. package/docs/tr/intlayer_with_express.md +3 -3
  1104. package/docs/tr/intlayer_with_fastify.md +4 -4
  1105. package/docs/tr/intlayer_with_hono.md +3 -3
  1106. package/docs/tr/intlayer_with_lynx+react.md +3 -3
  1107. package/docs/tr/intlayer_with_nestjs.md +3 -3
  1108. package/docs/tr/intlayer_with_next-i18next.md +3 -3
  1109. package/docs/tr/intlayer_with_nextjs_14.md +3 -3
  1110. package/docs/tr/intlayer_with_nextjs_15.md +3 -3
  1111. package/docs/tr/intlayer_with_nextjs_16.md +3 -3
  1112. package/docs/tr/intlayer_with_nextjs_compiler.md +3 -3
  1113. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +3 -3
  1114. package/docs/tr/intlayer_with_nextjs_page_router.md +3 -3
  1115. package/docs/tr/intlayer_with_nuxt.md +3 -3
  1116. package/docs/tr/intlayer_with_react_native+expo.md +3 -3
  1117. package/docs/tr/intlayer_with_react_router_v7.md +3 -3
  1118. package/docs/tr/intlayer_with_solid_start.md +3 -3
  1119. package/docs/tr/intlayer_with_svelte_kit.md +3 -3
  1120. package/docs/tr/intlayer_with_tanstack+solid.md +3 -3
  1121. package/docs/tr/intlayer_with_tanstack.md +3 -3
  1122. package/docs/tr/intlayer_with_vite+lit.md +3 -3
  1123. package/docs/tr/intlayer_with_vite+preact.md +3 -3
  1124. package/docs/tr/intlayer_with_vite+react.md +3 -3
  1125. package/docs/tr/intlayer_with_vite+react_compiler.md +3 -3
  1126. package/docs/tr/intlayer_with_vite+solid.md +3 -3
  1127. package/docs/tr/intlayer_with_vite+svelte.md +4 -12
  1128. package/docs/tr/intlayer_with_vite+vanilla.md +3 -3
  1129. package/docs/tr/intlayer_with_vite+vue.md +3 -3
  1130. package/docs/tr/migration_from_i18next_to_intlayer.md +3 -3
  1131. package/docs/tr/migration_from_next-i18next_to_intlayer.md +3 -3
  1132. package/docs/tr/migration_from_next-intl_to_intlayer.md +3 -3
  1133. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1134. package/docs/tr/migration_from_react-i18next_to_intlayer.md +3 -3
  1135. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +3 -3
  1136. package/docs/uk/bundle_optimization.md +186 -186
  1137. package/docs/uk/intlayer_with_adonisjs.md +3 -3
  1138. package/docs/uk/intlayer_with_analog.md +3 -3
  1139. package/docs/uk/intlayer_with_angular_19.md +3 -3
  1140. package/docs/uk/intlayer_with_angular_21.md +3 -3
  1141. package/docs/uk/intlayer_with_astro.md +3 -3
  1142. package/docs/uk/intlayer_with_astro_lit.md +3 -3
  1143. package/docs/uk/intlayer_with_astro_preact.md +3 -3
  1144. package/docs/uk/intlayer_with_astro_react.md +3 -3
  1145. package/docs/uk/intlayer_with_astro_solid.md +3 -3
  1146. package/docs/uk/intlayer_with_astro_svelte.md +3 -3
  1147. package/docs/uk/intlayer_with_astro_vanilla.md +3 -3
  1148. package/docs/uk/intlayer_with_astro_vue.md +3 -3
  1149. package/docs/uk/intlayer_with_create_react_app.md +3 -3
  1150. package/docs/uk/intlayer_with_elysia.md +4 -4
  1151. package/docs/uk/intlayer_with_express.md +3 -3
  1152. package/docs/uk/intlayer_with_fastify.md +4 -4
  1153. package/docs/uk/intlayer_with_hono.md +3 -3
  1154. package/docs/uk/intlayer_with_lynx+react.md +3 -3
  1155. package/docs/uk/intlayer_with_nestjs.md +3 -3
  1156. package/docs/uk/intlayer_with_next-i18next.md +3 -3
  1157. package/docs/uk/intlayer_with_nextjs_14.md +3 -3
  1158. package/docs/uk/intlayer_with_nextjs_15.md +3 -3
  1159. package/docs/uk/intlayer_with_nextjs_16.md +3 -3
  1160. package/docs/uk/intlayer_with_nextjs_compiler.md +3 -3
  1161. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +3 -3
  1162. package/docs/uk/intlayer_with_nextjs_page_router.md +3 -3
  1163. package/docs/uk/intlayer_with_nuxt.md +3 -3
  1164. package/docs/uk/intlayer_with_react_native+expo.md +3 -3
  1165. package/docs/uk/intlayer_with_react_router_v7.md +3 -3
  1166. package/docs/uk/intlayer_with_solid_start.md +3 -3
  1167. package/docs/uk/intlayer_with_svelte_kit.md +3 -3
  1168. package/docs/uk/intlayer_with_tanstack+solid.md +3 -3
  1169. package/docs/uk/intlayer_with_tanstack.md +3 -3
  1170. package/docs/uk/intlayer_with_vite+lit.md +3 -3
  1171. package/docs/uk/intlayer_with_vite+preact.md +3 -3
  1172. package/docs/uk/intlayer_with_vite+react.md +3 -3
  1173. package/docs/uk/intlayer_with_vite+react_compiler.md +3 -3
  1174. package/docs/uk/intlayer_with_vite+solid.md +3 -3
  1175. package/docs/uk/intlayer_with_vite+svelte.md +4 -12
  1176. package/docs/uk/intlayer_with_vite+vanilla.md +3 -3
  1177. package/docs/uk/intlayer_with_vite+vue.md +3 -3
  1178. package/docs/uk/migration_from_i18next_to_intlayer.md +3 -3
  1179. package/docs/uk/migration_from_next-i18next_to_intlayer.md +3 -3
  1180. package/docs/uk/migration_from_next-intl_to_intlayer.md +3 -3
  1181. package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1182. package/docs/uk/migration_from_react-i18next_to_intlayer.md +3 -3
  1183. package/docs/uk/migration_from_vue-i18n_to_intlayer.md +3 -3
  1184. package/docs/ur/bundle_optimization.md +186 -186
  1185. package/docs/ur/intlayer_with_angular_21.md +3 -3
  1186. package/docs/ur/intlayer_with_fastify.md +4 -4
  1187. package/docs/ur/intlayer_with_hono.md +3 -3
  1188. package/docs/ur/intlayer_with_vite+lit.md +3 -3
  1189. package/docs/ur/intlayer_with_vite+vanilla.md +3 -3
  1190. package/docs/vi/bundle_optimization.md +186 -186
  1191. package/docs/vi/intlayer_with_adonisjs.md +3 -3
  1192. package/docs/vi/intlayer_with_analog.md +3 -3
  1193. package/docs/vi/intlayer_with_angular_19.md +3 -3
  1194. package/docs/vi/intlayer_with_angular_21.md +3 -3
  1195. package/docs/vi/intlayer_with_astro.md +3 -3
  1196. package/docs/vi/intlayer_with_astro_lit.md +3 -3
  1197. package/docs/vi/intlayer_with_astro_preact.md +3 -3
  1198. package/docs/vi/intlayer_with_astro_react.md +3 -3
  1199. package/docs/vi/intlayer_with_astro_solid.md +3 -3
  1200. package/docs/vi/intlayer_with_astro_svelte.md +3 -3
  1201. package/docs/vi/intlayer_with_astro_vanilla.md +3 -3
  1202. package/docs/vi/intlayer_with_astro_vue.md +3 -3
  1203. package/docs/vi/intlayer_with_create_react_app.md +3 -3
  1204. package/docs/vi/intlayer_with_elysia.md +4 -4
  1205. package/docs/vi/intlayer_with_express.md +3 -3
  1206. package/docs/vi/intlayer_with_fastify.md +4 -4
  1207. package/docs/vi/intlayer_with_hono.md +3 -3
  1208. package/docs/vi/intlayer_with_lynx+react.md +3 -3
  1209. package/docs/vi/intlayer_with_nestjs.md +3 -3
  1210. package/docs/vi/intlayer_with_next-i18next.md +3 -3
  1211. package/docs/vi/intlayer_with_nextjs_14.md +3 -3
  1212. package/docs/vi/intlayer_with_nextjs_15.md +3 -3
  1213. package/docs/vi/intlayer_with_nextjs_16.md +3 -3
  1214. package/docs/vi/intlayer_with_nextjs_compiler.md +3 -3
  1215. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +3 -3
  1216. package/docs/vi/intlayer_with_nextjs_page_router.md +3 -3
  1217. package/docs/vi/intlayer_with_nuxt.md +3 -3
  1218. package/docs/vi/intlayer_with_react_native+expo.md +3 -3
  1219. package/docs/vi/intlayer_with_react_router_v7.md +3 -3
  1220. package/docs/vi/intlayer_with_solid_start.md +3 -3
  1221. package/docs/vi/intlayer_with_svelte_kit.md +3 -3
  1222. package/docs/vi/intlayer_with_tanstack+solid.md +3 -3
  1223. package/docs/vi/intlayer_with_tanstack.md +3 -3
  1224. package/docs/vi/intlayer_with_vite+lit.md +3 -3
  1225. package/docs/vi/intlayer_with_vite+preact.md +3 -3
  1226. package/docs/vi/intlayer_with_vite+react.md +3 -3
  1227. package/docs/vi/intlayer_with_vite+react_compiler.md +3 -3
  1228. package/docs/vi/intlayer_with_vite+solid.md +3 -3
  1229. package/docs/vi/intlayer_with_vite+svelte.md +4 -12
  1230. package/docs/vi/intlayer_with_vite+vanilla.md +3 -3
  1231. package/docs/vi/intlayer_with_vite+vue.md +3 -3
  1232. package/docs/vi/migration_from_i18next_to_intlayer.md +3 -3
  1233. package/docs/vi/migration_from_next-i18next_to_intlayer.md +3 -3
  1234. package/docs/vi/migration_from_next-intl_to_intlayer.md +3 -3
  1235. package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1236. package/docs/vi/migration_from_react-i18next_to_intlayer.md +3 -3
  1237. package/docs/vi/migration_from_vue-i18n_to_intlayer.md +3 -3
  1238. package/docs/zh/bundle_optimization.md +186 -186
  1239. package/docs/zh/intlayer_with_adonisjs.md +3 -3
  1240. package/docs/zh/intlayer_with_analog.md +3 -3
  1241. package/docs/zh/intlayer_with_angular_19.md +3 -3
  1242. package/docs/zh/intlayer_with_angular_21.md +3 -3
  1243. package/docs/zh/intlayer_with_astro.md +3 -3
  1244. package/docs/zh/intlayer_with_astro_lit.md +3 -3
  1245. package/docs/zh/intlayer_with_astro_preact.md +3 -3
  1246. package/docs/zh/intlayer_with_astro_react.md +3 -3
  1247. package/docs/zh/intlayer_with_astro_solid.md +3 -3
  1248. package/docs/zh/intlayer_with_astro_svelte.md +3 -3
  1249. package/docs/zh/intlayer_with_astro_vanilla.md +3 -3
  1250. package/docs/zh/intlayer_with_astro_vue.md +3 -3
  1251. package/docs/zh/intlayer_with_create_react_app.md +3 -3
  1252. package/docs/zh/intlayer_with_elysia.md +4 -4
  1253. package/docs/zh/intlayer_with_express.md +3 -3
  1254. package/docs/zh/intlayer_with_fastify.md +4 -4
  1255. package/docs/zh/intlayer_with_hono.md +3 -3
  1256. package/docs/zh/intlayer_with_lynx+react.md +3 -3
  1257. package/docs/zh/intlayer_with_nestjs.md +3 -3
  1258. package/docs/zh/intlayer_with_next-i18next.md +3 -3
  1259. package/docs/zh/intlayer_with_nextjs_14.md +3 -3
  1260. package/docs/zh/intlayer_with_nextjs_15.md +3 -3
  1261. package/docs/zh/intlayer_with_nextjs_16.md +3 -3
  1262. package/docs/zh/intlayer_with_nextjs_compiler.md +3 -3
  1263. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +3 -3
  1264. package/docs/zh/intlayer_with_nextjs_page_router.md +3 -3
  1265. package/docs/zh/intlayer_with_nuxt.md +3 -3
  1266. package/docs/zh/intlayer_with_react_native+expo.md +3 -3
  1267. package/docs/zh/intlayer_with_react_router_v7.md +3 -3
  1268. package/docs/zh/intlayer_with_solid_start.md +3 -3
  1269. package/docs/zh/intlayer_with_svelte_kit.md +3 -3
  1270. package/docs/zh/intlayer_with_tanstack+solid.md +3 -3
  1271. package/docs/zh/intlayer_with_tanstack.md +3 -3
  1272. package/docs/zh/intlayer_with_vite+lit.md +3 -3
  1273. package/docs/zh/intlayer_with_vite+preact.md +3 -3
  1274. package/docs/zh/intlayer_with_vite+react.md +3 -3
  1275. package/docs/zh/intlayer_with_vite+react_compiler.md +3 -3
  1276. package/docs/zh/intlayer_with_vite+solid.md +3 -3
  1277. package/docs/zh/intlayer_with_vite+svelte.md +4 -12
  1278. package/docs/zh/intlayer_with_vite+vanilla.md +3 -3
  1279. package/docs/zh/intlayer_with_vite+vue.md +3 -3
  1280. package/docs/zh/migration_from_i18next_to_intlayer.md +3 -3
  1281. package/docs/zh/migration_from_next-i18next_to_intlayer.md +3 -3
  1282. package/docs/zh/migration_from_next-intl_to_intlayer.md +3 -3
  1283. package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +3 -3
  1284. package/docs/zh/migration_from_react-i18next_to_intlayer.md +3 -3
  1285. package/docs/zh/migration_from_vue-i18n_to_intlayer.md +3 -3
  1286. package/docs/zh-TW/bundle_optimization.md +186 -186
  1287. package/docs/zh-TW/intlayer_with_angular_21.md +3 -3
  1288. package/package.json +6 -6
  1289. 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, pre-push, pull request и runtime. Как заблокировать сборку по покрытию, безопасно автозаполнять переводы и избежать бесконечного цикла коммитов.
6
+ keywords:
7
+ - автоматизация переводов ci
8
+ - i18n ci cd
9
+ - github actions переводы
10
+ - husky pre-push
11
+ - непрерывная локализация
12
+ - translation pipeline
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
+ Приведенные ниже схемы пайплайнов не зависят от используемой библиотеки, как и инструменты. Если ваши переводы хранятся в JSON-каталогах для i18next, next-intl, react-intl, vue-i18n или next-translate, [плагин Sync JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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", // или "icu" для next-intl / react-intl
39
+ }),
40
+ ],
41
+ };
42
+
43
+ export default config;
44
+ ```
45
+
46
+ Ваше приложение продолжает импортировать то, что импортировало раньше. CI-задачи затем заполняют и проверяют существующие каталоги, а в ревью будет виден обычный diff в `locales/fr/checkout.json`, а не глобальная миграция кодовой базы. Также есть [плагин Sync PO](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-po.md) для gettext и [адаптеры совместимости](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compat/index.md) для сохранения runtime API без изменений.
47
+
48
+ ## Разделяйте блокировку (gate) и заполнение (fill)
49
+
50
+ Две совершенно разные задачи постоянно путают между собой.
51
+
52
+ **Gate (барьер)** — это проверка, которая падает с ошибкой. Она указывает, что сборка не должна попасть в релиз из-за отсутствия обязательных переводов. Gate ничего не записывает.
53
+
54
+ **Fill (заполнение)** — это мутация данных. Команда генерирует недостающие переводы и коммитит их. Fill никогда не роняет сборку.
55
+
56
+ Запуск только fill означает, что ничто никогда не блокируется, и непроверенный машинный текст попадает напрямую в продакшен. Запуск только gate означает, что билд становится красным и человеку приходится вмешиваться каждый раз. Большинству команд нужны оба механизма, привязанные к разным триггерам: fill на этапе pull request, gate при слиянии в релизную ветку.
57
+
58
+ ## Где размещать автоматизацию
59
+
60
+ | Этап | Триггер | Для чего подходит | Затраты |
61
+ | :------------ | :-------- | :------------------------------------------ | :----------------------------------------------- |
62
+ | Pre-push хук | Git local | Быстрая обратная связь, не тратит минут CI | Работает на машине разработчика с его API-ключом |
63
+ | Pull request | CI job | Ревью до слияния, единое место для секретов | Минуты CI плюс запросы к модели на каждый PR |
64
+ | Release ветка | CI job | Жесткая блокировка по покрытию | Дешево, без вызовов нейросетей |
65
+ | Runtime | 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
+ Четыре детали здесь имеют решающее значение:
137
+
138
+ - **`fetch-depth: 0`** необходим для работы `--git-diff`. У поверхностного клона нет базовой ветки для построения diff, и заполнение молча ничего не сделает.
139
+ - **`[skip ci]` в сообщении коммита** предотвращает зацикливание воркфлоу. Без него коммит инициирует новый запуск, который коммитит снова, сжигая баланс CI за ночь.
140
+ - **`concurrency` с `cancel-in-progress`** защищает от гонки двух одновременных пушей при записи файлов.
141
+ - **`--git-diff`** ограничивает обработку только тем, что изменилось в PR. Без него весь каталог будет переводиться заново при каждом запуске.
142
+
143
+ Переводы фиксируются коммитом прямо в ветку PR, что дает возможность ревьюеру проверить их в diff. В этом и заключается смысл выполнения шага на этапе PR, а не после слияния.
144
+
145
+ ## Релизная ветка: блокирующий барьер (gate)
146
+
147
+ Барьер не требует доступа к моделям и должен выполняться быстро.
148
+
149
+ ```yaml fileName=".github/workflows/ci.yml"
150
+ - run: npm run test:i18n
151
+ ```
152
+
153
+ С проверкой через тест, проверяющий покрытие ассертами:
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, поэтому она только информирует, но не блокирует сборку. Используйте ее локально, а в CI запускайте тест с ассертом. Подробнее в статье [как находить недостающие переводы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/detecting_missing_translations.md).
168
+
169
+ ## `requiredLocales` делает барьер жизнеспособным
170
+
171
+ Барьер, требующий полноты всех восемнадцати языков, блокирует релиз до тех пор, пока не будет готов самый медленный перевод, и в итоге отключается командой через месяц.
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
+ Объявляйте все поддерживаемые языки, но обязательными делайте только те, которые действительно критичны для релиза. Остальные локали наполняются асинхронно и не задерживают выпуск версий.
188
+
189
+ ## Вынос переводов за пределы репозитория
190
+
191
+ Второй подход заключается в объявлении одного базового языка в коде и управлении остальными через CMS с Live Sync. Правки контента в таком случае не требуют пересборки проекта, отделяя работу редакторов от цикла релизов кода.
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-checkout полностью описывает состояние интерфейса. Подробнее в [документации по CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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`.** Нет базы для сравнения, ничего не заполняется и ошибок не возникает.
232
+ - **Перевод всего каталога при каждом прогоне.** Ограничивайте запуск флагами `--git-diff` или `--unpushed`.
233
+ - **Использование отчета CLI в качестве барьера.** Он завершается с кодом 0.
234
+ - **Требование обязательности всех локалей сразу.** Барьер отключают после первой же сорванной доставки релиза.
235
+ - **Пайплайн с автозаполнением, но без проверочного барьера.** Ничего не падает, и сырой машинный текст уходит клиентам.
236
+ - **API-ключи моделей в репозитории.** Они должны храниться только в секретах CI.
237
+
238
+ ## Полезные материалы
239
+
240
+ - [CI/CD: автогенерация переводов с Husky, GitHub Actions и CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/CI_CD.md)
241
+ - [Тестирование контента и блокировка сборки по покрытию](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/testing.md)
242
+ - [autoFill: создание файлов деклараций для каждой локали](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/autoFill.md)
243
+ - [Справочник конфигурации: `locales`, `requiredLocales`, `editor`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
244
+ - [Отчеты производительности фреймворков](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/benchmark/index.md)
245
+ - [Адаптер совместимости с i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compat/i18next.md)
246
+ - [Как находить недостающие переводы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/detecting_missing_translations.md)
247
+ - [Как тестировать переводы без хрупких тестов](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/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).
@@ -0,0 +1,179 @@
1
+ ---
2
+ createdAt: 2026-09-02
3
+ updatedAt: 2026-09-02
4
+ title: "Как тестировать переводы без создания хрупких тестов"
5
+ description: Что стоит тестировать в приложении с i18n, а что нет. Тесты рендеринга на основе провайдера, псевдолокализация, покрытие RTL и плюрализации, а также ловушка снэпшотов.
6
+ keywords:
7
+ - тестирование переводов
8
+ - i18n тестирование
9
+ - testing library i18n
10
+ - псевдолокализация
11
+ - тесты провайдера локали
12
+ - snapshot test i18n
13
+ slugs:
14
+ - blog
15
+ - i18n-testing-strategies
16
+ author: aymericzip
17
+ ---
18
+
19
+ # Как тестировать переводы без создания хрупких тестов
20
+
21
+ Большинство наборов тестов i18n ломаются по одной из двух причин. Либо они проверяют буквальный текст, из-за чего любая смена формулировки ломает пятьдесят тестов и команда их удаляет. Либо они рендерят всё в локали по умолчанию, ничего не проверяя для остальных семнадцати языков. Оба пути ведут в одну точку, набору тестов перестают доверять.
22
+
23
+ ## Содержание
24
+
25
+ <TOC/>
26
+
27
+ ## Паттерны не зависят от библиотеки
28
+
29
+ Каждый приведенный ниже паттерн работает на любом стеке i18n. Замените провайдер на `I18nextProvider`, `NextIntlClientProvider` или `IntlProvider`, и тесты останутся идентичными, поскольку они проверяют отрендеренный вывод, а не API конкретной библиотеки.
30
+
31
+ Инструменты проверки покрытия также переносимы: с [плагином Sync JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-json.md), направленным на ваши каталоги, или [адаптером совместимости](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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/ru/detecting_missing_translations.md); данный материал посвящен остальным аспектам.
48
+
49
+ ## Рендеринг внутри провайдера и поиск по ролям
50
+
51
+ Основной паттерн состоит в том, чтобы монтировать компонент внутри провайдера локали и искать элементы по роли или test-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-узел. В 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"])("локаль %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
+ ## Псевдолокализация находит то, что скрыто от каталогов
103
+
104
+ Добавьте тестовую локаль, которая видоизменяет каждую строку, например превращая `Checkout` в `[!!! Çĥéçķöũţ !!!]`. Затем отрендерите страницу на этом языке.
105
+
106
+ Всё, что осталось на обычном английском, захардкожено в коде. Никакой аудит каталогов этого не заметит, так как для инструментов этой строки просто не существует. Скобки решают вторую задачу: они удлиняют текст примерно на 30 процентов, выявляя переполнения верстки еще до того, как они проявятся на немецком.
107
+
108
+ Эту проверку лучше запускать в виде визуального или end-to-end прогона, а не юнит-теста, поскольку дефекты видны визуально.
109
+
110
+ ## Для множественных чисел нужен тест на категорию, а не на язык
111
+
112
+ Ошибки плюрализации часто остаются незамеченными, потому что в английском языке всего две формы, и большинство разработчиков тестируют только их. В польском языке четыре формы, в арабском шесть.
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
+ Выбирайте значения, попадающие во все категории CLDR для самого сложного языка, вместо того чтобы проверять только 1 и 2. `Intl.PluralRules` сообщает, в какую категорию попадает число, позволяя составить выборку без угадывания. Подробнее о категориях в [статье о формате сообщений ICU](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/icu_message_format.md).
124
+
125
+ ## Ловушка снэпшот-тестов (Snapshots)
126
+
127
+ Снэпшоты и i18n плохо сочетаются. Снэпшот локализованного компонента фиксирует каждую строку: когда переводчик исправляет опечатку в португальском, зеленый тест становится красным в файле, который ревьюер не может объективно оценить. После нескольких ложных тревог кто-то запускает `-u` не глядя, и снэпшоты теряют всякий смысл.
128
+
129
+ Если вы хотите использовать снэпшоты, делайте их только для одной локали и воспринимайте как структурную, а не контентную проверку. Всё языкозависимое должно проверяться явными ассертами.
130
+
131
+ ## Тестируйте согласование локали, а не только рендеринг
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**: один рендеринг с провайдером на локаль с проверкой ролей и отсутствия сырых ключей.
157
+ - **Coverage**: проверка на основе данных, гарантирующая отсутствие пропусков в обязательных локалях.
158
+ - **Visual или E2E**: прогон псевдолокализации и страницы с RTL, так как эти проблемы визуальные.
159
+
160
+ Первые три запускайте в пайплайне на каждый коммит. Последний экономичнее запускать в ночных сборках.
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/ru/testing.md)
174
+ - [Плагин ESLint: поиск захардкоженных строк и неиспользуемого контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/eslint.md)
175
+ - [Форматтеры и утилиты локалей, включая `getHTMLTextDir`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/formatters.md)
176
+ - [Отчеты производительности между различными фреймворками](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/benchmark/index.md)
177
+ - [Адаптер совместимости react-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compat/react-i18next.md)
178
+ - [Как находить недостающие переводы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/detecting_missing_translations.md)
179
+ - [Формат сообщений ICU: множественные числа, выбор и скелетоны](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/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` не является обязательным. Используйте `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` не является обязательным. Используйте `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` не является обязательным. Используйте `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` не является обязательным. Используйте `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` не является обязательным. Используйте `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` не является обязательным. Используйте `intlayer-cli init`, если вы являетесь ИИ-агентом.