@intlayer/docs 8.1.6 → 8.1.7
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/README.md +18 -9
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/compiler.md +26 -0
- package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ar/readme.md +138 -110
- package/docs/de/compiler.md +26 -0
- package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/de/readme.md +152 -124
- package/docs/en/compiler.md +27 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/compiler.md +26 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/compiler.md +26 -0
- package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/es/readme.md +149 -121
- package/docs/fr/compiler.md +26 -0
- package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/fr/readme.md +150 -122
- package/docs/hi/compiler.md +26 -0
- package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
- package/docs/hi/readme.md +153 -125
- package/docs/id/compiler.md +26 -0
- package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/id/readme.md +133 -105
- package/docs/it/compiler.md +26 -0
- package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/it/readme.md +155 -127
- package/docs/ja/compiler.md +26 -0
- package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ja/readme.md +152 -126
- package/docs/ko/compiler.md +26 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ko/readme.md +154 -126
- package/docs/pl/compiler.md +26 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/pl/readme.md +134 -106
- package/docs/pt/compiler.md +27 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/pt/readme.md +154 -126
- package/docs/ru/compiler.md +26 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ru/readme.md +137 -109
- package/docs/tr/compiler.md +26 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
- package/docs/tr/readme.md +139 -111
- package/docs/uk/compiler.md +26 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/uk/readme.md +133 -109
- package/docs/vi/compiler.md +27 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/vi/readme.md +138 -110
- package/docs/zh/compiler.md +26 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
- package/docs/zh/readme.md +148 -120
- package/package.json +7 -8
- package/src/generated/docs.entry.ts +40 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Vite i React i18n - Przekształć istniejącą aplikację w wielojęzyczną (przewodnik i18n 2026)
|
|
5
|
+
description: Odkryj, jak uczynić swoją istniejącą aplikację Vite i React wielojęzyczną przy użyciu Intlayer Compiler. Postępuj zgodnie z dokumentacją, aby ją umiędzynarodowić (i18n) i przetłumaczyć za pomocą AI.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internacjonalizacja
|
|
8
|
+
- Dokumentacja
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Vite
|
|
11
|
+
- React
|
|
12
|
+
- Kompilator
|
|
13
|
+
- AI
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- srodowisko
|
|
17
|
+
- vite-i-react
|
|
18
|
+
- kompilator
|
|
19
|
+
- AI
|
|
20
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
21
|
+
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
|
+
history:
|
|
23
|
+
- version: 8.1.6
|
|
24
|
+
date: 2026-02-23
|
|
25
|
+
changes: Pierwsze wydanie
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Jak uczynić istniejącą aplikację Vite i React wielojęzyczną (i18n) (przewodnik i18n 2026)
|
|
29
|
+
|
|
30
|
+
<Tabs defaultTab="video">
|
|
31
|
+
<Tab label="Wideo" value="video">
|
|
32
|
+
|
|
33
|
+
<iframe title="Najlepsze rozwiązanie i18n dla Vite i React? Odkryj 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
34
|
+
|
|
35
|
+
</Tab>
|
|
36
|
+
<Tab label="Kod" value="code">
|
|
37
|
+
|
|
38
|
+
<iframe
|
|
39
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
40
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
41
|
+
title="Demo CodeSandbox - Jak umiędzynarodowić aplikację za pomocą Intlayer"
|
|
42
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
43
|
+
loading="lazy"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
</Tab>
|
|
47
|
+
</Tabs>
|
|
48
|
+
|
|
49
|
+
Zobacz [Szablon aplikacji](https://github.com/aymericzip/intlayer-vite-react-template) na GitHubie.
|
|
50
|
+
|
|
51
|
+
## Spis treści
|
|
52
|
+
|
|
53
|
+
<TOC/>
|
|
54
|
+
|
|
55
|
+
## Dlaczego internacjonalizacja istniejącej aplikacji jest trudna?
|
|
56
|
+
|
|
57
|
+
Jeśli kiedykolwiek próbowałeś dodać wiele języków do aplikacji, która została zbudowana tylko dla jednego, znasz ten ból. To nie jest tylko „trudne” — to jest żmudne. Musisz przeszukać każdy plik, wyłowić każdy ciąg tekstowy i przenieść go do oddzielnych plików słownikowych.
|
|
58
|
+
|
|
59
|
+
Następnie przychodzi ryzykowna część: zastąpienie całego tego tekstu hookami w kodzie bez psuciu układu lub logiki. To rodzaj pracy, który wstrzymuje rozwój nowych funkcji na tygodnie i wydaje się niekończącym się refaktoryzacją.
|
|
60
|
+
|
|
61
|
+
## Co to jest Intlayer Compiler?
|
|
62
|
+
|
|
63
|
+
**Intlayer Compiler** został stworzony, aby pominąć tę ręczną, żmudną pracę. Zamiast ręcznego wyodrębniania ciągów znaków, kompilator robi to za Ciebie. Skanuje Twój kod, znajduje tekst i używa AI do generowania słowników w tle.
|
|
64
|
+
Następnie modyfikuje Twój kod podczas budowania, aby wstrzyknąć niezbędne hooki i18n. Zasadniczo piszesz aplikację tak, jakby była jednojęzyczna, a kompilator automatycznie zajmuje się wielojęzyczną transformacją.
|
|
65
|
+
|
|
66
|
+
> Dokumentacja kompilatora: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/compiler.md)
|
|
67
|
+
|
|
68
|
+
### Ograniczenia
|
|
69
|
+
|
|
70
|
+
Ponieważ kompilator wykonuje analizę i transformację kodu (wstawianie hooków i generowanie słowników) w **czasie kompilacji**, może to **spowolnić proces budowania** Twojej aplikacji.
|
|
71
|
+
|
|
72
|
+
Aby złagodzić ten wpływ podczas programowania, możesz skonfigurować kompilator tak, aby działał w trybie [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) lub wyłączyć go, gdy nie jest potrzebny.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Przewodnik krok po kroku po konfiguracji Intlayer w aplikacji Vite i React
|
|
77
|
+
|
|
78
|
+
### Krok 1: Instalacja zależności
|
|
79
|
+
|
|
80
|
+
Zainstaluj niezbędne pakiety za pomocą npm:
|
|
81
|
+
|
|
82
|
+
```bash packageManager="npm"
|
|
83
|
+
npm install intlayer react-intlayer
|
|
84
|
+
npm install vite-intlayer --save-dev
|
|
85
|
+
npx intlayer init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash packageManager="pnpm"
|
|
89
|
+
pnpm add intlayer react-intlayer
|
|
90
|
+
pnpm add vite-intlayer --save-dev
|
|
91
|
+
pnpm intlayer init
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```bash packageManager="yarn"
|
|
95
|
+
yarn add intlayer react-intlayer
|
|
96
|
+
yarn add vite-intlayer --save-dev
|
|
97
|
+
yarn intlayer init
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```bash packageManager="bun"
|
|
101
|
+
bun add intlayer react-intlayer
|
|
102
|
+
bun add vite-intlayer --dev
|
|
103
|
+
bunx intlayer init
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- **intlayer**
|
|
107
|
+
Podstawowy pakiet dostarczający narzędzia do internacjonalizacji do zarządzania konfiguracją, tłumaczeń, [deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilacji i [poleceń CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
108
|
+
|
|
109
|
+
- **react-intlayer**
|
|
110
|
+
Pakiet integrujący Intlayer z aplikacją React. Dostarcza dostawców kontekstu i hooki dla internacjonalizacji Reacta.
|
|
111
|
+
|
|
112
|
+
- **vite-intlayer**
|
|
113
|
+
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 preferowanego języka użytkownika, zarządzania plikami cookie i obsługi przekierowań URL.
|
|
114
|
+
|
|
115
|
+
### Krok 2: Skonfiguruj swój projekt
|
|
116
|
+
|
|
117
|
+
Utwórz plik konfiguracyjny, aby ustawić języki Twojej aplikacji:
|
|
118
|
+
|
|
119
|
+
```typescript fileName="intlayer.config.ts"
|
|
120
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
121
|
+
|
|
122
|
+
const config: IntlayerConfig = {
|
|
123
|
+
internationalization: {
|
|
124
|
+
locales: [Locales.ENGLISH, Locales.POLISH, Locales.FRENCH],
|
|
125
|
+
defaultLocale: Locales.ENGLISH,
|
|
126
|
+
},
|
|
127
|
+
compiler: {
|
|
128
|
+
enabled: true, // Można ustawić na 'build-only', aby ograniczyć wpływ na tryb dev
|
|
129
|
+
outputDir: "i18n",
|
|
130
|
+
dictionaryKeyPrefix: "", // Brak prefiksu comp-
|
|
131
|
+
},
|
|
132
|
+
ai: {
|
|
133
|
+
provider: "openai",
|
|
134
|
+
model: "gpt-5-mini",
|
|
135
|
+
apiKey: process.env.OPEN_AI_API_KEY,
|
|
136
|
+
applicationContext: "Ta aplikacja to aplikacja mapowa", // Uwaga: możesz spersonalizować ten opis aplikacji
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export default config;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
> **Uwaga**: Upewnij się, że masz ustawiony klucz `OPEN_AI_API_KEY` w zmiennych środowiskowych.
|
|
144
|
+
|
|
145
|
+
> Poprzez ten plik konfiguracyjny możesz skonfigurować zlokalizowane adresy URL, przekierowania middleware, nazwy plików cookie, lokalizację i rozszerzenia 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/en/configuration.md).
|
|
146
|
+
|
|
147
|
+
### Krok 3: Zintegruj Intlayer w konfiguracji Vite
|
|
148
|
+
|
|
149
|
+
Dodaj wtyczkę intlayer do swojej konfiguracji.
|
|
150
|
+
|
|
151
|
+
```typescript fileName="vite.config.ts"
|
|
152
|
+
import { defineConfig } from "vite";
|
|
153
|
+
import react from "@vitejs/plugin-react-swc";
|
|
154
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
155
|
+
|
|
156
|
+
// https://vitejs.dev/config/
|
|
157
|
+
export default defineConfig({
|
|
158
|
+
plugins: [react(), intlayer(), intlayerCompiler()],
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
> Wtyczka Vite `intlayer()` służy do integracji Intlayer z Vite. Zapewnia budowanie plików deklaracji treści i monitoruje je w trybie deweloperskim. Definiuje zmienne środowiskowe Intlayer w aplikacji Vite. Dodatkowo zapewnia aliasy w celu optymalizacji wydajności.
|
|
163
|
+
|
|
164
|
+
> Wtyczka Vite `intlayerCompiler()` służy do wyodrębniania treści z komponentów i zapisywania plików `.content`.
|
|
165
|
+
|
|
166
|
+
### Krok 4: Skompiluj swój kod
|
|
167
|
+
|
|
168
|
+
Po prostu pisz swoje komponenty z zakodowanymi na sztywno ciągami znaków w domyślnym języku. Kompilator zajmie się resztą.
|
|
169
|
+
|
|
170
|
+
Przykład tego, jak może wyglądać Twoja strona:
|
|
171
|
+
|
|
172
|
+
<Tabs>
|
|
173
|
+
<Tab value="Kod">
|
|
174
|
+
|
|
175
|
+
```tsx fileName="src/App.tsx"
|
|
176
|
+
import { useState, type FC } from "react";
|
|
177
|
+
import reactLogo from "./assets/react.svg";
|
|
178
|
+
import viteLogo from "/vite.svg";
|
|
179
|
+
import "./App.css";
|
|
180
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
181
|
+
|
|
182
|
+
const AppContent: FC = () => {
|
|
183
|
+
const [count, setCount] = useState(0);
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<>
|
|
187
|
+
<div>
|
|
188
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
189
|
+
<img src={viteLogo} className="logo" alt="Vite logo" />
|
|
190
|
+
</a>
|
|
191
|
+
<a href="https://react.dev" target="_blank">
|
|
192
|
+
<img src={reactLogo} className="logo react" alt="React logo" />
|
|
193
|
+
</a>
|
|
194
|
+
</div>
|
|
195
|
+
<h1>Vite + React</h1>
|
|
196
|
+
<div className="card">
|
|
197
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
198
|
+
count is {count}
|
|
199
|
+
</button>
|
|
200
|
+
<p>
|
|
201
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
<p className="read-the-docs">
|
|
205
|
+
Click on the Vite and React logos to learn more
|
|
206
|
+
</p>
|
|
207
|
+
</>
|
|
208
|
+
);
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const App: FC = () => (
|
|
212
|
+
<IntlayerProvider>
|
|
213
|
+
<AppContent />
|
|
214
|
+
</IntlayerProvider>
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
export default App;
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
</Tab>
|
|
221
|
+
<Tab value="Wynik">
|
|
222
|
+
|
|
223
|
+
```ts fileName="i18n/app-content.content.json"
|
|
224
|
+
{
|
|
225
|
+
key: "app-content",
|
|
226
|
+
content: {
|
|
227
|
+
nodeType: "translation",
|
|
228
|
+
translation: {
|
|
229
|
+
en: {
|
|
230
|
+
viteLogo: "Vite logo",
|
|
231
|
+
reactLogo: "React logo",
|
|
232
|
+
title: "Vite + React",
|
|
233
|
+
countButton: "count is",
|
|
234
|
+
editMessage: "Edit",
|
|
235
|
+
hmrMessage: "and save to test HMR",
|
|
236
|
+
readTheDocs: "Click on the Vite and React logos to learn more",
|
|
237
|
+
},
|
|
238
|
+
pl: {
|
|
239
|
+
viteLogo: "Logo Vite",
|
|
240
|
+
reactLogo: "Logo React",
|
|
241
|
+
title: "Vite + React",
|
|
242
|
+
countButton: "licznik wynosi",
|
|
243
|
+
editMessage: "Edytuj",
|
|
244
|
+
hmrMessage: "i zapisz, aby przetestować HMR",
|
|
245
|
+
readTheDocs: "Kliknij logo Vite i React, aby dowiedzieć się więcej",
|
|
246
|
+
},
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
```tsx fileName="src/App.tsx"
|
|
253
|
+
import { useState, type FC } from "react";
|
|
254
|
+
import reactLogo from "./assets/react.svg";
|
|
255
|
+
import viteLogo from "/vite.svg";
|
|
256
|
+
import "./App.css";
|
|
257
|
+
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
258
|
+
|
|
259
|
+
const AppContent: FC = () => {
|
|
260
|
+
const [count, setCount] = useState(0);
|
|
261
|
+
const content = useIntlayer("app-content");
|
|
262
|
+
|
|
263
|
+
return (
|
|
264
|
+
<>
|
|
265
|
+
<div>
|
|
266
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
267
|
+
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
268
|
+
</a>
|
|
269
|
+
<a href="https://react.dev" target="_blank">
|
|
270
|
+
<img
|
|
271
|
+
src={reactLogo}
|
|
272
|
+
className="logo react"
|
|
273
|
+
alt={content.reactLogo.value}
|
|
274
|
+
/>
|
|
275
|
+
</a>
|
|
276
|
+
</div>
|
|
277
|
+
<h1>{content.title}</h1>
|
|
278
|
+
<div className="card">
|
|
279
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
280
|
+
{content.countButton} {count}
|
|
281
|
+
</button>
|
|
282
|
+
<p>
|
|
283
|
+
{content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
|
|
284
|
+
</p>
|
|
285
|
+
</div>
|
|
286
|
+
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
287
|
+
</>
|
|
288
|
+
);
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
const App: FC = () => (
|
|
292
|
+
<IntlayerProvider>
|
|
293
|
+
<AppContent />
|
|
294
|
+
</IntlayerProvider>
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
export default App;
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
</Tab>
|
|
301
|
+
</Tabs>
|
|
302
|
+
|
|
303
|
+
- **`IntlayerProvider`** służy do dostarczania ustawień regionalnych do zagnieżdżonych komponentów.
|
|
304
|
+
|
|
305
|
+
### (Opcjonalnie) Krok 6: Zmiana języka treści
|
|
306
|
+
|
|
307
|
+
Aby zmienić język treści, możesz użyć funkcji `setLocale` dostarczonej przez hook `useLocale`. Funkcja ta pozwala ustawić język aplikacji i odpowiednio zaktualizować treść.
|
|
308
|
+
|
|
309
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx"
|
|
310
|
+
import type { FC } from "react";
|
|
311
|
+
import { Locales } from "intlayer";
|
|
312
|
+
import { useLocale } from "react-intlayer";
|
|
313
|
+
|
|
314
|
+
const LocaleSwitcher: FC = () => {
|
|
315
|
+
const { setLocale } = useLocale();
|
|
316
|
+
|
|
317
|
+
return (
|
|
318
|
+
<button onClick={() => setLocale(Locales.English)}>
|
|
319
|
+
Zmień język na angielski
|
|
320
|
+
</button>
|
|
321
|
+
);
|
|
322
|
+
};
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
> Aby dowiedzieć się więcej o hooku `useLocale`, zapoznaj się z [dokumentacją](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md).
|
|
326
|
+
|
|
327
|
+
### (Opcjonalnie) Krok 7: Uzupełnij brakujące tłumaczenia
|
|
328
|
+
|
|
329
|
+
Intlayer udostępnia narzędzie CLI, które pomaga uzupełnić brakujące tłumaczenia. Możesz użyć polecenia `intlayer`, aby przetestować i uzupełnić brakujące tłumaczenia w swoim kodzie.
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
npx intlayer test # Sprawdź, czy brakuje tłumaczeń
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
npx intlayer fill # Uzupełnij brakujące tłumaczenia
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
> Więcej szczegółów znajdziesz w [dokumentacji CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/cli/ci.md)
|
|
340
|
+
|
|
341
|
+
### Konfiguracja Git
|
|
342
|
+
|
|
343
|
+
Zaleca się ignorowanie plików generowanych przez Intlayer. Pozwala to uniknąć dodawania ich do repozytorium Git.
|
|
344
|
+
|
|
345
|
+
Aby to zrobić, możesz dodać następujące instrukcje do pliku `.gitignore`:
|
|
346
|
+
|
|
347
|
+
```plaintext fileName=".gitignore"
|
|
348
|
+
# Ignoruj pliki wygenerowane przez Intlayer
|
|
349
|
+
.intlayer
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Rozszerzenie VS Code
|
|
353
|
+
|
|
354
|
+
Aby usprawnić proces programowania z Intlayer, możesz zainstalować oficjalne **rozszerzenie Intlayer dla VS Code**.
|
|
355
|
+
|
|
356
|
+
[Zainstaluj z VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
357
|
+
|
|
358
|
+
To rozszerzenie zapewnia:
|
|
359
|
+
|
|
360
|
+
- **Autouzupełnianie** kluczy tłumaczeń.
|
|
361
|
+
- **Wykrywanie błędów w czasie rzeczywistym** w przypadku brakujących tłumaczeń.
|
|
362
|
+
- **Podgląd na żywo** przetłumaczonej treści.
|
|
363
|
+
- **Szybkie akcje** do łatwego tworzenia i aktualizowania tłumaczeń.
|
|
364
|
+
|
|
365
|
+
Więcej szczegółów na temat korzystania z rozszerzenia znajdziesz w [dokumentacji rozszerzenia Intlayer dla VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
366
|
+
|
|
367
|
+
### Idź dalej
|
|
368
|
+
|
|
369
|
+
Aby pójść dalej, możesz zaimplementować [edytor wizualny](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) lub wyeksportować treść za pomocą [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|