@intlayer/docs 7.1.9 → 7.2.2

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 (45) 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 +738 -0
  9. package/docs/ar/intlayer_with_vite+svelte.md +288 -104
  10. package/docs/de/intlayer_with_svelte_kit.md +738 -0
  11. package/docs/de/intlayer_with_vite+svelte.md +302 -101
  12. package/docs/en/intlayer_with_nextjs_16.md +10 -2
  13. package/docs/en/intlayer_with_svelte_kit.md +570 -0
  14. package/docs/en/intlayer_with_vite+svelte.md +22 -6
  15. package/docs/en/introduction.md +2 -0
  16. package/docs/en-GB/intlayer_with_svelte_kit.md +738 -0
  17. package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
  18. package/docs/es/intlayer_with_svelte_kit.md +738 -0
  19. package/docs/es/intlayer_with_vite+svelte.md +300 -107
  20. package/docs/fr/intlayer_with_svelte_kit.md +770 -0
  21. package/docs/fr/intlayer_with_vite+svelte.md +297 -101
  22. package/docs/hi/intlayer_with_svelte_kit.md +738 -0
  23. package/docs/hi/intlayer_with_vite+svelte.md +298 -108
  24. package/docs/id/intlayer_with_svelte_kit.md +738 -0
  25. package/docs/id/intlayer_with_vite+svelte.md +277 -99
  26. package/docs/it/intlayer_with_svelte_kit.md +770 -0
  27. package/docs/it/intlayer_with_vite+svelte.md +275 -99
  28. package/docs/ja/intlayer_with_svelte_kit.md +738 -0
  29. package/docs/ja/intlayer_with_vite+svelte.md +295 -110
  30. package/docs/ko/intlayer_with_svelte_kit.md +738 -0
  31. package/docs/ko/intlayer_with_vite+svelte.md +286 -199
  32. package/docs/pl/intlayer_with_svelte_kit.md +740 -0
  33. package/docs/pl/intlayer_with_vite+svelte.md +273 -101
  34. package/docs/pt/intlayer_with_svelte_kit.md +772 -0
  35. package/docs/pt/intlayer_with_vite+svelte.md +290 -96
  36. package/docs/ru/intlayer_with_svelte_kit.md +738 -0
  37. package/docs/ru/intlayer_with_vite+svelte.md +275 -99
  38. package/docs/tr/intlayer_with_svelte_kit.md +738 -0
  39. package/docs/tr/intlayer_with_vite+svelte.md +297 -119
  40. package/docs/vi/intlayer_with_svelte_kit.md +738 -0
  41. package/docs/vi/intlayer_with_vite+svelte.md +275 -102
  42. package/docs/zh/intlayer_with_svelte_kit.md +738 -0
  43. package/docs/zh/intlayer_with_vite+svelte.md +309 -107
  44. package/package.json +9 -9
  45. package/src/generated/docs.entry.ts +19 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-11-19
4
4
  title: Jak przetłumaczyć swoją aplikację Vite i Svelte – przewodnik i18n 2025
5
- description: Dowiedz się, jak uczynić swoją stronę Vite i Svelte wielojęzyczną. Postępuj zgodnie z dokumentacją, aby internacjonalizować (i18n) i tłumaczyć ją.
5
+ description: Dowiedz się, jak uczynić swoją stronę Vite i Svelte wielojęzyczną. Postępuj zgodnie z dokumentacją, aby zrealizować internacjonalizację (i18n) i tłumaczenie.
6
6
  keywords:
7
7
  - Internacjonalizacja
8
8
  - Dokumentacja
@@ -14,18 +14,17 @@ 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: Aktualizacja dokumentacji
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
24
  changes: Inicjalizacja historii
22
25
  ---
23
26
 
24
- # Tłumacz swoją stronę Vite i Svelte za pomocą Intlayer | Internacjonalizacja (i18n)
25
-
26
- > Ten pakiet jest w trakcie rozwoju. Zobacz [zgłoszenie](https://github.com/aymericzip/intlayer/issues/114) po więcej informacji. Pokaż swoje zainteresowanie Intlayer dla Svelte, dając like temu zgłoszeniu
27
-
28
- <!-- Zobacz [Szablon aplikacji](https://github.com/aymericzip/intlayer-solid-template) na GitHub. -->
27
+ # Przetłumacz swoją stronę Vite i Svelte za pomocą Intlayer | Internacjonalizacja (i18n)
29
28
 
30
29
  ## Spis treści
31
30
 
@@ -37,15 +36,25 @@ history:
37
36
 
38
37
  Dzięki Intlayer możesz:
39
38
 
40
- - **Łatwo zarządzać tłumaczeniami** za pomocą deklaratywnych słowników na poziomie komponentów.
39
+ - **Łatwo zarządzać tłumaczeniami** za pomocą deklaratywnych słowników na poziomie komponentu.
41
40
  - **Dynamicznie lokalizować metadane**, trasy i zawartość.
42
41
  - **Zapewnić wsparcie dla TypeScript** dzięki automatycznie generowanym typom, co poprawia autouzupełnianie i wykrywanie błędów.
43
- - **Skorzystaj z zaawansowanych funkcji**, takich jak dynamiczne wykrywanie i przełączanie lokalizacji.
42
+ - **Korzystać z zaawansowanych funkcji**, takich jak dynamiczne wykrywanie i przełączanie lokalizacji.
44
43
 
45
44
  ---
46
45
 
47
46
  ## Przewodnik krok po kroku, jak skonfigurować Intlayer w aplikacji Vite i Svelte
48
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 - Jak internacjonalizować swoją aplikację za pomocą Intlayer"
52
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
53
+ loading="lazy"
54
+ />
55
+
56
+ Zobacz [Szablon aplikacji](https://github.com/aymericzip/intlayer-vite-svelte-template) na GitHub.
57
+
49
58
  ### Krok 1: Zainstaluj zależności
50
59
 
51
60
  Zainstaluj niezbędne pakiety za pomocą npm:
@@ -65,23 +74,26 @@ yarn add intlayer svelte-intlayer
65
74
  yarn add vite-intlayer --save-dev
66
75
  ```
67
76
 
68
- - **intlayer**
77
+ ```bash packageManager="bun"
78
+ bun add intlayer svelte-intlayer
79
+ bun add vite-intlayer --save-dev
80
+ ```
69
81
 
70
82
  - **intlayer**
71
83
 
72
- Główny pakiet, który dostarcza narzędzia do internacjonalizacji do zarządzania konfiguracją, tłumaczeń, [deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md), transpilecji oraz [poleceń CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_cli.md).
84
+ Główne pakiet, który dostarcza narzędzia do internacjonalizacji do zarządzania konfiguracją, tłumaczeń, [deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md), transpilecji oraz [poleceń CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_cli.md).
73
85
 
74
86
  - **svelte-intlayer**
75
- Pakiet integrujący Intlayer z aplikacją Svelte. Zapewnia dostawców kontekstu oraz hooki do internacjonalizacji w Svelte.
87
+ Pakiet, który integruje Intlayer z aplikacją Svelte. Dostarcza providery kontekstu oraz hooki do internacjonalizacji w Svelte.
76
88
 
77
89
  - **vite-intlayer**
78
- Zawiera wtyczkę Vite do integracji Intlayer z [bundlerem Vite](https://vite.dev/guide/why.html#why-bundle-for-production), a także middleware do wykrywania preferowanej lokalizacji użytkownika, zarządzania ciasteczkami oraz obsługi przekierowań URL.
90
+ Zawiera plugin Vite do integracji Intlayer z [bundlerem Vite](https://vite.dev/guide/why.html#why-bundle-for-production), a także middleware do wykrywania preferowanego języka użytkownika, zarządzania ciasteczkami oraz obsługi przekierowań URL.
79
91
 
80
- ### Krok 2: Konfiguracja Twojego projektu
92
+ ### Krok 2: Konfiguracja projektu
81
93
 
82
94
  Utwórz plik konfiguracyjny, aby skonfigurować języki swojej aplikacji:
83
95
 
84
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
+ ```typescript fileName="intlayer.config.ts"
85
97
  import { Locales, type IntlayerConfig } from "intlayer";
86
98
 
87
99
  const config: IntlayerConfig = {
@@ -90,27 +102,9 @@ const config: IntlayerConfig = {
90
102
  Locales.ENGLISH,
91
103
  Locales.FRENCH,
92
104
  Locales.SPANISH,
93
- // Twoje inne locale
105
+ // Twoje pozostałe lokalizacje
94
106
  ],
95
- defaultLocale: Locales.ENGLISH,
96
- },
97
- };
98
107
 
99
- export default config;
100
- ```
101
-
102
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
103
- import { Locales } from "intlayer";
104
-
105
- /** @type {import('intlayer').IntlayerConfig} */
106
- const config = {
107
- internationalization: {
108
- locales: [
109
- Locales.ENGLISH,
110
- Locales.FRENCH,
111
- Locales.SPANISH,
112
- // Twoje inne locale
113
- ],
114
108
  defaultLocale: Locales.ENGLISH,
115
109
  },
116
110
  };
@@ -118,43 +112,13 @@ const config = {
118
112
  export default config;
119
113
  ```
120
114
 
121
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
122
- const { Locales } = require("intlayer");
123
-
124
- /** @type {import('intlayer').IntlayerConfig} */
125
- const config = {
126
- internationalization: {
127
- locales: [
128
- Locales.ENGLISH,
129
- Locales.FRENCH,
130
- Locales.SPANISH,
131
- // Twoje inne locale
132
- ],
133
- defaultLocale: Locales.ENGLISH,
134
- },
135
- };
136
-
137
- module.exports = config;
138
- ```
139
-
140
- > Za pomocą tego pliku konfiguracyjnego możesz ustawić zlokalizowane adresy URL, przekierowania w middleware, nazwy ciasteczek, lokalizację i rozszerzenie deklaracji treści, wyłączyć logi Intlayer w konsoli i wiele więcej. Aby uzyskać pełną listę dostępnych parametrów, zapoznaj się z [dokumentacją konfiguracji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/configuration.md).
141
-
142
- ### Krok 3: Zintegruj Intlayer w swojej konfiguracji Vite
115
+ > Poprzez ten plik konfiguracyjny możesz ustawić lokalizowane adresy URL, przekierowania w middleware, nazwy ciasteczek, lokalizację i rozszerzenie deklaracji treści, wyłączyć logi Intlayer w konsoli i wiele więcej. Pełną listę dostępnych parametrów znajdziesz w [dokumentacji konfiguracji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/configuration.md).
143
116
 
144
- Dodaj wtyczkę intlayer do swojej konfiguracji.
117
+ ### Krok 3: Integracja Intlayer w konfiguracji Vite
145
118
 
146
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
147
- import { defineConfig } from "vite";
148
- import { svelte } from "@sveltejs/vite-plugin-svelte";
149
- import { intlayer } from "vite-intlayer";
150
-
151
- // https://vitejs.dev/config/
152
- export default defineConfig({
153
- plugins: [svelte(), intlayer()],
154
- });
155
- ```
119
+ Dodaj plugin intlayer do swojej konfiguracji.
156
120
 
157
- ```javascript fileName="vite.config.mjs" codeFormat="esm"
121
+ ```typescript fileName="vite.config.ts"
158
122
  import { defineConfig } from "vite";
159
123
  import { svelte } from "@sveltejs/vite-plugin-svelte";
160
124
  import { intlayer } from "vite-intlayer";
@@ -165,22 +129,11 @@ export default defineConfig({
165
129
  });
166
130
  ```
167
131
 
168
- ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
169
- const { defineConfig } = require("vite");
170
- const react = require("@vitejs/plugin-react-swc");
171
- const { intlayer } = require("vite-intlayer");
172
-
173
- // https://vitejs.dev/config/
174
- module.exports = defineConfig({
175
- plugins: [react(), intlayer()],
176
- });
177
- ```
178
-
179
- > Wtyczka Vite `intlayer()` służy do integracji Intlayer z Vite. Zapewnia budowanie plików deklaracji treści oraz monitoruje je w trybie deweloperskim. Definiuje zmienne środowiskowe Intlayer w aplikacji Vite. Dodatkowo dostarcza aliasy w celu optymalizacji wydajności.
132
+ > Wtyczka `intlayer()` dla Vite służy do integracji Intlayer z Vite. Zapewnia budowanie plików deklaracji treści oraz monitoruje je w trybie deweloperskim. Definiuje zmienne środowiskowe Intlayer w aplikacji Vite. Dodatkowo dostarcza aliasy optymalizujące wydajność.
180
133
 
181
134
  ### Krok 4: Zadeklaruj swoją treść
182
135
 
183
- Twórz i zarządzaj deklaracjami treści, aby przechowywać tłumaczenia:
136
+ Utwórz i zarządzaj deklaracjami treści, aby przechowywać tłumaczenia:
184
137
 
185
138
  ```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
186
139
  import { t, type Dictionary } from "intlayer";
@@ -203,6 +156,7 @@ export default appContent;
203
156
  import { t } from "intlayer";
204
157
 
205
158
  /** @type {import('intlayer').Dictionary} */
159
+ // Definicja zawartości aplikacji z tłumaczeniami
206
160
  const appContent = {
207
161
  key: "app",
208
162
  content: {
@@ -221,7 +175,7 @@ export default appContent;
221
175
  const { t } = require("intlayer");
222
176
 
223
177
  /** @type {import('intlayer').Dictionary} */
224
- // Deklaracja zawartości aplikacji
178
+ // Definicja zawartości aplikacji z tłumaczeniami
225
179
  const appContent = {
226
180
  key: "app",
227
181
  content: {
@@ -253,39 +207,259 @@ module.exports = appContent;
253
207
  }
254
208
  ```
255
209
 
256
- > Twoje deklaracje zawartości mogą być zdefiniowane w dowolnym miejscu w aplikacji, pod warunkiem, że znajdują się w katalogu `contentDir` (domyślnie `./src`). Muszą również odpowiadać rozszerzeniu pliku deklaracji zawartości (domyślnie `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
210
+ > Twoje deklaracje zawartości mogą być zdefiniowane w dowolnym miejscu w Twojej aplikacji, pod warunkiem, że zostaną umieszczone w katalogu `contentDir` (domyślnie `./src`). I będą miały rozszerzenie pliku deklaracji zawartości (domyślnie `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
257
211
 
258
212
  > Aby uzyskać więcej szczegółów, zapoznaj się z [dokumentacją deklaracji zawartości](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md).
259
213
 
260
214
  ### Krok 5: Wykorzystaj Intlayer w swoim kodzie
261
215
 
262
- [do uzupełnienia]
216
+ ```svelte fileName="src/App.svelte"
217
+ <script>
218
+ import { useIntlayer } from "svelte-intlayer";
263
219
 
264
- ### (Opcjonalnie) Krok 6: Zmień język swojej zawartości
220
+ const content = useIntlayer("app");
221
+ </script>
265
222
 
266
- [do uzupełnienia]
223
+ <div>
267
224
 
268
- ### (Opcjonalnie) Krok 7: Dodaj lokalizowane routingi do swojej aplikacji
269
225
 
270
- [do uzupełnienia]
226
+ <!-- Renderuj zawartość jako prostą zawartość -->
227
+ <h1>{$content.title}</h1>
228
+ <!-- Aby renderować zawartość edytowalną za pomocą edytora -->
229
+ <h1><svelte:component this={$content.title} /></h1>
230
+ <!-- Aby renderować zawartość jako ciąg znaków -->
231
+ <div aria-label={$content.title.value}></div>
232
+ ```
271
233
 
272
- ### (Opcjonalnie) Krok 8: Zmień URL podczas zmiany lokalizacji
234
+ ### (Opcjonalny) Krok 6: Zmień język swojej zawartości
273
235
 
274
- [do uzupełnienia]
236
+ ```svelte fileName="src/App.svelte"
237
+ <script lang="ts">
238
+ import { getLocaleName } from 'intlayer';
239
+ import { useLocale } from 'svelte-intlayer';
275
240
 
276
- ### (Opcjonalnie) Krok 9: Zmień atrybuty języka i kierunku HTML
241
+ // Pobierz informacje o lokalizacji i funkcję setLocale
242
+ const { locale, availableLocales, setLocale } = useLocale();
277
243
 
278
- [do uzupełnienia]
244
+ // Obsłuż zmianę lokalizacji
245
+ const changeLocale = (event: Event) => {
246
+ const target = event.target as HTMLSelectElement;
247
+ const newLocale = target.value;
248
+ setLocale(newLocale);
249
+ };
250
+ </script>
251
+
252
+ <div>
253
+ <select value={$locale} on:change={changeLocale}>
254
+ {#each availableLocales ?? [] as loc}
255
+ <option value={loc}>
256
+ {getLocaleName(loc)}
257
+ </option>
258
+ {/each}
259
+ </select>
260
+ </div>
261
+ ```
262
+
263
+ ### (Opcjonalny) Krok 7: Renderowanie Markdown
264
+
265
+ Intlayer obsługuje renderowanie zawartości Markdown bezpośrednio w Twojej aplikacji Svelte. Domyślnie Markdown jest traktowany jako zwykły tekst. Aby przekształcić Markdown w bogaty HTML, możesz zintegrować `@humanspeak/svelte-markdown` lub inny parser markdown.
266
+
267
+ > Aby zobaczyć, jak deklarować zawartość markdown za pomocą pakietu `intlayer`, zobacz [dokumentację markdown](https://github.com/aymericzip/intlayer/tree/main/docs/pl/dictionary/markdown.md).
268
+
269
+ ```svelte fileName="src/App.svelte"
270
+ <script>
271
+ import { setIntlayerMarkdown } from "svelte-intlayer";
272
+
273
+ setIntlayerMarkdown((markdown) =>
274
+ // renderuj zawartość markdown jako ciąg znaków
275
+ return markdown;
276
+ );
277
+ </script>
278
+
279
+ <h1>{$content.markdownContent}</h1>
280
+ ```
281
+
282
+ > Możesz również uzyskać dostęp do danych front-matter swojego markdowna, używając właściwości `content.markdownContent.metadata.xxx`.
283
+
284
+ ### (Opcjonalny) Krok 8: Konfiguracja edytora / CMS intlayer
285
+
286
+ Aby skonfigurować edytor intlayer, musisz postępować zgodnie z [dokumentacją edytora intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_visual_editor.md).
279
287
 
280
- ### (Opcjonalnie) Krok 10: Tworzenie lokalizowanego komponentu Link
288
+ Aby skonfigurować CMS intlayer, musisz postępować zgodnie z [dokumentacją CMS intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md).
289
+
290
+ Równolegle, w swojej aplikacji Svelte, musisz dodać następującą linię w layoucie lub na poziomie root aplikacji:
291
+
292
+ ```svelte fileName="src/layout.svelte"
293
+ import { useIntlayerEditor } from "svelte-intlayer";
294
+
295
+ useIntlayerEditor();
296
+ ```
281
297
 
282
- [do uzupełnienia]
298
+ ### (Opcjonalny) Krok 7: Dodaj lokalizowane routingi do swojej aplikacji
299
+
300
+ Aby obsłużyć lokalizowane routingi w swojej aplikacji Svelte, możesz użyć `svelte-spa-router` wraz z `localeFlatMap` z Intlayer do generowania tras dla każdej lokalizacji.
301
+
302
+ Najpierw zainstaluj `svelte-spa-router`:
303
+
304
+ ```bash packageManager="npm"
305
+ npm install svelte-spa-router
306
+ ```
307
+
308
+ ```bash packageManager="pnpm"
309
+ pnpm add svelte-spa-router
310
+ ```
311
+
312
+ ```bash packageManager="yarn"
313
+ yarn add svelte-spa-router
314
+ ```
315
+
316
+ ```bash packageManager="bun"
317
+ bun add svelte-spa-router
318
+ ```
319
+
320
+ Następnie utwórz plik `Router.svelte`, aby zdefiniować swoje trasy:
321
+
322
+ ```svelte fileName="src/Router.svelte"
323
+ <script lang="ts">
324
+ import { localeFlatMap } from "intlayer";
325
+ import Router from "svelte-spa-router";
326
+ import { wrap } from "svelte-spa-router/wrap";
327
+ import App from "./App.svelte";
328
+
329
+ const routes = Object.fromEntries(
330
+ localeFlatMap(({locale, urlPrefix}) => [
331
+ [
332
+ urlPrefix || '/',
333
+ wrap({
334
+ component: App as any,
335
+ props: {
336
+ locale,
337
+ },
338
+ }),
339
+ ],
340
+ ])
341
+ );
342
+ </script>
343
+
344
+ <Router {routes} />
345
+ ```
346
+
347
+ Zaktualizuj swój plik `main.ts`, aby zamontować komponent `Router` zamiast `App`:
348
+
349
+ ```typescript fileName="src/main.ts"
350
+ import { mount } from "svelte";
351
+ import Router from "./Router.svelte";
352
+
353
+ const app = mount(Router, {
354
+ target: document.getElementById("app")!,
355
+ });
356
+
357
+ export default app;
358
+ ```
359
+
360
+ Na koniec zaktualizuj swój plik `App.svelte`, aby otrzymywał właściwość `locale` i używał jej z `useIntlayer`:
361
+
362
+ ```svelte fileName="src/App.svelte"
363
+ <script lang="ts">
364
+ import type { Locale } from 'intlayer';
365
+ import { useIntlayer } from 'svelte-intlayer';
366
+ import Counter from './lib/Counter.svelte';
367
+ import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
368
+
369
+ export let locale: Locale;
370
+
371
+ $: content = useIntlayer('app', locale);
372
+ </script>
373
+
374
+ <main>
375
+ <div class="locale-switcher-container">
376
+ <LocaleSwitcher currentLocale={locale} />
377
+ </div>
378
+
379
+ <!-- ... reszta twojej aplikacji ... -->
380
+ </main>
381
+ ```
382
+
383
+ #### Konfiguracja routingu po stronie serwera (opcjonalnie)
384
+
385
+ Równolegle możesz również użyć `intlayerProxy`, aby dodać routing po stronie serwera do swojej aplikacji. Ten plugin automatycznie wykryje aktualny język na podstawie URL i ustawi odpowiedni cookie językowy. Jeśli nie zostanie określony żaden język, plugin wybierze najbardziej odpowiedni język na podstawie preferencji językowych przeglądarki użytkownika. Jeśli nie zostanie wykryty żaden język, nastąpi przekierowanie do domyślnego języka.
386
+
387
+ > Uwaga: aby używać `intlayerProxy` w środowisku produkcyjnym, musisz przenieść pakiet `vite-intlayer` z `devDependencies` do `dependencies`.
388
+
389
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
390
+ import { defineConfig } from "vite";
391
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
392
+ import { intlayer, intlayerProxy } from "vite-intlayer";
393
+
394
+ plugins: [svelte(), intlayer(), intlayerProxy()],
395
+ });
396
+ ```
397
+
398
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
399
+ import { defineConfig } from "vite";
400
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
401
+ import { intlayer, intlayerProxy } from "vite-intlayer";
402
+
403
+ // https://vitejs.dev/config/
404
+ export default defineConfig({
405
+ plugins: [svelte(), intlayer(), intlayerProxy()],
406
+ });
407
+ ```
408
+
409
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
410
+ const { defineConfig } = require("vite");
411
+ const { svelte } = require("@sveltejs/vite-plugin-svelte");
412
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
413
+
414
+ // https://vitejs.dev/config/
415
+ module.exports = defineConfig({
416
+ plugins: [svelte(), intlayer(), intlayerProxy()],
417
+ });
418
+ plugins: [svelte(), intlayer(), intlayerProxy()],
419
+ });
420
+ ```
421
+
422
+ ### (Opcjonalny) Krok 8: Zmiana URL po zmianie lokalizacji
423
+
424
+ Aby umożliwić użytkownikom zmianę języka i odpowiednią aktualizację URL, możesz stworzyć komponent `LocaleSwitcher`. Komponent ten będzie korzystał z `getLocalizedUrl` z pakietu `intlayer` oraz `push` z `svelte-spa-router`.
425
+
426
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
427
+ <script lang="ts">
428
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
429
+ import { useLocale } from "svelte-intlayer";
430
+ import { push } from "svelte-spa-router";
431
+
432
+ export let currentLocale: string | undefined = undefined;
433
+
434
+ // Pobierz informacje o lokalizacji
435
+ const { locale, availableLocales } = useLocale();
436
+
437
+ // Obsługa zmiany lokalizacji
438
+ const changeLocale = (event: Event) => {
439
+ const target = event.target as HTMLSelectElement;
440
+ const newLocale = target.value;
441
+ const currentUrl = window.location.pathname;
442
+ const url = getLocalizedUrl( currentUrl, newLocale);
443
+ push(url);
444
+ };
445
+ </script>
446
+
447
+ <div class="locale-switcher">
448
+ <select value={currentLocale ?? $locale} onchange={changeLocale}>
449
+ {#each availableLocales ?? [] as loc}
450
+ <option value={loc}>
451
+ {getLocaleName(loc)}
452
+ </option>
453
+ {/each}
454
+ </select>
455
+ </div>
456
+ ```
283
457
 
284
458
  ### Konfiguracja Git
285
459
 
286
460
  Zaleca się ignorowanie plików generowanych przez Intlayer. Pozwala to uniknąć ich zatwierdzania do repozytorium Git.
287
461
 
288
- Aby to zrobić, możesz dodać następujące instrukcje do swojego pliku `.gitignore`:
462
+ Aby to zrobić, możesz dodać następujące instrukcje do pliku `.gitignore`:
289
463
 
290
464
  ```plaintext
291
465
  # Ignoruj pliki generowane przez Intlayer
@@ -294,9 +468,9 @@ Aby to zrobić, możesz dodać następujące instrukcje do swojego pliku `.gitig
294
468
 
295
469
  ### Rozszerzenie VS Code
296
470
 
297
- Aby poprawić swoje doświadczenie deweloperskie z Intlayer, możesz zainstalować oficjalne **rozszerzenie Intlayer dla VS Code**.
471
+ Aby poprawić swoje doświadczenie w pracy z Intlayer, możesz zainstalować oficjalne **rozszerzenie Intlayer dla VS Code**.
298
472
 
299
- [Zainstaluj z Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
473
+ [Zainstaluj z VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
300
474
 
301
475
  To rozszerzenie oferuje:
302
476
 
@@ -305,12 +479,10 @@ To rozszerzenie oferuje:
305
479
  - **Podglądy w linii** przetłumaczonej zawartości.
306
480
  - **Szybkie akcje** umożliwiające łatwe tworzenie i aktualizowanie tłumaczeń.
307
481
 
308
- Aby uzyskać więcej szczegółów na temat korzystania z rozszerzenia, zapoznaj się z [dokumentacją rozszerzenia Intlayer dla VS Code](https://intlayer.org/doc/vs-code-extension).
482
+ Aby uzyskać więcej informacji na temat korzystania z rozszerzenia, zapoznaj się z [dokumentacją rozszerzenia Intlayer dla VS Code](https://intlayer.org/doc/vs-code-extension).
309
483
 
310
484
  ---
311
485
 
312
486
  ### Idź dalej
313
487
 
314
488
  Aby pójść dalej, możesz zaimplementować [edytor wizualny](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_visual_editor.md) lub wyeksportować swoją zawartość, korzystając z [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md).
315
-
316
- ---