@intlayer/docs 8.9.6 → 8.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/en/vue-i18n_vs_intlayer.md +0 -2
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/id/vue-i18n_vs_intlayer.md +0 -2
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/pl/vue-i18n_vs_intlayer.md +0 -2
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/tr/vue-i18n_vs_intlayer.md +0 -2
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/uk/vue-i18n_vs_intlayer.md +0 -2
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
- package/blog/vi/vue-i18n_vs_intlayer.md +0 -2
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts.map +1 -1
- package/dist/types/frequentQuestions.d.ts.map +1 -1
- package/dist/types/legal.d.ts.map +1 -1
- package/docs/ar/interest_of_intlayer.md +105 -80
- package/docs/bn/interest_of_intlayer.md +235 -0
- package/docs/cs/interest_of_intlayer.md +235 -0
- package/docs/de/interest_of_intlayer.md +96 -74
- package/docs/en/configuration.md +2 -1
- package/docs/en/interest_of_intlayer.md +1 -3
- package/docs/en-GB/configuration.md +2 -1
- package/docs/en-GB/interest_of_intlayer.md +57 -33
- package/docs/es/interest_of_intlayer.md +26 -2
- package/docs/fr/interest_of_intlayer.md +45 -21
- package/docs/hi/interest_of_intlayer.md +112 -88
- package/docs/id/interest_of_intlayer.md +80 -82
- package/docs/it/interest_of_intlayer.md +94 -69
- package/docs/ja/interest_of_intlayer.md +106 -81
- package/docs/ko/interest_of_intlayer.md +99 -74
- package/docs/nl/interest_of_intlayer.md +235 -0
- package/docs/pl/interest_of_intlayer.md +84 -84
- package/docs/pt/interest_of_intlayer.md +89 -67
- package/docs/ru/interest_of_intlayer.md +93 -69
- package/docs/tr/interest_of_intlayer.md +94 -91
- package/docs/uk/interest_of_intlayer.md +93 -97
- package/docs/ur/interest_of_intlayer.md +235 -0
- package/docs/vi/interest_of_intlayer.md +81 -80
- package/docs/zh/interest_of_intlayer.md +97 -72
- package/docs/zh-TW/interest_of_intlayer.md +235 -0
- package/package.json +6 -6
- package/src/blog.ts +4 -1
- package/src/frequentQuestions.ts +4 -1
- package/src/legal.ts +4 -1
|
@@ -1454,7 +1454,7 @@ The set up of the middleware centralized in the `intlayer.config.ts` file.
|
|
|
1454
1454
|
|
|
1455
1455
|
نجوم GitHub هي مؤشر قوي على شعبية المشروع، وثقة المجتمع، وأهميته على المدى الطويل. وعلى الرغم من أنها ليست مقياسًا مباشرًا للجودة التقنية، إلا أنها تعكس عدد المطورين الذين يجدون المشروع مفيدًا، ويتابعون تقدمه، ومن المحتمل أن يتبنوه. لتقدير قيمة المشروع، تساعد النجوم في مقارنة الجذب بين البدائل وتوفر رؤى حول نمو النظام البيئي.
|
|
1456
1456
|
|
|
1457
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1458
1458
|
|
|
1459
1459
|
---
|
|
1460
1460
|
|
|
@@ -1364,7 +1364,7 @@ Wenn Sie eine minimale Einrichtung bevorzugen und etwas manuelle Verkabelung akz
|
|
|
1364
1364
|
|
|
1365
1365
|
GitHub-Sterne sind ein starkes Indiz für die Popularität eines Projekts, das Vertrauen der Community und die langfristige Relevanz. Obwohl sie kein direktes Maß für die technische Qualität sind, spiegeln sie wider, wie viele Entwickler das Projekt nützlich finden, seinen Fortschritt verfolgen und es wahrscheinlich übernehmen werden. Zur Einschätzung des Werts eines Projekts helfen Sterne dabei, die Resonanz im Vergleich zu Alternativen zu vergleichen und Einblicke in das Wachstum des Ökosystems zu geben.
|
|
1366
1366
|
|
|
1367
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1368
1368
|
|
|
1369
1369
|
---
|
|
1370
1370
|
|
|
@@ -1482,7 +1482,7 @@ If you prefer minimal setup and accept some manual wiring, next-intl is a good p
|
|
|
1482
1482
|
|
|
1483
1483
|
GitHub stars are a strong indicator of a project's popularity, community trust, and long-term relevance. While not a direct measure of technical quality, they reflect how many developers find the project useful, follow its progress, and are likely to adopt it. For estimating the value of a project, stars help compare traction across alternatives and provide insights into ecosystem growth.
|
|
1484
1484
|
|
|
1485
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1486
1486
|
|
|
1487
1487
|
---
|
|
1488
1488
|
|
|
@@ -144,15 +144,13 @@ We evaluate:
|
|
|
144
144
|
|
|
145
145
|
Using `intlayer`, you can declare your content in the format of your favorite i18n library, and intlayer will generate your namespaces in the location of your choice (example: `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Refer to [`dictionaryOutput` and `i18nextResourcesDir` options](https://intlayer.org/doc/concept/configuration#content-configuration) for more details.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## GitHub STARs
|
|
152
150
|
|
|
153
151
|
GitHub stars are a strong indicator of a project's popularity, community trust, and long-term relevance. While not a direct measure of technical quality, they reflect how many developers find the project useful, follow its progress, and are likely to adopt it. For estimating the value of a project, stars help compare traction across alternatives and provide insights into ecosystem growth.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Conclusion
|
|
158
156
|
|
|
@@ -256,8 +256,6 @@ This approach:
|
|
|
256
256
|
|
|
257
257
|
Using `intlayer`, you can declare your content in the format of your favorite i18n library, and intlayer will generate your namespaces in the location of your choice (example: `/messages/{{locale}}/{{namespace}}.json`).
|
|
258
258
|
|
|
259
|
-
Refer to [`dictionaryOutput` and `i18nextResourcesDir` options](https://intlayer.org/doc/concept/configuration#content-configuration) for more details.
|
|
260
|
-
|
|
261
259
|
---
|
|
262
260
|
|
|
263
261
|
## GitHub STARs
|
|
@@ -1214,7 +1214,7 @@ If you prefer minimal setup and accept some manual wiring, next-intl is a good c
|
|
|
1214
1214
|
|
|
1215
1215
|
GitHub stars are a strong indicator of a project's popularity, community trust, and long-term relevance. While not a direct measure of technical quality, they reflect how many developers find the project useful, follow its progress, and are likely to adopt it. For estimating the value of a project, stars help compare traction across alternatives and provide insights into ecosystem growth.
|
|
1216
1216
|
|
|
1217
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1218
1218
|
|
|
1219
1219
|
---
|
|
1220
1220
|
|
|
@@ -1318,7 +1318,7 @@ Si prefieres una configuración mínima y aceptas algo de cableado manual, next-
|
|
|
1318
1318
|
|
|
1319
1319
|
Las estrellas de GitHub son un indicador fuerte de la popularidad de un proyecto, la confianza de la comunidad y la relevancia a largo plazo. Aunque no son una medida directa de la calidad técnica, reflejan cuántos desarrolladores encuentran útil el proyecto, siguen su progreso y probablemente lo adopten. Para estimar el valor de un proyecto, las estrellas ayudan a comparar la tracción entre alternativas y proporcionan información sobre el crecimiento del ecosistema.
|
|
1320
1320
|
|
|
1321
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1322
1322
|
|
|
1323
1323
|
---
|
|
1324
1324
|
|
|
@@ -1215,7 +1215,7 @@ Si vous préférez une configuration minimale et acceptez un certain câblage ma
|
|
|
1215
1215
|
|
|
1216
1216
|
Les étoiles GitHub sont un indicateur fort de la popularité d’un projet, de la confiance de la communauté et de sa pertinence à long terme. Bien qu’elles ne mesurent pas directement la qualité technique, elles reflètent combien de développeurs trouvent le projet utile, suivent son évolution et sont susceptibles de l’adopter. Pour estimer la valeur d’un projet, les étoiles aident à comparer la traction entre différentes alternatives et fournissent des informations sur la croissance de l’écosystème.
|
|
1217
1217
|
|
|
1218
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1219
1219
|
|
|
1220
1220
|
---
|
|
1221
1221
|
|
|
@@ -1484,7 +1484,7 @@ Jika Anda lebih memilih pengaturan minimal dan menerima beberapa penyambungan ma
|
|
|
1484
1484
|
|
|
1485
1485
|
Bintang GitHub adalah indikator kuat dari popularitas sebuah proyek, kepercayaan komunitas, dan relevansi jangka panjang. Meskipun bukan ukuran langsung dari kualitas teknis, bintang tersebut mencerminkan berapa banyak pengembang yang menganggap proyek tersebut berguna, mengikuti perkembangannya, dan kemungkinan akan mengadopsinya. Untuk memperkirakan nilai sebuah proyek, bintang membantu membandingkan daya tarik antar alternatif dan memberikan wawasan tentang pertumbuhan ekosistem.
|
|
1486
1486
|
|
|
1487
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1488
1488
|
|
|
1489
1489
|
---
|
|
1490
1490
|
|
|
@@ -144,15 +144,13 @@ Kami mengevaluasi:
|
|
|
144
144
|
|
|
145
145
|
Dengan menggunakan `intlayer`, Anda dapat mendeklarasikan konten Anda dalam format perpustakaan i18n favorit Anda, dan intlayer akan menghasilkan namespace Anda di lokasi pilihan Anda (contoh: `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Lihat opsi [`dictionaryOutput` dan `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) untuk detail lebih lanjut.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## BINTANG GitHub
|
|
152
150
|
|
|
153
151
|
Bintang GitHub adalah indikator kuat dari popularitas proyek, kepercayaan komunitas, dan relevansi jangka panjang. Meskipun bukan ukuran langsung dari kualitas teknis, bintang mencerminkan berapa banyak pengembang yang menganggap proyek tersebut berguna, mengikuti perkembangannya, dan kemungkinan akan mengadopsinya. Untuk memperkirakan nilai sebuah proyek, bintang membantu membandingkan daya tarik di antara alternatif dan memberikan wawasan tentang pertumbuhan ekosistem.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Kesimpulan
|
|
158
156
|
|
|
@@ -256,8 +256,6 @@ Pendekatan ini:
|
|
|
256
256
|
|
|
257
257
|
Dengan menggunakan `intlayer`, Anda dapat mendeklarasikan konten Anda dalam format perpustakaan i18n favorit Anda, dan intlayer akan menghasilkan namespace Anda di lokasi pilihan Anda (contoh: `/messages/{{locale}}/{{namespace}}.json`).
|
|
258
258
|
|
|
259
|
-
Lihat opsi [`dictionaryOutput` dan `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) untuk detail lebih lanjut.
|
|
260
|
-
|
|
261
259
|
---
|
|
262
260
|
|
|
263
261
|
## GitHub STARs
|
|
@@ -1219,7 +1219,7 @@ Se preferisci una configurazione minima e accetti un po' di collegamenti manuali
|
|
|
1219
1219
|
|
|
1220
1220
|
Le stelle di GitHub sono un forte indicatore della popolarità di un progetto, della fiducia della comunità e della rilevanza a lungo termine. Sebbene non siano una misura diretta della qualità tecnica, riflettono quanti sviluppatori trovano il progetto utile, ne seguono i progressi e sono propensi ad adottarlo. Per stimare il valore di un progetto, le stelle aiutano a confrontare l'attrattiva tra le alternative e forniscono informazioni sulla crescita dell'ecosistema.
|
|
1221
1221
|
|
|
1222
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1223
1223
|
|
|
1224
1224
|
---
|
|
1225
1225
|
|
|
@@ -1220,7 +1220,7 @@ export default robots;
|
|
|
1220
1220
|
|
|
1221
1221
|
GitHubのスターは、プロジェクトの人気、コミュニティの信頼、そして長期的な関連性を示す強力な指標です。技術的な品質の直接的な尺度ではありませんが、どれだけ多くの開発者がそのプロジェクトを有用と感じ、進捗を追い、採用する可能性が高いかを反映しています。プロジェクトの価値を評価する際、スターは代替案間のトラクションを比較し、エコシステムの成長に関する洞察を提供するのに役立ちます。
|
|
1222
1222
|
|
|
1223
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1224
1224
|
|
|
1225
1225
|
---
|
|
1226
1226
|
|
|
@@ -1212,7 +1212,7 @@ export default robots;
|
|
|
1212
1212
|
|
|
1213
1213
|
GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰도, 그리고 장기적인 관련성을 강력하게 나타내는 지표입니다. 기술적 품질의 직접적인 척도는 아니지만, 얼마나 많은 개발자가 해당 프로젝트를 유용하다고 생각하고, 진행 상황을 팔로우하며, 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때, 스타는 대안들 간의 관심도를 비교하고 생태계 성장에 대한 통찰을 제공하는 데 도움이 됩니다.
|
|
1214
1214
|
|
|
1215
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1216
1216
|
|
|
1217
1217
|
---
|
|
1218
1218
|
|
|
@@ -1487,7 +1487,7 @@ Jeśli wolisz minimalną konfigurację i akceptujesz trochę ręcznego łączeni
|
|
|
1487
1487
|
|
|
1488
1488
|
Gwiazdy na GitHubie są silnym wskaźnikiem popularności projektu, zaufania społeczności oraz jego długoterminowej istotności. Choć nie są bezpośrednią miarą jakości technicznej, odzwierciedlają, ilu deweloperów uważa projekt za przydatny, śledzi jego rozwój i prawdopodobnie zdecyduje się go używać. Przy szacowaniu wartości projektu, gwiazdy pomagają porównać zainteresowanie różnymi alternatywami oraz dostarczają wglądu w rozwój ekosystemu.
|
|
1489
1489
|
|
|
1490
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1491
1491
|
|
|
1492
1492
|
---
|
|
1493
1493
|
|
|
@@ -144,15 +144,13 @@ Oceniamy:
|
|
|
144
144
|
|
|
145
145
|
Korzystając z `intlayer`, możesz deklarować swoją zawartość w formacie ulubionej biblioteki i18n, a intlayer wygeneruje Twoje przestrzenie nazw w wybranej lokalizacji (np. `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Zapoznaj się z opcjami [`dictionaryOutput` i `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) po więcej szczegółów.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## Gwiazdki GitHub
|
|
152
150
|
|
|
153
151
|
Gwiazdy na GitHubie są silnym wskaźnikiem popularności projektu, zaufania społeczności oraz jego długoterminowej istotności. Choć nie są bezpośrednią miarą jakości technicznej, odzwierciedlają, ilu programistów uważa projekt za użyteczny, śledzi jego rozwój i prawdopodobnie go zaadaptuje. Przy szacowaniu wartości projektu, gwiazdy pomagają porównać zainteresowanie różnymi alternatywami oraz dostarczają wglądu w rozwój ekosystemu.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Podsumowanie
|
|
158
156
|
|
|
@@ -256,8 +256,6 @@ To podejście:
|
|
|
256
256
|
|
|
257
257
|
Korzystając z `intlayer`, możesz zadeklarować swoją zawartość w formacie ulubionej biblioteki i18n, a intlayer wygeneruje Twoje przestrzenie nazw w wybranej lokalizacji (np. `/messages/{{locale}}/{{namespace}}.json`).
|
|
258
258
|
|
|
259
|
-
Zapoznaj się z opcjami [`dictionaryOutput` i `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration), aby uzyskać więcej szczegółów.
|
|
260
|
-
|
|
261
259
|
---
|
|
262
260
|
|
|
263
261
|
## Gwiazdki na GitHubie (GitHub STARs)
|
|
@@ -1215,7 +1215,7 @@ Se você prefere uma configuração mínima e aceita algum trabalho manual, next
|
|
|
1215
1215
|
|
|
1216
1216
|
As estrelas no GitHub são um forte indicador da popularidade de um projeto, da confiança da comunidade e da relevância a longo prazo. Embora não sejam uma medida direta da qualidade técnica, refletem quantos desenvolvedores consideram o projeto útil, acompanham seu progresso e provavelmente o adotam. Para estimar o valor de um projeto, as estrelas ajudam a comparar a tração entre alternativas e fornecem insights sobre o crescimento do ecossistema.
|
|
1217
1217
|
|
|
1218
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1219
1219
|
|
|
1220
1220
|
---
|
|
1221
1221
|
|
|
@@ -1224,7 +1224,7 @@ export default robots;
|
|
|
1224
1224
|
|
|
1225
1225
|
Звёзды на GitHub являются сильным индикатором популярности проекта, доверия сообщества и его долгосрочной актуальности. Хотя они не являются прямой мерой технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его развитием и, вероятно, будут его использовать. Для оценки ценности проекта звёзды помогают сравнивать популярность среди альтернатив и дают представление о росте экосистемы.
|
|
1226
1226
|
|
|
1227
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1228
1228
|
|
|
1229
1229
|
---
|
|
1230
1230
|
|
|
@@ -152,15 +152,13 @@ Bu rehber, **Next.js** için yaygın olarak kullanılan üç i18n seçeneğini k
|
|
|
152
152
|
|
|
153
153
|
`intlayer` kullanarak, içeriğinizi favori i18n kütüphanenizin formatında beyan edebilirsiniz ve intlayer ad alanlarınızı istediğiniz konumda oluşturacaktır (örnek: `/messages/{{locale}}/{{namespace}}.json`).
|
|
154
154
|
|
|
155
|
-
Daha fazla detay için [`dictionaryOutput` ve `i18nextResourcesDir` seçeneklerine](https://intlayer.org/doc/concept/configuration#content-configuration) bakın.
|
|
156
|
-
|
|
157
155
|
---
|
|
158
156
|
|
|
159
157
|
## GitHub YILDIZLARI
|
|
160
158
|
|
|
161
159
|
GitHub yıldızları, bir projenin popülaritesinin, topluluk güveninin ve uzun vadeli öneminin güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve muhtemelen benimsediğini yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişmeyi karşılaştırmaya ve ekosistem büyümesine ilişkin içgörüler sağlamaya yardımcı olur.
|
|
162
160
|
|
|
163
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
164
162
|
|
|
165
163
|
---
|
|
166
164
|
|
|
@@ -144,15 +144,13 @@ Bu rehber, **React** için üç yerleşik i18n seçeneğini karşılaştırır:
|
|
|
144
144
|
|
|
145
145
|
`intlayer` kullanarak, içeriğinizi favori i18n kütüphanenizin formatında beyan edebilirsiniz ve intlayer ad alanlarınızı istediğiniz konumda oluşturacaktır (örnek: `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Daha fazla detay için [`dictionaryOutput` ve `i18nextResourcesDir` seçeneklerine](https://intlayer.org/doc/concept/configuration#content-configuration) bakın.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## GitHub YILDIZLARI
|
|
152
150
|
|
|
153
151
|
GitHub yıldızları, bir projenin popülaritesinin, topluluk güveninin ve uzun vadeli öneminin güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve muhtemelen benimsediğini yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişmeyi karşılaştırmaya ve ekosistem büyümesine ilişkin içgörüler sağlamaya yardımcı olur.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Sonuç
|
|
158
156
|
|
|
@@ -256,8 +256,6 @@ Bu yaklaşım:
|
|
|
256
256
|
|
|
257
257
|
`intlayer` kullanarak, içeriğinizi favori i18n kütüphanenizin formatında beyan edebilirsiniz ve intlayer ad alanlarınızı istediğiniz konumda oluşturacaktır (örnek: `/messages/{{locale}}/{{namespace}}.json`).
|
|
258
258
|
|
|
259
|
-
Daha fazla detay için [`dictionaryOutput` ve `i18nextResourcesDir` seçeneklerine](https://intlayer.org/doc/concept/configuration#content-configuration) bakın.
|
|
260
|
-
|
|
261
259
|
---
|
|
262
260
|
|
|
263
261
|
## GitHub YILDIZLARI
|
|
@@ -1483,7 +1483,7 @@ export const config = {
|
|
|
1483
1483
|
|
|
1484
1484
|
Зірки на GitHub є потужним індикатором популярності проєкту, довіри спільноти та його довгострокової значущості. Хоча це не прямий показник технічної якості, вони відображають, скільки розробників вважають проєкт корисним, стежать за його розвитком і, ймовірно, приймуть його у використання. Для оцінки цінності проєкту зірки допомагають порівнювати залученість між альтернативами та дають уявлення про зростання екосистеми.
|
|
1485
1485
|
|
|
1486
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1487
1487
|
|
|
1488
1488
|
---
|
|
1489
1489
|
|
|
@@ -144,15 +144,13 @@ slugs:
|
|
|
144
144
|
|
|
145
145
|
Використовуючи `intlayer`, ви можете оголошувати ваш контент у форматі улюбленої i18n-бібліотеки, і intlayer згенерує ваші неймспейси у вибраному місці (приклад: `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Дивіться опції [`dictionaryOutput` and `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) для детальнішої інформації.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## Зірки GitHub
|
|
152
150
|
|
|
153
151
|
GitHub-зірки, це вагомий індикатор популярності проєкту, довіри спільноти та його довгострокової релевантності. Хоча вони не є прямим показником технічної якості, вони відображають, скільки розробників вважають проєкт корисним, стежать за його розвитком і ймовірно його приймуть. Для оцінки цінності проєкту зірки допомагають порівнювати популярність між альтернативами та дають уявлення про зростання екосистеми.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Висновок
|
|
158
156
|
|
|
@@ -257,8 +257,6 @@ const { greeting } = useIntlayer("component-example");
|
|
|
257
257
|
|
|
258
258
|
Використовуючи `intlayer`, ви можете задавати контент у форматі вашої улюбленої i18n-бібліотеки, і intlayer згенерує ваші неймспейси в обраному місці (наприклад: `/messages/{{locale}}/{{namespace}}.json`).
|
|
259
259
|
|
|
260
|
-
Див. опції [`dictionaryOutput` та `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) для детальнішої інформації.
|
|
261
|
-
|
|
262
260
|
---
|
|
263
261
|
|
|
264
262
|
## Зірки GitHub
|
|
@@ -1504,7 +1504,7 @@ Nếu bạn ưu tiên thiết lập tối giản và chấp nhận một số c
|
|
|
1504
1504
|
|
|
1505
1505
|
Sao trên GitHub là một chỉ số mạnh mẽ cho thấy mức độ phổ biến của dự án, sự tin tưởng của cộng đồng và tính liên quan lâu dài. Mặc dù không phải là thước đo trực tiếp về chất lượng kỹ thuật, nhưng chúng phản ánh số lượng nhà phát triển thấy dự án hữu ích, theo dõi tiến trình của nó và có khả năng áp dụng nó. Để ước tính giá trị của một dự án, sao giúp so sánh mức độ thu hút giữa các lựa chọn thay thế và cung cấp cái nhìn sâu sắc về sự phát triển của hệ sinh thái.
|
|
1506
1506
|
|
|
1507
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1508
1508
|
|
|
1509
1509
|
---
|
|
1510
1510
|
|
|
@@ -144,15 +144,13 @@ Chúng tôi đánh giá:
|
|
|
144
144
|
|
|
145
145
|
Sử dụng `intlayer`, bạn có thể khai báo nội dung theo định dạng của thư viện i18n yêu thích của bạn, và intlayer sẽ tạo ra các namespace tại vị trí bạn chọn (ví dụ: `/messages/{{locale}}/{{namespace}}.json`).
|
|
146
146
|
|
|
147
|
-
Tham khảo các tùy chọn [`dictionaryOutput` và `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) để biết thêm chi tiết.
|
|
148
|
-
|
|
149
147
|
---
|
|
150
148
|
|
|
151
149
|
## Sao trên GitHub
|
|
152
150
|
|
|
153
151
|
Các ngôi sao trên GitHub là một chỉ số mạnh mẽ về độ phổ biến của dự án, sự tin tưởng của cộng đồng và tính liên quan lâu dài. Mặc dù không phải là thước đo trực tiếp về chất lượng kỹ thuật, chúng phản ánh số lượng nhà phát triển thấy dự án hữu ích, theo dõi tiến trình của nó và có khả năng áp dụng nó. Để ước tính giá trị của một dự án, các ngôi sao giúp so sánh mức độ thu hút giữa các lựa chọn thay thế và cung cấp cái nhìn sâu sắc về sự phát triển của hệ sinh thái.
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
|
|
156
154
|
|
|
157
155
|
## Kết luận
|
|
158
156
|
|
|
@@ -256,8 +256,6 @@ Cách tiếp cận này:
|
|
|
256
256
|
|
|
257
257
|
Sử dụng `intlayer`, bạn có thể khai báo nội dung theo định dạng của thư viện i18n yêu thích của bạn, và intlayer sẽ tạo ra các namespace tại vị trí bạn chọn (ví dụ: `/messages/{{locale}}/{{namespace}}.json`).
|
|
258
258
|
|
|
259
|
-
Tham khảo các tùy chọn [`dictionaryOutput` và `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration) để biết thêm chi tiết.
|
|
260
|
-
|
|
261
259
|
---
|
|
262
260
|
|
|
263
261
|
## Sao GitHub
|
|
@@ -1223,7 +1223,7 @@ export default robots;
|
|
|
1223
1223
|
|
|
1224
1224
|
GitHub 星标是衡量项目受欢迎程度、社区信任度和长期相关性的有力指标。虽然它们不是技术质量的直接衡量标准,但反映了有多少开发者认为该项目有用、关注其进展并可能采用它。对于评估项目价值,星标有助于比较不同选项的吸引力,并提供生态系统增长的洞察。
|
|
1225
1225
|
|
|
1226
|
-
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
1227
1227
|
|
|
1228
1228
|
---
|
|
1229
1229
|
|
package/dist/cjs/blog.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.cjs","names":["getKeys","blogEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/blog.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"blog.cjs","names":["getKeys","blogEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/blog.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { blogEntry } from './generated/blog.entry';\n\nexport type BlogKey = keyof typeof blogEntry;\nexport type Blogs = Record<BlogKey, Record<LocalesValues, Promise<string>>>;\nexport type BlogMetadata = FileMetadata;\n\nexport const getBlogsKeys = (): (keyof typeof blogEntry)[] =>\n getKeys(blogEntry);\n\nexport const getBlogs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, string>> => await getFiles(blogEntry, locale);\n\nexport const getBlog = async <L extends LocalesValues = DeclaredLocales>(\n docName: BlogKey,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(blogEntry, docName, locale);\n\nexport const getBlogMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, FileMetadata>> =>\n await getFileMetadataRecord(blogEntry, locale);\n\nexport const getBlogMetadata = async <\n D extends BlogKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(blogEntry, docName, locale);\n\nexport const getBlogMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(blogEntry, slugs, locale, strict);\n\nexport const getBlogBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(blogEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,qBACXA,uBAAQC,sCAAS;AAEnB,MAAa,WAAW,OACtB,SAAYC,iCACyB,MAAMC,wBAASF,wCAAW,MAAM;AAEvE,MAAa,UAAU,OACrB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,MAAM;AAE9D,MAAa,wBAAwB,OAGnC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,MAAM;AAE/C,MAAa,kBAAkB,OAI7B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,MAAM;AAE5E,MAAa,wBAAwB,OAGnC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,MAAM;AAE9D,MAAa,gBAAgB,OAC3B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,MAAM"}
|
package/dist/cjs/common.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.cjs","names":["Locales"],"sources":["../../src/common.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { getLocalizedUrl } from '@intlayer/core/localization';\nimport { getMarkdownMetadata } from '@intlayer/core/transpiler';\nimport * as Locales from '@intlayer/types/locales';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nexport const defaultLocale = Locales.ENGLISH;\n\nexport const GITHUB_URL_PREFIX =\n 'https://github.com/aymericzip/intlayer/blob/main/docs';\nexport const URL_PREFIX = 'https://intlayer.org/';\n\nexport const getKeys = <T extends Record<string, any>>(obj: T): (keyof T)[] =>\n Object.keys(obj) as (keyof T)[];\n\nexport const getFiles = async <\n F extends Record<`./${string}`, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n lang: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<string, string>> => {\n const filesEntries = await Promise.all(\n Object.entries(files)\n .map(([key, value]) => [key, value[lang as LocalesValues]])\n .map(async ([key, value]) => [key, await value])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFile = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<string> => {\n const fileRecord = files[docKey];\n\n if (!fileRecord) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n const file = await files[docKey]?.[locale];\n\n if (!file) {\n const englishFile = await files[docKey][defaultLocale as LocalesValues];\n\n if (!englishFile) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n return englishFile;\n }\n\n return file;\n};\n\nexport type FileMetadata = {\n docKey: string;\n url: string;\n relativeUrl: string;\n githubUrl: string;\n title: string;\n slugs: string[];\n description: string;\n keywords: string[];\n updatedAt: string;\n createdAt: string;\n author?: string;\n youtubeVideo?: string;\n applicationTemplate?: string;\n applicationShowcase?: string;\n history?: {\n version: string;\n date: string;\n changes: string;\n }[];\n};\n\nexport const formatMetadata = (\n docKey: string,\n file: string,\n locale: LocalesValues = defaultLocale as LocalesValues\n): FileMetadata => {\n const metadata = getMarkdownMetadata(file);\n\n const slugs = (metadata.slugs ?? []).map(String);\n const keywords = (metadata.keywords ?? []).map(String);\n\n const relativeUrl = join('/', ...slugs);\n\n const slicedDocKey = docKey.slice(1);\n\n return {\n ...metadata,\n docKey,\n slugs,\n keywords,\n githubUrl: `${GITHUB_URL_PREFIX}${slicedDocKey}`.replace(\n '/en/',\n `/${locale}/`\n ),\n relativeUrl: getLocalizedUrl(relativeUrl, locale),\n url: getLocalizedUrl(join(URL_PREFIX, relativeUrl), locale),\n } as FileMetadata;\n};\n\nexport const getFileMetadata = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n R extends FileMetadata,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<R> => {\n const file = await getFile(files, docKey, locale);\n\n return formatMetadata(docKey as string, file, locale) as R;\n};\n\nexport const getFileMetadataRecord = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<keyof F, FileMetadata>> => {\n const filesEntries = await Promise.all(\n Object.entries(files).map(async ([key]) => [\n key,\n await getFileMetadata(files, key as keyof F, locale),\n ])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFileMetadataBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray: FileMetadata[] = Object.values(filesMetadata).filter(\n (fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n if (locale !== defaultLocale) {\n const localizedFileMetadata = await Promise.all(\n fileMetadataArray.map(\n async (fileMetadata) =>\n await getFileMetadata(files, fileMetadata.docKey, locale)\n )\n );\n\n return localizedFileMetadata;\n }\n\n return fileMetadataArray;\n};\n\nexport const getFileBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray = Object.values(filesMetadata).filter((fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n const fileList = await Promise.all(\n fileMetadataArray.map(async (fileMetadata) => {\n const file = await getFile(files, fileMetadata.docKey, locale);\n return file;\n })\n );\n\n return fileList;\n};\n"],"mappings":";;;;;;;;;AAMA,MAAa,gBAAgBA,wBAAQ;AAErC,MAAa,oBACX;AACF,MAAa,aAAa;AAE1B,MAAa,WAA0C,QACrD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"common.cjs","names":["Locales"],"sources":["../../src/common.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { getLocalizedUrl } from '@intlayer/core/localization';\nimport { getMarkdownMetadata } from '@intlayer/core/transpiler';\nimport * as Locales from '@intlayer/types/locales';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nexport const defaultLocale = Locales.ENGLISH;\n\nexport const GITHUB_URL_PREFIX =\n 'https://github.com/aymericzip/intlayer/blob/main/docs';\nexport const URL_PREFIX = 'https://intlayer.org/';\n\nexport const getKeys = <T extends Record<string, any>>(obj: T): (keyof T)[] =>\n Object.keys(obj) as (keyof T)[];\n\nexport const getFiles = async <\n F extends Record<`./${string}`, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n lang: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<string, string>> => {\n const filesEntries = await Promise.all(\n Object.entries(files)\n .map(([key, value]) => [key, value[lang as LocalesValues]])\n .map(async ([key, value]) => [key, await value])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFile = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<string> => {\n const fileRecord = files[docKey];\n\n if (!fileRecord) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n const file = await files[docKey]?.[locale];\n\n if (!file) {\n const englishFile = await files[docKey][defaultLocale as LocalesValues];\n\n if (!englishFile) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n return englishFile;\n }\n\n return file;\n};\n\nexport type FileMetadata = {\n docKey: string;\n url: string;\n relativeUrl: string;\n githubUrl: string;\n title: string;\n slugs: string[];\n description: string;\n keywords: string[];\n updatedAt: string;\n createdAt: string;\n author?: string;\n youtubeVideo?: string;\n applicationTemplate?: string;\n applicationShowcase?: string;\n history?: {\n version: string;\n date: string;\n changes: string;\n }[];\n};\n\nexport const formatMetadata = (\n docKey: string,\n file: string,\n locale: LocalesValues = defaultLocale as LocalesValues\n): FileMetadata => {\n const metadata = getMarkdownMetadata(file);\n\n const slugs = (metadata.slugs ?? []).map(String);\n const keywords = (metadata.keywords ?? []).map(String);\n\n const relativeUrl = join('/', ...slugs);\n\n const slicedDocKey = docKey.slice(1);\n\n return {\n ...metadata,\n docKey,\n slugs,\n keywords,\n githubUrl: `${GITHUB_URL_PREFIX}${slicedDocKey}`.replace(\n '/en/',\n `/${locale}/`\n ),\n relativeUrl: getLocalizedUrl(relativeUrl, locale),\n url: getLocalizedUrl(join(URL_PREFIX, relativeUrl), locale),\n } as FileMetadata;\n};\n\nexport const getFileMetadata = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n R extends FileMetadata,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<R> => {\n const file = await getFile(files, docKey, locale);\n\n return formatMetadata(docKey as string, file, locale) as R;\n};\n\nexport const getFileMetadataRecord = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<keyof F, FileMetadata>> => {\n const filesEntries = await Promise.all(\n Object.entries(files).map(async ([key]) => [\n key,\n await getFileMetadata(files, key as keyof F, locale),\n ])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFileMetadataBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray: FileMetadata[] = Object.values(filesMetadata).filter(\n (fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n if (locale !== defaultLocale) {\n const localizedFileMetadata = await Promise.all(\n fileMetadataArray.map(\n async (fileMetadata) =>\n await getFileMetadata(files, fileMetadata.docKey, locale)\n )\n );\n\n return localizedFileMetadata;\n }\n\n return fileMetadataArray;\n};\n\nexport const getFileBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray = Object.values(filesMetadata).filter((fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n const fileList = await Promise.all(\n fileMetadataArray.map(async (fileMetadata) => {\n const file = await getFile(files, fileMetadata.docKey, locale);\n return file;\n })\n );\n\n return fileList;\n};\n"],"mappings":"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"}
|
package/dist/cjs/doc.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.cjs","names":["getKeys","docsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/doc.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { docsEntry } from './generated/docs.entry';\n\nexport type DocKey = keyof typeof docsEntry;\nexport type Docs = Record<DocKey, Record<LocalesValues, Promise<string>>>;\nexport type DocMetadata = FileMetadata;\n\nexport const getDocsKeys = (): (keyof typeof docsEntry)[] => getKeys(docsEntry);\n\nexport const getDocs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, string>> => await getFiles(docsEntry, locale);\n\nexport const getDoc = async <L extends LocalesValues = DeclaredLocales>(\n docName: keyof typeof docsEntry,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(docsEntry, docName, locale);\n\nexport const getDocMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, FileMetadata>> =>\n await getFileMetadataRecord(docsEntry, locale);\n\nexport const getDocMetadata = async <\n D extends DocKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(docsEntry, docName, locale);\n\nexport const getDocMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(docsEntry, slugs, locale, strict);\n\nexport const getDocBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(docsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,oBAAgDA,uBAAQC,
|
|
1
|
+
{"version":3,"file":"doc.cjs","names":["getKeys","docsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/doc.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { docsEntry } from './generated/docs.entry';\n\nexport type DocKey = keyof typeof docsEntry;\nexport type Docs = Record<DocKey, Record<LocalesValues, Promise<string>>>;\nexport type DocMetadata = FileMetadata;\n\nexport const getDocsKeys = (): (keyof typeof docsEntry)[] => getKeys(docsEntry);\n\nexport const getDocs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, string>> => await getFiles(docsEntry, locale);\n\nexport const getDoc = async <L extends LocalesValues = DeclaredLocales>(\n docName: keyof typeof docsEntry,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(docsEntry, docName, locale);\n\nexport const getDocMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, FileMetadata>> =>\n await getFileMetadataRecord(docsEntry, locale);\n\nexport const getDocMetadata = async <\n D extends DocKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(docsEntry, docName, locale);\n\nexport const getDocMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(docsEntry, slugs, locale, strict);\n\nexport const getDocBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(docsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,oBAAgDA,uBAAQC,sCAAS;AAE9E,MAAa,UAAU,OACrB,SAAYC,iCACwB,MAAMC,wBAASF,wCAAW,MAAM;AAEtE,MAAa,SAAS,OACpB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,MAAM;AAE9D,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,MAAM;AAE/C,MAAa,iBAAiB,OAI5B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,MAAM;AAE5E,MAAa,uBAAuB,OAGlC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,MAAM;AAE9D,MAAa,eAAe,OAC1B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frequentQuestions.cjs","names":["getKeys","frequentQuestionsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/frequentQuestions.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"frequentQuestions.cjs","names":["getKeys","frequentQuestionsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/frequentQuestions.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { frequentQuestionsEntry } from './generated/frequentQuestions.entry';\n\nexport type FrequentQuestionKey = keyof typeof frequentQuestionsEntry;\nexport type FrequentQuestions = Record<\n FrequentQuestionKey,\n Record<LocalesValues, Promise<string>>\n>;\nexport type FrequentQuestionMetadata = FileMetadata;\n\nexport const getFrequentQuestionsKeys =\n (): (keyof typeof frequentQuestionsEntry)[] =>\n getKeys(frequentQuestionsEntry);\n\nexport const getFrequentQuestions = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, string>> =>\n getFiles(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestion = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: FrequentQuestionKey,\n locale: L = defaultLocale as L\n): Promise<string> => getFile(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, FileMetadata>> =>\n getFileMetadataRecord(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestionMetadata = async <\n D extends FrequentQuestionKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> =>\n getFileMetadata(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(frequentQuestionsEntry, slugs, locale, strict);\n\nexport const getFrequentQuestionBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> =>\n await getFileBySlug(frequentQuestionsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAwBA,MAAa,iCAETA,uBAAQC,gEAAsB;AAElC,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZC,wBAASF,kEAAwB,MAAM;AAEzC,MAAa,sBAAsB,OAGjC,SACA,SAAYC,iCACQE,uBAAQH,kEAAwB,SAAS,MAAM;AAErE,MAAa,oCAAoC,OAG/C,SAAYC,iCAEZG,qCAAsBJ,kEAAwB,MAAM;AAEtD,MAAa,8BAA8B,OAIzC,SACA,SAAYC,iCAEZI,+BAAgBL,kEAAwB,SAAS,MAAM;AAEzD,MAAa,oCAAoC,OAG/C,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,kEAAwB,OAAO,QAAQ,MAAM;AAE3E,MAAa,4BAA4B,OAGvC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMM,6BAAcP,kEAAwB,OAAO,QAAQ,MAAM"}
|