@intlayer/docs 9.5.5 → 9.5.6

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 (447) hide show
  1. package/README.md +0 -1
  2. package/blog/ar/transform_existing_vite_react_app_using_compiler.md +4 -2
  3. package/blog/de/transform_existing_vite_react_app_using_compiler.md +4 -2
  4. package/blog/en/transform_existing_vite_react_app_using_compiler.md +4 -2
  5. package/blog/en-GB/transform_existing_vite_react_app_using_compiler.md +4 -2
  6. package/blog/es/transform_existing_vite_react_app_using_compiler.md +4 -2
  7. package/blog/fr/transform_existing_vite_react_app_using_compiler.md +4 -2
  8. package/blog/hi/transform_existing_vite_react_app_using_compiler.md +4 -2
  9. package/blog/id/transform_existing_vite_react_app_using_compiler.md +4 -2
  10. package/blog/it/transform_existing_vite_react_app_using_compiler.md +4 -2
  11. package/blog/ja/transform_existing_vite_react_app_using_compiler.md +4 -2
  12. package/blog/ko/transform_existing_vite_react_app_using_compiler.md +4 -2
  13. package/blog/pl/transform_existing_vite_react_app_using_compiler.md +4 -2
  14. package/blog/pt/transform_existing_vite_react_app_using_compiler.md +4 -2
  15. package/blog/ru/transform_existing_vite_react_app_using_compiler.md +4 -2
  16. package/blog/tr/transform_existing_vite_react_app_using_compiler.md +4 -2
  17. package/blog/uk/transform_existing_vite_react_app_using_compiler.md +4 -2
  18. package/blog/vi/transform_existing_vite_react_app_using_compiler.md +4 -2
  19. package/blog/zh/transform_existing_vite_react_app_using_compiler.md +4 -2
  20. package/docs/ar/intlayer_with_astro.md +19 -32
  21. package/docs/ar/intlayer_with_astro_lit.md +32 -36
  22. package/docs/ar/intlayer_with_astro_preact.md +32 -36
  23. package/docs/ar/intlayer_with_astro_react.md +32 -36
  24. package/docs/ar/intlayer_with_astro_solid.md +32 -36
  25. package/docs/ar/intlayer_with_astro_svelte.md +32 -36
  26. package/docs/ar/intlayer_with_astro_vue.md +32 -36
  27. package/docs/ar/intlayer_with_react_router_v7.md +12 -1
  28. package/docs/ar/intlayer_with_solid_start.md +14 -7
  29. package/docs/ar/intlayer_with_svelte_kit.md +12 -1
  30. package/docs/ar/intlayer_with_tanstack+solid.md +13 -2
  31. package/docs/ar/intlayer_with_tanstack.md +13 -6
  32. package/docs/ar/intlayer_with_vite+lit.md +75 -3
  33. package/docs/ar/intlayer_with_vite+preact.md +27 -19
  34. package/docs/ar/intlayer_with_vite+react.md +27 -19
  35. package/docs/ar/intlayer_with_vite+solid.md +27 -19
  36. package/docs/ar/intlayer_with_vite+svelte.md +27 -19
  37. package/docs/ar/intlayer_with_vite+vanilla.md +16 -3
  38. package/docs/ar/intlayer_with_vite+vue.md +27 -19
  39. package/docs/ar/introduction.md +0 -1
  40. package/docs/ar/readme.md +0 -1
  41. package/docs/ar/releases/v8.md +1 -5
  42. package/docs/bn/intlayer_with_vite+lit.md +75 -3
  43. package/docs/bn/intlayer_with_vite+vanilla.md +16 -3
  44. package/docs/bn/introduction.md +0 -1
  45. package/docs/cs/intlayer_with_vite+lit.md +75 -3
  46. package/docs/cs/intlayer_with_vite+vanilla.md +16 -3
  47. package/docs/cs/introduction.md +0 -1
  48. package/docs/de/intlayer_with_astro.md +12 -25
  49. package/docs/de/intlayer_with_astro_lit.md +23 -27
  50. package/docs/de/intlayer_with_astro_preact.md +23 -27
  51. package/docs/de/intlayer_with_astro_react.md +23 -27
  52. package/docs/de/intlayer_with_astro_solid.md +23 -27
  53. package/docs/de/intlayer_with_astro_svelte.md +23 -27
  54. package/docs/de/intlayer_with_astro_vue.md +23 -27
  55. package/docs/de/intlayer_with_react_router_v7.md +12 -1
  56. package/docs/de/intlayer_with_solid_start.md +14 -7
  57. package/docs/de/intlayer_with_svelte_kit.md +12 -1
  58. package/docs/de/intlayer_with_tanstack+solid.md +13 -2
  59. package/docs/de/intlayer_with_tanstack.md +13 -6
  60. package/docs/de/intlayer_with_vite+lit.md +75 -3
  61. package/docs/de/intlayer_with_vite+preact.md +16 -3
  62. package/docs/de/intlayer_with_vite+react.md +16 -3
  63. package/docs/de/intlayer_with_vite+solid.md +16 -3
  64. package/docs/de/intlayer_with_vite+svelte.md +16 -3
  65. package/docs/de/intlayer_with_vite+vanilla.md +16 -3
  66. package/docs/de/intlayer_with_vite+vue.md +16 -3
  67. package/docs/de/introduction.md +0 -1
  68. package/docs/de/readme.md +0 -1
  69. package/docs/de/releases/v8.md +1 -5
  70. package/docs/en/intlayer_with_astro.md +5 -20
  71. package/docs/en/intlayer_with_astro_lit.md +22 -26
  72. package/docs/en/intlayer_with_astro_preact.md +22 -26
  73. package/docs/en/intlayer_with_astro_react.md +22 -26
  74. package/docs/en/intlayer_with_astro_solid.md +22 -26
  75. package/docs/en/intlayer_with_astro_svelte.md +22 -26
  76. package/docs/en/intlayer_with_astro_vanilla.md +20 -13
  77. package/docs/en/intlayer_with_astro_vue.md +22 -26
  78. package/docs/en/intlayer_with_react_router_v7.md +12 -1
  79. package/docs/en/intlayer_with_solid_start.md +14 -7
  80. package/docs/en/intlayer_with_svelte_kit.md +12 -1
  81. package/docs/en/intlayer_with_tanstack+solid.md +13 -2
  82. package/docs/en/intlayer_with_tanstack.md +12 -5
  83. package/docs/en/intlayer_with_vite+lit.md +75 -3
  84. package/docs/en/intlayer_with_vite+preact.md +16 -3
  85. package/docs/en/intlayer_with_vite+react.md +16 -3
  86. package/docs/en/intlayer_with_vite+solid.md +16 -3
  87. package/docs/en/intlayer_with_vite+svelte.md +16 -3
  88. package/docs/en/intlayer_with_vite+vanilla.md +16 -3
  89. package/docs/en/intlayer_with_vite+vue.md +16 -3
  90. package/docs/en/introduction.md +0 -1
  91. package/docs/en/readme.md +0 -1
  92. package/docs/en/releases/v8.md +1 -5
  93. package/docs/en-GB/intlayer_with_astro.md +12 -25
  94. package/docs/en-GB/intlayer_with_astro_lit.md +23 -27
  95. package/docs/en-GB/intlayer_with_astro_preact.md +23 -27
  96. package/docs/en-GB/intlayer_with_astro_react.md +23 -27
  97. package/docs/en-GB/intlayer_with_astro_solid.md +23 -27
  98. package/docs/en-GB/intlayer_with_astro_svelte.md +23 -27
  99. package/docs/en-GB/intlayer_with_astro_vue.md +23 -27
  100. package/docs/en-GB/intlayer_with_react_router_v7.md +12 -1
  101. package/docs/en-GB/intlayer_with_solid_start.md +14 -7
  102. package/docs/en-GB/intlayer_with_svelte_kit.md +12 -1
  103. package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -2
  104. package/docs/en-GB/intlayer_with_tanstack.md +13 -6
  105. package/docs/en-GB/intlayer_with_vite+lit.md +75 -3
  106. package/docs/en-GB/intlayer_with_vite+preact.md +16 -3
  107. package/docs/en-GB/intlayer_with_vite+react.md +16 -3
  108. package/docs/en-GB/intlayer_with_vite+solid.md +25 -15
  109. package/docs/en-GB/intlayer_with_vite+svelte.md +16 -3
  110. package/docs/en-GB/intlayer_with_vite+vanilla.md +16 -3
  111. package/docs/en-GB/intlayer_with_vite+vue.md +16 -3
  112. package/docs/en-GB/introduction.md +0 -1
  113. package/docs/en-GB/readme.md +0 -1
  114. package/docs/en-GB/releases/v8.md +1 -5
  115. package/docs/es/intlayer_with_astro.md +12 -25
  116. package/docs/es/intlayer_with_astro_lit.md +23 -27
  117. package/docs/es/intlayer_with_astro_preact.md +23 -27
  118. package/docs/es/intlayer_with_astro_react.md +23 -27
  119. package/docs/es/intlayer_with_astro_solid.md +23 -27
  120. package/docs/es/intlayer_with_astro_svelte.md +23 -27
  121. package/docs/es/intlayer_with_astro_vue.md +23 -27
  122. package/docs/es/intlayer_with_react_router_v7.md +12 -1
  123. package/docs/es/intlayer_with_solid_start.md +14 -7
  124. package/docs/es/intlayer_with_svelte_kit.md +12 -1
  125. package/docs/es/intlayer_with_tanstack+solid.md +13 -2
  126. package/docs/es/intlayer_with_tanstack.md +13 -6
  127. package/docs/es/intlayer_with_vite+lit.md +75 -3
  128. package/docs/es/intlayer_with_vite+preact.md +16 -3
  129. package/docs/es/intlayer_with_vite+react.md +16 -3
  130. package/docs/es/intlayer_with_vite+solid.md +16 -3
  131. package/docs/es/intlayer_with_vite+svelte.md +16 -3
  132. package/docs/es/intlayer_with_vite+vanilla.md +16 -3
  133. package/docs/es/intlayer_with_vite+vue.md +16 -3
  134. package/docs/es/introduction.md +0 -1
  135. package/docs/es/readme.md +0 -1
  136. package/docs/es/releases/v8.md +1 -5
  137. package/docs/fr/intlayer_with_astro.md +13 -26
  138. package/docs/fr/intlayer_with_astro_lit.md +24 -28
  139. package/docs/fr/intlayer_with_astro_preact.md +24 -28
  140. package/docs/fr/intlayer_with_astro_react.md +24 -28
  141. package/docs/fr/intlayer_with_astro_solid.md +24 -28
  142. package/docs/fr/intlayer_with_astro_svelte.md +24 -28
  143. package/docs/fr/intlayer_with_astro_vue.md +24 -28
  144. package/docs/fr/intlayer_with_react_router_v7.md +15 -4
  145. package/docs/fr/intlayer_with_solid_start.md +14 -7
  146. package/docs/fr/intlayer_with_svelte_kit.md +15 -4
  147. package/docs/fr/intlayer_with_tanstack+solid.md +15 -4
  148. package/docs/fr/intlayer_with_tanstack.md +13 -6
  149. package/docs/fr/intlayer_with_vite+lit.md +75 -3
  150. package/docs/fr/intlayer_with_vite+preact.md +19 -6
  151. package/docs/fr/intlayer_with_vite+react.md +19 -6
  152. package/docs/fr/intlayer_with_vite+solid.md +19 -6
  153. package/docs/fr/intlayer_with_vite+svelte.md +19 -6
  154. package/docs/fr/intlayer_with_vite+vanilla.md +19 -6
  155. package/docs/fr/intlayer_with_vite+vue.md +19 -6
  156. package/docs/fr/introduction.md +0 -1
  157. package/docs/fr/readme.md +0 -1
  158. package/docs/fr/releases/v8.md +1 -5
  159. package/docs/hi/intlayer_with_astro.md +15 -31
  160. package/docs/hi/intlayer_with_astro_lit.md +26 -33
  161. package/docs/hi/intlayer_with_astro_preact.md +26 -33
  162. package/docs/hi/intlayer_with_astro_react.md +26 -33
  163. package/docs/hi/intlayer_with_astro_solid.md +26 -33
  164. package/docs/hi/intlayer_with_astro_svelte.md +26 -33
  165. package/docs/hi/intlayer_with_astro_vue.md +26 -33
  166. package/docs/hi/intlayer_with_react_router_v7.md +20 -12
  167. package/docs/hi/intlayer_with_solid_start.md +14 -7
  168. package/docs/hi/intlayer_with_svelte_kit.md +20 -12
  169. package/docs/hi/intlayer_with_tanstack+solid.md +13 -2
  170. package/docs/hi/intlayer_with_tanstack.md +21 -17
  171. package/docs/hi/intlayer_with_vite+lit.md +75 -3
  172. package/docs/hi/intlayer_with_vite+preact.md +24 -14
  173. package/docs/hi/intlayer_with_vite+react.md +24 -14
  174. package/docs/hi/intlayer_with_vite+solid.md +24 -14
  175. package/docs/hi/intlayer_with_vite+svelte.md +24 -14
  176. package/docs/hi/intlayer_with_vite+vanilla.md +16 -3
  177. package/docs/hi/intlayer_with_vite+vue.md +24 -14
  178. package/docs/hi/introduction.md +0 -1
  179. package/docs/hi/readme.md +0 -1
  180. package/docs/hi/releases/v8.md +1 -5
  181. package/docs/id/intlayer_with_astro.md +12 -25
  182. package/docs/id/intlayer_with_astro_lit.md +23 -27
  183. package/docs/id/intlayer_with_astro_preact.md +23 -27
  184. package/docs/id/intlayer_with_astro_react.md +23 -27
  185. package/docs/id/intlayer_with_astro_solid.md +23 -27
  186. package/docs/id/intlayer_with_astro_svelte.md +23 -27
  187. package/docs/id/intlayer_with_astro_vue.md +23 -27
  188. package/docs/id/intlayer_with_react_router_v7.md +12 -1
  189. package/docs/id/intlayer_with_solid_start.md +14 -7
  190. package/docs/id/intlayer_with_svelte_kit.md +12 -1
  191. package/docs/id/intlayer_with_tanstack+solid.md +13 -2
  192. package/docs/id/intlayer_with_tanstack.md +13 -6
  193. package/docs/id/intlayer_with_vite+lit.md +75 -3
  194. package/docs/id/intlayer_with_vite+preact.md +16 -3
  195. package/docs/id/intlayer_with_vite+react.md +16 -3
  196. package/docs/id/intlayer_with_vite+solid.md +16 -3
  197. package/docs/id/intlayer_with_vite+svelte.md +16 -3
  198. package/docs/id/intlayer_with_vite+vanilla.md +16 -3
  199. package/docs/id/intlayer_with_vite+vue.md +16 -3
  200. package/docs/id/introduction.md +0 -1
  201. package/docs/id/readme.md +0 -1
  202. package/docs/id/releases/v8.md +1 -5
  203. package/docs/it/intlayer_with_astro.md +12 -25
  204. package/docs/it/intlayer_with_astro_lit.md +23 -27
  205. package/docs/it/intlayer_with_astro_preact.md +23 -27
  206. package/docs/it/intlayer_with_astro_react.md +23 -27
  207. package/docs/it/intlayer_with_astro_solid.md +23 -27
  208. package/docs/it/intlayer_with_astro_svelte.md +23 -27
  209. package/docs/it/intlayer_with_astro_vue.md +23 -27
  210. package/docs/it/intlayer_with_react_router_v7.md +12 -1
  211. package/docs/it/intlayer_with_solid_start.md +14 -7
  212. package/docs/it/intlayer_with_svelte_kit.md +12 -1
  213. package/docs/it/intlayer_with_tanstack+solid.md +13 -2
  214. package/docs/it/intlayer_with_tanstack.md +13 -6
  215. package/docs/it/intlayer_with_vite+lit.md +75 -3
  216. package/docs/it/intlayer_with_vite+preact.md +16 -3
  217. package/docs/it/intlayer_with_vite+react.md +16 -3
  218. package/docs/it/intlayer_with_vite+solid.md +16 -3
  219. package/docs/it/intlayer_with_vite+svelte.md +16 -3
  220. package/docs/it/intlayer_with_vite+vanilla.md +16 -3
  221. package/docs/it/intlayer_with_vite+vue.md +16 -3
  222. package/docs/it/introduction.md +0 -1
  223. package/docs/it/readme.md +0 -1
  224. package/docs/it/releases/v8.md +1 -5
  225. package/docs/ja/intlayer_with_astro.md +12 -25
  226. package/docs/ja/intlayer_with_astro_lit.md +23 -27
  227. package/docs/ja/intlayer_with_astro_preact.md +23 -27
  228. package/docs/ja/intlayer_with_astro_react.md +23 -27
  229. package/docs/ja/intlayer_with_astro_solid.md +23 -27
  230. package/docs/ja/intlayer_with_astro_svelte.md +23 -27
  231. package/docs/ja/intlayer_with_astro_vue.md +23 -27
  232. package/docs/ja/intlayer_with_react_router_v7.md +12 -1
  233. package/docs/ja/intlayer_with_solid_start.md +14 -7
  234. package/docs/ja/intlayer_with_svelte_kit.md +21 -15
  235. package/docs/ja/intlayer_with_tanstack+solid.md +13 -2
  236. package/docs/ja/intlayer_with_tanstack.md +13 -6
  237. package/docs/ja/intlayer_with_vite+lit.md +75 -3
  238. package/docs/ja/intlayer_with_vite+preact.md +16 -3
  239. package/docs/ja/intlayer_with_vite+react.md +16 -3
  240. package/docs/ja/intlayer_with_vite+solid.md +16 -3
  241. package/docs/ja/intlayer_with_vite+svelte.md +16 -3
  242. package/docs/ja/intlayer_with_vite+vanilla.md +16 -3
  243. package/docs/ja/intlayer_with_vite+vue.md +16 -3
  244. package/docs/ja/introduction.md +0 -1
  245. package/docs/ja/readme.md +0 -1
  246. package/docs/ja/releases/v8.md +1 -5
  247. package/docs/ko/intlayer_with_astro.md +6 -21
  248. package/docs/ko/intlayer_with_astro_lit.md +23 -27
  249. package/docs/ko/intlayer_with_astro_preact.md +23 -27
  250. package/docs/ko/intlayer_with_astro_react.md +23 -27
  251. package/docs/ko/intlayer_with_astro_solid.md +23 -27
  252. package/docs/ko/intlayer_with_astro_svelte.md +23 -27
  253. package/docs/ko/intlayer_with_astro_vue.md +23 -27
  254. package/docs/ko/intlayer_with_react_router_v7.md +12 -1
  255. package/docs/ko/intlayer_with_solid_start.md +14 -7
  256. package/docs/ko/intlayer_with_svelte_kit.md +12 -1
  257. package/docs/ko/intlayer_with_tanstack+solid.md +13 -2
  258. package/docs/ko/intlayer_with_tanstack.md +13 -6
  259. package/docs/ko/intlayer_with_vite+lit.md +75 -3
  260. package/docs/ko/intlayer_with_vite+preact.md +16 -3
  261. package/docs/ko/intlayer_with_vite+react.md +16 -3
  262. package/docs/ko/intlayer_with_vite+solid.md +26 -16
  263. package/docs/ko/intlayer_with_vite+svelte.md +16 -3
  264. package/docs/ko/intlayer_with_vite+vanilla.md +16 -3
  265. package/docs/ko/intlayer_with_vite+vue.md +16 -3
  266. package/docs/ko/introduction.md +0 -1
  267. package/docs/ko/readme.md +0 -1
  268. package/docs/ko/releases/v8.md +1 -5
  269. package/docs/nl/intlayer_with_vite+lit.md +75 -3
  270. package/docs/nl/intlayer_with_vite+vanilla.md +16 -3
  271. package/docs/nl/introduction.md +0 -1
  272. package/docs/pl/intlayer_with_astro.md +6 -21
  273. package/docs/pl/intlayer_with_astro_lit.md +23 -27
  274. package/docs/pl/intlayer_with_astro_preact.md +23 -27
  275. package/docs/pl/intlayer_with_astro_react.md +23 -27
  276. package/docs/pl/intlayer_with_astro_solid.md +23 -27
  277. package/docs/pl/intlayer_with_astro_svelte.md +23 -27
  278. package/docs/pl/intlayer_with_astro_vue.md +23 -27
  279. package/docs/pl/intlayer_with_react_router_v7.md +12 -1
  280. package/docs/pl/intlayer_with_solid_start.md +14 -7
  281. package/docs/pl/intlayer_with_svelte_kit.md +12 -1
  282. package/docs/pl/intlayer_with_tanstack+solid.md +13 -2
  283. package/docs/pl/intlayer_with_tanstack.md +13 -6
  284. package/docs/pl/intlayer_with_vite+lit.md +75 -3
  285. package/docs/pl/intlayer_with_vite+preact.md +16 -3
  286. package/docs/pl/intlayer_with_vite+react.md +16 -3
  287. package/docs/pl/intlayer_with_vite+solid.md +16 -3
  288. package/docs/pl/intlayer_with_vite+svelte.md +16 -3
  289. package/docs/pl/intlayer_with_vite+vanilla.md +16 -3
  290. package/docs/pl/intlayer_with_vite+vue.md +16 -3
  291. package/docs/pl/introduction.md +0 -1
  292. package/docs/pl/readme.md +0 -1
  293. package/docs/pl/releases/v8.md +1 -5
  294. package/docs/pt/intlayer_with_astro.md +6 -21
  295. package/docs/pt/intlayer_with_astro_lit.md +23 -27
  296. package/docs/pt/intlayer_with_astro_preact.md +23 -27
  297. package/docs/pt/intlayer_with_astro_react.md +23 -27
  298. package/docs/pt/intlayer_with_astro_solid.md +23 -27
  299. package/docs/pt/intlayer_with_astro_svelte.md +23 -27
  300. package/docs/pt/intlayer_with_astro_vue.md +23 -27
  301. package/docs/pt/intlayer_with_react_router_v7.md +12 -1
  302. package/docs/pt/intlayer_with_solid_start.md +14 -7
  303. package/docs/pt/intlayer_with_svelte_kit.md +12 -1
  304. package/docs/pt/intlayer_with_tanstack+solid.md +13 -2
  305. package/docs/pt/intlayer_with_tanstack.md +13 -6
  306. package/docs/pt/intlayer_with_vite+lit.md +75 -3
  307. package/docs/pt/intlayer_with_vite+preact.md +16 -3
  308. package/docs/pt/intlayer_with_vite+react.md +16 -3
  309. package/docs/pt/intlayer_with_vite+solid.md +16 -3
  310. package/docs/pt/intlayer_with_vite+svelte.md +16 -3
  311. package/docs/pt/intlayer_with_vite+vanilla.md +16 -3
  312. package/docs/pt/intlayer_with_vite+vue.md +16 -3
  313. package/docs/pt/introduction.md +0 -1
  314. package/docs/pt/readme.md +0 -1
  315. package/docs/pt/releases/v8.md +1 -5
  316. package/docs/ru/intlayer_with_astro.md +12 -25
  317. package/docs/ru/intlayer_with_astro_lit.md +23 -27
  318. package/docs/ru/intlayer_with_astro_preact.md +23 -27
  319. package/docs/ru/intlayer_with_astro_react.md +23 -27
  320. package/docs/ru/intlayer_with_astro_solid.md +23 -27
  321. package/docs/ru/intlayer_with_astro_svelte.md +23 -27
  322. package/docs/ru/intlayer_with_astro_vue.md +23 -27
  323. package/docs/ru/intlayer_with_react_router_v7.md +12 -1
  324. package/docs/ru/intlayer_with_solid_start.md +14 -7
  325. package/docs/ru/intlayer_with_svelte_kit.md +12 -1
  326. package/docs/ru/intlayer_with_tanstack+solid.md +13 -2
  327. package/docs/ru/intlayer_with_tanstack.md +13 -6
  328. package/docs/ru/intlayer_with_vite+lit.md +75 -3
  329. package/docs/ru/intlayer_with_vite+preact.md +16 -3
  330. package/docs/ru/intlayer_with_vite+react.md +16 -3
  331. package/docs/ru/intlayer_with_vite+solid.md +16 -3
  332. package/docs/ru/intlayer_with_vite+svelte.md +16 -3
  333. package/docs/ru/intlayer_with_vite+vanilla.md +16 -3
  334. package/docs/ru/intlayer_with_vite+vue.md +16 -3
  335. package/docs/ru/introduction.md +0 -1
  336. package/docs/ru/readme.md +0 -1
  337. package/docs/ru/releases/v8.md +1 -5
  338. package/docs/tr/intlayer_with_astro.md +12 -25
  339. package/docs/tr/intlayer_with_astro_lit.md +24 -28
  340. package/docs/tr/intlayer_with_astro_preact.md +24 -28
  341. package/docs/tr/intlayer_with_astro_react.md +24 -28
  342. package/docs/tr/intlayer_with_astro_solid.md +24 -28
  343. package/docs/tr/intlayer_with_astro_svelte.md +24 -28
  344. package/docs/tr/intlayer_with_astro_vue.md +24 -28
  345. package/docs/tr/intlayer_with_react_router_v7.md +12 -1
  346. package/docs/tr/intlayer_with_solid_start.md +14 -7
  347. package/docs/tr/intlayer_with_svelte_kit.md +12 -1
  348. package/docs/tr/intlayer_with_tanstack+solid.md +13 -2
  349. package/docs/tr/intlayer_with_tanstack.md +13 -6
  350. package/docs/tr/intlayer_with_vite+lit.md +75 -3
  351. package/docs/tr/intlayer_with_vite+preact.md +16 -3
  352. package/docs/tr/intlayer_with_vite+react.md +16 -3
  353. package/docs/tr/intlayer_with_vite+solid.md +16 -3
  354. package/docs/tr/intlayer_with_vite+svelte.md +16 -3
  355. package/docs/tr/intlayer_with_vite+vanilla.md +16 -3
  356. package/docs/tr/intlayer_with_vite+vue.md +16 -3
  357. package/docs/tr/introduction.md +0 -1
  358. package/docs/tr/readme.md +0 -1
  359. package/docs/tr/releases/v8.md +1 -5
  360. package/docs/uk/intlayer_with_astro.md +12 -25
  361. package/docs/uk/intlayer_with_astro_lit.md +23 -27
  362. package/docs/uk/intlayer_with_astro_preact.md +23 -27
  363. package/docs/uk/intlayer_with_astro_react.md +23 -27
  364. package/docs/uk/intlayer_with_astro_solid.md +23 -27
  365. package/docs/uk/intlayer_with_astro_svelte.md +23 -27
  366. package/docs/uk/intlayer_with_astro_vue.md +23 -27
  367. package/docs/uk/intlayer_with_react_router_v7.md +12 -1
  368. package/docs/uk/intlayer_with_solid_start.md +14 -7
  369. package/docs/uk/intlayer_with_svelte_kit.md +12 -1
  370. package/docs/uk/intlayer_with_tanstack+solid.md +13 -2
  371. package/docs/uk/intlayer_with_tanstack.md +13 -6
  372. package/docs/uk/intlayer_with_vite+lit.md +75 -3
  373. package/docs/uk/intlayer_with_vite+preact.md +16 -3
  374. package/docs/uk/intlayer_with_vite+react.md +16 -3
  375. package/docs/uk/intlayer_with_vite+solid.md +16 -3
  376. package/docs/uk/intlayer_with_vite+svelte.md +16 -3
  377. package/docs/uk/intlayer_with_vite+vanilla.md +16 -3
  378. package/docs/uk/intlayer_with_vite+vue.md +16 -3
  379. package/docs/uk/introduction.md +0 -1
  380. package/docs/uk/readme.md +0 -1
  381. package/docs/uk/releases/v8.md +1 -5
  382. package/docs/ur/intlayer_with_vite+lit.md +75 -3
  383. package/docs/ur/intlayer_with_vite+vanilla.md +16 -3
  384. package/docs/ur/introduction.md +0 -1
  385. package/docs/vi/intlayer_with_astro.md +12 -25
  386. package/docs/vi/intlayer_with_astro_lit.md +23 -27
  387. package/docs/vi/intlayer_with_astro_preact.md +23 -27
  388. package/docs/vi/intlayer_with_astro_react.md +23 -27
  389. package/docs/vi/intlayer_with_astro_solid.md +23 -27
  390. package/docs/vi/intlayer_with_astro_svelte.md +23 -27
  391. package/docs/vi/intlayer_with_astro_vue.md +23 -27
  392. package/docs/vi/intlayer_with_react_router_v7.md +12 -1
  393. package/docs/vi/intlayer_with_solid_start.md +14 -7
  394. package/docs/vi/intlayer_with_svelte_kit.md +12 -1
  395. package/docs/vi/intlayer_with_tanstack+solid.md +13 -2
  396. package/docs/vi/intlayer_with_tanstack.md +13 -6
  397. package/docs/vi/intlayer_with_vite+lit.md +75 -3
  398. package/docs/vi/intlayer_with_vite+preact.md +16 -3
  399. package/docs/vi/intlayer_with_vite+react.md +16 -3
  400. package/docs/vi/intlayer_with_vite+solid.md +16 -3
  401. package/docs/vi/intlayer_with_vite+svelte.md +16 -3
  402. package/docs/vi/intlayer_with_vite+vanilla.md +16 -3
  403. package/docs/vi/intlayer_with_vite+vue.md +16 -3
  404. package/docs/vi/introduction.md +0 -1
  405. package/docs/vi/readme.md +0 -1
  406. package/docs/vi/releases/v8.md +1 -5
  407. package/docs/zh/intlayer_with_astro.md +6 -21
  408. package/docs/zh/intlayer_with_astro_lit.md +23 -27
  409. package/docs/zh/intlayer_with_astro_preact.md +23 -27
  410. package/docs/zh/intlayer_with_astro_react.md +23 -27
  411. package/docs/zh/intlayer_with_astro_solid.md +23 -27
  412. package/docs/zh/intlayer_with_astro_svelte.md +23 -27
  413. package/docs/zh/intlayer_with_astro_vue.md +23 -27
  414. package/docs/zh/intlayer_with_react_router_v7.md +12 -1
  415. package/docs/zh/intlayer_with_solid_start.md +14 -7
  416. package/docs/zh/intlayer_with_svelte_kit.md +12 -1
  417. package/docs/zh/intlayer_with_tanstack+solid.md +13 -2
  418. package/docs/zh/intlayer_with_tanstack.md +13 -6
  419. package/docs/zh/intlayer_with_vite+lit.md +75 -3
  420. package/docs/zh/intlayer_with_vite+preact.md +16 -3
  421. package/docs/zh/intlayer_with_vite+react.md +16 -3
  422. package/docs/zh/intlayer_with_vite+solid.md +16 -3
  423. package/docs/zh/intlayer_with_vite+svelte.md +16 -3
  424. package/docs/zh/intlayer_with_vite+vanilla.md +16 -3
  425. package/docs/zh/intlayer_with_vite+vue.md +16 -3
  426. package/docs/zh/introduction.md +0 -1
  427. package/docs/zh/readme.md +0 -1
  428. package/docs/zh/releases/v8.md +1 -5
  429. package/docs/zh-TW/introduction.md +0 -1
  430. package/package.json +6 -6
  431. package/docs/ar/intlayer_with_astro_vanilla.md +0 -709
  432. package/docs/de/intlayer_with_astro_vanilla.md +0 -705
  433. package/docs/en-GB/intlayer_with_astro_vanilla.md +0 -709
  434. package/docs/es/intlayer_with_astro_vanilla.md +0 -701
  435. package/docs/fr/intlayer_with_astro_vanilla.md +0 -701
  436. package/docs/hi/intlayer_with_astro_vanilla.md +0 -720
  437. package/docs/id/intlayer_with_astro_vanilla.md +0 -705
  438. package/docs/it/intlayer_with_astro_vanilla.md +0 -705
  439. package/docs/ja/intlayer_with_astro_vanilla.md +0 -708
  440. package/docs/ko/intlayer_with_astro_vanilla.md +0 -720
  441. package/docs/pl/intlayer_with_astro_vanilla.md +0 -705
  442. package/docs/pt/intlayer_with_astro_vanilla.md +0 -705
  443. package/docs/ru/intlayer_with_astro_vanilla.md +0 -716
  444. package/docs/tr/intlayer_with_astro_vanilla.md +0 -705
  445. package/docs/uk/intlayer_with_astro_vanilla.md +0 -705
  446. package/docs/vi/intlayer_with_astro_vanilla.md +0 -705
  447. package/docs/zh/intlayer_with_astro_vanilla.md +0 -704
@@ -1,709 +0,0 @@
1
- ---
2
- createdAt: 2026-04-24
3
- updatedAt: 2026-06-23
4
- title: "تدويل Astro + Vanilla JS - الدليل الكامل لترجمة تطبيقك"
5
- description: "لا مزيد من i18next. دليل 2026 لبناء تطبيق Astro + Vanilla JS متعدد اللغات (i18n). ترجم باستخدام وكلاء الذكاء الاصطناعي وحسّن حجم الحزمة وتحسين محركات البحث والأداء."
6
- keywords:
7
- - التدويل
8
- - توثيق
9
- - Intlayer
10
- - Astro
11
- - Vanilla JS
12
- - JavaScript
13
- - TypeScript
14
- slugs:
15
- - doc
16
- - environment
17
- - astro
18
- - vanilla
19
- applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
20
- applicationShowcase: https://intlayer-astro-template.vercel.app
21
- history:
22
- - version: 8.9.0
23
- date: 2026-05-04
24
- changes: "تحديث استخدام واجهة برمجة تطبيقات useIntlayer في Solid للوصول المباشر إلى الخصائص"
25
- - version: 8.7.7
26
- date: 2026-04-24
27
- changes: "التوثيق الأولي لـ Astro + Vanilla JS"
28
- author: aymericzip
29
- ---
30
-
31
- # ترجمة موقع Astro + Vanilla JS الخاص بك باستخدام Intlayer | التدويل (i18n)
32
-
33
- <Tabs defaultTab="code">
34
- <Tab label="كود" value="code">
35
-
36
- <iframe
37
- src="https://ide.intlayer.org/aymericzip/intlayer-astro-template?file=intlayer.config.ts"
38
- className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
39
- title="Demo CodeSandbox - كيفية تدويل تطبيقك باستخدام Intlayer"
40
- sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
41
- loading="lazy"
42
- />
43
-
44
- </Tab>
45
- <Tab label="تجربة" value="demo">
46
-
47
- <iframe
48
- src="https://intlayer-astro-template.vercel.app"
49
- className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
50
- title="تجربة - intlayer-astro-template"
51
- sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
52
- loading="lazy"
53
- />
54
-
55
- </Tab>
56
- </Tabs>
57
-
58
- ## جدول المحتويات
59
-
60
- <TOC/>
61
-
62
- ## لماذا Intlayer على البدائل؟
63
-
64
- بالمقارنة مع الحلول الرئيسية مثل `astro-i18n` أو `i18next`، يعد Intlayer حلاً يأتي مزودًا بتحسينات متكاملة مثل:
65
-
66
- <AccordionGroup>
67
- <Accordion header="تغطية استرو كاملة">
68
-
69
- تم تحسين Intlayer للعمل بشكل مثالي مع Astro من خلال تقديم **توجيه متعدد اللغات** و**خريطة الموقع** وجميع الميزات اللازمة لتوسيع نطاق التدويل (i18n).
70
-
71
- </Accordion>
72
- <Accordion header="حجم الحزمة">
73
-
74
- بدلاً من تحميل ملفات JSON ضخمة إلى صفحاتك، قم بتحميل المحتوى الضروري فقط. يساعد Intlayer **في تقليل أحجام البندل وصفحاتك بنسبة تصل إلى 50%**.
75
-
76
- </Accordion>
77
- <Accordion header="قابلية الصيانة">
78
-
79
- يؤدي تحديد نطاق محتوى تطبيقك ** إلى تسهيل الصيانة ** للتطبيقات واسعة النطاق. يمكنك تكرار أو حذف مجلد ميزات واحد دون العبء العقلي لمراجعة قاعدة بيانات المحتوى بالكامل. بالإضافة إلى ذلك، تتم كتابة Intlayer **بالكامل** لضمان دقة المحتوى الخاص بك.
80
-
81
- </Accordion>
82
- <Accordion header="وكيل الذكاء الاصطناعي">
83
-
84
- يؤدي تحديد موقع المحتوى المشترك ** إلى تقليل السياق المطلوب ** بواسطة نماذج اللغات الكبيرة (LLMs). يأتي Intlayer أيضًا مزودًا بمجموعة من الأدوات، مثل **CLI** لاختبار الترجمات المفقودة،**[LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**، **[MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)** و**[agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/agent_skills.md)**، لجعل تجربة المطور (DX) أكثر سلاسة للذكاء الاصطناعي وكلاء.
85
-
86
- </Accordion>
87
- <Accordion header="الأتمتة">
88
-
89
- استخدم الأتمتة للترجمة في مسار CI/CD الخاص بك باستخدام LLM من اختيارك على حساب مزود الذكاء الاصطناعي الخاص بك. يقدم Intlayer أيضًا **مترجمًا** لأتمتة استخراج المحتوى، بالإضافة إلى [منصة ويب](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) للمساعدة في **الترجمة في الخلفية**.
90
-
91
- </Accordion>
92
- <Accordion header="أداء">
93
-
94
- يمكن أن يؤدي ربط ملفات JSON الضخمة بالمكونات إلى حدوث مشكلات في الأداء والتفاعل. يعمل Intlayer على تحسين تحميل المحتوى الخاص بك في وقت الإنشاء.
95
-
96
- </Accordion>
97
- <Accordion header="التحجيم مع عدم وجود مطور">
98
-
99
- أكثر من مجرد حل i18n، يوفر Intlayer **[محررًا مرئيًا] مستضافًا ذاتيًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** و**[كامل CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)** لمساعدتك في إدارة المحتوى متعدد اللغات في **الوقت الفعلي**، مما يجعل التعاون مع المترجمين ومؤلفي النصوص وأعضاء الفريق الآخرين سلسًا. يمكن تخزين المحتوى محليًا و/أو عن بعد.
100
-
101
- </Accordion>
102
- </AccordionGroup>
103
-
104
- ## دليل خطوة بخطوة لتهيئة Intlayer في Astro + Vanilla JS
105
-
106
- تحقق من [نموذج التطبيق](https://github.com/aymericzip/intlayer-astro-template) على GitHub.
107
-
108
- <Steps>
109
- <Step number={1} title="تثبيت التبعيات">
110
-
111
- قم بتثبيت الحزم اللازمة باستخدام مدير الحزم المفضل لديك:
112
-
113
- ```bash packageManager="npm"
114
- npx intlayer init --interactive
115
- ```
116
-
117
- ```bash packageManager="pnpm"
118
- pnpm dlx intlayer init --interactive
119
- ```
120
-
121
- ```bash packageManager="yarn"
122
- yarn dlx intlayer init --interactive
123
- ```
124
-
125
- ```bash packageManager="bun"
126
- bunx intlayer init --interactive
127
- ```
128
-
129
- > علامة `--interactive` اختيارية. استخدم `intlayer-cli init` إذا كنت وكيل ذكاء اصطناعي.
130
-
131
- > سيقوم هذا الأمر باكتشاف بيئتك وتثبيت الحزم المطلوبة. على سبيل المثال:
132
-
133
- ```bash packageManager="npm"
134
- npm install intlayer astro-intlayer vanilla-intlayer
135
- ```
136
-
137
- ```bash packageManager="pnpm"
138
- pnpm add intlayer astro-intlayer vanilla-intlayer
139
- ```
140
-
141
- ```bash packageManager="yarn"
142
- yarn add intlayer astro-intlayer vanilla-intlayer
143
- ```
144
-
145
- ```bash packageManager="bun"
146
- bun add intlayer astro-intlayer vanilla-intlayer
147
- ```
148
-
149
- - **intlayer**
150
- الحزمة الأساسية التي توفر أدوات i18n لإدارة التكوين، الترجمات، [تعريف المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md)، التحويل، و[أوامر CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/index.md).
151
-
152
- - **astro-intlayer**
153
- تتضمن إضافة تكامل Astro لربط Intlayer بـ [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production)، بالإضافة إلى وسيط (middleware) لاكتشاف لغة المستخدم المفضلة، وإدارة ملفات تعريف الارتباط (cookies)، والتعامل مع إعادة توجيه الروابط.
154
-
155
- - **vanilla-intlayer**
156
- حزمة لدمج Intlayer في تطبيقات Vanilla JavaScript / TypeScript. توفر كائن Pub/Sub أحادي (`IntlayerClient`) ومساعدين يعتمدون على الاستدعاءات (`useIntlayer`, `useLocale`, إلخ)، مما يسمح لأي جزء من وسوم `<script>` في Astro بالاستجابة لتغييرات اللغة دون الحاجة إلى إطار عمل واجهة مستخدم.
157
-
158
- </Step>
159
- <Step number={2} title="تهيئة مشروعك">
160
-
161
- أنشئ ملف تكوين لتحديد لغات تطبيقك:
162
-
163
- ```typescript fileName="intlayer.config.ts"
164
- import { Locales, type IntlayerConfig } from "intlayer";
165
-
166
- const config: IntlayerConfig = {
167
- internationalization: {
168
- locales: [
169
- Locales.ENGLISH,
170
- Locales.FRENCH,
171
- Locales.SPANISH,
172
- Locales.ARABIC,
173
- // لغاتك الأخرى
174
- ],
175
- defaultLocale: Locales.ENGLISH,
176
- },
177
- };
178
-
179
- export default config;
180
- ```
181
-
182
- > من خلال ملف التكوين هذا، يمكنك تهيئة الروابط المترجمة، وإعادة توجيه الوسيط، وأسماء الكوكيز، وموقع وامتدادات تعريفات المحتوى، وتعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعلمات المتاحة، راجع [توثيق التهيئة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
183
-
184
- </Step>
185
- <Step number={3} title="دمج Intlayer في تكوين Astro الخاص بك">
186
-
187
- أضف إضافة `intlayer` إلى تكوين Astro الخاص بك. بالنسبة لـ Vanilla JS، لا يلزم وجود تكامل إضافي لإطار عمل واجهة مستخدم.
188
-
189
- ```typescript fileName="astro.config.ts"
190
- // @ts-check
191
-
192
- import { intlayer } from "astro-intlayer";
193
- import { defineConfig } from "astro/config";
194
-
195
- // https://astro.build/config
196
- export default defineConfig({
197
- integrations: [intlayer()],
198
- });
199
- ```
200
-
201
- > تُستخدم إضافة `intlayer()` لدمج Intlayer مع Astro. وهي تضمن إنشاء ملفات تعريف المحتوى ومراقبتها في وضع التطوير. وتعرّف متغيرات بيئة Intlayer داخل تطبيق Astro وتوفر أسماء مستعارة لتحسين الأداء.
202
-
203
- </Step>
204
- <Step number={4} title="تعريف المحتوى الخاص بك">
205
-
206
- أنشئ وأدِر تعريفات المحتوى لتخزين الترجمات:
207
-
208
- ```typescript fileName="src/app.content.ts"
209
- import { t, type Dictionary } from "intlayer";
210
-
211
- const appContent = {
212
- key: "app",
213
- content: {
214
- greeting: t({
215
- en: "Hello World",
216
- fr: "Bonjour le monde",
217
- es: "Hola mundo",
218
- ar: "مرحبا بالعالم",
219
- }),
220
- description: t({
221
- en: "Welcome to my multilingual Astro site.",
222
- fr: "Bienvenue sur mon site Astro multilingue.",
223
- es: "Bienvenido a mi sitio Astro multilingüe.",
224
- ar: "مرحبا بكم في موقع Astro متعدد اللغات الخاص بي.",
225
- }),
226
- switchLocale: t({
227
- en: "Switch language:",
228
- fr: "Changer de langue :",
229
- es: "Cambiar idioma:",
230
- ar: "تغيير اللغة:",
231
- }),
232
- },
233
- } satisfies Dictionary;
234
-
235
- export default appContent;
236
- ```
237
-
238
- > يمكن تعريف تعريفات المحتوى في أي مكان في تطبيقك، طالما أنها مدرجة في `contentDir` (افتراضيًا `./src`) وتطابق امتداد ملف تعريف المحتوى (افتراضيًا `.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}`).
239
-
240
- > لمزيد من المعلومات، راجع [توثيق تعريف المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md).
241
-
242
- </Step>
243
- <Step number={5} title="استخدام المحتوى في Astro">
244
-
245
- مع Vanilla JS، يتم إجراء جميع عمليات الرندر في جانب الخادم مباشرة داخل ملفات `.astro` باستخدام `getIntlayer`. بعد ذلك، تقوم كتلة `<script>` بتهيئة `vanilla-intlayer` على العميل لتمكين تبديل اللغة.
246
-
247
- ```astro fileName="src/pages/[...locale]/index.astro"
248
- ---
249
- import {
250
- getIntlayer,
251
- getLocaleFromPath,
252
- getLocalizedUrl,
253
- getPrefix,
254
- getLocaleName,
255
- localeMap,
256
- locales,
257
- defaultLocale,
258
- getPathWithoutLocale,
259
- type LocalesValues,
260
- } from "intlayer";
261
-
262
- export const getStaticPaths = () => {
263
- return localeMap(({ locale }) => ({
264
- params: { locale: getPrefix(locale).localePrefix },
265
- }));
266
- };
267
-
268
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
269
- const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
270
- const { greeting, description, switchLocale } = getIntlayer("app", locale);
271
- ---
272
-
273
- <!doctype html>
274
- <html lang={locale} dir={locale === 'ar' ? 'rtl' : 'ltr'}>
275
- <head>
276
- <meta charset="utf-8" />
277
- <meta name="viewport" content="width=device-width" />
278
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
279
- <title>{greeting}</title>
280
-
281
- <!-- رابط canonical -->
282
- <link
283
- rel="canonical"
284
- href={new URL(getLocalizedUrl(Astro.url.pathname, locale), Astro.site)}
285
- />
286
-
287
- <!-- روابط Hreflang -->
288
- {
289
- localeMap(({ locale: mapLocale }) => (
290
- <link
291
- rel="alternate"
292
- hreflang={mapLocale}
293
- href={new URL(
294
- getLocalizedUrl(Astro.url.pathname, mapLocale),
295
- Astro.site
296
- )}
297
- />
298
- ))
299
- }
300
-
301
- <link
302
- rel="alternate"
303
- hreflang="x-default"
304
- href={new URL(
305
- getLocalizedUrl(Astro.url.pathname, defaultLocale),
306
- Astro.site
307
- )}
308
- />
309
- </head>
310
- <body>
311
- <main>
312
- <h1 id="greeting">{greeting}</h1>
313
- <p id="description">{description}</p>
314
-
315
- <div class="locale-switcher">
316
- <span class="switcher-label">{switchLocale}</span>
317
- <div class="locale-buttons">
318
- {
319
- locales.map((localeItem) => (
320
- <a
321
- href={localeItem === locale ? undefined : getLocalizedUrl(pathWithoutLocale, localeItem)}
322
- class={`locale-btn ${localeItem === locale ? "active" : ""}`}
323
- data-locale={localeItem}
324
- aria-disabled={localeItem === locale}
325
- >
326
- {getLocaleName(localeItem)}
327
- </a>
328
- ))
329
- }
330
- </div>
331
- </div>
332
- </main>
333
- </body>
334
- </html>
335
- ```
336
-
337
- > إذا كنت ترغب في استخدام محتواك في سمة `سلسلة` (string)، مثل `alt` و `title` و `href` و `aria-label` وما إلى ذلك، يمكنك استخدام قيمة الدالة، مثل:
338
-
339
- > ```tsx
340
- > <img src={content.image.src.value} alt={content.image.value} />
341
- > <img src={content.image.src.toString()} alt={content.image.toString()} />
342
- > <img src={String(content.image.src)} alt={String(content.image)} />
343
- > ```
344
-
345
- > **ملاحظة حول إعداد التوجيه:**
346
- > تعتمد بنية الدليل التي تستخدمها على إعداد `middleware.routing` في `intlayer.config.ts`:
347
- >
348
- > - **`prefix-no-default` (افتراضي):** يحافظ على اللغة الافتراضية في الجذر (بدون بادئة) ويضيف بادئات للغات الأخرى. استخدم `[...locale]` لتغطية جميع الحالات.
349
- > - **`prefix-all`:** تحصل جميع الروابط على بادئة لغة. يمكنك استخدام `[locale]` القياسي إذا كنت لا تحتاج إلى معالجة الجذر بشكل منفصل.
350
- > - **`search-param` أو `no-prefix`:** لا يلزم وجود أدلة لغة. يتم التعامل مع اللغة عبر معلمات الاستعلام أو ملفات تعريف الارتباط.
351
-
352
- </Step>
353
- <Step number={6} title="إضافة تبديل اللغة">
354
-
355
- في Astro مع Vanilla JS، يتم رندر مبدل اللغة على الخادم كروابط عادية ويتم تفعيله (hydrated) على العميل عبر كتلة `<script>`. عندما ينقر المستخدم على رابط لغة، يقوم `vanilla-intlayer` بتعيين كوكيز اللغة عبر `setLocale` قبل الانتقال إلى الرابط المترجم.
356
-
357
- ```astro fileName="src/pages/[...locale]/index.astro"
358
- <!-- تضمين كود الخادم من الخطوة 5 أعلاه -->
359
-
360
- <script>
361
- import { installIntlayer, useLocale } from "vanilla-intlayer";
362
- import { getLocaleFromPath, getLocalizedUrl, type LocalesValues } from "intlayer";
363
-
364
- // تهيئة Intlayer على العميل باللغة المأخوذة من المسار الحالي
365
- const locale = getLocaleFromPath(window.location.pathname);
366
- installIntlayer({ locale: locale as LocalesValues });
367
-
368
- const { setLocale } = useLocale({
369
- onLocaleChange: (newLocale: LocalesValues) => {
370
- window.location.href = getLocalizedUrl(window.location.pathname, newLocale);
371
- },
372
- });
373
-
374
- // ربط أحداث النقر بروابط تبديل اللغة
375
- const localeLinks = document.querySelectorAll("[data-locale]");
376
- localeLinks.forEach((link) => {
377
- link.addEventListener("click", (e) => {
378
- const localeValue = link.getAttribute("data-locale") as LocalesValues;
379
- if (localeValue && localeValue !== locale) {
380
- e.preventDefault();
381
- setLocale(localeValue);
382
- }
383
- });
384
- });
385
- </script>
386
- ```
387
-
388
- > **ملاحظة حول الاستمرارية:**
389
- > تقوم `installIntlayer` بتهيئة كائن Intlayer الأحادي باللغة المحددة من الخادم. وتضمن `useLocale` مع `onLocaleChange` تعيين كوكيز اللغة قبل الانتقال عبر الوسيط، بحيث يتم تذكر تفضيلات لغة المستخدم في الزيارات المستقبلية.
390
-
391
- > **ملاحظة حول التحسين التدريجي (Progressive Enhancement):**
392
- > ستعمل الروابط في مبدل اللغة كعناصر `<a>` عادية حتى بدون جافا سكريبت. عند توفر جافا سكريبت، ستقوم استدعاءات `setLocale` بتحديث الكوكيز قبل الانتقال، مما يضمن قيام الوسيط بالتوجيه الصحيح.
393
-
394
- </Step>
395
- <Step number={7} title="خريطة الموقع وRobots.txt">
396
-
397
- توفر Intlayer أدوات لإنشاء خريطة موقع (sitemap) مترجمة وملفات robots.txt ديناميكيًا.
398
-
399
- #### خريطة الموقع (Sitemap)
400
-
401
- Intlayer comes with a built-in sitemap generator to help you create a sitemap for your application easily. It handles localized routes and adds the necessary metadata for search engines.
402
-
403
- > The Intlayer generated sitemap supports the `xhtml:link` namespace (Hreflang XML Extensions). Unlike the default sitemap generators that only list raw URLs, Intlayer automatically creates the required bidirectional links between all language versions of a page (e.g., `/about`, `/about?lang=fr`, and `/about?lang=es`). This ensures search engines correctly index and serve the right language version to the right audience.
404
-
405
- أنشئ `src/pages/sitemap.xml.ts` لإنشاء خريطة موقع تتضمن جميع مساراتك المترجمة.
406
-
407
- ```typescript fileName="src/pages/sitemap.xml.ts"
408
- import type { APIRoute } from "astro";
409
- import { generateSitemap, type SitemapUrlEntry } from "intlayer";
410
-
411
- const pathList: SitemapUrlEntry[] = [
412
- { path: "/", changefreq: "daily", priority: 1.0 },
413
- { path: "/about", changefreq: "monthly", priority: 0.7 },
414
- ];
415
-
416
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
417
-
418
- export const GET: APIRoute = async ({ site }) => {
419
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
420
-
421
- return new Response(xmlOutput, {
422
- headers: { "Content-Type": "application/xml" },
423
- });
424
- };
425
- ```
426
-
427
- #### Robots.txt
428
-
429
- أنشئ `src/pages/robots.txt.ts` للتحكم في زحف محركات البحث.
430
-
431
- ```typescript fileName="src/pages/robots.txt.ts"
432
- import type { APIRoute } from "astro";
433
- import { getMultilingualUrls } from "intlayer";
434
-
435
- const getAllMultilingualUrls = (urls: string[]) =>
436
- urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
437
-
438
- const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);
439
-
440
- export const GET: APIRoute = ({ site }) => {
441
- const robotsTxt = [
442
- "User-agent: *",
443
- "Allow: /",
444
- ...disallowedPaths.map((path) => `Disallow: ${path}`),
445
- "",
446
- `Sitemap: ${new URL("/sitemap.xml", site).href}`,
447
- ].join("\n");
448
-
449
- return new Response(robotsTxt, {
450
- headers: { "Content-Type": "text/plain" },
451
- });
452
- };
453
- ```
454
-
455
- </Step>
456
- <Step number={15} title="Extract the content of your components" isOptional={true}>
457
-
458
- If you have an existing codebase, transforming thousands of files can be time-consuming.
459
-
460
- To ease this process, Intlayer propose a [compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) / [extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) to transform your components and extract the content.
461
-
462
- To set it up, you can add a `compiler` section in your `intlayer.config.ts` file:
463
-
464
- ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
465
- import { type IntlayerConfig } from "intlayer";
466
-
467
- const config: IntlayerConfig = {
468
- // ... Rest of your config
469
- compiler: {
470
- /**
471
- * Indicates if the compiler should be enabled.
472
- */
473
- enabled: true,
474
-
475
- /**
476
- * Defines the output files path
477
- */
478
- output: ({ fileName, extension }) => `./${fileName}${extension}`,
479
-
480
- /**
481
- * Indicates if the components should be saved after being transformed.
482
- *
483
- * - If `true`, the compiler will rewrite the component file in the disk. So the transformation will be permanent, and the compiler will skip the transformation for the next process. That way, the compiler can transform the app, and then it can be removed.
484
- *
485
- * - If `false`, the compiler will inject the `useIntlayer()` function call into the code in the build output only, and keep the base codebase intact. The transformation will be done only in memory.
486
- */
487
- saveComponents: false,
488
-
489
- /**
490
- * Dictionary key prefix
491
- */
492
- dictionaryKeyPrefix: "",
493
- },
494
- };
495
-
496
- export default config;
497
- ```
498
-
499
- <Tabs>
500
- <Tab value='Extract command'>
501
-
502
- Run the extractor to transform your components and extract the content
503
-
504
- ```bash packageManager="npm"
505
- npx intlayer extract
506
- ```
507
-
508
- ```bash packageManager="pnpm"
509
- pnpm intlayer extract
510
- ```
511
-
512
- ```bash packageManager="yarn"
513
- yarn intlayer extract
514
- ```
515
-
516
- ```bash packageManager="bun"
517
- bun x intlayer extract
518
- ```
519
-
520
- </Tab>
521
- <Tab value='Babel compiler'>
522
-
523
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
524
-
525
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
526
-
527
- ```ts fileName="vite.config.ts"
528
- import { defineConfig } from "vite";
529
- import { intlayer, intlayerCompiler } from "vite-intlayer";
530
-
531
- export default defineConfig({
532
- plugins: [
533
- intlayer(),
534
- intlayerCompiler(), // Adds the compiler plugin
535
- ],
536
- });
537
- ```
538
-
539
- ```bash packageManager="npm"
540
- npm run build # Or npm run dev
541
- ```
542
-
543
- ```bash packageManager="pnpm"
544
- pnpm run build # Or pnpm run dev
545
- ```
546
-
547
- ```bash packageManager="yarn"
548
- yarn build # Or yarn dev
549
- ```
550
-
551
- ```bash packageManager="bun"
552
- bun run build # Or bun run dev
553
- ```
554
-
555
- </Tab>
556
- </Tabs>
557
-
558
- </Step>
559
-
560
- </Steps>
561
-
562
- ### تكوين TypeScript
563
-
564
- تستخدم Intlayer تقنية توسيع الوحدات (module augmentation) للاستفادة من TypeScript، مما يجعل برمجتك أكثر قوة.
565
-
566
- ![الإكمال التلقائي](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
567
-
568
- ![خطأ في الترجمة](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.webp?raw=true)
569
-
570
- تأكد من أن تكوين TypeScript الخاص بك يتضمن الأنواع المولدة تلقائيًا.
571
-
572
- ```json5 fileName="tsconfig.json"
573
- {
574
- // ... تكوين TypeScript الحالي الخاص بك
575
- "include": [
576
- // ... تكوين TypeScript الحالي الخاص بك
577
- ".intlayer/**/*.ts", // تضمين الأنواع المولدة تلقائيًا
578
- ],
579
- }
580
- ```
581
-
582
- ### تكوين Git
583
-
584
- يوصى بتجاهل الملفات التي تنشئها Intlayer. هذا يتجنب إضافتها إلى مستودع Git الخاص بك.
585
-
586
- للقيام بذلك، أضف التعليمات التالية إلى ملف `.gitignore` الخاص بك:
587
-
588
- ```bash
589
- # تجاهل الملفات المولدة بواسطة Intlayer
590
- .intlayer
591
- ```
592
-
593
- ### إضافة VS Code
594
-
595
- لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **إضافة Intlayer الرسمية لـ VS Code**.
596
-
597
- [التثبيت من VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
598
-
599
- توفر هذه الإضافة:
600
-
601
- - **إكمال تلقائي** لمفاتيح الترجمة.
602
- - **اكتشاف الأخطاء في الوقت الفعلي** للترجمات المفقودة.
603
- - **معاينة مضمنة** للمحتوى المترجم.
604
- - **إجراءات سريعة** لإنشاء وتحديث الترجمات بسهولة.
605
-
606
- لمزيد من المعلومات حول استخدام الإضافة، راجع [توثيق إضافة VS Code](https://intlayer.org/doc/vs-code-extension).
607
-
608
- ### تعمق أكثر
609
-
610
- إذا كنت تريد معرفة المزيد، يمكنك أيضًا تنفيذ [المحرر المرئي](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md) أو استخدام [نظام إدارة المحتوى (CMS)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_CMS.md) لإخراج محتواك خارجيًا.
611
-
612
- ## الأسئلة الشائعة
613
-
614
- <FAQ>
615
-
616
- <Question title="ما هي الحلول المختلفة المتاحة لتدويل موقع Astro بدون إطار عمل UI؟">
617
-
618
- يدير خيار `i18n` المدمج في Astro بادئات العناوين، ولكنه يترك إدارة المحتوى لك:
619
-
620
- - **كائنات القاموس اليدوية**: كائنات JSON/TS بسيطة مستوردة لكل صفحة: لا يوجد فحص للأنواع، أو قواعد للجمع، أو أدوات تدقيق.
621
- - **`Intlayer`**: يُعلن عن المحتوى بجانب المكون ([محلي أو مركزي](https://intlayer.org/blog/per-component-vs-centralized-i18n))، ويُترجم وقت البناء، مع تدقيق في CI، ودعم كامل للترجمة بالذكاء الاصطناعي والمحرر المرئي.
622
-
623
- بدون إطار عمل UI، ترغب في تجنب عبء مكتبات i18n في وقت التشغيل، ويحل Intlayer المحتوى في وقت البناء بحيث تتضمن صفحات Astro الثابتة كود HTML مكتمل دون قواميس إضافية. انظر [لماذا Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/interest_of_intlayer.md).
624
-
625
- </Question>
626
- <Question title="كم يضيف i18n إلى حجم حزمة Astro لدي؟">
627
-
628
- أقل بكثير من الحلول المعتمدة على فضاءات الأسماء، لأن الصفحة لا تُحمل أبدًا كتالوجًا لا تعرضه. تُعرض صفحات Astro في وقت البناء، لذلك يتم إرسال كود HTML المترجم فقط دون أي قواميس إضافية؛ تتلقى مكونات الجزر التفاعلية فقط القواميس. تقسم [القواميس الديناميكية](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dynamic_dictionaries/index.md) المحتوى حسب اللغة، مما يقلل الحزمة بنسبة تصل إلى 50%. انظر [تحسين الحزم](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/bundle_optimization.md) و [المقارنة المعيارية](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/benchmark/index.md).
629
-
630
- </Question>
631
- <Question title="هل يمكنني الترحيل من i18next أو القواميس اليدوية دون إعادة كتابة المكونات؟">
632
-
633
- إلى حد كبير نعم. اتبع [دليل ترحيل i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/migration_from_i18next_to_intlayer.md).
634
-
635
- </Question>
636
- <Question title="هل يمكنني الاحتفاظ بملفات الترجمة JSON الموجودة لدي؟">
637
-
638
- نعم. تحافظ [مكونة مزامنة JSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/plugins/sync-json.md) على ملفات `/messages/{locale}/{namespace}.json` الخاصة بك كمصدر الحقيقة وتُنشئ قواميس Intlayer منها، في كلا الاتجاهين. وتقوم [مكونة مزامنة PO](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/plugins/sync-po.md) بنفس الشيء لكتالوجات gettext، وتسمح لك [الملفات المقسمة حسب اللغة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/per_locale_file.md) بتقسيم المحتوى حسب اللغة بدلاً من تجميع كل اللغات في ملف واحد.
639
-
640
- </Question>
641
- <Question title="هل يجب أن أنقل المحتوى الخاص بي مفتاحًا تلو الآخر؟">
642
-
643
- لا. قم بتشغيل `npx intlayer extract` وسيقرأ Intlayer ملفاتك، ويسحب السلاسل النصية الموجهة للمستخدم، ويكتب ملف `.content` بجانب كل منها، حتى تراجع diff بدلاً من نسخ السلاسل إلى كتالوج يدويًا. تشرح الخطوة 15 من هذا الدليل ذلك بالتفصيل.
644
-
645
- لأتمتة كاملة، يقوم [Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) بالشيء نفسه في وقت البناء: يمسح الكود عند كل تغيير، وينشئ القواميس ويزامنها مع HMR.
646
-
647
- هناك حدان يجدر معرفتهما قبل تشغيل المترجم. إنه يعمل عن طريق التحليل الثابت، وبالتالي فإن السلاسل التي تظهر فقط في وقت التشغيل، مثل رموز أخطاء API أو حقول نظام إدارة المحتوى، تظل بعيدة عن متناوله. كما يتعين عليه التمييز بين النصوص الموجهة للمستخدم ومنطق التطبيق مثل `className="active"` أو رمز الحالة، الأمر الذي يتطلب بعض الملاحظات التوضيحية في قاعدة التعليمات البرمجية الكبيرة. يتجنب [أمر الاستخراج](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) كلا الأمرين من خلال إبقائك متحكمًا في العملية.
648
-
649
- </Question>
650
- <Question title="ما هي أدوات المحررات والوكلاء الذكيين المتاحة؟">
651
-
652
- خمس أدوات، كلها اختيارية:
653
-
654
- - **[امتداد VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/vs_code_extension.md)**: الانتقال من مفتاح `useIntlayer` إلى ملف المحتوى المصرح به، استخراج المحتوى من المكون، وتشغيل build و fill و test و push و pull من لوحة الأوامر أو علامة تبويب Intlayer.
655
- - **[خادم LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/lsp.md)**: نفس التجربة في أي محرر يدعم LSP، مع الانتقال إلى التعريف وعروض القيمة المترجمة عند التمرير والإكمال التلقائي للمفاتيح. يدعم أيضًا استدعاءات `i18next` و `react-i18next` و `next-intl` و `use-intl`.
656
- - **[خادم MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/mcp_server.md)**: يكشف وثائق Intlayer و CLI إلى Cursor و VS Code و Claude Desktop و Claude Code و ChatGPT.
657
- - **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/agent_skills.md)**: مهارات مخصصة مثل `intlayer-config` و `intlayer-cli` و `intlayer-content`.
658
- - **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/eslint.md)**: قاعدة `no-raw-text` ترصد النصوص المكتوبة مباشرة بدون تدويل.
659
-
660
- </Question>
661
- <Question title="هل أحتاج إلى JavaScript على الصفحة لتعمل الترجمات؟">
662
-
663
- لا. يتم عرض صفحات Astro في وقت البناء ويحل Intlayer المحتوى أثناء ذلك العرض، لذلك يحتوي كود HTML الذي تم إنشاؤه بالفعل على النصوص المترجمة. حزمة `vanilla-intlayer` مطلوبة فقط للأجزاء التي تجعلها تفاعلية في المتصفح.
664
-
665
- </Question>
666
- <Question title="هل يمكنني إضافة جزر تفاعلية لاحقًا دون تغيير المحتوى الخاص بي؟">
667
-
668
- نعم، هذا هو الهدف الأساسي من طبقة المحتوى الموحدة. يُقرأ نفس الإعلان بواسطة `astro-intlayer` على الصفحة وبواسطة روابط إطار عمل الجزيرة التي تضيفها، سواء كانت [React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_react.md) أو [Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_vue.md) أو [Svelte](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_svelte.md) أو [Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_solid.md) أو [Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_preact.md) أو [Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_astro_lit.md).
669
-
670
- </Question>
671
- <Question title="كيف أقوم بإعداد التوجيه المترجم ومبدل اللغة؟">
672
-
673
- تغطي الخطوتان 6 و 7 من هذا الدليل ذلك. يتحكم `routing.mode` فيما إذا كانت اللغة الافتراضية تحصل على بادئة (`"prefix-no-default"`)، أو تحصل جميع اللغات عليها (`"prefix-all"`)، أو تكون اللغة مستقلة عن المسار (`"no-prefix"`). يترجم `getLocalizedUrl` المسار الحالي إلى اللغة المستهدفة مع إبقاء الزائر في نفس الصفحة.
674
-
675
- </Question>
676
- <Question title="كيف أنشئ خريطة موقع مترجمة ووسوم hreflang؟">
677
-
678
- تغطي الخطوة 8 إعداد `sitemap.xml` و `robots.txt`. تُنشئ الدالة `getMultilingualUrls` بدائل لكل لغة معلنة، بما في ذلك `x-default`، لتتمكن محركات البحث من الفهرسة بشكل صحيح.
679
-
680
- </Question>
681
- <Question title="كيف أترجم موقع الويب تلقائياً باستخدام الذكاء الاصطناعي؟">
682
-
683
- قم بتشغيل `npx intlayer fill`. يملأ هذا الأمر الترجمات المفقودة باستخدام نموذج اللغة الذي تختاره مع مزودك ومفتاح API الخاص بك، ويحد `--git-diff` العملية على الملفات المعدلة. انظر [أمر fill](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/fill.md) و [تكامل CI/CD](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/CI_CD.md).
684
-
685
- </Question>
686
- <Question title="هل يدعم Intlayer صيغ الجمع والجنس والنصوص المنسقة؟">
687
-
688
- نعم: [صيغ الجمع (plurals)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/plurial.md)، [المحتوى القائم على النوع الاجتماعي](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/gender.md)، الشروط، [الإدراجات (insertions)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/insertion.md)، والمنسقات للأرقام والتواريخ والعملات.
689
-
690
- </Question>
691
- <Question title="كيف يمكن للمترجمين تحرير المحتوى دون لمس الكود؟">
692
-
693
- من خلال [المحرر المرئي (visual editor)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md)، الذي يسمح لأي شخص بتحرير النصوص مباشرة على التطبيق قيد التشغيل، أو عبر [نظام إدارة المحتوى (CMS)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_CMS.md)، الذي يفصل المحتوى ليتم تحديثه دون الحاجة لإعادة نشر الكود.
694
-
695
- </Question>
696
- <Question title="ما هي تكلفة المحرر المرئي؟ هل هو مبالغ فيه إذا لم أكن بحاجة إليه؟">
697
-
698
- [المحرر المرئي لـ Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md) ذو **تكلفة معدومة** على تطبيقك إذا لم يتم إعداده. لا يتم تحميل المنطق الإضافي إلا إذا تم تمكينه صراحة وعند الحاجة فقط.
699
-
700
- حتى في حال تمكينه، فإن التأثير خفيف للغاية (+5 كيلوبايت، يتم تحميلها ديناميكيًا فقط عند التنشيط) لأن الجزء الأكبر من المنطق تتم معالجته بواسطة محرر الخادم على [app.intlayer.org](https://app.intlayer.org) أو عبر حزمة `intlayer-editor`. إذا كنت بحاجة فقط إلى حل ترجمة بسيط دون تحرير مرئي، فإن Intlayer لا يضيف أي عبء على تطبيقك.
701
-
702
- </Question>
703
- <Question title="هل Intlayer مجاني ومفتوح المصدر؟">
704
-
705
- نعم، بموجب ترخيص Apache 2.0، بما في ذلك الاستخدام التجاري. الـ CMS السحابي المستضاف هو خدمة مدفوعة اختيارية يمكن أيضًا [استضافتها ذاتيًا (self-host)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/self_hosting.md).
706
-
707
- </Question>
708
-
709
- </FAQ>