@intlayer/docs 9.5.0 → 9.5.2

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 (745) hide show
  1. package/blog/ar/history_of_i18n.md +304 -0
  2. package/blog/de/history_of_i18n.md +304 -0
  3. package/blog/en/history_of_i18n.md +304 -0
  4. package/blog/en-GB/history_of_i18n.md +304 -0
  5. package/blog/es/history_of_i18n.md +304 -0
  6. package/blog/fr/history_of_i18n.md +304 -0
  7. package/blog/hi/history_of_i18n.md +304 -0
  8. package/blog/id/history_of_i18n.md +304 -0
  9. package/blog/it/history_of_i18n.md +304 -0
  10. package/blog/ja/history_of_i18n.md +304 -0
  11. package/blog/ko/history_of_i18n.md +304 -0
  12. package/blog/pl/history_of_i18n.md +304 -0
  13. package/blog/pt/history_of_i18n.md +304 -0
  14. package/blog/ru/history_of_i18n.md +304 -0
  15. package/blog/tr/history_of_i18n.md +304 -0
  16. package/blog/uk/history_of_i18n.md +304 -0
  17. package/blog/vi/history_of_i18n.md +304 -0
  18. package/blog/zh/history_of_i18n.md +304 -0
  19. package/dist/cjs/generated/blog.entry.cjs +20 -0
  20. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  21. package/dist/cjs/generated/docs.entry.cjs +20 -20
  22. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  23. package/dist/esm/generated/blog.entry.mjs +20 -0
  24. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  25. package/dist/esm/generated/docs.entry.mjs +20 -20
  26. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -0
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +1 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/docs/ar/benchmark/index.md +4 -1
  32. package/docs/ar/benchmark/nextjs.md +32 -27
  33. package/docs/ar/benchmark/solid.md +13 -10
  34. package/docs/ar/benchmark/svelte.md +12 -9
  35. package/docs/ar/benchmark/tanstack.md +29 -24
  36. package/docs/ar/benchmark/vue.md +11 -7
  37. package/docs/ar/cli/build.md +8 -1
  38. package/docs/ar/cli/configuration.md +3 -1
  39. package/docs/ar/cli/doc-review.md +8 -1
  40. package/docs/ar/cli/doc-translate.md +5 -1
  41. package/docs/ar/cli/extract.md +2 -1
  42. package/docs/ar/cli/fill.md +5 -1
  43. package/docs/ar/cli/index.md +4 -5
  44. package/docs/ar/cli/live.md +5 -1
  45. package/docs/ar/cli/login.md +2 -2
  46. package/docs/ar/cli/pull.md +5 -1
  47. package/docs/ar/cli/push.md +5 -1
  48. package/docs/ar/cli/scan.md +5 -1
  49. package/docs/ar/cli/standalone.md +5 -1
  50. package/docs/ar/cli/test.md +5 -1
  51. package/docs/ar/cli/watch.md +5 -1
  52. package/docs/ar/compat/i18n-js.md +1 -1
  53. package/docs/ar/compat/i18next.md +1 -1
  54. package/docs/ar/compat/lingui.md +1 -1
  55. package/docs/ar/compat/next-i18next.md +1 -1
  56. package/docs/ar/compat/next-intl.md +1 -1
  57. package/docs/ar/compat/next-translate.md +1 -1
  58. package/docs/ar/compat/ngx-translate.md +1 -1
  59. package/docs/ar/compat/nuxtjs-i18n.md +1 -1
  60. package/docs/ar/compat/polyglot.md +1 -1
  61. package/docs/ar/compat/react-i18next.md +1 -1
  62. package/docs/ar/compat/react-intl.md +1 -1
  63. package/docs/ar/compat/svelte-i18n.md +1 -1
  64. package/docs/ar/compat/transloco.md +1 -1
  65. package/docs/ar/compat/vue-i18n.md +1 -1
  66. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  67. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  68. package/docs/ar/intlayer_with_remix_3.md +543 -0
  69. package/docs/bn/cli/index.md +4 -5
  70. package/docs/bn/cli/scan.md +5 -1
  71. package/docs/bn/cli/standalone.md +5 -1
  72. package/docs/cs/cli/index.md +4 -5
  73. package/docs/cs/cli/scan.md +5 -1
  74. package/docs/cs/cli/standalone.md +5 -1
  75. package/docs/de/benchmark/index.md +4 -1
  76. package/docs/de/benchmark/nextjs.md +32 -27
  77. package/docs/de/benchmark/solid.md +13 -10
  78. package/docs/de/benchmark/svelte.md +12 -9
  79. package/docs/de/benchmark/tanstack.md +29 -24
  80. package/docs/de/benchmark/vue.md +11 -7
  81. package/docs/de/cli/build.md +8 -1
  82. package/docs/de/cli/configuration.md +3 -1
  83. package/docs/de/cli/doc-review.md +8 -1
  84. package/docs/de/cli/doc-translate.md +5 -1
  85. package/docs/de/cli/extract.md +2 -1
  86. package/docs/de/cli/fill.md +5 -1
  87. package/docs/de/cli/index.md +4 -5
  88. package/docs/de/cli/live.md +5 -1
  89. package/docs/de/cli/login.md +2 -2
  90. package/docs/de/cli/pull.md +5 -1
  91. package/docs/de/cli/push.md +5 -1
  92. package/docs/de/cli/scan.md +5 -1
  93. package/docs/de/cli/standalone.md +5 -1
  94. package/docs/de/cli/test.md +5 -1
  95. package/docs/de/cli/watch.md +5 -1
  96. package/docs/de/compat/i18n-js.md +1 -1
  97. package/docs/de/compat/i18next.md +1 -1
  98. package/docs/de/compat/lingui.md +1 -1
  99. package/docs/de/compat/next-i18next.md +1 -1
  100. package/docs/de/compat/next-intl.md +1 -1
  101. package/docs/de/compat/next-translate.md +1 -1
  102. package/docs/de/compat/ngx-translate.md +1 -1
  103. package/docs/de/compat/nuxtjs-i18n.md +1 -1
  104. package/docs/de/compat/polyglot.md +1 -1
  105. package/docs/de/compat/react-i18next.md +1 -1
  106. package/docs/de/compat/react-intl.md +1 -1
  107. package/docs/de/compat/svelte-i18n.md +1 -1
  108. package/docs/de/compat/transloco.md +1 -1
  109. package/docs/de/compat/vue-i18n.md +1 -1
  110. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  111. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  112. package/docs/de/intlayer_with_remix_3.md +543 -0
  113. package/docs/en/benchmark/index.md +4 -1
  114. package/docs/en/benchmark/nextjs.md +32 -27
  115. package/docs/en/benchmark/solid.md +13 -10
  116. package/docs/en/benchmark/svelte.md +12 -9
  117. package/docs/en/benchmark/tanstack.md +30 -25
  118. package/docs/en/benchmark/vue.md +11 -7
  119. package/docs/en/cli/build.md +8 -1
  120. package/docs/en/cli/configuration.md +3 -1
  121. package/docs/en/cli/doc-review.md +8 -1
  122. package/docs/en/cli/doc-translate.md +5 -1
  123. package/docs/en/cli/extract.md +2 -1
  124. package/docs/en/cli/fill.md +5 -1
  125. package/docs/en/cli/index.md +4 -5
  126. package/docs/en/cli/live.md +5 -1
  127. package/docs/en/cli/login.md +2 -2
  128. package/docs/en/cli/pull.md +5 -1
  129. package/docs/en/cli/push.md +5 -1
  130. package/docs/en/cli/scan.md +5 -1
  131. package/docs/en/cli/standalone.md +5 -1
  132. package/docs/en/cli/test.md +5 -1
  133. package/docs/en/cli/watch.md +5 -1
  134. package/docs/en/compat/i18n-js.md +1 -1
  135. package/docs/en/compat/i18next.md +1 -1
  136. package/docs/en/compat/lingui.md +1 -1
  137. package/docs/en/compat/next-i18next.md +1 -1
  138. package/docs/en/compat/next-intl.md +1 -1
  139. package/docs/en/compat/next-translate.md +1 -1
  140. package/docs/en/compat/ngx-translate.md +1 -1
  141. package/docs/en/compat/nuxtjs-i18n.md +1 -1
  142. package/docs/en/compat/polyglot.md +1 -1
  143. package/docs/en/compat/react-i18next.md +1 -1
  144. package/docs/en/compat/react-intl.md +1 -1
  145. package/docs/en/compat/svelte-i18n.md +1 -1
  146. package/docs/en/compat/transloco.md +1 -1
  147. package/docs/en/compat/vue-i18n.md +1 -1
  148. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  149. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  150. package/docs/en/intlayer_with_remix_3.md +540 -0
  151. package/docs/en-GB/benchmark/index.md +4 -1
  152. package/docs/en-GB/benchmark/nextjs.md +32 -27
  153. package/docs/en-GB/benchmark/solid.md +13 -10
  154. package/docs/en-GB/benchmark/svelte.md +12 -9
  155. package/docs/en-GB/benchmark/tanstack.md +29 -24
  156. package/docs/en-GB/benchmark/vue.md +11 -7
  157. package/docs/en-GB/cli/build.md +8 -1
  158. package/docs/en-GB/cli/configuration.md +3 -1
  159. package/docs/en-GB/cli/doc-review.md +8 -1
  160. package/docs/en-GB/cli/doc-translate.md +5 -1
  161. package/docs/en-GB/cli/extract.md +2 -1
  162. package/docs/en-GB/cli/fill.md +5 -1
  163. package/docs/en-GB/cli/index.md +4 -5
  164. package/docs/en-GB/cli/live.md +5 -1
  165. package/docs/en-GB/cli/login.md +2 -2
  166. package/docs/en-GB/cli/pull.md +5 -1
  167. package/docs/en-GB/cli/push.md +5 -1
  168. package/docs/en-GB/cli/scan.md +5 -1
  169. package/docs/en-GB/cli/standalone.md +5 -1
  170. package/docs/en-GB/cli/test.md +5 -1
  171. package/docs/en-GB/cli/watch.md +5 -1
  172. package/docs/en-GB/compat/i18n-js.md +1 -1
  173. package/docs/en-GB/compat/i18next.md +1 -1
  174. package/docs/en-GB/compat/lingui.md +1 -1
  175. package/docs/en-GB/compat/next-i18next.md +1 -1
  176. package/docs/en-GB/compat/next-intl.md +1 -1
  177. package/docs/en-GB/compat/next-translate.md +1 -1
  178. package/docs/en-GB/compat/ngx-translate.md +1 -1
  179. package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
  180. package/docs/en-GB/compat/polyglot.md +1 -1
  181. package/docs/en-GB/compat/react-i18next.md +1 -1
  182. package/docs/en-GB/compat/react-intl.md +1 -1
  183. package/docs/en-GB/compat/svelte-i18n.md +1 -1
  184. package/docs/en-GB/compat/transloco.md +1 -1
  185. package/docs/en-GB/compat/vue-i18n.md +1 -1
  186. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  187. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  188. package/docs/en-GB/intlayer_with_remix_3.md +558 -0
  189. package/docs/es/benchmark/index.md +4 -1
  190. package/docs/es/benchmark/nextjs.md +32 -27
  191. package/docs/es/benchmark/solid.md +13 -10
  192. package/docs/es/benchmark/svelte.md +12 -9
  193. package/docs/es/benchmark/tanstack.md +29 -24
  194. package/docs/es/benchmark/vue.md +11 -7
  195. package/docs/es/cli/build.md +8 -1
  196. package/docs/es/cli/configuration.md +3 -1
  197. package/docs/es/cli/doc-review.md +8 -1
  198. package/docs/es/cli/doc-translate.md +5 -1
  199. package/docs/es/cli/extract.md +2 -1
  200. package/docs/es/cli/fill.md +5 -1
  201. package/docs/es/cli/index.md +4 -5
  202. package/docs/es/cli/live.md +5 -1
  203. package/docs/es/cli/login.md +2 -2
  204. package/docs/es/cli/pull.md +5 -1
  205. package/docs/es/cli/push.md +5 -1
  206. package/docs/es/cli/scan.md +5 -1
  207. package/docs/es/cli/standalone.md +5 -1
  208. package/docs/es/cli/test.md +5 -1
  209. package/docs/es/cli/watch.md +5 -1
  210. package/docs/es/compat/i18n-js.md +1 -1
  211. package/docs/es/compat/i18next.md +1 -1
  212. package/docs/es/compat/lingui.md +1 -1
  213. package/docs/es/compat/next-i18next.md +1 -1
  214. package/docs/es/compat/next-intl.md +1 -1
  215. package/docs/es/compat/next-translate.md +1 -1
  216. package/docs/es/compat/ngx-translate.md +1 -1
  217. package/docs/es/compat/nuxtjs-i18n.md +1 -1
  218. package/docs/es/compat/polyglot.md +1 -1
  219. package/docs/es/compat/react-i18next.md +1 -1
  220. package/docs/es/compat/react-intl.md +1 -1
  221. package/docs/es/compat/svelte-i18n.md +1 -1
  222. package/docs/es/compat/transloco.md +1 -1
  223. package/docs/es/compat/vue-i18n.md +1 -1
  224. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  225. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  226. package/docs/es/intlayer_with_remix_3.md +540 -0
  227. package/docs/fr/benchmark/index.md +4 -1
  228. package/docs/fr/benchmark/nextjs.md +32 -27
  229. package/docs/fr/benchmark/solid.md +13 -10
  230. package/docs/fr/benchmark/svelte.md +12 -9
  231. package/docs/fr/benchmark/tanstack.md +29 -24
  232. package/docs/fr/benchmark/vue.md +11 -7
  233. package/docs/fr/cli/build.md +8 -1
  234. package/docs/fr/cli/configuration.md +3 -1
  235. package/docs/fr/cli/doc-review.md +8 -1
  236. package/docs/fr/cli/doc-translate.md +5 -1
  237. package/docs/fr/cli/extract.md +2 -1
  238. package/docs/fr/cli/fill.md +5 -1
  239. package/docs/fr/cli/index.md +4 -5
  240. package/docs/fr/cli/live.md +5 -1
  241. package/docs/fr/cli/login.md +2 -2
  242. package/docs/fr/cli/pull.md +5 -1
  243. package/docs/fr/cli/push.md +5 -1
  244. package/docs/fr/cli/scan.md +5 -1
  245. package/docs/fr/cli/standalone.md +5 -1
  246. package/docs/fr/cli/test.md +5 -1
  247. package/docs/fr/cli/watch.md +5 -1
  248. package/docs/fr/compat/i18n-js.md +1 -1
  249. package/docs/fr/compat/i18next.md +1 -1
  250. package/docs/fr/compat/lingui.md +1 -1
  251. package/docs/fr/compat/next-i18next.md +1 -1
  252. package/docs/fr/compat/next-intl.md +1 -1
  253. package/docs/fr/compat/next-translate.md +1 -1
  254. package/docs/fr/compat/ngx-translate.md +1 -1
  255. package/docs/fr/compat/nuxtjs-i18n.md +1 -1
  256. package/docs/fr/compat/polyglot.md +1 -1
  257. package/docs/fr/compat/react-i18next.md +1 -1
  258. package/docs/fr/compat/react-intl.md +1 -1
  259. package/docs/fr/compat/svelte-i18n.md +1 -1
  260. package/docs/fr/compat/transloco.md +1 -1
  261. package/docs/fr/compat/vue-i18n.md +1 -1
  262. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  263. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  264. package/docs/fr/intlayer_with_remix_3.md +540 -0
  265. package/docs/hi/benchmark/index.md +4 -1
  266. package/docs/hi/benchmark/nextjs.md +32 -27
  267. package/docs/hi/benchmark/solid.md +13 -10
  268. package/docs/hi/benchmark/svelte.md +12 -9
  269. package/docs/hi/benchmark/tanstack.md +29 -24
  270. package/docs/hi/benchmark/vue.md +11 -7
  271. package/docs/hi/cli/build.md +8 -1
  272. package/docs/hi/cli/configuration.md +3 -1
  273. package/docs/hi/cli/doc-review.md +8 -1
  274. package/docs/hi/cli/doc-translate.md +5 -1
  275. package/docs/hi/cli/extract.md +2 -1
  276. package/docs/hi/cli/fill.md +5 -1
  277. package/docs/hi/cli/index.md +4 -5
  278. package/docs/hi/cli/live.md +5 -1
  279. package/docs/hi/cli/login.md +2 -2
  280. package/docs/hi/cli/pull.md +5 -1
  281. package/docs/hi/cli/push.md +5 -1
  282. package/docs/hi/cli/scan.md +5 -1
  283. package/docs/hi/cli/standalone.md +5 -1
  284. package/docs/hi/cli/test.md +5 -1
  285. package/docs/hi/cli/watch.md +5 -1
  286. package/docs/hi/compat/i18n-js.md +1 -1
  287. package/docs/hi/compat/i18next.md +1 -1
  288. package/docs/hi/compat/lingui.md +1 -1
  289. package/docs/hi/compat/next-i18next.md +1 -1
  290. package/docs/hi/compat/next-intl.md +1 -1
  291. package/docs/hi/compat/next-translate.md +1 -1
  292. package/docs/hi/compat/ngx-translate.md +1 -1
  293. package/docs/hi/compat/nuxtjs-i18n.md +1 -1
  294. package/docs/hi/compat/polyglot.md +1 -1
  295. package/docs/hi/compat/react-i18next.md +1 -1
  296. package/docs/hi/compat/react-intl.md +1 -1
  297. package/docs/hi/compat/svelte-i18n.md +1 -1
  298. package/docs/hi/compat/transloco.md +1 -1
  299. package/docs/hi/compat/vue-i18n.md +1 -1
  300. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  301. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  302. package/docs/hi/intlayer_with_remix_3.md +543 -0
  303. package/docs/id/benchmark/index.md +4 -1
  304. package/docs/id/benchmark/nextjs.md +32 -27
  305. package/docs/id/benchmark/solid.md +13 -10
  306. package/docs/id/benchmark/svelte.md +12 -9
  307. package/docs/id/benchmark/tanstack.md +29 -24
  308. package/docs/id/benchmark/vue.md +11 -7
  309. package/docs/id/cli/build.md +8 -1
  310. package/docs/id/cli/configuration.md +3 -1
  311. package/docs/id/cli/doc-review.md +8 -1
  312. package/docs/id/cli/doc-translate.md +5 -1
  313. package/docs/id/cli/extract.md +2 -1
  314. package/docs/id/cli/fill.md +5 -1
  315. package/docs/id/cli/index.md +4 -5
  316. package/docs/id/cli/live.md +5 -1
  317. package/docs/id/cli/login.md +2 -2
  318. package/docs/id/cli/pull.md +5 -1
  319. package/docs/id/cli/push.md +5 -1
  320. package/docs/id/cli/scan.md +5 -1
  321. package/docs/id/cli/standalone.md +5 -1
  322. package/docs/id/cli/test.md +5 -1
  323. package/docs/id/cli/watch.md +5 -1
  324. package/docs/id/compat/i18n-js.md +1 -1
  325. package/docs/id/compat/i18next.md +1 -1
  326. package/docs/id/compat/lingui.md +1 -1
  327. package/docs/id/compat/next-i18next.md +1 -1
  328. package/docs/id/compat/next-intl.md +1 -1
  329. package/docs/id/compat/next-translate.md +1 -1
  330. package/docs/id/compat/ngx-translate.md +1 -1
  331. package/docs/id/compat/nuxtjs-i18n.md +1 -1
  332. package/docs/id/compat/polyglot.md +1 -1
  333. package/docs/id/compat/react-i18next.md +1 -1
  334. package/docs/id/compat/react-intl.md +1 -1
  335. package/docs/id/compat/svelte-i18n.md +1 -1
  336. package/docs/id/compat/transloco.md +1 -1
  337. package/docs/id/compat/vue-i18n.md +1 -1
  338. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  339. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  340. package/docs/id/intlayer_with_remix_3.md +566 -0
  341. package/docs/it/benchmark/index.md +4 -1
  342. package/docs/it/benchmark/nextjs.md +32 -27
  343. package/docs/it/benchmark/solid.md +13 -10
  344. package/docs/it/benchmark/svelte.md +12 -9
  345. package/docs/it/benchmark/tanstack.md +29 -24
  346. package/docs/it/benchmark/vue.md +11 -7
  347. package/docs/it/cli/build.md +8 -1
  348. package/docs/it/cli/configuration.md +3 -1
  349. package/docs/it/cli/doc-review.md +8 -1
  350. package/docs/it/cli/doc-translate.md +5 -1
  351. package/docs/it/cli/extract.md +2 -1
  352. package/docs/it/cli/fill.md +5 -1
  353. package/docs/it/cli/index.md +4 -5
  354. package/docs/it/cli/live.md +5 -1
  355. package/docs/it/cli/login.md +2 -2
  356. package/docs/it/cli/pull.md +5 -1
  357. package/docs/it/cli/push.md +5 -1
  358. package/docs/it/cli/scan.md +5 -1
  359. package/docs/it/cli/standalone.md +5 -1
  360. package/docs/it/cli/test.md +5 -1
  361. package/docs/it/cli/watch.md +5 -1
  362. package/docs/it/compat/i18n-js.md +1 -1
  363. package/docs/it/compat/i18next.md +1 -1
  364. package/docs/it/compat/lingui.md +1 -1
  365. package/docs/it/compat/next-i18next.md +1 -1
  366. package/docs/it/compat/next-intl.md +1 -1
  367. package/docs/it/compat/next-translate.md +1 -1
  368. package/docs/it/compat/ngx-translate.md +1 -1
  369. package/docs/it/compat/nuxtjs-i18n.md +1 -1
  370. package/docs/it/compat/polyglot.md +1 -1
  371. package/docs/it/compat/react-i18next.md +1 -1
  372. package/docs/it/compat/react-intl.md +1 -1
  373. package/docs/it/compat/svelte-i18n.md +1 -1
  374. package/docs/it/compat/transloco.md +1 -1
  375. package/docs/it/compat/vue-i18n.md +1 -1
  376. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  377. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  378. package/docs/it/intlayer_with_remix_3.md +558 -0
  379. package/docs/ja/benchmark/index.md +4 -1
  380. package/docs/ja/benchmark/nextjs.md +32 -27
  381. package/docs/ja/benchmark/solid.md +13 -10
  382. package/docs/ja/benchmark/svelte.md +12 -9
  383. package/docs/ja/benchmark/tanstack.md +29 -24
  384. package/docs/ja/benchmark/vue.md +11 -7
  385. package/docs/ja/cli/build.md +8 -1
  386. package/docs/ja/cli/configuration.md +3 -1
  387. package/docs/ja/cli/doc-review.md +8 -1
  388. package/docs/ja/cli/doc-translate.md +5 -1
  389. package/docs/ja/cli/extract.md +2 -1
  390. package/docs/ja/cli/fill.md +5 -1
  391. package/docs/ja/cli/index.md +4 -5
  392. package/docs/ja/cli/live.md +5 -1
  393. package/docs/ja/cli/login.md +2 -2
  394. package/docs/ja/cli/pull.md +5 -1
  395. package/docs/ja/cli/push.md +5 -1
  396. package/docs/ja/cli/scan.md +5 -1
  397. package/docs/ja/cli/standalone.md +5 -1
  398. package/docs/ja/cli/test.md +5 -1
  399. package/docs/ja/cli/watch.md +5 -1
  400. package/docs/ja/compat/i18n-js.md +1 -1
  401. package/docs/ja/compat/i18next.md +1 -1
  402. package/docs/ja/compat/lingui.md +1 -1
  403. package/docs/ja/compat/next-i18next.md +1 -1
  404. package/docs/ja/compat/next-intl.md +1 -1
  405. package/docs/ja/compat/next-translate.md +1 -1
  406. package/docs/ja/compat/ngx-translate.md +1 -1
  407. package/docs/ja/compat/nuxtjs-i18n.md +1 -1
  408. package/docs/ja/compat/polyglot.md +1 -1
  409. package/docs/ja/compat/react-i18next.md +1 -1
  410. package/docs/ja/compat/react-intl.md +1 -1
  411. package/docs/ja/compat/svelte-i18n.md +1 -1
  412. package/docs/ja/compat/transloco.md +1 -1
  413. package/docs/ja/compat/vue-i18n.md +1 -1
  414. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  415. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  416. package/docs/ja/intlayer_with_remix_3.md +558 -0
  417. package/docs/ko/benchmark/index.md +4 -1
  418. package/docs/ko/benchmark/nextjs.md +32 -27
  419. package/docs/ko/benchmark/solid.md +13 -10
  420. package/docs/ko/benchmark/svelte.md +12 -9
  421. package/docs/ko/benchmark/tanstack.md +29 -24
  422. package/docs/ko/benchmark/vue.md +11 -7
  423. package/docs/ko/cli/build.md +8 -1
  424. package/docs/ko/cli/configuration.md +3 -1
  425. package/docs/ko/cli/doc-review.md +8 -1
  426. package/docs/ko/cli/doc-translate.md +5 -1
  427. package/docs/ko/cli/extract.md +2 -1
  428. package/docs/ko/cli/fill.md +5 -1
  429. package/docs/ko/cli/index.md +4 -5
  430. package/docs/ko/cli/live.md +5 -1
  431. package/docs/ko/cli/login.md +2 -2
  432. package/docs/ko/cli/pull.md +5 -1
  433. package/docs/ko/cli/push.md +5 -1
  434. package/docs/ko/cli/scan.md +5 -1
  435. package/docs/ko/cli/standalone.md +5 -1
  436. package/docs/ko/cli/test.md +5 -1
  437. package/docs/ko/cli/watch.md +5 -1
  438. package/docs/ko/compat/i18n-js.md +1 -1
  439. package/docs/ko/compat/i18next.md +1 -1
  440. package/docs/ko/compat/lingui.md +1 -1
  441. package/docs/ko/compat/next-i18next.md +1 -1
  442. package/docs/ko/compat/next-intl.md +1 -1
  443. package/docs/ko/compat/next-translate.md +1 -1
  444. package/docs/ko/compat/ngx-translate.md +1 -1
  445. package/docs/ko/compat/nuxtjs-i18n.md +1 -1
  446. package/docs/ko/compat/polyglot.md +1 -1
  447. package/docs/ko/compat/react-i18next.md +1 -1
  448. package/docs/ko/compat/react-intl.md +1 -1
  449. package/docs/ko/compat/svelte-i18n.md +1 -1
  450. package/docs/ko/compat/transloco.md +1 -1
  451. package/docs/ko/compat/vue-i18n.md +1 -1
  452. package/docs/ko/intlayer_with_remix_3.md +543 -0
  453. package/docs/nl/cli/index.md +4 -5
  454. package/docs/nl/cli/scan.md +5 -1
  455. package/docs/nl/cli/standalone.md +5 -1
  456. package/docs/pl/benchmark/index.md +4 -1
  457. package/docs/pl/benchmark/nextjs.md +32 -27
  458. package/docs/pl/benchmark/solid.md +13 -10
  459. package/docs/pl/benchmark/svelte.md +12 -9
  460. package/docs/pl/benchmark/tanstack.md +29 -24
  461. package/docs/pl/benchmark/vue.md +11 -7
  462. package/docs/pl/cli/build.md +8 -1
  463. package/docs/pl/cli/configuration.md +3 -1
  464. package/docs/pl/cli/doc-review.md +8 -1
  465. package/docs/pl/cli/doc-translate.md +5 -1
  466. package/docs/pl/cli/extract.md +2 -1
  467. package/docs/pl/cli/fill.md +5 -1
  468. package/docs/pl/cli/index.md +4 -5
  469. package/docs/pl/cli/live.md +5 -1
  470. package/docs/pl/cli/login.md +2 -2
  471. package/docs/pl/cli/pull.md +5 -1
  472. package/docs/pl/cli/push.md +5 -1
  473. package/docs/pl/cli/scan.md +5 -1
  474. package/docs/pl/cli/standalone.md +5 -1
  475. package/docs/pl/cli/test.md +5 -1
  476. package/docs/pl/cli/watch.md +5 -1
  477. package/docs/pl/compat/i18n-js.md +1 -1
  478. package/docs/pl/compat/i18next.md +1 -1
  479. package/docs/pl/compat/lingui.md +1 -1
  480. package/docs/pl/compat/next-i18next.md +1 -1
  481. package/docs/pl/compat/next-intl.md +1 -1
  482. package/docs/pl/compat/next-translate.md +1 -1
  483. package/docs/pl/compat/ngx-translate.md +1 -1
  484. package/docs/pl/compat/nuxtjs-i18n.md +1 -1
  485. package/docs/pl/compat/polyglot.md +1 -1
  486. package/docs/pl/compat/react-i18next.md +1 -1
  487. package/docs/pl/compat/react-intl.md +1 -1
  488. package/docs/pl/compat/svelte-i18n.md +1 -1
  489. package/docs/pl/compat/transloco.md +1 -1
  490. package/docs/pl/compat/vue-i18n.md +1 -1
  491. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  492. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  493. package/docs/pl/intlayer_with_remix_3.md +551 -0
  494. package/docs/pt/benchmark/index.md +4 -1
  495. package/docs/pt/benchmark/nextjs.md +32 -27
  496. package/docs/pt/benchmark/solid.md +13 -10
  497. package/docs/pt/benchmark/svelte.md +12 -9
  498. package/docs/pt/benchmark/tanstack.md +29 -24
  499. package/docs/pt/benchmark/vue.md +11 -7
  500. package/docs/pt/cli/build.md +8 -1
  501. package/docs/pt/cli/configuration.md +3 -1
  502. package/docs/pt/cli/doc-review.md +8 -1
  503. package/docs/pt/cli/doc-translate.md +5 -1
  504. package/docs/pt/cli/extract.md +2 -1
  505. package/docs/pt/cli/fill.md +5 -1
  506. package/docs/pt/cli/index.md +4 -5
  507. package/docs/pt/cli/live.md +5 -1
  508. package/docs/pt/cli/login.md +2 -2
  509. package/docs/pt/cli/pull.md +5 -1
  510. package/docs/pt/cli/push.md +5 -1
  511. package/docs/pt/cli/scan.md +5 -1
  512. package/docs/pt/cli/standalone.md +5 -1
  513. package/docs/pt/cli/test.md +5 -1
  514. package/docs/pt/cli/watch.md +5 -1
  515. package/docs/pt/compat/i18n-js.md +1 -1
  516. package/docs/pt/compat/i18next.md +1 -1
  517. package/docs/pt/compat/lingui.md +1 -1
  518. package/docs/pt/compat/next-i18next.md +1 -1
  519. package/docs/pt/compat/next-intl.md +1 -1
  520. package/docs/pt/compat/next-translate.md +1 -1
  521. package/docs/pt/compat/ngx-translate.md +1 -1
  522. package/docs/pt/compat/nuxtjs-i18n.md +1 -1
  523. package/docs/pt/compat/polyglot.md +1 -1
  524. package/docs/pt/compat/react-i18next.md +1 -1
  525. package/docs/pt/compat/react-intl.md +1 -1
  526. package/docs/pt/compat/svelte-i18n.md +1 -1
  527. package/docs/pt/compat/transloco.md +1 -1
  528. package/docs/pt/compat/vue-i18n.md +1 -1
  529. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  530. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  531. package/docs/pt/intlayer_with_remix_3.md +558 -0
  532. package/docs/ru/benchmark/index.md +4 -1
  533. package/docs/ru/benchmark/nextjs.md +32 -27
  534. package/docs/ru/benchmark/solid.md +13 -10
  535. package/docs/ru/benchmark/svelte.md +12 -9
  536. package/docs/ru/benchmark/tanstack.md +29 -24
  537. package/docs/ru/benchmark/vue.md +11 -7
  538. package/docs/ru/cli/build.md +8 -1
  539. package/docs/ru/cli/configuration.md +3 -1
  540. package/docs/ru/cli/doc-review.md +8 -1
  541. package/docs/ru/cli/doc-translate.md +5 -1
  542. package/docs/ru/cli/extract.md +2 -1
  543. package/docs/ru/cli/fill.md +5 -1
  544. package/docs/ru/cli/index.md +4 -5
  545. package/docs/ru/cli/live.md +5 -1
  546. package/docs/ru/cli/login.md +2 -2
  547. package/docs/ru/cli/pull.md +5 -1
  548. package/docs/ru/cli/push.md +5 -1
  549. package/docs/ru/cli/scan.md +5 -1
  550. package/docs/ru/cli/standalone.md +5 -1
  551. package/docs/ru/cli/test.md +5 -1
  552. package/docs/ru/cli/watch.md +5 -1
  553. package/docs/ru/compat/i18n-js.md +1 -1
  554. package/docs/ru/compat/i18next.md +1 -1
  555. package/docs/ru/compat/lingui.md +1 -1
  556. package/docs/ru/compat/next-i18next.md +1 -1
  557. package/docs/ru/compat/next-intl.md +1 -1
  558. package/docs/ru/compat/next-translate.md +1 -1
  559. package/docs/ru/compat/ngx-translate.md +1 -1
  560. package/docs/ru/compat/nuxtjs-i18n.md +1 -1
  561. package/docs/ru/compat/polyglot.md +1 -1
  562. package/docs/ru/compat/react-i18next.md +1 -1
  563. package/docs/ru/compat/react-intl.md +1 -1
  564. package/docs/ru/compat/svelte-i18n.md +1 -1
  565. package/docs/ru/compat/transloco.md +1 -1
  566. package/docs/ru/compat/vue-i18n.md +1 -1
  567. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  568. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  569. package/docs/ru/intlayer_with_remix_3.md +558 -0
  570. package/docs/tr/benchmark/index.md +4 -1
  571. package/docs/tr/benchmark/nextjs.md +32 -27
  572. package/docs/tr/benchmark/solid.md +13 -10
  573. package/docs/tr/benchmark/svelte.md +12 -9
  574. package/docs/tr/benchmark/tanstack.md +29 -24
  575. package/docs/tr/benchmark/vue.md +11 -7
  576. package/docs/tr/cli/build.md +8 -1
  577. package/docs/tr/cli/configuration.md +3 -1
  578. package/docs/tr/cli/doc-review.md +8 -1
  579. package/docs/tr/cli/doc-translate.md +5 -1
  580. package/docs/tr/cli/extract.md +2 -1
  581. package/docs/tr/cli/fill.md +5 -1
  582. package/docs/tr/cli/index.md +4 -5
  583. package/docs/tr/cli/live.md +5 -1
  584. package/docs/tr/cli/login.md +2 -2
  585. package/docs/tr/cli/pull.md +5 -1
  586. package/docs/tr/cli/push.md +5 -1
  587. package/docs/tr/cli/scan.md +5 -1
  588. package/docs/tr/cli/standalone.md +5 -1
  589. package/docs/tr/cli/test.md +5 -1
  590. package/docs/tr/cli/watch.md +5 -1
  591. package/docs/tr/compat/i18n-js.md +1 -1
  592. package/docs/tr/compat/i18next.md +1 -1
  593. package/docs/tr/compat/lingui.md +1 -1
  594. package/docs/tr/compat/next-i18next.md +1 -1
  595. package/docs/tr/compat/next-intl.md +1 -1
  596. package/docs/tr/compat/next-translate.md +1 -1
  597. package/docs/tr/compat/ngx-translate.md +1 -1
  598. package/docs/tr/compat/nuxtjs-i18n.md +1 -1
  599. package/docs/tr/compat/polyglot.md +1 -1
  600. package/docs/tr/compat/react-i18next.md +1 -1
  601. package/docs/tr/compat/react-intl.md +1 -1
  602. package/docs/tr/compat/svelte-i18n.md +1 -1
  603. package/docs/tr/compat/transloco.md +1 -1
  604. package/docs/tr/compat/vue-i18n.md +1 -1
  605. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  606. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  607. package/docs/tr/intlayer_with_remix_3.md +566 -0
  608. package/docs/uk/benchmark/index.md +4 -1
  609. package/docs/uk/benchmark/nextjs.md +32 -27
  610. package/docs/uk/benchmark/solid.md +13 -10
  611. package/docs/uk/benchmark/svelte.md +12 -9
  612. package/docs/uk/benchmark/tanstack.md +29 -24
  613. package/docs/uk/benchmark/vue.md +11 -7
  614. package/docs/uk/cli/build.md +8 -1
  615. package/docs/uk/cli/configuration.md +3 -1
  616. package/docs/uk/cli/doc-review.md +8 -1
  617. package/docs/uk/cli/doc-translate.md +5 -1
  618. package/docs/uk/cli/extract.md +2 -1
  619. package/docs/uk/cli/fill.md +5 -1
  620. package/docs/uk/cli/index.md +4 -5
  621. package/docs/uk/cli/live.md +5 -1
  622. package/docs/uk/cli/login.md +2 -2
  623. package/docs/uk/cli/pull.md +5 -1
  624. package/docs/uk/cli/push.md +5 -1
  625. package/docs/uk/cli/scan.md +5 -1
  626. package/docs/uk/cli/standalone.md +5 -1
  627. package/docs/uk/cli/test.md +5 -1
  628. package/docs/uk/cli/watch.md +5 -1
  629. package/docs/uk/compat/i18n-js.md +1 -1
  630. package/docs/uk/compat/i18next.md +1 -1
  631. package/docs/uk/compat/lingui.md +1 -1
  632. package/docs/uk/compat/next-i18next.md +1 -1
  633. package/docs/uk/compat/next-intl.md +1 -1
  634. package/docs/uk/compat/next-translate.md +1 -1
  635. package/docs/uk/compat/ngx-translate.md +1 -1
  636. package/docs/uk/compat/nuxtjs-i18n.md +1 -1
  637. package/docs/uk/compat/polyglot.md +1 -1
  638. package/docs/uk/compat/react-i18next.md +1 -1
  639. package/docs/uk/compat/react-intl.md +1 -1
  640. package/docs/uk/compat/svelte-i18n.md +1 -1
  641. package/docs/uk/compat/transloco.md +1 -1
  642. package/docs/uk/compat/vue-i18n.md +1 -1
  643. package/docs/uk/intlayer_with_nextjs_15.md +1 -1
  644. package/docs/uk/intlayer_with_nextjs_16.md +1 -1
  645. package/docs/uk/intlayer_with_remix_3.md +566 -0
  646. package/docs/ur/cli/index.md +4 -5
  647. package/docs/ur/cli/scan.md +5 -1
  648. package/docs/ur/cli/standalone.md +5 -1
  649. package/docs/vi/benchmark/index.md +4 -1
  650. package/docs/vi/benchmark/nextjs.md +32 -27
  651. package/docs/vi/benchmark/solid.md +13 -10
  652. package/docs/vi/benchmark/svelte.md +12 -9
  653. package/docs/vi/benchmark/tanstack.md +29 -24
  654. package/docs/vi/benchmark/vue.md +11 -7
  655. package/docs/vi/cli/build.md +8 -1
  656. package/docs/vi/cli/configuration.md +3 -1
  657. package/docs/vi/cli/doc-review.md +8 -1
  658. package/docs/vi/cli/doc-translate.md +5 -1
  659. package/docs/vi/cli/extract.md +2 -1
  660. package/docs/vi/cli/fill.md +5 -1
  661. package/docs/vi/cli/index.md +4 -5
  662. package/docs/vi/cli/live.md +5 -1
  663. package/docs/vi/cli/login.md +2 -2
  664. package/docs/vi/cli/pull.md +5 -1
  665. package/docs/vi/cli/push.md +5 -1
  666. package/docs/vi/cli/scan.md +5 -1
  667. package/docs/vi/cli/standalone.md +5 -1
  668. package/docs/vi/cli/test.md +5 -1
  669. package/docs/vi/cli/watch.md +5 -1
  670. package/docs/vi/compat/i18n-js.md +1 -1
  671. package/docs/vi/compat/i18next.md +1 -1
  672. package/docs/vi/compat/lingui.md +1 -1
  673. package/docs/vi/compat/next-i18next.md +1 -1
  674. package/docs/vi/compat/next-intl.md +1 -1
  675. package/docs/vi/compat/next-translate.md +1 -1
  676. package/docs/vi/compat/ngx-translate.md +1 -1
  677. package/docs/vi/compat/nuxtjs-i18n.md +1 -1
  678. package/docs/vi/compat/polyglot.md +1 -1
  679. package/docs/vi/compat/react-i18next.md +1 -1
  680. package/docs/vi/compat/react-intl.md +1 -1
  681. package/docs/vi/compat/svelte-i18n.md +1 -1
  682. package/docs/vi/compat/transloco.md +1 -1
  683. package/docs/vi/compat/vue-i18n.md +1 -1
  684. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  685. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  686. package/docs/vi/intlayer_with_remix_3.md +566 -0
  687. package/docs/zh/benchmark/index.md +4 -1
  688. package/docs/zh/benchmark/nextjs.md +32 -27
  689. package/docs/zh/benchmark/solid.md +13 -10
  690. package/docs/zh/benchmark/svelte.md +12 -9
  691. package/docs/zh/benchmark/tanstack.md +29 -24
  692. package/docs/zh/benchmark/vue.md +11 -7
  693. package/docs/zh/cli/build.md +8 -1
  694. package/docs/zh/cli/configuration.md +3 -1
  695. package/docs/zh/cli/doc-review.md +8 -1
  696. package/docs/zh/cli/doc-translate.md +5 -1
  697. package/docs/zh/cli/extract.md +2 -1
  698. package/docs/zh/cli/fill.md +5 -1
  699. package/docs/zh/cli/index.md +4 -5
  700. package/docs/zh/cli/live.md +5 -1
  701. package/docs/zh/cli/login.md +2 -2
  702. package/docs/zh/cli/pull.md +5 -1
  703. package/docs/zh/cli/push.md +5 -1
  704. package/docs/zh/cli/scan.md +5 -1
  705. package/docs/zh/cli/standalone.md +5 -1
  706. package/docs/zh/cli/test.md +5 -1
  707. package/docs/zh/cli/watch.md +5 -1
  708. package/docs/zh/compat/i18n-js.md +1 -1
  709. package/docs/zh/compat/i18next.md +1 -1
  710. package/docs/zh/compat/lingui.md +1 -1
  711. package/docs/zh/compat/next-i18next.md +1 -1
  712. package/docs/zh/compat/next-intl.md +1 -1
  713. package/docs/zh/compat/next-translate.md +1 -1
  714. package/docs/zh/compat/ngx-translate.md +1 -1
  715. package/docs/zh/compat/nuxtjs-i18n.md +1 -1
  716. package/docs/zh/compat/polyglot.md +1 -1
  717. package/docs/zh/compat/react-i18next.md +1 -1
  718. package/docs/zh/compat/react-intl.md +1 -1
  719. package/docs/zh/compat/svelte-i18n.md +1 -1
  720. package/docs/zh/compat/transloco.md +1 -1
  721. package/docs/zh/compat/vue-i18n.md +1 -1
  722. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  723. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  724. package/docs/zh/intlayer_with_remix_3.md +558 -0
  725. package/package.json +7 -7
  726. package/src/generated/blog.entry.ts +20 -0
  727. package/src/generated/docs.entry.ts +20 -20
  728. package/docs/ar/cli/ci.md +0 -186
  729. package/docs/de/cli/ci.md +0 -186
  730. package/docs/en/cli/ci.md +0 -216
  731. package/docs/en-GB/cli/ci.md +0 -186
  732. package/docs/es/cli/ci.md +0 -186
  733. package/docs/fr/cli/ci.md +0 -186
  734. package/docs/hi/cli/ci.md +0 -186
  735. package/docs/id/cli/ci.md +0 -186
  736. package/docs/it/cli/ci.md +0 -186
  737. package/docs/ja/cli/ci.md +0 -186
  738. package/docs/ko/cli/ci.md +0 -186
  739. package/docs/pl/cli/ci.md +0 -186
  740. package/docs/pt/cli/ci.md +0 -186
  741. package/docs/ru/cli/ci.md +0 -186
  742. package/docs/tr/cli/ci.md +0 -186
  743. package/docs/uk/cli/ci.md +0 -186
  744. package/docs/vi/cli/ci.md +0 -186
  745. package/docs/zh/cli/ci.md +0 -186
@@ -0,0 +1,543 @@
1
+ ---
2
+ createdAt: 2026-09-09
3
+ updatedAt: 2026-09-11
4
+ title: "Remix 3 i18n - الدليل الكامل لترجمة تطبيقك"
5
+ description: "وداعًا لـ i18next. دليل 2026 لإنشاء تطبيق Remix 3 متعدد اللغات (i18n). ترجم باستخدام وكلاء الذكاء الاصطناعي وحسّن حجم الحزمة و SEO والأداء."
6
+ keywords:
7
+ - تدويل
8
+ - توثيق
9
+ - Intlayer
10
+ - Remix 3
11
+ - Remix
12
+ - JavaScript
13
+ - TypeScript
14
+ - معايير الويب
15
+ slugs:
16
+ - doc
17
+ - environment
18
+ - remix-3
19
+ applicationTemplate: https://github.com/aymericzip/intlayer-remix-3-template
20
+ applicationShowcase: https://intlayer-remix-3-template.vercel.app
21
+ history:
22
+ - version: 9.5.0
23
+ date: 2026-09-09
24
+ changes: "التوثيق الأولي لـ Remix 3"
25
+ author: aymericzip
26
+ ---
27
+
28
+ # ترجم موقع Remix 3 الخاص بك باستخدام Intlayer | التدويل (i18n)
29
+
30
+ يوضح هذا الدليل كيفية دمج **Intlayer** للتدويل السلس في تطبيقات **Remix 3** مع التوجيه المدرك للغة، وتصريحات المحتوى الآمنة من حيث النوع، ومكونات JSX المعروضة على الخادم، ودعم بيئات التشغيل المتعددة عبر Node.js و Bun و Deno و Cloudflare Workers.
31
+
32
+ ## ما هو Remix 3؟
33
+
34
+ يمثل **Remix 3** تحولاً معماريًا جوهريًا نحو **إطار عمل ويب معياري ومستقل عن بيئة التشغيل ومبني بالكامل على معايير الويب**. بدلاً من الارتباط بحزم برمجية معينة أو واجهات برمجة تطبيقات خادم خاصة، يتم توزيع Remix 3 كحزم تركيبية أحادية الغرض:
35
+
36
+ - **`remix/fetch-router`** (أو `remix/router`): توجيه خفيف ومتوافق مع المعايير مبني على Fetch API (`Request` و `Response`).
37
+ - **`remix/ui`**: نموذج مكونات JSX (`jsxImportSource: "remix/ui"`). المكون عبارة عن دالة إعداد تستقبل Handle وتعيد دالة عرض، مما يجعله يشبه React ولكنه يحتفظ بالحالة في نطاقات إغلاق JavaScript عادية.
38
+ - **`remix/middleware/render`**: يثبت `context.render(<Page />)` في كل طلب، مما يرسل شجرة JSX كاستجابة HTML `Response` متدفقة.
39
+ - **`remix/node-fetch-server`**: محولات خادم لـ Node.js، مع دعم أصلي لـ Bun و Deno وبيئات الحافة (edge).
40
+ - **`remix/cookie`**: تحليل وتسلسل ملفات تعريف الارتباط بطريقة مشفرة وآمنة.
41
+
42
+ بالاقتران مع **Intlayer**، ستحصل على نظام تدويل متكامل يوفر أمانًا في وقت الترجمة، وترجمات آلية بالذكاء الاصطناعي، وعرضًا على الخادم بدون أعباء إضافية، وتوجيهًا سلسًا للغات.
43
+
44
+ ## جدول المحتويات
45
+
46
+ <TOC/>
47
+
48
+ ## لماذا تختار Intlayer على البدائل؟
49
+
50
+ مقارنة بالحلول التقليدية مثل `i18next` أو أدوات تحميل الترجمة المخصصة، يقدم Intlayer تجربة مطور متكاملة ومحسنة لمعمارية الويب الحديثة:
51
+
52
+ <AccordionGroup>
53
+ <Accordion header="تغطية كاملة لـ Remix 3 ومعايير الويب">
54
+
55
+ تم تصميم Intlayer للعمل بسلاسة مع معايير الويب (`Request` و `Response` و `Headers` و `URL`). يتكامل بسهولة مع موجه Fetch في Remix 3 من خلال برمجيات وسيطة خفيفة، حيث يستخرج اللغات من مسارات URL أو ملفات تعريف الارتباط أو ترويسات `Accept-Language` دون تقييدك ببيئة تشغيل معينة.
56
+
57
+ </Accordion>
58
+ <Accordion header="تصريحات محتوى آمنة من حيث النوع">
59
+
60
+ وداعًا لمفاتيح JSON الفضفاضة وأعطال وقت التشغيل الناتجة عن فقدان المفاتيح. يفرض Intlayer عمليات فحص TypeScript عبر جميع اللغات المصرح بها، مما يحذرك في وقت البناء إذا كانت الترجمة مفقودة أو غير صالحة.
61
+
62
+ </Accordion>
63
+ <Accordion header="لا توجد أعباء حزمة إضافية على الخادم">
64
+
65
+ يقوم Remix 3 بعرض مكونات JSX على الخادم وبث HTML إلى العميل. تتم كتابة النص المحلل للغة المطلوبة فقط في دفق الإخراج. لا حاجة لحزم ترطيب العميل أو كتالوجات الترجمة الضخمة إلا إذا تم تمييز المكون صراحةً كـ `clientEntry`.
66
+
67
+ </Accordion>
68
+ <Accordion header="جاهز لوكلاء الذكاء الاصطناعي والأتمتة">
69
+
70
+ يضع Intlayer تصريحات المحتوى (`.content.ts`) بجانب منطق المسار، مما يقلل سياق الرموز (Tokens) المطلوب للنماذج اللغوية الكبيرة (LLMs). تتيح لك أوامر CLI المضمنة مثل `intlayer fill` و `intlayer test` أتمتة الترجمات في خطوط أنابيب CI/CD بالتكلفة المباشرة لمزود الذكاء الاصطناعي الخاص بك.
71
+
72
+ </Accordion>
73
+ <Accordion header="محرر مرئي وتكامل مع أنظمة إدارة المحتوى">
74
+
75
+ بالإضافة إلى سير العمل المعتمد على الكود، يوفر Intlayer [محررًا مرئيًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md) مستضافًا ذاتيًا و [نظام إدارة محتوى عن بُعد](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_CMS.md) يسمح للمحررين والمترجمين بتحديث المحتوى دون إعادة نشر الكود.
76
+
77
+ </Accordion>
78
+ </AccordionGroup>
79
+
80
+ ## دليل خطوة بخطوة
81
+
82
+ <Tabs defaultTab="code">
83
+ <Tab label="الكود" value="code">
84
+
85
+ <iframe
86
+ src="https://ide.intlayer.org/aymericzip/intlayer-remix-3-template?file=intlayer.config.ts"
87
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
88
+ title="عرض توضيحي CodeSandbox - كيفية تدويل تطبيقك باستخدام Intlayer"
89
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
90
+ loading="lazy"
91
+ />
92
+
93
+ </Tab>
94
+ <Tab label="عرض تجريبي" value="demo">
95
+
96
+ <iframe
97
+ src="https://intlayer-remix-3-template.vercel.app"
98
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
99
+ title="عرض تجريبي لقالب Intlayer Remix 3"
100
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
101
+ loading="lazy"
102
+ />
103
+
104
+ </Tab>
105
+ </Tabs>
106
+
107
+ شاهد [قالب التطبيق](https://github.com/aymericzip/intlayer-remix-3-template) على GitHub.
108
+
109
+ <Steps>
110
+ <Step number={1} title="تثبيت التبعيات">
111
+
112
+ قم بتثبيت `intlayer` و `remix` (الإصدار 3) باستخدام مدير الحزم المفضل لديك:
113
+
114
+ ```bash packageManager="npm"
115
+ npm install intlayer remix@next
116
+ ```
117
+
118
+ ```bash packageManager="pnpm"
119
+ pnpm add intlayer remix@next
120
+ ```
121
+
122
+ ```bash packageManager="yarn"
123
+ yarn add intlayer remix@next
124
+ ```
125
+
126
+ ```bash packageManager="bun"
127
+ bun add intlayer remix@next
128
+ ```
129
+
130
+ - **`intlayer`**: محرك التدويل الأساسي الذي يوفر إدارة التكوين، والتصريح عن القواميس (`t()`, `Dictionary`)، وأدوات CLI، ومفسر وقت التشغيل.
131
+ - **`remix`**: حزمة إطار عمل Remix 3 الموحدة التي تصدر `remix/router` و `remix/routes` و `remix/ui` و `remix/middleware/render` و `remix/node-fetch-server`.
132
+
133
+ </Step>
134
+ <Step number={2} title="تكوين Intlayer">
135
+
136
+ أنشئ ملف `intlayer.config.ts` في جذر مشروعك لتحديد اللغات المدعومة وإعدادات التدويل:
137
+
138
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
139
+ import { Locales, type IntlayerConfig } from "intlayer";
140
+
141
+ const config: IntlayerConfig = {
142
+ internationalization: {
143
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.ARABIC],
144
+ defaultLocale: Locales.ENGLISH,
145
+ },
146
+ };
147
+
148
+ export default config;
149
+ ```
150
+
151
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
152
+ import { Locales } from "intlayer";
153
+
154
+ /** @type {import('intlayer').IntlayerConfig} */
155
+ const config = {
156
+ internationalization: {
157
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.ARABIC],
158
+ defaultLocale: Locales.ENGLISH,
159
+ },
160
+ };
161
+
162
+ export default config;
163
+ ```
164
+
165
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
166
+ const { Locales } = require("intlayer");
167
+
168
+ /** @type {import('intlayer').IntlayerConfig} */
169
+ const config = {
170
+ internationalization: {
171
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.ARABIC],
172
+ defaultLocale: Locales.ENGLISH,
173
+ },
174
+ };
175
+
176
+ module.exports = config;
177
+ ```
178
+
179
+ > لمزيد من خيارات التكوين، يرجى مراجعة [وثائق التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
180
+
181
+ </Step>
182
+ <Step number={3} title="التصريح عن محتواك متعدد اللغات">
183
+
184
+ صرح عن محتواك المترجم في ملف `.content.ts`:
185
+
186
+ ```typescript fileName="src/home.content.ts" contentDeclarationFormat={["typescript", "esm"]}
187
+ import { t, type Dictionary } from "intlayer";
188
+
189
+ const homeContent = {
190
+ key: "home",
191
+ content: {
192
+ title: t({
193
+ ar: "مرحبًا بك في Remix 3",
194
+ en: "Welcome to Remix 3",
195
+ fr: "Bienvenue sur Remix 3",
196
+ es: "Bienvenido a Remix 3",
197
+ }),
198
+ description: t({
199
+ ar: "تطبيق تركيبي مبني على معايير الويب مع دعم تدويل أصلي.",
200
+ en: "A composable, web-standard application with native i18n.",
201
+ fr: "Une application composable basée sur les standards web avec i18n native.",
202
+ es: "Una aplicación componible basada en estándares web con i18n nativa.",
203
+ }),
204
+ switchLanguage: t({
205
+ ar: "تغيير اللغة:",
206
+ en: "Switch language:",
207
+ fr: "Changer de langue :",
208
+ es: "Cambiar idioma:",
209
+ }),
210
+ },
211
+ } satisfies Dictionary;
212
+
213
+ export default homeContent;
214
+ ```
215
+
216
+ > يدعم Intlayer أيضًا تنسيقات JSON و YAML و CommonJS. راجع [وثائق التصريح عن المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md).
217
+
218
+ </Step>
219
+ <Step number={4} title="بناء قواميس Intlayer">
220
+
221
+ قم بتجميع تعريفات القواميس لإنشاء أنواع TypeScript وسجلات وقت التشغيل:
222
+
223
+ ```bash packageManager="npm"
224
+ npx intlayer build
225
+ ```
226
+
227
+ ```bash packageManager="pnpm"
228
+ pnpm dlx intlayer build
229
+ ```
230
+
231
+ ```bash packageManager="yarn"
232
+ yarn dlx intlayer build
233
+ ```
234
+
235
+ ```bash packageManager="bun"
236
+ bun x intlayer build
237
+ ```
238
+
239
+ يقوم هذا الأمر بتجميع المحتوى في دليل `.intlayer`، مما يتيح الإكمال التلقائي لـ TypeScript والبحث السريع في القواميس.
240
+
241
+ </Step>
242
+ <Step number={5} title="تنفيذ برمجية Intlayer الوسيطة">
243
+
244
+ يوفر Remix 3 بنية برمجيات وسيطة تركيبية عبر `createRouter({ middleware: [...] })`.
245
+
246
+ أنشئ برمجية Intlayer وسيطة تحلل لغة كل طلب وارد وفق الأولويات التالية:
247
+
248
+ 1. بادئة مسار URL عبر `getLocaleFromPath` (مثال `/ar` أو `/fr`).
249
+ 2. الأداة المساعدة `getLocale` من Intlayer، والتي تفاوض تلقائيًا عبر ملفات تعريف الارتباط (`INTLAYER_LOCALE`) والترويسات المخصصة (`x-intlayer-locale`) وترويسة `Accept-Language` القياسية واللغة الافتراضية `defaultLocale`.
250
+
251
+ ```typescript fileName="src/middleware/intlayer.ts" codeFormat={["typescript", "esm"]}
252
+ import {
253
+ defaultLocale,
254
+ getCookie,
255
+ getLocale,
256
+ getLocaleFromPath,
257
+ type Locale,
258
+ } from "intlayer";
259
+ import { createContextKey, type Middleware } from "remix/router";
260
+
261
+ /**
262
+ * مفتاح سياق آمن من حيث النوع لاسترداد اللغة المحددة من RequestContext في Remix 3.
263
+ */
264
+ export const localeKey = createContextKey<Locale>(defaultLocale);
265
+
266
+ /**
267
+ * برمجية Intlayer الوسيطة لـ Remix 3.
268
+ *
269
+ * تحلل لغة الطلب وفق الأولوية التالية:
270
+ * 1. بادئة مسار URL (مثل `/ar/...`) عبر `getLocaleFromPath`
271
+ * 2. مفاوضة الترويسات والتخزين عبر `getLocale` (ملفات تعريف الارتباط، ترويسة مخصصة، Accept-Language، التراجع إلى defaultLocale)
272
+ *
273
+ * ترفق اللغة المحددة بـ RequestContext في Remix 3.
274
+ */
275
+ export const intlayer = (): Middleware => {
276
+ return async (context, next) => {
277
+ // الكشف عن المسار (/ar/about -> "ar", /about -> undefined)
278
+ const pathLocale = getLocaleFromPath(context.url.pathname);
279
+
280
+ if (pathLocale) {
281
+ // إرفاق اللغة المحددة بسياق طلب Remix 3
282
+ context.set(localeKey, pathLocale);
283
+
284
+ return next();
285
+ }
286
+
287
+ const storedLocale = await getLocale({
288
+ getHeader: (name) => context.headers.get(name),
289
+ getCookie: (name) =>
290
+ getCookie(name, context.headers.get("cookie") ?? undefined),
291
+ });
292
+
293
+ // إرفاق اللغة المحددة بسياق طلب Remix 3
294
+ context.set(localeKey, storedLocale ?? defaultLocale);
295
+
296
+ return next();
297
+ };
298
+ };
299
+ ```
300
+
301
+ </Step>
302
+ <Step number={6} title="تعريف مسارات آمنة من حيث النوع">
303
+
304
+ حدد مسارات تطبيقك باستخدام `route()` من `remix/routes`:
305
+
306
+ ```typescript fileName="src/routes.ts" codeFormat={["typescript", "esm"]}
307
+ import { route } from "remix/routes";
308
+
309
+ export const routes = route({
310
+ // مسار اللغة الافتراضية
311
+ home: "/",
312
+
313
+ // مسار مترجم مع مقطع ديناميكي :locale
314
+ localizedHome: "/:locale",
315
+ });
316
+ ```
317
+
318
+ يوفر استخدام `route()` إنشاء عناوين URL آمنة من حيث النوع في جميع أنحاء تطبيقك:
319
+
320
+ ```typescript
321
+ routes.home.href(); // "/"
322
+ routes.localizedHome.href({ locale: "ar" }); // "/ar"
323
+ ```
324
+
325
+ </Step>
326
+ <Step number={7} title="عرض الصفحات المترجمة باستخدام JSX">
327
+
328
+ يقدم Remix 3 واجهة المستخدم باستخدام مكونات JSX من `remix/ui`. المكون عبارة عن **دالة إعداد** تستقبل `Handle` وتعيد **دالة عرض**. يتم تشغيل الإعداد مرة واحدة لكل نسخة، ويعمل العرض مع كل تحديث، وتُقرأ الخصائص عبر `handle.props`.
329
+
330
+ ابدأ بغلاف `Document` مشترك يحدد سمات `<html lang="..." dir="...">` بناءً على اللغة المحددة:
331
+
332
+ ```tsx fileName="src/views/document.tsx" codeFormat={["typescript", "esm"]}
333
+ import { getHTMLTextDir, type Locale } from "intlayer";
334
+ import type { Handle, RemixNode } from "remix/ui";
335
+
336
+ type DocumentProps = {
337
+ locale: Locale;
338
+ title: string;
339
+ children?: RemixNode;
340
+ };
341
+
342
+ export const Document = (handle: Handle<DocumentProps>) => () => {
343
+ const { locale, title, children } = handle.props;
344
+
345
+ return (
346
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
347
+ <head>
348
+ <meta charSet="utf-8" />
349
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
350
+ <title>{title}</title>
351
+ </head>
352
+ <body>{children}</body>
353
+ </html>
354
+ );
355
+ };
356
+ ```
357
+
358
+ ثم أنشئ الصفحة الرئيسية. حيث تستخرج القاموس المترجم باستخدام `getIntlayer` وتعرض مبدل اللغة:
359
+
360
+ ```tsx fileName="src/views/home.tsx" codeFormat={["typescript", "esm"]}
361
+ import {
362
+ getIntlayer,
363
+ getLocaleName,
364
+ getLocalizedPath,
365
+ type Locale,
366
+ locales,
367
+ } from "intlayer";
368
+ import type { Handle } from "remix/ui";
369
+ import { routes } from "../routes";
370
+ import { Document } from "./document";
371
+
372
+ type HomePageProps = {
373
+ locale: Locale;
374
+ };
375
+
376
+ export const HomePage = (handle: Handle<HomePageProps>) => () => {
377
+ const { locale } = handle.props;
378
+ const home = getIntlayer("home", locale);
379
+
380
+ return (
381
+ <Document locale={locale} title={home.title}>
382
+ <header>
383
+ <nav aria-label="Languages">
384
+ <span>{home.switchLanguage}</span>
385
+ {locales.map((targetLocale) => {
386
+ const isActive = targetLocale === locale;
387
+
388
+ return (
389
+ <a
390
+ key={targetLocale}
391
+ href={getLocalizedPath(routes.home.href(), targetLocale)}
392
+ class={isActive ? "active" : undefined}
393
+ aria-current={isActive ? "page" : undefined}
394
+ >
395
+ {getLocaleName(targetLocale, locale)}
396
+ </a>
397
+ );
398
+ })}
399
+ </nav>
400
+ </header>
401
+ <main>
402
+ <h1>{home.title}</h1>
403
+ <p>{home.description}</p>
404
+ </main>
405
+ </Document>
406
+ );
407
+ };
408
+ ```
409
+
410
+ > صيغة JSX في Remix ليست React: لا توجد خطافات (Hooks)، وتُكتب `class` كما هي (تُقبل `className` أيضًا)، ويتم تشغيل إعادة العرض صراحةً باستخدام `handle.update()`. يتم تخطي القيم المضمنة تلقائيًا وبأمان.
411
+
412
+ </Step>
413
+ <Step number={8} title="ربط الموجه والخادم">
414
+
415
+ أضف البرمجية الوسيطة `render()` من `remix/middleware/render` بجانب برمجية Intlayer الوسيطة. حيث تقوم بتثبيت `context.render(node, init)` في كل طلب، مما يرسل شجرة JSX كاستجابة HTML `Response` (مع إضافة `<!DOCTYPE html>` في البداية وتعيين ترويسة `Content-Type`):
416
+
417
+ ```tsx fileName="src/router.tsx" codeFormat={["typescript", "esm"]}
418
+ import { isDeclaredLocale } from "intlayer";
419
+ import { render } from "remix/middleware/render";
420
+ import { createRouter } from "remix/router";
421
+ import { intlayer, localeKey } from "./middleware/intlayer";
422
+ import { routes } from "./routes";
423
+ import { HomePage } from "./views/home";
424
+
425
+ // 1. تهيئة الموجه باستخدام برمجيات Intlayer الوسيطة + العرض
426
+ export const router = createRouter({
427
+ middleware: [intlayer(), render()],
428
+ });
429
+
430
+ // 2. تعيين معالجات المسار
431
+ router.map(routes, {
432
+ actions: {
433
+ // مسار اللغة الافتراضية
434
+ home(context) {
435
+ const locale = context.get(localeKey);
436
+ return context.render(<HomePage locale={locale} />);
437
+ },
438
+
439
+ // مسار مترجم
440
+ localizedHome(context) {
441
+ if (!isDeclaredLocale(context.params.locale)) {
442
+ return new Response("Not Found", { status: 404 });
443
+ }
444
+ const locale = context.get(localeKey);
445
+ return context.render(<HomePage locale={locale} />);
446
+ },
447
+ },
448
+ });
449
+ ```
450
+
451
+ > يقبل `context.render` وسيطًا ثانيًا اختياريًا هو `ResponseInit`، على سبيل المثال: `context.render(<NotFoundPage locale={locale} />, { status: 404 })`.
452
+
453
+ أخيرًا، قم بإتاحة الموجه من خلال معالج `fetch` قياسي. يعمل نفس الموجه بسلاسة على Node.js و Bun و Deno و Cloudflare Workers:
454
+
455
+ ```typescript fileName="src/server.ts" codeFormat={["typescript", "esm"]}
456
+ import * as http from "node:http";
457
+ import { createRequestListener } from "remix/node-fetch-server";
458
+ import { router } from "./router";
459
+
460
+ const PORT = Number(process.env.PORT || 3000);
461
+
462
+ // Node.js
463
+ const server = http.createServer(
464
+ createRequestListener((request) => router.fetch(request))
465
+ );
466
+
467
+ server.listen(PORT, () => {
468
+ console.log(`الخادم يعمل على http://localhost:${PORT}`);
469
+ });
470
+
471
+ // Bun / Deno / Cloudflare Workers
472
+ export default {
473
+ port: PORT,
474
+ fetch(request: Request) {
475
+ return router.fetch(request);
476
+ },
477
+ };
478
+ ```
479
+
480
+ </Step>
481
+ <Step number={9} title="تدقيق وملء الترجمات تلقائيًا">
482
+
483
+ يوفر Intlayer أداة سطر أوامر (CLI) لتدقيق الترجمات المفقودة وملئها تلقائيًا باستخدام الذكاء الاصطناعي:
484
+
485
+ ```bash packageManager="npm"
486
+ # تدقيق الترجمات المفقودة
487
+ npx intlayer test
488
+
489
+ # ملء الترجمات المفقودة بالذكاء الاصطناعي
490
+ npx intlayer fill
491
+ ```
492
+
493
+ ```bash packageManager="pnpm"
494
+ # تدقيق الترجمات المفقودة
495
+ pnpm dlx intlayer test
496
+
497
+ # ملء الترجمات المفقودة بالذكاء الاصطناعي
498
+ pnpm dlx intlayer fill
499
+ ```
500
+
501
+ ```bash packageManager="yarn"
502
+ # تدقيق الترجمات المفقودة
503
+ yarn dlx intlayer test
504
+
505
+ # ملء الترجمات المفقودة بالذكاء الاصطناعي
506
+ yarn dlx intlayer fill
507
+ ```
508
+
509
+ ```bash packageManager="bun"
510
+ # تدقيق الترجمات المفقودة
511
+ bun x intlayer test
512
+
513
+ # ملء الترجمات المفقودة بالذكاء الاصطناعي
514
+ bun x intlayer fill
515
+ ```
516
+
517
+ </Step>
518
+ </Steps>
519
+
520
+ ## تكوين TypeScript
521
+
522
+ وجّه JSX نحو بيئة تشغيل `remix/ui` وتأكد من أن ملف `tsconfig.json` الخاص بك يتضمن أنواع `.intlayer` المنشأة:
523
+
524
+ ```json fileName="tsconfig.json"
525
+ {
526
+ "compilerOptions": {
527
+ "moduleResolution": "Bundler",
528
+ "module": "ESNext",
529
+ "target": "ESNext",
530
+ "jsx": "react-jsx",
531
+ "jsxImportSource": "remix/ui",
532
+ "skipLibCheck": true,
533
+ "strict": true
534
+ },
535
+ "include": ["src/**/*", ".intlayer/**/*.ts"]
536
+ }
537
+ ```
538
+
539
+ > `jsxImportSource: "remix/ui"` هو ما يجعل `<HomePage />` يتم تحليله إلى `createElement` الخاص بـ Remix بدلاً من React.
540
+
541
+ ## الخاتمة
542
+
543
+ مع Remix 3 و Intlayer، لديك بنية برمجية خفيفة الوزن ومكتوبة بالكامل من حيث الأنواع وقابلة للنقل عبر بيئات التشغيل المختلفة وتلتزم بمعايير الويب المفتوحة. يمكن لتطبيقك التوسع بسهولة من صفحات تسويقية محلية بسيطة إلى خدمات موزعة عالميًا ومعروضة على الحافة.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-03-31
3
+ updatedAt: 2026-09-12
4
4
  title: CLI - আপনার বহুভাষিক ওয়েবসাইটের জন্য সমস্ত Intlayer CLI কমান্ড
5
5
  description: আপনার বহুভাষিক ওয়েবসাইট পরিচালনা করতে Intlayer CLI কীভাবে ব্যবহার করবেন তা আবিষ্কার করুন। কয়েক মিনিটের মধ্যে আপনার প্রজেক্ট সেট আপ করতে এই অনলাইন ডকুমেন্টেশনের ধাপগুলো অনুসরণ করুন।
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
+ - version: 9.5.2
21
+ date: 2026-09-12
22
+ changes: "`ci` কমান্ডকে `--ci` ফ্ল্যাগ দিয়ে প্রতিস্থাপন"
20
23
  - version: 9.0.0
21
24
  date: 2026-06-11
22
25
  changes: "scan কমান্ড যোগ করা হয়েছে"
@@ -158,10 +161,6 @@ Intlayer একাধিক কনফিগারেশন ফাইল ফর
158
161
  - **[Editor Commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/bn/cli/editor.md)** - Intlayer এডিটর কমান্ড ব্যবহার করুন।
159
162
  - **[Live Sync Commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/bn/cli/live.md)** - রানটাইমে CMS থেকে বিষয়বস্তুর পরিবর্তনগুলো প্রয়োগ করতে লাইভ সিঙ্ক ব্যবহার করুন।
160
163
 
161
- ### CI/CD এবং স্বয়ংক্রিয়করণ
162
-
163
- - **[CI Command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/bn/cli/ci.md)** - CI/CD পাইপলাইনের জন্য স্বয়ংক্রিয়ভাবে ইনজেক্ট করা ক্রেডেনশিয়াল সহ Intlayer কমান্ডগুলো নির্বাহ করুন
164
-
165
164
  ### অডিটিং এবং ডায়াগনস্টিকস
166
165
 
167
166
  - **[ওয়েবসাইট স্ক্যান করুন](https://github.com/aymericzip/intlayer/blob/main/docs/docs/bn/cli/scan.md)** - যেকোনো পাবলিক URL-এর পেজ সাইজ পরিমাপ করুন এবং i18n/SEO অবস্থা অডিট করুন
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-06-11
3
- updatedAt: 2026-06-11
3
+ updatedAt: 2026-09-12
4
4
  title: ওয়েবসাইট স্ক্যান করুন
5
5
  description: যেকোনো ওয়েবসাইটের পেজ সাইজ পরিমাপ করতে এবং i18n/SEO স্বাস্থ্য অডিট করতে Intlayer CLI scan কমান্ড কীভাবে ব্যবহার করবেন তা শিখুন।
6
6
  keywords:
@@ -18,6 +18,9 @@ slugs:
18
18
  - cli
19
19
  - scan
20
20
  history:
21
+ - version: 9.5.2
22
+ date: 2026-09-12
23
+ changes: "`--ci` ফ্ল্যাগ যোগ করা হয়েছে"
21
24
  - version: 9.0.0
22
25
  date: 2026-06-11
23
26
  changes: "scan কমান্ড যোগ করা হয়েছে"
@@ -112,6 +115,7 @@ puppeteer উপলব্ধ থাকা অবস্থায়ও বেস
112
115
  - **`-e, --env`** — লক্ষ্য পরিবেশ (যেমন: `development`, `production`)।
113
116
  - **`--env-file`** — একটি কাস্টম `.env` ফাইলের পাথ।
114
117
  - **`--no-cache`** — কনফিগারেশন ক্যাশে নিষ্ক্রিয় করুন।
118
+ - **`--ci`** — মনোরেপোর প্রতিটি Intlayer প্রজেক্টে কমান্ডটি চালায় (প্রজেক্ট ডিরেক্টরি থেকে চালালে শুধুমাত্র বর্তমান প্রজেক্টে)। প্রজেক্ট-ভিত্তিক ক্রেডেনশিয়াল `INTLAYER_PROJECT_CREDENTIALS`-এর মাধ্যমে ইনজেক্ট করা যায়, যা প্রজেক্ট পাথকে `{ "clientId", "clientSecret" }`-এ ম্যাপ করা একটি JSON অবজেক্ট।
115
119
  - **`--verbose`** — বিস্তারিত লগিং সক্ষম করুন (CLI মোডে ডিফল্ট)।
116
120
  - **`--prefix`** — কাস্টম লগ প্রিফিক্স।
117
121
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-03-31
3
+ updatedAt: 2026-09-12
4
4
  title: স্ট্যান্ডঅলোন বান্ডল (Standalone Bundle)
5
5
  description: অ্যাপ্লিকেশন বিষয়বস্তুর একটি স্ট্যান্ডঅলোন JavaScript বান্ডল কীভাবে তৈরি করবেন তা শিখুন।
6
6
  keywords:
@@ -16,6 +16,9 @@ slugs:
16
16
  - cli
17
17
  - standalone
18
18
  history:
19
+ - version: 9.5.2
20
+ date: 2026-09-12
21
+ changes: "`--ci` ফ্ল্যাগ যোগ করা হয়েছে"
19
22
  - version: 8.6.4
20
23
  date: 2026-03-31
21
24
  changes: "স্ট্যান্ডঅলোন কমান্ড ডকুমেন্টেশন শুরু"
@@ -61,6 +64,7 @@ bun x intlayer standalone --packages [প্যাকেজ...] [বিকল্
61
64
  - `-e, --env [env]` - পরিবেশ।
62
65
  - `--base-dir [baseDir]` - বেস ডিরেক্টরি।
63
66
  - `--no-cache` - ক্যাশে নিষ্ক্রিয় করুন।
67
+ - `--ci` - মনোরেপোর প্রতিটি Intlayer প্রজেক্টে কমান্ডটি চালায় (প্রজেক্ট ডিরেক্টরি থেকে চালালে শুধুমাত্র বর্তমান প্রজেক্টে)। প্রজেক্ট-ভিত্তিক ক্রেডেনশিয়াল `INTLAYER_PROJECT_CREDENTIALS`-এর মাধ্যমে ইনজেক্ট করা যায়, যা প্রজেক্ট পাথকে `{ "clientId", "clientSecret" }`-এ ম্যাপ করা একটি JSON অবজেক্ট।
64
68
  - `--verbose` - বিস্তারিত আউটপুট দেখান।
65
69
 
66
70
  ## উদাহরণ:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-03-31
3
+ updatedAt: 2026-09-12
4
4
  title: CLI - Všechny příkazy Intlayer CLI pro váš vícejazyčný web
5
5
  description: Naučte se používat Intlayer CLI pro správu vašeho vícejazyčného webu. Postupujte podle kroků v této online dokumentaci a nastavte svůj projekt během několika minut.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
+ - version: 9.5.2
21
+ date: 2026-09-12
22
+ changes: "Nahrazení příkazu `ci` příznakem `--ci`"
20
23
  - version: 9.0.0
21
24
  date: 2026-06-11
22
25
  changes: "Přidán obsah příkazu scan"
@@ -158,10 +161,6 @@ Chcete-li se dozvědět, jak nakonfigurovat dostupné jazyky nebo jiné parametr
158
161
  - **[Editor Commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/cs/cli/editor.md)** - Používejte příkazy editoru Intlayer
159
162
  - **[Live Sync Commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/cs/cli/live.md)** - Používejte Live Sync k aplikování změn obsahu z CMS v reálném čase
160
163
 
161
- ### CI/CD a automatizace
162
-
163
- - **[CI Command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/cs/cli/ci.md)** - Provádějte příkazy Intlayer s automaticky vloženými přihlašovacími údaji pro linky CI/CD
164
-
165
164
  ### Audit a diagnostika
166
165
 
167
166
  - **[Scan Website](https://github.com/aymericzip/intlayer/blob/main/docs/docs/cs/cli/scan.md)** - Změřte velikost stránky a auditujte i18n/SEO zdraví jakékoli veřejné URL
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-06-11
3
- updatedAt: 2026-06-11
3
+ updatedAt: 2026-09-12
4
4
  title: Scan Website
5
5
  description: Naučte se používat příkaz scan v Intlayer CLI pro měření velikosti stránky a audit i18n/SEO zdraví jakéhokoli webu.
6
6
  keywords:
@@ -18,6 +18,9 @@ slugs:
18
18
  - cli
19
19
  - scan
20
20
  history:
21
+ - version: 9.5.2
22
+ date: 2026-09-12
23
+ changes: "Přidán příznak `--ci`"
21
24
  - version: 9.0.0
22
25
  date: 2026-06-11
23
26
  changes: "Přidán obsah příkazu scan"
@@ -112,6 +115,7 @@ Vypíše kompletní výsledek scanu jako JSON objekt namísto formátovaného re
112
115
  - **`-e, --env`** — Cílové prostředí (např. `development`, `production`).
113
116
  - **`--env-file`** — Cesta k vlastnímu souboru `.env`.
114
117
  - **`--no-cache`** — Zakáže mezipaměť konfigurace.
118
+ - **`--ci`** — Spustí příkaz v každém projektu Intlayer v monorepu (nebo jen v aktuálním, pokud je spuštěn z adresáře projektu). Přihlašovací údaje pro jednotlivé projekty lze vložit přes `INTLAYER_PROJECT_CREDENTIALS`, JSON objekt mapující cestu projektu na `{ "clientId", "clientSecret" }`.
115
119
  - **`--verbose`** — Povolí podrobné protokolování (výchozí v režimu CLI).
116
120
  - **`--prefix`** — Vlastní prefix protokolu.
117
121