@intlayer/docs 7.0.5 → 7.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/intlayer_with_i18next.md +72 -19
- package/blog/ar/intlayer_with_next-i18next.md +61 -36
- package/blog/ar/intlayer_with_next-intl.md +61 -13
- package/blog/ar/intlayer_with_react-i18next.md +67 -18
- package/blog/ar/intlayer_with_react-intl.md +66 -13
- package/blog/ar/intlayer_with_vue-i18n.md +180 -0
- package/blog/de/intlayer_with_i18next.md +61 -26
- package/blog/de/intlayer_with_next-i18next.md +66 -17
- package/blog/de/intlayer_with_next-intl.md +62 -13
- package/blog/de/intlayer_with_react-i18next.md +66 -17
- package/blog/de/intlayer_with_react-intl.md +66 -14
- package/blog/de/intlayer_with_vue-i18n.md +178 -0
- package/blog/en/intlayer_with_i18next.md +53 -2
- package/blog/en/intlayer_with_next-i18next.md +52 -16
- package/blog/en/intlayer_with_next-intl.md +49 -0
- package/blog/en/intlayer_with_react-i18next.md +50 -1
- package/blog/en/intlayer_with_react-intl.md +53 -0
- package/blog/en/intlayer_with_vue-i18n.md +178 -0
- package/blog/en-GB/intlayer_with_i18next.md +58 -7
- package/blog/en-GB/intlayer_with_next-i18next.md +55 -9
- package/blog/en-GB/intlayer_with_next-intl.md +55 -6
- package/blog/en-GB/intlayer_with_react-i18next.md +55 -6
- package/blog/en-GB/intlayer_with_react-intl.md +56 -3
- package/blog/en-GB/intlayer_with_vue-i18n.md +180 -0
- package/blog/es/intlayer_with_i18next.md +69 -18
- package/blog/es/intlayer_with_next-i18next.md +70 -24
- package/blog/es/intlayer_with_next-intl.md +64 -13
- package/blog/es/intlayer_with_react-i18next.md +61 -12
- package/blog/es/intlayer_with_react-intl.md +65 -12
- package/blog/es/intlayer_with_vue-i18n.md +178 -0
- package/blog/fr/intlayer_with_i18next.md +77 -16
- package/blog/fr/intlayer_with_next-i18next.md +55 -31
- package/blog/fr/intlayer_with_next-intl.md +57 -7
- package/blog/fr/intlayer_with_react-i18next.md +64 -7
- package/blog/fr/intlayer_with_react-intl.md +63 -10
- package/blog/fr/intlayer_with_vue-i18n.md +178 -0
- package/blog/hi/intlayer_with_i18next.md +67 -16
- package/blog/hi/intlayer_with_next-i18next.md +69 -23
- package/blog/hi/intlayer_with_next-intl.md +61 -8
- package/blog/hi/intlayer_with_react-i18next.md +63 -14
- package/blog/hi/intlayer_with_react-intl.md +66 -13
- package/blog/hi/intlayer_with_vue-i18n.md +180 -0
- package/blog/id/intlayer_with_i18next.md +65 -14
- package/blog/id/intlayer_with_next-i18next.md +58 -12
- package/blog/id/intlayer_with_next-intl.md +60 -11
- package/blog/id/intlayer_with_react-i18next.md +59 -10
- package/blog/id/intlayer_with_react-intl.md +66 -13
- package/blog/id/intlayer_with_vue-i18n.md +178 -0
- package/blog/it/intlayer_with_i18next.md +70 -19
- package/blog/it/intlayer_with_next-i18next.md +68 -22
- package/blog/it/intlayer_with_next-intl.md +62 -12
- package/blog/it/intlayer_with_react-i18next.md +65 -16
- package/blog/it/intlayer_with_react-intl.md +67 -14
- package/blog/it/intlayer_with_vue-i18n.md +178 -0
- package/blog/ja/intlayer_with_i18next.md +74 -24
- package/blog/ja/intlayer_with_next-i18next.md +60 -37
- package/blog/ja/intlayer_with_next-intl.md +63 -15
- package/blog/ja/intlayer_with_react-i18next.md +70 -21
- package/blog/ja/intlayer_with_react-intl.md +73 -21
- package/blog/ja/intlayer_with_vue-i18n.md +180 -0
- package/blog/ko/intlayer_with_i18next.md +60 -29
- package/blog/ko/intlayer_with_next-i18next.md +59 -32
- package/blog/ko/intlayer_with_next-intl.md +52 -23
- package/blog/ko/intlayer_with_react-i18next.md +65 -16
- package/blog/ko/intlayer_with_react-intl.md +74 -22
- package/blog/ko/intlayer_with_vue-i18n.md +180 -0
- package/blog/pl/intlayer_with_i18next.md +63 -12
- package/blog/pl/intlayer_with_next-i18next.md +74 -17
- package/blog/pl/intlayer_with_next-intl.md +59 -8
- package/blog/pl/intlayer_with_react-i18next.md +59 -10
- package/blog/pl/intlayer_with_react-intl.md +65 -12
- package/blog/pl/intlayer_with_vue-i18n.md +180 -0
- package/blog/pt/intlayer_with_i18next.md +67 -16
- package/blog/pt/intlayer_with_next-i18next.md +65 -19
- package/blog/pt/intlayer_with_next-intl.md +62 -12
- package/blog/pt/intlayer_with_react-i18next.md +67 -18
- package/blog/pt/intlayer_with_react-intl.md +62 -10
- package/blog/pt/intlayer_with_vue-i18n.md +178 -0
- package/blog/ru/intlayer_with_i18next.md +68 -15
- package/blog/ru/intlayer_with_next-i18next.md +71 -25
- package/blog/ru/intlayer_with_next-intl.md +56 -7
- package/blog/ru/intlayer_with_react-i18next.md +65 -16
- package/blog/ru/intlayer_with_react-intl.md +69 -16
- package/blog/ru/intlayer_with_vue-i18n.md +180 -0
- package/blog/tr/intlayer_with_i18next.md +67 -16
- package/blog/tr/intlayer_with_next-i18next.md +78 -21
- package/blog/tr/intlayer_with_next-intl.md +69 -18
- package/blog/tr/intlayer_with_react-i18next.md +65 -16
- package/blog/tr/intlayer_with_react-intl.md +71 -19
- package/blog/tr/intlayer_with_vue-i18n.md +180 -0
- package/blog/vi/intlayer_with_i18next.md +64 -13
- package/blog/vi/intlayer_with_next-i18next.md +72 -26
- package/blog/vi/intlayer_with_next-intl.md +62 -11
- package/blog/vi/intlayer_with_react-i18next.md +66 -17
- package/blog/vi/intlayer_with_react-intl.md +70 -17
- package/blog/vi/intlayer_with_vue-i18n.md +180 -0
- package/blog/zh/intlayer_with_i18next.md +67 -17
- package/blog/zh/intlayer_with_next-i18next.md +67 -22
- package/blog/zh/intlayer_with_next-intl.md +61 -13
- package/blog/zh/intlayer_with_react-i18next.md +67 -18
- package/blog/zh/intlayer_with_react-intl.md +69 -17
- package/blog/zh/intlayer_with_vue-i18n.md +180 -0
- package/dist/cjs/generated/blog.entry.cjs +19 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +19 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +36 -9
- package/docs/ar/intlayer_with_nextjs_16.md +36 -9
- package/docs/de/intlayer_with_nextjs_15.md +36 -9
- package/docs/de/intlayer_with_nextjs_16.md +24 -6
- package/docs/en/intlayer_with_nextjs_14.md +37 -9
- package/docs/en/intlayer_with_nextjs_15.md +40 -10
- package/docs/en/intlayer_with_nextjs_16.md +40 -10
- package/docs/en/plugins/sync-json.md +152 -55
- package/docs/en/releases/v7.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_15.md +36 -9
- package/docs/en-GB/intlayer_with_nextjs_16.md +36 -9
- package/docs/en-GB/releases/v7.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +36 -9
- package/docs/es/intlayer_with_nextjs_16.md +36 -9
- package/docs/fr/intlayer_with_nextjs_15.md +36 -9
- package/docs/fr/intlayer_with_nextjs_16.md +37 -24
- package/docs/hi/intlayer_with_nextjs_15.md +36 -9
- package/docs/hi/intlayer_with_nextjs_16.md +36 -9
- package/docs/id/intlayer_with_nextjs_16.md +36 -9
- package/docs/it/intlayer_with_nextjs_15.md +36 -9
- package/docs/it/intlayer_with_nextjs_16.md +36 -9
- package/docs/ja/intlayer_with_nextjs_15.md +36 -9
- package/docs/ja/intlayer_with_nextjs_16.md +36 -9
- package/docs/ko/intlayer_with_nextjs_15.md +36 -9
- package/docs/ko/intlayer_with_nextjs_16.md +36 -9
- package/docs/pl/intlayer_with_nextjs_16.md +36 -9
- package/docs/pt/intlayer_with_nextjs_15.md +36 -9
- package/docs/pt/intlayer_with_nextjs_16.md +36 -9
- package/docs/ru/intlayer_with_nextjs_15.md +36 -9
- package/docs/ru/intlayer_with_nextjs_16.md +36 -9
- package/docs/tr/intlayer_with_nextjs_15.md +36 -9
- package/docs/tr/intlayer_with_nextjs_16.md +39 -21
- package/docs/vi/intlayer_with_nextjs_16.md +36 -9
- package/docs/zh/intlayer_with_nextjs_15.md +36 -9
- package/docs/zh/intlayer_with_nextjs_16.md +36 -9
- package/package.json +14 -14
- package/src/generated/blog.entry.ts +19 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-08-23
|
|
3
3
|
updatedAt: 2025-10-29
|
|
4
4
|
title: Intlayer i next-i18next
|
|
5
|
-
description: Integracja Intlayer z next-i18next dla kompleksowego rozwiązania internacjonalizacji
|
|
5
|
+
description: Integracja Intlayer z next-i18next dla kompleksowego rozwiązania internacjonalizacji Next.js
|
|
6
6
|
keywords:
|
|
7
7
|
- i18next
|
|
8
8
|
- next-i18next
|
|
@@ -16,9 +16,12 @@ slugs:
|
|
|
16
16
|
- blog
|
|
17
17
|
- intlayer-with-next-i18next
|
|
18
18
|
history:
|
|
19
|
+
- version: 7.0.6
|
|
20
|
+
date: 2025-11-01
|
|
21
|
+
changes: Dodanie wtyczki loadJSON
|
|
19
22
|
- version: 7.0.0
|
|
20
23
|
date: 2025-10-29
|
|
21
|
-
changes: Zmiana na wtyczkę syncJSON i kompleksowy
|
|
24
|
+
changes: Zmiana na wtyczkę syncJSON i kompleksowy przepisanie
|
|
22
25
|
---
|
|
23
26
|
|
|
24
27
|
# Internacjonalizacja (i18n) w Next.js z next-i18next i Intlayer
|
|
@@ -29,13 +32,13 @@ history:
|
|
|
29
32
|
|
|
30
33
|
## Czym jest next-i18next?
|
|
31
34
|
|
|
32
|
-
**next-i18next** jest jednym z najpopularniejszych frameworków do internacjonalizacji (i18n) dla aplikacji Next.js. Zbudowany na bazie potężnego ekosystemu **i18next**,
|
|
35
|
+
**next-i18next** jest jednym z najpopularniejszych frameworków do internacjonalizacji (i18n) dla aplikacji Next.js. Zbudowany na bazie potężnego ekosystemu **i18next**, oferuje kompleksowe rozwiązanie do zarządzania tłumaczeniami, lokalizacją oraz przełączaniem języków w projektach Next.js.
|
|
33
36
|
|
|
34
37
|
Jednak next-i18next wiąże się z pewnymi wyzwaniami:
|
|
35
38
|
|
|
36
39
|
- **Złożona konfiguracja**: Konfiguracja next-i18next wymaga wielu plików konfiguracyjnych oraz starannego ustawienia instancji i18n po stronie serwera i klienta.
|
|
37
|
-
- **Rozproszone tłumaczenia**: Pliki tłumaczeń zazwyczaj przechowywane
|
|
38
|
-
- **Ręczne zarządzanie przestrzeniami nazw**: Programiści muszą ręcznie zarządzać przestrzeniami nazw i
|
|
40
|
+
- **Rozproszone tłumaczenia**: Pliki tłumaczeń są zazwyczaj przechowywane w oddzielnych katalogach od komponentów, co utrudnia utrzymanie spójności.
|
|
41
|
+
- **Ręczne zarządzanie przestrzeniami nazw**: Programiści muszą ręcznie zarządzać przestrzeniami nazw i zapewniać poprawne ładowanie zasobów tłumaczeniowych.
|
|
39
42
|
- **Ograniczone bezpieczeństwo typów**: Wsparcie dla TypeScript wymaga dodatkowej konfiguracji i nie zapewnia automatycznego generowania typów dla tłumaczeń.
|
|
40
43
|
|
|
41
44
|
## Czym jest Intlayer?
|
|
@@ -46,7 +49,7 @@ Zobacz konkretne porównanie z next-intl w naszym wpisie na blogu [next-i18next
|
|
|
46
49
|
|
|
47
50
|
## Dlaczego łączyć Intlayer z next-i18next?
|
|
48
51
|
|
|
49
|
-
Chociaż Intlayer
|
|
52
|
+
Chociaż Intlayer oferuje doskonałe, samodzielne rozwiązanie i18n (zobacz nasz [przewodnik integracji z Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nextjs_16.md)), możesz chcieć połączyć je z next-i18next z kilku powodów:
|
|
50
53
|
|
|
51
54
|
1. **Istniejąca baza kodu**: Masz już wdrożoną implementację next-i18next i chcesz stopniowo przechodzić na ulepszone doświadczenie deweloperskie Intlayer.
|
|
52
55
|
2. **Wymagania dotyczące kompatybilności wstecznej**: Twój projekt wymaga zgodności z istniejącymi wtyczkami lub procesami i18next.
|
|
@@ -58,7 +61,7 @@ Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści
|
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
61
|
-
## Przewodnik krok po kroku
|
|
64
|
+
## Przewodnik krok po kroku: konfiguracja Intlayer z next-i18next
|
|
62
65
|
|
|
63
66
|
### Krok 1: Instalacja zależności
|
|
64
67
|
|
|
@@ -76,13 +79,13 @@ pnpm add intlayer @intlayer/sync-json-plugin
|
|
|
76
79
|
yarn add intlayer @intlayer/sync-json-plugin
|
|
77
80
|
```
|
|
78
81
|
|
|
82
|
+
```bash packageManager="bun"
|
|
83
|
+
bun add intlayer @intlayer/sync-json-plugin
|
|
84
|
+
```
|
|
85
|
+
|
|
79
86
|
**Wyjaśnienie pakietów:**
|
|
80
87
|
|
|
81
88
|
- **intlayer**: Podstawowa biblioteka do deklaracji i zarządzania treścią
|
|
82
|
-
- **next-intlayer**: Warstwa integracyjna Next.js z wtyczkami build
|
|
83
|
-
- **i18next**: Podstawowy framework i18n
|
|
84
|
-
- **next-i18next**: Nakładka Next.js dla i18next
|
|
85
|
-
- **i18next-resources-to-backend**: Dynamiczne ładowanie zasobów dla i18next
|
|
86
89
|
- **@intlayer/sync-json-plugin**: Wtyczka do synchronizacji deklaracji treści Intlayer z formatem JSON i18next
|
|
87
90
|
|
|
88
91
|
### Krok 2: Implementacja wtyczki Intlayer do opakowania JSON
|
|
@@ -102,7 +105,18 @@ const config: IntlayerConfig = {
|
|
|
102
105
|
},
|
|
103
106
|
plugins: [
|
|
104
107
|
syncJSON({
|
|
105
|
-
|
|
108
|
+
typescript fileName="intlayer.config.ts"
|
|
109
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
110
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
111
|
+
|
|
112
|
+
const config: IntlayerConfig = {
|
|
113
|
+
internationalization: {
|
|
114
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
115
|
+
defaultLocale: Locales.ENGLISH,
|
|
116
|
+
},
|
|
117
|
+
plugins: [
|
|
118
|
+
syncJSON({
|
|
119
|
+
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
106
120
|
}),
|
|
107
121
|
],
|
|
108
122
|
};
|
|
@@ -112,17 +126,60 @@ export default config;
|
|
|
112
126
|
|
|
113
127
|
Wtyczka `syncJSON` automatycznie opakuje JSON. Będzie odczytywać i zapisywać pliki JSON bez zmiany architektury zawartości.
|
|
114
128
|
|
|
115
|
-
Jeśli chcesz, aby JSON współistniał z plikami deklaracji
|
|
129
|
+
Jeśli chcesz, aby JSON współistniał z plikami deklaracji treści intlayer (`.content`), Intlayer postąpi w następujący sposób:
|
|
116
130
|
|
|
117
|
-
1. załaduje zarówno pliki JSON, jak i pliki deklaracji
|
|
118
|
-
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji
|
|
131
|
+
1. załaduje zarówno pliki JSON, jak i pliki deklaracji treści, a następnie przekształci je w słownik intlayer.
|
|
132
|
+
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji treści, Intlayer połączy wszystkie słowniki. W zależności od priorytetu wtyczek oraz pliku deklaracji treści (wszystko jest konfigurowalne).
|
|
119
133
|
|
|
120
|
-
Jeśli zmiany zostaną wprowadzone za pomocą CLI do tłumaczenia JSON lub
|
|
134
|
+
Jeśli zmiany zostaną wprowadzone za pomocą CLI do tłumaczenia JSON lub przy użyciu CMS, Intlayer zaktualizuje plik JSON o nowe tłumaczenia.
|
|
121
135
|
|
|
122
136
|
Aby zobaczyć więcej szczegółów na temat wtyczki `syncJSON`, prosimy zapoznać się z [dokumentacją wtyczki syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/plugins/sync-json.md).
|
|
123
137
|
|
|
124
138
|
---
|
|
125
139
|
|
|
140
|
+
### (Opcjonalny) Krok 3: Implementacja tłumaczeń JSON na poziomie komponentu
|
|
141
|
+
|
|
142
|
+
Domyślnie Intlayer załaduje, połączy i zsynchronizuje zarówno pliki JSON, jak i pliki deklaracji zawartości. Zobacz [dokumentację deklaracji zawartości](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md) po więcej szczegółów. Jednak jeśli wolisz, używając wtyczki Intlayer, możesz również zaimplementować zarządzanie tłumaczeniami JSON na poziomie poszczególnych komponentów, zlokalizowanych w dowolnym miejscu w Twojej bazie kodu.
|
|
143
|
+
|
|
144
|
+
Do tego możesz użyć wtyczki `loadJSON`.
|
|
145
|
+
|
|
146
|
+
```ts fileName="intlayer.config.ts"
|
|
147
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
148
|
+
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
149
|
+
|
|
150
|
+
const config: IntlayerConfig = {
|
|
151
|
+
internationalization: {
|
|
152
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
153
|
+
defaultLocale: Locales.ENGLISH,
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
// Synchronizuj swoje obecne pliki JSON ze słownikami Intlayer
|
|
157
|
+
plugins: [
|
|
158
|
+
/**
|
|
159
|
+
* Załaduje wszystkie pliki JSON w katalogu src, które pasują do wzorca {key}.i18n.json
|
|
160
|
+
*/
|
|
161
|
+
loadJSON({
|
|
162
|
+
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
163
|
+
locale: Locales.ENGLISH,
|
|
164
|
+
priority: 1, // Zapewnia, że te pliki JSON mają pierwszeństwo przed plikami w `./public/locales/en/${key}.json`
|
|
165
|
+
}),
|
|
166
|
+
/**
|
|
167
|
+
* Załaduje i zapisze wynik oraz tłumaczenia z powrotem do plików JSON w katalogu locales
|
|
168
|
+
*/
|
|
169
|
+
syncJSON({
|
|
170
|
+
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
171
|
+
priority: 0,
|
|
172
|
+
}),
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export default config;
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
To spowoduje załadowanie wszystkich plików JSON w katalogu `src`, które pasują do wzorca `{key}.i18n.json` i załaduje je jako słowniki Intlayer.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
126
183
|
## Konfiguracja Git
|
|
127
184
|
|
|
128
185
|
Wyklucz generowane pliki z kontroli wersji:
|
|
@@ -137,6 +194,6 @@ Te pliki są automatycznie generowane podczas procesu budowania i nie muszą by
|
|
|
137
194
|
|
|
138
195
|
### Rozszerzenie VS Code
|
|
139
196
|
|
|
140
|
-
Dla lepszego doświadczenia deweloperskiego zainstaluj oficjalne **
|
|
197
|
+
Dla lepszego doświadczenia deweloperskiego zainstaluj oficjalne rozszerzenie **Intlayer VS Code Extension**:
|
|
141
198
|
|
|
142
199
|
[Zainstaluj z VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
@@ -7,6 +7,9 @@ slugs:
|
|
|
7
7
|
- blog
|
|
8
8
|
- intlayer-with-next-intl
|
|
9
9
|
history:
|
|
10
|
+
- version: 7.0.6
|
|
11
|
+
date: 2025-11-01
|
|
12
|
+
changes: Dodano wtyczkę loadJSON
|
|
10
13
|
- version: 7.0.0
|
|
11
14
|
date: 2025-10-29
|
|
12
15
|
changes: Zmiana na wtyczkę syncJSON
|
|
@@ -24,13 +27,14 @@ Zobacz konkretne porównanie z next-intl w naszym wpisie na blogu [next-i18next
|
|
|
24
27
|
|
|
25
28
|
Chociaż Intlayer oferuje doskonałe, samodzielne rozwiązanie i18n (zobacz nasz [przewodnik integracji z Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nextjs_16.md)), możesz chcieć połączyć je z next-intl z kilku powodów:
|
|
26
29
|
|
|
27
|
-
1. **Istniejąca baza kodu**: Masz już
|
|
30
|
+
1. **Istniejąca baza kodu**: Masz już wdrożenie next-intl i chcesz stopniowo przejść do lepszego doświadczenia deweloperskiego oferowanego przez Intlayer.
|
|
28
31
|
2. **Wymagania dotyczące kompatybilności wstecznej**: Twój projekt wymaga zgodności z istniejącymi wtyczkami lub procesami next-intl.
|
|
29
32
|
3. **Znajomość zespołu**: Twój zespół dobrze zna next-intl, ale chce lepszego zarządzania treścią.
|
|
33
|
+
4. **Korzystanie z funkcji Intlayer**: Chcesz korzystać z funkcji Intlayer, takich jak deklaracja treści, automatyzacja tłumaczeń, testowanie tłumaczeń i inne.
|
|
30
34
|
|
|
31
|
-
**W tym celu Intlayer może być zaimplementowany jako adapter dla next-intl, aby pomóc w automatyzacji tłumaczeń JSON w CLI lub pipeline
|
|
35
|
+
**W tym celu Intlayer może być zaimplementowany jako adapter dla next-intl, aby pomóc w automatyzacji tłumaczeń JSON w CLI lub pipeline’ach CI/CD, testowaniu tłumaczeń i innych zadaniach.**
|
|
32
36
|
|
|
33
|
-
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, zachowując
|
|
37
|
+
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, jednocześnie zachowując kompatybilność z next-intl.
|
|
34
38
|
|
|
35
39
|
## Spis treści
|
|
36
40
|
|
|
@@ -54,6 +58,10 @@ pnpm add intlayer @intlayer/sync-json-plugin
|
|
|
54
58
|
yarn add intlayer @intlayer/sync-json-plugin
|
|
55
59
|
```
|
|
56
60
|
|
|
61
|
+
```bash packageManager="bun"
|
|
62
|
+
bun add intlayer @intlayer/sync-json-plugin
|
|
63
|
+
```
|
|
64
|
+
|
|
57
65
|
**Opis pakietów:**
|
|
58
66
|
|
|
59
67
|
- **intlayer**: Podstawowa biblioteka do zarządzania internacjonalizacją, deklaracji treści i budowania
|
|
@@ -86,13 +94,56 @@ export default config;
|
|
|
86
94
|
|
|
87
95
|
Wtyczka `syncJSON` automatycznie opakuje JSON. Będzie odczytywać i zapisywać pliki JSON bez zmiany architektury zawartości.
|
|
88
96
|
|
|
89
|
-
Jeśli chcesz, aby JSON współistniał z plikami deklaracji
|
|
97
|
+
Jeśli chcesz, aby JSON współistniał z plikami deklaracji treści intlayer (`.content`), Intlayer postąpi w następujący sposób:
|
|
90
98
|
|
|
91
|
-
1. załaduje zarówno pliki JSON, jak i pliki deklaracji
|
|
92
|
-
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji
|
|
99
|
+
1. załaduje zarówno pliki JSON, jak i pliki deklaracji treści, a następnie przekształci je w słownik intlayer.
|
|
100
|
+
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji treści, Intlayer przeprowadzi scalanie wszystkich słowników. W zależności od priorytetu wtyczek oraz pliku deklaracji treści (wszystko jest konfigurowalne).
|
|
93
101
|
|
|
94
102
|
Jeśli zmiany zostaną wprowadzone za pomocą CLI do tłumaczenia JSON lub przy użyciu CMS, Intlayer zaktualizuje plik JSON o nowe tłumaczenia.
|
|
95
103
|
|
|
104
|
+
Aby zobaczyć więcej szczegółów na temat wtyczki `syncJSON`, proszę zapoznać się z [dokumentacją wtyczki syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/plugins/sync-json.md).
|
|
105
|
+
|
|
106
|
+
### (Opcjonalny) Krok 3: Implementacja tłumaczeń JSON per-komponent
|
|
107
|
+
|
|
108
|
+
Domyślnie Intlayer załaduje, scali i zsynchronizuje zarówno pliki JSON, jak i pliki deklaracji treści. Szczegóły można znaleźć w [dokumentacji dotyczącej deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md). Jednak jeśli wolisz, korzystając z wtyczki Intlayer, możesz również zaimplementować zarządzanie JSON na poziomie poszczególnych komponentów, zlokalizowanych w dowolnym miejscu w Twojej bazie kodu.
|
|
109
|
+
|
|
110
|
+
Do tego celu możesz użyć wtyczki `loadJSON`.
|
|
111
|
+
|
|
112
|
+
```ts fileName="intlayer.config.ts"
|
|
113
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
114
|
+
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
115
|
+
|
|
116
|
+
const config: IntlayerConfig = {
|
|
117
|
+
internationalization: {
|
|
118
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
119
|
+
defaultLocale: Locales.ENGLISH,
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
// Synchronizuj swoje obecne pliki JSON ze słownikami Intlayer
|
|
123
|
+
plugins: [
|
|
124
|
+
/**
|
|
125
|
+
* Załaduje wszystkie pliki JSON w katalogu src, które pasują do wzorca {key}.i18n.json
|
|
126
|
+
*/
|
|
127
|
+
loadJSON({
|
|
128
|
+
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
129
|
+
locale: Locales.ENGLISH,
|
|
130
|
+
priority: 1, // Zapewnia, że te pliki JSON mają pierwszeństwo przed plikami w `./locales/en/${key}.json`
|
|
131
|
+
}),
|
|
132
|
+
/**
|
|
133
|
+
* Załaduje oraz zapisze wynik i tłumaczenia z powrotem do plików JSON w katalogu locales
|
|
134
|
+
*/
|
|
135
|
+
syncJSON({
|
|
136
|
+
source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
|
|
137
|
+
priority: 0,
|
|
138
|
+
}),
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export default config;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
To załaduje wszystkie pliki JSON w katalogu `src`, które pasują do wzorca `{key}.i18n.json` i załaduje je jako słowniki Intlayer.
|
|
146
|
+
|
|
96
147
|
## Konfiguracja Git
|
|
97
148
|
|
|
98
149
|
Zaleca się ignorowanie automatycznie generowanych plików Intlayer:
|
|
@@ -102,10 +153,10 @@ Zaleca się ignorowanie automatycznie generowanych plików Intlayer:
|
|
|
102
153
|
.intlayer
|
|
103
154
|
```
|
|
104
155
|
|
|
105
|
-
Te pliki mogą być ponownie wygenerowane podczas procesu budowania i nie muszą być zatwierdzane do kontroli wersji.
|
|
156
|
+
Te pliki mogą być ponownie wygenerowane podczas procesu budowania i nie muszą być zatwierdzane do systemu kontroli wersji.
|
|
106
157
|
|
|
107
158
|
### Rozszerzenie VS Code
|
|
108
159
|
|
|
109
|
-
Dla lepszego doświadczenia
|
|
160
|
+
Dla lepszego doświadczenia programistycznego zainstaluj oficjalne **rozszerzenie Intlayer dla VS Code**:
|
|
110
161
|
|
|
111
162
|
[Zainstaluj z Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
@@ -18,6 +18,9 @@ slugs:
|
|
|
18
18
|
- blog
|
|
19
19
|
- intlayer-with-react-i18next
|
|
20
20
|
history:
|
|
21
|
+
- version: 7.0.6
|
|
22
|
+
date: 2025-11-01
|
|
23
|
+
changes: Dodano wtyczkę loadJSON
|
|
21
24
|
- version: 7.0.0
|
|
22
25
|
date: 2025-10-29
|
|
23
26
|
changes: Zmiana na wtyczkę syncJSON
|
|
@@ -38,16 +41,17 @@ Chociaż Intlayer zapewnia doskonałe, samodzielne rozwiązanie i18n (zobacz nas
|
|
|
38
41
|
1. **Istniejąca baza kodu**: Masz już wdrożoną implementację react-i18next i chcesz stopniowo przejść na ulepszone doświadczenie deweloperskie oferowane przez Intlayer.
|
|
39
42
|
2. **Wymagania dotyczące kompatybilności wstecznej**: Twój projekt wymaga zgodności z istniejącymi wtyczkami lub procesami react-i18next.
|
|
40
43
|
3. **Znajomość zespołu**: Twój zespół dobrze zna react-i18next, ale chce lepszego zarządzania treścią.
|
|
44
|
+
4. **Korzystanie z funkcji Intlayer**: Chcesz korzystać z funkcji Intlayer, takich jak deklaracja treści, automatyzacja tłumaczeń, testowanie tłumaczeń i inne.
|
|
41
45
|
|
|
42
46
|
**W tym celu Intlayer może być zaimplementowany jako adapter dla react-i18next, aby pomóc w automatyzacji tłumaczeń JSON w CLI lub pipeline’ach CI/CD, testowaniu tłumaczeń i innych zadaniach.**
|
|
43
47
|
|
|
44
|
-
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, zachowując
|
|
48
|
+
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, jednocześnie zachowując kompatybilność z react-i18next.
|
|
45
49
|
|
|
46
50
|
## Spis treści
|
|
47
51
|
|
|
48
52
|
<TOC/>
|
|
49
53
|
|
|
50
|
-
## Przewodnik krok po kroku:
|
|
54
|
+
## Przewodnik krok po kroku: Konfiguracja Intlayer z react-i18next
|
|
51
55
|
|
|
52
56
|
### Krok 1: Instalacja zależności
|
|
53
57
|
|
|
@@ -65,6 +69,10 @@ pnpm add intlayer @intlayer/sync-json-plugin
|
|
|
65
69
|
yarn add intlayer @intlayer/sync-json-plugin
|
|
66
70
|
```
|
|
67
71
|
|
|
72
|
+
```bash packageManager="bun"
|
|
73
|
+
bun add intlayer @intlayer/sync-json-plugin
|
|
74
|
+
```
|
|
75
|
+
|
|
68
76
|
**Opis pakietów:**
|
|
69
77
|
|
|
70
78
|
- **intlayer**: Główna biblioteka do zarządzania internacjonalizacją, deklaracji treści i budowania
|
|
@@ -87,7 +95,7 @@ const config: IntlayerConfig = {
|
|
|
87
95
|
},
|
|
88
96
|
plugins: [
|
|
89
97
|
syncJSON({
|
|
90
|
-
source: ({ key, locale }) => `./
|
|
98
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
91
99
|
}),
|
|
92
100
|
],
|
|
93
101
|
};
|
|
@@ -97,14 +105,55 @@ export default config;
|
|
|
97
105
|
|
|
98
106
|
Wtyczka `syncJSON` automatycznie opakuje JSON. Będzie odczytywać i zapisywać pliki JSON bez zmiany architektury zawartości.
|
|
99
107
|
|
|
100
|
-
Jeśli chcesz, aby JSON współistniał z plikami deklaracji
|
|
108
|
+
Jeśli chcesz, aby JSON współistniał z plikami deklaracji zawartości Intlayer (`.content`), Intlayer postąpi w następujący sposób:
|
|
109
|
+
|
|
110
|
+
1. załaduje zarówno pliki JSON, jak i pliki deklaracji zawartości, a następnie przekształci je w słownik Intlayer.
|
|
111
|
+
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji zawartości, Intlayer połączy wszystkie słowniki. W zależności od priorytetu wtyczek oraz pliku deklaracji zawartości (wszystko jest konfigurowalne).
|
|
112
|
+
|
|
113
|
+
Jeśli zmiany zostaną dokonane za pomocą CLI do tłumaczenia JSON lub przy użyciu CMS, Intlayer zaktualizuje plik JSON o nowe tłumaczenia.
|
|
114
|
+
|
|
115
|
+
Aby zobaczyć więcej szczegółów dotyczących wtyczki `syncJSON`, prosimy o zapoznanie się z [dokumentacją wtyczki syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/plugins/sync-json.md).
|
|
116
|
+
|
|
117
|
+
### (Opcjonalny) Krok 3: Implementacja tłumaczeń JSON na poziomie komponentów
|
|
118
|
+
|
|
119
|
+
Domyślnie Intlayer załaduje, połączy i zsynchronizuje zarówno pliki JSON, jak i pliki deklaracji zawartości. Więcej informacji można znaleźć w [dokumentacji deklaracji zawartości](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md). Jednak jeśli wolisz, korzystając z wtyczki Intlayer, możesz również zaimplementować zarządzanie JSON na poziomie poszczególnych komponentów, zlokalizowanych w dowolnym miejscu w Twojej bazie kodu.
|
|
120
|
+
|
|
121
|
+
Do tego celu możesz użyć wtyczki `loadJSON`.
|
|
122
|
+
|
|
123
|
+
```ts fileName="intlayer.config.ts"
|
|
124
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
125
|
+
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
126
|
+
|
|
127
|
+
const config: IntlayerConfig = {
|
|
128
|
+
internationalization: {
|
|
129
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
130
|
+
defaultLocale: Locales.ENGLISH,
|
|
131
|
+
},
|
|
101
132
|
|
|
102
|
-
|
|
103
|
-
|
|
133
|
+
// Synchronizuj swoje obecne pliki JSON ze słownikami Intlayer
|
|
134
|
+
plugins: [
|
|
135
|
+
/**
|
|
136
|
+
* Załaduje wszystkie pliki JSON w katalogu src, które pasują do wzorca {key}.i18n.json
|
|
137
|
+
*/
|
|
138
|
+
loadJSON({
|
|
139
|
+
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
140
|
+
locale: Locales.ENGLISH,
|
|
141
|
+
priority: 1, // Zapewnia, że te pliki JSON mają pierwszeństwo przed plikami w `./locales/en/${key}.json`
|
|
142
|
+
}),
|
|
143
|
+
/**
|
|
144
|
+
* Załaduje i zapisze wynik oraz tłumaczenia z powrotem do plików JSON w katalogu locales
|
|
145
|
+
*/
|
|
146
|
+
syncJSON({
|
|
147
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
148
|
+
priority: 0,
|
|
149
|
+
}),
|
|
150
|
+
],
|
|
151
|
+
};
|
|
104
152
|
|
|
105
|
-
|
|
153
|
+
export default config;
|
|
154
|
+
```
|
|
106
155
|
|
|
107
|
-
|
|
156
|
+
To spowoduje załadowanie wszystkich plików JSON w katalogu `src`, które pasują do wzorca `{key}.i18n.json` i załaduje je jako słowniki Intlayer.
|
|
108
157
|
|
|
109
158
|
## Konfiguracja Git
|
|
110
159
|
|
|
@@ -119,6 +168,6 @@ Te pliki mogą być ponownie wygenerowane podczas procesu budowania i nie muszą
|
|
|
119
168
|
|
|
120
169
|
### Rozszerzenie VS Code
|
|
121
170
|
|
|
122
|
-
Dla lepszego doświadczenia
|
|
171
|
+
Dla lepszego doświadczenia deweloperskiego zainstaluj oficjalne **rozszerzenie Intlayer dla VS Code**:
|
|
123
172
|
|
|
124
|
-
[Zainstaluj z
|
|
173
|
+
[Zainstaluj z VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
@@ -16,6 +16,9 @@ slugs:
|
|
|
16
16
|
- blog
|
|
17
17
|
- intlayer-with-react-intl
|
|
18
18
|
history:
|
|
19
|
+
- version: 7.0.6
|
|
20
|
+
date: 2025-11-01
|
|
21
|
+
changes: Dodano wtyczkę loadJSON
|
|
19
22
|
- version: 7.0.0
|
|
20
23
|
date: 2025-10-29
|
|
21
24
|
changes: Zmiana na wtyczkę syncJSON
|
|
@@ -23,6 +26,10 @@ history:
|
|
|
23
26
|
|
|
24
27
|
# Jak zautomatyzować tłumaczenia JSON react-intl za pomocą Intlayer
|
|
25
28
|
|
|
29
|
+
## Spis treści
|
|
30
|
+
|
|
31
|
+
<TOC/>
|
|
32
|
+
|
|
26
33
|
## Czym jest Intlayer?
|
|
27
34
|
|
|
28
35
|
**Intlayer** to innowacyjna, otwartoźródłowa biblioteka do internacjonalizacji, zaprojektowana w celu rozwiązania niedoskonałości tradycyjnych rozwiązań i18n. Oferuje nowoczesne podejście do zarządzania treścią w aplikacjach React.
|
|
@@ -34,18 +41,19 @@ Zobacz konkretne porównanie z react-intl w naszym wpisie na blogu [react-i18nex
|
|
|
34
41
|
Chociaż Intlayer zapewnia doskonałe, samodzielne rozwiązanie i18n (zobacz nasz [przewodnik integracji z React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_vite+react.md)), możesz chcieć połączyć je z react-intl z kilku powodów:
|
|
35
42
|
|
|
36
43
|
1. **Istniejąca baza kodu**: Masz już wdrożoną implementację react-intl i chcesz stopniowo przejść na ulepszone doświadczenie deweloperskie Intlayer.
|
|
37
|
-
2. **Wymagania dotyczące
|
|
44
|
+
2. **Wymagania dotyczące kompatybilności wstecznej**: Twój projekt wymaga zgodności z istniejącymi wtyczkami lub procesami react-intl.
|
|
38
45
|
3. **Znajomość zespołu**: Twój zespół dobrze zna react-intl, ale chce lepszego zarządzania treścią.
|
|
46
|
+
4. **Korzystanie z funkcji Intlayer**: Chcesz korzystać z funkcji Intlayer, takich jak deklaracja treści, automatyzacja tłumaczeń, testowanie tłumaczeń i inne.
|
|
39
47
|
|
|
40
|
-
**W tym celu Intlayer może być zaimplementowany jako adapter dla react-intl, aby pomóc w automatyzacji tłumaczeń JSON w CLI lub pipeline
|
|
48
|
+
**W tym celu Intlayer może być zaimplementowany jako adapter dla react-intl, aby pomóc w automatyzacji tłumaczeń JSON w CLI lub pipeline’ach CI/CD, testowaniu tłumaczeń i innych zadaniach.**
|
|
41
49
|
|
|
42
|
-
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, zachowując
|
|
50
|
+
Ten przewodnik pokazuje, jak wykorzystać zaawansowany system deklaracji treści Intlayer, jednocześnie zachowując kompatybilność z react-intl.
|
|
43
51
|
|
|
44
52
|
## Spis treści
|
|
45
53
|
|
|
46
54
|
<TOC/>
|
|
47
55
|
|
|
48
|
-
## Przewodnik krok po kroku
|
|
56
|
+
## Przewodnik krok po kroku: Konfiguracja Intlayer z react-intl
|
|
49
57
|
|
|
50
58
|
### Krok 1: Instalacja zależności
|
|
51
59
|
|
|
@@ -63,12 +71,16 @@ pnpm add intlayer @intlayer/sync-json-plugin
|
|
|
63
71
|
yarn add intlayer @intlayer/sync-json-plugin
|
|
64
72
|
```
|
|
65
73
|
|
|
74
|
+
```bash packageManager="bun"
|
|
75
|
+
bun add intlayer @intlayer/sync-json-plugin
|
|
76
|
+
```
|
|
77
|
+
|
|
66
78
|
**Opis pakietów:**
|
|
67
79
|
|
|
68
80
|
- **intlayer**: Podstawowa biblioteka do zarządzania internacjonalizacją, deklaracji treści i budowania
|
|
69
81
|
- **@intlayer/sync-json-plugin**: Wtyczka do eksportowania deklaracji treści Intlayer do formatu JSON kompatybilnego z react-intl
|
|
70
82
|
|
|
71
|
-
### Krok 2:
|
|
83
|
+
### Krok 2: Implementacja wtyczki Intlayer do opakowania JSON
|
|
72
84
|
|
|
73
85
|
Utwórz plik konfiguracyjny Intlayer, aby zdefiniować obsługiwane lokalizacje:
|
|
74
86
|
|
|
@@ -95,14 +107,55 @@ export default config;
|
|
|
95
107
|
|
|
96
108
|
Wtyczka `syncJSON` automatycznie opakuje JSON. Będzie odczytywać i zapisywać pliki JSON bez zmiany architektury zawartości.
|
|
97
109
|
|
|
98
|
-
Jeśli chcesz, aby JSON współistniał z plikami deklaracji zawartości
|
|
110
|
+
Jeśli chcesz, aby JSON współistniał z plikami deklaracji zawartości Intlayer (`.content`), Intlayer postąpi w następujący sposób:
|
|
111
|
+
|
|
112
|
+
1. załaduje zarówno pliki JSON, jak i pliki deklaracji zawartości, a następnie przekształci je w słownik Intlayer.
|
|
113
|
+
2. jeśli wystąpią konflikty między plikami JSON a plikami deklaracji zawartości, Intlayer przeprowadzi scalanie wszystkich słowników. W zależności od priorytetu wtyczek oraz plików deklaracji zawartości (wszystko jest konfigurowalne).
|
|
114
|
+
|
|
115
|
+
Jeśli zmiany zostaną dokonane za pomocą CLI do tłumaczenia JSON lub przy użyciu CMS, Intlayer zaktualizuje plik JSON o nowe tłumaczenia.
|
|
116
|
+
|
|
117
|
+
Aby zobaczyć więcej szczegółów na temat wtyczki `syncJSON`, prosimy o zapoznanie się z [dokumentacją wtyczki syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/plugins/sync-json.md).
|
|
118
|
+
|
|
119
|
+
### (Opcjonalny) Krok 3: Implementacja tłumaczeń JSON per-komponent
|
|
120
|
+
|
|
121
|
+
Domyślnie Intlayer załaduje, scali i zsynchronizuje zarówno pliki JSON, jak i pliki deklaracji zawartości. Zobacz [dokumentację deklaracji zawartości](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md) po więcej szczegółów. Jednak jeśli wolisz, używając wtyczki Intlayer, możesz również zaimplementować zarządzanie JSON per-komponent, zlokalizowanym w dowolnym miejscu w Twojej bazie kodu.
|
|
122
|
+
|
|
123
|
+
Do tego możesz użyć wtyczki `loadJSON`.
|
|
124
|
+
|
|
125
|
+
```ts fileName="intlayer.config.ts"
|
|
126
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
127
|
+
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
128
|
+
|
|
129
|
+
const config: IntlayerConfig = {
|
|
130
|
+
internationalization: {
|
|
131
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
132
|
+
defaultLocale: Locales.ENGLISH,
|
|
133
|
+
},
|
|
99
134
|
|
|
100
|
-
|
|
101
|
-
|
|
135
|
+
// Synchronizuj swoje aktualne pliki JSON ze słownikami Intlayer
|
|
136
|
+
plugins: [
|
|
137
|
+
/**
|
|
138
|
+
* Załaduje wszystkie pliki JSON w katalogu src, które pasują do wzorca {key}.i18n.json
|
|
139
|
+
*/
|
|
140
|
+
loadJSON({
|
|
141
|
+
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
142
|
+
locale: Locales.ENGLISH,
|
|
143
|
+
priority: 1, // Zapewnia, że te pliki JSON mają pierwszeństwo przed plikami w `./locales/en/${key}.json`
|
|
144
|
+
}),
|
|
145
|
+
/**
|
|
146
|
+
* Załaduje i zapisze wynik oraz tłumaczenia z powrotem do plików JSON w katalogu locales
|
|
147
|
+
*/
|
|
148
|
+
syncJSON({
|
|
149
|
+
source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
|
|
150
|
+
priority: 0,
|
|
151
|
+
}),
|
|
152
|
+
],
|
|
153
|
+
};
|
|
102
154
|
|
|
103
|
-
|
|
155
|
+
export default config;
|
|
156
|
+
```
|
|
104
157
|
|
|
105
|
-
|
|
158
|
+
To spowoduje załadowanie wszystkich plików JSON w katalogu `src`, które pasują do wzorca `{key}.i18n.json` i załaduje je jako słowniki Intlayer.
|
|
106
159
|
|
|
107
160
|
## Konfiguracja Git
|
|
108
161
|
|
|
@@ -117,6 +170,6 @@ Te pliki mogą być ponownie wygenerowane podczas procesu budowania i nie muszą
|
|
|
117
170
|
|
|
118
171
|
### Rozszerzenie VS Code
|
|
119
172
|
|
|
120
|
-
Dla lepszego doświadczenia
|
|
173
|
+
Dla lepszego doświadczenia deweloperskiego zainstaluj oficjalne **rozszerzenie Intlayer dla VS Code**:
|
|
121
174
|
|
|
122
|
-
[Zainstaluj z VS Code
|
|
175
|
+
[Zainstaluj z Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|