@intlayer/docs 5.5.11 → 5.6.0

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 (494) hide show
  1. package/blog/ar/intlayer_with_next-intl.md +0 -1
  2. package/blog/ar/list_i18n_technologies/CMS/wordpress.md +1 -1
  3. package/blog/ar/list_i18n_technologies/frameworks/angular.md +1 -1
  4. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +1 -1
  5. package/blog/ar/list_i18n_technologies/frameworks/react-native.md +1 -1
  6. package/blog/ar/list_i18n_technologies/frameworks/react.md +1 -1
  7. package/blog/ar/list_i18n_technologies/frameworks/svelte.md +1 -1
  8. package/blog/ar/list_i18n_technologies/frameworks/vue.md +1 -1
  9. package/blog/ar/what_is_internationalization.md +2 -2
  10. package/blog/de/intlayer_with_next-intl.md +0 -1
  11. package/blog/de/list_i18n_technologies/CMS/wordpress.md +1 -1
  12. package/blog/de/list_i18n_technologies/frameworks/angular.md +1 -1
  13. package/blog/de/list_i18n_technologies/frameworks/flutter.md +1 -1
  14. package/blog/de/list_i18n_technologies/frameworks/react-native.md +1 -1
  15. package/blog/de/list_i18n_technologies/frameworks/react.md +1 -1
  16. package/blog/de/list_i18n_technologies/frameworks/svelte.md +1 -1
  17. package/blog/de/list_i18n_technologies/frameworks/vue.md +1 -1
  18. package/blog/de/what_is_internationalization.md +2 -2
  19. package/blog/en/intlayer_with_next-intl.md +0 -1
  20. package/blog/en/list_i18n_technologies/CMS/wordpress.md +1 -1
  21. package/blog/en/list_i18n_technologies/frameworks/angular.md +1 -1
  22. package/blog/en/list_i18n_technologies/frameworks/flutter.md +1 -1
  23. package/blog/en/list_i18n_technologies/frameworks/react-native.md +1 -1
  24. package/blog/en/list_i18n_technologies/frameworks/react.md +1 -1
  25. package/blog/en/list_i18n_technologies/frameworks/svelte.md +1 -1
  26. package/blog/en/list_i18n_technologies/frameworks/vue.md +1 -1
  27. package/blog/en/what_is_internationalization.md +2 -2
  28. package/blog/en-GB/intlayer_with_next-intl.md +0 -1
  29. package/blog/en-GB/list_i18n_technologies/CMS/wordpress.md +1 -1
  30. package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +1 -1
  31. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +1 -1
  32. package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +1 -1
  33. package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +1 -1
  34. package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +1 -1
  35. package/blog/en-GB/what_is_internationalization.md +2 -2
  36. package/blog/es/intlayer_with_next-intl.md +0 -1
  37. package/blog/es/list_i18n_technologies/CMS/wordpress.md +1 -1
  38. package/blog/es/list_i18n_technologies/frameworks/angular.md +1 -1
  39. package/blog/es/list_i18n_technologies/frameworks/flutter.md +1 -1
  40. package/blog/es/list_i18n_technologies/frameworks/react-native.md +1 -1
  41. package/blog/es/list_i18n_technologies/frameworks/react.md +1 -1
  42. package/blog/es/list_i18n_technologies/frameworks/svelte.md +1 -1
  43. package/blog/es/list_i18n_technologies/frameworks/vue.md +1 -1
  44. package/blog/es/what_is_internationalization.md +2 -2
  45. package/blog/fr/intlayer_with_next-intl.md +0 -1
  46. package/blog/fr/list_i18n_technologies/CMS/wordpress.md +1 -1
  47. package/blog/fr/list_i18n_technologies/frameworks/angular.md +1 -1
  48. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +1 -1
  49. package/blog/fr/list_i18n_technologies/frameworks/react-native.md +1 -1
  50. package/blog/fr/list_i18n_technologies/frameworks/react.md +1 -1
  51. package/blog/fr/list_i18n_technologies/frameworks/svelte.md +1 -1
  52. package/blog/fr/list_i18n_technologies/frameworks/vue.md +1 -1
  53. package/blog/fr/what_is_internationalization.md +2 -2
  54. package/blog/hi/list_i18n_technologies/CMS/wordpress.md +1 -1
  55. package/blog/hi/list_i18n_technologies/frameworks/angular.md +1 -1
  56. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +1 -1
  57. package/blog/hi/list_i18n_technologies/frameworks/react-native.md +1 -1
  58. package/blog/hi/list_i18n_technologies/frameworks/react.md +1 -1
  59. package/blog/hi/list_i18n_technologies/frameworks/svelte.md +1 -1
  60. package/blog/hi/list_i18n_technologies/frameworks/vue.md +1 -1
  61. package/blog/hi/what_is_internationalization.md +2 -2
  62. package/blog/it/intlayer_with_next-intl.md +0 -1
  63. package/blog/it/list_i18n_technologies/CMS/wordpress.md +1 -1
  64. package/blog/it/list_i18n_technologies/frameworks/angular.md +1 -1
  65. package/blog/it/list_i18n_technologies/frameworks/react-native.md +1 -1
  66. package/blog/it/list_i18n_technologies/frameworks/react.md +1 -1
  67. package/blog/it/list_i18n_technologies/frameworks/svelte.md +1 -1
  68. package/blog/it/list_i18n_technologies/frameworks/vue.md +1 -1
  69. package/blog/it/what_is_internationalization.md +2 -2
  70. package/blog/ja/intlayer_with_next-intl.md +0 -1
  71. package/blog/ja/list_i18n_technologies/CMS/wordpress.md +1 -1
  72. package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
  73. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +1 -1
  74. package/blog/ja/list_i18n_technologies/frameworks/react-native.md +1 -1
  75. package/blog/ja/list_i18n_technologies/frameworks/react.md +1 -1
  76. package/blog/ja/list_i18n_technologies/frameworks/svelte.md +1 -1
  77. package/blog/ja/list_i18n_technologies/frameworks/vue.md +1 -1
  78. package/blog/ja/what_is_internationalization.md +2 -2
  79. package/blog/ko/intlayer_with_next-intl.md +0 -1
  80. package/blog/ko/list_i18n_technologies/CMS/wordpress.md +1 -1
  81. package/blog/ko/list_i18n_technologies/frameworks/angular.md +1 -1
  82. package/blog/ko/list_i18n_technologies/frameworks/react-native.md +1 -1
  83. package/blog/ko/list_i18n_technologies/frameworks/react.md +1 -1
  84. package/blog/ko/list_i18n_technologies/frameworks/vue.md +1 -1
  85. package/blog/pt/intlayer_with_next-intl.md +0 -1
  86. package/blog/pt/list_i18n_technologies/CMS/wordpress.md +1 -1
  87. package/blog/pt/list_i18n_technologies/frameworks/angular.md +1 -1
  88. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +1 -1
  89. package/blog/pt/list_i18n_technologies/frameworks/react-native.md +1 -1
  90. package/blog/pt/list_i18n_technologies/frameworks/react.md +1 -1
  91. package/blog/pt/list_i18n_technologies/frameworks/svelte.md +1 -1
  92. package/blog/pt/list_i18n_technologies/frameworks/vue.md +1 -1
  93. package/blog/pt/what_is_internationalization.md +2 -2
  94. package/blog/ru/intlayer_with_next-intl.md +0 -1
  95. package/blog/ru/list_i18n_technologies/CMS/wordpress.md +1 -1
  96. package/blog/ru/list_i18n_technologies/frameworks/angular.md +1 -1
  97. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +1 -1
  98. package/blog/ru/list_i18n_technologies/frameworks/react-native.md +1 -1
  99. package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
  100. package/blog/ru/list_i18n_technologies/frameworks/svelte.md +1 -1
  101. package/blog/ru/list_i18n_technologies/frameworks/vue.md +1 -1
  102. package/blog/ru/what_is_internationalization.md +2 -2
  103. package/blog/zh/intlayer_with_next-intl.md +0 -1
  104. package/blog/zh/list_i18n_technologies/CMS/wordpress.md +1 -1
  105. package/blog/zh/list_i18n_technologies/frameworks/angular.md +1 -1
  106. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +1 -1
  107. package/blog/zh/list_i18n_technologies/frameworks/react-native.md +1 -1
  108. package/blog/zh/list_i18n_technologies/frameworks/react.md +1 -1
  109. package/blog/zh/list_i18n_technologies/frameworks/svelte.md +1 -1
  110. package/blog/zh/list_i18n_technologies/frameworks/vue.md +1 -1
  111. package/blog/zh/what_is_internationalization.md +2 -2
  112. package/dist/cjs/blog.cjs +2 -2
  113. package/dist/cjs/blog.cjs.map +1 -1
  114. package/dist/cjs/common.cjs +17 -6
  115. package/dist/cjs/common.cjs.map +1 -1
  116. package/dist/cjs/doc.cjs +2 -2
  117. package/dist/cjs/doc.cjs.map +1 -1
  118. package/dist/cjs/frequentQuestions.cjs +2 -2
  119. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  120. package/dist/cjs/generated/blog.entry.cjs +1152 -252
  121. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  122. package/dist/cjs/generated/docs.entry.cjs +3778 -1124
  123. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  124. package/dist/cjs/generated/frequentQuestions.entry.cjs +794 -161
  125. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  126. package/dist/cjs/generated/legal.entry.cjs +32 -31
  127. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  128. package/dist/cjs/legal.cjs +2 -2
  129. package/dist/cjs/legal.cjs.map +1 -1
  130. package/dist/esm/blog.mjs +2 -2
  131. package/dist/esm/blog.mjs.map +1 -1
  132. package/dist/esm/common.mjs +17 -6
  133. package/dist/esm/common.mjs.map +1 -1
  134. package/dist/esm/doc.mjs +2 -2
  135. package/dist/esm/doc.mjs.map +1 -1
  136. package/dist/esm/frequentQuestions.mjs +2 -2
  137. package/dist/esm/frequentQuestions.mjs.map +1 -1
  138. package/dist/esm/generated/blog.entry.mjs +1151 -252
  139. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  140. package/dist/esm/generated/docs.entry.mjs +3777 -1124
  141. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  142. package/dist/esm/generated/frequentQuestions.entry.mjs +793 -161
  143. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  144. package/dist/esm/generated/legal.entry.mjs +31 -31
  145. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  146. package/dist/esm/legal.mjs +2 -2
  147. package/dist/esm/legal.mjs.map +1 -1
  148. package/dist/types/blog.d.ts +2 -2
  149. package/dist/types/blog.d.ts.map +1 -1
  150. package/dist/types/common.d.ts +5 -2
  151. package/dist/types/common.d.ts.map +1 -1
  152. package/dist/types/doc.d.ts +2 -2
  153. package/dist/types/doc.d.ts.map +1 -1
  154. package/dist/types/frequentQuestions.d.ts +2 -2
  155. package/dist/types/frequentQuestions.d.ts.map +1 -1
  156. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  157. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  158. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  159. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  160. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  161. package/dist/types/legal.d.ts +2 -2
  162. package/dist/types/legal.d.ts.map +1 -1
  163. package/docs/ar/intlayer_CMS.md +1 -0
  164. package/docs/ar/intlayer_cli.md +292 -177
  165. package/docs/ar/intlayer_visual_editor.md +1 -0
  166. package/docs/ar/intlayer_with_angular.md +1 -0
  167. package/docs/ar/intlayer_with_create_react_app.md +1 -0
  168. package/docs/ar/intlayer_with_lynx+react.md +1 -0
  169. package/docs/ar/intlayer_with_nextjs_14.md +1 -0
  170. package/docs/ar/intlayer_with_nextjs_15.md +3 -1
  171. package/docs/ar/intlayer_with_nuxt.md +1 -0
  172. package/docs/ar/intlayer_with_react_native+expo.md +1 -0
  173. package/docs/ar/intlayer_with_vite+preact.md +4 -3
  174. package/docs/ar/intlayer_with_vite+react.md +108 -112
  175. package/docs/ar/intlayer_with_vite+solid.md +4 -3
  176. package/docs/ar/intlayer_with_vite+svelte.md +4 -3
  177. package/docs/ar/intlayer_with_vite+vue.md +5 -4
  178. package/docs/ar/mcp_server.md +126 -92
  179. package/docs/de/intlayer_CMS.md +1 -0
  180. package/docs/de/intlayer_cli.md +291 -171
  181. package/docs/de/intlayer_visual_editor.md +1 -0
  182. package/docs/de/intlayer_with_angular.md +1 -0
  183. package/docs/de/intlayer_with_create_react_app.md +1 -0
  184. package/docs/de/intlayer_with_lynx+react.md +1 -0
  185. package/docs/de/intlayer_with_nextjs_14.md +1 -0
  186. package/docs/de/intlayer_with_nextjs_15.md +3 -1
  187. package/docs/de/intlayer_with_nuxt.md +1 -0
  188. package/docs/de/intlayer_with_react_native+expo.md +1 -0
  189. package/docs/de/intlayer_with_vite+preact.md +4 -3
  190. package/docs/de/intlayer_with_vite+react.md +128 -146
  191. package/docs/de/intlayer_with_vite+solid.md +4 -3
  192. package/docs/de/intlayer_with_vite+svelte.md +4 -3
  193. package/docs/de/intlayer_with_vite+vue.md +5 -4
  194. package/docs/de/mcp_server.md +116 -112
  195. package/docs/en/CI_CD.md +3 -1
  196. package/docs/en/autoFill.md +3 -1
  197. package/docs/en/configuration.md +7 -3
  198. package/docs/en/dictionary/condition.md +3 -1
  199. package/docs/en/dictionary/content_extention_customization.md +3 -1
  200. package/docs/en/dictionary/enumeration.md +3 -1
  201. package/docs/en/dictionary/file.md +3 -1
  202. package/docs/en/dictionary/function_fetching.md +3 -1
  203. package/docs/en/dictionary/get_started.md +3 -1
  204. package/docs/en/dictionary/insertion.md +3 -1
  205. package/docs/en/dictionary/markdown.md +3 -1
  206. package/docs/en/dictionary/nesting.md +3 -1
  207. package/docs/en/dictionary/translation.md +3 -1
  208. package/docs/en/how_works_intlayer.md +3 -1
  209. package/docs/en/index.md +3 -1
  210. package/docs/en/interest_of_intlayer.md +3 -1
  211. package/docs/en/intlayer_CMS.md +4 -1
  212. package/docs/en/intlayer_cli.md +246 -136
  213. package/docs/en/intlayer_visual_editor.md +4 -1
  214. package/docs/en/intlayer_with_angular.md +4 -1
  215. package/docs/en/intlayer_with_create_react_app.md +4 -1
  216. package/docs/en/intlayer_with_express.md +3 -1
  217. package/docs/en/intlayer_with_lynx+react.md +4 -1
  218. package/docs/en/intlayer_with_nextjs_14.md +7 -1
  219. package/docs/en/intlayer_with_nextjs_15.md +8 -2
  220. package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
  221. package/docs/en/intlayer_with_nuxt.md +4 -1
  222. package/docs/en/intlayer_with_react_native+expo.md +4 -1
  223. package/docs/en/intlayer_with_vite+preact.md +9 -4
  224. package/docs/en/intlayer_with_vite+react.md +18 -10
  225. package/docs/en/intlayer_with_vite+solid.md +7 -4
  226. package/docs/en/intlayer_with_vite+svelte.md +7 -4
  227. package/docs/en/intlayer_with_vite+vue.md +10 -5
  228. package/docs/en/introduction.md +3 -1
  229. package/docs/en/mcp_server.md +114 -80
  230. package/docs/en/packages/@intlayer/api/index.md +3 -1
  231. package/docs/en/packages/@intlayer/chokidar/index.md +3 -1
  232. package/docs/en/packages/@intlayer/cli/index.md +3 -1
  233. package/docs/en/packages/@intlayer/config/index.md +3 -1
  234. package/docs/en/packages/@intlayer/core/index.md +3 -1
  235. package/docs/en/packages/@intlayer/design-system/index.md +3 -1
  236. package/docs/en/packages/@intlayer/dictionary-entry/index.md +3 -1
  237. package/docs/en/packages/@intlayer/editor/index.md +3 -1
  238. package/docs/en/packages/@intlayer/editor-react/index.md +3 -1
  239. package/docs/en/packages/@intlayer/webpack/index.md +3 -1
  240. package/docs/en/packages/angular-intlayer/index.md +3 -1
  241. package/docs/en/packages/express-intlayer/index.md +3 -1
  242. package/docs/en/packages/express-intlayer/t.md +3 -1
  243. package/docs/en/packages/intlayer/getConfiguration.md +3 -1
  244. package/docs/en/packages/intlayer/getEnumeration.md +3 -1
  245. package/docs/en/packages/intlayer/getHTMLTextDir.md +3 -1
  246. package/docs/en/packages/intlayer/getLocaleLang.md +3 -1
  247. package/docs/en/packages/intlayer/getLocaleName.md +3 -1
  248. package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -1
  249. package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -1
  250. package/docs/en/packages/intlayer/getPathWithoutLocale.md +3 -1
  251. package/docs/en/packages/intlayer/getTranslation.md +3 -1
  252. package/docs/en/packages/intlayer/getTranslationContent.md +3 -1
  253. package/docs/en/packages/intlayer/index.md +3 -1
  254. package/docs/en/packages/intlayer-cli/index.md +3 -1
  255. package/docs/en/packages/intlayer-editor/index.md +3 -1
  256. package/docs/en/packages/lynx-intlayer/index.md +3 -1
  257. package/docs/en/packages/next-intlayer/index.md +3 -1
  258. package/docs/en/packages/next-intlayer/t.md +3 -1
  259. package/docs/en/packages/next-intlayer/useDictionary.md +3 -1
  260. package/docs/en/packages/next-intlayer/useIntlayer.md +3 -1
  261. package/docs/en/packages/next-intlayer/useIntlayerAsync.md +3 -1
  262. package/docs/en/packages/next-intlayer/useLocale.md +3 -1
  263. package/docs/en/packages/nuxt-intlayer/index.md +3 -1
  264. package/docs/en/packages/preact-intlayer/index.md +3 -1
  265. package/docs/en/packages/react-intlayer/index.md +3 -1
  266. package/docs/en/packages/react-intlayer/t.md +3 -1
  267. package/docs/en/packages/react-intlayer/useDictionary.md +3 -1
  268. package/docs/en/packages/react-intlayer/useIntlayer.md +3 -1
  269. package/docs/en/packages/react-intlayer/useIntlayerAsync.md +3 -1
  270. package/docs/en/packages/react-intlayer/useLocale.md +3 -1
  271. package/docs/en/packages/react-native-intlayer/index.md +3 -1
  272. package/docs/en/packages/react-scripts-intlayer/index.md +3 -1
  273. package/docs/en/packages/solid-intlayer/index.md +3 -1
  274. package/docs/en/packages/svelte-intlayer/index.md +3 -1
  275. package/docs/en/packages/vite-intlayer/index.md +3 -1
  276. package/docs/en/packages/vue-intlayer/index.md +3 -1
  277. package/docs/en/per_locale_file.md +3 -1
  278. package/docs/en/roadmap.md +5 -2
  279. package/docs/en/vs_code_extension.md +3 -1
  280. package/docs/en-GB/intlayer_CMS.md +1 -0
  281. package/docs/en-GB/intlayer_cli.md +257 -138
  282. package/docs/en-GB/intlayer_visual_editor.md +1 -0
  283. package/docs/en-GB/intlayer_with_angular.md +1 -0
  284. package/docs/en-GB/intlayer_with_create_react_app.md +1 -0
  285. package/docs/en-GB/intlayer_with_lynx+react.md +1 -0
  286. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -0
  287. package/docs/en-GB/intlayer_with_nextjs_15.md +3 -1
  288. package/docs/en-GB/intlayer_with_nuxt.md +1 -0
  289. package/docs/en-GB/intlayer_with_react_native+expo.md +1 -0
  290. package/docs/en-GB/intlayer_with_vite+preact.md +4 -3
  291. package/docs/en-GB/intlayer_with_vite+react.md +71 -87
  292. package/docs/en-GB/intlayer_with_vite+solid.md +4 -3
  293. package/docs/en-GB/intlayer_with_vite+svelte.md +4 -3
  294. package/docs/en-GB/intlayer_with_vite+vue.md +5 -4
  295. package/docs/en-GB/mcp_server.md +116 -82
  296. package/docs/es/intlayer_CMS.md +1 -0
  297. package/docs/es/intlayer_cli.md +283 -164
  298. package/docs/es/intlayer_visual_editor.md +1 -0
  299. package/docs/es/intlayer_with_angular.md +1 -0
  300. package/docs/es/intlayer_with_create_react_app.md +1 -0
  301. package/docs/es/intlayer_with_lynx+react.md +1 -0
  302. package/docs/es/intlayer_with_nextjs_14.md +1 -0
  303. package/docs/es/intlayer_with_nextjs_15.md +3 -1
  304. package/docs/es/intlayer_with_nuxt.md +1 -0
  305. package/docs/es/intlayer_with_react_native+expo.md +1 -0
  306. package/docs/es/intlayer_with_vite+preact.md +4 -3
  307. package/docs/es/intlayer_with_vite+react.md +98 -98
  308. package/docs/es/intlayer_with_vite+solid.md +4 -3
  309. package/docs/es/intlayer_with_vite+svelte.md +4 -3
  310. package/docs/es/intlayer_with_vite+vue.md +5 -4
  311. package/docs/es/mcp_server.md +120 -86
  312. package/docs/es/vs_code_extension.md +1 -0
  313. package/docs/fr/intlayer_CMS.md +1 -0
  314. package/docs/fr/intlayer_cli.md +280 -184
  315. package/docs/fr/intlayer_visual_editor.md +1 -0
  316. package/docs/fr/intlayer_with_angular.md +1 -0
  317. package/docs/fr/intlayer_with_create_react_app.md +1 -0
  318. package/docs/fr/intlayer_with_lynx+react.md +1 -0
  319. package/docs/fr/intlayer_with_nextjs_14.md +1 -0
  320. package/docs/fr/intlayer_with_nextjs_15.md +3 -1
  321. package/docs/fr/intlayer_with_nuxt.md +1 -0
  322. package/docs/fr/intlayer_with_react_native+expo.md +1 -0
  323. package/docs/fr/intlayer_with_vite+preact.md +5 -4
  324. package/docs/fr/intlayer_with_vite+react.md +80 -69
  325. package/docs/fr/intlayer_with_vite+solid.md +4 -3
  326. package/docs/fr/intlayer_with_vite+svelte.md +4 -3
  327. package/docs/fr/intlayer_with_vite+vue.md +5 -4
  328. package/docs/fr/mcp_server.md +121 -87
  329. package/docs/hi/intlayer_CMS.md +1 -0
  330. package/docs/hi/intlayer_cli.md +295 -174
  331. package/docs/hi/intlayer_visual_editor.md +1 -0
  332. package/docs/hi/intlayer_with_angular.md +1 -0
  333. package/docs/hi/intlayer_with_create_react_app.md +1 -0
  334. package/docs/hi/intlayer_with_lynx+react.md +1 -0
  335. package/docs/hi/intlayer_with_nextjs_14.md +1 -0
  336. package/docs/hi/intlayer_with_nextjs_15.md +3 -1
  337. package/docs/hi/intlayer_with_nuxt.md +1 -0
  338. package/docs/hi/intlayer_with_react_native+expo.md +1 -0
  339. package/docs/hi/intlayer_with_vite+preact.md +4 -3
  340. package/docs/hi/intlayer_with_vite+react.md +114 -111
  341. package/docs/hi/intlayer_with_vite+solid.md +4 -3
  342. package/docs/hi/intlayer_with_vite+svelte.md +4 -3
  343. package/docs/hi/intlayer_with_vite+vue.md +5 -4
  344. package/docs/hi/mcp_server.md +118 -84
  345. package/docs/it/intlayer_CMS.md +1 -0
  346. package/docs/it/intlayer_cli.md +282 -167
  347. package/docs/it/intlayer_visual_editor.md +1 -0
  348. package/docs/it/intlayer_with_angular.md +1 -0
  349. package/docs/it/intlayer_with_create_react_app.md +1 -0
  350. package/docs/it/intlayer_with_lynx+react.md +1 -0
  351. package/docs/it/intlayer_with_nextjs_14.md +1 -0
  352. package/docs/it/intlayer_with_nextjs_15.md +3 -1
  353. package/docs/it/intlayer_with_nuxt.md +1 -0
  354. package/docs/it/intlayer_with_react_native+expo.md +1 -0
  355. package/docs/it/intlayer_with_vite+preact.md +4 -3
  356. package/docs/it/intlayer_with_vite+react.md +163 -116
  357. package/docs/it/intlayer_with_vite+solid.md +4 -3
  358. package/docs/it/intlayer_with_vite+svelte.md +4 -3
  359. package/docs/it/intlayer_with_vite+vue.md +4 -4
  360. package/docs/it/mcp_server.md +120 -86
  361. package/docs/ja/intlayer_CMS.md +1 -0
  362. package/docs/ja/intlayer_cli.md +285 -168
  363. package/docs/ja/intlayer_visual_editor.md +1 -0
  364. package/docs/ja/intlayer_with_angular.md +1 -0
  365. package/docs/ja/intlayer_with_create_react_app.md +1 -0
  366. package/docs/ja/intlayer_with_lynx+react.md +1 -0
  367. package/docs/ja/intlayer_with_nextjs_14.md +1 -0
  368. package/docs/ja/intlayer_with_nextjs_15.md +3 -1
  369. package/docs/ja/intlayer_with_nuxt.md +1 -0
  370. package/docs/ja/intlayer_with_react_native+expo.md +1 -0
  371. package/docs/ja/intlayer_with_vite+preact.md +4 -3
  372. package/docs/ja/intlayer_with_vite+react.md +160 -222
  373. package/docs/ja/intlayer_with_vite+solid.md +4 -3
  374. package/docs/ja/intlayer_with_vite+svelte.md +4 -3
  375. package/docs/ja/intlayer_with_vite+vue.md +5 -4
  376. package/docs/ja/mcp_server.md +121 -85
  377. package/docs/ko/intlayer_CMS.md +1 -0
  378. package/docs/ko/intlayer_cli.md +291 -175
  379. package/docs/ko/intlayer_visual_editor.md +1 -0
  380. package/docs/ko/intlayer_with_angular.md +1 -0
  381. package/docs/ko/intlayer_with_create_react_app.md +1 -0
  382. package/docs/ko/intlayer_with_lynx+react.md +1 -0
  383. package/docs/ko/intlayer_with_nextjs_14.md +1 -0
  384. package/docs/ko/intlayer_with_nextjs_15.md +3 -1
  385. package/docs/ko/intlayer_with_nuxt.md +1 -0
  386. package/docs/ko/intlayer_with_react_native+expo.md +1 -0
  387. package/docs/ko/intlayer_with_vite+preact.md +4 -3
  388. package/docs/ko/intlayer_with_vite+react.md +123 -152
  389. package/docs/ko/intlayer_with_vite+solid.md +4 -3
  390. package/docs/ko/intlayer_with_vite+svelte.md +4 -3
  391. package/docs/ko/intlayer_with_vite+vue.md +5 -4
  392. package/docs/ko/mcp_server.md +117 -83
  393. package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
  394. package/docs/pt/intlayer_CMS.md +1 -0
  395. package/docs/pt/intlayer_cli.md +274 -154
  396. package/docs/pt/intlayer_visual_editor.md +1 -0
  397. package/docs/pt/intlayer_with_angular.md +1 -0
  398. package/docs/pt/intlayer_with_create_react_app.md +1 -0
  399. package/docs/pt/intlayer_with_lynx+react.md +1 -0
  400. package/docs/pt/intlayer_with_nextjs_14.md +1 -0
  401. package/docs/pt/intlayer_with_nextjs_15.md +3 -1
  402. package/docs/pt/intlayer_with_nuxt.md +1 -0
  403. package/docs/pt/intlayer_with_react_native+expo.md +1 -0
  404. package/docs/pt/intlayer_with_vite+preact.md +4 -3
  405. package/docs/pt/intlayer_with_vite+react.md +117 -136
  406. package/docs/pt/intlayer_with_vite+solid.md +4 -3
  407. package/docs/pt/intlayer_with_vite+svelte.md +4 -3
  408. package/docs/pt/intlayer_with_vite+vue.md +4 -4
  409. package/docs/pt/mcp_server.md +121 -87
  410. package/docs/ru/intlayer_CMS.md +1 -0
  411. package/docs/ru/intlayer_cli.md +287 -170
  412. package/docs/ru/intlayer_visual_editor.md +1 -0
  413. package/docs/ru/intlayer_with_angular.md +1 -0
  414. package/docs/ru/intlayer_with_create_react_app.md +1 -0
  415. package/docs/ru/intlayer_with_lynx+react.md +1 -0
  416. package/docs/ru/intlayer_with_nextjs_14.md +1 -0
  417. package/docs/ru/intlayer_with_nextjs_15.md +3 -1
  418. package/docs/ru/intlayer_with_nuxt.md +1 -0
  419. package/docs/ru/intlayer_with_react_native+expo.md +1 -0
  420. package/docs/ru/intlayer_with_vite+preact.md +4 -3
  421. package/docs/ru/intlayer_with_vite+react.md +105 -87
  422. package/docs/ru/intlayer_with_vite+solid.md +4 -3
  423. package/docs/ru/intlayer_with_vite+svelte.md +4 -3
  424. package/docs/ru/intlayer_with_vite+vue.md +5 -4
  425. package/docs/ru/mcp_server.md +119 -85
  426. package/docs/zh/intlayer_CMS.md +1 -0
  427. package/docs/zh/intlayer_cli.md +275 -155
  428. package/docs/zh/intlayer_visual_editor.md +1 -0
  429. package/docs/zh/intlayer_with_angular.md +1 -0
  430. package/docs/zh/intlayer_with_create_react_app.md +1 -0
  431. package/docs/zh/intlayer_with_lynx+react.md +1 -0
  432. package/docs/zh/intlayer_with_nextjs_14.md +1 -0
  433. package/docs/zh/intlayer_with_nextjs_15.md +3 -1
  434. package/docs/zh/intlayer_with_nuxt.md +1 -0
  435. package/docs/zh/intlayer_with_react_native+expo.md +1 -0
  436. package/docs/zh/intlayer_with_vite+preact.md +4 -3
  437. package/docs/zh/intlayer_with_vite+react.md +154 -188
  438. package/docs/zh/intlayer_with_vite+solid.md +4 -3
  439. package/docs/zh/intlayer_with_vite+svelte.md +4 -3
  440. package/docs/zh/intlayer_with_vite+vue.md +5 -4
  441. package/docs/zh/mcp_server.md +119 -86
  442. package/docs/zh/packages/intlayer/getLocalizedUrl.md +1 -23
  443. package/frequent_questions/ar/build_error_CI_CD.md +75 -0
  444. package/frequent_questions/de/build_error_CI_CD.md +75 -0
  445. package/frequent_questions/en/build_error_CI_CD.md +75 -0
  446. package/frequent_questions/en-GB/build_error_CI_CD.md +75 -0
  447. package/frequent_questions/es/build_error_CI_CD.md +75 -0
  448. package/frequent_questions/fr/build_error_CI_CD.md +75 -0
  449. package/frequent_questions/hi/build_error_CI_CD.md +75 -0
  450. package/frequent_questions/it/build_error_CI_CD.md +75 -0
  451. package/frequent_questions/ja/build_error_CI_CD.md +75 -0
  452. package/frequent_questions/ja/intlayer_command_undefined.md +3 -3
  453. package/frequent_questions/ko/build_error_CI_CD.md +75 -0
  454. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  455. package/frequent_questions/pt/build_error_CI_CD.md +75 -0
  456. package/frequent_questions/ru/build_error_CI_CD.md +75 -0
  457. package/frequent_questions/zh/build_error_CI_CD.md +75 -0
  458. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  459. package/legal/ar/privacy_notice.md +83 -0
  460. package/legal/ar/terms_of_service.md +55 -0
  461. package/legal/de/privacy_notice.md +83 -0
  462. package/legal/de/terms_of_service.md +55 -0
  463. package/legal/en/privacy_notice.md +83 -0
  464. package/legal/en/terms_of_service.md +55 -0
  465. package/legal/en-GB/privacy_notice.md +83 -0
  466. package/legal/en-GB/terms_of_service.md +55 -0
  467. package/legal/es/privacy_notice.md +83 -0
  468. package/legal/es/terms_of_service.md +55 -0
  469. package/legal/fr/privacy_notice.md +83 -0
  470. package/legal/fr/terms_of_service.md +55 -0
  471. package/legal/hi/privacy_notice.md +83 -0
  472. package/legal/hi/terms_of_service.md +55 -0
  473. package/legal/it/privacy_notice.md +83 -0
  474. package/legal/it/terms_of_service.md +55 -0
  475. package/legal/ja/privacy_notice.md +83 -0
  476. package/legal/ja/terms_of_service.md +55 -0
  477. package/legal/ko/privacy_notice.md +83 -0
  478. package/legal/ko/terms_of_service.md +55 -0
  479. package/legal/pt/privacy_notice.md +83 -0
  480. package/legal/pt/terms_of_service.md +55 -0
  481. package/legal/ru/privacy_notice.md +83 -0
  482. package/legal/ru/terms_of_service.md +55 -0
  483. package/legal/zh/privacy_notice.md +83 -0
  484. package/legal/zh/terms_of_service.md +55 -0
  485. package/package.json +12 -11
  486. package/src/blog.ts +6 -4
  487. package/src/common.ts +25 -7
  488. package/src/doc.ts +6 -4
  489. package/src/frequentQuestions.ts +6 -4
  490. package/src/generated/blog.entry.ts +1177 -280
  491. package/src/generated/docs.entry.ts +3868 -1217
  492. package/src/generated/frequentQuestions.entry.ts +808 -178
  493. package/src/generated/legal.entry.ts +34 -36
  494. package/src/legal.ts +6 -4
@@ -1,25 +1,29 @@
1
1
  ---
2
- createdAt: 2025-03-07
3
- updatedAt: 2025-06-29
4
- title: ترجمة تطبيق React Native و Expo المحمول الخاص بك (i18n)
5
- description: اكتشف كيفية جعل تطبيق React Native و Expo المحمول الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2024-03-07
4
+ title: البدء مع Intlayer في Vite + React
5
+ description: تعلّم كيفية إضافة التدويل (i18n) إلى تطبيق Vite و React الخاص بك باستخدام Intlayer. اتبع هذا الدليل لجعل تطبيقك متعدد اللغات.
6
6
  keywords:
7
7
  - التدويل
8
- - الوثائق
8
+ - التوثيق
9
9
  - Intlayer
10
10
  - Vite
11
11
  - React
12
- - React Native
12
+ - i18n
13
13
  - جافا سكريبت
14
14
  slugs:
15
15
  - doc
16
16
  - environment
17
- - react-native-and-expo
18
- ---
17
+ - vite-and-react
18
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
19
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4---
19
20
 
20
21
  # البدء في التدويل (i18n) باستخدام Intlayer و Vite و React
21
22
 
22
- راجع [قالب التطبيق](https://github.com/aymericzip/intlayer-vite-react-template) على GitHub.
23
+ <iframe title="The best i18n solution for Vite and React? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
24
+
25
+ راجع [نموذج التطبيق](https://github.com/aymericzip/intlayer-vite-react-template) على GitHub.
26
+
23
27
 
24
28
  ## ما هو Intlayer؟
25
29
 
@@ -28,8 +32,8 @@ slugs:
28
32
  مع Intlayer، يمكنك:
29
33
 
30
34
  - **إدارة الترجمات بسهولة** باستخدام القواميس التصريحية على مستوى المكونات.
31
- - **توطين البيانات الوصفية والمسارات والمحتوى بشكل ديناميكي**.
32
- - **ضمان دعم TypeScript** من خلال الأنواع المولدة تلقائيًا، مما يحسن الإكمال التلقائي واكتشاف الأخطاء.
35
+ - **توطين البيانات الوصفية والمسارات والمحتوى ديناميكيًا**.
36
+ - **ضمان دعم TypeScript** مع الأنواع التي يتم إنشاؤها تلقائيًا، مما يحسن الإكمال التلقائي واكتشاف الأخطاء.
33
37
  - **الاستفادة من الميزات المتقدمة**، مثل الكشف الديناميكي عن اللغة وتبديلها.
34
38
 
35
39
  ---
@@ -42,17 +46,17 @@ slugs:
42
46
 
43
47
  ```bash packageManager="npm"
44
48
  npm install intlayer react-intlayer
45
- npm install --save-dev vite-intlayer
49
+ npm install vite-intlayer --save-dev
46
50
  ```
47
51
 
48
52
  ```bash packageManager="pnpm"
49
53
  pnpm add intlayer react-intlayer
50
- pnpm add --save-dev vite-intlayer
54
+ pnpm add vite-intlayer --save-dev
51
55
  ```
52
56
 
53
57
  ```bash packageManager="yarn"
54
58
  yarn add intlayer react-intlayer
55
- yarn add --save-dev vite-intlayer
59
+ yarn add vite-intlayer --save-dev
56
60
  ```
57
61
 
58
62
  - **intlayer**
@@ -60,14 +64,14 @@ yarn add --save-dev vite-intlayer
60
64
  الحزمة الأساسية التي توفر أدوات التدويل لإدارة التكوين، والترجمة، و[إعلان المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/get_started.md)، والترجمة البرمجية، و[أوامر CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_cli.md).
61
65
 
62
66
  - **react-intlayer**
63
- الحزمة التي تدمج Intlayer مع تطبيق React. توفر موفري السياق والهوكات لتدويل React.
67
+ الحزمة التي تدمج Intlayer مع تطبيق React. توفر مزودي السياق (context providers) وخطافات (hooks) لتدويل React.
64
68
 
65
69
  - **vite-intlayer**
66
- تتضمن إضافة Vite لدمج Intlayer مع [مجمّع Vite](https://vite.dev/guide/why.html#why-bundle-for-production)، بالإضافة إلى وسيط برمجي لاكتشاف اللغة المفضلة للمستخدم، وإدارة الكوكيز، والتعامل مع إعادة توجيه عناوين URL.
70
+ تتضمن إضافة Vite لدمج Intlayer مع [مجمّع Vite](https://vite.dev/guide/why.html#why-bundle-for-production)، بالإضافة إلى وسيط (middleware) لاكتشاف اللغة المفضلة للمستخدم، وإدارة الكوكيز، والتعامل مع إعادة توجيه URL.
67
71
 
68
72
  ### الخطوة 2: تكوين مشروعك
69
73
 
70
- أنشئ ملف تكوين لتحديد لغات تطبيقك:
74
+ قم بإنشاء ملف تكوين لتحديد لغات تطبيقك:
71
75
 
72
76
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
73
77
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -78,7 +82,7 @@ const config: IntlayerConfig = {
78
82
  Locales.ENGLISH,
79
83
  Locales.FRENCH,
80
84
  Locales.SPANISH,
81
- // لغات أخرى خاصة بك
85
+ // لغاتك الأخرى
82
86
  ],
83
87
  defaultLocale: Locales.ENGLISH,
84
88
  },
@@ -91,14 +95,13 @@ export default config;
91
95
  import { Locales } from "intlayer";
92
96
 
93
97
  /** @type {import('intlayer').IntlayerConfig} */
94
- // تكوين إعدادات التدويل
95
98
  const config = {
96
99
  internationalization: {
97
100
  locales: [
98
101
  Locales.ENGLISH,
99
102
  Locales.FRENCH,
100
103
  Locales.SPANISH,
101
- // لغات أخرى خاصة بك
104
+ // لغاتك الأخرى
102
105
  ],
103
106
  defaultLocale: Locales.ENGLISH,
104
107
  },
@@ -111,14 +114,13 @@ export default config;
111
114
  const { Locales } = require("intlayer");
112
115
 
113
116
  /** @type {import('intlayer').IntlayerConfig} */
114
- // تكوين إعدادات التدويل
115
117
  const config = {
116
118
  internationalization: {
117
119
  locales: [
118
120
  Locales.ENGLISH,
119
121
  Locales.FRENCH,
120
122
  Locales.SPANISH,
121
- // لغات أخرى خاصة بك
123
+ // لغاتك الأخرى
122
124
  ],
123
125
  defaultLocale: Locales.ENGLISH,
124
126
  },
@@ -127,11 +129,11 @@ const config = {
127
129
  module.exports = config;
128
130
  ```
129
131
 
130
- > من خلال ملف التكوين هذا، يمكنك إعداد عناوين URL محلية، إعادة توجيه الوسيط، أسماء ملفات تعريف الارتباط، موقع وامتداد إعلانات المحتوى الخاصة بك، تعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعلمات المتاحة، راجع [وثائق التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
132
+ > من خلال ملف التهيئة هذا، يمكنك إعداد عناوين URL محلية، وإعادة توجيه الوسيط، وأسماء ملفات تعريف الارتباط، وموقع وامتداد إعلانات المحتوى الخاصة بك، وتعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعلمات المتاحة، راجع [توثيق التهيئة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
131
133
 
132
- ### الخطوة 3: دمج Intlayer في تكوين Vite الخاص بك
134
+ ### الخطوة 3: دمج Intlayer في تهيئة Vite الخاصة بك
133
135
 
134
- أضف مكون intlayer الإضافي إلى تكوينك.
136
+ أضف مكون intlayer الإضافي إلى تهيئتك.
135
137
 
136
138
  ```typescript fileName="vite.config.ts" codeFormat="typescript"
137
139
  import { defineConfig } from "vite";
@@ -166,9 +168,9 @@ module.exports = defineConfig({
166
168
  });
167
169
  ```
168
170
 
169
- > يتم استخدام مكون Vite الإضافي `intlayerPlugin()` لدمج Intlayer مع Vite. يضمن بناء ملفات إعلان المحتوى ويراقبها في وضع التطوير. كما يحدد متغيرات بيئة Intlayer داخل تطبيق Vite. بالإضافة إلى ذلك، يوفر أسماء مستعارة لتحسين الأداء.
171
+ > يتم استخدام مكون Vite الإضافي `intlayerPlugin()` لدمج Intlayer مع Vite. يضمن بناء ملفات إعلان المحتوى ويراقبها في وضع التطوير. كما يعرّف متغيرات بيئة Intlayer داخل تطبيق Vite. بالإضافة إلى ذلك، يوفر أسماء مستعارة لتحسين الأداء.
170
172
 
171
- ### الخطوة 4: أعلن عن محتواك
173
+ ### الخطوة 4: إعلان المحتوى الخاص بك
172
174
 
173
175
  قم بإنشاء وإدارة إعلانات المحتوى الخاصة بك لتخزين الترجمات:
174
176
 
@@ -187,13 +189,13 @@ const appContent = {
187
189
  reactLogo: t({
188
190
  en: "React logo",
189
191
  fr: "Logo React",
190
- es: "شعار React",
192
+ es: "Logo React",
191
193
  }),
192
194
 
193
195
  title: "Vite + React",
194
196
 
195
197
  count: t({
196
- en: "العدد هو ",
198
+ en: "count is ",
197
199
  fr: "le compte est ",
198
200
  es: "el recuento es ",
199
201
  }),
@@ -235,12 +237,12 @@ const appContent = {
235
237
  key: "app",
236
238
  content: {
237
239
  viteLogo: t({
238
- en: "شعار Vite",
240
+ en: "Vite logo",
239
241
  fr: "Logo Vite",
240
242
  es: "Logo Vite",
241
243
  }),
242
244
  reactLogo: t({
243
- en: "شعار React",
245
+ en: "React logo",
244
246
  fr: "Logo React",
245
247
  es: "Logo React",
246
248
  }),
@@ -248,7 +250,7 @@ const appContent = {
248
250
  title: "Vite + React",
249
251
 
250
252
  count: t({
251
- en: "العدد هو ",
253
+ en: "count is ",
252
254
  fr: "le compte est ",
253
255
  es: "el recuento es ",
254
256
  }),
@@ -257,7 +259,7 @@ const appContent = {
257
259
  t <
258
260
  ReactNode >
259
261
  {
260
- // لا تنسَ استيراد React إذا كنت تستخدم عقدة React في المحتوى الخاص بك
262
+ // لا تنس استيراد React إذا كنت تستخدم عقدة React في المحتوى الخاص بك
261
263
  en: (
262
264
  <>
263
265
  Edit <code>src/App.tsx</code> and save to test HMR
@@ -270,13 +272,13 @@ const appContent = {
270
272
  ),
271
273
  es: (
272
274
  <>
273
- حرر <code>src/App.tsx</code> واحفظ لاختبار HMR
275
+ Edita <code>src/App.tsx</code> y guarda para probar HMR
274
276
  </>
275
277
  ),
276
278
  },
277
279
 
278
280
  readTheDocs: t({
279
- en: "Click on the Vite and React logos to learn more",
281
+ en: "انقر على شعارات Vite و React لمعرفة المزيد",
280
282
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
281
283
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
282
284
  }),
@@ -297,13 +299,11 @@ const appContent = {
297
299
  en: "Vite logo",
298
300
  fr: "Logo Vite",
299
301
  es: "Logo Vite",
300
- ar: "شعار Vite",
301
302
  }),
302
303
  reactLogo: t({
303
304
  en: "React logo",
304
305
  fr: "Logo React",
305
306
  es: "Logo React",
306
- ar: "شعار React",
307
307
  }),
308
308
 
309
309
  title: "Vite + React",
@@ -312,7 +312,6 @@ const appContent = {
312
312
  en: "count is ",
313
313
  fr: "le compte est ",
314
314
  es: "el recuento es ",
315
- ar: "العدد هو ",
316
315
  }),
317
316
 
318
317
  edit:
@@ -332,16 +331,15 @@ const appContent = {
332
331
  ),
333
332
  es: (
334
333
  <>
335
- Edita <code>src/App.tsx</code> y guarda para probar HMR
334
+ Edita <code>src/App.tsx</code> و احفظ لتجربة HMR
336
335
  </>
337
336
  ),
338
337
  },
339
338
 
340
339
  readTheDocs: t({
341
- en: "Click on the Vite and React logos to learn more",
340
+ en: "انقر على شعارات Vite و React لمعرفة المزيد",
342
341
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
343
342
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
344
- ar: "انقر على شعارات Vite و React لمعرفة المزيد",
345
343
  }),
346
344
  },
347
345
  };
@@ -359,8 +357,7 @@ module.exports = appContent;
359
357
  "translation": {
360
358
  "en": "Vite logo",
361
359
  "fr": "Logo Vite",
362
- "es": "Logo Vite",
363
- "ar": "شعار Vite"
360
+ "es": "Logo Vite"
364
361
  }
365
362
  },
366
363
  "reactLogo": {
@@ -412,13 +409,13 @@ module.exports = appContent;
412
409
  }
413
410
  ```
414
411
 
415
- > يمكن تعريف إعلانات المحتوى الخاصة بك في أي مكان في تطبيقك بمجرد تضمينها في دليل `contentDir` (افتراضيًا، `./src`). ويجب أن تتطابق مع امتداد ملف إعلان المحتوى (افتراضيًا، `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
412
+ > يمكن تعريف إعلانات المحتوى الخاصة بك في أي مكان في تطبيقك بمجرد تضمينها في دليل `contentDir` (افتراضيًا، `./src`). ويجب أن تطابق امتداد ملف إعلان المحتوى (افتراضيًا، `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
416
413
 
417
414
  > لمزيد من التفاصيل، راجع [توثيق إعلان المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/get_started.md).
418
415
 
419
- > إذا كان ملف المحتوى الخاص بك يتضمن كود TSX، فيجب أن تفكر في استيراد `import React from "react";` في ملف المحتوى الخاص بك.
416
+ > إذا كان ملف المحتوى الخاص بك يتضمن كود TSX، يجب أن تفكر في استيراد `import React from "react";` في ملف المحتوى الخاص بك.
420
417
 
421
- ### الخطوة 5: استخدام Intlayer في كودك
418
+ ### الخطوة 5: استخدام Intlayer في الكود الخاص بك
422
419
 
423
420
  قم بالوصول إلى قواميس المحتوى الخاصة بك في جميع أنحاء تطبيقك:
424
421
 
@@ -563,7 +560,7 @@ const App = () => (
563
560
  module.exports = App;
564
561
  ```
565
562
 
566
- > إذا كنت تريد استخدام المحتوى الخاص بك في خاصية من نوع `string`، مثل `alt`، `title`، `href`، `aria-label`، إلخ، يجب عليك استدعاء قيمة الدالة، مثل:
563
+ > إذا كنت ترغب في استخدام المحتوى الخاص بك في خاصية من نوع `string`، مثل `alt`، `title`، `href`، `aria-label`، إلخ، يجب عليك استدعاء قيمة الدالة، مثل:
567
564
 
568
565
  > ```jsx
569
566
  > <img src={content.image.src.value} alt={content.image.value} />
@@ -634,30 +631,30 @@ const LocaleSwitcher = () => {
634
631
  - https://example.com/fr/about
635
632
  ```
636
633
 
637
- > بشكل افتراضي، لا يتم إضافة بادئة للمسارات للغة الافتراضية. إذا كنت ترغب في إضافة بادئة للغة الافتراضية، يمكنك تعيين الخيار `middleware.prefixDefault` إلى `true` في تكوينك. راجع [توثيق التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md) لمزيد من المعلومات.
634
+ > بشكل افتراضي، لا يتم إضافة بادئة للمسارات للغة الافتراضية. إذا كنت ترغب في إضافة بادئة للغة الافتراضية، يمكنك تعيين الخيار `middleware.prefixDefault` إلى `true` في إعداداتك. راجع [توثيق الإعدادات](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md) لمزيد من المعلومات.
638
635
 
639
- لإضافة التوجيه المحلي إلى تطبيقك، يمكنك إنشاء مكون `LocaleRouter` الذي يلف مسارات تطبيقك ويتعامل مع التوجيه بناءً على اللغة. إليك مثال باستخدام [React Router](https://reactrouter.com/home):
636
+ لإضافة التوجيه المحلي إلى تطبيقك، يمكنك إنشاء مكون `LocaleRouter` الذي يلف مسارات تطبيقك ويتعامل مع التوجيه بناءً على اللغة. إليك مثالًا باستخدام [React Router](https://reactrouter.com/home):
640
637
 
641
638
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
642
639
  // استيراد التبعيات والوظائف اللازمة
643
640
  import { type Locales, configuration, getPathWithoutLocale } from "intlayer"; // دوال مساعدة وأنواع من 'intlayer'
644
641
  import type { FC, PropsWithChildren } from "react"; // أنواع React للمكونات الوظيفية والخصائص
645
- import { IntlayerProvider } from "react-intlayer"; // موفر سياق التدويل
642
+ import { IntlayerProvider } from "react-intlayer"; // مزود سياق التدويل
646
643
  import {
647
644
  BrowserRouter,
648
645
  Routes,
649
646
  Route,
650
647
  Navigate,
651
648
  useLocation,
652
- } from "react-router-dom"; // مكونات الراوتر لإدارة التنقل
649
+ } from "react-router-dom"; // مكونات الموجه لإدارة التنقل
653
650
 
654
- // تفكيك التهيئة من Intlayer
651
+ // تفكيك التكوين من Intlayer
655
652
  const { internationalization, middleware } = configuration;
656
653
  const { locales, defaultLocale } = internationalization;
657
654
 
658
655
  /**
659
656
  * مكون يتعامل مع التدويل ويغلف الأطفال بسياق اللغة المناسب.
660
- * يدير اكتشاف اللغة بناءً على عنوان URL والتحقق من صحتها.
657
+ * يدير اكتشاف اللغة بناءً على عنوان URL والتحقق منها.
661
658
  */
662
659
  const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
663
660
  children,
@@ -688,7 +685,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
688
685
  );
689
686
  }
690
687
 
691
- // تغليف العناصر الفرعية بمزود Intlayer وتعيين اللغة الحالية
688
+ // تغليف العناصر الفرعية بـ IntlayerProvider وتعيين اللغة الحالية
692
689
  return (
693
690
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
694
691
  );
@@ -737,7 +734,7 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
737
734
  ))}
738
735
 
739
736
  {
740
- // إذا كان تعطيل إضافة بادئة اللغة الافتراضية، يتم عرض الأطفال مباشرة في المسار الجذري
737
+ // إذا كان تعطيل بادئة اللغة الافتراضية، يتم عرض الأطفال مباشرة في المسار الجذري
741
738
  !middleware.prefixDefault && (
742
739
  <Route
743
740
  path="*"
@@ -754,8 +751,8 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
754
751
 
755
752
  ```jsx fileName="src/components/LocaleRouter.mjx" codeFormat="esm"
756
753
  // استيراد التبعيات والوظائف اللازمة
757
- import { configuration, getPathWithoutLocale } from "intlayer"; // وظائف مساعدة وأنواع من 'intlayer'
758
- // وظائف مساعدة وأنواع من 'intlayer'
754
+ import { configuration, getPathWithoutLocale } from "intlayer"; // وظائف وأصناف مساعدة من 'intlayer'
755
+ // وظائف وأصناف مساعدة من 'intlayer'
759
756
  import { IntlayerProvider } from "react-intlayer"; // مزود لسياق التدويل
760
757
  import {
761
758
  BrowserRouter,
@@ -763,7 +760,7 @@ import {
763
760
  Route,
764
761
  Navigate,
765
762
  useLocation,
766
- } from "react-router-dom"; // مكونات الراوتر لإدارة التنقل
763
+ } from "react-router-dom"; // مكونات الموجه لإدارة التنقل
767
764
 
768
765
  // تفكيك التكوين من Intlayer
769
766
  const { internationalization, middleware } = configuration;
@@ -771,8 +768,7 @@ const { locales, defaultLocale } = internationalization;
771
768
 
772
769
  /**
773
770
  * مكون يتعامل مع التدويل ويغلف الأطفال بسياق اللغة المناسب.
774
- /**
775
- * يدير الكشف عن اللغة بناءً على عنوان URL والتحقق من صحتها.
771
+ * يدير اكتشاف اللغة بناءً على عنوان URL والتحقق من صحتها.
776
772
  */
777
773
  const AppLocalized = ({ children, locale }) => {
778
774
  const { pathname, search } = useLocation(); // الحصول على مسار URL الحالي
@@ -780,7 +776,7 @@ const AppLocalized = ({ children, locale }) => {
780
776
  // تحديد اللغة الحالية، والرجوع إلى اللغة الافتراضية إذا لم يتم توفيرها
781
777
  const currentLocale = locale ?? defaultLocale;
782
778
 
783
- // إزالة بادئة اللغة من المسار لإنشاء مسار أساسي
779
+ // إزالة بادئة اللغة من المسار لبناء مسار أساسي
784
780
  const pathWithoutLocale = getPathWithoutLocale(
785
781
  pathname // مسار URL الحالي
786
782
  );
@@ -795,7 +791,7 @@ const AppLocalized = ({ children, locale }) => {
795
791
  return (
796
792
  <Navigate
797
793
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
798
- replace // استبدال الإدخال الحالي في السجل بالإدخال الجديد
794
+ replace // استبدال إدخال السجل الحالي بالإدخال الجديد
799
795
  />
800
796
  );
801
797
  }
@@ -807,7 +803,7 @@ const AppLocalized = ({ children, locale }) => {
807
803
  } else {
808
804
  /**
809
805
  * عندما تكون middleware.prefixDefault خاطئة، لا يتم إضافة بادئة للغة الافتراضية.
810
- * التأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
806
+ * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
811
807
  */
812
808
  if (
813
809
  currentLocale.toString() !== defaultLocale.toString() &&
@@ -830,7 +826,7 @@ const AppLocalized = ({ children, locale }) => {
830
826
 
831
827
  /**
832
828
  * مكون راوتر يقوم بإعداد مسارات خاصة بكل لغة.
833
- * يستخدم React Router لإدارة التنقل وعرض المكونات المترجمة.
829
+ * يستخدم React Router لإدارة التنقل وعرض المكونات المحلية.
834
830
  */
835
831
  export const LocaleRouter = ({ children }) => (
836
832
  <BrowserRouter>
@@ -841,7 +837,7 @@ export const LocaleRouter = ({ children }) => (
841
837
  )
842
838
  .map((locale) => (
843
839
  <Route
844
- // نمط المسار لالتقاط اللغة (مثل /en/، /fr/) ومطابقة جميع المسارات اللاحقة
840
+ // نمط المسار لالتقاط اللغة (مثل /en/، /fr/) ومطابقة جميع المسارات التالية
845
841
  path={`/${locale}/*`}
846
842
  key={locale}
847
843
  element={<AppLocalized locale={locale}>{children}</AppLocalized>} // يلف الأطفال بإدارة اللغة
@@ -866,8 +862,8 @@ export const LocaleRouter = ({ children }) => (
866
862
 
867
863
  ```jsx fileName="src/components/LocaleRouter.cjx" codeFormat="commonjs"
868
864
  // استيراد التبعيات والوظائف اللازمة
869
- const { configuration, getPathWithoutLocale } = require("intlayer"); // وظائف وأدوات مساعدة من 'intlayer'
870
- const { IntlayerProvider, useLocale } = require("react-intlayer"); // مزود سياق التدويل
865
+ const { configuration, getPathWithoutLocale } = require("intlayer"); // وظائف مساعدة وأنواع من 'intlayer'
866
+ const { IntlayerProvider, useLocale } = require("react-intlayer"); // موفر لسياق التدويل
871
867
  const {
872
868
  BrowserRouter,
873
869
  Routes,
@@ -882,7 +878,7 @@ const { locales, defaultLocale } = internationalization;
882
878
 
883
879
  /**
884
880
  * مكون يتعامل مع التدويل ويغلف الأطفال بسياق اللغة المناسب.
885
- * يدير اكتشاف اللغة عبر عنوان URL والتحقق من صحتها.
881
+ * يدير اكتشاف اللغة بناءً على عنوان URL والتحقق منها.
886
882
  */
887
883
  const AppLocalized = ({ children, locale }) => {
888
884
  const { pathname, search } = useLocation(); // الحصول على مسار URL الحالي
@@ -910,13 +906,13 @@ const AppLocalized = ({ children, locale }) => {
910
906
  );
911
907
  }
912
908
 
913
- // لف العناصر الفرعية بمزود Intlayer وتعيين اللغة الحالية
909
+ // تغليف العناصر الفرعية بمزود Intlayer وتعيين اللغة الحالية
914
910
  return (
915
911
  <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
916
912
  );
917
913
  } else {
918
914
  /**
919
- * عندما تكون middleware.prefixDefault خاطئة، لا يتم إضافة بادئة اللغة الافتراضية.
915
+ * عندما تكون middleware.prefixDefault خاطئة، لا يتم إضافة بادئة للغة الافتراضية.
920
916
  * تأكد من أن اللغة الحالية صالحة وليست اللغة الافتراضية.
921
917
  */
922
918
  if (
@@ -940,7 +936,7 @@ const AppLocalized = ({ children, locale }) => {
940
936
 
941
937
  /**
942
938
  * مكون راوتر يقوم بإعداد مسارات خاصة بكل لغة.
943
- * يستخدم React Router لإدارة التنقل وعرض المكونات المحلية.
939
+ * يستخدم React Router لإدارة التنقل وعرض المكونات المترجمة.
944
940
  */
945
941
  const LocaleRouter = ({ children }) => (
946
942
  <BrowserRouter>
@@ -959,7 +955,7 @@ const LocaleRouter = ({ children }) => (
959
955
  ))}
960
956
 
961
957
  {
962
- // إذا تم تعطيل إضافة بادئة اللغة الافتراضية، قم بعرض الأطفال مباشرة في المسار الجذري
958
+ // إذا تم تعطيل إضافة بادئة اللغة الافتراضية، يتم عرض الأطفال مباشرة في المسار الجذري
963
959
  !middleware.prefixDefault && (
964
960
  <Route
965
961
  path="*"
@@ -1013,7 +1009,7 @@ const App = () => (
1013
1009
  );
1014
1010
  ```
1015
1011
 
1016
- بالتوازي، يمكنك أيضًا استخدام `intLayerMiddlewarePlugin` لإضافة التوجيه من جانب الخادم إلى تطبيقك. سيقوم هذا المكون الإضافي تلقائيًا بالكشف عن اللغة الحالية بناءً على عنوان URL وتعيين ملف تعريف الارتباط المناسب للغة. إذا لم يتم تحديد لغة، سيحدد المكون الإضافي اللغة الأنسب بناءً على تفضيلات لغة متصفح المستخدم. إذا لم يتم الكشف عن أي لغة، فسيتم إعادة التوجيه إلى اللغة الافتراضية.
1012
+ بالتوازي، يمكنك أيضًا استخدام `intLayerMiddlewarePlugin` لإضافة التوجيه من جانب الخادم إلى تطبيقك. سيقوم هذا المكون الإضافي بالكشف تلقائيًا عن اللغة الحالية بناءً على عنوان URL وتعيين ملف تعريف الارتباط المناسب للغة. إذا لم يتم تحديد لغة، فسيحدد المكون الإضافي اللغة الأنسب بناءً على تفضيلات لغة متصفح المستخدم. إذا لم يتم الكشف عن أي لغة، فسيتم إعادة التوجيه إلى اللغة الافتراضية.
1017
1013
 
1018
1014
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1019
1015
  import { defineConfig } from "vite";
@@ -1050,7 +1046,7 @@ module.exports = defineConfig({
1050
1046
 
1051
1047
  ### (اختياري) الخطوة 8: تغيير عنوان URL عند تغيير اللغة
1052
1048
 
1053
- لتغيير عنوان URL عند تغيير اللغة، يمكنك استخدام الخاصية `onLocaleChange` المقدمة من الخطاف `useLocale`. بالتوازي، يمكنك استخدام الخطافين `useLocation` و `useNavigate` من مكتبة `react-router-dom` لتحديث مسار عنوان URL.
1049
+ لتغيير عنوان URL عند تغيير اللغة، يمكنك استخدام الخاصية `onLocaleChange` المقدمة من الخطاف `useLocale`. وبالتوازي، يمكنك استخدام الخطافين `useLocation` و `useNavigate` من مكتبة `react-router-dom` لتحديث مسار عنوان URL.
1054
1050
 
1055
1051
  ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
1056
1052
  import { useLocation, useNavigate } from "react-router-dom";
@@ -1094,15 +1090,15 @@ const LocaleSwitcher: FC = () => {
1094
1090
  key={localeItem}
1095
1091
  >
1096
1092
  <span>
1097
- {/* اللغة المحلية - مثلاً FR */}
1093
+ {/* اللغة - مثلاً FR */}
1098
1094
  {localeItem}
1099
1095
  </span>
1100
1096
  <span>
1101
- {/* اللغة بلغتها المحلية - مثلاً Français */}
1097
+ {/* اللغة بلغتها الأصلية - مثلاً Français */}
1102
1098
  {getLocaleName(localeItem, locale)}
1103
1099
  </span>
1104
1100
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1105
- {/* اللغة باللغة المحلية الحالية - مثلاً Francés مع تعيين اللغة الحالية إلى Locales.SPANISH */}
1101
+ {/* اللغة باللغة الحالية - مثلاً Francés مع تعيين اللغة الحالية إلى Locales.SPANISH */}
1106
1102
  {getLocaleName(localeItem)}
1107
1103
  </span>
1108
1104
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1222,19 +1218,19 @@ const LocaleSwitcher = () => {
1222
1218
  key={localeItem}
1223
1219
  >
1224
1220
  <span>
1225
- {/* اللغة المحلية - على سبيل المثال FR */}
1221
+ {/* اللغة المحلية - مثل FR */}
1226
1222
  {localeItem}
1227
1223
  </span>
1228
1224
  <span>
1229
- {/* اللغة بلغتها المحلية - على سبيل المثال Français */}
1225
+ {/* اللغة بلغتها المحلية - مثل Français */}
1230
1226
  {getLocaleName(localeItem, locale)}
1231
1227
  </span>
1232
1228
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1233
- {/* اللغة في اللغة الحالية - على سبيل المثال Francés مع تعيين اللغة الحالية إلى Locales.SPANISH */}
1229
+ {/* اللغة باللغة المحلية الحالية - مثل Francés مع تعيين اللغة الحالية إلى Locales.SPANISH */}
1234
1230
  {getLocaleName(localeItem)}
1235
1231
  </span>
1236
1232
  <span dir="ltr" lang={Locales.ENGLISH}>
1237
- {/* اللغة بالإنجليزية - على سبيل المثال French */}
1233
+ {/* اللغة بالإنجليزية - على سبيل المثال الفرنسية */}
1238
1234
  {getLocaleName(localeItem, Locales.ENGLISH)}
1239
1235
  </span>
1240
1236
  </a>
@@ -1256,7 +1252,7 @@ const LocaleSwitcher = () => {
1256
1252
  > - [`dir` attribute`](https://developer.mozilla.org/ar/docs/Web/HTML/Global_attributes/dir)
1257
1253
  > - [`aria-current` attribute`](https://developer.mozilla.org/ar/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1258
1254
 
1259
- فيما يلي الخطوة التاسعة المحدثة مع شروحات إضافية وأمثلة كود محسنة:
1255
+ فيما يلي الخطوة التاسعة المحدثة مع توضيحات إضافية وأمثلة كود محسنة:
1260
1256
 
1261
1257
  ---
1262
1258
 
@@ -1264,7 +1260,7 @@ const LocaleSwitcher = () => {
1264
1260
 
1265
1261
  عندما يدعم تطبيقك لغات متعددة، من الضروري تحديث سمات `lang` و `dir` في وسم `<html>` لتتوافق مع اللغة الحالية. يضمن ذلك:
1266
1262
 
1267
- - **إمكانية الوصول**: تعتمد برامج قراءة الشاشة وتقنيات المساعدة على سمة `lang` الصحيحة لنطق وتفسير المحتوى بدقة.
1263
+ - **سهولة الوصول**: تعتمد برامج قراءة الشاشة وتقنيات المساعدة على سمة `lang` الصحيحة لنطق المحتوى وتفسيره بدقة.
1268
1264
  - **عرض النص**: تضمن سمة `dir` (الاتجاه) عرض النص بالترتيب الصحيح (مثلًا من اليسار إلى اليمين للإنجليزية، ومن اليمين إلى اليسار للعربية أو العبرية)، وهو أمر أساسي لسهولة القراءة.
1269
1265
  - **تحسين محركات البحث (SEO)**: تستخدم محركات البحث سمة `lang` لتحديد لغة الصفحة، مما يساعد في تقديم المحتوى المحلي المناسب في نتائج البحث.
1270
1266
 
@@ -1272,7 +1268,7 @@ const LocaleSwitcher = () => {
1272
1268
 
1273
1269
  #### تنفيذ الـ Hook
1274
1270
 
1275
- قم بإنشاء hook مخصص لإدارة سمات HTML. يستمع الـ hook لتغييرات اللغة ويقوم بتحديث السمات وفقًا لذلك:
1271
+ قم بإنشاء hook مخصص لإدارة سمات HTML. يستمع الـ hook لتغييرات اللغة ويحدث السمات وفقًا لذلك:
1276
1272
 
1277
1273
  ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
1278
1274
  import { useEffect } from "react";
@@ -1284,7 +1280,7 @@ import { getHTMLTextDir } from "intlayer";
1284
1280
  * - `lang`: يُعلم المتصفحات ومحركات البحث بلغة الصفحة.
1285
1281
  * - `dir`: يضمن ترتيب القراءة الصحيح (مثل 'ltr' للإنجليزية، 'rtl' للعربية).
1286
1282
  *
1287
- * هذا التحديث الديناميكي ضروري لعرض النص بشكل صحيح، وللوصولية، وتحسين محركات البحث (SEO).
1283
+ * هذا التحديث الديناميكي ضروري لعرض النص بشكل صحيح، وللوصولية، وتحسين محركات البحث.
1288
1284
  */
1289
1285
  export const useI18nHTMLAttributes = () => {
1290
1286
  const { locale } = useLocale();
@@ -1307,7 +1303,7 @@ import { getHTMLTextDir } from "intlayer";
1307
1303
  /**
1308
1304
  * يقوم بتحديث خصائص `lang` و `dir` لعنصر HTML <html> بناءً على اللغة الحالية.
1309
1305
  * - `lang`: يُعلم المتصفحات ومحركات البحث بلغة الصفحة.
1310
- * - `dir`: يضمن ترتيب القراءة الصحيح (مثل 'ltr' للإنجليزية، 'rtl' للعربية).
1306
+ * - `dir`: يضمن ترتيب القراءة الصحيح (مثل 'ltr' للإنجليزية، و 'rtl' للعربية).
1311
1307
  *
1312
1308
  * هذا التحديث الديناميكي ضروري لعرض النص بشكل صحيح، وللوصولية، وتحسين محركات البحث.
1313
1309
  */
@@ -1332,7 +1328,7 @@ const { getHTMLTextDir } = require("intlayer");
1332
1328
  /**
1333
1329
  * يقوم بتحديث خصائص `lang` و `dir` لعنصر HTML <html> بناءً على اللغة الحالية.
1334
1330
  * - `lang`: يُعلم المتصفحات ومحركات البحث بلغة الصفحة.
1335
- * - `dir`: يضمن ترتيب القراءة الصحيح (مثلاً، 'ltr' للإنجليزية، 'rtl' للعربية).
1331
+ * - `dir`: يضمن ترتيب القراءة الصحيح (مثل 'ltr' للإنجليزية، 'rtl' للعربية).
1336
1332
  *
1337
1333
  * هذا التحديث الديناميكي ضروري لعرض النص بشكل صحيح، وتحسين إمكانية الوصول، وتحسين محركات البحث.
1338
1334
  */
@@ -1353,7 +1349,7 @@ module.exports = { useI18nHTMLAttributes };
1353
1349
 
1354
1350
  #### استخدام الـ Hook في تطبيقك
1355
1351
 
1356
- قم بدمج الـ hook في المكون الرئيسي الخاص بك بحيث يتم تحديث خصائص HTML كلما تغيرت اللغة:
1352
+ قم بدمج الـ hook في المكون الرئيسي الخاص بك بحيث يتم تحديث خصائص HTML في كل مرة يتغير فيها اللغة:
1357
1353
 
1358
1354
  ```tsx fileName="src/App.tsx" codeFormat="typescript"
1359
1355
  import type { FC } from "react";
@@ -1383,7 +1379,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1383
1379
  import "./App.css";
1384
1380
 
1385
1381
  const AppContent = () => {
1386
- // تطبيق الـ hook لتحديث خصائص lang و dir في وسم <html> بناءً على اللغة الحالية.
1382
+ // تطبيق الـ hook لتحديث خصائص lang و dir لعلامة <html> بناءً على اللغة الحالية.
1387
1383
  useI18nHTMLAttributes();
1388
1384
 
1389
1385
  // ... بقية مكوناتك
@@ -1405,7 +1401,7 @@ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1405
1401
  require("./App.css");
1406
1402
 
1407
1403
  const AppContent = () => {
1408
- // تطبيق الخطاف لتحديث خصائص lang و dir لعلامة <html> بناءً على اللغة المحلية.
1404
+ // تطبيق الخطاف لتحديث خصائص lang و dir في وسم <html> بناءً على اللغة المحلية.
1409
1405
  useI18nHTMLAttributes();
1410
1406
 
1411
1407
  // ... بقية مكوناتك
@@ -1420,23 +1416,23 @@ const App = () => (
1420
1416
  module.exports = App;
1421
1417
  ```
1422
1418
 
1423
- من خلال تطبيق هذه التغييرات، سيقوم تطبيقك بـ:
1419
+ بتطبيق هذه التغييرات، سيقوم تطبيقك بـ:
1424
1420
 
1425
1421
  - ضمان أن خاصية **اللغة** (`lang`) تعكس اللغة المحلية الحالية بشكل صحيح، وهو أمر مهم لتحسين محركات البحث وسلوك المتصفح.
1426
1422
  - ضبط **اتجاه النص** (`dir`) وفقًا للغة المحلية، مما يعزز من قابلية القراءة وسهولة الاستخدام للغات ذات اتجاهات قراءة مختلفة.
1427
- - توفير تجربة أكثر **سهولة في الوصول**، حيث تعتمد تقنيات المساعدة على هذه الخصائص لتعمل بشكل أمثل.
1423
+ - توفير تجربة أكثر **سهولة في الوصول**، حيث تعتمد تقنيات المساعدة على هذه الخصائص لتعمل بشكل مثالي.
1428
1424
 
1429
- ### (اختياري) الخطوة 10: إنشاء مكون رابط محلي اللغة
1425
+ ### (اختياري) الخطوة 10: إنشاء مكون رابط محلي
1430
1426
 
1431
1427
  لضمان أن تحترم تنقلات تطبيقك اللغة الحالية، يمكنك إنشاء مكون `Link` مخصص. يقوم هذا المكون تلقائيًا بإضافة بادئة اللغة الحالية إلى عناوين URL الداخلية، بحيث عند نقر مستخدم يتحدث الفرنسية على رابط لصفحة "حول"، يتم توجيهه إلى `/fr/about` بدلاً من `/about`.
1432
1428
 
1433
1429
  هذا السلوك مفيد لعدة أسباب:
1434
1430
 
1435
- - **تحسين محركات البحث وتجربة المستخدم**: تساعد عناوين URL المحلية محركات البحث على فهرسة الصفحات الخاصة بكل لغة بشكل صحيح وتوفر للمستخدمين محتوى بلغتهم المفضلة.
1436
- - **الاتساق**: باستخدام رابط محلي في جميع أنحاء تطبيقك، تضمن أن التنقل يبقى ضمن اللغة الحالية، مما يمنع التبديلات غير المتوقعة في اللغة.
1437
- - **قابلية الصيانة**: تركيز منطق التوطين في مكون واحد يبسط إدارة عناوين URL، مما يجعل قاعدة الشيفرة الخاصة بك أسهل في الصيانة والتوسيع مع نمو تطبيقك.
1431
+ - **تحسين محركات البحث وتجربة المستخدم**: تساعد عناوين URL المترجمة محركات البحث على فهرسة الصفحات الخاصة بكل لغة بشكل صحيح وتوفر للمستخدمين محتوى بلغتهم المفضلة.
1432
+ - **الاتساق**: باستخدام رابط مترجم في جميع أنحاء تطبيقك، تضمن أن التنقل يبقى ضمن اللغة الحالية، مما يمنع التبديلات غير المتوقعة في اللغة.
1433
+ - **قابلية الصيانة**: توحيد منطق التوطين في مكون واحد يبسط إدارة عناوين URL، مما يجعل قاعدة الكود الخاصة بك أسهل في الصيانة والتطوير مع نمو تطبيقك.
1438
1434
 
1439
- فيما يلي تنفيذ لمكون `Link` مخصص للتوطين بلغة TypeScript:
1435
+ فيما يلي تنفيذ لمكون `Link` مخصص يدعم التوطين باستخدام TypeScript:
1440
1436
 
1441
1437
  ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1442
1438
  import { getLocalizedUrl } from "intlayer";
@@ -1455,13 +1451,13 @@ export interface LinkProps
1455
1451
 
1456
1452
  /**
1457
1453
  * دالة مساعدة للتحقق مما إذا كان عنوان URL معين خارجيًا.
1458
- * إذا بدأ عنوان URL بـ http:// أو https://، فإنه يعتبر خارجيًا.
1454
+ * إذا بدأ عنوان URL بـ http:// أو https://، يعتبر خارجيًا.
1459
1455
  */
1460
1456
  export const checkIsExternalLink = (href?: string): boolean =>
1461
1457
  /^https?:\/\//.test(href ?? "");
1462
1458
 
1463
1459
  /**
1464
- * مكون Link مخصص يقوم بتعديل خاصية href بناءً على اللغة الحالية.
1460
+ * مكون رابط مخصص يقوم بتعديل خاصية href بناءً على اللغة الحالية.
1465
1461
  * بالنسبة للروابط الداخلية، يستخدم `getLocalizedUrl` لإضافة بادئة اللغة إلى الرابط (مثل /fr/about).
1466
1462
  * هذا يضمن أن التنقل يبقى ضمن نفس سياق اللغة.
1467
1463
  */
@@ -1470,7 +1466,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1470
1466
  const { locale } = useLocale();
1471
1467
  const isExternalLink = checkIsExternalLink(href);
1472
1468
 
1473
- // إذا كانت الرابط داخلي وتم توفير href صالح، احصل على الرابط المترجم.
1469
+ // إذا كان الرابط داخليًا وتم توفير href صالح، احصل على الرابط المحلي.
1474
1470
  const hrefI18n =
1475
1471
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1476
1472
 
@@ -1491,22 +1487,22 @@ import { useLocale } from "react-intlayer";
1491
1487
  import { forwardRef } from "react";
1492
1488
 
1493
1489
  /**
1494
- * دالة مساعدة للتحقق مما إذا كان عنوان URL معين خارجيًا.
1495
- * إذا بدأ عنوان URL بـ http:// أو https://، فيُعتبر خارجيًا.
1490
+ * دالة مساعدة للتحقق مما إذا كان الرابط المعطى خارجيًا.
1491
+ * إذا بدأ الرابط بـ http:// أو https://، فإنه يعتبر خارجيًا.
1496
1492
  */
1497
1493
  export const checkIsExternalLink = (href?: string): boolean =>
1498
1494
  /^https?:\/\//.test(href ?? "");
1499
1495
 
1500
1496
  /**
1501
1497
  * مكون رابط مخصص يقوم بتكييف خاصية href بناءً على اللغة الحالية.
1502
- * بالنسبة للروابط الداخلية، يستخدم `getLocalizedUrl` لإضافة بادئة اللغة إلى عنوان URL (مثل /fr/about).
1498
+ * بالنسبة للروابط الداخلية، يستخدم `getLocalizedUrl` لإضافة بادئة اللغة إلى الرابط (مثلاً /fr/about).
1503
1499
  * هذا يضمن أن التنقل يبقى ضمن نفس سياق اللغة.
1504
1500
  */
1505
1501
  export const Link = forwardRef(({ href, children, ...props }, ref) => {
1506
1502
  const { locale } = useLocale();
1507
1503
  const isExternalLink = checkIsExternalLink(href);
1508
1504
 
1509
- // إذا كان الرابط داخليًا وتم توفير href صالح، احصل على عنوان URL المحلي.
1505
+ // إذا كان الرابط داخليًا وتم توفير href صالح، احصل على الرابط المحلي.
1510
1506
  const hrefI18n =
1511
1507
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1512
1508
 
@@ -1527,7 +1523,7 @@ const { forwardRef } = require("react");
1527
1523
 
1528
1524
  /**
1529
1525
  * دالة مساعدة للتحقق مما إذا كان عنوان URL معين خارجيًا.
1530
- * إذا بدأ عنوان URL بـ http:// أو https://، يعتبر خارجيًا.
1526
+ * إذا بدأ عنوان URL بـ http:// أو https://، يُعتبر خارجيًا.
1531
1527
  */
1532
1528
  const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1533
1529
 
@@ -1561,18 +1557,18 @@ Link.displayName = "Link";
1561
1557
  #### كيف يعمل
1562
1558
 
1563
1559
  - **كشف الروابط الخارجية**:
1564
- تقوم الدالة المساعدة `checkIsExternalLink` بتحديد ما إذا كان الرابط خارجيًا. تُترك الروابط الخارجية كما هي لأنها لا تحتاج إلى تعريب.
1560
+ تقوم الدالة المساعدة `checkIsExternalLink` بتحديد ما إذا كان الرابط URL خارجيًا. يتم ترك الروابط الخارجية كما هي لأنها لا تحتاج إلى تعريب.
1565
1561
 
1566
1562
  - **استرجاع اللغة الحالية**:
1567
1563
  يوفر الخطاف `useLocale` اللغة الحالية (مثلًا `fr` للفرنسية).
1568
1564
 
1569
1565
  - **تعريب الرابط**:
1570
- بالنسبة للروابط الداخلية (أي غير الخارجية)، يتم استخدام `getLocalizedUrl` لإضافة بادئة اللغة تلقائيًا إلى الرابط. هذا يعني أنه إذا كان المستخدم يتصفح باللغة الفرنسية، فإن تمرير `/about` كـ `href` سيُحوَّل إلى `/fr/about`.
1566
+ بالنسبة للروابط الداخلية (أي غير الخارجية)، يتم استخدام `getLocalizedUrl` لإضافة بادئة اللغة الحالية تلقائيًا إلى الرابط. هذا يعني أنه إذا كان المستخدم يتصفح باللغة الفرنسية، فإن تمرير `/about` كـ `href` سيُحوَّل إلى `/fr/about`.
1571
1567
 
1572
1568
  - **إرجاع الرابط**:
1573
1569
  يعيد المكون عنصر `<a>` مع عنوان URL المحلي، مما يضمن أن التنقل متسق مع اللغة المختارة.
1574
1570
 
1575
- من خلال دمج هذا المكون `Link` في تطبيقك، تحافظ على تجربة مستخدم متماسكة وواعية باللغة، بالإضافة إلى الاستفادة من تحسين محركات البحث وسهولة الاستخدام.
1571
+ من خلال دمج هذا المكون `Link` عبر تطبيقك، تحافظ على تجربة مستخدم متماسكة وواعية باللغة، مع الاستفادة أيضًا من تحسين محركات البحث وسهولة الاستخدام.
1576
1572
 
1577
1573
  ### تكوين TypeScript
1578
1574
 
@@ -1605,16 +1601,16 @@ Link.displayName = "Link";
1605
1601
  .intlayer
1606
1602
  ```
1607
1603
 
1608
- ### امتداد VS Code
1604
+ ### إضافة VS Code
1609
1605
 
1610
- لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **امتداد Intlayer الرسمي لـ VS Code**.
1606
+ لتحسين تجربة التطوير الخاصة بك مع Intlayer، يمكنك تثبيت **إضافة Intlayer الرسمية لـ VS Code**.
1611
1607
 
1612
1608
  [التثبيت من سوق VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1613
1609
 
1614
- يوفر هذا الامتداد:
1610
+ تقدم هذه الإضافة:
1615
1611
 
1616
1612
  - **الإكمال التلقائي** لمفاتيح الترجمة.
1617
- - **الكشف الفوري عن الأخطاء** للترجمات المفقودة.
1613
+ - **الكشف عن الأخطاء في الوقت الحقيقي** للترجمات المفقودة.
1618
1614
  - **معاينات داخلية** للمحتوى المترجم.
1619
1615
  - **إجراءات سريعة** لإنشاء الترجمات وتحديثها بسهولة.
1620
1616