@intlayer/docs 5.5.8

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 (1135) hide show
  1. package/LICENSE +202 -0
  2. package/ar/CI_CD.md +149 -0
  3. package/ar/autoFill.md +157 -0
  4. package/ar/concept/content/file.md +1 -0
  5. package/ar/configuration.md +492 -0
  6. package/ar/dictionary/condition.md +213 -0
  7. package/ar/dictionary/content_extention_customization.md +81 -0
  8. package/ar/dictionary/enumeration.md +221 -0
  9. package/ar/dictionary/file.md +209 -0
  10. package/ar/dictionary/function_fetching.md +190 -0
  11. package/ar/dictionary/get_started.md +490 -0
  12. package/ar/dictionary/insertion.md +161 -0
  13. package/ar/dictionary/markdown.md +343 -0
  14. package/ar/dictionary/nesting.md +249 -0
  15. package/ar/dictionary/translation.md +307 -0
  16. package/ar/header.md +7 -0
  17. package/ar/how_works_intlayer.md +219 -0
  18. package/ar/index.md +125 -0
  19. package/ar/interest_of_intlayer.md +132 -0
  20. package/ar/intlayer_CMS.md +328 -0
  21. package/ar/intlayer_cli.md +258 -0
  22. package/ar/intlayer_visual_editor.md +210 -0
  23. package/ar/intlayer_with_angular.md +3 -0
  24. package/ar/intlayer_with_create_react_app.md +1196 -0
  25. package/ar/intlayer_with_express.md +270 -0
  26. package/ar/intlayer_with_lynx+react.md +482 -0
  27. package/ar/intlayer_with_nextjs_14.md +1260 -0
  28. package/ar/intlayer_with_nextjs_15.md +1311 -0
  29. package/ar/intlayer_with_nextjs_page_router.md +1099 -0
  30. package/ar/intlayer_with_react_native+expo.md +539 -0
  31. package/ar/intlayer_with_vite+preact.md +1679 -0
  32. package/ar/intlayer_with_vite+react.md +1582 -0
  33. package/ar/intlayer_with_vite+solid.md +3 -0
  34. package/ar/intlayer_with_vite+svelte.md +3 -0
  35. package/ar/intlayer_with_vite+vue.md +989 -0
  36. package/ar/introduction.md +190 -0
  37. package/ar/mcp_server.md +150 -0
  38. package/ar/packages/@intlayer/api/index.md +31 -0
  39. package/ar/packages/@intlayer/chokidar/index.md +31 -0
  40. package/ar/packages/@intlayer/cli/index.md +1 -0
  41. package/ar/packages/@intlayer/config/index.md +116 -0
  42. package/ar/packages/@intlayer/core/index.md +25 -0
  43. package/ar/packages/@intlayer/design-system/index.md +21 -0
  44. package/ar/packages/@intlayer/dictionary-entry/index.md +21 -0
  45. package/ar/packages/@intlayer/editor/index.md +21 -0
  46. package/ar/packages/@intlayer/editor-react/index.md +21 -0
  47. package/ar/packages/@intlayer/webpack/index.md +35 -0
  48. package/ar/packages/angular-intlayer/index.md +3 -0
  49. package/ar/packages/express-intlayer/index.md +232 -0
  50. package/ar/packages/express-intlayer/t.md +448 -0
  51. package/ar/packages/intlayer/getConfiguration.md +120 -0
  52. package/ar/packages/intlayer/getEnumeration.md +138 -0
  53. package/ar/packages/intlayer/getHTMLTextDir.md +97 -0
  54. package/ar/packages/intlayer/getLocaleLang.md +61 -0
  55. package/ar/packages/intlayer/getLocaleName.md +93 -0
  56. package/ar/packages/intlayer/getLocalizedUrl.md +221 -0
  57. package/ar/packages/intlayer/getMultilingualUrls.md +198 -0
  58. package/ar/packages/intlayer/getPathWithoutLocale.md +50 -0
  59. package/ar/packages/intlayer/getTranslation.md +175 -0
  60. package/ar/packages/intlayer/getTranslationContent.md +175 -0
  61. package/ar/packages/intlayer/index.md +254 -0
  62. package/ar/packages/intlayer-cli/index.md +41 -0
  63. package/ar/packages/intlayer-editor/index.md +113 -0
  64. package/ar/packages/lynx-intlayer/index.md +58 -0
  65. package/ar/packages/next-intlayer/index.md +267 -0
  66. package/ar/packages/next-intlayer/t.md +341 -0
  67. package/ar/packages/next-intlayer/useDictionary.md +248 -0
  68. package/ar/packages/next-intlayer/useIntlayer.md +237 -0
  69. package/ar/packages/next-intlayer/useIntlayerAsync.md +211 -0
  70. package/ar/packages/next-intlayer/useLocale.md +105 -0
  71. package/ar/packages/preact-intlayer/index.md +3 -0
  72. package/ar/packages/react-intlayer/index.md +261 -0
  73. package/ar/packages/react-intlayer/t.md +283 -0
  74. package/ar/packages/react-intlayer/useDictionary.md +268 -0
  75. package/ar/packages/react-intlayer/useIntlayer.md +225 -0
  76. package/ar/packages/react-intlayer/useIntlayerAsync.md +226 -0
  77. package/ar/packages/react-intlayer/useLocale.md +184 -0
  78. package/ar/packages/react-native-intlayer/index.md +57 -0
  79. package/ar/packages/react-scripts-intlayer/index.md +57 -0
  80. package/ar/packages/solid-intlayer/index.md +3 -0
  81. package/ar/packages/svelte-intlayer/index.md +3 -0
  82. package/ar/packages/vite-intlayer/index.md +53 -0
  83. package/ar/packages/vue-intlayer/index.md +3 -0
  84. package/ar/per_locale_file.md +298 -0
  85. package/ar/privacy_notice.md +61 -0
  86. package/ar/roadmap.md +208 -0
  87. package/ar/terms_of_service.md +33 -0
  88. package/ar/vs_code_extension.md +139 -0
  89. package/de/CI_CD.md +149 -0
  90. package/de/angular-intlayer/index.md +3 -0
  91. package/de/autoFill.md +157 -0
  92. package/de/configuration.md +501 -0
  93. package/de/dictionary/condition.md +213 -0
  94. package/de/dictionary/content_extention_customization.md +81 -0
  95. package/de/dictionary/enumeration.md +221 -0
  96. package/de/dictionary/file.md +207 -0
  97. package/de/dictionary/function_fetching.md +190 -0
  98. package/de/dictionary/get_started.md +466 -0
  99. package/de/dictionary/insertion.md +167 -0
  100. package/de/dictionary/markdown.md +345 -0
  101. package/de/dictionary/nesting.md +252 -0
  102. package/de/dictionary/translation.md +287 -0
  103. package/de/header.md +5 -0
  104. package/de/how_works_intlayer.md +216 -0
  105. package/de/index.md +125 -0
  106. package/de/insertion.md +0 -0
  107. package/de/interest_of_intlayer.md +132 -0
  108. package/de/intlayer_CMS.md +334 -0
  109. package/de/intlayer_cli.md +274 -0
  110. package/de/intlayer_visual_editor.md +210 -0
  111. package/de/intlayer_with_angular.md +3 -0
  112. package/de/intlayer_with_create_react_app.md +1200 -0
  113. package/de/intlayer_with_express.md +268 -0
  114. package/de/intlayer_with_lynx+react.md +482 -0
  115. package/de/intlayer_with_nextjs_14.md +1258 -0
  116. package/de/intlayer_with_nextjs_15.md +1306 -0
  117. package/de/intlayer_with_nextjs_page_router.md +1087 -0
  118. package/de/intlayer_with_react_native+expo.md +539 -0
  119. package/de/intlayer_with_vite+preact.md +1701 -0
  120. package/de/intlayer_with_vite+react.md +1584 -0
  121. package/de/intlayer_with_vite+solid.md +3 -0
  122. package/de/intlayer_with_vite+svelte.md +3 -0
  123. package/de/intlayer_with_vite+vue.md +989 -0
  124. package/de/introduction.md +186 -0
  125. package/de/mcp_server.md +150 -0
  126. package/de/packages/@intlayer/api/index.md +31 -0
  127. package/de/packages/@intlayer/chokidar/index.md +31 -0
  128. package/de/packages/@intlayer/cli/index.md +21 -0
  129. package/de/packages/@intlayer/config/index.md +116 -0
  130. package/de/packages/@intlayer/core/index.md +25 -0
  131. package/de/packages/@intlayer/design-system/index.md +21 -0
  132. package/de/packages/@intlayer/dictionary-entry/index.md +21 -0
  133. package/de/packages/@intlayer/editor/index.md +21 -0
  134. package/de/packages/@intlayer/editor-react/index.md +21 -0
  135. package/de/packages/@intlayer/webpack/index.md +35 -0
  136. package/de/packages/angular-intlayer/index.md +31 -0
  137. package/de/packages/express-intlayer/index.md +229 -0
  138. package/de/packages/express-intlayer/t.md +432 -0
  139. package/de/packages/intlayer/getConfiguration.md +120 -0
  140. package/de/packages/intlayer/getEnumeration.md +140 -0
  141. package/de/packages/intlayer/getHTMLTextDir.md +97 -0
  142. package/de/packages/intlayer/getLocaleLang.md +57 -0
  143. package/de/packages/intlayer/getLocaleName.md +93 -0
  144. package/de/packages/intlayer/getLocalizedUrl.md +221 -0
  145. package/de/packages/intlayer/getMultilingualUrls.md +198 -0
  146. package/de/packages/intlayer/getPathWithoutLocale.md +50 -0
  147. package/de/packages/intlayer/getTranslation.md +166 -0
  148. package/de/packages/intlayer/getTranslationContent.md +166 -0
  149. package/de/packages/intlayer/index.md +478 -0
  150. package/de/packages/intlayer-cli/index.md +41 -0
  151. package/de/packages/intlayer-editor/index.md +113 -0
  152. package/de/packages/lynx-intlayer/index.md +58 -0
  153. package/de/packages/next-intlayer/index.md +263 -0
  154. package/de/packages/next-intlayer/t.md +325 -0
  155. package/de/packages/next-intlayer/useDictionary.md +242 -0
  156. package/de/packages/next-intlayer/useIntlayer.md +237 -0
  157. package/de/packages/next-intlayer/useIntlayerAsync.md +211 -0
  158. package/de/packages/next-intlayer/useLocale.md +105 -0
  159. package/de/packages/preact-intlayer/index.md +3 -0
  160. package/de/packages/react-intlayer/index.md +260 -0
  161. package/de/packages/react-intlayer/t.md +277 -0
  162. package/de/packages/react-intlayer/useDictionary.md +260 -0
  163. package/de/packages/react-intlayer/useIntlayer.md +225 -0
  164. package/de/packages/react-intlayer/useIntlayerAsync.md +226 -0
  165. package/de/packages/react-intlayer/useLocale.md +184 -0
  166. package/de/packages/react-native-intlayer/index.md +57 -0
  167. package/de/packages/react-scripts-intlayer/index.md +57 -0
  168. package/de/packages/solid-intlayer/index.md +3 -0
  169. package/de/packages/svelte-intlayer/index.md +3 -0
  170. package/de/packages/vite-intlayer/index.md +53 -0
  171. package/de/packages/vue-intlayer/index.md +3 -0
  172. package/de/per_locale_file.md +298 -0
  173. package/de/privacy_notice.md +61 -0
  174. package/de/roadmap.md +206 -0
  175. package/de/terms_of_service.md +33 -0
  176. package/de/vs_code_extension.md +139 -0
  177. package/en/CI_CD.md +149 -0
  178. package/en/autoFill.md +157 -0
  179. package/en/configuration.md +506 -0
  180. package/en/dictionary/condition.md +213 -0
  181. package/en/dictionary/content_extention_customization.md +81 -0
  182. package/en/dictionary/enumeration.md +221 -0
  183. package/en/dictionary/file.md +198 -0
  184. package/en/dictionary/function_fetching.md +190 -0
  185. package/en/dictionary/get_started.md +504 -0
  186. package/en/dictionary/insertion.md +167 -0
  187. package/en/dictionary/markdown.md +355 -0
  188. package/en/dictionary/nesting.md +249 -0
  189. package/en/dictionary/translation.md +285 -0
  190. package/en/frequent_questions/build_dictionaries.md +37 -0
  191. package/en/frequent_questions/domain_routing.md +92 -0
  192. package/en/frequent_questions/esbuild_error.md +9 -0
  193. package/en/frequent_questions/get_locale_cookie.md +121 -0
  194. package/en/frequent_questions/intlayer_command_undefined.md +135 -0
  195. package/en/frequent_questions/locale_incorect_in_url.md +52 -0
  196. package/en/frequent_questions/static_rendering.md +24 -0
  197. package/en/frequent_questions/unknown_command.md +76 -0
  198. package/en/header.md +5 -0
  199. package/en/how_works_intlayer.md +219 -0
  200. package/en/index.md +139 -0
  201. package/en/interest_of_intlayer.md +133 -0
  202. package/en/intlayer_CMS.md +334 -0
  203. package/en/intlayer_cli.md +309 -0
  204. package/en/intlayer_visual_editor.md +244 -0
  205. package/en/intlayer_with_angular.md +139 -0
  206. package/en/intlayer_with_create_react_app.md +1209 -0
  207. package/en/intlayer_with_express.md +391 -0
  208. package/en/intlayer_with_lynx+react.md +483 -0
  209. package/en/intlayer_with_nextjs_14.md +1298 -0
  210. package/en/intlayer_with_nextjs_15.md +1347 -0
  211. package/en/intlayer_with_nextjs_page_router.md +1126 -0
  212. package/en/intlayer_with_react_native+expo.md +630 -0
  213. package/en/intlayer_with_vite+preact.md +1659 -0
  214. package/en/intlayer_with_vite+react.md +1605 -0
  215. package/en/intlayer_with_vite+solid.md +254 -0
  216. package/en/intlayer_with_vite+svelte.md +254 -0
  217. package/en/intlayer_with_vite+vue.md +1000 -0
  218. package/en/introduction.md +185 -0
  219. package/en/mcp_server.md +150 -0
  220. package/en/packages/@intlayer/api/index.md +31 -0
  221. package/en/packages/@intlayer/chokidar/index.md +31 -0
  222. package/en/packages/@intlayer/cli/index.md +21 -0
  223. package/en/packages/@intlayer/config/index.md +116 -0
  224. package/en/packages/@intlayer/core/index.md +25 -0
  225. package/en/packages/@intlayer/design-system/index.md +21 -0
  226. package/en/packages/@intlayer/dictionary-entry/index.md +21 -0
  227. package/en/packages/@intlayer/editor/index.md +21 -0
  228. package/en/packages/@intlayer/editor-react/index.md +21 -0
  229. package/en/packages/@intlayer/webpack/index.md +35 -0
  230. package/en/packages/angular-intlayer/index.md +31 -0
  231. package/en/packages/express-intlayer/index.md +229 -0
  232. package/en/packages/express-intlayer/t.md +432 -0
  233. package/en/packages/intlayer/getConfiguration.md +120 -0
  234. package/en/packages/intlayer/getEnumeration.md +138 -0
  235. package/en/packages/intlayer/getHTMLTextDir.md +97 -0
  236. package/en/packages/intlayer/getLocaleLang.md +57 -0
  237. package/en/packages/intlayer/getLocaleName.md +93 -0
  238. package/en/packages/intlayer/getLocalizedUrl.md +221 -0
  239. package/en/packages/intlayer/getMultilingualUrls.md +198 -0
  240. package/en/packages/intlayer/getPathWithoutLocale.md +50 -0
  241. package/en/packages/intlayer/getTranslation.md +166 -0
  242. package/en/packages/intlayer/getTranslationContent.md +166 -0
  243. package/en/packages/intlayer/index.md +476 -0
  244. package/en/packages/intlayer-cli/index.md +41 -0
  245. package/en/packages/intlayer-editor/index.md +113 -0
  246. package/en/packages/lynx-intlayer/index.md +60 -0
  247. package/en/packages/next-intlayer/index.md +263 -0
  248. package/en/packages/next-intlayer/t.md +326 -0
  249. package/en/packages/next-intlayer/useDictionary.md +242 -0
  250. package/en/packages/next-intlayer/useIntlayer.md +237 -0
  251. package/en/packages/next-intlayer/useIntlayerAsync.md +211 -0
  252. package/en/packages/next-intlayer/useLocale.md +105 -0
  253. package/en/packages/preact-intlayer/index.md +31 -0
  254. package/en/packages/react-intlayer/index.md +257 -0
  255. package/en/packages/react-intlayer/t.md +277 -0
  256. package/en/packages/react-intlayer/useDictionary.md +260 -0
  257. package/en/packages/react-intlayer/useIntlayer.md +225 -0
  258. package/en/packages/react-intlayer/useIntlayerAsync.md +226 -0
  259. package/en/packages/react-intlayer/useLocale.md +184 -0
  260. package/en/packages/react-native-intlayer/index.md +59 -0
  261. package/en/packages/react-scripts-intlayer/index.md +57 -0
  262. package/en/packages/solid-intlayer/index.md +31 -0
  263. package/en/packages/svelte-intlayer/index.md +31 -0
  264. package/en/packages/vite-intlayer/index.md +53 -0
  265. package/en/packages/vue-intlayer/index.md +31 -0
  266. package/en/per_locale_file.md +297 -0
  267. package/en/privacy_notice.md +61 -0
  268. package/en/roadmap.md +270 -0
  269. package/en/t.md +163 -0
  270. package/en/terms_of_service.md +33 -0
  271. package/en/vs_code_extension.md +129 -0
  272. package/en-GB/CI_CD.md +149 -0
  273. package/en-GB/autoFill.md +0 -0
  274. package/en-GB/configuration.md +490 -0
  275. package/en-GB/dictionary/condition.md +213 -0
  276. package/en-GB/dictionary/content_extention_customization.md +83 -0
  277. package/en-GB/dictionary/enumeration.md +221 -0
  278. package/en-GB/dictionary/file.md +201 -0
  279. package/en-GB/dictionary/function_fetching.md +190 -0
  280. package/en-GB/dictionary/get_started.md +466 -0
  281. package/en-GB/dictionary/insertion.md +167 -0
  282. package/en-GB/dictionary/markdown.md +343 -0
  283. package/en-GB/dictionary/nesting.md +249 -0
  284. package/en-GB/dictionary/translation.md +285 -0
  285. package/en-GB/header.md +1 -0
  286. package/en-GB/how_works_intlayer.md +217 -0
  287. package/en-GB/index.md +142 -0
  288. package/en-GB/interest_of_intlayer.md +123 -0
  289. package/en-GB/intlayer_CMS.md +334 -0
  290. package/en-GB/intlayer_cli.md +239 -0
  291. package/en-GB/intlayer_visual_editor.md +210 -0
  292. package/en-GB/intlayer_with_angular.md +3 -0
  293. package/en-GB/intlayer_with_create_react_app.md +1192 -0
  294. package/en-GB/intlayer_with_express.md +267 -0
  295. package/en-GB/intlayer_with_lynx+react.md +484 -0
  296. package/en-GB/intlayer_with_nextjs_14.md +1267 -0
  297. package/en-GB/intlayer_with_nextjs_15.md +1308 -0
  298. package/en-GB/intlayer_with_nextjs_page_router.md +1087 -0
  299. package/en-GB/intlayer_with_react_native+expo.md +539 -0
  300. package/en-GB/intlayer_with_vite+preact.md +1648 -0
  301. package/en-GB/intlayer_with_vite+react.md +1430 -0
  302. package/en-GB/intlayer_with_vite+solid.md +3 -0
  303. package/en-GB/intlayer_with_vite+svelte.md +3 -0
  304. package/en-GB/intlayer_with_vite+vue.md +993 -0
  305. package/en-GB/introduction.md +201 -0
  306. package/en-GB/mcp_server.md +150 -0
  307. package/en-GB/packages/@intlayer/api/index.md +31 -0
  308. package/en-GB/packages/@intlayer/chokidar/index.md +31 -0
  309. package/en-GB/packages/@intlayer/cli/index.md +21 -0
  310. package/en-GB/packages/@intlayer/config/index.md +116 -0
  311. package/en-GB/packages/@intlayer/core/index.md +25 -0
  312. package/en-GB/packages/@intlayer/design-system/index.md +21 -0
  313. package/en-GB/packages/@intlayer/dictionary-entry/index.md +21 -0
  314. package/en-GB/packages/@intlayer/editor/index.md +21 -0
  315. package/en-GB/packages/@intlayer/editor-react/index.md +21 -0
  316. package/en-GB/packages/@intlayer/webpack/index.md +35 -0
  317. package/en-GB/packages/angular-intlayer/index.md +3 -0
  318. package/en-GB/packages/express-intlayer/index.md +229 -0
  319. package/en-GB/packages/express-intlayer/t.md +432 -0
  320. package/en-GB/packages/intlayer/getConfiguration.md +120 -0
  321. package/en-GB/packages/intlayer/getEnumeration.md +140 -0
  322. package/en-GB/packages/intlayer/getHTMLTextDir.md +97 -0
  323. package/en-GB/packages/intlayer/getLocaleLang.md +57 -0
  324. package/en-GB/packages/intlayer/getLocaleName.md +93 -0
  325. package/en-GB/packages/intlayer/getLocalizedUrl.md +221 -0
  326. package/en-GB/packages/intlayer/getMultilingualUrls.md +198 -0
  327. package/en-GB/packages/intlayer/getPathWithoutLocale.md +50 -0
  328. package/en-GB/packages/intlayer/getTranslation.md +166 -0
  329. package/en-GB/packages/intlayer/getTranslationContent.md +166 -0
  330. package/en-GB/packages/intlayer/index.md +476 -0
  331. package/en-GB/packages/intlayer-cli/index.md +41 -0
  332. package/en-GB/packages/intlayer-editor/index.md +113 -0
  333. package/en-GB/packages/lynx-intlayer/index.md +58 -0
  334. package/en-GB/packages/next-intlayer/index.md +263 -0
  335. package/en-GB/packages/next-intlayer/t.md +326 -0
  336. package/en-GB/packages/next-intlayer/useDictionary.md +242 -0
  337. package/en-GB/packages/next-intlayer/useIntlayer.md +237 -0
  338. package/en-GB/packages/next-intlayer/useIntlayerAsync.md +211 -0
  339. package/en-GB/packages/next-intlayer/useLocale.md +105 -0
  340. package/en-GB/packages/preact-intlayer/index.md +3 -0
  341. package/en-GB/packages/react-intlayer/index.md +257 -0
  342. package/en-GB/packages/react-intlayer/t.md +277 -0
  343. package/en-GB/packages/react-intlayer/useDictionary.md +260 -0
  344. package/en-GB/packages/react-intlayer/useIntlayer.md +225 -0
  345. package/en-GB/packages/react-intlayer/useIntlayerAsync.md +226 -0
  346. package/en-GB/packages/react-intlayer/useLocale.md +184 -0
  347. package/en-GB/packages/react-native-intlayer/index.md +57 -0
  348. package/en-GB/packages/react-scripts-intlayer/index.md +57 -0
  349. package/en-GB/packages/solid-intlayer/index.md +3 -0
  350. package/en-GB/packages/svelte-intlayer/index.md +3 -0
  351. package/en-GB/packages/vite-intlayer/index.md +53 -0
  352. package/en-GB/packages/vue-intlayer/index.md +3 -0
  353. package/en-GB/per_locale_file.md +298 -0
  354. package/en-GB/privacy_notice.md +57 -0
  355. package/en-GB/roadmap.md +206 -0
  356. package/en-GB/terms_of_service.md +33 -0
  357. package/en-GB/vs_code_extension.md +139 -0
  358. package/es/CI_CD.md +149 -0
  359. package/es/autoFill.md +157 -0
  360. package/es/configuration.md +503 -0
  361. package/es/dictionary/condition.md +213 -0
  362. package/es/dictionary/content_extention_customization.md +81 -0
  363. package/es/dictionary/enumeration.md +221 -0
  364. package/es/dictionary/file.md +206 -0
  365. package/es/dictionary/function_fetching.md +190 -0
  366. package/es/dictionary/get_started.md +466 -0
  367. package/es/dictionary/insertion.md +161 -0
  368. package/es/dictionary/markdown.md +338 -0
  369. package/es/dictionary/nesting.md +249 -0
  370. package/es/dictionary/translation.md +287 -0
  371. package/es/header.md +5 -0
  372. package/es/how_works_intlayer.md +217 -0
  373. package/es/index.md +122 -0
  374. package/es/interest_of_intlayer.md +132 -0
  375. package/es/intlayer_CMS.md +334 -0
  376. package/es/intlayer_cli.md +274 -0
  377. package/es/intlayer_visual_editor.md +210 -0
  378. package/es/intlayer_with_angular.md +3 -0
  379. package/es/intlayer_with_create_react_app.md +1192 -0
  380. package/es/intlayer_with_express.md +276 -0
  381. package/es/intlayer_with_lynx+react.md +475 -0
  382. package/es/intlayer_with_nextjs_14.md +1258 -0
  383. package/es/intlayer_with_nextjs_15.md +1308 -0
  384. package/es/intlayer_with_nextjs_page_router.md +1088 -0
  385. package/es/intlayer_with_react_native+expo.md +180 -0
  386. package/es/intlayer_with_vite+preact.md +1637 -0
  387. package/es/intlayer_with_vite+react.md +1592 -0
  388. package/es/intlayer_with_vite+solid.md +3 -0
  389. package/es/intlayer_with_vite+svelte.md +3 -0
  390. package/es/intlayer_with_vite+vue.md +947 -0
  391. package/es/introduction.md +184 -0
  392. package/es/mcp_server.md +150 -0
  393. package/es/packages/@intlayer/api/index.md +31 -0
  394. package/es/packages/@intlayer/chokidar/index.md +31 -0
  395. package/es/packages/@intlayer/cli/index.md +21 -0
  396. package/es/packages/@intlayer/config/index.md +116 -0
  397. package/es/packages/@intlayer/core/index.md +25 -0
  398. package/es/packages/@intlayer/design-system/index.md +21 -0
  399. package/es/packages/@intlayer/dictionary-entry/index.md +21 -0
  400. package/es/packages/@intlayer/editor/index.md +21 -0
  401. package/es/packages/@intlayer/editor-react/index.md +21 -0
  402. package/es/packages/@intlayer/webpack/index.md +35 -0
  403. package/es/packages/angular-intlayer/index.md +3 -0
  404. package/es/packages/express-intlayer/index.md +229 -0
  405. package/es/packages/express-intlayer/t.md +432 -0
  406. package/es/packages/intlayer/getConfiguration.md +120 -0
  407. package/es/packages/intlayer/getEnumeration.md +138 -0
  408. package/es/packages/intlayer/getHTMLTextDir.md +97 -0
  409. package/es/packages/intlayer/getLocaleLang.md +57 -0
  410. package/es/packages/intlayer/getLocaleName.md +93 -0
  411. package/es/packages/intlayer/getLocalizedUrl.md +221 -0
  412. package/es/packages/intlayer/getMultilingualUrls.md +198 -0
  413. package/es/packages/intlayer/getPathWithoutLocale.md +50 -0
  414. package/es/packages/intlayer/getTranslation.md +166 -0
  415. package/es/packages/intlayer/getTranslationContent.md +166 -0
  416. package/es/packages/intlayer/index.md +478 -0
  417. package/es/packages/intlayer-cli/index.md +41 -0
  418. package/es/packages/intlayer-editor/index.md +115 -0
  419. package/es/packages/lynx-intlayer/index.md +58 -0
  420. package/es/packages/next-intlayer/index.md +263 -0
  421. package/es/packages/next-intlayer/t.md +325 -0
  422. package/es/packages/next-intlayer/useDictionary.md +242 -0
  423. package/es/packages/next-intlayer/useIntlayer.md +237 -0
  424. package/es/packages/next-intlayer/useIntlayerAsync.md +211 -0
  425. package/es/packages/next-intlayer/useLocale.md +105 -0
  426. package/es/packages/preact-intlayer/index.md +3 -0
  427. package/es/packages/react-intlayer/index.md +263 -0
  428. package/es/packages/react-intlayer/t.md +277 -0
  429. package/es/packages/react-intlayer/useDictionary.md +270 -0
  430. package/es/packages/react-intlayer/useIntlayer.md +225 -0
  431. package/es/packages/react-intlayer/useIntlayerAsync.md +226 -0
  432. package/es/packages/react-intlayer/useLocale.md +184 -0
  433. package/es/packages/react-native-intlayer/index.md +57 -0
  434. package/es/packages/react-scripts-intlayer/index.md +57 -0
  435. package/es/packages/solid-intlayer/index.md +3 -0
  436. package/es/packages/svelte-intlayer/index.md +5 -0
  437. package/es/packages/vite-intlayer/index.md +53 -0
  438. package/es/packages/vue-intlayer/index.md +3 -0
  439. package/es/per_locale_file.md +293 -0
  440. package/es/privacy_notice.md +61 -0
  441. package/es/roadmap.md +157 -0
  442. package/es/terms_of_service.md +33 -0
  443. package/es/vs_code_extension.md +139 -0
  444. package/fr/CI_CD.md +149 -0
  445. package/fr/autoFill.md +157 -0
  446. package/fr/configuration.md +481 -0
  447. package/fr/dictionary/condition.md +213 -0
  448. package/fr/dictionary/content_extention_customization.md +81 -0
  449. package/fr/dictionary/enumeration.md +221 -0
  450. package/fr/dictionary/file.md +206 -0
  451. package/fr/dictionary/function_fetching.md +190 -0
  452. package/fr/dictionary/get_started.md +466 -0
  453. package/fr/dictionary/insertion.md +161 -0
  454. package/fr/dictionary/markdown.md +335 -0
  455. package/fr/dictionary/nesting.md +249 -0
  456. package/fr/dictionary/translation.md +287 -0
  457. package/fr/header.md +5 -0
  458. package/fr/how_works_intlayer.md +217 -0
  459. package/fr/index.md +122 -0
  460. package/fr/interest_of_intlayer.md +132 -0
  461. package/fr/intlayer_CMS.md +334 -0
  462. package/fr/intlayer_cli.md +274 -0
  463. package/fr/intlayer_visual_editor.md +210 -0
  464. package/fr/intlayer_with_angular.md +3 -0
  465. package/fr/intlayer_with_create_react_app.md +1192 -0
  466. package/fr/intlayer_with_express.md +270 -0
  467. package/fr/intlayer_with_lynx+react.md +466 -0
  468. package/fr/intlayer_with_nextjs_14.md +1258 -0
  469. package/fr/intlayer_with_nextjs_15.md +1308 -0
  470. package/fr/intlayer_with_nextjs_page_router.md +1085 -0
  471. package/fr/intlayer_with_react_native+expo.md +535 -0
  472. package/fr/intlayer_with_vite+preact.md +1621 -0
  473. package/fr/intlayer_with_vite+react.md +1589 -0
  474. package/fr/intlayer_with_vite+solid.md +3 -0
  475. package/fr/intlayer_with_vite+svelte.md +3 -0
  476. package/fr/intlayer_with_vite+vue.md +947 -0
  477. package/fr/introduction.md +190 -0
  478. package/fr/mcp_server.md +152 -0
  479. package/fr/packages/@intlayer/api/index.md +31 -0
  480. package/fr/packages/@intlayer/chokidar/index.md +31 -0
  481. package/fr/packages/@intlayer/cli/index.md +21 -0
  482. package/fr/packages/@intlayer/config/index.md +116 -0
  483. package/fr/packages/@intlayer/core/index.md +25 -0
  484. package/fr/packages/@intlayer/design-system/index.md +21 -0
  485. package/fr/packages/@intlayer/dictionary-entry/index.md +21 -0
  486. package/fr/packages/@intlayer/editor/index.md +21 -0
  487. package/fr/packages/@intlayer/editor-react/index.md +21 -0
  488. package/fr/packages/@intlayer/webpack/index.md +35 -0
  489. package/fr/packages/angular-intlayer/index.md +3 -0
  490. package/fr/packages/express-intlayer/index.md +238 -0
  491. package/fr/packages/express-intlayer/t.md +432 -0
  492. package/fr/packages/intlayer/getConfiguration.md +120 -0
  493. package/fr/packages/intlayer/getEnumeration.md +138 -0
  494. package/fr/packages/intlayer/getHTMLTextDir.md +97 -0
  495. package/fr/packages/intlayer/getLocaleLang.md +57 -0
  496. package/fr/packages/intlayer/getLocaleName.md +93 -0
  497. package/fr/packages/intlayer/getLocalizedUrl.md +221 -0
  498. package/fr/packages/intlayer/getMultilingualUrls.md +198 -0
  499. package/fr/packages/intlayer/getPathWithoutLocale.md +50 -0
  500. package/fr/packages/intlayer/getTranslation.md +166 -0
  501. package/fr/packages/intlayer/getTranslationContent.md +166 -0
  502. package/fr/packages/intlayer/index.md +476 -0
  503. package/fr/packages/intlayer-cli/index.md +41 -0
  504. package/fr/packages/intlayer-editor/index.md +115 -0
  505. package/fr/packages/lynx-intlayer/index.md +58 -0
  506. package/fr/packages/next-intlayer/index.md +266 -0
  507. package/fr/packages/next-intlayer/t.md +325 -0
  508. package/fr/packages/next-intlayer/useDictionary.md +242 -0
  509. package/fr/packages/next-intlayer/useIntlayer.md +237 -0
  510. package/fr/packages/next-intlayer/useIntlayerAsync.md +211 -0
  511. package/fr/packages/next-intlayer/useLocale.md +105 -0
  512. package/fr/packages/preact-intlayer/index.md +3 -0
  513. package/fr/packages/react-intlayer/index.md +257 -0
  514. package/fr/packages/react-intlayer/t.md +277 -0
  515. package/fr/packages/react-intlayer/useDictionary.md +269 -0
  516. package/fr/packages/react-intlayer/useIntlayer.md +234 -0
  517. package/fr/packages/react-intlayer/useIntlayerAsync.md +226 -0
  518. package/fr/packages/react-intlayer/useLocale.md +184 -0
  519. package/fr/packages/react-native-intlayer/index.md +57 -0
  520. package/fr/packages/react-scripts-intlayer/index.md +57 -0
  521. package/fr/packages/solid-intlayer/index.md +3 -0
  522. package/fr/packages/svelte-intlayer/index.md +3 -0
  523. package/fr/packages/vite-intlayer/index.md +53 -0
  524. package/fr/packages/vue-intlayer/index.md +3 -0
  525. package/fr/per_locale_file.md +297 -0
  526. package/fr/privacy_notice.md +57 -0
  527. package/fr/roadmap.md +206 -0
  528. package/fr/terms_of_service.md +33 -0
  529. package/fr/vs_code_extension.md +139 -0
  530. package/hi/CI_CD.md +149 -0
  531. package/hi/autoFill.md +157 -0
  532. package/hi/configuration.md +509 -0
  533. package/hi/dictionary/condition.md +213 -0
  534. package/hi/dictionary/content_extention_customization.md +81 -0
  535. package/hi/dictionary/enumeration.md +221 -0
  536. package/hi/dictionary/file.md +209 -0
  537. package/hi/dictionary/function_fetching.md +188 -0
  538. package/hi/dictionary/get_started.md +490 -0
  539. package/hi/dictionary/insertion.md +167 -0
  540. package/hi/dictionary/markdown.md +344 -0
  541. package/hi/dictionary/nesting.md +249 -0
  542. package/hi/dictionary/translation.md +307 -0
  543. package/hi/header.md +7 -0
  544. package/hi/how_works_intlayer.md +217 -0
  545. package/hi/index.md +125 -0
  546. package/hi/interest_of_intlayer.md +132 -0
  547. package/hi/intlayer_CMS.md +334 -0
  548. package/hi/intlayer_cli.md +274 -0
  549. package/hi/intlayer_visual_editor.md +210 -0
  550. package/hi/intlayer_with_angular.md +3 -0
  551. package/hi/intlayer_with_create_react_app.md +1395 -0
  552. package/hi/intlayer_with_express.md +273 -0
  553. package/hi/intlayer_with_lynx+react.md +456 -0
  554. package/hi/intlayer_with_nextjs_14.md +1283 -0
  555. package/hi/intlayer_with_nextjs_15.md +1319 -0
  556. package/hi/intlayer_with_nextjs_page_router.md +1097 -0
  557. package/hi/intlayer_with_react_native+expo.md +554 -0
  558. package/hi/intlayer_with_vite+preact.md +1538 -0
  559. package/hi/intlayer_with_vite+react.md +1540 -0
  560. package/hi/intlayer_with_vite+solid.md +3 -0
  561. package/hi/intlayer_with_vite+svelte.md +3 -0
  562. package/hi/intlayer_with_vite+vue.md +840 -0
  563. package/hi/introduction.md +190 -0
  564. package/hi/mcp_server.md +150 -0
  565. package/hi/packages/@intlayer/api/index.md +31 -0
  566. package/hi/packages/@intlayer/chokidar/index.md +31 -0
  567. package/hi/packages/@intlayer/cli/index.md +21 -0
  568. package/hi/packages/@intlayer/config/index.md +116 -0
  569. package/hi/packages/@intlayer/core/index.md +25 -0
  570. package/hi/packages/@intlayer/design-system/index.md +21 -0
  571. package/hi/packages/@intlayer/dictionary-entry/index.md +21 -0
  572. package/hi/packages/@intlayer/editor/index.md +21 -0
  573. package/hi/packages/@intlayer/editor-react/index.md +21 -0
  574. package/hi/packages/@intlayer/webpack/index.md +35 -0
  575. package/hi/packages/angular-intlayer/index.md +3 -0
  576. package/hi/packages/express-intlayer/index.md +232 -0
  577. package/hi/packages/express-intlayer/t.md +445 -0
  578. package/hi/packages/intlayer/getConfiguration.md +120 -0
  579. package/hi/packages/intlayer/getEnumeration.md +138 -0
  580. package/hi/packages/intlayer/getHTMLTextDir.md +97 -0
  581. package/hi/packages/intlayer/getLocaleLang.md +57 -0
  582. package/hi/packages/intlayer/getLocaleName.md +93 -0
  583. package/hi/packages/intlayer/getLocalizedUrl.md +221 -0
  584. package/hi/packages/intlayer/getMultilingualUrls.md +198 -0
  585. package/hi/packages/intlayer/getPathWithoutLocale.md +50 -0
  586. package/hi/packages/intlayer/getTranslation.md +175 -0
  587. package/hi/packages/intlayer/getTranslationContent.md +175 -0
  588. package/hi/packages/intlayer/index.md +314 -0
  589. package/hi/packages/intlayer-cli/index.md +41 -0
  590. package/hi/packages/intlayer-editor/index.md +113 -0
  591. package/hi/packages/lynx-intlayer/index.md +58 -0
  592. package/hi/packages/next-intlayer/index.md +270 -0
  593. package/hi/packages/next-intlayer/t.md +337 -0
  594. package/hi/packages/next-intlayer/useDictionary.md +248 -0
  595. package/hi/packages/next-intlayer/useIntlayer.md +237 -0
  596. package/hi/packages/next-intlayer/useIntlayerAsync.md +211 -0
  597. package/hi/packages/next-intlayer/useLocale.md +105 -0
  598. package/hi/packages/preact-intlayer/index.md +3 -0
  599. package/hi/packages/react-intlayer/index.md +261 -0
  600. package/hi/packages/react-intlayer/t.md +283 -0
  601. package/hi/packages/react-intlayer/useDictionary.md +268 -0
  602. package/hi/packages/react-intlayer/useIntlayer.md +225 -0
  603. package/hi/packages/react-intlayer/useIntlayerAsync.md +226 -0
  604. package/hi/packages/react-intlayer/useLocale.md +184 -0
  605. package/hi/packages/react-native-intlayer/index.md +57 -0
  606. package/hi/packages/react-scripts-intlayer/index.md +57 -0
  607. package/hi/packages/solid-intlayer/index.md +3 -0
  608. package/hi/packages/svelte-intlayer/index.md +3 -0
  609. package/hi/packages/vite-intlayer/index.md +53 -0
  610. package/hi/packages/vue-intlayer/index.md +3 -0
  611. package/hi/per_locale_file.md +298 -0
  612. package/hi/privacy_notice.md +61 -0
  613. package/hi/roadmap.md +206 -0
  614. package/hi/terms_of_service.md +33 -0
  615. package/hi/vs_code_extension.md +139 -0
  616. package/index.cjs +1265 -0
  617. package/index.d.ts +100 -0
  618. package/it/CI_CD.md +149 -0
  619. package/it/autoFill.md +157 -0
  620. package/it/configuration.md +503 -0
  621. package/it/dictionary/condition.md +213 -0
  622. package/it/dictionary/content_extention_customization.md +81 -0
  623. package/it/dictionary/enumeration.md +221 -0
  624. package/it/dictionary/file.md +207 -0
  625. package/it/dictionary/function_fetching.md +190 -0
  626. package/it/dictionary/get_started.md +466 -0
  627. package/it/dictionary/insertion.md +161 -0
  628. package/it/dictionary/markdown.md +343 -0
  629. package/it/dictionary/nesting.md +249 -0
  630. package/it/dictionary/translation.md +287 -0
  631. package/it/header.md +7 -0
  632. package/it/how_works_intlayer.md +217 -0
  633. package/it/index.md +125 -0
  634. package/it/interest_of_intlayer.md +132 -0
  635. package/it/intlayer_CMS.md +334 -0
  636. package/it/intlayer_cli.md +274 -0
  637. package/it/intlayer_visual_editor.md +210 -0
  638. package/it/intlayer_with_angular.md +3 -0
  639. package/it/intlayer_with_create_react_app.md +413 -0
  640. package/it/intlayer_with_express.md +267 -0
  641. package/it/intlayer_with_lynx+react.md +482 -0
  642. package/it/intlayer_with_nextjs_14.md +1269 -0
  643. package/it/intlayer_with_nextjs_15.md +1319 -0
  644. package/it/intlayer_with_nextjs_page_router.md +1095 -0
  645. package/it/intlayer_with_react_native+expo.md +261 -0
  646. package/it/intlayer_with_vite+preact.md +1681 -0
  647. package/it/intlayer_with_vite+react.md +1580 -0
  648. package/it/intlayer_with_vite+solid.md +3 -0
  649. package/it/intlayer_with_vite+svelte.md +3 -0
  650. package/it/intlayer_with_vite+vue.md +989 -0
  651. package/it/introduction.md +192 -0
  652. package/it/mcp_server.md +152 -0
  653. package/it/packages/@intlayer/api/index.md +31 -0
  654. package/it/packages/@intlayer/chokidar/index.md +31 -0
  655. package/it/packages/@intlayer/cli/index.md +21 -0
  656. package/it/packages/@intlayer/config/index.md +116 -0
  657. package/it/packages/@intlayer/core/index.md +25 -0
  658. package/it/packages/@intlayer/design-system/index.md +21 -0
  659. package/it/packages/@intlayer/dictionary-entry/index.md +21 -0
  660. package/it/packages/@intlayer/editor/index.md +21 -0
  661. package/it/packages/@intlayer/editor-react/index.md +21 -0
  662. package/it/packages/@intlayer/webpack/index.md +35 -0
  663. package/it/packages/angular-intlayer/index.md +3 -0
  664. package/it/packages/express-intlayer/index.md +229 -0
  665. package/it/packages/express-intlayer/t.md +432 -0
  666. package/it/packages/intlayer/getConfiguration.md +120 -0
  667. package/it/packages/intlayer/getEnumeration.md +138 -0
  668. package/it/packages/intlayer/getHTMLTextDir.md +97 -0
  669. package/it/packages/intlayer/getLocaleLang.md +57 -0
  670. package/it/packages/intlayer/getLocaleName.md +93 -0
  671. package/it/packages/intlayer/getLocalizedUrl.md +221 -0
  672. package/it/packages/intlayer/getMultilingualUrls.md +200 -0
  673. package/it/packages/intlayer/getPathWithoutLocale.md +50 -0
  674. package/it/packages/intlayer/getTranslation.md +166 -0
  675. package/it/packages/intlayer/getTranslationContent.md +166 -0
  676. package/it/packages/intlayer/index.md +479 -0
  677. package/it/packages/intlayer-cli/index.md +41 -0
  678. package/it/packages/intlayer-editor/index.md +113 -0
  679. package/it/packages/lynx-intlayer/index.md +58 -0
  680. package/it/packages/next-intlayer/index.md +267 -0
  681. package/it/packages/next-intlayer/t.md +326 -0
  682. package/it/packages/next-intlayer/useDictionary.md +242 -0
  683. package/it/packages/next-intlayer/useIntlayer.md +237 -0
  684. package/it/packages/next-intlayer/useIntlayerAsync.md +211 -0
  685. package/it/packages/next-intlayer/useLocale.md +105 -0
  686. package/it/packages/preact-intlayer/index.md +3 -0
  687. package/it/packages/react-intlayer/index.md +260 -0
  688. package/it/packages/react-intlayer/t.md +277 -0
  689. package/it/packages/react-intlayer/useDictionary.md +260 -0
  690. package/it/packages/react-intlayer/useIntlayer.md +225 -0
  691. package/it/packages/react-intlayer/useIntlayerAsync.md +226 -0
  692. package/it/packages/react-intlayer/useLocale.md +184 -0
  693. package/it/packages/react-native-intlayer/index.md +57 -0
  694. package/it/packages/react-scripts-intlayer/index.md +57 -0
  695. package/it/packages/solid-intlayer/index.md +5 -0
  696. package/it/packages/svelte-intlayer/index.md +3 -0
  697. package/it/packages/vite-intlayer/index.md +53 -0
  698. package/it/packages/vue-intlayer/index.md +5 -0
  699. package/it/per_locale_file.md +298 -0
  700. package/it/privacy_notice.md +61 -0
  701. package/it/roadmap.md +206 -0
  702. package/it/terms_of_service.md +33 -0
  703. package/it/vs_code_extension.md +139 -0
  704. package/ja/CI_CD.md +149 -0
  705. package/ja/autoFill.md +157 -0
  706. package/ja/configuration.md +507 -0
  707. package/ja/dictionary/condition.md +213 -0
  708. package/ja/dictionary/content_extention_customization.md +81 -0
  709. package/ja/dictionary/enumeration.md +221 -0
  710. package/ja/dictionary/file.md +209 -0
  711. package/ja/dictionary/function_fetching.md +190 -0
  712. package/ja/dictionary/get_started.md +466 -0
  713. package/ja/dictionary/insertion.md +161 -0
  714. package/ja/dictionary/markdown.md +343 -0
  715. package/ja/dictionary/nesting.md +249 -0
  716. package/ja/dictionary/translation.md +287 -0
  717. package/ja/header.md +7 -0
  718. package/ja/how_works_intlayer.md +217 -0
  719. package/ja/index.md +125 -0
  720. package/ja/interest_of_intlayer.md +132 -0
  721. package/ja/intlayer_CMS.md +334 -0
  722. package/ja/intlayer_cli.md +274 -0
  723. package/ja/intlayer_visual_editor.md +213 -0
  724. package/ja/intlayer_with_angular.md +3 -0
  725. package/ja/intlayer_with_create_react_app.md +1186 -0
  726. package/ja/intlayer_with_express.md +267 -0
  727. package/ja/intlayer_with_lynx+react.md +482 -0
  728. package/ja/intlayer_with_nextjs_14.md +1256 -0
  729. package/ja/intlayer_with_nextjs_15.md +1308 -0
  730. package/ja/intlayer_with_nextjs_page_router.md +1085 -0
  731. package/ja/intlayer_with_react_native+expo.md +537 -0
  732. package/ja/intlayer_with_vite+preact.md +1601 -0
  733. package/ja/intlayer_with_vite+react.md +1555 -0
  734. package/ja/intlayer_with_vite+solid.md +3 -0
  735. package/ja/intlayer_with_vite+svelte.md +3 -0
  736. package/ja/intlayer_with_vite+vue.md +990 -0
  737. package/ja/introduction.md +186 -0
  738. package/ja/mcp_server.md +150 -0
  739. package/ja/packages/@intlayer/api/index.md +31 -0
  740. package/ja/packages/@intlayer/chokidar/index.md +31 -0
  741. package/ja/packages/@intlayer/cli/index.md +21 -0
  742. package/ja/packages/@intlayer/config/index.md +116 -0
  743. package/ja/packages/@intlayer/core/index.md +25 -0
  744. package/ja/packages/@intlayer/design-system/index.md +21 -0
  745. package/ja/packages/@intlayer/dictionary-entry/index.md +21 -0
  746. package/ja/packages/@intlayer/editor/index.md +21 -0
  747. package/ja/packages/@intlayer/editor-react/index.md +21 -0
  748. package/ja/packages/@intlayer/webpack/index.md +35 -0
  749. package/ja/packages/angular-intlayer/index.md +3 -0
  750. package/ja/packages/express-intlayer/index.md +229 -0
  751. package/ja/packages/express-intlayer/t.md +432 -0
  752. package/ja/packages/intlayer/getConfiguration.md +120 -0
  753. package/ja/packages/intlayer/getEnumeration.md +140 -0
  754. package/ja/packages/intlayer/getHTMLTextDir.md +97 -0
  755. package/ja/packages/intlayer/getLocaleLang.md +59 -0
  756. package/ja/packages/intlayer/getLocaleName.md +93 -0
  757. package/ja/packages/intlayer/getLocalizedUrl.md +221 -0
  758. package/ja/packages/intlayer/getMultilingualUrls.md +198 -0
  759. package/ja/packages/intlayer/getPathWithoutLocale.md +50 -0
  760. package/ja/packages/intlayer/getTranslation.md +166 -0
  761. package/ja/packages/intlayer/getTranslationContent.md +166 -0
  762. package/ja/packages/intlayer/index.md +479 -0
  763. package/ja/packages/intlayer-cli/index.md +41 -0
  764. package/ja/packages/intlayer-editor/index.md +115 -0
  765. package/ja/packages/lynx-intlayer/index.md +58 -0
  766. package/ja/packages/next-intlayer/index.md +263 -0
  767. package/ja/packages/next-intlayer/t.md +326 -0
  768. package/ja/packages/next-intlayer/useDictionary.md +242 -0
  769. package/ja/packages/next-intlayer/useIntlayer.md +237 -0
  770. package/ja/packages/next-intlayer/useIntlayerAsync.md +211 -0
  771. package/ja/packages/next-intlayer/useLocale.md +105 -0
  772. package/ja/packages/preact-intlayer/index.md +3 -0
  773. package/ja/packages/react-intlayer/index.md +257 -0
  774. package/ja/packages/react-intlayer/t.md +277 -0
  775. package/ja/packages/react-intlayer/useDictionary.md +260 -0
  776. package/ja/packages/react-intlayer/useIntlayer.md +225 -0
  777. package/ja/packages/react-intlayer/useIntlayerAsync.md +226 -0
  778. package/ja/packages/react-intlayer/useLocale.md +184 -0
  779. package/ja/packages/react-native-intlayer/index.md +57 -0
  780. package/ja/packages/react-scripts-intlayer/index.md +57 -0
  781. package/ja/packages/solid-intlayer/index.md +3 -0
  782. package/ja/packages/svelte-intlayer/index.md +3 -0
  783. package/ja/packages/vite-intlayer/index.md +53 -0
  784. package/ja/packages/vue-intlayer/index.md +3 -0
  785. package/ja/per_locale_file.md +298 -0
  786. package/ja/privacy_notice.md +57 -0
  787. package/ja/roadmap.md +206 -0
  788. package/ja/terms_of_service.md +33 -0
  789. package/ja/vs_code_extension.md +139 -0
  790. package/ko/CI_CD.md +149 -0
  791. package/ko/autoFill.md +157 -0
  792. package/ko/configuration.md +507 -0
  793. package/ko/dictionary/condition.md +213 -0
  794. package/ko/dictionary/content_extention_customization.md +81 -0
  795. package/ko/dictionary/enumeration.md +221 -0
  796. package/ko/dictionary/file.md +207 -0
  797. package/ko/dictionary/function_fetching.md +190 -0
  798. package/ko/dictionary/get_started.md +466 -0
  799. package/ko/dictionary/insertion.md +167 -0
  800. package/ko/dictionary/markdown.md +343 -0
  801. package/ko/dictionary/nesting.md +249 -0
  802. package/ko/dictionary/translation.md +287 -0
  803. package/ko/header.md +7 -0
  804. package/ko/how_works_intlayer.md +216 -0
  805. package/ko/index.md +125 -0
  806. package/ko/interest_of_intlayer.md +132 -0
  807. package/ko/intlayer_CMS.md +334 -0
  808. package/ko/intlayer_cli.md +274 -0
  809. package/ko/intlayer_visual_editor.md +210 -0
  810. package/ko/intlayer_with_angular.md +3 -0
  811. package/ko/intlayer_with_create_react_app.md +1186 -0
  812. package/ko/intlayer_with_express.md +267 -0
  813. package/ko/intlayer_with_lynx+react.md +482 -0
  814. package/ko/intlayer_with_nextjs_14.md +1267 -0
  815. package/ko/intlayer_with_nextjs_15.md +1319 -0
  816. package/ko/intlayer_with_nextjs_page_router.md +1097 -0
  817. package/ko/intlayer_with_react_native+expo.md +537 -0
  818. package/ko/intlayer_with_vite+preact.md +1682 -0
  819. package/ko/intlayer_with_vite+react.md +1582 -0
  820. package/ko/intlayer_with_vite+solid.md +3 -0
  821. package/ko/intlayer_with_vite+svelte.md +3 -0
  822. package/ko/intlayer_with_vite+vue.md +988 -0
  823. package/ko/introduction.md +186 -0
  824. package/ko/mcp_server.md +150 -0
  825. package/ko/packages/@intlayer/api/index.md +31 -0
  826. package/ko/packages/@intlayer/chokidar/index.md +31 -0
  827. package/ko/packages/@intlayer/cli/index.md +21 -0
  828. package/ko/packages/@intlayer/config/index.md +116 -0
  829. package/ko/packages/@intlayer/core/index.md +25 -0
  830. package/ko/packages/@intlayer/design-system/index.md +21 -0
  831. package/ko/packages/@intlayer/dictionary-entry/index.md +21 -0
  832. package/ko/packages/@intlayer/editor/index.md +21 -0
  833. package/ko/packages/@intlayer/editor-react/index.md +21 -0
  834. package/ko/packages/@intlayer/webpack/index.md +35 -0
  835. package/ko/packages/angular-intlayer/index.md +5 -0
  836. package/ko/packages/express-intlayer/index.md +229 -0
  837. package/ko/packages/express-intlayer/t.md +432 -0
  838. package/ko/packages/intlayer/getConfiguration.md +120 -0
  839. package/ko/packages/intlayer/getEnumeration.md +138 -0
  840. package/ko/packages/intlayer/getHTMLTextDir.md +97 -0
  841. package/ko/packages/intlayer/getLocaleLang.md +57 -0
  842. package/ko/packages/intlayer/getLocaleName.md +93 -0
  843. package/ko/packages/intlayer/getLocalizedUrl.md +221 -0
  844. package/ko/packages/intlayer/getMultilingualUrls.md +198 -0
  845. package/ko/packages/intlayer/getPathWithoutLocale.md +50 -0
  846. package/ko/packages/intlayer/getTranslation.md +166 -0
  847. package/ko/packages/intlayer/getTranslationContent.md +166 -0
  848. package/ko/packages/intlayer/index.md +480 -0
  849. package/ko/packages/intlayer-cli/index.md +41 -0
  850. package/ko/packages/intlayer-editor/index.md +113 -0
  851. package/ko/packages/lynx-intlayer/index.md +58 -0
  852. package/ko/packages/next-intlayer/index.md +267 -0
  853. package/ko/packages/next-intlayer/t.md +337 -0
  854. package/ko/packages/next-intlayer/useDictionary.md +242 -0
  855. package/ko/packages/next-intlayer/useIntlayer.md +237 -0
  856. package/ko/packages/next-intlayer/useIntlayerAsync.md +211 -0
  857. package/ko/packages/next-intlayer/useLocale.md +105 -0
  858. package/ko/packages/preact-intlayer/index.md +3 -0
  859. package/ko/packages/react-intlayer/index.md +260 -0
  860. package/ko/packages/react-intlayer/t.md +277 -0
  861. package/ko/packages/react-intlayer/useDictionary.md +268 -0
  862. package/ko/packages/react-intlayer/useIntlayer.md +225 -0
  863. package/ko/packages/react-intlayer/useIntlayerAsync.md +226 -0
  864. package/ko/packages/react-intlayer/useLocale.md +184 -0
  865. package/ko/packages/react-native-intlayer/index.md +57 -0
  866. package/ko/packages/react-scripts-intlayer/index.md +57 -0
  867. package/ko/packages/solid-intlayer/index.md +3 -0
  868. package/ko/packages/svelte-intlayer/index.md +3 -0
  869. package/ko/packages/vite-intlayer/index.md +53 -0
  870. package/ko/packages/vue-intlayer/index.md +3 -0
  871. package/ko/per_locale_file.md +300 -0
  872. package/ko/privacy_notice.md +61 -0
  873. package/ko/roadmap.md +206 -0
  874. package/ko/terms_of_service.md +33 -0
  875. package/ko/vs_code_extension.md +139 -0
  876. package/package.json +96 -0
  877. package/pt/CI_CD.md +149 -0
  878. package/pt/autoFill.md +157 -0
  879. package/pt/configuration.md +503 -0
  880. package/pt/dictionary/condition.md +213 -0
  881. package/pt/dictionary/content_extention_customization.md +81 -0
  882. package/pt/dictionary/enumeration.md +221 -0
  883. package/pt/dictionary/file.md +210 -0
  884. package/pt/dictionary/function_fetching.md +190 -0
  885. package/pt/dictionary/get_started.md +490 -0
  886. package/pt/dictionary/insertion.md +161 -0
  887. package/pt/dictionary/markdown.md +339 -0
  888. package/pt/dictionary/nesting.md +249 -0
  889. package/pt/dictionary/translation.md +322 -0
  890. package/pt/header.md +7 -0
  891. package/pt/how_works_intlayer.md +216 -0
  892. package/pt/index.md +125 -0
  893. package/pt/interest_of_intlayer.md +132 -0
  894. package/pt/intlayer_CMS.md +334 -0
  895. package/pt/intlayer_cli.md +274 -0
  896. package/pt/intlayer_visual_editor.md +210 -0
  897. package/pt/intlayer_with_angular.md +3 -0
  898. package/pt/intlayer_with_create_react_app.md +1204 -0
  899. package/pt/intlayer_with_express.md +270 -0
  900. package/pt/intlayer_with_lynx+react.md +467 -0
  901. package/pt/intlayer_with_nextjs_14.md +1269 -0
  902. package/pt/intlayer_with_nextjs_15.md +1319 -0
  903. package/pt/intlayer_with_nextjs_page_router.md +1109 -0
  904. package/pt/intlayer_with_react_native+expo.md +259 -0
  905. package/pt/intlayer_with_vite+preact.md +1663 -0
  906. package/pt/intlayer_with_vite+react.md +1621 -0
  907. package/pt/intlayer_with_vite+solid.md +3 -0
  908. package/pt/intlayer_with_vite+svelte.md +3 -0
  909. package/pt/intlayer_with_vite+vue.md +989 -0
  910. package/pt/introduction.md +193 -0
  911. package/pt/mcp_server.md +150 -0
  912. package/pt/packages/@intlayer/api/index.md +31 -0
  913. package/pt/packages/@intlayer/chokidar/index.md +31 -0
  914. package/pt/packages/@intlayer/cli/index.md +21 -0
  915. package/pt/packages/@intlayer/config/index.md +116 -0
  916. package/pt/packages/@intlayer/core/index.md +25 -0
  917. package/pt/packages/@intlayer/design-system/index.md +21 -0
  918. package/pt/packages/@intlayer/dictionary-entry/index.md +21 -0
  919. package/pt/packages/@intlayer/editor/index.md +21 -0
  920. package/pt/packages/@intlayer/editor-react/index.md +21 -0
  921. package/pt/packages/@intlayer/webpack/index.md +35 -0
  922. package/pt/packages/angular-intlayer/index.md +3 -0
  923. package/pt/packages/express-intlayer/index.md +232 -0
  924. package/pt/packages/express-intlayer/t.md +267 -0
  925. package/pt/packages/intlayer/getConfiguration.md +120 -0
  926. package/pt/packages/intlayer/getEnumeration.md +138 -0
  927. package/pt/packages/intlayer/getHTMLTextDir.md +97 -0
  928. package/pt/packages/intlayer/getLocaleLang.md +57 -0
  929. package/pt/packages/intlayer/getLocaleName.md +93 -0
  930. package/pt/packages/intlayer/getLocalizedUrl.md +221 -0
  931. package/pt/packages/intlayer/getMultilingualUrls.md +198 -0
  932. package/pt/packages/intlayer/getPathWithoutLocale.md +50 -0
  933. package/pt/packages/intlayer/getTranslation.md +175 -0
  934. package/pt/packages/intlayer/getTranslationContent.md +177 -0
  935. package/pt/packages/intlayer/index.md +484 -0
  936. package/pt/packages/intlayer-cli/index.md +41 -0
  937. package/pt/packages/intlayer-editor/index.md +113 -0
  938. package/pt/packages/lynx-intlayer/index.md +58 -0
  939. package/pt/packages/next-intlayer/index.md +270 -0
  940. package/pt/packages/next-intlayer/t.md +341 -0
  941. package/pt/packages/next-intlayer/useDictionary.md +248 -0
  942. package/pt/packages/next-intlayer/useIntlayer.md +237 -0
  943. package/pt/packages/next-intlayer/useIntlayerAsync.md +211 -0
  944. package/pt/packages/next-intlayer/useLocale.md +105 -0
  945. package/pt/packages/preact-intlayer/index.md +3 -0
  946. package/pt/packages/react-intlayer/index.md +261 -0
  947. package/pt/packages/react-intlayer/t.md +289 -0
  948. package/pt/packages/react-intlayer/useDictionary.md +268 -0
  949. package/pt/packages/react-intlayer/useIntlayer.md +225 -0
  950. package/pt/packages/react-intlayer/useIntlayerAsync.md +226 -0
  951. package/pt/packages/react-intlayer/useLocale.md +184 -0
  952. package/pt/packages/react-native-intlayer/index.md +57 -0
  953. package/pt/packages/react-scripts-intlayer/index.md +57 -0
  954. package/pt/packages/solid-intlayer/index.md +3 -0
  955. package/pt/packages/svelte-intlayer/index.md +3 -0
  956. package/pt/packages/vite-intlayer/index.md +53 -0
  957. package/pt/packages/vue-intlayer/index.md +3 -0
  958. package/pt/per_locale_file.md +298 -0
  959. package/pt/privacy_notice.md +61 -0
  960. package/pt/roadmap.md +206 -0
  961. package/pt/terms_of_service.md +33 -0
  962. package/pt/vs_code_extension.md +139 -0
  963. package/ru/CI_CD.md +149 -0
  964. package/ru/autoFill.md +157 -0
  965. package/ru/configuration.md +507 -0
  966. package/ru/dictionary/condition.md +213 -0
  967. package/ru/dictionary/content_extention_customization.md +81 -0
  968. package/ru/dictionary/enumeration.md +221 -0
  969. package/ru/dictionary/file.md +209 -0
  970. package/ru/dictionary/function_fetching.md +188 -0
  971. package/ru/dictionary/get_started.md +311 -0
  972. package/ru/dictionary/insertion.md +161 -0
  973. package/ru/dictionary/markdown.md +339 -0
  974. package/ru/dictionary/nesting.md +249 -0
  975. package/ru/dictionary/translation.md +322 -0
  976. package/ru/environment/angular.md +3 -0
  977. package/ru/header.md +7 -0
  978. package/ru/how_works_intlayer.md +217 -0
  979. package/ru/index.md +125 -0
  980. package/ru/interest_of_intlayer.md +132 -0
  981. package/ru/intlayer_CMS.md +334 -0
  982. package/ru/intlayer_cli.md +274 -0
  983. package/ru/intlayer_visual_editor.md +210 -0
  984. package/ru/intlayer_with_angular.md +3 -0
  985. package/ru/intlayer_with_create_react_app.md +1196 -0
  986. package/ru/intlayer_with_express.md +273 -0
  987. package/ru/intlayer_with_lynx+react.md +482 -0
  988. package/ru/intlayer_with_nextjs_14.md +1274 -0
  989. package/ru/intlayer_with_nextjs_15.md +1318 -0
  990. package/ru/intlayer_with_nextjs_page_router.md +1100 -0
  991. package/ru/intlayer_with_react_native+expo.md +537 -0
  992. package/ru/intlayer_with_vite+preact.md +1663 -0
  993. package/ru/intlayer_with_vite+react.md +1546 -0
  994. package/ru/intlayer_with_vite+solid.md +3 -0
  995. package/ru/intlayer_with_vite+svelte.md +3 -0
  996. package/ru/intlayer_with_vite+vue.md +987 -0
  997. package/ru/introduction.md +190 -0
  998. package/ru/mcp_server.md +152 -0
  999. package/ru/packages/@intlayer/api/index.md +31 -0
  1000. package/ru/packages/@intlayer/chokidar/index.md +31 -0
  1001. package/ru/packages/@intlayer/cli/index.md +23 -0
  1002. package/ru/packages/@intlayer/config/index.md +116 -0
  1003. package/ru/packages/@intlayer/core/index.md +25 -0
  1004. package/ru/packages/@intlayer/design-system/index.md +21 -0
  1005. package/ru/packages/@intlayer/dictionary-entry/index.md +21 -0
  1006. package/ru/packages/@intlayer/editor/index.md +21 -0
  1007. package/ru/packages/@intlayer/editor-react/index.md +21 -0
  1008. package/ru/packages/@intlayer/webpack/index.md +35 -0
  1009. package/ru/packages/angular-intlayer/index.md +3 -0
  1010. package/ru/packages/express-intlayer/index.md +235 -0
  1011. package/ru/packages/express-intlayer/t.md +445 -0
  1012. package/ru/packages/intlayer/getConfiguration.md +120 -0
  1013. package/ru/packages/intlayer/getEnumeration.md +140 -0
  1014. package/ru/packages/intlayer/getHTMLTextDir.md +97 -0
  1015. package/ru/packages/intlayer/getLocaleLang.md +59 -0
  1016. package/ru/packages/intlayer/getLocaleName.md +93 -0
  1017. package/ru/packages/intlayer/getLocalizedUrl.md +221 -0
  1018. package/ru/packages/intlayer/getMultilingualUrls.md +198 -0
  1019. package/ru/packages/intlayer/getPathWithoutLocale.md +50 -0
  1020. package/ru/packages/intlayer/getTranslation.md +177 -0
  1021. package/ru/packages/intlayer/getTranslationContent.md +175 -0
  1022. package/ru/packages/intlayer/index.md +275 -0
  1023. package/ru/packages/intlayer-cli/index.md +41 -0
  1024. package/ru/packages/intlayer-editor/index.md +115 -0
  1025. package/ru/packages/lynx-intlayer/index.md +58 -0
  1026. package/ru/packages/next-intlayer/index.md +267 -0
  1027. package/ru/packages/next-intlayer/t.md +340 -0
  1028. package/ru/packages/next-intlayer/useDictionary.md +248 -0
  1029. package/ru/packages/next-intlayer/useIntlayer.md +237 -0
  1030. package/ru/packages/next-intlayer/useIntlayerAsync.md +211 -0
  1031. package/ru/packages/next-intlayer/useLocale.md +105 -0
  1032. package/ru/packages/preact-intlayer/index.md +3 -0
  1033. package/ru/packages/react-intlayer/index.md +261 -0
  1034. package/ru/packages/react-intlayer/t.md +289 -0
  1035. package/ru/packages/react-intlayer/useDictionary.md +268 -0
  1036. package/ru/packages/react-intlayer/useIntlayer.md +225 -0
  1037. package/ru/packages/react-intlayer/useIntlayerAsync.md +226 -0
  1038. package/ru/packages/react-intlayer/useLocale.md +184 -0
  1039. package/ru/packages/react-native-intlayer/index.md +57 -0
  1040. package/ru/packages/react-scripts-intlayer/index.md +57 -0
  1041. package/ru/packages/solid-intlayer/index.md +3 -0
  1042. package/ru/packages/svelte-intlayer/index.md +3 -0
  1043. package/ru/packages/vite-intlayer/index.md +53 -0
  1044. package/ru/packages/vue-intlayer/index.md +3 -0
  1045. package/ru/per_locale_file.md +298 -0
  1046. package/ru/privacy_notice.md +61 -0
  1047. package/ru/roadmap.md +206 -0
  1048. package/ru/terms_of_service.md +33 -0
  1049. package/ru/vs_code_extension.md +139 -0
  1050. package/zh/CI_CD.md +149 -0
  1051. package/zh/autoFill.md +157 -0
  1052. package/zh/configuration.md +484 -0
  1053. package/zh/dictionary/condition.md +213 -0
  1054. package/zh/dictionary/content_extention_customization.md +81 -0
  1055. package/zh/dictionary/enumeration.md +221 -0
  1056. package/zh/dictionary/file.md +209 -0
  1057. package/zh/dictionary/function_fetching.md +188 -0
  1058. package/zh/dictionary/get_started.md +490 -0
  1059. package/zh/dictionary/insertion.md +161 -0
  1060. package/zh/dictionary/markdown.md +342 -0
  1061. package/zh/dictionary/nesting.md +249 -0
  1062. package/zh/dictionary/translation.md +287 -0
  1063. package/zh/header.md +7 -0
  1064. package/zh/how_works_intlayer.md +217 -0
  1065. package/zh/index.md +125 -0
  1066. package/zh/interest_of_intlayer.md +132 -0
  1067. package/zh/intlayer_CMS.md +334 -0
  1068. package/zh/intlayer_cli.md +274 -0
  1069. package/zh/intlayer_visual_editor.md +210 -0
  1070. package/zh/intlayer_with_angular.md +3 -0
  1071. package/zh/intlayer_with_create_react_app.md +1196 -0
  1072. package/zh/intlayer_with_express.md +267 -0
  1073. package/zh/intlayer_with_lynx+react.md +484 -0
  1074. package/zh/intlayer_with_nextjs_14.md +1286 -0
  1075. package/zh/intlayer_with_nextjs_15.md +1322 -0
  1076. package/zh/intlayer_with_nextjs_page_router.md +1097 -0
  1077. package/zh/intlayer_with_react_native+expo.md +539 -0
  1078. package/zh/intlayer_with_vite+preact.md +1681 -0
  1079. package/zh/intlayer_with_vite+react.md +1577 -0
  1080. package/zh/intlayer_with_vite+solid.md +3 -0
  1081. package/zh/intlayer_with_vite+svelte.md +3 -0
  1082. package/zh/intlayer_with_vite+vue.md +988 -0
  1083. package/zh/introduction.md +186 -0
  1084. package/zh/mcp_server.md +152 -0
  1085. package/zh/packages/@intlayer/api/index.md +31 -0
  1086. package/zh/packages/@intlayer/chokidar/index.md +31 -0
  1087. package/zh/packages/@intlayer/cli/index.md +21 -0
  1088. package/zh/packages/@intlayer/config/index.md +116 -0
  1089. package/zh/packages/@intlayer/core/index.md +25 -0
  1090. package/zh/packages/@intlayer/design-system/index.md +21 -0
  1091. package/zh/packages/@intlayer/dictionary-entry/index.md +21 -0
  1092. package/zh/packages/@intlayer/editor/index.md +21 -0
  1093. package/zh/packages/@intlayer/editor-react/index.md +21 -0
  1094. package/zh/packages/@intlayer/webpack/index.md +35 -0
  1095. package/zh/packages/angular-intlayer/index.md +3 -0
  1096. package/zh/packages/express-intlayer/index.md +229 -0
  1097. package/zh/packages/express-intlayer/t.md +432 -0
  1098. package/zh/packages/intlayer/getConfiguration.md +120 -0
  1099. package/zh/packages/intlayer/getEnumeration.md +140 -0
  1100. package/zh/packages/intlayer/getHTMLTextDir.md +97 -0
  1101. package/zh/packages/intlayer/getLocaleLang.md +57 -0
  1102. package/zh/packages/intlayer/getLocaleName.md +93 -0
  1103. package/zh/packages/intlayer/getLocalizedUrl.md +221 -0
  1104. package/zh/packages/intlayer/getMultilingualUrls.md +198 -0
  1105. package/zh/packages/intlayer/getPathWithoutLocale.md +50 -0
  1106. package/zh/packages/intlayer/getTranslation.md +166 -0
  1107. package/zh/packages/intlayer/getTranslationContent.md +166 -0
  1108. package/zh/packages/intlayer/index.md +360 -0
  1109. package/zh/packages/intlayer-cli/index.md +41 -0
  1110. package/zh/packages/intlayer-editor/index.md +113 -0
  1111. package/zh/packages/lynx-intlayer/index.md +60 -0
  1112. package/zh/packages/next-intlayer/index.md +267 -0
  1113. package/zh/packages/next-intlayer/t.md +338 -0
  1114. package/zh/packages/next-intlayer/useDictionary.md +242 -0
  1115. package/zh/packages/next-intlayer/useIntlayer.md +237 -0
  1116. package/zh/packages/next-intlayer/useIntlayerAsync.md +211 -0
  1117. package/zh/packages/next-intlayer/useLocale.md +105 -0
  1118. package/zh/packages/preact-intlayer/index.md +3 -0
  1119. package/zh/packages/react-intlayer/index.md +257 -0
  1120. package/zh/packages/react-intlayer/t.md +271 -0
  1121. package/zh/packages/react-intlayer/useDictionary.md +260 -0
  1122. package/zh/packages/react-intlayer/useIntlayer.md +225 -0
  1123. package/zh/packages/react-intlayer/useIntlayerAsync.md +226 -0
  1124. package/zh/packages/react-intlayer/useLocale.md +184 -0
  1125. package/zh/packages/react-native-intlayer/index.md +57 -0
  1126. package/zh/packages/react-scripts-intlayer/index.md +57 -0
  1127. package/zh/packages/solid-intlayer/index.md +3 -0
  1128. package/zh/packages/svelte-intlayer/index.md +3 -0
  1129. package/zh/packages/vite-intlayer/index.md +53 -0
  1130. package/zh/packages/vue-intlayer/index.md +3 -0
  1131. package/zh/per_locale_file.md +298 -0
  1132. package/zh/privacy_notice.md +61 -0
  1133. package/zh/roadmap.md +206 -0
  1134. package/zh/terms_of_service.md +33 -0
  1135. package/zh/vs_code_extension.md +139 -0
@@ -0,0 +1,1679 @@
1
+ # البدء في التدويل (i18n) باستخدام Intlayer و Vite و Preact
2
+
3
+ > هذه الحزمة قيد التطوير. انظر [المشكلة](https://github.com/aymericzip/intlayer/issues/118) لمزيد من المعلومات. أظهر اهتمامك بـ Intlayer لـ Preact من خلال الإعجاب بالمشكلة.
4
+
5
+ راجع [قالب التطبيق](https://github.com/aymericzip/intlayer-vite-preact-template) على GitHub.
6
+
7
+ ## ما هو Intlayer؟
8
+
9
+ **Intlayer** هو مكتبة مفتوحة المصدر مبتكرة للتدويل (i18n) مصممة لتبسيط دعم اللغات المتعددة في تطبيقات الويب الحديثة.
10
+
11
+ مع Intlayer، يمكنك:
12
+
13
+ - **إدارة الترجمات بسهولة** باستخدام القواميس التصريحية على مستوى المكونات.
14
+ - **توطين البيانات الوصفية ديناميكيًا**، والمسارات، والمحتوى.
15
+ - **ضمان دعم TypeScript** مع الأنواع المولدة تلقائيًا، مما يحسن الإكمال التلقائي واكتشاف الأخطاء.
16
+ - **الاستفادة من الميزات المتقدمة**، مثل اكتشاف اللغة الديناميكي والتبديل.
17
+
18
+ ---
19
+
20
+ ## دليل خطوة بخطوة لإعداد Intlayer في تطبيق Vite و Preact
21
+
22
+ ### الخطوة 1: تثبيت التبعيات
23
+
24
+ قم بتثبيت الحزم الضرورية باستخدام npm:
25
+
26
+ ```bash packageManager="npm"
27
+ npm install intlayer preact-intlayer vite-intlayer
28
+ ```
29
+
30
+ ```bash packageManager="pnpm"
31
+ pnpm add intlayer preact-intlayer vite-intlayer
32
+ ```
33
+
34
+ ```bash packageManager="yarn"
35
+ yarn add intlayer preact-intlayer vite-intlayer
36
+ ```
37
+
38
+ - **intlayer**
39
+
40
+ الحزمة الأساسية التي توفر أدوات التدويل لإدارة التكوين، الترجمة، [إعلان المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/ar/dictionary/get_started.md)، الترجمة، و[أوامر CLI](https://github.com/aymericzip/intlayer/blob/main/docs/ar/intlayer_cli.md).
41
+
42
+ - **preact-intlayer**
43
+ الحزمة التي تدمج Intlayer مع تطبيق Preact. توفر موفري السياق وخطافات لتدويل Preact.
44
+
45
+ - **vite-intlayer**
46
+ تتضمن مكون Vite الإضافي لدمج Intlayer مع [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production)، بالإضافة إلى وسيط لاكتشاف اللغة المفضلة للمستخدم، إدارة ملفات تعريف الارتباط، ومعالجة إعادة توجيه URL.
47
+
48
+ ### الخطوة 2: تكوين مشروعك
49
+
50
+ قم بإنشاء ملف تكوين لتكوين لغات تطبيقك:
51
+
52
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
53
+ import { Locales, type IntlayerConfig } from "intlayer";
54
+
55
+ const config: IntlayerConfig = {
56
+ internationalization: {
57
+ locales: [
58
+ Locales.ENGLISH,
59
+ Locales.FRENCH,
60
+ Locales.SPANISH,
61
+ // لغاتك الأخرى
62
+ ],
63
+ defaultLocale: Locales.ENGLISH,
64
+ },
65
+ };
66
+
67
+ export default config;
68
+ ```
69
+
70
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
71
+ import { Locales } from "intlayer";
72
+
73
+ /** @type {import('intlayer').IntlayerConfig} */
74
+ const config = {
75
+ internationalization: {
76
+ locales: [
77
+ Locales.ENGLISH,
78
+ Locales.FRENCH,
79
+ Locales.SPANISH,
80
+ // لغاتك الأخرى
81
+ ],
82
+ defaultLocale: Locales.ENGLISH,
83
+ },
84
+ };
85
+
86
+ export default config;
87
+ ```
88
+
89
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
90
+ const { Locales } = require("intlayer");
91
+
92
+ /** @type {import('intlayer').IntlayerConfig} */
93
+ const config = {
94
+ internationalization: {
95
+ locales: [
96
+ Locales.ENGLISH,
97
+ Locales.FRENCH,
98
+ Locales.SPANISH,
99
+ // لغاتك الأخرى
100
+ ],
101
+ defaultLocale: Locales.ENGLISH,
102
+ },
103
+ };
104
+
105
+ module.exports = config;
106
+ ```
107
+
108
+ > من خلال ملف التكوين هذا، يمكنك إعداد عناوين URL المحلية، إعادة توجيه الوسيط، أسماء ملفات تعريف الارتباط، موقع وامتداد إعلانات المحتوى الخاصة بك، تعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعلمات المتاحة، راجع [وثائق التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/ar/configuration.md).
109
+
110
+ ### الخطوة 3: دمج Intlayer في تكوين Vite الخاص بك
111
+
112
+ أضف المكون الإضافي intlayer إلى تكوينك.
113
+
114
+ ```typescript fileName="vite.config.ts" codeFormat="typescript"
115
+ import { defineConfig } from "vite";
116
+ import preact from "@preact/preset-vite";
117
+ import { intlayerPlugin } from "vite-intlayer";
118
+
119
+ // https://vitejs.dev/config/
120
+ export default defineConfig({
121
+ plugins: [preact(), intlayerPlugin()],
122
+ });
123
+ ```
124
+
125
+ ```javascript fileName="vite.config.mjs" codeFormat="esm"
126
+ import { defineConfig } from "vite";
127
+ import preact from "@preact/preset-vite";
128
+ import { intlayerPlugin } from "vite-intlayer";
129
+
130
+ // https://vitejs.dev/config/
131
+ export default defineConfig({
132
+ plugins: [preact(), intlayerPlugin()],
133
+ });
134
+ ```
135
+
136
+ ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
137
+ const { defineConfig } = require("vite");
138
+ const preact = require("@preact/preset-vite");
139
+ const { intlayerPlugin } = require("vite-intlayer");
140
+
141
+ // https://vitejs.dev/config/
142
+ module.exports = defineConfig({
143
+ plugins: [preact(), intlayerPlugin()],
144
+ });
145
+ ```
146
+
147
+ > يتم استخدام المكون الإضافي `intlayerPlugin()` لدمج Intlayer مع Vite. يضمن بناء ملفات إعلان المحتوى ومراقبتها في وضع التطوير. كما يحدد متغيرات بيئة Intlayer داخل تطبيق Vite. بالإضافة إلى ذلك، يوفر أسماء مستعارة لتحسين الأداء.
148
+
149
+ ### الخطوة 4: إعلان محتواك
150
+
151
+ قم بإنشاء وإدارة إعلانات المحتوى الخاصة بك لتخزين الترجمات:
152
+
153
+ ```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
154
+ import { t, type Dictionary } from "intlayer";
155
+
156
+ const appContent = {
157
+ key: "app",
158
+ content: {
159
+ viteLogo: t({
160
+ ar: "شعار Vite",
161
+ en: "Vite logo",
162
+ fr: "Logo Vite",
163
+ es: "Logo Vite",
164
+ }),
165
+ preactLogo: t({
166
+ ar: "شعار Preact",
167
+ en: "Preact logo",
168
+ fr: "Logo Preact",
169
+ es: "Logo Preact",
170
+ }),
171
+
172
+ title: "Vite + Preact",
173
+
174
+ count: t({
175
+ ar: "العدد هو ",
176
+ en: "count is ",
177
+ fr: "le compte est ",
178
+ es: "el recuento es ",
179
+ }),
180
+
181
+ edit: t({
182
+ ar: "قم بتعديل src/app.tsx واحفظ لاختبار HMR",
183
+ en: "Edit src/app.tsx and save to test HMR",
184
+ fr: "Éditez src/app.tsx et enregistrez pour tester HMR",
185
+ es: "Edita src/app.tsx y guarda para probar HMR",
186
+ }),
187
+
188
+ readTheDocs: t({
189
+ ar: "انقر على شعاري Vite و Preact لمعرفة المزيد",
190
+ en: "Click on the Vite and Preact logos to learn more",
191
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
192
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
193
+ }),
194
+ },
195
+ } satisfies Dictionary;
196
+
197
+ export default appContent;
198
+ ```
199
+
200
+ ```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
201
+ import { t } from "intlayer";
202
+
203
+ /** @type {import('intlayer').Dictionary} */
204
+ const appContent = {
205
+ key: "app",
206
+ content: {
207
+ viteLogo: t({
208
+ ar: "شعار Vite",
209
+ en: "Vite logo",
210
+ fr: "Logo Vite",
211
+ es: "Logo Vite",
212
+ }),
213
+ preactLogo: t({
214
+ ar: "شعار Preact",
215
+ en: "Preact logo",
216
+ fr: "Logo Preact",
217
+ es: "Logo Preact",
218
+ }),
219
+
220
+ title: "Vite + Preact",
221
+
222
+ count: t({
223
+ ar: "العدد هو ",
224
+ en: "count is ",
225
+ fr: "le compte est ",
226
+ es: "el recuento es ",
227
+ }),
228
+
229
+ edit: t({
230
+ ar: "قم بتحرير src/app.jsx واحفظ لاختبار HMR",
231
+ en: "Edit src/app.jsx and save to test HMR",
232
+ fr: "Éditez src/app.jsx et enregistrez pour tester HMR",
233
+ es: "Edita src/app.jsx y guarda para probar HMR",
234
+ }),
235
+
236
+ readTheDocs: t({
237
+ ar: "انقر على شعاري Vite و Preact لمعرفة المزيد",
238
+ en: "Click on the Vite and Preact logos to learn more",
239
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
240
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
241
+ }),
242
+ },
243
+ };
244
+
245
+ export default appContent;
246
+ ```
247
+
248
+ ```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
249
+ const { t } = require("intlayer");
250
+
251
+ /** @type {import('intlayer').Dictionary} */
252
+ const appContent = {
253
+ key: "app",
254
+ content: {
255
+ viteLogo: t({
256
+ ar: "شعار Vite",
257
+ en: "Vite logo",
258
+ fr: "Logo Vite",
259
+ es: "Logo Vite",
260
+ }),
261
+ preactLogo: t({
262
+ ar: "شعار Preact",
263
+ en: "Preact logo",
264
+ fr: "Logo Preact",
265
+ es: "Logo Preact",
266
+ }),
267
+
268
+ title: "Vite + Preact",
269
+
270
+ count: t({
271
+ ar: "العدد هو ",
272
+ en: "count is ",
273
+ fr: "le compte est ",
274
+ es: "el recuento es ",
275
+ }),
276
+
277
+ edit: t({
278
+ ar: "قم بتعديل src/app.tsx واحفظ لاختبار HMR",
279
+ en: "Edit src/app.tsx and save to test HMR",
280
+ fr: "Éditez src/app.tsx et enregistrez pour tester HMR",
281
+ es: "Edita src/app.tsx y guarda para probar HMR",
282
+ }),
283
+
284
+ readTheDocs: t({
285
+ ar: "انقر على شعارات Vite و Preact لمعرفة المزيد",
286
+ en: "Click on the Vite and Preact logos to learn more",
287
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
288
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
289
+ }),
290
+ },
291
+ };
292
+
293
+ module.exports = appContent;
294
+ ```
295
+
296
+ ```json fileName="src/app.content.json" contentDeclarationFormat="json"
297
+ {
298
+ "$schema": "https://intlayer.org/schema.json",
299
+ "key": "app",
300
+ "content": {
301
+ "viteLogo": {
302
+ "nodeType": "translation",
303
+ "translation": {
304
+ "ar": "شعار Vite",
305
+ "en": "Vite logo",
306
+ "fr": "Logo Vite",
307
+ "es": "Logo Vite"
308
+ }
309
+ },
310
+ "preactLogo": {
311
+ "nodeType": "translation",
312
+ "translation": {
313
+ "ar": "شعار Preact",
314
+ "en": "Preact logo",
315
+ "fr": "Logo Preact",
316
+ "es": "Logo Preact"
317
+ }
318
+ },
319
+ "title": {
320
+ "nodeType": "translation",
321
+ "translation": {
322
+ "ar": "Vite + Preact",
323
+ "en": "Vite + Preact",
324
+ "fr": "Vite + Preact",
325
+ "es": "Vite + Preact"
326
+ }
327
+ },
328
+ "count": {
329
+ "nodeType": "translation",
330
+ "translation": {
331
+ "ar": "العدد هو ",
332
+ "en": "count is ",
333
+ "fr": "le compte est ",
334
+ "es": "el recuento es "
335
+ }
336
+ },
337
+ "edit": {
338
+ "nodeType": "translation",
339
+ "translation": {
340
+ "ar": "قم بتعديل src/app.tsx واحفظ لاختبار HMR",
341
+ "en": "Edit src/app.tsx and save to test HMR",
342
+ "fr": "Éditez src/app.tsx et enregistrez pour tester HMR",
343
+ "es": "Edita src/app.tsx y guarda para probar HMR"
344
+ }
345
+ },
346
+ "readTheDocs": {
347
+ "nodeType": "translation",
348
+ "translation": {
349
+ "ar": "انقر على شعارات Vite و Preact لمعرفة المزيد",
350
+ "en": "Click on the Vite and Preact logos to learn more",
351
+ "fr": "Cliquez sur les logos Vite et Preact pour en savoir plus",
352
+ "es": "Haga clic en los logotipos de Vite y Preact para obtener más información"
353
+ }
354
+ }
355
+ }
356
+ }
357
+ ```
358
+
359
+ > يمكن تعريف إعلانات المحتوى الخاصة بك في أي مكان في تطبيقك طالما تم تضمينها في دليل `contentDir` (افتراضيًا، `./src`). وتطابق امتداد ملف إعلان المحتوى (افتراضيًا، `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
360
+
361
+ > لمزيد من التفاصيل، راجع [وثائق إعلان المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/ar/dictionary/get_started.md).
362
+
363
+ > إذا كان ملف المحتوى الخاص بك يتضمن كود TSX، قد تحتاج إلى استيراد `import { h } from "preact";` أو التأكد من إعداد JSX pragma بشكل صحيح لـ Preact.
364
+
365
+ ### الخطوة 5: استخدام Intlayer في الكود الخاص بك
366
+
367
+ الوصول إلى قواميس المحتوى الخاصة بك في جميع أنحاء التطبيق:
368
+
369
+ ```tsx {6,10} fileName="src/app.tsx" codeFormat="typescript"
370
+ import { useState } from "preact/hooks";
371
+ import type { FunctionalComponent } from "preact";
372
+ import preactLogo from "./assets/preact.svg"; // بافتراض أن لديك preact.svg
373
+ import viteLogo from "/vite.svg";
374
+ import "./app.css"; // بافتراض أن ملف CSS الخاص بك يسمى app.css
375
+ import { IntlayerProvider, useIntlayer } from "preact-intlayer";
376
+
377
+ const AppContent: FunctionalComponent = () => {
378
+ const [count, setCount] = useState(0);
379
+ const content = useIntlayer("app");
380
+
381
+ return (
382
+ <>
383
+ <div>
384
+ <a href="https://vitejs.dev" target="_blank">
385
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
386
+ </a>
387
+ <a href="https://preactjs.com" target="_blank">
388
+ <img
389
+ src={preactLogo}
390
+ class="logo preact"
391
+ alt={content.preactLogo.value}
392
+ />
393
+ </a>
394
+ </div>
395
+ <h1>{content.title}</h1>
396
+ <div class="card">
397
+ <button onClick={() => setCount((count) => count + 1)}>
398
+ {content.count}
399
+ {count}
400
+ </button>
401
+ <p>{content.edit}</p>
402
+ </div>
403
+ <p class="read-the-docs">{content.readTheDocs}</p>
404
+ </>
405
+ );
406
+ };
407
+
408
+ const App: FunctionalComponent = () => (
409
+ <IntlayerProvider>
410
+ <AppContent />
411
+ </IntlayerProvider>
412
+ );
413
+
414
+ export default App;
415
+ ```
416
+
417
+ ```jsx {5,9} fileName="src/app.jsx" codeFormat="esm"
418
+ import { useState } from "preact/hooks";
419
+ import preactLogo from "./assets/preact.svg";
420
+ import viteLogo from "/vite.svg";
421
+ import "./app.css";
422
+ import { IntlayerProvider, useIntlayer } from "preact-intlayer";
423
+
424
+ const AppContent = () => {
425
+ const [count, setCount] = useState(0);
426
+ const content = useIntlayer("app");
427
+
428
+ return (
429
+ <>
430
+ <div>
431
+ <a href="https://vitejs.dev" target="_blank">
432
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
433
+ </a>
434
+ <a href="https://preactjs.com" target="_blank">
435
+ <img
436
+ src={preactLogo}
437
+ class="logo preact"
438
+ alt={content.preactLogo.value}
439
+ />
440
+ </a>
441
+ </div>
442
+ <h1>{content.title}</h1>
443
+ <div class="card">
444
+ <button onClick={() => setCount((count) => count + 1)}>
445
+ {content.count}
446
+ {count}
447
+ </button>
448
+ <p>{content.edit}</p>
449
+ </div>
450
+ <p class="read-the-docs">{content.readTheDocs}</p>
451
+ </>
452
+ );
453
+ };
454
+
455
+ const App = () => (
456
+ <IntlayerProvider>
457
+ <AppContent />
458
+ </IntlayerProvider>
459
+ );
460
+
461
+ export default App;
462
+ ```
463
+
464
+ ```jsx {5,9} fileName="src/app.cjsx" codeFormat="commonjs"
465
+ const { useState } = require("preact/hooks");
466
+ const preactLogo = require("./assets/preact.svg");
467
+ const viteLogo = require("/vite.svg");
468
+ require("./app.css");
469
+ const { IntlayerProvider, useIntlayer } = require("preact-intlayer");
470
+
471
+ const AppContent = () => {
472
+ const [count, setCount] = useState(0);
473
+ const content = useIntlayer("app");
474
+
475
+ return (
476
+ <>
477
+ <div>
478
+ <a href="https://vitejs.dev" target="_blank">
479
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
480
+ </a>
481
+ <a href="https://preactjs.com" target="_blank">
482
+ <img
483
+ src={preactLogo}
484
+ class="logo preact"
485
+ alt={content.preactLogo.value}
486
+ />
487
+ </a>
488
+ </div>
489
+ <h1>{content.title}</h1>
490
+ <div class="card">
491
+ <button onClick={() => setCount((count) => count + 1)}>
492
+ {content.count}
493
+ {count}
494
+ </button>
495
+ <p>{content.edit}</p>
496
+ </div>
497
+ <p class="read-the-docs">{content.readTheDocs}</p>
498
+ </>
499
+ );
500
+ };
501
+
502
+ const App = () => (
503
+ <IntlayerProvider>
504
+ <AppContent />
505
+ </IntlayerProvider>
506
+ );
507
+
508
+ module.exports = App;
509
+ ```
510
+
511
+ > إذا كنت ترغب في استخدام المحتوى الخاص بك في سمة `string`، مثل `alt`، `title`، `href`، `aria-label`، إلخ، يجب عليك استدعاء قيمة الوظيفة، مثل:
512
+
513
+ > ```jsx
514
+ >
515
+ > ```
516
+
517
+ > <img src={content.image.src.value} alt={content.image.value} />
518
+
519
+ > ```
520
+ >
521
+ > ```
522
+
523
+ > ملاحظة: في Preact، يتم كتابة `className` عادةً كـ `class`.
524
+
525
+ > لمعرفة المزيد عن هوك `useIntlayer`، راجع [الوثائق](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/react-intlayer/useIntlayer.md) (واجهة برمجة التطبيقات مشابهة لـ `preact-intlayer`).
526
+
527
+ ### (اختياري) الخطوة 6: تغيير لغة المحتوى الخاص بك
528
+
529
+ لتغيير لغة المحتوى الخاص بك، يمكنك استخدام وظيفة `setLocale` المقدمة من هوك `useLocale`. تتيح لك هذه الوظيفة تعيين لغة التطبيق وتحديث المحتوى وفقًا لذلك.
530
+
531
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
532
+ import type { FunctionalComponent } from "preact";
533
+ import { Locales } from "intlayer";
534
+ import { useLocale } from "preact-intlayer";
535
+
536
+ const LocaleSwitcher: FunctionalComponent = () => {
537
+ const { setLocale } = useLocale();
538
+
539
+ return (
540
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
541
+ تغيير اللغة إلى الإنجليزية
542
+
543
+ import { Locales } from "intlayer";
544
+ import { useLocale } from "preact-intlayer";
545
+
546
+ const LocaleSwitcher = () => {
547
+ const { setLocale } = useLocale();
548
+
549
+ return (
550
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
551
+ تغيير اللغة إلى الإنجليزية
552
+ </button>
553
+ );
554
+ };
555
+
556
+ export default LocaleSwitcher;
557
+ ```
558
+
559
+ ```jsx fileName="src/components/LocaleSwitcher.cjsx" codeFormat="commonjs"
560
+ const { Locales } = require("intlayer");
561
+ const { useLocale } = require("preact-intlayer");
562
+
563
+ const LocaleSwitcher = () => {
564
+ const { setLocale } = useLocale();
565
+
566
+ return (
567
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
568
+ تغيير اللغة إلى الإنجليزية
569
+ </button>
570
+ );
571
+ };
572
+
573
+ module.exports = LocaleSwitcher;
574
+ ```
575
+
576
+ > لمعرفة المزيد عن الخطاف `useLocale`، راجع [التوثيق](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/react-intlayer/useLocale.md) (واجهة برمجة التطبيقات مشابهة لـ `preact-intlayer`).
577
+
578
+ ### (اختياري) الخطوة 7: إضافة التوجيه المحلي إلى تطبيقك
579
+
580
+ الغرض من هذه الخطوة هو إنشاء مسارات فريدة لكل لغة. هذا مفيد لتحسين محركات البحث (SEO) وعناوين URL الصديقة لمحركات البحث.
581
+ مثال:
582
+
583
+ ```plaintext
584
+ - https://example.com/about
585
+ - https://example.com/es/about
586
+ - https://example.com/fr/about
587
+ ```
588
+
589
+ > بشكل افتراضي، لا يتم إضافة بادئة للمسارات للغة الافتراضية. إذا كنت تريد إضافة بادئة للغة الافتراضية، يمكنك تعيين الخيار `middleware.prefixDefault` إلى `true` في إعداداتك. راجع [توثيق الإعدادات](https://github.com/aymericzip/intlayer/blob/main/docs/ar/configuration.md) لمزيد من المعلومات.
590
+
591
+ لإضافة التوجيه المحلي إلى تطبيقك، يمكنك إنشاء مكون `LocaleRouter` يلتف حول مسارات تطبيقك ويتعامل مع التوجيه المستند إلى اللغة. إليك مثال باستخدام [preact-iso](https://github.com/preactjs/preact-iso):
592
+
593
+ أولاً، قم بتثبيت `preact-iso`:
594
+
595
+ ```bash packageManager="npm"
596
+ npm install preact-iso
597
+ ```
598
+
599
+ ```bash packageManager="pnpm"
600
+ pnpm add preact-iso
601
+ ```
602
+
603
+ ```bash packageManager="yarn"
604
+ yarn add preact-iso
605
+ ```
606
+
607
+ ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
608
+ import { type Locales, configuration, getPathWithoutLocale } from "intlayer";
609
+ import { ComponentChildren, FunctionalComponent } from "preact";
610
+ import { IntlayerProvider } from "preact-intlayer";
611
+ import { LocationProvider, useLocation } from "preact-iso";
612
+ import { useEffect } from "preact/hooks";
613
+
614
+ const { internationalization, middleware } = configuration;
615
+ const { locales, defaultLocale } = internationalization;
616
+
617
+ const Navigate: FunctionalComponent<{ to: string; replace?: boolean }> = ({
618
+ to,
619
+ replace,
620
+ }) => {
621
+ const { route } = useLocation();
622
+ useEffect(() => {
623
+ route(to, replace);
624
+ }, [to, replace, route]);
625
+ return null;
626
+ };
627
+
628
+ /**
629
+ * مكون يتعامل مع التوطين ويلتف حول الأطفال بسياق اللغة المناسب.
630
+ * يدير الكشف عن اللغة المستندة إلى عنوان URL والتحقق من صحتها.
631
+ */
632
+ const AppLocalized: FunctionalComponent<{
633
+ children: ComponentChildren;
634
+ locale?: Locales;
635
+ }> = ({ children, locale }) => {
636
+ const { path: pathname, url } = useLocation();
637
+
638
+ if (!url) {
639
+ return null;
640
+ }
641
+
642
+ const search = url.substring(pathname.length);
643
+
644
+ // تحديد اللغة الحالية، مع الرجوع إلى اللغة الافتراضية إذا لم يتم توفيرها
645
+ const currentLocale = locale ?? defaultLocale;
646
+
647
+ // إزالة بادئة اللغة من المسار لإنشاء مسار أساسي
648
+ const pathWithoutLocale = getPathWithoutLocale(
649
+ pathname // المسار الحالي لعنوان URL
650
+ );
651
+
652
+ /**
653
+ * إذا كان middleware.prefixDefault صحيحًا، يجب دائمًا إضافة بادئة للغة الافتراضية.
654
+ */
655
+ if (middleware.prefixDefault) {
656
+ // التحقق من صحة اللغة
657
+ if (!locale || !locales.includes(locale)) {
658
+ // إعادة التوجيه إلى اللغة الافتراضية مع تحديث المسار
659
+ return (
660
+ <Navigate
661
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
662
+ replace // استبدال إدخال السجل الحالي بالجديد
663
+ />
664
+ );
665
+ }
666
+
667
+ // التفاف الأطفال بـ IntlayerProvider وتعيين اللغة الحالية
668
+ return (
669
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
670
+ );
671
+ } else {
672
+ /**
673
+ * عندما يكون middleware.prefixDefault خاطئًا، لا يتم إضافة بادئة للغة الافتراضية.
674
+ * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
675
+ */
676
+ if (
677
+ currentLocale.toString() !== defaultLocale.toString() &&
678
+ !locales
679
+ .filter(
680
+ (loc) => loc.toString() !== defaultLocale.toString() // استبعاد اللغة الافتراضية
681
+ )
682
+ .includes(currentLocale) // التحقق مما إذا كانت اللغة الحالية موجودة في قائمة اللغات الصالحة
683
+ ) {
684
+ // إعادة التوجيه إلى المسار بدون بادئة اللغة
685
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
686
+ }
687
+
688
+ // التفاف الأطفال بـ IntlayerProvider وتعيين اللغة الحالية
689
+ return (
690
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
691
+ );
692
+ }
693
+ };
694
+
695
+ const RouterContent: FunctionalComponent<{
696
+ children: ComponentChildren;
697
+ }> = ({ children }) => {
698
+ const { path } = useLocation();
699
+
700
+ if (!path) {
701
+ return null;
702
+ }
703
+
704
+ const pathLocale = path.split("/")[1] as Locales;
705
+
706
+ const isLocaleRoute = locales
707
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
708
+ .some((locale) => locale.toString() === pathLocale);
709
+
710
+ if (isLocaleRoute) {
711
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
712
+ }
713
+
714
+ return (
715
+ <AppLocalized
716
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
717
+ >
718
+ {children}
719
+ </AppLocalized>
720
+ );
721
+ };
722
+
723
+ /**
724
+ * مكون التوجيه الذي يقوم بإعداد المسارات الخاصة باللغة.
725
+ * يستخدم preact-iso لإدارة التنقل وعرض المكونات المحلية.
726
+ */
727
+ export const LocaleRouter: FunctionalComponent<{
728
+ children: ComponentChildren;
729
+ }> = ({ children }) => (
730
+ <LocationProvider>
731
+ <RouterContent>{children}</RouterContent>
732
+ </LocationProvider>
733
+ );
734
+ ```
735
+
736
+ ```jsx fileName="src/components/LocaleRouter.jsx" codeFormat="esm"
737
+ // استيراد التبعيات والوظائف اللازمة
738
+ import { configuration, getPathWithoutLocale } from "intlayer";
739
+ import { IntlayerProvider } from "preact-intlayer";
740
+ import { LocationProvider, useLocation } from "preact-iso";
741
+ import { useEffect } from "preact/hooks";
742
+ import { h } from "preact"; // مطلوب لـ JSX
743
+
744
+ // تفكيك الإعدادات من Intlayer
745
+ const { internationalization, middleware } = configuration;
746
+ const { locales, defaultLocale } = internationalization;
747
+
748
+ const Navigate = ({ to, replace }) => {
749
+ const { route } = useLocation();
750
+ useEffect(() => {
751
+ route(to, replace);
752
+ }, [to, replace, route]);
753
+ return null;
754
+ };
755
+
756
+ /**
757
+ * مكون يتعامل مع التوطين ويلتف حول الأطفال بسياق اللغة المناسب.
758
+ * يدير الكشف عن اللغة المستندة إلى عنوان URL والتحقق من صحتها.
759
+ */
760
+ const AppLocalized = ({ children, locale }) => {
761
+ const { path: pathname, url } = useLocation();
762
+
763
+ if (!url) {
764
+ return null;
765
+ }
766
+
767
+ const search = url.substring(pathname.length);
768
+
769
+ // تحديد اللغة الحالية، مع الرجوع إلى اللغة الافتراضية إذا لم يتم توفيرها
770
+ const currentLocale = locale ?? defaultLocale;
771
+
772
+ // إزالة بادئة اللغة من المسار لإنشاء مسار أساسي
773
+ const pathWithoutLocale = getPathWithoutLocale(
774
+ pathname // المسار الحالي لعنوان URL
775
+ );
776
+
777
+ /**
778
+ * إذا كان middleware.prefixDefault صحيحًا، يجب دائمًا إضافة بادئة للغة الافتراضية.
779
+ */
780
+ if (middleware.prefixDefault) {
781
+ // التحقق من صحة اللغة
782
+ if (!locale || !locales.includes(locale)) {
783
+ // إعادة التوجيه إلى اللغة الافتراضية مع تحديث المسار
784
+ return (
785
+ <Navigate
786
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
787
+ replace // استبدال إدخال السجل الحالي بالجديد
788
+ />
789
+ );
790
+ }
791
+
792
+ // التفاف الأطفال بـ IntlayerProvider وتعيين اللغة الحالية
793
+ return (
794
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
795
+ );
796
+ } else {
797
+ /**
798
+ * عندما يكون middleware.prefixDefault خاطئًا، لا يتم إضافة بادئة للغة الافتراضية.
799
+ * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
800
+ */
801
+ if (
802
+ currentLocale.toString() !== defaultLocale.toString() &&
803
+ !locales
804
+ .filter(
805
+ (loc) => loc.toString() !== defaultLocale.toString() // استبعاد اللغة الافتراضية
806
+ )
807
+ .includes(currentLocale) // التحقق مما إذا كانت اللغة الحالية موجودة في قائمة اللغات الصالحة
808
+ ) {
809
+ // إعادة التوجيه إلى المسار بدون بادئة اللغة
810
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
811
+ }
812
+
813
+ // التفاف الأطفال بـ IntlayerProvider وتعيين اللغة الحالية
814
+ return (
815
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
816
+ );
817
+ }
818
+ };
819
+
820
+ * عندما يكون middleware.prefixDefault هو false، لا يتم إضافة بادئة للغة الافتراضية.
821
+ * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
822
+ */
823
+ if (
824
+ currentLocale.toString() !== defaultLocale.toString() &&
825
+ !locales
826
+ .filter(
827
+ (loc) => loc.toString() !== defaultLocale.toString() // استبعاد اللغة الافتراضية
828
+ )
829
+ .includes(currentLocale) // تحقق مما إذا كانت اللغة الحالية موجودة في قائمة اللغات الصالحة
830
+ ) {
831
+ // إعادة التوجيه إلى المسار بدون بادئة اللغة
832
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
833
+ }
834
+
835
+ // تغليف الأطفال باستخدام IntlayerProvider وتعيين اللغة الحالية
836
+ return (
837
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
838
+ );
839
+ }
840
+ };
841
+
842
+ const RouterContent = ({ children }) => {
843
+ const { path } = useLocation();
844
+
845
+ if (!path) {
846
+ return null;
847
+ }
848
+
849
+ const pathLocale = path.split("/")[1];
850
+
851
+ const isLocaleRoute = locales
852
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
853
+ .some((locale) => locale.toString() === pathLocale);
854
+
855
+ if (isLocaleRoute) {
856
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
857
+ }
858
+
859
+ return (
860
+ <AppLocalized
861
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
862
+ >
863
+ {children}
864
+ </AppLocalized>
865
+ );
866
+ };
867
+
868
+ /**
869
+ * مكون موجه يقوم بإعداد مسارات خاصة باللغات.
870
+ * يستخدم preact-iso لإدارة التنقل وعرض المكونات المترجمة.
871
+ */
872
+ export const LocaleRouter = ({ children }) => (
873
+ <LocationProvider>
874
+ <RouterContent>{children}</RouterContent>
875
+ </LocationProvider>
876
+ );
877
+ ```
878
+
879
+ ```jsx fileName="src/components/LocaleRouter.cjsx" codeFormat="commonjs"
880
+ // استيراد التبعيات والوظائف اللازمة
881
+ const { configuration, getPathWithoutLocale } = require("intlayer");
882
+ const { IntlayerProvider } = require("preact-intlayer");
883
+ const { LocationProvider, useLocation } = require("preact-iso");
884
+ const { useEffect } = require("preact/hooks");
885
+ const { h } = require("preact"); // مطلوب لـ JSX
886
+
887
+ // تفكيك التكوين من Intlayer
888
+ const { internationalization, middleware } = configuration;
889
+ const { locales, defaultLocale } = internationalization;
890
+
891
+ const Navigate = ({ to, replace }) => {
892
+ const { route } = useLocation();
893
+ useEffect(() => {
894
+ route(to, replace);
895
+ }, [to, replace, route]);
896
+ return null;
897
+ };
898
+
899
+ /**
900
+ * مكون يتعامل مع الترجمة ويغلف الأطفال بالسياق المناسب للغة.
901
+ * يدير الكشف عن اللغة بناءً على عنوان URL والتحقق من صحتها.
902
+ */
903
+ const AppLocalized = ({ children, locale }) => {
904
+ const { path: pathname, url } = useLocation();
905
+
906
+ if (!url) {
907
+ return null;
908
+ }
909
+
910
+ const search = url.substring(pathname.length);
911
+
912
+ // تحديد اللغة الحالية، مع الرجوع إلى اللغة الافتراضية إذا لم يتم توفيرها
913
+ const currentLocale = locale ?? defaultLocale;
914
+
915
+ // إزالة بادئة اللغة من المسار لإنشاء مسار أساسي
916
+ const pathWithoutLocale = getPathWithoutLocale(
917
+ pathname // المسار الحالي لعنوان URL
918
+ );
919
+
920
+ /**
921
+ * إذا كان middleware.prefixDefault هو true، يجب دائمًا إضافة بادئة للغة الافتراضية.
922
+ */
923
+ if (middleware.prefixDefault) {
924
+ // التحقق من صحة اللغة
925
+ if (!locale || !locales.includes(locale)) {
926
+ // إعادة التوجيه إلى اللغة الافتراضية مع تحديث المسار
927
+ return (
928
+ <Navigate
929
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
930
+ replace // استبدال الإدخال الحالي في السجل بالإدخال الجديد
931
+ />
932
+ );
933
+ }
934
+
935
+ // تغليف الأطفال باستخدام IntlayerProvider وتعيين اللغة الحالية
936
+ return (
937
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
938
+ );
939
+ } else {
940
+ /**
941
+ * عندما يكون middleware.prefixDefault هو false، لا يتم إضافة بادئة للغة الافتراضية.
942
+ * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
943
+ */
944
+ if (
945
+ currentLocale.toString() !== defaultLocale.toString() &&
946
+ !locales
947
+ .filter(
948
+ (loc) => loc.toString() !== defaultLocale.toString() // استبعاد اللغة الافتراضية
949
+ )
950
+ .includes(currentLocale) // تحقق مما إذا كانت اللغة الحالية موجودة في قائمة اللغات الصالحة
951
+ ) {
952
+ // إعادة التوجيه إلى المسار بدون بادئة اللغة
953
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
954
+ }
955
+
956
+ // تغليف الأطفال باستخدام IntlayerProvider وتعيين اللغة الحالية
957
+ return (
958
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
959
+ );
960
+ }
961
+ };
962
+
963
+ const RouterContent = ({ children }) => {
964
+ const { path } = useLocation();
965
+
966
+ if (!path) {
967
+ return null;
968
+ }
969
+
970
+ const pathLocale = path.split("/")[1];
971
+
972
+ const isLocaleRoute = locales
973
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
974
+ .some((locale) => locale.toString() === pathLocale);
975
+
976
+ if (isLocaleRoute) {
977
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
978
+ }
979
+
980
+ return (
981
+ <AppLocalized
982
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
983
+ >
984
+ {children}
985
+ </AppLocalized>
986
+ );
987
+ };
988
+
989
+ /**
990
+ * مكون موجه يقوم بإعداد مسارات خاصة باللغات.
991
+ * يستخدم preact-iso لإدارة التنقل وعرض المكونات المترجمة.
992
+ */
993
+ const LocaleRouter = ({ children }) => (
994
+ <LocationProvider>
995
+ <RouterContent>{children}</RouterContent>
996
+ </LocationProvider>
997
+ );
998
+
999
+ module.exports = { LocaleRouter };
1000
+ ```
1001
+
1002
+ ثم يمكنك استخدام مكون `LocaleRouter` في تطبيقك:
1003
+
1004
+ ```tsx fileName="src/app.tsx" codeFormat="typescript"
1005
+ import { LocaleRouter } from "./components/LocaleRouter";
1006
+ import type { FunctionalComponent } from "preact";
1007
+ // ... مكون AppContent الخاص بك (المُعرّف في الخطوة 5)
1008
+
1009
+ const App: FunctionalComponent = () => (
1010
+ <LocaleRouter>
1011
+ <AppContent />
1012
+ </LocaleRouter>
1013
+ );
1014
+
1015
+ export default App;
1016
+ ```
1017
+
1018
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
1019
+ import { LocaleRouter } from "./components/LocaleRouter";
1020
+ // ... مكون AppContent الخاص بك (المُعرّف في الخطوة 5)
1021
+
1022
+ const App = () => (
1023
+ <LocaleRouter>
1024
+ <AppContent />
1025
+ </LocaleRouter>
1026
+ );
1027
+
1028
+ export default App;
1029
+ ```
1030
+
1031
+ ```jsx fileName="src/app.cjsx" codeFormat="commonjs"
1032
+ const { LocaleRouter } = require("./components/LocaleRouter");
1033
+ // ... مكون AppContent الخاص بك (المُعرّف في الخطوة 5)
1034
+
1035
+ const App = () => (
1036
+ <LocaleRouter>
1037
+ <AppContent />
1038
+ </LocaleRouter>
1039
+ );
1040
+
1041
+ module.exports = App;
1042
+ ```
1043
+
1044
+ بالتوازي، يمكنك أيضًا استخدام `intLayerMiddlewarePlugin` لإضافة التوجيه من جانب الخادم إلى تطبيقك. سيكتشف هذا المكون الإضافي اللغة الحالية تلقائيًا بناءً على عنوان URL ويضبط ملف تعريف الارتباط المناسب للغة. إذا لم يتم تحديد لغة، سيحدد المكون الإضافي اللغة الأنسب بناءً على تفضيلات لغة المتصفح للمستخدم. إذا لم يتم اكتشاف لغة، فسيعيد التوجيه إلى اللغة الافتراضية.
1045
+
1046
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1047
+ import { defineConfig } from "vite";
1048
+ import preact from "@preact/preset-vite";
1049
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
1050
+
1051
+ // https://vitejs.dev/config/
1052
+ export default defineConfig({
1053
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1054
+ });
1055
+ ```
1056
+
1057
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1058
+ import { defineConfig } from "vite";
1059
+ import preact from "@preact/preset-vite";
1060
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
1061
+
1062
+ // https://vitejs.dev/config/
1063
+ export default defineConfig({
1064
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1065
+ });
1066
+ ```
1067
+
1068
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1069
+ const { defineConfig } = require("vite");
1070
+ const preact = require("@preact/preset-vite");
1071
+ const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
1072
+
1073
+ // https://vitejs.dev/config/
1074
+ module.exports = defineConfig({
1075
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1076
+ });
1077
+ ```
1078
+
1079
+ ### (اختياري) الخطوة 8: تغيير عنوان URL عند تغيير اللغة
1080
+
1081
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
1082
+ import { useLocation, route } from "preact-iso";
1083
+ import {
1084
+ Locales,
1085
+ getHTMLTextDir,
1086
+ getLocaleName,
1087
+ getLocalizedUrl,
1088
+ } from "intlayer";
1089
+ import { useLocale } from "preact-intlayer";
1090
+ import type { FunctionalComponent } from "preact";
1091
+
1092
+ const LocaleSwitcher: FunctionalComponent = () => {
1093
+ const location = useLocation();
1094
+ const { locale, availableLocales, setLocale } = useLocale({
1095
+ onLocaleChange: (newLocale) => {
1096
+ const currentFullPath = location.url; // توفر مكتبة preact-iso العنوان الكامل
1097
+ // إنشاء عنوان URL مع اللغة المحلية المحدثة
1098
+ // مثال: /es/about?foo=bar
1099
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1100
+
1101
+ // تحديث مسار عنوان URL
1102
+ route(pathWithLocale, true); // true للاستبدال
1103
+ },
1104
+ });
1105
+
1106
+ return (
1107
+ <div>
1108
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1109
+ <div id="localePopover" popover="auto">
1110
+ {availableLocales.map((localeItem) => (
1111
+ <a
1112
+ href={getLocalizedUrl(location.url, localeItem)}
1113
+ hreflang={localeItem}
1114
+ aria-current={locale === localeItem ? "page" : undefined}
1115
+ onClick={(e) => {
1116
+ e.preventDefault();
1117
+ setLocale(localeItem);
1118
+ // سيتم التعامل مع التنقل البرمجي بعد تعيين اللغة المحلية بواسطة onLocaleChange
1119
+ }}
1120
+ key={localeItem}
1121
+ >
1122
+ <span>
1123
+ {/* اللغة المحلية - مثال: FR */}
1124
+ {localeItem}
1125
+ </span>
1126
+ <span>
1127
+ {/* اللغة بلغتها الخاصة - مثال: Français */}
1128
+ {getLocaleName(localeItem, localeItem)}
1129
+ </span>
1130
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1131
+ {/* اللغة باللغة الحالية - مثال: Francés مع تعيين اللغة الحالية إلى Locales.SPANISH */}
1132
+ {getLocaleName(localeItem, locale)}
1133
+ </span>
1134
+ <span dir="ltr" lang={Locales.ENGLISH}>
1135
+ {/* اللغة بالإنجليزية - مثال: French */}
1136
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1137
+ </span>
1138
+ </a>
1139
+ ))}
1140
+ </div>
1141
+ </div>
1142
+ );
1143
+ };
1144
+
1145
+ export default LocaleSwitcher;
1146
+ ```
1147
+
1148
+ ```jsx fileName="src/components/LocaleSwitcher.jsx" codeFormat="esm"
1149
+ import { useLocation, route } from "preact-iso";
1150
+ import {
1151
+ Locales,
1152
+ getHTMLTextDir,
1153
+ getLocaleName,
1154
+ getLocalizedUrl,
1155
+ } from "intlayer";
1156
+ import { useLocale } from "preact-intlayer";
1157
+ import { h } from "preact"; // لاستخدام JSX
1158
+
1159
+ const LocaleSwitcher = () => {
1160
+ const location = useLocation();
1161
+ const { locale, availableLocales, setLocale } = useLocale({
1162
+ onLocaleChange: (newLocale) => {
1163
+ const currentFullPath = location.url;
1164
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1165
+ route(pathWithLocale, true);
1166
+ },
1167
+ });
1168
+
1169
+ return (
1170
+ <div>
1171
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1172
+ <div id="localePopover" popover="auto">
1173
+ {availableLocales.map((localeItem) => (
1174
+ <a
1175
+ href={getLocalizedUrl(location.url, localeItem)}
1176
+ hreflang={localeItem}
1177
+ aria-current={locale === localeItem ? "page" : undefined}
1178
+ onClick={(e) => {
1179
+ e.preventDefault();
1180
+ setLocale(localeItem);
1181
+ }}
1182
+ key={localeItem}
1183
+ >
1184
+ <span>{localeItem}</span>
1185
+ <span>{getLocaleName(localeItem, localeItem)}</span>
1186
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1187
+ {getLocaleName(localeItem, locale)}
1188
+ </span>
1189
+ <span dir="ltr" lang={Locales.ENGLISH}>
1190
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1191
+ </span>
1192
+ </a>
1193
+ ))}
1194
+ </div>
1195
+ </div>
1196
+ );
1197
+ };
1198
+
1199
+ export default LocaleSwitcher;
1200
+ ```
1201
+
1202
+ ```jsx fileName="src/components/LocaleSwitcher.cjsx" codeFormat="commonjs"
1203
+ const { useLocation, route } = require("preact-iso");
1204
+ const {
1205
+ Locales,
1206
+ getHTMLTextDir,
1207
+ getLocaleName,
1208
+ getLocalizedUrl,
1209
+ } = require("intlayer");
1210
+ const { useLocale } = require("preact-intlayer");
1211
+ const { h } = require("preact"); // لاستخدام JSX
1212
+
1213
+ const LocaleSwitcher = () => {
1214
+ const location = useLocation();
1215
+ const { locale, availableLocales, setLocale } = useLocale({
1216
+ onLocaleChange: (newLocale) => {
1217
+ const currentFullPath = location.url;
1218
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1219
+ route(pathWithLocale, true);
1220
+ },
1221
+ });
1222
+
1223
+ return (
1224
+ <div>
1225
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1226
+ <div id="localePopover" popover="auto">
1227
+ {availableLocales.map((localeItem) => (
1228
+ <a
1229
+ href={getLocalizedUrl(location.url, localeItem)}
1230
+ hreflang={localeItem}
1231
+ aria-current={locale === localeItem ? "page" : undefined}
1232
+ onClick={(e) => {
1233
+ e.preventDefault();
1234
+ setLocale(localeItem);
1235
+ }}
1236
+ key={localeItem}
1237
+ >
1238
+ <span>{localeItem}</span>
1239
+ <span>{getLocaleName(localeItem, localeItem)}</span>
1240
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1241
+ {getLocaleName(localeItem, locale)}
1242
+ </span>
1243
+ <span dir="ltr" lang={Locales.ENGLISH}>
1244
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1245
+ </span>
1246
+ </a>
1247
+ ))}
1248
+ </div>
1249
+ </div>
1250
+ );
1251
+ };
1252
+
1253
+ module.exports = LocaleSwitcher;
1254
+ ```
1255
+
1256
+ > مراجع التوثيق:
1257
+
1258
+ > - [خطاف `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/react-intlayer/useLocale.md) (تشابه API مع `preact-intlayer`)
1259
+
1260
+ > - [خطاف `getLocaleName`](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/intlayer/getLocaleName.md)
1261
+
1262
+ > - [خطاف `getLocalizedUrl`](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/intlayer/getLocalizedUrl.md)
1263
+
1264
+ > - [خطاف `getHTMLTextDir`](https://github.com/aymericzip/intlayer/blob/main/docs/ar/packages/intlayer/getHTMLTextDir.md)
1265
+
1266
+ > - [خاصية `hreflang`](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=ar)
1267
+
1268
+ > - [خاصية `lang`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
1269
+
1270
+ > - [خاصية `dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1271
+
1272
+ > - [خاصية `aria-current`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1273
+
1274
+ > - [واجهة برمجة التطبيقات Popover](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
1275
+
1276
+ ---
1277
+
1278
+ ### (اختياري) الخطوة 9: تبديل سمات اللغة والاتجاه في HTML
1279
+
1280
+ عندما يدعم تطبيقك لغات متعددة، من المهم تحديث سمات `lang` و `dir` في علامة `<html>` لتتوافق مع اللغة المحلية الحالية. القيام بذلك يضمن:
1281
+
1282
+ - **إمكانية الوصول**: تعتمد قارئات الشاشة والتقنيات المساعدة على السمة `lang` الصحيحة لنطق المحتوى وتفسيره بدقة.
1283
+ - **عرض النصوص**: تضمن السمة `dir` (الاتجاه) عرض النصوص بالترتيب الصحيح (مثلًا، من اليسار إلى اليمين للإنجليزية، ومن اليمين إلى اليسار للعربية أو العبرية)، وهو أمر ضروري للقراءة.
1284
+ - **تحسين محركات البحث (SEO)**: تستخدم محركات البحث السمة `lang` لتحديد لغة صفحتك، مما يساعد على تقديم المحتوى المحلي المناسب في نتائج البحث.
1285
+
1286
+ من خلال تحديث هذه السمات ديناميكيًا عند تغيير اللغة المحلية، تضمن تجربة متسقة وسهلة الوصول للمستخدمين عبر جميع اللغات المدعومة.
1287
+
1288
+ #### تنفيذ الخطاف
1289
+
1290
+ قم بإنشاء خطاف مخصص لإدارة سمات HTML. يستمع الخطاف لتغييرات اللغة المحلية ويقوم بتحديث السمات وفقًا لذلك:
1291
+
1292
+ import { useEffect } from "preact/hooks";
1293
+ import { useLocale } from "preact-intlayer";
1294
+ import { getHTMLTextDir } from "intlayer";
1295
+
1296
+ /\*\*
1297
+
1298
+ - يقوم بتحديث سمات `lang` و `dir` لعنصر HTML <html> بناءً على اللغة الحالية.
1299
+ - - `lang`: يُعلم المتصفحات ومحركات البحث بلغة الصفحة.
1300
+ - - `dir`: يضمن ترتيب القراءة الصحيح (مثل 'ltr' للإنجليزية، 'rtl' للعربية).
1301
+ -
1302
+ - هذا التحديث الديناميكي ضروري لعرض النصوص بشكل صحيح، وتحسين الوصول، وتحسين محركات البحث.
1303
+ \*/
1304
+ export const useI18nHTMLAttributes = () => {
1305
+ const { locale } = useLocale();
1306
+
1307
+ useEffect(() => {
1308
+ // تحديث سمة اللغة إلى اللغة الحالية.
1309
+ document.documentElement.lang = locale;
1310
+
1311
+ // تعيين اتجاه النص بناءً على اللغة الحالية.
1312
+ document.documentElement.dir = getHTMLTextDir(locale);
1313
+
1314
+ }, [locale]);
1315
+ };
1316
+
1317
+ ````
1318
+
1319
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.jsx" codeFormat="esm"
1320
+ import { useEffect } from "preact/hooks";
1321
+ import { useLocale } from "preact-intlayer";
1322
+ import { getHTMLTextDir } from "intlayer";
1323
+
1324
+ /**
1325
+ * يقوم بتحديث سمات `lang` و `dir` لعنصر HTML <html> بناءً على اللغة الحالية.
1326
+ */
1327
+ export const useI18nHTMLAttributes = () => {
1328
+ const { locale } = useLocale();
1329
+
1330
+ useEffect(() => {
1331
+ document.documentElement.lang = locale;
1332
+ document.documentElement.dir = getHTMLTextDir(locale);
1333
+ }, [locale]);
1334
+ };
1335
+ ````
1336
+
1337
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.cjsx" codeFormat="commonjs"
1338
+ const { useEffect } = require("preact/hooks");
1339
+ const { useLocale } = require("preact-intlayer");
1340
+ const { getHTMLTextDir } = require("intlayer");
1341
+
1342
+ /**
1343
+ * يقوم بتحديث سمات `lang` و `dir` لعنصر HTML <html> بناءً على اللغة الحالية.
1344
+ */
1345
+ const useI18nHTMLAttributes = () => {
1346
+ const { locale } = useLocale();
1347
+
1348
+ useEffect(() => {
1349
+ document.documentElement.lang = locale;
1350
+ document.documentElement.dir = getHTMLTextDir(locale);
1351
+ }, [locale]);
1352
+ };
1353
+
1354
+ module.exports = { useI18nHTMLAttributes };
1355
+ ```
1356
+
1357
+ #### استخدام الخطاف في تطبيقك
1358
+
1359
+ قم بدمج الخطاف في المكون الرئيسي الخاص بك بحيث يتم تحديث سمات HTML كلما تغيرت اللغة:
1360
+
1361
+ ```tsx fileName="src/app.tsx" codeFormat="typescript"
1362
+ import type { FunctionalComponent } from "preact";
1363
+ import { IntlayerProvider } from "preact-intlayer"; // تم استيراد useIntlayer بالفعل إذا كان AppContent يحتاجه
1364
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1365
+ import "./app.css";
1366
+ // تعريف AppContent من الخطوة 5
1367
+
1368
+ const AppWithHooks: FunctionalComponent = () => {
1369
+ // تطبيق الخطاف لتحديث سمات lang و dir لعلامة <html> بناءً على اللغة.
1370
+ useI18nHTMLAttributes();
1371
+
1372
+ // بافتراض أن AppContent هو مكون العرض الرئيسي الخاص بك من الخطوة 5
1373
+ return <AppContent />;
1374
+ };
1375
+
1376
+ const App: FunctionalComponent = () => (
1377
+ <IntlayerProvider>
1378
+ <AppWithHooks />
1379
+ </IntlayerProvider>
1380
+ );
1381
+
1382
+ export default App;
1383
+ ```
1384
+
1385
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
1386
+ import { IntlayerProvider } from "preact-intlayer";
1387
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1388
+ import "./app.css";
1389
+ // تعريف AppContent من الخطوة 5
1390
+
1391
+ const AppWithHooks = () => {
1392
+ useI18nHTMLAttributes();
1393
+ return <AppContent />;
1394
+ };
1395
+
1396
+ const App = () => (
1397
+ <IntlayerProvider>
1398
+ <AppWithHooks />
1399
+ </IntlayerProvider>
1400
+ );
1401
+
1402
+ export default App;
1403
+ ```
1404
+
1405
+ ```jsx fileName="src/app.cjsx" codeFormat="commonjs"
1406
+ const { IntlayerProvider } = require("preact-intlayer");
1407
+ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1408
+ require("./app.css");
1409
+ // تعريف AppContent من الخطوة 5
1410
+
1411
+ const AppWithHooks = () => {
1412
+ useI18nHTMLAttributes();
1413
+ return <AppContent />;
1414
+ };
1415
+
1416
+ const App = () => (
1417
+ <IntlayerProvider>
1418
+ <AppWithHooks />
1419
+ </IntlayerProvider>
1420
+ );
1421
+
1422
+ module.exports = App;
1423
+ ```
1424
+
1425
+ من خلال تطبيق هذه التغييرات، سيقوم تطبيقك بـ:
1426
+
1427
+ - ضمان أن تعكس سمة **اللغة** (`lang`) اللغة الحالية بشكل صحيح، وهو أمر مهم لتحسين محركات البحث وسلوك المتصفح.
1428
+ - ضبط **اتجاه النص** (`dir`) وفقًا للغة، مما يعزز قابلية القراءة وسهولة الاستخدام للغات ذات أوامر قراءة مختلفة.
1429
+ - توفير تجربة أكثر **وصولاً**، حيث تعتمد تقنيات المساعدة على هذه السمات لتعمل بشكل مثالي.
1430
+
1431
+ ### (اختياري) الخطوة 10: إنشاء مكون رابط محلي
1432
+
1433
+ لضمان أن التنقل في تطبيقك يحترم اللغة الحالية، يمكنك إنشاء مكون `Link` مخصص. يقوم هذا المكون تلقائيًا بإضافة بادئة لعناوين URL الداخلية باللغة الحالية.
1434
+
1435
+ هذا السلوك مفيد لعدة أسباب:
1436
+
1437
+ - **تحسين محركات البحث وتجربة المستخدم**: تساعد عناوين URL المحلية محركات البحث على فهرسة الصفحات الخاصة باللغة بشكل صحيح وتوفر للمستخدمين محتوى بلغتهم المفضلة.
1438
+ - **الاتساق**: باستخدام رابط محلي في جميع أنحاء تطبيقك، تضمن أن التنقل يظل ضمن اللغة الحالية، مما يمنع التبديل غير المتوقع للغة.
1439
+ - **سهولة الصيانة**: تبسيط إدارة عناوين URL من خلال مركزية منطق الترجمة في مكون واحد.
1440
+
1441
+ بالنسبة لـ Preact مع `preact-iso`، يتم استخدام علامات `<a>` القياسية عادةً للتنقل، ويتولى `preact-iso` التعامل مع التوجيه. إذا كنت بحاجة إلى التنقل البرمجي عند النقر (على سبيل المثال، لتنفيذ إجراءات قبل التنقل)، يمكنك استخدام وظيفة `route` من `useLocation`. إليك كيفية إنشاء مكون رابط مخصص يقوم بتوطين عناوين URL:
1442
+
1443
+ ```tsx fileName="src/components/LocalizedLink.tsx" codeFormat="typescript"
1444
+ import { getLocalizedUrl } from "intlayer";
1445
+ import { useLocale, useLocation, route } from "preact-intlayer"; // بافتراض أن useLocation و route يمكن أن تكون من preact-iso عبر preact-intlayer إذا تم إعادة تصديرها، أو الاستيراد مباشرة
1446
+ // إذا لم يتم إعادة التصدير، قم بالاستيراد مباشرة: import { useLocation, route } from "preact-iso";
1447
+ import type { JSX } from "preact"; // للسمات HTML
1448
+ import { forwardRef } from "preact/compat"; // لإعادة توجيه المراجع
1449
+
1450
+ export interface LocalizedLinkProps
1451
+ extends JSX.HTMLAttributes<HTMLAnchorElement> {
1452
+ href: string;
1453
+ replace?: boolean; // اختياري: لاستبدال حالة التاريخ
1454
+ }
1455
+
1456
+ /**
1457
+ * وظيفة مساعدة للتحقق مما إذا كان عنوان URL معين خارجيًا.
1458
+ * إذا بدأ عنوان URL بـ http:// أو https://، فإنه يعتبر خارجيًا.
1459
+ */
1460
+ export const checkIsExternalLink = (href?: string): boolean =>
1461
+ /^https?:\/\//.test(href ?? "");
1462
+
1463
+ /**
1464
+ * مكون رابط مخصص يتكيف مع سمة href بناءً على اللغة الحالية.
1465
+ * بالنسبة للروابط الداخلية، يستخدم `getLocalizedUrl` لإضافة بادئة للعنوان باللغة (مثل /ar/about).
1466
+ * يضمن ذلك أن يظل التنقل ضمن نفس سياق اللغة.
1467
+ * يستخدم علامة <a> القياسية ولكنه يمكن أن يؤدي إلى التنقل على جانب العميل باستخدام وظيفة `route` الخاصة بـ preact-iso.
1468
+ */
1469
+ export const LocalizedLink = forwardRef<HTMLAnchorElement, LocalizedLinkProps>(
1470
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1471
+ const { locale } = useLocale();
1472
+ const location = useLocation(); // من preact-iso
1473
+ const isExternalLink = checkIsExternalLink(href);
1474
+
1475
+ const hrefI18n =
1476
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1477
+
1478
+ const handleClick = (event: JSX.TargetedMouseEvent<HTMLAnchorElement>) => {
1479
+ if (onClick) {
1480
+ onClick(event);
1481
+ }
1482
+ if (
1483
+ !isExternalLink &&
1484
+ href && // تأكد من أن href محدد
1485
+ event.button === 0 && // النقر الأيسر
1486
+ !event.metaKey &&
1487
+ !event.ctrlKey &&
1488
+ !event.shiftKey &&
1489
+ !event.altKey && // تحقق من المعدلات القياسية
1490
+ !props.target // عدم استهداف علامة تبويب/نافذة جديدة
1491
+ ) {
1492
+ event.preventDefault();
1493
+ if (location.url !== hrefI18n) {
1494
+ // التنقل فقط إذا كان عنوان URL مختلفًا
1495
+ route(hrefI18n, replace); // استخدم وظيفة route الخاصة بـ preact-iso
1496
+ }
1497
+ }
1498
+ };
1499
+
1500
+ return (
1501
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1502
+ {children}
1503
+ </a>
1504
+ );
1505
+ }
1506
+ );
1507
+ ```
1508
+
1509
+ ```jsx fileName="src/components/LocalizedLink.jsx" codeFormat="esm"
1510
+ import { getLocalizedUrl } from "intlayer";
1511
+ import { useLocale } from "preact-intlayer";
1512
+
1513
+ import { useLocation, route } from "preact-iso"; // استيراد من preact-iso
1514
+ import { forwardRef } from "preact/compat";
1515
+ import { h } from "preact"; // لاستخدام JSX
1516
+
1517
+ export const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1518
+
1519
+ export const LocalizedLink = forwardRef(
1520
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1521
+ const { locale } = useLocale();
1522
+ const location = useLocation();
1523
+ const isExternalLink = checkIsExternalLink(href);
1524
+
1525
+ const hrefI18n =
1526
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1527
+
1528
+ const handleClick = (event) => {
1529
+ if (onClick) {
1530
+ onClick(event);
1531
+ }
1532
+ if (
1533
+ !isExternalLink &&
1534
+ href &&
1535
+ event.button === 0 &&
1536
+ !event.metaKey &&
1537
+ !event.ctrlKey &&
1538
+ !event.shiftKey &&
1539
+ !event.altKey &&
1540
+ !props.target
1541
+ ) {
1542
+ event.preventDefault();
1543
+ if (location.url !== hrefI18n) {
1544
+ route(hrefI18n, replace);
1545
+ }
1546
+ }
1547
+ };
1548
+
1549
+ return (
1550
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1551
+ {children}
1552
+ </a>
1553
+ );
1554
+ }
1555
+ );
1556
+ ```
1557
+
1558
+ ```jsx fileName="src/components/LocalizedLink.cjsx" codeFormat="commonjs"
1559
+ const { getLocalizedUrl } = require("intlayer");
1560
+ const { useLocale } = require("preact-intlayer");
1561
+ const { useLocation, route } = require("preact-iso"); // استيراد من preact-iso
1562
+ const { forwardRef } = require("preact/compat");
1563
+ const { h } = require("preact"); // لاستخدام JSX
1564
+
1565
+ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1566
+
1567
+ const LocalizedLink = forwardRef(
1568
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1569
+ const { locale } = useLocale();
1570
+ const location = useLocation();
1571
+ const isExternalLink = checkIsExternalLink(href);
1572
+
1573
+ const hrefI18n =
1574
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1575
+
1576
+ const handleClick = (event) => {
1577
+ if (onClick) {
1578
+ onClick(event);
1579
+ }
1580
+ if (
1581
+ !isExternalLink &&
1582
+ href &&
1583
+ event.button === 0 &&
1584
+ !event.metaKey &&
1585
+ !event.ctrlKey &&
1586
+ !event.shiftKey &&
1587
+ !event.altKey &&
1588
+ !props.target
1589
+ ) {
1590
+ event.preventDefault();
1591
+ if (location.url !== hrefI18n) {
1592
+ route(hrefI18n, replace);
1593
+ }
1594
+ }
1595
+ };
1596
+
1597
+ return (
1598
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1599
+ {children}
1600
+ </a>
1601
+ );
1602
+ }
1603
+ );
1604
+
1605
+ module.exports = { LocalizedLink, checkIsExternalLink };
1606
+ ```
1607
+
1608
+ #### كيف يعمل
1609
+
1610
+ - **كشف الروابط الخارجية**:
1611
+ تقوم وظيفة المساعدة `checkIsExternalLink` بتحديد ما إذا كان الرابط خارجيًا. يتم ترك الروابط الخارجية دون تغيير.
1612
+ - **استرجاع اللغة الحالية**:
1613
+ يوفر الخطاف `useLocale` اللغة الحالية.
1614
+ - **توطين الرابط**:
1615
+ بالنسبة للروابط الداخلية، يضيف `getLocalizedUrl` بادئة الرابط باللغة الحالية.
1616
+ - **التنقل على جانب العميل**:
1617
+ تتحقق وظيفة `handleClick` مما إذا كان الرابط داخليًا وما إذا كان يجب منع التنقل القياسي. إذا كان الأمر كذلك، فإنها تستخدم وظيفة `route` الخاصة بـ `preact-iso` (المستمدة عبر `useLocation` أو المستوردة مباشرة) لتنفيذ التنقل على جانب العميل. يوفر هذا سلوكًا يشبه تطبيقات SPA دون إعادة تحميل الصفحة بالكامل.
1618
+ - **إرجاع الرابط**:
1619
+ تقوم المكونة بإرجاع عنصر `<a>` مع الرابط الموطّن ومعالج النقر المخصص.
1620
+
1621
+ ### إعداد TypeScript
1622
+
1623
+ يستخدم Intlayer توسيع الوحدات للحصول على فوائد TypeScript وجعل قاعدة الكود الخاصة بك أقوى.
1624
+
1625
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1626
+
1627
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1628
+
1629
+ تأكد من أن إعدادات TypeScript الخاصة بك تتضمن الأنواع التي يتم إنشاؤها تلقائيًا.
1630
+
1631
+ ```json5 fileName="tsconfig.json"
1632
+ {
1633
+ // ... إعدادات TypeScript الحالية
1634
+ "compilerOptions": {
1635
+ // ...
1636
+ "jsx": "react-jsx",
1637
+ "jsxImportSource": "preact", // موصى به لـ Preact 10+
1638
+ // ...
1639
+ },
1640
+ "include": [
1641
+ // ... إعدادات TypeScript الحالية
1642
+ ".intlayer/**/*.ts", // تضمين الأنواع التي يتم إنشاؤها تلقائيًا
1643
+ ],
1644
+ }
1645
+ ```
1646
+
1647
+ > تأكد من أن `tsconfig.json` الخاص بك معد لـ Preact، خاصةً `jsx` و `jsxImportSource` أو `jsxFactory`/`jsxFragmentFactory` للإصدارات الأقدم من Preact إذا لم تكن تستخدم الإعدادات الافتراضية لـ `preset-vite`.
1648
+
1649
+ ### إعداد Git
1650
+
1651
+ يوصى بتجاهل الملفات التي يتم إنشاؤها بواسطة Intlayer. يتيح لك ذلك تجنب إضافتها إلى مستودع Git الخاص بك.
1652
+
1653
+ للقيام بذلك، يمكنك إضافة التعليمات التالية إلى ملف `.gitignore` الخاص بك:
1654
+
1655
+ ```plaintext
1656
+ # تجاهل الملفات التي يتم إنشاؤها بواسطة Intlayer
1657
+ .intlayer
1658
+ ```
1659
+
1660
+ ### إضافة VS Code
1661
+
1662
+ لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **إضافة Intlayer الرسمية لـ VS Code**.
1663
+
1664
+ [التثبيت من سوق VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1665
+
1666
+ توفر هذه الإضافة:
1667
+
1668
+ - **الإكمال التلقائي** لمفاتيح الترجمة.
1669
+ - **كشف الأخطاء في الوقت الفعلي** للترجمات المفقودة.
1670
+ - **معاينات داخلية** للمحتوى المترجم.
1671
+ - **إجراءات سريعة** لإنشاء الترجمات وتحديثها بسهولة.
1672
+
1673
+ لمزيد من التفاصيل حول كيفية استخدام الإضافة، راجع [وثائق إضافة Intlayer لـ VS Code](https://intlayer.org/doc/vs-code-extension).
1674
+
1675
+ ---
1676
+
1677
+ ### الذهاب إلى أبعد من ذلك
1678
+
1679
+ ## للمزيد، يمكنك تنفيذ [المحرر المرئي](https://github.com/aymericzip/intlayer/blob/main/docs/ar/intlayer_visual_editor.md) أو نقل المحتوى الخاص بك باستخدام [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ar/intlayer_CMS.md).