@intlayer/docs 7.1.9 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/generated/docs.entry.cjs +19 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +19 -0
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +1 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/intlayer_with_svelte_kit.md +730 -0
  9. package/docs/ar/intlayer_with_vite+svelte.md +288 -104
  10. package/docs/de/intlayer_with_svelte_kit.md +730 -0
  11. package/docs/de/intlayer_with_vite+svelte.md +302 -101
  12. package/docs/en/intlayer_with_svelte_kit.md +560 -0
  13. package/docs/en/intlayer_with_vite+svelte.md +22 -6
  14. package/docs/en/introduction.md +2 -0
  15. package/docs/en-GB/intlayer_with_svelte_kit.md +730 -0
  16. package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
  17. package/docs/es/intlayer_with_svelte_kit.md +730 -0
  18. package/docs/es/intlayer_with_vite+svelte.md +300 -107
  19. package/docs/fr/intlayer_with_svelte_kit.md +762 -0
  20. package/docs/fr/intlayer_with_vite+svelte.md +297 -101
  21. package/docs/hi/intlayer_with_svelte_kit.md +730 -0
  22. package/docs/hi/intlayer_with_vite+svelte.md +298 -108
  23. package/docs/id/intlayer_with_svelte_kit.md +730 -0
  24. package/docs/id/intlayer_with_vite+svelte.md +277 -99
  25. package/docs/it/intlayer_with_svelte_kit.md +762 -0
  26. package/docs/it/intlayer_with_vite+svelte.md +275 -99
  27. package/docs/ja/intlayer_with_svelte_kit.md +730 -0
  28. package/docs/ja/intlayer_with_vite+svelte.md +295 -110
  29. package/docs/ko/intlayer_with_svelte_kit.md +730 -0
  30. package/docs/ko/intlayer_with_vite+svelte.md +286 -199
  31. package/docs/pl/intlayer_with_svelte_kit.md +732 -0
  32. package/docs/pl/intlayer_with_vite+svelte.md +273 -101
  33. package/docs/pt/intlayer_with_svelte_kit.md +764 -0
  34. package/docs/pt/intlayer_with_vite+svelte.md +290 -96
  35. package/docs/ru/intlayer_with_svelte_kit.md +730 -0
  36. package/docs/ru/intlayer_with_vite+svelte.md +275 -99
  37. package/docs/tr/intlayer_with_svelte_kit.md +730 -0
  38. package/docs/tr/intlayer_with_vite+svelte.md +297 -119
  39. package/docs/vi/intlayer_with_svelte_kit.md +730 -0
  40. package/docs/vi/intlayer_with_vite+svelte.md +275 -102
  41. package/docs/zh/intlayer_with_svelte_kit.md +730 -0
  42. package/docs/zh/intlayer_with_vite+svelte.md +309 -107
  43. package/package.json +6 -6
  44. package/src/generated/docs.entry.ts +19 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-06-29
4
- title: Wie Sie Ihre Vite and Svelte übersetzen – i18n-Leitfaden 2025
3
+ updatedAt: 2025-11-19
4
+ title: Wie Sie Ihre Vite- und Svelte-App übersetzen – i18n-Anleitung 2025
5
5
  description: Entdecken Sie, wie Sie Ihre Vite- und Svelte-Website mehrsprachig gestalten. Folgen Sie der Dokumentation, um sie zu internationalisieren (i18n) und zu übersetzen.
6
6
  keywords:
7
7
  - Internationalisierung
@@ -14,40 +14,55 @@ slugs:
14
14
  - doc
15
15
  - environment
16
16
  - vite-and-svelte
17
- # applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
18
18
  history:
19
+ - version: 5.5.11
20
+ date: 2025-11-19
21
+ changes: Dokumentation aktualisiert
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
24
  changes: Historie initialisiert
22
25
  ---
23
26
 
24
- # Übersetzen Sie Ihre Vite and Svelte mit Intlayer | Internationalisierung (i18n)
27
+ # Übersetzen Sie Ihre Vite- und Svelte-Website mit Intlayer | Internationalisierung (i18n)
25
28
 
26
- > Dieses Paket befindet sich in der Entwicklung. Weitere Informationen finden Sie im [Issue](https://github.com/aymericzip/intlayer/issues/114). Zeigen Sie Ihr Interesse an Intlayer für Svelte, indem Sie das Issue liken.
29
+ ## Inhaltsverzeichnis
27
30
 
28
- <!-- Siehe [Application Template](https://github.com/aymericzip/intlayer-solid-template) auf GitHub. -->
31
+ <TOC/>
29
32
 
30
33
  ## Was ist Intlayer?
31
34
 
32
- **Intlayer** ist eine innovative, Open-Source-Bibliothek für Internationalisierung (i18n), die entwickelt wurde, um die mehrsprachige Unterstützung in modernen Webanwendungen zu vereinfachen.
35
+ **Intlayer** ist eine innovative, Open-Source Internationalisierungsbibliothek (i18n), die entwickelt wurde, um die mehrsprachige Unterstützung in modernen Webanwendungen zu vereinfachen.
33
36
 
34
37
  Mit Intlayer können Sie:
35
38
 
36
- - **Übersetzungen einfach verwalten** mithilfe deklarativer Wörterbücher auf Komponentenebene.
39
+ - **Übersetzungen einfach verwalten** durch deklarative Wörterbücher auf Komponentenebene.
37
40
  - **Metadaten, Routen und Inhalte dynamisch lokalisieren**.
38
- - **TypeScript-Unterstützung sicherstellen** mit automatisch generierten Typen, die die Autovervollständigung und Fehlererkennung verbessern.
39
- - **Profitieren Sie von erweiterten Funktionen**, wie dynamischer Lokalerkennung und Umschaltung.
41
+ - **TypeScript-Unterstützung sicherstellen** durch automatisch generierte Typen, die Autovervollständigung und Fehlererkennung verbessern.
42
+ - **Von erweiterten Funktionen profitieren**, wie dynamische Spracherkennung und Umschaltung.
40
43
 
41
44
  ---
42
45
 
43
46
  ## Schritt-für-Schritt-Anleitung zur Einrichtung von Intlayer in einer Vite- und Svelte-Anwendung
44
47
 
48
+ <iframe
49
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
50
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
51
+ title="Demo CodeSandbox - Wie Sie Ihre Anwendung mit Intlayer internationalisieren"
52
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
53
+ loading="lazy"
54
+ />
55
+
56
+ Siehe [Application Template](https://github.com/aymericzip/intlayer-vite-svelte-template) auf GitHub.
57
+
45
58
  ### Schritt 1: Abhängigkeiten installieren
46
59
 
47
60
  Installieren Sie die notwendigen Pakete mit npm:
48
61
 
49
62
  ```bash packageManager="npm"
50
63
  npm install intlayer svelte-intlayer
64
+ bash packageManager="npm"
65
+ npm install intlayer svelte-intlayer
51
66
  npm install vite-intlayer --save-dev
52
67
  ```
53
68
 
@@ -61,23 +76,26 @@ yarn add intlayer svelte-intlayer
61
76
  yarn add vite-intlayer --save-dev
62
77
  ```
63
78
 
64
- - **intlayer**
79
+ ```bash packageManager="bun"
80
+ bun add intlayer svelte-intlayer
81
+ bun add vite-intlayer --save-dev
82
+ ```
65
83
 
66
84
  - **intlayer**
67
85
 
68
- Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md), Transpilierung und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_cli.md) bereitstellt.
86
+ Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md), Transpilierung und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_cli.md) bereitstellt.
69
87
 
70
- - **svelte-intlayer**
71
- Das Paket, das Intlayer in Svelte-Anwendungen integriert. Es stellt Kontextanbieter und Hooks für die Internationalisierung in Svelte bereit.
88
+ - **svelte-intlayer**
89
+ Das Paket, das Intlayer in Svelte-Anwendungen integriert. Es stellt Context-Provider und Hooks für die Internationalisierung in Svelte bereit.
72
90
 
73
- - **vite-intlayer**
74
- 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, zur Verwaltung von Cookies und zur Handhabung von URL-Weiterleitungen.
91
+ - **vite-intlayer**
92
+ Beinhaltet 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 Nutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
75
93
 
76
94
  ### Schritt 2: Konfiguration Ihres Projekts
77
95
 
78
96
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
79
97
 
80
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
98
+ ```typescript fileName="intlayer.config.ts"
81
99
  import { Locales, type IntlayerConfig } from "intlayer";
82
100
 
83
101
  const config: IntlayerConfig = {
@@ -95,52 +113,13 @@ const config: IntlayerConfig = {
95
113
  export default config;
96
114
  ```
97
115
 
98
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
99
- import { Locales } from "intlayer";
100
-
101
- /** @type {import('intlayer').IntlayerConfig} */
102
- const config = {
103
- internationalization: {
104
- locales: [
105
- Locales.ENGLISH,
106
- Locales.FRENCH,
107
- Locales.SPANISH,
108
- // Ihre weiteren Sprachen
109
- ],
110
- defaultLocale: Locales.ENGLISH,
111
- },
112
- };
113
-
114
- export default config;
115
- ```
116
-
117
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
118
- const { Locales } = require("intlayer");
119
-
120
- /** @type {import('intlayer').IntlayerConfig} */
121
- // Konfiguration der Internationalisierung
122
- const config = {
123
- internationalization: {
124
- locales: [
125
- Locales.ENGLISH,
126
- Locales.FRENCH,
127
- Locales.SPANISH,
128
- // Ihre weiteren Sprachen
129
- ],
130
- defaultLocale: Locales.ENGLISH,
131
- },
132
- };
133
-
134
- module.exports = config;
135
- ```
136
-
137
- > Durch diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Protokolle in der Konsole deaktivieren und vieles mehr. Für eine vollständige Liste der verfügbaren Parameter konsultieren Sie bitte die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
116
+ > Über diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Logs in der Konsole deaktivieren und mehr. Für eine vollständige Liste der verfügbaren Parameter verweisen wir auf die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
138
117
 
139
118
  ### Schritt 3: Integrieren Sie Intlayer in Ihre Vite-Konfiguration
140
119
 
141
120
  Fügen Sie das Intlayer-Plugin in Ihre Konfiguration ein.
142
121
 
143
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
122
+ ```typescript fileName="vite.config.ts"
144
123
  import { defineConfig } from "vite";
145
124
  import { svelte } from "@sveltejs/vite-plugin-svelte";
146
125
  import { intlayer } from "vite-intlayer";
@@ -151,29 +130,7 @@ export default defineConfig({
151
130
  });
152
131
  ```
153
132
 
154
- ```javascript fileName="vite.config.mjs" codeFormat="esm"
155
- import { defineConfig } from "vite";
156
- import { svelte } from "@sveltejs/vite-plugin-svelte";
157
- import { intlayer } from "vite-intlayer";
158
-
159
- // https://vitejs.dev/config/
160
- export default defineConfig({
161
- plugins: [svelte(), intlayer()],
162
- });
163
- ```
164
-
165
- ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
166
- const { defineConfig } = require("vite");
167
- const react = require("@vitejs/plugin-react-swc");
168
- const { intlayer } = require("vite-intlayer");
169
-
170
- // https://vitejs.dev/config/
171
- module.exports = defineConfig({
172
- plugins: [react(), intlayer()],
173
- });
174
- ```
175
-
176
- > Das `intlayer()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es stellt sicher, dass Content-Deklarationsdateien erstellt und im Entwicklungsmodus überwacht werden. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich bietet es Aliase zur Optimierung der Leistung.
133
+ > Das `intlayer()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es sorgt für den Aufbau der Inhaltsdeklarationsdateien und überwacht diese im Entwicklungsmodus. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich stellt es Aliase bereit, um die Leistung zu optimieren.
177
134
 
178
135
  ### Schritt 4: Deklarieren Sie Ihren Inhalt
179
136
 
@@ -200,6 +157,7 @@ export default appContent;
200
157
  import { t } from "intlayer";
201
158
 
202
159
  /** @type {import('intlayer').Dictionary} */
160
+ // Inhalt der App deklarieren
203
161
  const appContent = {
204
162
  key: "app",
205
163
  content: {
@@ -218,7 +176,7 @@ export default appContent;
218
176
  const { t } = require("intlayer");
219
177
 
220
178
  /** @type {import('intlayer').Dictionary} */
221
- // Definiert den Inhalt der Anwendung
179
+ // Inhalt der App deklarieren
222
180
  const appContent = {
223
181
  key: "app",
224
182
  content: {
@@ -250,50 +208,295 @@ module.exports = appContent;
250
208
  }
251
209
  ```
252
210
 
253
- > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das Verzeichnis `contentDir` aufgenommen werden (standardmäßig `./src`). Und die Dateiendung der Inhaltsdeklaration muss übereinstimmen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
211
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das Verzeichnis `contentDir` (standardmäßig `./src`) aufgenommen werden. Und die Dateiendung der Inhaltsdeklaration muss übereinstimmen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
254
212
 
255
- > Für weitere Details siehe die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md).
213
+ > Für weitere Details siehe die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md).
256
214
 
257
215
  ### Schritt 5: Intlayer in Ihrem Code verwenden
258
216
 
259
- [noch auszufüllen]
217
+ ```svelte fileName="src/App.svelte"
218
+ <script>
219
+ import { useIntlayer } from "svelte-intlayer";
220
+
221
+ const content = useIntlayer("app");
222
+ </script>
223
+
224
+ <div>
225
+
226
+
227
+ <!-- Inhalt als einfachen Inhalt rendern -->
228
+ <h1>{$content.title}</h1>
229
+ <!-- Um den Inhalt editierbar mit dem Editor zu rendern -->
230
+ <h1><svelte:component this={$content.title} /></h1>
231
+ <!-- Um den Inhalt als String zu rendern -->
232
+ <div aria-label={$content.title.value}></div>
233
+ ```
234
+
235
+ ### (Optional) Schritt 6: Ändern Sie die Sprache Ihres Inhalts
236
+
237
+ ```svelte fileName="src/App.svelte"
238
+ <script lang="ts">
239
+ import { getLocaleName } from 'intlayer';
240
+ import { useLocale } from 'svelte-intlayer';
241
+
242
+ // Lokale Informationen und setLocale-Funktion abrufen
243
+ const { locale, availableLocales, setLocale } = useLocale();
244
+
245
+ // Lokale Änderung behandeln
246
+ const changeLocale = (event: Event) => {
247
+ const target = event.target as HTMLSelectElement;
248
+ const newLocale = target.value;
249
+ setLocale(newLocale);
250
+ };
251
+ </script>
252
+
253
+ <div>
254
+ <select value={$locale} on:change={changeLocale}>
255
+ {#each availableLocales ?? [] as loc}
256
+ <option value={loc}>
257
+ {getLocaleName(loc)}
258
+ </option>
259
+ {/each}
260
+ </select>
261
+ </div>
262
+ ```
263
+
264
+ ### (Optional) Schritt 7: Markdown rendern
265
+
266
+ Intlayer unterstützt das direkte Rendern von Markdown-Inhalten in Ihrer Svelte-Anwendung. Standardmäßig wird Markdown als reiner Text behandelt. Um Markdown in reichhaltiges HTML umzuwandeln, können Sie `@humanspeak/svelte-markdown` oder einen anderen Markdown-Parser integrieren.
267
+
268
+ > Um zu sehen, wie man Markdown-Inhalte mit dem `intlayer`-Paket deklariert, siehe die [Markdown-Dokumentation](https://github.com/aymericzip/intlayer/tree/main/docs/docs/de/dictionary/markdown.md).
269
+
270
+ ```svelte fileName="src/App.svelte"
271
+ <script>
272
+ import { setIntlayerMarkdown } from "svelte-intlayer";
273
+
274
+ setIntlayerMarkdown((markdown) =>
275
+ // rendere den Markdown-Inhalt als String
276
+ return markdown;
277
+ );
278
+ </script>
279
+
280
+ <h1>{$content.markdownContent}</h1>
281
+ ```
282
+
283
+ > Sie können auch auf Ihre Markdown-Front-Matter-Daten über die Eigenschaft `content.markdownContent.metadata.xxx` zugreifen.
284
+
285
+ ### (Optional) Schritt 8: Einrichten des intlayer Editors / CMS
260
286
 
261
- ### (Optional) Schritt 6: Ändern der Sprache Ihres Inhalts
287
+ Um den intlayer Editor einzurichten, müssen Sie der [intlayer Editor Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) folgen.
262
288
 
263
- [noch auszufüllen]
289
+ Um das intlayer CMS einzurichten, müssen Sie der [intlayer CMS Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) folgen.
290
+
291
+ Parallel dazu müssen Sie in Ihrer Svelte-Anwendung die folgende Zeile in einem Layout oder im Root Ihrer Anwendung hinzufügen:
292
+
293
+ ```svelte fileName="src/layout.svelte"
294
+ import { useIntlayerEditor } from "svelte-intlayer";
295
+
296
+ useIntlayerEditor();
297
+ ```
264
298
 
265
299
  ### (Optional) Schritt 7: Lokalisierte Routing zu Ihrer Anwendung hinzufügen
266
300
 
267
- [noch auszufüllen]
301
+ Um lokalisierte Routen in Ihrer Svelte-Anwendung zu verwalten, können Sie `svelte-spa-router` zusammen mit Intlayers `localeFlatMap` verwenden, um Routen für jede Locale zu generieren.
302
+
303
+ Installieren Sie zuerst `svelte-spa-router`:
304
+
305
+ ```bash packageManager="npm"
306
+ npm install svelte-spa-router
307
+ ```
308
+
309
+ ```bash packageManager="pnpm"
310
+ pnpm add svelte-spa-router
311
+ ```
312
+
313
+ ```bash packageManager="yarn"
314
+ yarn add svelte-spa-router
315
+ ```
316
+
317
+ ```bash packageManager="bun"
318
+ bun add svelte-spa-router
319
+ ```
320
+
321
+ Erstellen Sie dann eine Datei `Router.svelte`, um Ihre Routen zu definieren:
322
+
323
+ ```svelte fileName="src/Router.svelte"
324
+ <script lang="ts">
325
+ import { localeFlatMap } from "intlayer";
326
+ import Router from "svelte-spa-router";
327
+ import { wrap } from "svelte-spa-router/wrap";
328
+ import App from "./App.svelte";
329
+
330
+ const routes = Object.fromEntries(
331
+ localeFlatMap(({locale, urlPrefix}) => [
332
+ [
333
+ urlPrefix || '/',
334
+ wrap({
335
+ component: App as any,
336
+ props: {
337
+ locale,
338
+ },
339
+ }),
340
+ ],
341
+ ])
342
+ );
343
+ </script>
344
+
345
+ <Router {routes} />
346
+ ```
347
+
348
+ Aktualisieren Sie Ihre `main.ts`, um die `Router`-Komponente anstelle von `App` zu mounten:
349
+
350
+ ```typescript fileName="src/main.ts"
351
+ import { mount } from "svelte";
352
+ import Router from "./Router.svelte";
353
+
354
+ const app = mount(Router, {
355
+ typescript fileName="src/main.ts"
356
+ import { mount } from "svelte";
357
+ import Router from "./Router.svelte";
358
+
359
+ const app = mount(Router, {
360
+ target: document.getElementById("app")!,
361
+ });
362
+
363
+ export default app;
364
+ ```
365
+
366
+ Aktualisieren Sie abschließend Ihre `App.svelte`, um die `locale`-Prop zu empfangen und sie mit `useIntlayer` zu verwenden:
367
+
368
+ ```svelte fileName="src/App.svelte"
369
+ <script lang="ts">
370
+ import type { Locale } from 'intlayer';
371
+ import { useIntlayer } from 'svelte-intlayer';
372
+ import Counter from './lib/Counter.svelte';
373
+ import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
374
+
375
+ export let locale: Locale;
376
+
377
+ $: content = useIntlayer('app', locale);
378
+ </script>
379
+
380
+ <main>
381
+ <div class="locale-switcher-container">
382
+ <LocaleSwitcher currentLocale={locale} />
383
+ </div>
384
+
385
+ <!-- ... der Rest Ihrer App ... -->
386
+ </main>
387
+ ```
388
+
389
+ #### Serverseitiges Routing konfigurieren (optional)
390
+
391
+ Parallel dazu können Sie auch den `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.
392
+
393
+ > Hinweis: Um den `intlayerProxy` in der Produktion zu verwenden, müssen Sie das Paket `vite-intlayer` von `devDependencies` zu `dependencies` verschieben.
394
+
395
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
396
+ import { defineConfig } from "vite";
397
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
398
+ import { intlayer, intlayerProxy } from "vite-intlayer";
399
+
400
+ export default defineConfig({
401
+ plugins: [svelte(), intlayer(), intlayerProxy()],
402
+ });
403
+ ```
404
+
405
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
406
+ import { defineConfig } from "vite";
407
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
408
+ import { intlayer, intlayerProxy } from "vite-intlayer";
409
+
410
+ // https://vitejs.dev/config/
411
+ export default defineConfig({
412
+ plugins: [svelte(), intlayer(), intlayerProxy()],
413
+ });
414
+ ```
415
+
416
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
417
+ const { defineConfig } = require("vite");
418
+ const { svelte } = require("@sveltejs/vite-plugin-svelte");
419
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
420
+
421
+ // https://vitejs.dev/config/
422
+ module.exports = defineConfig({
423
+ plugins: [svelte(), intlayer(), intlayerProxy()],
424
+ });
425
+ ```
426
+
427
+ ### (Optional) Schritt 8: Ändern der URL, wenn sich die Locale ändert
428
+
429
+ Um Benutzern das Wechseln der Sprache zu ermöglichen und die URL entsprechend zu aktualisieren, können Sie eine `LocaleSwitcher`-Komponente erstellen. Diese Komponente verwendet `getLocalizedUrl` von `intlayer` und `push` von `svelte-spa-router`.
430
+
431
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
432
+ <script lang="ts">
433
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
434
+ import { useLocale } from "svelte-intlayer";
435
+ import { push } from "svelte-spa-router";
436
+
437
+ export let currentLocale: string | undefined = undefined;
438
+
439
+ // Locale-Informationen abrufen
440
+ const { locale, availableLocales } = useLocale();
441
+
442
+ // Locale-Wechsel behandeln
443
+ const changeLocale = (event: Event) => {
444
+ plugins: [svelte(), intlayer(), intlayerProxy()],
445
+ });
446
+ ```
268
447
 
269
448
  ### (Optional) Schritt 8: URL ändern, wenn sich die Locale ändert
270
449
 
271
- [noch auszufüllen]
450
+ Um Benutzern das Wechseln der Sprache und die entsprechende Aktualisierung der URL zu ermöglichen, können Sie eine `LocaleSwitcher`-Komponente erstellen. Diese Komponente verwendet `getLocalizedUrl` von `intlayer` und `push` von `svelte-spa-router`.
272
451
 
273
- ### (Optional) Schritt 9: HTML-Sprach- und Richtungsattribute wechseln
452
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
453
+ <script lang="ts">
454
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
455
+ import { useLocale } from "svelte-intlayer";
456
+ import { push } from "svelte-spa-router";
274
457
 
275
- [noch auszufüllen]
458
+ export let currentLocale: string | undefined = undefined;
276
459
 
277
- ### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
460
+ // Locale-Informationen abrufen
461
+ const { locale, availableLocales } = useLocale();
278
462
 
279
- [noch auszufüllen]
463
+ // Locale-Änderung behandeln
464
+ const changeLocale = (event: Event) => {
465
+ const target = event.target as HTMLSelectElement;
466
+ const newLocale = target.value;
467
+ const currentUrl = window.location.pathname;
468
+ const url = getLocalizedUrl(currentUrl, newLocale);
469
+ push(url);
470
+ };
471
+ </script>
472
+
473
+ <div class="locale-switcher">
474
+ <select value={currentLocale ?? $locale} onchange={changeLocale}>
475
+ {#each availableLocales ?? [] as loc}
476
+ <option value={loc}>
477
+ {getLocaleName(loc)}
478
+ </option>
479
+ {/each}
480
+ </select>
481
+ </div>
482
+ ```
280
483
 
281
484
  ### Git-Konfiguration
282
485
 
283
486
  Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dadurch vermeiden Sie, diese versehentlich in Ihr Git-Repository zu committen.
284
487
 
285
- Um dies zu tun, können Sie die folgenden Anweisungen zu Ihrer `.gitignore`-Datei hinzufügen:
488
+ Fügen Sie dazu die folgenden Anweisungen in Ihre `.gitignore`-Datei ein:
286
489
 
287
490
  ```plaintext
288
- # Ignorieren Sie die von Intlayer generierten Dateien
491
+ # Ignoriere die von Intlayer generierten Dateien
289
492
  .intlayer
290
493
  ```
291
494
 
292
495
  ### VS Code Erweiterung
293
496
 
294
- Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle **Intlayer VS Code Erweiterung** installieren.
497
+ Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle **Intlayer VS Code Extension** installieren.
295
498
 
296
- [Installation aus dem VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
499
+ [Im VS Code Marketplace installieren](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
297
500
 
298
501
  Diese Erweiterung bietet:
299
502
 
@@ -302,12 +505,10 @@ Diese Erweiterung bietet:
302
505
  - **Inline-Vorschauen** des übersetzten Inhalts.
303
506
  - **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
304
507
 
305
- Für weitere Details zur Nutzung der Erweiterung siehe die [Intlayer VS Code Erweiterungsdokumentation](https://intlayer.org/doc/vs-code-extension).
508
+ Für weitere Details zur Verwendung der Erweiterung lesen Sie die [Intlayer VS Code Extension Dokumentation](https://intlayer.org/doc/vs-code-extension).
306
509
 
307
510
  ---
308
511
 
309
512
  ### Weiterführende Schritte
310
513
 
311
- Um weiterzugehen, können Sie den [visuellen Editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) implementieren oder Ihre Inhalte mithilfe des [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) auslagern.
312
-
313
- ---
514
+ Um weiterzugehen, können Sie den [visuellen Editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) implementieren oder Ihre Inhalte mit dem [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) auslagern.