@intlayer/docs 8.3.0-canary.4 → 8.3.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/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: React Router v7 i18n - Wie Sie eine React Router v7 App übersetzen in 2026
|
|
5
5
|
description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer React Router v7-Anwendung mit Intlayer hinzufügen. Folgen Sie dieser umfassenden Anleitung, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
|
|
6
6
|
keywords:
|
|
@@ -38,7 +38,7 @@ history:
|
|
|
38
38
|
|
|
39
39
|
Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung in React Router v7-Projekten mit lokalisierungsbewusstem Routing, TypeScript-Unterstützung und modernen Entwicklungsmethoden integrieren.
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## Inhaltsverzeichnis
|
|
42
42
|
|
|
43
43
|
<TOC/>
|
|
44
44
|
|
|
@@ -506,6 +506,229 @@ export default function RootLayout() {
|
|
|
506
506
|
}
|
|
507
507
|
```
|
|
508
508
|
|
|
509
|
+
### (Optional) Schritt 12 : Inhalt Ihrer Komponenten extrahieren
|
|
510
|
+
|
|
511
|
+
Wenn Sie eine bestehende Codebasis haben, kann die Transformation von Tausenden von Dateien zeitaufwendig sein.
|
|
512
|
+
|
|
513
|
+
Um diesen Prozess zu erleichtern, bietet Intlayer einen [Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compiler.md) / [Extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/extract.md) an, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren.
|
|
514
|
+
|
|
515
|
+
Um es einzurichten, können Sie einen `compiler`-Abschnitt in Ihrer `intlayer.config.ts`-Datei hinzufügen:
|
|
516
|
+
|
|
517
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
518
|
+
import { type IntlayerConfig } from "intlayer";
|
|
519
|
+
|
|
520
|
+
const config: IntlayerConfig = {
|
|
521
|
+
// ... Rest Ihrer Konfiguration
|
|
522
|
+
compiler: {
|
|
523
|
+
/**
|
|
524
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
525
|
+
*/
|
|
526
|
+
enabled: true,
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Definiert den Pfad der Ausgabedateien
|
|
530
|
+
*/
|
|
531
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
535
|
+
*/
|
|
536
|
+
saveComponents: false,
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Präfix für Wörterbuchschlüssel
|
|
540
|
+
*/
|
|
541
|
+
dictionaryKeyPrefix: "",
|
|
542
|
+
},
|
|
543
|
+
};
|
|
544
|
+
|
|
545
|
+
export default config;
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
549
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
550
|
+
const config = {
|
|
551
|
+
// ... Rest Ihrer Konfiguration
|
|
552
|
+
compiler: {
|
|
553
|
+
/**
|
|
554
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
555
|
+
*/
|
|
556
|
+
enabled: true,
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Definiert den Pfad der Ausgabedateien
|
|
560
|
+
*/
|
|
561
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
565
|
+
*/
|
|
566
|
+
saveComponents: false,
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Präfix für Wörterbuchschlüssel
|
|
570
|
+
*/
|
|
571
|
+
dictionaryKeyPrefix: "",
|
|
572
|
+
},
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
export default config;
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
579
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
580
|
+
const config = {
|
|
581
|
+
// ... Rest Ihrer Konfiguration
|
|
582
|
+
compiler: {
|
|
583
|
+
/**
|
|
584
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
585
|
+
*/
|
|
586
|
+
enabled: true,
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* Definiert den Pfad der Ausgabedateien
|
|
590
|
+
*/
|
|
591
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
595
|
+
*/
|
|
596
|
+
saveComponents: false,
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Präfix für Wörterbuchschlüssel
|
|
600
|
+
*/
|
|
601
|
+
dictionaryKeyPrefix: "",
|
|
602
|
+
},
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
module.exports = config;
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
<Tabs>
|
|
609
|
+
<Tab value='Extraktionsbefehl'>
|
|
610
|
+
|
|
611
|
+
Führen Sie den Extractor aus, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren
|
|
612
|
+
|
|
613
|
+
```bash packageManager="npm"
|
|
614
|
+
npx intlayer extract
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
```bash packageManager="pnpm"
|
|
618
|
+
pnpm intlayer extract
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
```bash packageManager="yarn"
|
|
622
|
+
yarn intlayer extract
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
```bash packageManager="bun"
|
|
626
|
+
bunx intlayer extract
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
</Tab>
|
|
630
|
+
<Tab value='Babel-Compiler'>
|
|
631
|
+
|
|
632
|
+
Aktualisieren Sie Ihre `vite.config.ts`, um das `intlayerCompiler`-Plugin aufzunehmen:
|
|
633
|
+
|
|
634
|
+
```ts fileName="vite.config.ts"
|
|
635
|
+
import { defineConfig } from "vite";
|
|
636
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
637
|
+
|
|
638
|
+
export default defineConfig({
|
|
639
|
+
plugins: [
|
|
640
|
+
intlayer(),
|
|
641
|
+
intlayerCompiler(), // Fügt das Compiler-Plugin hinzu
|
|
642
|
+
],
|
|
643
|
+
});
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
```bash packageManager="npm"
|
|
647
|
+
npm run build # Oder npm run dev
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
```bash packageManager="pnpm"
|
|
651
|
+
pnpm run build # Oder pnpm run dev
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
```bash packageManager="yarn"
|
|
655
|
+
yarn build # Oder yarn dev
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
```bash packageManager="bun"
|
|
659
|
+
bun run build # Or bun run dev
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
</Tab>
|
|
663
|
+
</Tabs>
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
## Configure TypeScript
|
|
668
|
+
|
|
669
|
+
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
|
|
670
|
+
|
|
671
|
+
Ensure your TypeScript configuration includes the autogenerated types:
|
|
672
|
+
|
|
673
|
+
```json5 fileName="tsconfig.json"
|
|
674
|
+
{
|
|
675
|
+
// ... your existing configurations
|
|
676
|
+
include: [
|
|
677
|
+
// ... your existing includes
|
|
678
|
+
".intlayer/**/*.ts", // Include the auto-generated types
|
|
679
|
+
],
|
|
680
|
+
}
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## Git Configuration
|
|
686
|
+
|
|
687
|
+
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
|
|
688
|
+
|
|
689
|
+
To do this, you can add the following instructions to your `.gitignore` file:
|
|
690
|
+
|
|
691
|
+
```plaintext fileName=".gitignore"
|
|
692
|
+
# Ignoriere die von Intlayer generierten Dateien
|
|
693
|
+
.intlayer
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
## VS Code Extension
|
|
699
|
+
|
|
700
|
+
To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
|
|
701
|
+
|
|
702
|
+
[Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
703
|
+
|
|
704
|
+
This extension provides:
|
|
705
|
+
|
|
706
|
+
- **Autocompletion** for translation keys.
|
|
707
|
+
- **Real-time error detection** for missing translations.
|
|
708
|
+
- **Inline previews** of translated content.
|
|
709
|
+
- **Quick actions** to easily create and update translations.
|
|
710
|
+
|
|
711
|
+
For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
|
|
712
|
+
|
|
713
|
+
---
|
|
714
|
+
|
|
715
|
+
## Go Further
|
|
716
|
+
|
|
717
|
+
To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|
|
718
|
+
|
|
719
|
+
---
|
|
720
|
+
|
|
721
|
+
## Documentation References
|
|
722
|
+
|
|
723
|
+
- [Intlayer Documentation](https://intlayer.org)
|
|
724
|
+
- [React Router v7 Documentation](https://reactrouter.com/)
|
|
725
|
+
- [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
|
|
726
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
727
|
+
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
|
|
728
|
+
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
729
|
+
|
|
730
|
+
This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 for a fully internationalized application with locale-aware routing and TypeScript support.
|
|
731
|
+
|
|
509
732
|
### Schritt 11: Middleware hinzufügen (Optional)
|
|
510
733
|
|
|
511
734
|
Sie können auch das `intlayerProxy` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, erfolgt eine Weiterleitung zur Standard-Locale.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-12-07
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: React Router v7 i18n - Wie Sie eine React Router v7 App übersetzen in 2026
|
|
5
5
|
description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer React Router v7-Anwendung mit Intlayer und dateisystembasiertem Routing hinzufügen. Folgen Sie dieser umfassenden Anleitung, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
|
|
6
6
|
keywords:
|
|
@@ -36,7 +36,7 @@ Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung
|
|
|
36
36
|
|
|
37
37
|
Für clientseitiges Routing lesen Sie bitte die Anleitung [Intlayer mit React Router v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_react_router_v7.md).
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## Inhaltsverzeichnis
|
|
40
40
|
|
|
41
41
|
<TOC/>
|
|
42
42
|
|
|
@@ -77,102 +77,88 @@ Mit Intlayer können Sie:
|
|
|
77
77
|
|
|
78
78
|
See [Application Template](https://github.com/aymericzip/intlayer-react-router-v7-fs-routes-template) on GitHub.
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
---
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
## Configure TypeScript
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
npm install intlayer react-intlayer
|
|
86
|
-
npm install vite-intlayer --save-dev
|
|
87
|
-
npm install @react-router/fs-routes --save-dev
|
|
88
|
-
npx intlayer init
|
|
89
|
-
```
|
|
84
|
+
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
|
|
90
85
|
|
|
91
|
-
|
|
92
|
-
pnpm add intlayer react-intlayer
|
|
93
|
-
pnpm add vite-intlayer --save-dev
|
|
94
|
-
pnpm add @react-router/fs-routes --save-dev
|
|
95
|
-
```
|
|
86
|
+
Ensure your TypeScript configuration includes the autogenerated types:
|
|
96
87
|
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
88
|
+
```json5 fileName="tsconfig.json"
|
|
89
|
+
{
|
|
90
|
+
// ... your existing configurations
|
|
91
|
+
include: [
|
|
92
|
+
// ... your existing includes
|
|
93
|
+
".intlayer/**/*.ts", // Include the auto-generated types
|
|
94
|
+
],
|
|
95
|
+
}
|
|
102
96
|
```
|
|
103
97
|
|
|
104
|
-
|
|
98
|
+
---
|
|
105
99
|
|
|
106
|
-
|
|
100
|
+
## Git Configuration
|
|
107
101
|
|
|
108
|
-
|
|
109
|
-
Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
|
|
102
|
+
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
|
|
110
103
|
|
|
111
|
-
|
|
112
|
-
Enthält das Vite-Plugin zur Integration von Intlayer mit dem [Vite-Bundler](https://vite.dev/guide/why.html#why-bundle-for-production) sowie Middleware zur Erkennung der bevorzugten Sprache des Benutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
|
|
104
|
+
To do this, you can add the following instructions to your `.gitignore` file:
|
|
113
105
|
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
```plaintext fileName=".gitignore"
|
|
107
|
+
# Ignoriere die von Intlayer generierten Dateien
|
|
108
|
+
.intlayer
|
|
109
|
+
```
|
|
116
110
|
|
|
117
|
-
|
|
111
|
+
---
|
|
118
112
|
|
|
119
|
-
|
|
113
|
+
## VS Code Extension
|
|
120
114
|
|
|
121
|
-
|
|
122
|
-
import { type IntlayerConfig, Locales } from "intlayer";
|
|
115
|
+
To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
|
|
123
116
|
|
|
124
|
-
|
|
125
|
-
internationalization: {
|
|
126
|
-
defaultLocale: Locales.ENGLISH, // Standard-Sprache
|
|
127
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
|
|
128
|
-
},
|
|
129
|
-
};
|
|
117
|
+
[Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
130
118
|
|
|
131
|
-
|
|
132
|
-
```
|
|
119
|
+
This extension provides:
|
|
133
120
|
|
|
134
|
-
|
|
135
|
-
|
|
121
|
+
- **Autocompletion** for translation keys.
|
|
122
|
+
- **Real-time error detection** for missing translations.
|
|
123
|
+
- **Inline previews** of translated content.
|
|
124
|
+
- **Quick actions** to easily create and update translations.
|
|
136
125
|
|
|
137
|
-
|
|
138
|
-
const config = {
|
|
139
|
-
internationalization: {
|
|
140
|
-
defaultLocale: Locales.ENGLISH, // Standard-Sprache
|
|
141
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
|
|
142
|
-
},
|
|
143
|
-
};
|
|
126
|
+
For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
|
|
144
127
|
|
|
145
|
-
|
|
146
|
-
```
|
|
128
|
+
---
|
|
147
129
|
|
|
148
|
-
|
|
149
|
-
const { Locales } = require("intlayer");
|
|
130
|
+
## Go Further
|
|
150
131
|
|
|
151
|
-
|
|
152
|
-
const config = {
|
|
153
|
-
internationalization: {
|
|
154
|
-
defaultLocale: Locales.ENGLISH, // Standardsprache
|
|
155
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
|
|
156
|
-
},
|
|
157
|
-
};
|
|
132
|
+
To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|
|
158
133
|
|
|
159
|
-
|
|
160
|
-
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Documentation References
|
|
161
137
|
|
|
162
|
-
|
|
138
|
+
- [Intlayer Documentation](https://intlayer.org)
|
|
139
|
+
- [React Router v7 Documentation](https://reactrouter.com/)
|
|
140
|
+
- [React Router fs-routes Documentation](https://reactrouter.com/how-to/file-route-conventions)
|
|
141
|
+
- [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
|
|
142
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
143
|
+
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
|
|
144
|
+
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
163
145
|
|
|
164
|
-
|
|
146
|
+
This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 using file-system based routing for a fully internationalized application with locale-aware routing and TypeScript support.
|
|
165
147
|
|
|
166
|
-
|
|
148
|
+
### Schritt 10: Middleware hinzufügen (Optional)
|
|
149
|
+
|
|
150
|
+
Sie können auch das `intlayerProxy` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, erfolgt eine Weiterleitung zur Standard-Locale.
|
|
151
|
+
|
|
152
|
+
> Beachten Sie, dass Sie, um das `intlayerProxy` in der Produktion zu verwenden, das Paket `vite-intlayer` von `devDependencies` zu `dependencies` verschieben müssen.
|
|
167
153
|
|
|
168
|
-
```typescript fileName="vite.config.ts"
|
|
154
|
+
```typescript {3,7} fileName="vite.config.ts"
|
|
169
155
|
import { reactRouter } from "@react-router/dev/vite";
|
|
170
156
|
import { defineConfig } from "vite";
|
|
171
|
-
import { intlayer } from "vite-intlayer";
|
|
157
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
172
158
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
173
159
|
|
|
174
160
|
export default defineConfig({
|
|
175
|
-
plugins: [reactRouter(), tsconfigPaths(), intlayer()],
|
|
161
|
+
plugins: [reactRouter(), tsconfigPaths(), intlayer(), intlayerProxy()],
|
|
176
162
|
});
|
|
177
163
|
```
|
|
178
164
|
|
|
@@ -575,23 +561,179 @@ export const useI18nHTMLAttributes = () => {
|
|
|
575
561
|
|
|
576
562
|
Dieser Hook wird bereits in der Layout-Komponente (`root.tsx`) verwendet, die in Schritt 5 gezeigt wird.
|
|
577
563
|
|
|
578
|
-
### Schritt
|
|
564
|
+
### (Optional) Schritt 11 : Inhalt Ihrer Komponenten extrahieren
|
|
579
565
|
|
|
580
|
-
Sie
|
|
566
|
+
Wenn Sie eine bestehende Codebasis haben, kann die Transformation von Tausenden von Dateien zeitaufwendig sein.
|
|
581
567
|
|
|
582
|
-
|
|
568
|
+
Um diesen Prozess zu erleichtern, bietet Intlayer einen [Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compiler.md) / [Extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/extract.md) an, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren.
|
|
583
569
|
|
|
584
|
-
|
|
585
|
-
import { reactRouter } from "@react-router/dev/vite";
|
|
586
|
-
import { defineConfig } from "vite";
|
|
587
|
-
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
588
|
-
import tsconfigPaths from "vite-tsconfig-paths";
|
|
570
|
+
Um es einzurichten, können Sie einen `compiler`-Abschnitt in Ihrer `intlayer.config.ts`-Datei hinzufügen:
|
|
589
571
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
572
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
573
|
+
import { type IntlayerConfig } from "intlayer";
|
|
574
|
+
|
|
575
|
+
const config: IntlayerConfig = {
|
|
576
|
+
// ... Rest Ihrer Konfiguration
|
|
577
|
+
compiler: {
|
|
578
|
+
/**
|
|
579
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
580
|
+
*/
|
|
581
|
+
enabled: true,
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* Definiert den Pfad der Ausgabedateien
|
|
585
|
+
*/
|
|
586
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
590
|
+
*/
|
|
591
|
+
saveComponents: false,
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Präfix für Wörterbuchschlüssel
|
|
595
|
+
*/
|
|
596
|
+
dictionaryKeyPrefix: "",
|
|
597
|
+
},
|
|
598
|
+
};
|
|
599
|
+
|
|
600
|
+
export default config;
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
604
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
605
|
+
const config = {
|
|
606
|
+
// ... Rest Ihrer Konfiguration
|
|
607
|
+
compiler: {
|
|
608
|
+
/**
|
|
609
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
610
|
+
*/
|
|
611
|
+
enabled: true,
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* Definiert den Pfad der Ausgabedateien
|
|
615
|
+
*/
|
|
616
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
620
|
+
*/
|
|
621
|
+
saveComponents: false,
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Präfix für Wörterbuchschlüssel
|
|
625
|
+
*/
|
|
626
|
+
dictionaryKeyPrefix: "",
|
|
627
|
+
},
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
export default config;
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
634
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
635
|
+
const config = {
|
|
636
|
+
// ... Rest Ihrer Konfiguration
|
|
637
|
+
compiler: {
|
|
638
|
+
/**
|
|
639
|
+
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
640
|
+
*/
|
|
641
|
+
enabled: true,
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Definiert den Pfad der Ausgabedateien
|
|
645
|
+
*/
|
|
646
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
650
|
+
*/
|
|
651
|
+
saveComponents: false,
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Präfix für Wörterbuchschlüssel
|
|
655
|
+
*/
|
|
656
|
+
dictionaryKeyPrefix: "",
|
|
657
|
+
},
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
module.exports = config;
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
<Tabs>
|
|
664
|
+
<Tab value='Extraktionsbefehl'>
|
|
665
|
+
|
|
666
|
+
Führen Sie den Extractor aus, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren
|
|
667
|
+
|
|
668
|
+
```bash packageManager="npm"
|
|
669
|
+
npx intlayer extract
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
```bash packageManager="pnpm"
|
|
673
|
+
pnpm intlayer extract
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
```bash packageManager="yarn"
|
|
677
|
+
yarn intlayer extract
|
|
593
678
|
```
|
|
594
679
|
|
|
680
|
+
```bash packageManager="bun"
|
|
681
|
+
bunx intlayer extract
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
</Tab>
|
|
685
|
+
<Tab value='Babel-Compiler'>
|
|
686
|
+
|
|
687
|
+
```bash packageManager="npm"
|
|
688
|
+
npm install @intlayer/babel --save-dev
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
```bash packageManager="pnpm"
|
|
692
|
+
pnpm add @intlayer/babel --save-dev
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
```bash packageManager="yarn"
|
|
696
|
+
yarn add @intlayer/babel --save-dev
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
```bash packageManager="bun"
|
|
700
|
+
bun add @intlayer/babel --dev
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
```js fileName="babel.config.js"
|
|
704
|
+
const {
|
|
705
|
+
intlayerExtractBabelPlugin,
|
|
706
|
+
getExtractPluginOptions,
|
|
707
|
+
} = require("@intlayer/babel");
|
|
708
|
+
|
|
709
|
+
module.exports = {
|
|
710
|
+
presets: ["next/babel"],
|
|
711
|
+
plugins: [
|
|
712
|
+
// Inhalt aus Komponenten in Wörterbücher extrahieren
|
|
713
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
714
|
+
],
|
|
715
|
+
};
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
```bash packageManager="npm"
|
|
719
|
+
npm run build # Oder npm run dev
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
```bash packageManager="pnpm"
|
|
723
|
+
pnpm run build # Oder pnpm run dev
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
```bash packageManager="yarn"
|
|
727
|
+
yarn build # Oder yarn dev
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
```bash packageManager="bun"
|
|
731
|
+
bun run build # Or bun run dev
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
</Tab>
|
|
735
|
+
</Tabs>
|
|
736
|
+
|
|
595
737
|
---
|
|
596
738
|
|
|
597
739
|
## TypeScript konfigurieren
|