@intlayer/docs 7.4.0 → 7.5.0-canary.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.
- package/blog/ar/intlayer_with_i18next.md +2 -0
- package/blog/ar/intlayer_with_next-i18next.md +2 -0
- package/blog/ar/intlayer_with_next-intl.md +2 -0
- package/blog/ar/intlayer_with_react-i18next.md +2 -0
- package/blog/ar/intlayer_with_react-intl.md +2 -0
- package/blog/ar/intlayer_with_vue-i18n.md +2 -0
- package/blog/de/intlayer_with_i18next.md +2 -0
- package/blog/de/intlayer_with_next-i18next.md +1 -0
- package/blog/de/intlayer_with_next-intl.md +2 -0
- package/blog/de/intlayer_with_react-i18next.md +2 -0
- package/blog/de/intlayer_with_react-intl.md +2 -0
- package/blog/de/intlayer_with_vue-i18n.md +2 -0
- package/blog/en/intlayer_with_i18next.md +6 -0
- package/blog/en/intlayer_with_next-i18next.md +3 -0
- package/blog/en/intlayer_with_next-intl.md +3 -0
- package/blog/en/intlayer_with_react-i18next.md +3 -0
- package/blog/en/intlayer_with_react-intl.md +3 -0
- package/blog/en/intlayer_with_vue-i18n.md +3 -0
- package/blog/en-GB/intlayer_with_i18next.md +2 -0
- package/blog/en-GB/intlayer_with_next-i18next.md +2 -0
- package/blog/en-GB/intlayer_with_next-intl.md +2 -0
- package/blog/en-GB/intlayer_with_react-i18next.md +2 -0
- package/blog/en-GB/intlayer_with_react-intl.md +2 -0
- package/blog/en-GB/intlayer_with_vue-i18n.md +2 -0
- package/blog/es/intlayer_with_i18next.md +2 -0
- package/blog/es/intlayer_with_next-i18next.md +2 -0
- package/blog/es/intlayer_with_next-intl.md +2 -0
- package/blog/es/intlayer_with_react-i18next.md +2 -0
- package/blog/es/intlayer_with_react-intl.md +2 -0
- package/blog/es/intlayer_with_vue-i18n.md +2 -0
- package/blog/fr/intlayer_with_i18next.md +2 -0
- package/blog/fr/intlayer_with_next-i18next.md +2 -0
- package/blog/fr/intlayer_with_next-intl.md +2 -0
- package/blog/fr/intlayer_with_react-i18next.md +2 -0
- package/blog/fr/intlayer_with_react-intl.md +2 -0
- package/blog/fr/intlayer_with_vue-i18n.md +2 -0
- package/blog/hi/intlayer_with_i18next.md +2 -0
- package/blog/hi/intlayer_with_next-i18next.md +2 -0
- package/blog/hi/intlayer_with_next-intl.md +2 -0
- package/blog/hi/intlayer_with_react-i18next.md +2 -0
- package/blog/hi/intlayer_with_react-intl.md +2 -0
- package/blog/hi/intlayer_with_vue-i18n.md +2 -0
- package/blog/id/intlayer_with_i18next.md +2 -0
- package/blog/id/intlayer_with_next-i18next.md +2 -0
- package/blog/id/intlayer_with_next-intl.md +2 -0
- package/blog/id/intlayer_with_react-i18next.md +2 -0
- package/blog/id/intlayer_with_react-intl.md +2 -0
- package/blog/id/intlayer_with_vue-i18n.md +2 -0
- package/blog/it/intlayer_with_i18next.md +2 -0
- package/blog/it/intlayer_with_next-i18next.md +2 -0
- package/blog/it/intlayer_with_next-intl.md +2 -0
- package/blog/it/intlayer_with_react-i18next.md +2 -0
- package/blog/it/intlayer_with_react-intl.md +2 -0
- package/blog/it/intlayer_with_vue-i18n.md +2 -0
- package/blog/ja/intlayer_with_i18next.md +2 -0
- package/blog/ja/intlayer_with_next-i18next.md +1 -0
- package/blog/ja/intlayer_with_next-intl.md +2 -0
- package/blog/ja/intlayer_with_react-i18next.md +2 -0
- package/blog/ja/intlayer_with_react-intl.md +2 -0
- package/blog/ja/intlayer_with_vue-i18n.md +2 -0
- package/blog/ko/intlayer_with_i18next.md +2 -0
- package/blog/ko/intlayer_with_next-i18next.md +2 -0
- package/blog/ko/intlayer_with_next-intl.md +2 -0
- package/blog/ko/intlayer_with_react-i18next.md +2 -0
- package/blog/ko/intlayer_with_react-intl.md +2 -0
- package/blog/ko/intlayer_with_vue-i18n.md +2 -0
- package/blog/pl/intlayer_with_i18next.md +2 -0
- package/blog/pl/intlayer_with_next-i18next.md +2 -0
- package/blog/pl/intlayer_with_next-intl.md +2 -0
- package/blog/pl/intlayer_with_react-i18next.md +2 -0
- package/blog/pl/intlayer_with_react-intl.md +2 -0
- package/blog/pl/intlayer_with_vue-i18n.md +2 -0
- package/blog/pt/intlayer_with_i18next.md +2 -0
- package/blog/pt/intlayer_with_next-i18next.md +2 -0
- package/blog/pt/intlayer_with_next-intl.md +2 -0
- package/blog/pt/intlayer_with_react-i18next.md +2 -0
- package/blog/pt/intlayer_with_react-intl.md +2 -0
- package/blog/pt/intlayer_with_vue-i18n.md +2 -0
- package/blog/ru/intlayer_with_i18next.md +2 -0
- package/blog/ru/intlayer_with_next-i18next.md +2 -0
- package/blog/ru/intlayer_with_next-intl.md +2 -0
- package/blog/ru/intlayer_with_react-i18next.md +2 -0
- package/blog/ru/intlayer_with_react-intl.md +2 -0
- package/blog/ru/intlayer_with_vue-i18n.md +2 -0
- package/blog/tr/intlayer_with_i18next.md +2 -0
- package/blog/tr/intlayer_with_next-i18next.md +2 -0
- package/blog/tr/intlayer_with_next-intl.md +2 -0
- package/blog/tr/intlayer_with_react-i18next.md +2 -0
- package/blog/tr/intlayer_with_react-intl.md +2 -0
- package/blog/tr/intlayer_with_vue-i18n.md +2 -0
- package/blog/vi/intlayer_with_i18next.md +2 -0
- package/blog/vi/intlayer_with_next-i18next.md +2 -0
- package/blog/vi/intlayer_with_next-intl.md +2 -0
- package/blog/vi/intlayer_with_react-i18next.md +2 -0
- package/blog/vi/intlayer_with_react-intl.md +2 -0
- package/blog/vi/intlayer_with_vue-i18n.md +2 -0
- package/blog/zh/intlayer_with_i18next.md +2 -0
- package/blog/zh/intlayer_with_next-i18next.md +2 -0
- package/blog/zh/intlayer_with_next-intl.md +2 -0
- package/blog/zh/intlayer_with_react-i18next.md +2 -0
- package/blog/zh/intlayer_with_react-intl.md +2 -0
- package/blog/zh/intlayer_with_vue-i18n.md +2 -0
- package/dist/cjs/generated/docs.entry.cjs +19 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +19 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/index.md +5 -0
- package/docs/ar/cli/login.md +157 -0
- package/docs/ar/configuration.md +12 -0
- package/docs/ar/dictionary/content_file.md +24 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- package/docs/ar/intlayer_with_next-i18next.md +1 -0
- package/docs/ar/intlayer_with_next-intl.md +1 -0
- package/docs/ar/intlayer_with_tanstack.md +1 -12
- package/docs/ar/plugins/sync-json.md +27 -2
- package/docs/de/cli/index.md +5 -0
- package/docs/de/cli/login.md +160 -0
- package/docs/de/configuration.md +12 -0
- package/docs/de/dictionary/content_file.md +24 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_next-i18next.md +1 -0
- package/docs/de/intlayer_with_next-intl.md +1 -0
- package/docs/de/intlayer_with_tanstack.md +1 -12
- package/docs/de/plugins/sync-json.md +27 -2
- package/docs/en/cli/index.md +5 -0
- package/docs/en/cli/login.md +157 -0
- package/docs/en/configuration.md +13 -0
- package/docs/en/dictionary/content_file.md +24 -1
- package/docs/en/index.md +1 -0
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +1 -2
- package/docs/en/intlayer_with_next-i18next.md +1 -0
- package/docs/en/intlayer_with_next-intl.md +1 -0
- package/docs/en/intlayer_with_tanstack.md +7 -17
- package/docs/en/plugins/sync-json.md +53 -2
- package/docs/en-GB/cli/index.md +5 -0
- package/docs/en-GB/cli/login.md +181 -0
- package/docs/en-GB/configuration.md +12 -0
- package/docs/en-GB/dictionary/content_file.md +24 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- package/docs/en-GB/intlayer_with_next-i18next.md +1 -0
- package/docs/en-GB/intlayer_with_next-intl.md +1 -0
- package/docs/en-GB/intlayer_with_tanstack.md +1 -12
- package/docs/en-GB/plugins/sync-json.md +26 -1
- package/docs/es/cli/index.md +5 -0
- package/docs/es/cli/login.md +182 -0
- package/docs/es/configuration.md +12 -0
- package/docs/es/dictionary/content_file.md +24 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_next-i18next.md +1 -0
- package/docs/es/intlayer_with_next-intl.md +1 -0
- package/docs/es/intlayer_with_tanstack.md +1 -12
- package/docs/es/plugins/sync-json.md +27 -2
- package/docs/fr/cli/index.md +5 -0
- package/docs/fr/cli/login.md +185 -0
- package/docs/fr/configuration.md +12 -0
- package/docs/fr/dictionary/content_file.md +24 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_next-i18next.md +1 -0
- package/docs/fr/intlayer_with_next-intl.md +1 -0
- package/docs/fr/intlayer_with_tanstack.md +1 -12
- package/docs/fr/plugins/sync-json.md +27 -2
- package/docs/hi/cli/index.md +5 -0
- package/docs/hi/cli/login.md +181 -0
- package/docs/hi/configuration.md +12 -0
- package/docs/hi/dictionary/content_file.md +24 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_next-i18next.md +1 -0
- package/docs/hi/intlayer_with_next-intl.md +1 -0
- package/docs/hi/intlayer_with_tanstack.md +1 -12
- package/docs/hi/plugins/sync-json.md +27 -2
- package/docs/id/cli/index.md +5 -0
- package/docs/id/cli/login.md +157 -0
- package/docs/id/configuration.md +12 -0
- package/docs/id/dictionary/content_file.md +24 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +1 -1
- package/docs/id/intlayer_with_next-i18next.md +1 -0
- package/docs/id/intlayer_with_next-intl.md +1 -0
- package/docs/id/intlayer_with_tanstack.md +1 -12
- package/docs/id/plugins/sync-json.md +27 -2
- package/docs/it/cli/index.md +5 -0
- package/docs/it/cli/login.md +157 -0
- package/docs/it/configuration.md +12 -0
- package/docs/it/dictionary/content_file.md +24 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_next-i18next.md +1 -0
- package/docs/it/intlayer_with_next-intl.md +1 -0
- package/docs/it/intlayer_with_tanstack.md +1 -12
- package/docs/it/plugins/sync-json.md +27 -2
- package/docs/ja/cli/index.md +5 -0
- package/docs/ja/cli/login.md +159 -0
- package/docs/ja/configuration.md +12 -0
- package/docs/ja/dictionary/content_file.md +24 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_next-i18next.md +1 -0
- package/docs/ja/intlayer_with_next-intl.md +1 -0
- package/docs/ja/intlayer_with_tanstack.md +1 -12
- package/docs/ja/plugins/sync-json.md +27 -2
- package/docs/ko/cli/index.md +5 -0
- package/docs/ko/cli/login.md +188 -0
- package/docs/ko/configuration.md +12 -0
- package/docs/ko/dictionary/content_file.md +44 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_next-i18next.md +1 -0
- package/docs/ko/intlayer_with_next-intl.md +1 -0
- package/docs/ko/intlayer_with_tanstack.md +1 -12
- package/docs/ko/plugins/sync-json.md +27 -2
- package/docs/pl/cli/index.md +5 -0
- package/docs/pl/cli/login.md +187 -0
- package/docs/pl/configuration.md +12 -0
- package/docs/pl/dictionary/content_file.md +24 -1
- package/docs/pl/intlayer_with_astro.md +2 -2
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_nestjs.md +1 -1
- package/docs/pl/intlayer_with_next-i18next.md +1 -0
- package/docs/pl/intlayer_with_next-intl.md +1 -0
- package/docs/pl/intlayer_with_tanstack.md +1 -12
- package/docs/pl/plugins/sync-json.md +24 -2
- package/docs/pt/cli/index.md +5 -0
- package/docs/pt/cli/login.md +186 -0
- package/docs/pt/configuration.md +12 -0
- package/docs/pt/dictionary/content_file.md +24 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_next-i18next.md +1 -0
- package/docs/pt/intlayer_with_next-intl.md +1 -0
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +570 -0
- package/docs/pt/intlayer_with_tanstack.md +1 -12
- package/docs/pt/plugins/sync-json.md +27 -2
- package/docs/ru/cli/index.md +5 -0
- package/docs/ru/cli/login.md +181 -0
- package/docs/ru/configuration.md +12 -0
- package/docs/ru/dictionary/content_file.md +44 -1
- package/docs/ru/intlayer_with_astro.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +1 -1
- package/docs/ru/intlayer_with_next-i18next.md +1 -0
- package/docs/ru/intlayer_with_next-intl.md +1 -0
- package/docs/ru/intlayer_with_tanstack.md +1 -12
- package/docs/ru/plugins/sync-json.md +27 -2
- package/docs/tr/cli/index.md +5 -0
- package/docs/tr/cli/login.md +171 -0
- package/docs/tr/configuration.md +12 -0
- package/docs/tr/dictionary/content_file.md +44 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_next-i18next.md +1 -0
- package/docs/tr/intlayer_with_next-intl.md +1 -0
- package/docs/tr/intlayer_with_tanstack.md +1 -12
- package/docs/tr/plugins/sync-json.md +27 -2
- package/docs/vi/cli/index.md +5 -0
- package/docs/vi/cli/login.md +186 -0
- package/docs/vi/configuration.md +12 -0
- package/docs/vi/dictionary/content_file.md +24 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_nestjs.md +1 -1
- package/docs/vi/intlayer_with_next-i18next.md +1 -0
- package/docs/vi/intlayer_with_next-intl.md +1 -0
- package/docs/vi/intlayer_with_tanstack.md +1 -12
- package/docs/vi/plugins/sync-json.md +27 -2
- package/docs/zh/cli/index.md +5 -0
- package/docs/zh/cli/login.md +182 -0
- package/docs/zh/configuration.md +12 -0
- package/docs/zh/dictionary/content_file.md +44 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_next-i18next.md +1 -0
- package/docs/zh/intlayer_with_next-intl.md +1 -0
- package/docs/zh/intlayer_with_tanstack.md +1 -12
- package/docs/zh/plugins/sync-json.md +27 -2
- package/package.json +9 -9
- package/src/generated/docs.entry.ts +19 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
3
|
updatedAt: 2025-10-03
|
|
4
4
|
title: Comment traduire votre Astro – guide i18n 2025
|
|
5
|
-
description: Apprenez à ajouter l'internationalisation (i18n) à votre
|
|
5
|
+
description: Apprenez à ajouter l'internationalisation (i18n) à votre site web Astro en utilisant Intlayer. Suivez ce guide pour rendre votre site multilingue.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalisation
|
|
8
8
|
- Documentation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
3
|
updatedAt: 2025-06-29
|
|
4
4
|
title: Comment traduire votre Express backend – guide i18n 2025
|
|
5
|
-
description: Découvrez comment rendre votre backend
|
|
5
|
+
description: Découvrez comment rendre votre backend Express multilingue. Suivez la documentation pour l’internationaliser (i18n) et le traduire.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalisation
|
|
8
8
|
- Documentation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
3
|
updatedAt: 2025-09-09
|
|
4
4
|
title: Comment traduire votre Nest backend – guide i18n 2025
|
|
5
|
-
description: Découvrez comment rendre votre backend
|
|
5
|
+
description: Découvrez comment rendre votre backend NestJS multilingue. Suivez la documentation pour internationaliser (i18n) et traduire.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalisation
|
|
8
8
|
- Documentation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-11
|
|
4
4
|
title: Comment traduire votre Tanstack Start – guide i18n 2025
|
|
5
5
|
description: Apprenez à ajouter l'internationalisation (i18n) à votre application Tanstack Start en utilisant Intlayer. Suivez ce guide complet pour rendre votre application multilingue avec un routage sensible à la locale.
|
|
6
6
|
keywords:
|
|
@@ -643,17 +643,6 @@ export function NotFoundComponent() {
|
|
|
643
643
|
}
|
|
644
644
|
```
|
|
645
645
|
|
|
646
|
-
```tsx fileName="src/routes/__root.tsx"
|
|
647
|
-
import { createRootRoute } from "@tanstack/react-router";
|
|
648
|
-
|
|
649
|
-
// La route racine sert de mise en page de niveau supérieur
|
|
650
|
-
// Elle ne gère pas les 404 directement - c'est délégué aux routes enfants
|
|
651
|
-
// Cela garde la racine simple et permet aux routes conscientes de la locale de gérer leur propre logique 404
|
|
652
|
-
export const Route = createRootRoute({
|
|
653
|
-
component: Outlet,
|
|
654
|
-
});
|
|
655
|
-
```
|
|
656
|
-
|
|
657
646
|
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
658
647
|
import { createFileRoute, Outlet, redirect } from "@tanstack/react-router";
|
|
659
648
|
import { validatePrefix } from "intlayer";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-13
|
|
4
4
|
title: Plugin Sync JSON
|
|
5
5
|
description: Synchronisez les dictionnaires Intlayer avec des fichiers JSON i18n tiers (i18next, next-intl, react-intl, vue-i18n, et plus). Conservez votre i18n existant tout en utilisant Intlayer pour gérer, traduire et tester vos messages.
|
|
6
6
|
keywords:
|
|
@@ -24,12 +24,15 @@ slugs:
|
|
|
24
24
|
- sync-json
|
|
25
25
|
youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
|
|
26
26
|
history:
|
|
27
|
+
- version: 7.5.0
|
|
28
|
+
date: 2025-12-13
|
|
29
|
+
changes: Ajout du support des formats ICU et i18next
|
|
27
30
|
- version: 6.1.6
|
|
28
31
|
date: 2025-10-05
|
|
29
32
|
changes: Documentation initiale du plugin Sync JSON
|
|
30
33
|
---
|
|
31
34
|
|
|
32
|
-
# Sync JSON (ponts i18n)
|
|
35
|
+
# Sync JSON (ponts i18n) - Sync JSON avec support ICU / i18next
|
|
33
36
|
|
|
34
37
|
<iframe title="Comment garder vos traductions JSON synchronisées avec Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
35
38
|
|
|
@@ -105,9 +108,27 @@ syncJSON({
|
|
|
105
108
|
source: ({ key, locale }) => string, // requis
|
|
106
109
|
location?: string, // étiquette optionnelle, par défaut : "plugin"
|
|
107
110
|
priority?: number, // priorité optionnelle pour la résolution des conflits, par défaut : 0
|
|
111
|
+
format?: 'intlayer' | 'icu' | 'i18next', // formateur optionnel, par défaut : 'intlayer'
|
|
108
112
|
});
|
|
109
113
|
```
|
|
110
114
|
|
|
115
|
+
#### `format` ('intlayer' | 'icu' | 'i18next')
|
|
116
|
+
|
|
117
|
+
Spécifie le formateur à utiliser pour le contenu du dictionnaire lors de la synchronisation des fichiers JSON. Cela permet d'utiliser différentes syntaxes de formatage de messages compatibles avec diverses bibliothèques i18n.
|
|
118
|
+
|
|
119
|
+
- `'intlayer'`: Le formateur Intlayer par défaut (par défaut).
|
|
120
|
+
- `'icu'`: Utilise le formatage de messages ICU (compatible avec des bibliothèques comme react-intl, vue-i18n).
|
|
121
|
+
- `'i18next'`: Utilise le formatage de messages i18next (compatible avec i18next, next-i18next, Solid-i18next).
|
|
122
|
+
|
|
123
|
+
**Exemple :**
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
syncJSON({
|
|
127
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
128
|
+
format: "i18next", // Utiliser le formatage i18next pour la compatibilité
|
|
129
|
+
}),
|
|
130
|
+
```
|
|
131
|
+
|
|
111
132
|
## Sources JSON multiples et priorité
|
|
112
133
|
|
|
113
134
|
Vous pouvez ajouter plusieurs plugins `syncJSON` pour synchroniser différentes sources JSON. Cela est utile lorsque vous avez plusieurs bibliothèques i18n ou différentes structures JSON dans votre projet.
|
|
@@ -134,6 +155,7 @@ export default defineConfig({
|
|
|
134
155
|
plugins: [
|
|
135
156
|
// Source JSON principale (priorité la plus élevée)
|
|
136
157
|
syncJSON({
|
|
158
|
+
format: "i18next",
|
|
137
159
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
138
160
|
location: "main-translations",
|
|
139
161
|
priority: 10,
|
|
@@ -141,6 +163,7 @@ export default defineConfig({
|
|
|
141
163
|
|
|
142
164
|
// Source JSON de secours (priorité plus basse)
|
|
143
165
|
syncJSON({
|
|
166
|
+
format: "i18next",
|
|
144
167
|
source: ({ locale }) => `./fallback-locales/${locale}.json`,
|
|
145
168
|
location: "fallback-translations",
|
|
146
169
|
priority: 5,
|
|
@@ -148,6 +171,7 @@ export default defineConfig({
|
|
|
148
171
|
|
|
149
172
|
// Source JSON héritée (priorité la plus basse)
|
|
150
173
|
syncJSON({
|
|
174
|
+
format: "i18next",
|
|
151
175
|
source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,
|
|
152
176
|
location: "legacy-translations",
|
|
153
177
|
priority: 1,
|
|
@@ -178,6 +202,7 @@ import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
|
178
202
|
export default {
|
|
179
203
|
plugins: [
|
|
180
204
|
syncJSON({
|
|
205
|
+
format: "i18next",
|
|
181
206
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
182
207
|
}),
|
|
183
208
|
],
|
package/docs/hi/cli/index.md
CHANGED
|
@@ -103,6 +103,10 @@ Intlayer कई कॉन्फ़िगरेशन फ़ाइल प्र
|
|
|
103
103
|
|
|
104
104
|
## intlayer कमांड चलाएँ
|
|
105
105
|
|
|
106
|
+
### प्रमाणीकरण
|
|
107
|
+
|
|
108
|
+
- **[लॉगिन](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/login.md)** - Intlayer CMS के साथ प्रमाणित करें और पहुंच क्रेडेंशियल प्राप्त करें
|
|
109
|
+
|
|
106
110
|
### मुख्य कमांड्स
|
|
107
111
|
|
|
108
112
|
- **[शब्दकोश बनाएं](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/build.md)** - कंटेंट घोषणा फ़ाइलों से अपने शब्दकोश बनाएं
|
|
@@ -144,6 +148,7 @@ Intlayer कई कॉन्फ़िगरेशन फ़ाइल प्र
|
|
|
144
148
|
|
|
145
149
|
```json fileName="package.json"
|
|
146
150
|
"scripts": {
|
|
151
|
+
"intlayer:login": "npx intlayer login",
|
|
147
152
|
"intlayer:build": "npx intlayer build",
|
|
148
153
|
"intlayer:watch": "npx intlayer build --watch",
|
|
149
154
|
"intlayer:push": "npx intlayer push",
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-16
|
|
3
|
+
updatedAt: 2025-12-16
|
|
4
|
+
title: "CLI - लॉगिन"
|
|
5
|
+
description: "Intlayer CLI के `login` कमांड का उपयोग करके Intlayer CMS के साथ प्रमाणीकृत होने और एक्सेस क्रेडेंशियल प्राप्त करने का तरीका जानें।"
|
|
6
|
+
keywords:
|
|
7
|
+
- CLI
|
|
8
|
+
- Login
|
|
9
|
+
- Authentication
|
|
10
|
+
- CMS
|
|
11
|
+
- Intlayer
|
|
12
|
+
- Credentials
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- concept
|
|
16
|
+
- cli
|
|
17
|
+
- login
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Intlayer CLI लॉगिन कमांड
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## विवरण
|
|
25
|
+
|
|
26
|
+
Intlayer CLI का `login` कमांड आपको Intlayer CMS के साथ प्रमाणीकृत होने की अनुमति देता है। यह कमांड आपके डिफ़ॉल्ट ब्राउज़र को स्वचालित रूप से खोलता है ताकि प्रमाणीकरण प्रक्रिया पूरी की जा सके और Intlayer सेवाओं का उपयोग करने के लिए आवश्यक क्रेडेंशियल (Client ID और Client Secret) प्राप्त किए जा सकें।
|
|
27
|
+
|
|
28
|
+
## उपयोग
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx intlayer login [options]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
या
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
intlayer login [options]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## विकल्प
|
|
41
|
+
|
|
42
|
+
### `--cms-url <url>`
|
|
43
|
+
|
|
44
|
+
प्रमाणीकरण के लिए कनेक्ट करने हेतु Intlayer CMS का URL निर्दिष्ट करें।
|
|
45
|
+
|
|
46
|
+
- **प्रकार**: `string`
|
|
47
|
+
- **डिफ़ॉल्ट**: `intlayer.config.*` में कॉन्फ़िगर किया गया मान या `https://intlayer.org`
|
|
48
|
+
- **उदाहरण**:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx intlayer login --cms-url https://intlayer.org
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### कॉन्फ़िगरेशन विकल्प
|
|
55
|
+
|
|
56
|
+
आप सामान्य कॉन्फ़िगरेशन विकल्प भी उपयोग कर सकते हैं:
|
|
57
|
+
|
|
58
|
+
- `--env-file <path>`: पर्यावरण फ़ाइल का पथ
|
|
59
|
+
- `-e, --env <env>`: निष्पादन पर्यावरण
|
|
60
|
+
- `--base-dir <dir>`: प्रोजेक्ट की बेस डायरेक्टरी
|
|
61
|
+
- `--verbose`: विस्तृत आउटपुट सक्षम करें (डिफ़ॉल्ट: true)
|
|
62
|
+
- `--prefix <prefix>`: लॉग के लिए उपसर्ग
|
|
63
|
+
|
|
64
|
+
## यह कैसे काम करता है
|
|
65
|
+
|
|
66
|
+
1. **लोकल सर्वर शुरू करना**: यह कमांड CMS से क्रेडेंशियल प्राप्त करने के लिए एक रैंडम पोर्ट पर लोकल HTTP सर्वर शुरू करता है
|
|
67
|
+
|
|
68
|
+
प्रमाणीकरण के लिए कनेक्ट करने हेतु Intlayer CMS का URL निर्दिष्ट करें।
|
|
69
|
+
|
|
70
|
+
- **प्रकार**: `string`
|
|
71
|
+
- **डिफ़ॉल्ट**: `intlayer.config.*` में कॉन्फ़िगर किया गया मान या `https://intlayer.org`
|
|
72
|
+
- **उदाहरण**:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx intlayer login --cms-url https://intlayer.org
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### कॉन्फ़िगरेशन विकल्प
|
|
79
|
+
|
|
80
|
+
आप सामान्य कॉन्फ़िगरेशन विकल्प भी उपयोग कर सकते हैं:
|
|
81
|
+
|
|
82
|
+
- `--env-file <path>`: एनवायरनमेंट फ़ाइल का पथ
|
|
83
|
+
- `-e, --env <env>`: निष्पादन वातावरण
|
|
84
|
+
- `--base-dir <dir>`: प्रोजेक्ट की मूल निर्देशिका
|
|
85
|
+
- `--verbose`: विस्तृत आउटपुट सक्षम करें (डिफ़ॉल्ट: true)
|
|
86
|
+
- `--prefix <prefix>`: लॉग्स के लिए प्रीफ़िक्स
|
|
87
|
+
|
|
88
|
+
## यह कैसे काम करता है
|
|
89
|
+
|
|
90
|
+
1. **स्थानीय सर्वर शुरू**: कमांड CMS से क्रेडेंशियल प्राप्त करने के लिए एक रैंडम पोर्ट पर स्थानीय HTTP सर्वर शुरू करता है
|
|
91
|
+
2. **ब्राउज़र खोलना**: यह कमांड स्वचालित रूप से आपका डिफ़ॉल्ट ब्राउज़र CMS लॉगिन URL में खोलता है
|
|
92
|
+
3. **प्रमाणीकरण**: ब्राउज़र में अपने Intlayer खाते का उपयोग करके प्रमाणीकरण पूरा करें
|
|
93
|
+
4. **क्रेडेंशियल प्राप्ति**: लोकल सर्वर CMS से Client ID और Client Secret प्राप्त करता है
|
|
94
|
+
5. **निर्देश**: यह कमांड आपके प्रोजेक्ट में क्रेडेंशियल कॉन्फ़िगर करने के निर्देश प्रदर्शित करता है
|
|
95
|
+
|
|
96
|
+
## आउटपुट
|
|
97
|
+
|
|
98
|
+
सफल लॉगिन के बाद, यह कमांड निम्न प्रदर्शित करेगा:
|
|
99
|
+
|
|
100
|
+
1. **प्राप्त क्रेडेंशियल** (Client ID और Client Secret)
|
|
101
|
+
2. **`.env` फ़ाइल के लिए निर्देश**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
INTLAYER_CLIENT_ID=your_client_id
|
|
105
|
+
INTLAYER_CLIENT_SECRET=your_client_secret
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
3. **Intlayer कॉन्फ़िगरेशन फ़ाइल के लिए निर्देश**:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
{
|
|
112
|
+
editor: {
|
|
113
|
+
cmsURL: 'https://intlayer.org',
|
|
114
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
115
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
116
|
+
},
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## मैनुअल कॉन्फ़िगरेशन
|
|
121
|
+
|
|
122
|
+
यदि ब्राउज़र स्वचालित रूप से नहीं खुलता है, तो आप टर्मिनल में दिखाई गई URL को मैन्युअली खोल सकते हैं।
|
|
123
|
+
|
|
124
|
+
## उदाहरण
|
|
125
|
+
|
|
126
|
+
### कस्टम CMS URL के साथ लॉगिन
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx intlayer login --cms-url https://custom-cms.example.com
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### विशिष्ट एनवायरनमेंट फ़ाइल के साथ लॉगिन
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npx intlayer login --env-file .env.production
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### विस्तृत मोड में लॉगिन
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npx intlayer login --verbose
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## समस्या निवारण
|
|
145
|
+
|
|
146
|
+
### ब्राउज़र नहीं खुलता
|
|
147
|
+
|
|
148
|
+
यदि ब्राउज़र स्वचालित रूप से नहीं खुलता है, तो टर्मिनल में दिखाई गई URL को कॉपी कर अपने ब्राउज़र में मैन्युअली खोलें।
|
|
149
|
+
|
|
150
|
+
### कनेक्शन समस्याएँ
|
|
151
|
+
|
|
152
|
+
यदि आप कनेक्शन समस्याओं का सामना कर रहे हैं, तो जांचें:
|
|
153
|
+
|
|
154
|
+
1. कि CMS URL सही है
|
|
155
|
+
2. कि आपका इंटरनेट कनेक्शन सही ढंग से काम कर रहा है
|
|
156
|
+
3. कि कोई फ़ायरवॉल कनेक्शन को ब्लॉक नहीं कर रहा है
|
|
157
|
+
|
|
158
|
+
### क्रेडेंशियल प्राप्त नहीं हुए
|
|
159
|
+
|
|
160
|
+
यदि क्रेडेंशियल प्राप्त नहीं हुए:
|
|
161
|
+
|
|
162
|
+
1. सुनिश्चित करें कि आपने ब्राउज़र में प्रमाणीकरण प्रक्रिया पूरा की है
|
|
163
|
+
2. सत्यापित करें कि लोकल पोर्ट अवरुद्ध नहीं है
|
|
164
|
+
3. कमांड को पुनः चलाएँ
|
|
165
|
+
|
|
166
|
+
## अगले कदम
|
|
167
|
+
|
|
168
|
+
लॉगिन पूरा करने के बाद:
|
|
169
|
+
|
|
170
|
+
1. क्रेडेंशियल को अपनी `.env` फ़ाइल में जोड़ें
|
|
171
|
+
2. क्रेडेंशियल के साथ अपनी `intlayer.config.*` फ़ाइल कॉन्फ़िगर करें
|
|
172
|
+
3. डिक्शनरी प्रबंधित करने के लिए CLI कमांड का उपयोग करें:
|
|
173
|
+
- [`npx intlayer push`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/push.md) - डिक्शनरी को CMS में पुश करें
|
|
174
|
+
- [`npx intlayer pull`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/pull.md) - CMS से डिक्शनरी खींचें
|
|
175
|
+
- [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/fill.md) - लापता अनुवाद भरें
|
|
176
|
+
|
|
177
|
+
## इन्हें भी देखें
|
|
178
|
+
|
|
179
|
+
- [CLI दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/cli/index.md)
|
|
180
|
+
- [Intlayer कॉन्फ़िगरेशन](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md)
|
|
181
|
+
- [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_CMS.md)
|
package/docs/hi/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 7.5.0
|
|
18
|
+
date: 2025-12-17
|
|
19
|
+
changes: `buildMode` विकल्प जोड़ा
|
|
17
20
|
- version: 6.0.0
|
|
18
21
|
date: 2025-09-16
|
|
19
22
|
changes: `live` आयात मोड जोड़ा
|
|
@@ -524,6 +527,15 @@ Intlayer बेहतर लचीलापन और विकल्प के
|
|
|
524
527
|
|
|
525
528
|
#### गुण
|
|
526
529
|
|
|
530
|
+
- **mode**:
|
|
531
|
+
- _प्रकार_: `'auto' | 'manual'`
|
|
532
|
+
- _डिफ़ॉल्ट_: `'auto'`
|
|
533
|
+
- _विवरण_: बिल्ड के मोड को नियंत्रित करता है।
|
|
534
|
+
- _उदाहरण_: `'manual'`
|
|
535
|
+
- _नोट_: यदि 'auto', तो एप्लिकेशन बनाए जाने पर बिल्ड स्वचालित रूप से सक्षम हो जाएगा।
|
|
536
|
+
- _नोट_: यदि 'manual', तो बिल्ड केवल तब सेट किया जाएगा जब बिल्ड कमांड निष्पादित की जाती है।
|
|
537
|
+
- _नोट_: शब्दकोश बिल्ड को अक्षम करने के लिए उपयोग किया जा सकता है, उदाहरण के लिए जब Node.js वातावरण में निष्पादन से बचना चाहिए।
|
|
538
|
+
|
|
527
539
|
- **optimize**:
|
|
528
540
|
- _प्रकार_: `boolean`
|
|
529
541
|
- _डिफ़ॉल्ट_: `process.env.NODE_ENV === 'production'`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-13
|
|
4
4
|
title: कंटेंट फ़ाइल
|
|
5
5
|
description: अपनी कंटेंट घोषणा फ़ाइलों के एक्सटेंशनों को कस्टमाइज़ करना सीखें। अपने प्रोजेक्ट में शर्तों को कुशलतापूर्वक लागू करने के लिए इस दस्तावेज़ का पालन करें।
|
|
6
6
|
keywords:
|
|
@@ -12,6 +12,9 @@ slugs:
|
|
|
12
12
|
- concept
|
|
13
13
|
- content
|
|
14
14
|
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-13
|
|
17
|
+
changes: ICU और i18next प्रारूप समर्थन जोड़ा
|
|
15
18
|
- version: 6.0.0
|
|
16
19
|
date: 2025-09-20
|
|
17
20
|
changes: फ़ील्ड्स दस्तावेज़ीकरण जोड़ा
|
|
@@ -386,6 +389,26 @@ Intlayer में एक शब्दकोश `Dictionary` प्रकार
|
|
|
386
389
|
}
|
|
387
390
|
```
|
|
388
391
|
|
|
392
|
+
#### `format` ('intlayer' | 'icu' | 'i18next')
|
|
393
|
+
|
|
394
|
+
शब्दकोश सामग्री के लिए उपयोग करने के लिए फ़ॉर्मेटर निर्दिष्ट करता है। यह विभिन्न संदेश फ़ॉर्मेटिंग सिंटैक्स का उपयोग करने की अनुमति देता है।
|
|
395
|
+
|
|
396
|
+
- `'intlayer'`: डिफ़ॉल्ट Intlayer फ़ॉर्मेटर।
|
|
397
|
+
- `'icu'`: ICU संदेश फ़ॉर्मेटिंग का उपयोग करता है।
|
|
398
|
+
- `'i18next'`: i18next संदेश फ़ॉर्मेटिंग का उपयोग करता है।
|
|
399
|
+
|
|
400
|
+
**उदाहरण:**
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
{
|
|
404
|
+
key: "my-dictionary",
|
|
405
|
+
format: "icu",
|
|
406
|
+
content: {
|
|
407
|
+
message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
```
|
|
411
|
+
|
|
389
412
|
#### `locale` (LocalesValues)
|
|
390
413
|
|
|
391
414
|
शब्दकोश को प्रति-स्थानिक शब्दकोश में परिवर्तित करता है जहाँ सामग्री में घोषित प्रत्येक फ़ील्ड स्वचालित रूप से एक अनुवाद नोड में परिवर्तित हो जाएगा। जब यह गुण सेट किया जाता है:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
3
|
updatedAt: 2025-10-03
|
|
4
4
|
title: अपना Astro ऐप कैसे अनुवाद करें – i18n गाइड 2025
|
|
5
|
-
description: जानें कि कैसे Intlayer का उपयोग करके अपनी
|
|
5
|
+
description: जानें कि कैसे Intlayer का उपयोग करके अपनी Astro वेबसाइट में अंतरराष्ट्रीयकरण (i18n) जोड़ें। इस गाइड का पालन करें ताकि आपकी वेबसाइट बहुभाषी बन सके।
|
|
6
6
|
keywords:
|
|
7
7
|
- अंतरराष्ट्रीयकरण
|
|
8
8
|
- दस्तावेज़ीकरण
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
3
|
updatedAt: 2025-06-29
|
|
4
4
|
title: अपना Express backend ऐप कैसे अनुवाद करें – i18n गाइड 2025
|
|
5
|
-
description: जानें कि कैसे
|
|
5
|
+
description: जानें कि कैसे अपने Express बैकएंड को बहुभाषी बनाया जाए। इसे अंतर्राष्ट्रीय बनाने (i18n) और अनुवाद करने के लिए दस्तावेज़ का पालन करें।
|
|
6
6
|
keywords:
|
|
7
7
|
- आंतरराष्ट्रीयकरण
|
|
8
8
|
- दस्तावेज़ीकरण
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
3
|
updatedAt: 2025-09-09
|
|
4
4
|
title: अपना Nest backend ऐप कैसे अनुवाद करें – i18n गाइड 2025
|
|
5
|
-
description: जानें कि अपने
|
|
5
|
+
description: जानें कि अपने NestJS बैकएंड को बहुभाषी कैसे बनाएं। अंतरराष्ट्रीयकरण (i18n) और अनुवाद के लिए दस्तावेज़ का पालन करें।
|
|
6
6
|
keywords:
|
|
7
7
|
- अंतरराष्ट्रीयकरण
|
|
8
8
|
- दस्तावेज़
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-11
|
|
4
4
|
title: अपना Tanstack Start ऐप कैसे अनुवाद करें – i18n गाइड 2025
|
|
5
5
|
description: जानें कि अपने Tanstack Start एप्लिकेशन में Intlayer का उपयोग करके अंतरराष्ट्रीयकरण (i18n) कैसे जोड़ें। इस व्यापक गाइड का पालन करें ताकि आपका ऐप बहुभाषी और लोकल-आधारित रूटिंग के साथ हो।
|
|
6
6
|
keywords:
|
|
@@ -624,17 +624,6 @@ export function NotFoundComponent() {
|
|
|
624
624
|
}
|
|
625
625
|
```
|
|
626
626
|
|
|
627
|
-
```tsx fileName="src/routes/__root.tsx"
|
|
628
|
-
import { createRootRoute } from "@tanstack/react-router";
|
|
629
|
-
|
|
630
|
-
// रूट रूट शीर्ष-स्तरीय लेआउट के रूप में कार्य करता है
|
|
631
|
-
// यह 404 को सीधे हैंडल नहीं करता - यह चाइल्ड रूट को सौंपा जाता है
|
|
632
|
-
// यह रूट को सरल रखता है और लोकेल-जागरूक रूट को अपने स्वयं के 404 तर्क को प्रबंधित करने देता है
|
|
633
|
-
export const Route = createRootRoute({
|
|
634
|
-
component: Outlet,
|
|
635
|
-
});
|
|
636
|
-
```
|
|
637
|
-
|
|
638
627
|
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
639
628
|
import { createFileRoute, Outlet, redirect } from "@tanstack/react-router";
|
|
640
629
|
import { validatePrefix } from "intlayer";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-13
|
|
4
4
|
title: सिंक JSON प्लगइन
|
|
5
5
|
description: Intlayer शब्दकोशों को तृतीय-पक्ष i18n JSON फ़ाइलों (i18next, next-intl, react-intl, vue-i18n, और अन्य) के साथ सिंक्रनाइज़ करें। अपने मौजूदा i18n को बनाए रखें जबकि Intlayer का उपयोग करके अपने संदेशों का प्रबंधन, अनुवाद और परीक्षण करें।
|
|
6
6
|
keywords:
|
|
@@ -24,12 +24,15 @@ slugs:
|
|
|
24
24
|
- sync-json
|
|
25
25
|
youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
|
|
26
26
|
history:
|
|
27
|
+
- version: 7.5.0
|
|
28
|
+
date: 2025-12-13
|
|
29
|
+
changes: ICU और i18next प्रारूप समर्थन जोड़ा गया
|
|
27
30
|
- version: 6.1.6
|
|
28
31
|
date: 2025-10-05
|
|
29
32
|
changes: प्रारंभिक सिंक JSON प्लगइन दस्तावेज़ीकरण
|
|
30
33
|
---
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
# सिंक JSON (i18n ब्रिजेस) - ICU / i18next समर्थन के साथ सिंक JSON
|
|
33
36
|
|
|
34
37
|
<iframe title="Intlayer के साथ अपने JSON अनुवादों को सिंक में कैसे रखें" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
35
38
|
|
|
@@ -105,9 +108,27 @@ syncJSON({
|
|
|
105
108
|
source: ({ key, locale }) => string, // आवश्यक
|
|
106
109
|
location?: string, // वैकल्पिक लेबल, डिफ़ॉल्ट: "plugin"
|
|
107
110
|
priority?: number, // संघर्ष समाधान के लिए वैकल्पिक प्राथमिकता, डिफ़ॉल्ट: 0
|
|
111
|
+
format?: 'intlayer' | 'icu' | 'i18next', // वैकल्पिक फ़ॉर्मेटर, डिफ़ॉल्ट: 'intlayer'
|
|
108
112
|
});
|
|
109
113
|
```
|
|
110
114
|
|
|
115
|
+
#### `format` ('intlayer' | 'icu' | 'i18next')
|
|
116
|
+
|
|
117
|
+
JSON फ़ाइलों को सिंक्रनाइज़ करते समय शब्दकोश सामग्री के लिए उपयोग किए जाने वाले फ़ॉर्मेटर को निर्दिष्ट करता है। यह विभिन्न i18n लाइब्रेरी के साथ संगत विभिन्न संदेश फ़ॉर्मेटिंग सिंटैक्स का उपयोग करने की अनुमति देता है।
|
|
118
|
+
|
|
119
|
+
- `'intlayer'`: डिफ़ॉल्ट Intlayer फ़ॉर्मेटर (डिफ़ॉल्ट)।
|
|
120
|
+
- `'icu'`: ICU संदेश फ़ॉर्मेटिंग का उपयोग करता है (react-intl, vue-i18n जैसी लाइब्रेरी के साथ संगत)।
|
|
121
|
+
- `'i18next'`: i18next संदेश फ़ॉर्मेटिंग का उपयोग करता है (i18next, next-i18next, Solid-i18next के साथ संगत)।
|
|
122
|
+
|
|
123
|
+
**उदाहरण:**
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
syncJSON({
|
|
127
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
128
|
+
format: "i18next", // संगतता के लिए i18next फ़ॉर्मेटिंग का उपयोग करें
|
|
129
|
+
}),
|
|
130
|
+
```
|
|
131
|
+
|
|
111
132
|
## कई JSON स्रोत और प्राथमिकता
|
|
112
133
|
|
|
113
134
|
आप विभिन्न JSON स्रोतों को सिंक्रनाइज़ करने के लिए कई `syncJSON` प्लगइन्स जोड़ सकते हैं। यह तब उपयोगी होता है जब आपके प्रोजेक्ट में कई i18n लाइब्रेरीज़ या विभिन्न JSON संरचनाएँ हों।
|
|
@@ -134,6 +155,7 @@ export default defineConfig({
|
|
|
134
155
|
plugins: [
|
|
135
156
|
// प्राथमिक JSON स्रोत (सबसे उच्च प्राथमिकता)
|
|
136
157
|
syncJSON({
|
|
158
|
+
format: "i18next",
|
|
137
159
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
138
160
|
location: "main-translations",
|
|
139
161
|
priority: 10,
|
|
@@ -141,6 +163,7 @@ export default defineConfig({
|
|
|
141
163
|
|
|
142
164
|
// फॉलबैक JSON स्रोत (कम प्राथमिकता)
|
|
143
165
|
syncJSON({
|
|
166
|
+
format: "i18next",
|
|
144
167
|
source: ({ locale }) => `./fallback-locales/${locale}.json`,
|
|
145
168
|
location: "fallback-translations",
|
|
146
169
|
priority: 5,
|
|
@@ -148,6 +171,7 @@ export default defineConfig({
|
|
|
148
171
|
|
|
149
172
|
// लेगेसी JSON स्रोत (सबसे कम प्राथमिकता)
|
|
150
173
|
syncJSON({
|
|
174
|
+
format: "i18next",
|
|
151
175
|
source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,
|
|
152
176
|
location: "legacy-translations",
|
|
153
177
|
priority: 1,
|
|
@@ -178,6 +202,7 @@ import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
|
178
202
|
export default {
|
|
179
203
|
plugins: [
|
|
180
204
|
syncJSON({
|
|
205
|
+
format: "i18next",
|
|
181
206
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
182
207
|
}),
|
|
183
208
|
],
|
package/docs/id/cli/index.md
CHANGED
|
@@ -103,6 +103,10 @@ Untuk melihat cara mengonfigurasi locale yang tersedia, atau parameter lainnya,
|
|
|
103
103
|
|
|
104
104
|
## Menjalankan perintah intlayer
|
|
105
105
|
|
|
106
|
+
### Autentikasi
|
|
107
|
+
|
|
108
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/login.md)** - Autentikasi dengan Intlayer CMS dan dapatkan kredensial akses
|
|
109
|
+
|
|
106
110
|
### Perintah Inti
|
|
107
111
|
|
|
108
112
|
- **[Bangun Kamus](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/build.md)** - Bangun kamus Anda dari file deklarasi konten
|
|
@@ -144,6 +148,7 @@ Untuk melihat cara mengonfigurasi locale yang tersedia, atau parameter lainnya,
|
|
|
144
148
|
|
|
145
149
|
```json fileName="package.json"
|
|
146
150
|
"scripts": {
|
|
151
|
+
"intlayer:login": "npx intlayer login",
|
|
147
152
|
"intlayer:build": "npx intlayer build",
|
|
148
153
|
"intlayer:watch": "npx intlayer build --watch",
|
|
149
154
|
"intlayer:push": "npx intlayer push",
|