@intlayer/docs 5.7.7 → 5.8.0-canary.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 (142) hide show
  1. package/blog/ar/intlayer_with_next-i18next.md +3 -4
  2. package/blog/ar/intlayer_with_next-intl.md +3 -4
  3. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_react-intl.md +1 -1
  5. package/blog/de/intlayer_with_next-i18next.md +3 -4
  6. package/blog/de/intlayer_with_react-intl.md +1 -1
  7. package/blog/en/intlayer_with_next-i18next.md +3 -4
  8. package/blog/en/intlayer_with_next-intl.md +3 -4
  9. package/blog/en/intlayer_with_react-i18next.md +1 -1
  10. package/blog/en/intlayer_with_react-intl.md +1 -1
  11. package/blog/en-GB/intlayer_with_next-i18next.md +3 -4
  12. package/blog/en-GB/intlayer_with_next-intl.md +3 -4
  13. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  14. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  15. package/blog/es/intlayer_with_next-i18next.md +3 -4
  16. package/blog/es/intlayer_with_next-intl.md +3 -4
  17. package/blog/es/intlayer_with_react-i18next.md +1 -1
  18. package/blog/es/intlayer_with_react-intl.md +1 -1
  19. package/blog/fr/intlayer_with_next-i18next.md +3 -4
  20. package/blog/fr/intlayer_with_next-intl.md +3 -4
  21. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  22. package/blog/fr/intlayer_with_react-intl.md +1 -1
  23. package/blog/hi/intlayer_with_next-i18next.md +3 -4
  24. package/blog/hi/intlayer_with_next-intl.md +3 -4
  25. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  26. package/blog/hi/intlayer_with_react-intl.md +1 -1
  27. package/blog/it/intlayer_with_next-i18next.md +3 -4
  28. package/blog/it/intlayer_with_next-intl.md +3 -4
  29. package/blog/it/intlayer_with_react-i18next.md +1 -1
  30. package/blog/it/intlayer_with_react-intl.md +1 -1
  31. package/blog/ja/intlayer_with_next-i18next.md +3 -4
  32. package/blog/ja/intlayer_with_next-intl.md +3 -4
  33. package/blog/ja/intlayer_with_react-intl.md +1 -1
  34. package/blog/ko/intlayer_with_next-i18next.md +3 -4
  35. package/blog/ko/intlayer_with_next-intl.md +3 -4
  36. package/blog/ko/intlayer_with_react-intl.md +1 -1
  37. package/blog/pt/intlayer_with_next-i18next.md +3 -4
  38. package/blog/pt/intlayer_with_next-intl.md +3 -4
  39. package/blog/pt/intlayer_with_react-intl.md +1 -1
  40. package/blog/ru/intlayer_with_next-i18next.md +3 -4
  41. package/blog/ru/intlayer_with_next-intl.md +3 -4
  42. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  43. package/blog/ru/intlayer_with_react-intl.md +1 -1
  44. package/blog/zh/intlayer_with_next-i18next.md +3 -4
  45. package/blog/zh/intlayer_with_next-intl.md +3 -4
  46. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  47. package/blog/zh/intlayer_with_react-intl.md +1 -1
  48. package/dist/cjs/generated/docs.entry.cjs +41 -0
  49. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  50. package/dist/esm/generated/docs.entry.mjs +41 -0
  51. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  52. package/dist/types/generated/docs.entry.d.ts +1 -0
  53. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  54. package/docs/ar/CI_CD.md +67 -41
  55. package/docs/ar/formatters.md +239 -0
  56. package/docs/ar/interest_of_intlayer.md +162 -49
  57. package/docs/ar/introduction.md +3 -3
  58. package/docs/ar/packages/intlayer/index.md +3 -3
  59. package/docs/ar/packages/next-intlayer/index.md +3 -3
  60. package/docs/de/CI_CD.md +63 -37
  61. package/docs/de/formatters.md +239 -0
  62. package/docs/de/interest_of_intlayer.md +161 -47
  63. package/docs/de/introduction.md +3 -3
  64. package/docs/de/packages/intlayer/index.md +3 -3
  65. package/docs/de/packages/next-intlayer/index.md +3 -3
  66. package/docs/de/packages/react-intlayer/index.md +3 -3
  67. package/docs/en/CI_CD.md +51 -27
  68. package/docs/en/formatters.md +250 -0
  69. package/docs/en/interest_of_intlayer.md +159 -46
  70. package/docs/en/introduction.md +3 -3
  71. package/docs/en/packages/intlayer/index.md +3 -3
  72. package/docs/en/packages/next-intlayer/index.md +3 -3
  73. package/docs/en/packages/react-intlayer/index.md +3 -3
  74. package/docs/en-GB/CI_CD.md +58 -32
  75. package/docs/en-GB/formatters.md +239 -0
  76. package/docs/en-GB/interest_of_intlayer.md +160 -53
  77. package/docs/en-GB/packages/intlayer/index.md +3 -3
  78. package/docs/en-GB/packages/next-intlayer/index.md +3 -3
  79. package/docs/en-GB/packages/react-intlayer/index.md +3 -3
  80. package/docs/es/CI_CD.md +68 -42
  81. package/docs/es/formatters.md +239 -0
  82. package/docs/es/interest_of_intlayer.md +159 -47
  83. package/docs/es/introduction.md +3 -3
  84. package/docs/es/packages/intlayer/index.md +3 -3
  85. package/docs/es/packages/next-intlayer/index.md +3 -3
  86. package/docs/fr/formatters.md +239 -0
  87. package/docs/fr/interest_of_intlayer.md +160 -46
  88. package/docs/fr/introduction.md +3 -3
  89. package/docs/fr/packages/intlayer/index.md +3 -3
  90. package/docs/fr/packages/next-intlayer/index.md +3 -3
  91. package/docs/fr/packages/react-intlayer/index.md +3 -3
  92. package/docs/hi/CI_CD.md +69 -44
  93. package/docs/hi/formatters.md +239 -0
  94. package/docs/hi/interest_of_intlayer.md +158 -42
  95. package/docs/hi/introduction.md +3 -3
  96. package/docs/hi/packages/intlayer/index.md +3 -3
  97. package/docs/hi/packages/next-intlayer/index.md +3 -3
  98. package/docs/hi/packages/react-intlayer/index.md +3 -3
  99. package/docs/it/CI_CD.md +67 -41
  100. package/docs/it/formatters.md +239 -0
  101. package/docs/it/interest_of_intlayer.md +160 -46
  102. package/docs/it/introduction.md +3 -3
  103. package/docs/it/packages/intlayer/index.md +3 -3
  104. package/docs/it/packages/next-intlayer/index.md +3 -3
  105. package/docs/it/packages/react-intlayer/index.md +3 -3
  106. package/docs/ja/CI_CD.md +67 -41
  107. package/docs/ja/formatters.md +261 -0
  108. package/docs/ja/interest_of_intlayer.md +157 -48
  109. package/docs/ja/introduction.md +3 -3
  110. package/docs/ja/packages/intlayer/index.md +3 -3
  111. package/docs/ja/packages/next-intlayer/index.md +3 -3
  112. package/docs/ja/packages/react-intlayer/index.md +3 -3
  113. package/docs/ko/CI_CD.md +63 -37
  114. package/docs/ko/formatters.md +258 -0
  115. package/docs/ko/interest_of_intlayer.md +160 -48
  116. package/docs/ko/introduction.md +3 -3
  117. package/docs/ko/packages/intlayer/index.md +3 -3
  118. package/docs/ko/packages/next-intlayer/index.md +3 -3
  119. package/docs/ko/packages/react-intlayer/index.md +3 -3
  120. package/docs/pt/CI_CD.md +67 -41
  121. package/docs/pt/formatters.md +239 -0
  122. package/docs/pt/interest_of_intlayer.md +162 -47
  123. package/docs/pt/introduction.md +3 -3
  124. package/docs/pt/packages/intlayer/index.md +3 -3
  125. package/docs/pt/packages/next-intlayer/index.md +3 -3
  126. package/docs/pt/packages/react-intlayer/index.md +3 -3
  127. package/docs/ru/CI_CD.md +70 -44
  128. package/docs/ru/formatters.md +239 -0
  129. package/docs/ru/interest_of_intlayer.md +168 -50
  130. package/docs/ru/introduction.md +3 -3
  131. package/docs/ru/packages/intlayer/index.md +3 -3
  132. package/docs/ru/packages/next-intlayer/index.md +3 -3
  133. package/docs/ru/packages/react-intlayer/index.md +3 -3
  134. package/docs/zh/CI_CD.md +62 -36
  135. package/docs/zh/formatters.md +239 -0
  136. package/docs/zh/interest_of_intlayer.md +158 -48
  137. package/docs/zh/introduction.md +3 -3
  138. package/docs/zh/packages/intlayer/index.md +3 -3
  139. package/docs/zh/packages/next-intlayer/index.md +3 -3
  140. package/docs/zh/packages/react-intlayer/index.md +3 -3
  141. package/package.json +12 -12
  142. package/src/generated/docs.entry.ts +41 -0
@@ -14,6 +14,7 @@ export declare const docsEntry: {
14
14
  readonly './docs/en/dictionary/markdown.md': Record<LocalesValues, Promise<string>>;
15
15
  readonly './docs/en/dictionary/nesting.md': Record<LocalesValues, Promise<string>>;
16
16
  readonly './docs/en/dictionary/translation.md': Record<LocalesValues, Promise<string>>;
17
+ readonly './docs/en/formatters.md': Record<LocalesValues, Promise<string>>;
17
18
  readonly './docs/en/how_works_intlayer.md': Record<LocalesValues, Promise<string>>;
18
19
  readonly './docs/en/index.md': Record<LocalesValues, Promise<string>>;
19
20
  readonly './docs/en/interest_of_intlayer.md': Record<LocalesValues, Promise<string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"docs.entry.d.ts","sourceRoot":"","sources":["../../../src/generated/docs.entry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,eAAO,MAAM,SAAS;mCAyCJ,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;sCAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;2CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;kDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;wEAuHtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;+CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;kDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;iDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mCAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;kDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;4DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;sDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;qDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;qDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gDAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;uDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;sDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;sDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;uDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;2CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;wCAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;+DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;2DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;uEAuHtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;yDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;yDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;4DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gEAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;+DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;qEAuHtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;qDA4CtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;sDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;kEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gEAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;8DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;4DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;2DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;uDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;iEAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;+DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;kEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;mEAmFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;2DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;4DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;0DAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;yDAgFtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;6CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;qCAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;+CAyCtC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"docs.entry.d.ts","sourceRoot":"","sources":["../../../src/generated/docs.entry.ts"],"names":[],"mappings":"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"}
package/docs/ar/CI_CD.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-05-20
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-08-13
4
4
  title: تكامل CI/CD
5
- description: تعلّم كيفية دمج Intlayer في خط أنابيب CI/CD الخاص بك لإدارة المحتوى والنشر التلقائي.
5
+ description: تعلّم كيفية دمج Intlayer في خط أنابيب CI/CD الخاص بك لإدارة المحتوى والنشر بشكل آلي.
6
6
  keywords:
7
7
  - CI/CD
8
8
  - التكامل المستمر
@@ -23,7 +23,7 @@ slugs:
23
23
 
24
24
  ## استخدام نظام إدارة المحتوى (CMS)
25
25
 
26
- مع Intlayer، يمكنك اعتماد سير عمل حيث يتم إعلان لغة واحدة فقط محليًا، بينما تتم إدارة جميع الترجمات عن بُعد من خلال نظام إدارة المحتوى (CMS). يتيح ذلك فصل المحتوى والترجمات تمامًا عن قاعدة الشيفرة، مما يوفر مزيدًا من المرونة لمحرري المحتوى ويسمح بإعادة تحميل المحتوى بشكل فوري (دون الحاجة إلى إعادة بناء التطبيق لتطبيق التغييرات).
26
+ مع Intlayer، يمكنك اعتماد سير عمل حيث يتم إعلان لغة واحدة فقط محليًا، بينما تتم إدارة جميع الترجمات عن بُعد من خلال نظام إدارة المحتوى (CMS). يتيح هذا فصل المحتوى والترجمات تمامًا عن قاعدة الشيفرة، مما يوفر مزيدًا من المرونة لمحرري المحتوى ويمكّن من إعادة تحميل المحتوى الحي (دون الحاجة إلى إعادة بناء التطبيق لتطبيق التغييرات).
27
27
 
28
28
  ### مثال على التكوين
29
29
 
@@ -33,13 +33,13 @@ import { Locales, type IntlayerConfig } from "intlayer";
33
33
  const config: IntlayerConfig = {
34
34
  internationalization: {
35
35
  locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],
36
- requiredLocales: [Locales.ENGLISH], // اللغات الاختيارية ستتم إدارتها عن بُعد
36
+ requiredLocales: [Locales.ENGLISH], // سيتم إدارة اللغات الاختيارية عن بُعد
37
37
  defaultLocale: Locales.ENGLISH,
38
38
  },
39
39
  editor: {
40
40
  dictionaryPriorityStrategy: "distant_first", // المحتوى البعيد له الأولوية
41
41
 
42
- applicationURL: process.env.APPLICATION_URL, // عنوان URL للتطبيق المستخدم من قبل نظام إدارة المحتوى
42
+ applicationURL: process.env.APPLICATION_URL, // عنوان URL الخاص بالتطبيق المستخدم من قبل نظام إدارة المحتوى
43
43
 
44
44
  clientId: process.env.INTLAYER_CLIENT_ID, // بيانات اعتماد نظام إدارة المحتوى
45
45
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
@@ -56,7 +56,7 @@ export default config;
56
56
 
57
57
  ## استخدام Husky
58
58
 
59
- يمكنك دمج توليد الترجمة في سير عمل Git المحلي الخاص بك باستخدام [Husky](https://typicode.github.io/husky/).
59
+ يمكنك دمج توليد الترجمات في سير عمل Git المحلي الخاص بك باستخدام [Husky](https://typicode.github.io/husky/).
60
60
 
61
61
  ### مثال على التكوين
62
62
 
@@ -70,7 +70,7 @@ const config: IntlayerConfig = {
70
70
  defaultLocale: Locales.ENGLISH,
71
71
  },
72
72
  editor: {
73
- clientId: process.env.INTLAYER_CLIENT_ID, // بيانات اعتماد نظام إدارة المحتوى
73
+ clientId: process.env.INTLAYER_CLIENT_ID,
74
74
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
75
75
  },
76
76
  ai: {
@@ -86,12 +86,12 @@ export default config;
86
86
 
87
87
  ```bash fileName=".husky/pre-push"
88
88
  npx intlayer build # لضمان تحديث القواميس
89
- npx intlayer fill --unpushed --mode fill # ملء المحتوى المفقود فقط، لا يتم تحديث المحتويات الموجودة
89
+ npx intlayer fill --unpushed --mode fill # ملء المحتوى المفقود فقط، لا يقوم بتحديث المحتويات الموجودة
90
90
  ```
91
91
 
92
92
  > لمزيد من المعلومات حول أوامر Intlayer CLI وكيفية استخدامها، راجع [توثيق CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_cli.md).
93
93
 
94
- > إذا كان لديك عدة تطبيقات في مستودعك تستخدم نسخ منفصلة من intlayer، يمكنك استخدام الوسيطة `--base-dir` كما يلي:
94
+ > إذا كان لديك عدة تطبيقات في مستودعك تستخدم نسخ منفصلة من intlayer، يمكنك استخدام الوسيط `--base-dir` كما يلي:
95
95
 
96
96
  ```bash fileName=".husky/pre-push"
97
97
  # التطبيق 1
@@ -105,63 +105,87 @@ npx intlayer fill --base-dir ./app2 --unpushed --mode fill
105
105
 
106
106
  ## استخدام GitHub Actions
107
107
 
108
- توفر Intlayer أمر CLI لملء محتوى القاموس تلقائيًا ومراجعته. يمكن دمج هذا في سير عمل CI/CD الخاص بك باستخدام GitHub Actions.
108
+ توفر Intlayer أمر CLI لملء ومراجعة محتوى القاموس تلقائيًا. يمكن دمج هذا في سير عمل CI/CD الخاص بك باستخدام GitHub Actions.
109
109
 
110
110
  ```yaml fileName=".github/workflows/intlayer-translate.yml"
111
- name: ملء تلقائي Intlayer
111
+ name: تعبئة Intlayer تلقائيًا
112
+ # شروط تشغيل هذا سير العمل
112
113
  on:
113
- push:
114
- branches: [ main ]
115
- paths:
116
- - 'src/**'
117
114
  pull_request:
118
- branches: [ main ]
119
- paths:
120
- - 'src/**'
121
- workflow_dispatch: {}
115
+ branches:
116
+ - "main"
117
+
118
+ permissions:
119
+ contents: write
120
+ pull-requests: write
122
121
 
123
122
  concurrency:
124
- group: 'autofill-${{ github.ref }}'
123
+ group: "autofill-${{ github.ref }}"
125
124
  cancel-in-progress: true
126
125
 
127
126
  jobs:
128
127
  autofill:
129
128
  runs-on: ubuntu-latest
130
129
  env:
131
- INTLAYER_CLIENT_ID: ${{ secrets.INTLAYER_CLIENT_ID }}
132
- INTLAYER_CLIENT_SECRET: ${{ secrets.INTLAYER_CLIENT_SECRET }}
133
- OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
130
+ # OpenAI
131
+ AI_MODEL: openai
132
+ AI_PROVIDER: gpt-5-mini
133
+ AI_API_KEY: ${{ secrets.AI_API_KEY }}
134
134
 
135
135
  steps:
136
- - name: ⬇️ استنساخ المستودع
137
- uses: actions/checkout@v3
136
+ # الخطوة 1: جلب أحدث كود من المستودع
137
+ - name: ⬇️ سحب المستودع
138
+ uses: actions/checkout@v4
138
139
  with:
139
- persist-credentials: true
140
+ persist-credentials: true # الاحتفاظ بالاعتمادات لإنشاء طلبات السحب
141
+ fetch-depth: 0 # الحصول على كامل تاريخ git لتحليل الفروقات
140
142
 
143
+ # الخطوة 2: إعداد بيئة Node.js
141
144
  - name: 🟢 إعداد Node.js
142
- uses: actions/setup-node@v3
145
+ uses: actions/setup-node@v4
143
146
  with:
144
- node-version: 20
147
+ node-version: 20 # استخدام Node.js 20 LTS للاستقرار
145
148
 
149
+ # الخطوة 3: تثبيت تبعيات المشروع
146
150
  - name: 📦 تثبيت التبعيات
147
- run: npm ci
151
+ run: npm install
152
+
153
+ # الخطوة 4: تثبيت Intlayer CLI عالميًا لإدارة الترجمات
154
+ - name: 📦 تثبيت Intlayer
155
+ run: npm install -g intlayer-cli
148
156
 
157
+ # الخطوة 5: بناء مشروع Intlayer لإنشاء ملفات الترجمة
149
158
  - name: ⚙️ بناء مشروع Intlayer
150
159
  run: npx intlayer build
151
160
 
152
- - name: 🤖 ملء الترجمات المفقودة تلقائيًا
153
- run: npx intlayer fill --git-diff --mode fill
154
-
155
- - name: 📤 إنشاء أو تحديث طلب السحب للترجمة
156
- uses: peter-evans/create-pull-request@v4
157
- with:
158
- commit-message: chore: ملء تلقائي للترجمات المفقودة [skip ci]
159
- branch: auto-translations
160
- title: chore: تحديث الترجمات المفقودة
161
- labels: translation, automated
161
+ # الخطوة 6: استخدام الذكاء الاصطناعي لملء الترجمات الناقصة تلقائيًا
162
+ - name: 🤖 ملء الترجمات الناقصة تلقائيًا
163
+ run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY
164
+
165
+ # الخطوة 7: التحقق من وجود تغييرات والقيام بعملية الالتزام بها
166
+ - name: � التحقق من وجود تغييرات
167
+ id: check-changes
168
+ run: |
169
+ if [ -n "$(git status --porcelain)" ]; then
170
+ echo "has-changes=true" >> $GITHUB_OUTPUT
171
+ else
172
+ echo "has-changes=false" >> $GITHUB_OUTPUT
173
+ fi
174
+
175
+ # الخطوة 8: الالتزام ودفع التغييرات إذا وجدت
176
+ - name: 📤 الالتزام ودفع التغييرات
177
+ if: steps.check-changes.outputs.has-changes == 'true'
178
+ run: |
179
+ git config --local user.email "action@github.com"
180
+ git config --local user.name "GitHub Action"
181
+ git add .
182
+ git commit -m "chore: ملء تلقائي للترجمات المفقودة [تخطي CI]"
183
+ git push origin HEAD:${{ github.head_ref }}
162
184
  ```
163
185
 
164
- > بنفس طريقة Husky، في حالة وجود monorepo، يمكنك استخدام الوسيطة `--base-dir` لمعالجة كل تطبيق بالتتابع.
186
+ لإعداد متغيرات البيئة، انتقل إلى GitHub الإعدادات الأسرار والمتغيرات الإجراءات وأضف السر .
187
+
188
+ > كما هو الحال مع Husky، في حالة وجود مستودع أحادي (monorepo)، يمكنك استخدام الوسيطة `--base-dir` لمعالجة كل تطبيق بالتتابع.
165
189
 
166
190
  > بشكل افتراضي، تقوم الوسيطة `--git-diff` بتصفية القواميس التي تتضمن تغييرات من القاعدة (الافتراضية `origin/main`) إلى الفرع الحالي (الافتراضي: `HEAD`).
167
191
 
@@ -169,4 +193,6 @@ jobs:
169
193
 
170
194
  ## تاريخ الوثيقة
171
195
 
172
- - 5.5.10 - 2025-06-29: بداية التاريخ
196
+ | الإصدار | التاريخ | التغييرات |
197
+ | ------- | ---------- | --------- |
198
+ | 5.5.10 | 2025-06-29 | بدء السجل |
@@ -0,0 +1,239 @@
1
+ ---
2
+ createdAt: 2024-08-13
3
+ updatedAt: 2025-08-20
4
+ title: أدوات التنسيق
5
+ description: أدوات تنسيق مدركة للغة بناءً على Intl للأرقام والنسب المئوية والعملات والتواريخ والوقت النسبي والوحدات والترميز المضغوط. تتضمن مساعد Intl مخزن مؤقتًا.
6
+ keywords:
7
+ - أدوات التنسيق
8
+ - Intl
9
+ - رقم
10
+ - عملة
11
+ - نسبة مئوية
12
+ - تاريخ
13
+ - وقت نسبي
14
+ - وحدات
15
+ - مضغوط
16
+ - التدويل
17
+ slugs:
18
+ - doc
19
+ - formatters
20
+ ---
21
+
22
+ # أدوات تنسيق Intlayer
23
+
24
+ ## نظرة عامة
25
+
26
+ يوفر Intlayer مجموعة من المساعدين الخفيفين المبنيين على واجهات برمجة التطبيقات الأصلية `Intl`، بالإضافة إلى غلاف `Intl` مخزن مؤقتًا لتجنب إعادة إنشاء أدوات التنسيق الثقيلة بشكل متكرر. هذه الأدوات مدركة تمامًا للغة ويمكن استخدامها من الحزمة الرئيسية `intlayer`.
27
+
28
+ ### الاستيراد
29
+
30
+ ```ts
31
+ import {
32
+ Intl,
33
+ number,
34
+ percentage,
35
+ currency,
36
+ date,
37
+ relativeTime,
38
+ units,
39
+ compact,
40
+ } from "intlayer";
41
+ ```
42
+
43
+ إذا كنت تستخدم React، فإن الخطافات متاحة أيضًا؛ راجع `react-intlayer/format`.
44
+
45
+ ## Intl المخزن مؤقتًا
46
+
47
+ الـ `Intl` المصدر هو غلاف رقيق مخزن مؤقتًا حول الـ `Intl` العالمي. يقوم بتخزين مثيلات `NumberFormat` و `DateTimeFormat` و `RelativeTimeFormat` في الذاكرة المؤقتة، مما يتجنب إعادة بناء نفس أداة التنسيق مرارًا وتكرارًا.
48
+
49
+ نظرًا لأن إنشاء أدوات التنسيق مكلف نسبيًا، فإن هذا التخزين المؤقت يحسن الأداء دون تغيير السلوك. يكشف الغلاف عن نفس واجهة برمجة التطبيقات مثل الـ `Intl` الأصلي، لذا فإن الاستخدام متطابق.
50
+
51
+ - التخزين المؤقت يتم لكل عملية وهو شفاف للمستدعين.
52
+
53
+ > إذا لم يكن `Intl.DisplayNames` متاحًا في البيئة، يتم طباعة تحذير واحد خاص بالمطور فقط (فكر في استخدام polyfill).
54
+
55
+ مثال:
56
+
57
+ ```ts
58
+ import { Intl } from "intlayer";
59
+
60
+ const numberFormat = new Intl.NumberFormat("en-GB", {
61
+ style: "currency",
62
+ currency: "GBP",
63
+ });
64
+ numberFormat.format(1234.5); // "£1,234.50"
65
+ ```
66
+
67
+ ## أدوات التنسيق
68
+
69
+ جميع الأدوات المساعدة أدناه مُصدرة من `intlayer`.
70
+
71
+ ### `number(value, options?)`
72
+
73
+ يقوم بتنسيق قيمة رقمية باستخدام التجميع والفواصل العشرية المعتمدة على اللغة.
74
+
75
+ - **value**: `number | string`
76
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
77
+
78
+ أمثلة:
79
+
80
+ ```ts
81
+ import { number } from "intlayer";
82
+
83
+ number(123456.789); // "123,456.789" (في en-US)
84
+ number("1000000", { locale: "fr" }); // "1 000 000"
85
+ number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
86
+ ```
87
+
88
+ ### `percentage(value, options?)`
89
+
90
+ يقوم بتنسيق رقم كسلسلة نسبة مئوية.
91
+
92
+ السلوك: القيم الأكبر من 1 تُفسر كنسب مئوية كاملة ويتم تطبيعها (مثلاً، `25` → `25%`، `0.25` → `25%`).
93
+
94
+ - **value**: `number | string`
95
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
96
+
97
+ أمثلة:
98
+
99
+ ```ts
100
+ import { percentage } from "intlayer";
101
+
102
+ percentage(0.25); // "25%"
103
+ percentage(25); // "25%"
104
+ percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
105
+ ```
106
+
107
+ ### `currency(value, options?)`
108
+
109
+ يقوم بتنسيق القيمة كعملة محلية. القيمة الافتراضية هي `USD` مع خانتين عشريتين.
110
+
111
+ - **value**: `number | string`
112
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
113
+ - الحقول الشائعة: `currency` (مثل `"EUR"`)، `currencyDisplay` (`"symbol" | "code" | "name"`)
114
+
115
+ أمثلة:
116
+
117
+ ```ts
118
+ import { currency } from "intlayer";
119
+
120
+ currency(1234.5, { currency: "EUR" }); // "€1,234.50"
121
+ currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
122
+ ```
123
+
124
+ ### `date(date, optionsOrPreset?)`
125
+
126
+ يقوم بتنسيق قيمة التاريخ/الوقت باستخدام `Intl.DateTimeFormat`.
127
+
128
+ - **date**: `Date | string | number`
129
+ - **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` أو أحد الإعدادات المسبقة:
130
+ - الإعدادات المسبقة: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
131
+
132
+ أمثلة:
133
+
134
+ ```ts
135
+ import { date } from "intlayer";
136
+
137
+ date(new Date(), "short"); // على سبيل المثال، "08/02/25, 14:30"
138
+ date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
139
+ ```
140
+
141
+ ### `relativeTime(from, to = new Date(), options?)`
142
+
143
+ يقوم بتنسيق الوقت النسبي بين لحظتين باستخدام `Intl.RelativeTimeFormat`.
144
+
145
+ - مرر "now" كوسيط أول والهدف كوسيط ثاني للحصول على تعبير طبيعي.
146
+ - **from**: `Date | string | number`
147
+ - **to**: `Date | string | number` (افتراضيًا `new Date()`)
148
+ - **options**: `{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }`
149
+ - الوحدة الافتراضية `unit` هي `"second"`.
150
+
151
+ أمثلة:
152
+
153
+ ```ts
154
+ import { relativeTime } from "intlayer";
155
+
156
+ const now = new Date();
157
+ const in3Days = new Date(now.getTime() + 3 * 864e5);
158
+ relativeTime(now, in3Days, { unit: "day" }); // "بعد 3 أيام"
159
+
160
+ const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
161
+ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "منذ ساعتين"
162
+ ```
163
+
164
+ ### `units(value, options?)`
165
+
166
+ يقوم بتنسيق قيمة رقمية كسلسلة وحدة محلية باستخدام `Intl.NumberFormat` مع `style: 'unit'`.
167
+
168
+ - **value**: `number | string`
169
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
170
+ - الحقول الشائعة: `unit` (مثل `"kilometer"`, `"byte"`)، `unitDisplay` (`"short" | "narrow" | "long"`)
171
+ - القيم الافتراضية: `unit: 'day'`، `unitDisplay: 'short'`، `useGrouping: false`
172
+
173
+ أمثلة:
174
+
175
+ ```ts
176
+ import { units } from "intlayer";
177
+
178
+ units(5, { unit: "kilometer", unitDisplay: "long", locale: "en-GB" }); // "5 kilometers"
179
+ units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B" (يعتمد على اللغة)
180
+ ```
181
+
182
+ ### `compact(value, options?)`
183
+
184
+ يقوم بتنسيق رقم باستخدام التدوين المضغوط (مثل `1.2K`، `1M`).
185
+
186
+ - **value**: `number | string`
187
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }` (يستخدم `notation: 'compact'` ضمنيًا)
188
+
189
+ أمثلة:
190
+
191
+ ```ts
192
+ import { compact } from "intlayer";
193
+
194
+ compact(1200); // "1.2K"
195
+ compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 million"
196
+ ```
197
+
198
+ ## ملاحظات
199
+
200
+ - جميع الأدوات المساعدة تقبل مدخلات من نوع `string`؛ حيث يتم تحويلها داخليًا إلى أرقام أو تواريخ.
201
+ - اللغة الافتراضية هي `internationalization.defaultLocale` التي قمت بتكوينها إذا لم يتم توفير لغة.
202
+ - هذه الأدوات هي أغلفة رقيقة؛ للتنسيق المتقدم، استخدم خيارات `Intl` القياسية.
203
+
204
+ ## نقاط الدخول وإعادة التصدير (`@index.ts`)
205
+
206
+ توجد أدوات التنسيق في الحزمة الأساسية ويتم إعادة تصديرها من الحزم الأعلى للحفاظ على سهولة الاستيراد عبر بيئات التشغيل المختلفة:
207
+
208
+ أمثلة:
209
+
210
+ ```ts
211
+ // كود التطبيق (موصى به)
212
+ import { number, currency, date, Intl } from "intlayer";
213
+ ```
214
+
215
+ ### React
216
+
217
+ مكونات العميل:
218
+
219
+ ```ts
220
+ import { useNumber, useCurrency, useDate } from "react-intlayer/format";
221
+ // أو في تطبيقات Next.js
222
+ import { useNumber, useCurrency, useDate } from "next-intlayer/client/format";
223
+ ```
224
+
225
+ مكونات الخادم (أو بيئة تشغيل React Server):
226
+
227
+ ```ts
228
+ import { useNumber, useCurrency, useDate } from "intlayer/server/format";
229
+ // أو في تطبيقات Next.js
230
+ import { useNumber, useCurrency, useDate } from "next-intlayer/server/format";
231
+ ```
232
+
233
+ > هذه الخطافات ستأخذ اللغة من `IntlayerProvider` أو `IntlayerServerProvider`
234
+
235
+ ## تاريخ الوثيقة
236
+
237
+ | الإصدار | التاريخ | التغييرات |
238
+ | ------- | ---------- | ------------------------- |
239
+ | 5.8.0 | 2025-08-18 | إضافة توثيق أدوات التنسيق |