@intlayer/docs 8.10.0 → 8.10.1

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 (43) hide show
  1. package/docs/ar/dictionary/markdown.md +336 -7
  2. package/docs/ar/interest_of_intlayer.md +1 -1
  3. package/docs/bn/interest_of_intlayer.md +1 -1
  4. package/docs/cs/interest_of_intlayer.md +1 -1
  5. package/docs/de/dictionary/markdown.md +336 -7
  6. package/docs/de/interest_of_intlayer.md +1 -1
  7. package/docs/en/dictionary/markdown.md +322 -8
  8. package/docs/en/interest_of_intlayer.md +1 -1
  9. package/docs/en-GB/dictionary/markdown.md +336 -7
  10. package/docs/en-GB/interest_of_intlayer.md +1 -1
  11. package/docs/es/dictionary/markdown.md +336 -7
  12. package/docs/es/interest_of_intlayer.md +1 -1
  13. package/docs/fr/dictionary/markdown.md +336 -7
  14. package/docs/fr/interest_of_intlayer.md +1 -1
  15. package/docs/hi/dictionary/markdown.md +336 -7
  16. package/docs/hi/interest_of_intlayer.md +1 -1
  17. package/docs/id/dictionary/markdown.md +336 -7
  18. package/docs/id/interest_of_intlayer.md +1 -1
  19. package/docs/it/dictionary/markdown.md +336 -7
  20. package/docs/it/interest_of_intlayer.md +1 -1
  21. package/docs/ja/interest_of_intlayer.md +1 -1
  22. package/docs/ko/dictionary/markdown.md +336 -7
  23. package/docs/ko/interest_of_intlayer.md +1 -1
  24. package/docs/nl/interest_of_intlayer.md +1 -1
  25. package/docs/pl/dictionary/markdown.md +336 -7
  26. package/docs/pl/interest_of_intlayer.md +1 -1
  27. package/docs/pt/benchmark/solid.md +1 -1
  28. package/docs/pt/benchmark/svelte.md +1 -1
  29. package/docs/pt/dictionary/markdown.md +336 -7
  30. package/docs/pt/interest_of_intlayer.md +1 -1
  31. package/docs/ru/dictionary/markdown.md +445 -3
  32. package/docs/ru/interest_of_intlayer.md +1 -1
  33. package/docs/tr/dictionary/markdown.md +336 -7
  34. package/docs/tr/interest_of_intlayer.md +1 -1
  35. package/docs/uk/dictionary/markdown.md +336 -7
  36. package/docs/uk/interest_of_intlayer.md +1 -1
  37. package/docs/ur/interest_of_intlayer.md +1 -1
  38. package/docs/vi/dictionary/markdown.md +336 -7
  39. package/docs/vi/interest_of_intlayer.md +1 -1
  40. package/docs/zh/dictionary/markdown.md +336 -7
  41. package/docs/zh/interest_of_intlayer.md +1 -1
  42. package/docs/zh-TW/interest_of_intlayer.md +1 -1
  43. package/package.json +7 -7
@@ -130,8 +130,6 @@ Intlayer Markdown सिंटैक्स का उपयोग करके
130
130
  </Tab>
131
131
  </Tabs>
132
132
 
133
- ---
134
-
135
133
  ## Markdown रेंडरिंग
136
134
 
137
135
  Intlayer Markdown रेंडर करने के दो स्वतंत्र तरीके प्रदान करता है:
@@ -147,7 +145,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
147
145
  ### 1. स्वचालित रेंडरिंग (`useIntlayer` के माध्यम से)
148
146
 
149
147
  <Tabs group="framework">
150
- <Tab label="React / Next.js" value="react">
148
+ <Tab label="React" value="react">
151
149
  Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
152
150
 
153
151
  ```tsx fileName="App.tsx"
@@ -197,6 +195,57 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
197
195
  {myMarkdownContent.metadata.title}
198
196
  ```
199
197
 
198
+ </Tab>
199
+ <Tab label="Next.js" value="nextjs">
200
+ Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
201
+
202
+ ```tsx fileName="App.tsx"
203
+ import { useIntlayer } from "next-intlayer";
204
+ import { MarkdownProvider } from "next-intlayer/markdown";
205
+
206
+ const AppContent = () => {
207
+ const { myMarkdownContent } = useIntlayer("app");
208
+
209
+ return <div>{myMarkdownContent}</div>;
210
+ };
211
+
212
+ const App = () => (
213
+ <MarkdownProvider
214
+ components={{
215
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
216
+ MyButton: (props) => <button {...props} />, // MDX घटक
217
+ }}
218
+ >
219
+ <AppContent />
220
+ </MarkdownProvider>
221
+ );
222
+ ```
223
+
224
+ > यदि `MarkdownProvider` मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
225
+
226
+ आप `.use()` विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
227
+
228
+ ```tsx
229
+ {myMarkdownContent.use({
230
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
231
+ })}
232
+ ```
233
+
234
+ आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
235
+
236
+ ```tsx
237
+ {myMarkdownContent.value}
238
+ {String(myMarkdownContent)}
239
+ {myMarkdownContent.toString()}
240
+ ```
241
+
242
+ और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
243
+
244
+ ```tsx
245
+ {myMarkdownContent.metadata}
246
+ {myMarkdownContent.metadata.title}
247
+ ```
248
+
200
249
  </Tab>
201
250
  <Tab label="Vue" value="vue">
202
251
  Vue में, Markdown सामग्री को अंतर्निहित `component` टैग का उपयोग करके या सीधे एक नोड के रूप में रेंडर किया जा सकता है।
@@ -441,7 +490,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
441
490
  ये यूटिलिटीज **केवल कच्चे Markdown स्ट्रिंग्स** को रेंडर करती हैं और `useIntlayer` से स्वतंत्र हैं। जब आपको अपने डिक्शनरी के अलावा अन्य स्रोतों से Markdown रेंडर करने की आवश्यकता हो, तो इनका उपयोग करें।
442
491
 
443
492
  <Tabs group="framework">
444
- <Tab label="React / Next.js" value="react">
493
+ <Tab label="React" value="react">
445
494
 
446
495
  #### `<MarkdownRenderer />` घटक
447
496
 
@@ -479,6 +528,45 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
479
528
  const jsx = renderMarkdown("# मेरा शीर्षक", { forceBlock: true });
480
529
  ```
481
530
 
531
+ </Tab>
532
+ <Tab label="Next.js" value="nextjs">
533
+
534
+ #### `<MarkdownRenderer />` घटक
535
+
536
+ विशिष्ट विकल्पों के साथ एक Markdown स्ट्रिंग रेंडर करता है।
537
+
538
+ ```tsx
539
+ import { MarkdownRenderer } from "next-intlayer/markdown";
540
+
541
+ <MarkdownRenderer forceBlock={true} tagfilter={true}>
542
+ {"# मेरा शीर्षक"}
543
+ </MarkdownRenderer>
544
+ ```
545
+
546
+ #### `useMarkdownRenderer()` हुक
547
+
548
+ पूर्व-कॉन्फ़िगर रेंडरर फ़ंक्शन प्राप्त करें।
549
+
550
+ ```tsx
551
+ import { useMarkdownRenderer } from "next-intlayer/markdown";
552
+
553
+ const renderMarkdown = useMarkdownRenderer({
554
+ forceBlock: true,
555
+ components: { h1: (props) => <h1 {...props} className="custom" /> }
556
+ });
557
+
558
+ return renderMarkdown("# मेरा शीर्षक");
559
+ ```
560
+
561
+ #### `renderMarkdown()` उपयोगिता
562
+ घटकों के बाहर रेंडरिंग के लिए स्टैंडअलोन उपयोगिता।
563
+
564
+ ```tsx
565
+ import { renderMarkdown } from "next-intlayer/markdown";
566
+
567
+ const jsx = renderMarkdown("# मेरा शीर्षक", { forceBlock: true });
568
+ ```
569
+
482
570
  </Tab>
483
571
  <Tab label="Vue" value="vue">
484
572
 
@@ -608,14 +696,12 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
608
696
  </Tab>
609
697
  </Tabs>
610
698
 
611
- ---
612
-
613
699
  ## `MarkdownProvider` के साथ ग्लोबल कॉन्फ़िगरेशन
614
700
 
615
701
  `MarkdownProvider` (या इसके फ्रेमवर्क समतुल्य) आपके संपूर्ण एप्लिकेशन के लिए Markdown रेंडरिंग पाइपलाइन को कॉन्फ़िगर करता है। यह स्वचालित `useIntlayer` रेंडरिंग और हेल्पर यूटिलिटीज दोनों पर लागू होता है। यहाँ सेट किए गए विकल्प डिफ़ॉल्ट हैं — `.use()` उन्हें नोड स्तर पर ओवरराइड करता है।
616
702
 
617
703
  <Tabs group="framework">
618
- <Tab label="React / Next.js" value="react">
704
+ <Tab label="React" value="react">
619
705
 
620
706
  ```tsx fileName="AppProvider.tsx"
621
707
  import { MarkdownProvider } from "react-intlayer/markdown";
@@ -633,6 +719,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
633
719
  );
634
720
  ```
635
721
 
722
+
636
723
  > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
637
724
 
638
725
  आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
@@ -655,6 +742,48 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
655
742
 
656
743
  > अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
657
744
 
745
+ </Tab>
746
+ <Tab label="Next.js" value="nextjs">
747
+
748
+ ```tsx fileName="AppProvider.tsx"
749
+ import { MarkdownProvider } from "next-intlayer/markdown";
750
+
751
+ export const AppProvider = ({ children }) => (
752
+ <MarkdownProvider
753
+ components={{
754
+ h1: (props) => <h1 style={{color: 'green'}} {...props} />,
755
+ a: ({ href, ...props }) => <a style={{color: 'red'}} {...props} />,
756
+ MyCustomJSXComponent: (props) => <span style={{color: 'red'}} {...props} />,
757
+ }}
758
+ >
759
+ {children}
760
+ </MarkdownProvider>
761
+ );
762
+ ```
763
+
764
+
765
+ > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
766
+
767
+ आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
768
+
769
+ ```tsx fileName="AppProvider.tsx"
770
+ import { MarkdownProvider } from "next-intlayer/markdown";
771
+
772
+ export const AppProvider = ({ children }) => (
773
+ <MarkdownProvider
774
+ renderMarkdown={async (md) => {
775
+ // Use dynamic import to reduce the bundle size of your application
776
+ const { renderMarkdown } = await import('next-intlayer/markdown');
777
+ return renderMarkdown(md);
778
+ }}
779
+ >
780
+ {children}
781
+ </MarkdownProvider>
782
+ );
783
+ ```
784
+
785
+ > अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
786
+
658
787
  </Tab>
659
788
  <Tab label="Vue" value="vue">
660
789
 
@@ -680,6 +809,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
680
809
  app.mount("#app");
681
810
  ```
682
811
 
812
+
813
+ > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
814
+
683
815
  आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
684
816
 
685
817
  ```typescript fileName="main.ts"
@@ -721,6 +853,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
721
853
  </MarkdownProvider>
722
854
  ```
723
855
 
856
+
857
+ > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
858
+
724
859
  आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
725
860
 
726
861
  ```svelte fileName="App.svelte"
@@ -757,6 +892,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
757
892
  );
758
893
  ```
759
894
 
895
+
896
+ > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
897
+
760
898
  आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
761
899
 
762
900
  ```tsx fileName="AppProvider.tsx"
@@ -793,6 +931,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
793
931
  );
794
932
  ```
795
933
 
934
+
935
+ > MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
936
+
796
937
  आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
797
938
 
798
939
  ```tsx fileName="AppProvider.tsx"
@@ -836,3 +977,191 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
836
977
 
837
978
  </Tab>
838
979
  </Tabs>
980
+
981
+ ## सस्पेंस (Suspense)
982
+
983
+ Intlayer Markdown रेंडरर गतिशील रूप से लोड किया गया है। अनुकूलित होने के बावजूद, अंतर्निहित पार्सर चंक लगभग 55kb है। इसे सिंक्रोनस रूप से लोड करने से प्रारंभिक पृष्ठ रेंडरिंग में देरी होती है और First Contentful Paint (FCP) कम हो जाता है।
984
+
985
+ UI को ब्लॉक होने से रोकने के लिए, Intlayer React के Suspense API के साथ एकीकृत होता है। यह पार्सर को पृष्ठभूमि में लाता है और डाउनलोड के दौरान एक Promise थ्रो करता है।
986
+
987
+ Intlayer Markdown रेंडर करने वाले किसी भी घटक को `<Suspense>` बाउंड्री में लपेटें। यह चंक डाउनलोड होने के दौरान एक स्थानीयकृत फ़ॉलबैक स्थिति प्रदर्शित करता है, जिससे आपके शेष DOM को तुरंत रेंडर करने की अनुमति मिलती है।
988
+
989
+ चेतावनी: यदि आप `<Suspense>` बाउंड्री प्रदान नहीं करते हैं, तो 55kb चंक पूरी तरह से लोड होने तक React रूट स्तर पर निलंबित हो जाएगा या पूरे घटक ट्री को रेंडर होने से रोक देगा।
990
+
991
+ <Tabs>
992
+ <Tab label="Next.js" value="nextjs">
993
+
994
+ Next.js ऐप राउटर में, आप क्लाइंट घटकों के लिए React `Suspense` या सर्वर घटकों के लिए `loading.tsx` फ़ाइल का उपयोग कर सकते हैं।
995
+
996
+ **क्लाइंट घटक:**
997
+
998
+ ```tsx fileName="components/MyComponent.tsx"
999
+ "use client";
1000
+ import { useIntlayer } from "next-intlayer";
1001
+ import { Suspense } from "react";
1002
+
1003
+ const MyComponent = () => {
1004
+ const markdownContent = useIntlayer("my-markdown");
1005
+
1006
+ return (
1007
+ <Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
1008
+ );
1009
+ };
1010
+ ```
1011
+
1012
+ **`loading.tsx` के साथ सर्वर घटक:**
1013
+
1014
+ ```tsx fileName="app/loading.tsx"
1015
+ export default function Loading() {
1016
+ return <div>Loading...</div>;
1017
+ }
1018
+ ```
1019
+
1020
+ ```tsx fileName="app/page.tsx"
1021
+ import { useIntlayer } from "next-intlayer/server";
1022
+
1023
+ const MyPage = () => {
1024
+ const markdownContent = useIntlayer("my-markdown");
1025
+ return <div>{markdownContent}</div>;
1026
+ };
1027
+
1028
+ export default MyPage;
1029
+ ```
1030
+
1031
+ </Tab>
1032
+
1033
+ <Tab label="React" value="react">
1034
+
1035
+ ```tsx
1036
+ import { useIntlayer } from "react-intlayer";
1037
+ import { Suspense } from "react";
1038
+
1039
+ const MyComponent = () => {
1040
+ const markdownContent = useIntlayer("my-markdown");
1041
+
1042
+ return (
1043
+ <Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
1044
+ );
1045
+ };
1046
+ ```
1047
+
1048
+ </Tab>
1049
+
1050
+ <Tab label="Vue" value="vue">
1051
+
1052
+ Vue में एक अंतर्निहित `<Suspense>` घटक है। Markdown सामग्री रेंडर करने वाले घटक को `<Suspense>` बाउंड्री में लपेटें।
1053
+
1054
+ ```vue fileName="MyComponent.vue"
1055
+ <script setup>
1056
+ import { useIntlayer } from "vue-intlayer";
1057
+
1058
+ const { markdownContent } = useIntlayer("my-markdown");
1059
+ </script>
1060
+
1061
+ <template>
1062
+ <Suspense>
1063
+ <component :is="markdownContent" />
1064
+ <template #fallback>
1065
+ <div>Loading...</div>
1066
+ </template>
1067
+ </Suspense>
1068
+ </template>
1069
+ ```
1070
+
1071
+ </Tab>
1072
+ <Tab label="Svelte" value="svelte">
1073
+
1074
+ Svelte में Suspense API के समकक्ष नहीं है। Markdown सामग्री के एसिंक्रोनस रेंडरिंग को संभालने के लिए `{#await}` ब्लॉक का उपयोग करें।
1075
+
1076
+ ```svelte fileName="MyComponent.svelte"
1077
+ <script lang="ts">
1078
+ import { useIntlayer } from "svelte-intlayer";
1079
+
1080
+ const content = useIntlayer("my-markdown");
1081
+ </script>
1082
+
1083
+ {#await $content.markdownContent}
1084
+ <div>Loading...</div>
1085
+ {:then rendered}
1086
+ {@html rendered}
1087
+ {/await}
1088
+ ```
1089
+
1090
+ </Tab>
1091
+ <Tab label="Preact" value="preact">
1092
+
1093
+ Preact `preact/compat` के माध्यम से React के Suspense API का समर्थन करता है।
1094
+
1095
+ ```tsx fileName="MyComponent.tsx"
1096
+ import { useIntlayer } from "preact-intlayer";
1097
+ import { Suspense } from "preact/compat";
1098
+
1099
+ const MyComponent = () => {
1100
+ const markdownContent = useIntlayer("my-markdown");
1101
+
1102
+ return (
1103
+ <Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
1104
+ );
1105
+ };
1106
+ ```
1107
+
1108
+ </Tab>
1109
+ <Tab label="Solid" value="solid">
1110
+
1111
+ Solid का अपना `<Suspense>` घटक `solid-js` से है।
1112
+
1113
+ ```tsx fileName="MyComponent.tsx"
1114
+ import { useIntlayer } from "solid-intlayer";
1115
+ import { Suspense } from "solid-js";
1116
+
1117
+ const MyComponent = () => {
1118
+ const { markdownContent } = useIntlayer("my-markdown");
1119
+
1120
+ return (
1121
+ <Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
1122
+ );
1123
+ };
1124
+ ```
1125
+
1126
+ </Tab>
1127
+ <Tab label="Angular" value="angular">
1128
+
1129
+ Angular में Suspense API नहीं है। लेज़ी-लोडेड Markdown सामग्री (Angular 17+ की आवश्यकता है) को संभालने के लिए Angular के आस्थगित दृश्य (`@defer`) का उपयोग करें।
1130
+
1131
+ ```typescript fileName="my.component.ts"
1132
+ import { Component } from "@angular/core";
1133
+ import { useIntlayer } from "angular-intlayer";
1134
+
1135
+ @Component({
1136
+ selector: "app-my",
1137
+ template: `
1138
+ @defer {
1139
+ <div [innerHTML]="content().markdownContent"></div>
1140
+ } @loading {
1141
+ <div>Loading...</div>
1142
+ }
1143
+ `,
1144
+ })
1145
+ export class MyComponent {
1146
+ content = useIntlayer("my-markdown");
1147
+ }
1148
+ ```
1149
+
1150
+ </Tab>
1151
+ </Tabs>
1152
+
1153
+ ---
1154
+
1155
+ ## विकल्प संदर्भ
1156
+
1157
+ इन विकल्पों को `MarkdownProvider`, `MarkdownRenderer`, `useMarkdownRenderer` और `renderMarkdown` में पास किया जा सकता है।
1158
+
1159
+ | Option | Type | Default | विवरण |
1160
+ | :-------------------- | :---------- | :------ | :------------------------------------------------------------------------------------- |
1161
+ | `forceBlock` | `boolean` | `false` | आउटपुट को ब्लॉक-स्तरीय तत्व (उदा., `<div>`) में लपेटने के लिए बाध्य करता है। |
1162
+ | `forceInline` | `boolean` | `false` | आउटपुट को इनलाइन तत्व (उदा., `<span>`) में लपेटने के लिए बाध्य करता है। |
1163
+ | `tagfilter` | `boolean` | `true` | खतरनाक HTML टैग को हटाकर सुरक्षा में सुधार के लिए GitHub टैग फ़िल्टर को सक्षम करता है। |
1164
+ | `preserveFrontmatter` | `boolean` | `false` | यदि `true` है, तो Markdown स्ट्रिंग के प्रारंभ में फ्रंटमैटर को नहीं हटाया जाएगा। |
1165
+ | `components` | `Overrides` | `{}` | कस्टम घटकों के लिए HTML टैग का मानचित्र (उदा., `{ h1: MyHeading }`)। |
1166
+ | `wrapper` | `Component` | `null` | रेंडर किए गए Markdown को लपेटने के लिए एक कस्टम घटक। |
1167
+ | `renderMarkdown` | `Function` | `null` | डिफ़ॉल्ट Markdown कंपाइलर को पूरी तरह से बदलने के लिए एक कस्टम रेंडरिंग फ़ंक्शन। |
@@ -224,7 +224,7 @@ export const ComponentExample = () => {
224
224
 
225
225
  GitHub सितारे किसी प्रोजेक्ट की लोकप्रियता, सामुदायिक विश्वास और दीर्घकालिक प्रासंगिकता का एक मजबूत संकेतक हैं। हालांकि यह तकनीकी गुणवत्ता का प्रत्यक्ष माप नहीं है, वे दर्शाते हैं कि कितने डेवलपर्स प्रोजेक्ट को उपयोगी पाते हैं, इसकी प्रगति का पालन करते हैं, और इसे अपनाने की संभावना रखते हैं। किसी प्रोजेक्ट के मूल्य का अनुमान लगाने के लिए, सितारे विकल्पों के बीच कर्षण की तुलना करने में मदद करते हैं और पारिस्थितिकी तंत्र के विकास में अंतर्दृष्टि प्रदान करते हैं।
226
226
 
227
- [![Star History Chart](https://api.star-history.com/chart?repos=formatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Camannn/next-intl%2Cintlify/vue-i18n%2Caymericzip/intlayer%2Copral/inlang&type=date&legend=top-left)](https://api.star-history.com/chart?repos=formatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Amannn/next-intl%2Cintlify/vue-i18n%2Caymericzip/intlayer%2Copral/inlang&type=date&legend=top-left)
227
+ [![Star History Chart](https://api.star-history.com/chart?repos=aymericzip/intlayer%2Cformatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Camannn/next-intl%2Cintlify/vue-i18n%2Ccodingcommons/typesafe-i18n%2Copral/paraglide-js&type=date&legend=top-left)](https://www.star-history.com/#aymericzip/intlayer&formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&codingcommons/typesafe-i18n&opral/paraglide-js)
228
228
 
229
229
  ---
230
230