@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
@@ -149,8 +149,8 @@ const clientComponentContent = {
149
149
  content: {
150
150
  myTranslatedContent: t({
151
151
  en: "Hello World",
152
- fr: "Bonjour le monde",
153
152
  es: "Hola Mundo",
153
+ fr: "Bonjour le monde",
154
154
  }),
155
155
  numberOfCar: enu({
156
156
  "<-1": "Less than minus one car",
@@ -175,8 +175,8 @@ const clientComponentContent = {
175
175
  content: {
176
176
  myTranslatedContent: t({
177
177
  en: "Hello World",
178
- fr: "Bonjour le monde",
179
178
  es: "Hola Mundo",
179
+ fr: "Bonjour le monde",
180
180
  }),
181
181
  numberOfCar: enu({
182
182
  "<-1": "Moins d'une voiture en moins",
@@ -201,8 +201,8 @@ const clientComponentContent = {
201
201
  content: {
202
202
  myTranslatedContent: t({
203
203
  en: "Hello World",
204
- fr: "Bonjour le monde",
205
204
  es: "Hola Mundo",
205
+ fr: "Bonjour le monde",
206
206
  }),
207
207
  numberOfCar: enu({
208
208
  "<-1": "Moins d'une voiture en dessous de moins un",
@@ -110,8 +110,8 @@ const clientComponentContent = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Less than minus one car",
@@ -136,8 +136,8 @@ const clientComponentContent = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Moins qu'une voiture en moins",
@@ -162,8 +162,8 @@ const clientComponentContent = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Moins d'une voiture en moins",
@@ -110,8 +110,8 @@ const component1Content = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Moins d'une voiture en moins",
@@ -136,8 +136,8 @@ const component1Content = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Moins d'une voiture en moins",
@@ -162,8 +162,8 @@ const component1Content = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Moins d'une voiture en moins",
package/docs/hi/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: स्वचालित सामग्री प्रबंधन और परिनियोजन के लिए अपने CI/CD पाइपलाइन में Intlayer को एकीकृत करना सीखें।
5
+ description: स्वचालित सामग्री प्रबंधन और परिनियोजन के लिए Intlayer को अपने CI/CD पाइपलाइन में एकीकृत करना सीखें।
6
6
  keywords:
7
7
  - CI/CD
8
8
  - सतत एकीकरण
@@ -19,13 +19,13 @@ slugs:
19
19
 
20
20
  # CI/CD पाइपलाइन में स्वचालित अनुवाद उत्पन्न करें
21
21
 
22
- Intlayer आपको अपनी सामग्री घोषणा फ़ाइलों के लिए अनुवादों को स्वचालित रूप से उत्पन्न करने की अनुमति देता है। आपके कार्यप्रवाह के आधार पर इसे प्राप्त करने के कई तरीके हैं।
22
+ Intlayer आपके सामग्री घोषणा फ़ाइलों के लिए अनुवादों का स्वचालित उत्पादन करने की अनुमति देता है। आपके कार्यप्रवाह के आधार पर इसे प्राप्त करने के कई तरीके हैं।
23
23
 
24
24
  ## CMS का उपयोग करना
25
25
 
26
- Intlayer के साथ, आप एक ऐसा कार्यप्रवाह अपना सकते हैं जहाँ केवल एक ही स्थानीय भाषा स्थानीय रूप से घोषित की जाती है, जबकि सभी अनुवाद CMS के माध्यम से दूरस्थ रूप से प्रबंधित किए जाते हैं। इससे सामग्री और अनुवाद पूरी तरह से कोडबेस से अलग हो जाते हैं, जो सामग्री संपादकों के लिए अधिक लचीलापन प्रदान करता है और हॉट कंटेंट रीलोडिंग सक्षम करता है (परिवर्तन लागू करने के लिए एप्लिकेशन को पुनर्निर्माण करने की आवश्यकता नहीं होती)।
26
+ Intlayer के साथ, आप एक ऐसा कार्यप्रवाह अपना सकते हैं जहाँ केवल एक ही स्थानीय भाषा स्थानीय रूप से घोषित की जाती है, जबकि सभी अनुवाद CMS के माध्यम से दूरस्थ रूप से प्रबंधित किए जाते हैं। यह सामग्री और अनुवादों को कोडबेस से पूरी तरह से अलग करने की अनुमति देता है, जिससे सामग्री संपादकों के लिए अधिक लचीलापन मिलता है और हॉट कंटेंट रीलोडिंग सक्षम होती है (परिवर्तन लागू करने के लिए एप्लिकेशन को पुनः निर्माण करने की आवश्यकता नहीं होती)।
27
27
 
28
- ### उदाहरण कॉन्फ़िगरेशन
28
+ ### उदाहरण विन्यास
29
29
 
30
30
  ```ts fileName="intlayer.config.ts"
31
31
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -41,11 +41,11 @@ const config: IntlayerConfig = {
41
41
 
42
42
  applicationURL: process.env.APPLICATION_URL, // CMS द्वारा उपयोग किया जाने वाला एप्लिकेशन URL
43
43
 
44
- clientId: process.env.INTLAYER_CLIENT_ID, // CMS क्रेडेंशियल्स
44
+ clientId: process.env.INTLAYER_CLIENT_ID, // CMS प्रमाणपत्र
45
45
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
46
46
  },
47
47
  ai: {
48
- applicationContext: "This is a test application", // सुनिश्चित करता है कि अनुवाद सुसंगत रूप से उत्पन्न हो
48
+ applicationContext: "यह एक परीक्षण एप्लिकेशन है", // सुनिश्चित करता है कि अनुवाद सुसंगत रूप से उत्पन्न हों
49
49
  },
50
50
  };
51
51
 
@@ -56,9 +56,9 @@ CMS के बारे में अधिक जानने के लिए,
56
56
 
57
57
  ## Husky का उपयोग करना
58
58
 
59
- आप [Husky](https://typicode.github.io/husky/) का उपयोग करके अपने स्थानीय Git वर्कफ़्लो में अनुवाद उत्पादन को एकीकृत कर सकते हैं।
59
+ आप अपने स्थानीय Git वर्कफ़्लो में अनुवाद निर्माण को [Husky](https://typicode.github.io/husky/) का उपयोग करके एकीकृत कर सकते हैं।
60
60
 
61
- ### उदाहरण कॉन्फ़िगरेशन
61
+ ### उदाहरण विन्यास
62
62
 
63
63
  ```ts fileName="intlayer.config.ts"
64
64
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -66,7 +66,7 @@ import { Locales, type IntlayerConfig } from "intlayer";
66
66
  const config: IntlayerConfig = {
67
67
  internationalization: {
68
68
  locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],
69
- requiredLocales: [Locales.ENGLISH], // वैकल्पिक भाषाओं को दूरस्थ रूप से संभाला जाता है
69
+ requiredLocales: [Locales.ENGLISH], // वैकल्पिक लोकल दूरस्थ रूप से संभाले जाते हैं
70
70
  defaultLocale: Locales.ENGLISH,
71
71
  },
72
72
  editor: {
@@ -75,9 +75,9 @@ const config: IntlayerConfig = {
75
75
  },
76
76
  ai: {
77
77
  provider: "openai",
78
- apiKey: process.env.OPENAI_API_KEY, // अपना API कुंजी उपयोग करें
78
+ apiKey: process.env.OPENAI_API_KEY, // अपना स्वयं का API कुंजी उपयोग करें
79
79
 
80
- applicationContext: "This is a test application", // सुनिश्चित करता है कि अनुवाद सुसंगत रूप से उत्पन्न हो
80
+ applicationContext: "यह एक परीक्षण एप्लिकेशन है", // सुनिश्चित करता है कि अनुवाद सुसंगत रूप से उत्पन्न हों
81
81
  },
82
82
  };
83
83
 
@@ -108,61 +108,84 @@ npx intlayer fill --base-dir ./app2 --unpushed --mode fill
108
108
  Intlayer एक CLI कमांड प्रदान करता है जो शब्दकोश सामग्री को स्वचालित रूप से भरने और समीक्षा करने के लिए है। इसे GitHub Actions का उपयोग करके आपके CI/CD वर्कफ़्लो में एकीकृत किया जा सकता है।
109
109
 
110
110
  ```yaml fileName=".github/workflows/intlayer-translate.yml"
111
- name: Intlayer Auto-Fill
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
+ # चरण 1: रिपॉजिटरी से नवीनतम कोड प्राप्त करें
136
137
  - name: ⬇️ रिपॉजिटरी चेकआउट करें
137
- uses: actions/checkout@v3
138
+ uses: actions/checkout@v4
138
139
  with:
139
- persist-credentials: true
140
+ persist-credentials: true # PRs बनाने के लिए क्रेडेंशियल्स रखें
141
+ fetch-depth: 0 # डिफ़ एनालिसिस के लिए पूरी गिट हिस्ट्री प्राप्त करें
140
142
 
141
- - name: 🟢 Node.js सेटअप करें
142
- uses: actions/setup-node@v3
143
+ # चरण 2: Node.js पर्यावरण सेट करें
144
+ - name: 🟢 Node.js सेट करें
145
+ uses: actions/setup-node@v4
143
146
  with:
144
- node-version: 20
147
+ node-version: 20 # स्थिरता के लिए Node.js 20 LTS का उपयोग करें
148
+
149
+ # चरण 3: प्रोजेक्ट निर्भरताएँ इंस्टॉल करें
150
+ - name: 📦 निर्भरताएँ इंस्टॉल करें
151
+ run: npm install
145
152
 
146
- - name: 📦 निर्भरताएँ स्थापित करें
147
- run: npm ci
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
 
161
+ # चरण 6: AI का उपयोग करके स्वचालित रूप से गायब अनुवाद भरें
152
162
  - name: 🤖 गायब अनुवादों को स्वचालित रूप से भरें
153
- run: npx intlayer fill --git-diff --mode fill
154
-
155
- - name: 📤 अनुवाद PR बनाएं या अपडेट करें
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
162
-
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: गायब अनुवादों को स्वचालित रूप से भरें [skip ci]"
183
+ git push origin HEAD:${{ github.head_ref }}
163
184
  ```
164
185
 
165
- > हस्की के लिए जैसा है, मोनोरिपो के मामले में, आप प्रत्येक ऐप को क्रमिक रूप से संसाधित करने के लिए `--base-dir` तर्क का उपयोग कर सकते हैं।
186
+ पर्यावरण चर सेट करने के लिए, GitHub Settings Secrets and variables Actions पर जाएं और सीक्रेट जोड़ें।
187
+
188
+ > Husky के समान, मोनोरिपो के मामले में, आप प्रत्येक ऐप को क्रमिक रूप से संसाधित करने के लिए `--base-dir` तर्क का उपयोग कर सकते हैं।
166
189
 
167
190
  > डिफ़ॉल्ट रूप से, `--git-diff` तर्क उन शब्दकोशों को फ़िल्टर करता है जिनमें बेस (डिफ़ॉल्ट `origin/main`) से वर्तमान शाखा (डिफ़ॉल्ट: `HEAD`) तक के परिवर्तन शामिल होते हैं।
168
191
 
@@ -170,4 +193,6 @@ jobs:
170
193
 
171
194
  ## दस्तावेज़ इतिहास
172
195
 
173
- - 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` APIs के ऊपर बनाए गए हल्के हेल्पर्स का एक सेट प्रदान करता है, साथ ही एक कैश्ड `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` के समान API प्रदान करता है, इसलिए उपयोग समान होता है।
50
+
51
+ - कैशिंग प्रति प्रक्रिया होती है और कॉलर्स के लिए पारदर्शी होती है।
52
+
53
+ > यदि `Intl.DisplayNames` पर्यावरण में उपलब्ध नहीं है, तो एक बार केवल डेवलपर के लिए चेतावनी प्रदर्शित की जाती है (पॉलीफिल पर विचार करें)।
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" }); // "in 3 days"
159
+
160
+ const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
161
+ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 hours ago"
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" (locale-dependent)
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
+ ### रिएक्ट
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
+ सर्वर कंपोनेंट्स (या रिएक्ट सर्वर रनटाइम):
226
+
227
+ ```ts
228
+ import { useNumber, useCurrency, useDate } from "react-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 | फॉर्मेटर्स दस्तावेज़ जोड़ा |