@intlayer/docs 8.0.4 → 8.0.5
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/dist/cjs/blog.cjs +1 -0
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +1 -0
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs +1 -0
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +1 -0
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +21 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/legal.cjs +1 -0
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/doc-translate.md +1 -0
- package/docs/ar/cli/fill.md +1 -0
- package/docs/ar/configuration.md +10 -0
- package/docs/ar/intlayer_with_analog.md +371 -0
- package/docs/ar/intlayer_with_angular.md +12 -14
- package/docs/ar/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/de/agent_skills.md +53 -0
- package/docs/de/cli/doc-translate.md +1 -0
- package/docs/de/cli/fill.md +1 -0
- package/docs/de/configuration.md +10 -0
- package/docs/de/intlayer_with_analog.md +369 -0
- package/docs/de/intlayer_with_angular.md +11 -16
- package/docs/de/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en/agent_skills.md +53 -0
- package/docs/en/cli/doc-translate.md +1 -0
- package/docs/en/cli/fill.md +1 -0
- package/docs/en/configuration.md +21 -1
- package/docs/en/intlayer_with_analog.md +4 -12
- package/docs/en/intlayer_with_angular.md +13 -15
- package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
- package/docs/en/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en-GB/cli/doc-translate.md +1 -0
- package/docs/en-GB/cli/fill.md +1 -0
- package/docs/en-GB/configuration.md +10 -0
- package/docs/en-GB/intlayer_with_analog.md +369 -0
- package/docs/en-GB/intlayer_with_angular.md +12 -14
- package/docs/en-GB/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/es/agent_skills.md +53 -0
- package/docs/es/cli/doc-translate.md +1 -0
- package/docs/es/cli/fill.md +1 -0
- package/docs/es/configuration.md +10 -0
- package/docs/es/intlayer_with_analog.md +369 -0
- package/docs/es/intlayer_with_angular.md +11 -16
- package/docs/es/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/fr/agent_skills.md +53 -0
- package/docs/fr/cli/doc-translate.md +1 -0
- package/docs/fr/cli/fill.md +1 -0
- package/docs/fr/configuration.md +10 -0
- package/docs/fr/intlayer_with_analog.md +369 -0
- package/docs/fr/intlayer_with_angular.md +11 -16
- package/docs/fr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/hi/cli/doc-translate.md +1 -0
- package/docs/hi/cli/fill.md +1 -0
- package/docs/hi/configuration.md +10 -0
- package/docs/hi/intlayer_with_analog.md +371 -0
- package/docs/hi/intlayer_with_angular.md +12 -14
- package/docs/hi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/id/cli/doc-translate.md +1 -0
- package/docs/id/cli/fill.md +1 -0
- package/docs/id/configuration.md +10 -0
- package/docs/id/intlayer_with_analog.md +371 -0
- package/docs/id/intlayer_with_angular.md +12 -14
- package/docs/id/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/it/agent_skills.md +53 -0
- package/docs/it/cli/doc-translate.md +1 -0
- package/docs/it/cli/fill.md +1 -0
- package/docs/it/configuration.md +10 -0
- package/docs/it/intlayer_with_analog.md +371 -0
- package/docs/it/intlayer_with_angular.md +12 -14
- package/docs/it/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ja/agent_skills.md +53 -0
- package/docs/ja/cli/doc-translate.md +1 -0
- package/docs/ja/cli/fill.md +1 -0
- package/docs/ja/configuration.md +10 -0
- package/docs/ja/intlayer_with_analog.md +365 -0
- package/docs/ja/intlayer_with_angular.md +12 -14
- package/docs/ja/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ko/agent_skills.md +53 -0
- package/docs/ko/cli/doc-translate.md +1 -0
- package/docs/ko/cli/fill.md +1 -0
- package/docs/ko/configuration.md +10 -0
- package/docs/ko/intlayer_with_analog.md +365 -0
- package/docs/ko/intlayer_with_angular.md +12 -14
- package/docs/ko/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pl/cli/doc-translate.md +1 -0
- package/docs/pl/cli/fill.md +1 -0
- package/docs/pl/configuration.md +10 -0
- package/docs/pl/intlayer_with_analog.md +371 -0
- package/docs/pl/intlayer_with_angular.md +12 -14
- package/docs/pl/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pt/agent_skills.md +53 -0
- package/docs/pt/cli/doc-translate.md +1 -0
- package/docs/pt/cli/fill.md +1 -0
- package/docs/pt/configuration.md +10 -0
- package/docs/pt/intlayer_with_analog.md +371 -0
- package/docs/pt/intlayer_with_angular.md +12 -14
- package/docs/pt/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -0
- package/docs/ru/cli/fill.md +1 -0
- package/docs/ru/configuration.md +18 -0
- package/docs/ru/intlayer_with_analog.md +371 -0
- package/docs/ru/intlayer_with_angular.md +12 -14
- package/docs/ru/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/tr/cli/doc-translate.md +1 -0
- package/docs/tr/cli/fill.md +1 -0
- package/docs/tr/configuration.md +10 -0
- package/docs/tr/intlayer_with_analog.md +365 -0
- package/docs/tr/intlayer_with_angular.md +12 -14
- package/docs/tr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/uk/cli/doc-translate.md +1 -0
- package/docs/uk/cli/fill.md +1 -0
- package/docs/uk/configuration.md +10 -0
- package/docs/uk/intlayer_with_analog.md +365 -0
- package/docs/uk/intlayer_with_angular.md +12 -14
- package/docs/uk/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/vi/configuration.md +10 -0
- package/docs/vi/intlayer_with_analog.md +365 -0
- package/docs/vi/intlayer_with_angular.md +12 -14
- package/docs/vi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/zh/agent_skills.md +53 -0
- package/docs/zh/configuration.md +10 -0
- package/docs/zh/intlayer_with_analog.md +365 -0
- package/docs/zh/intlayer_with_angular.md +12 -14
- package/docs/zh/packages/solid-intlayer/useIntlayer.md +1 -1
- package/package.json +8 -8
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-04-18
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Analog i18n - Jak przetłumaczyć swoją aplikację Analog – przewodnik 2026
|
|
5
|
+
description: Dowiedz się, jak uczynić swoją aplikację Analog wielojęzyczną. Postępuj zgodnie z dokumentacją, aby przeprowadzić internacjonalizację (i18n) i tłumaczenie.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internacjonalizacja
|
|
8
|
+
- Dokumentacja
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Analog
|
|
11
|
+
- Angular
|
|
12
|
+
- JavaScript
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- analog
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 8.0.4
|
|
20
|
+
date: 2026-01-26
|
|
21
|
+
changes: Inicjalizacja historii
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Przetłumacz swoją aplikację Analog (Angular) za pomocą Intlayer | Internacjonalizacja (i18n)
|
|
25
|
+
|
|
26
|
+
## Spis treści
|
|
27
|
+
|
|
28
|
+
<TOC/>
|
|
29
|
+
|
|
30
|
+
## Czym jest Intlayer?
|
|
31
|
+
|
|
32
|
+
**Intlayer** to innowacyjna biblioteka internacjonalizacji (i18n) typu open-source, zaprojektowana w celu uproszczenia obsługi wielojęzyczności w nowoczesnych aplikacjach internetowych.
|
|
33
|
+
|
|
34
|
+
Z Intlayer możesz:
|
|
35
|
+
|
|
36
|
+
- **Łatwo zarządzać tłumaczeniami** za pomocą deklaratywnych słowników na poziomie komponentów.
|
|
37
|
+
- **Dynamicznie lokalizować metadane**, trasy i treści.
|
|
38
|
+
- **Zapewnić wsparcie TypeScript** dzięki automatycznie generowanym typom, poprawiając autouzupełnianie i wykrywanie błędów.
|
|
39
|
+
- **Korzystać z zaawansowanych funkcji**, takich jak dynamiczne wykrywanie i przełączanie języka (locale).
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Przewodnik krok po kroku, jak skonfigurować Intlayer w aplikacji Analog
|
|
44
|
+
|
|
45
|
+
<Tabs defaultTab="code">
|
|
46
|
+
<Tab label="Kod" value="code">
|
|
47
|
+
|
|
48
|
+
<iframe
|
|
49
|
+
src="https://stackblitz.com/github/aymericzip/intlayer/tree/main/examples/vite-analog-app?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 przeprowadzić internacjonalizację aplikacji za pomocą Intlayer"
|
|
52
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
/>
|
|
55
|
+
|
|
56
|
+
</Tab>
|
|
57
|
+
</Tabs>
|
|
58
|
+
|
|
59
|
+
Zobacz [Szablon aplikacji](https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template) na GitHubie.
|
|
60
|
+
|
|
61
|
+
### Krok 1: Instalacja zależności
|
|
62
|
+
|
|
63
|
+
Zainstaluj niezbędne pakiety za pomocą npm:
|
|
64
|
+
|
|
65
|
+
```bash packageManager="npm"
|
|
66
|
+
npm install intlayer angular-intlayer vite-intlayer
|
|
67
|
+
npx intlayer init
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```bash packageManager="pnpm"
|
|
71
|
+
pnpm add intlayer angular-intlayer vite-intlayer
|
|
72
|
+
pnpm intlayer init
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```bash packageManager="yarn"
|
|
76
|
+
yarn add intlayer angular-intlayer vite-intlayer
|
|
77
|
+
yarn intlayer init
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash packageManager="bun"
|
|
81
|
+
bun add intlayer angular-intlayer vite-intlayer
|
|
82
|
+
bunx intlayer init
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- **intlayer**
|
|
86
|
+
|
|
87
|
+
Główny pakiet dostarczający narzędzia i18n do zarządzania konfiguracją, tłumaczenia, [deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md), transpilacji oraz [poleceń CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/cli/index.md).
|
|
88
|
+
|
|
89
|
+
- **angular-intlayer**
|
|
90
|
+
Pakiet integrujący Intlayer z aplikacją Angular. Dostarcza dostawców kontekstu (context providers) i hooki dla internacjonalizacji Angulara.
|
|
91
|
+
|
|
92
|
+
- **vite-intlayer**
|
|
93
|
+
Pakiet integrujący Intlayer z Vite. Dostarcza wtyczkę (plugin) do obsługi plików deklaracji treści i ustawia aliasy dla optymalnej wydajności.
|
|
94
|
+
|
|
95
|
+
### Krok 2: Konfiguracja projektu
|
|
96
|
+
|
|
97
|
+
Utwórz plik konfiguracyjny, aby skonfigurować języki swojej aplikacji:
|
|
98
|
+
|
|
99
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
100
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
101
|
+
|
|
102
|
+
const config: IntlayerConfig = {
|
|
103
|
+
internationalization: {
|
|
104
|
+
locales: [
|
|
105
|
+
Locales.ENGLISH,
|
|
106
|
+
Locales.FRENCH,
|
|
107
|
+
Locales.SPANISH,
|
|
108
|
+
// Twoje inne języki
|
|
109
|
+
],
|
|
110
|
+
defaultLocale: Locales.ENGLISH,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export default config;
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
118
|
+
import { Locales } from "intlayer";
|
|
119
|
+
|
|
120
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
121
|
+
const config = {
|
|
122
|
+
internationalization: {
|
|
123
|
+
locales: [
|
|
124
|
+
Locales.ENGLISH,
|
|
125
|
+
Locales.FRENCH,
|
|
126
|
+
Locales.SPANISH,
|
|
127
|
+
// Twoje inne języki
|
|
128
|
+
],
|
|
129
|
+
defaultLocale: Locales.ENGLISH,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default config;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
137
|
+
const { Locales } = require("intlayer");
|
|
138
|
+
|
|
139
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
140
|
+
const config = {
|
|
141
|
+
internationalization: {
|
|
142
|
+
locales: [
|
|
143
|
+
Locales.ENGLISH,
|
|
144
|
+
Locales.FRENCH,
|
|
145
|
+
Locales.SPANISH,
|
|
146
|
+
// Twoje inne języki
|
|
147
|
+
],
|
|
148
|
+
defaultLocale: Locales.ENGLISH,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
module.exports = config;
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> Za pomocą tego pliku konfiguracyjnego możesz ustawić zlokalizowane adresy URL, przekierowania 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).
|
|
156
|
+
|
|
157
|
+
### Krok 3: Zintegruj Intlayer w konfiguracji Vite
|
|
158
|
+
|
|
159
|
+
Aby zintegrować Intlayer z Analog, musisz użyć wtyczki `vite-intlayer`.
|
|
160
|
+
|
|
161
|
+
Zmodyfikuj plik `vite.config.ts`:
|
|
162
|
+
|
|
163
|
+
```typescript fileName="vite.config.ts"
|
|
164
|
+
import { defineConfig } from "vite";
|
|
165
|
+
import { intlayer } from "vite-intlayer";
|
|
166
|
+
import analog from "@analogjs/platform";
|
|
167
|
+
|
|
168
|
+
// https://vitejs.dev/config/
|
|
169
|
+
export default defineConfig(() => ({
|
|
170
|
+
plugins: [
|
|
171
|
+
analog(),
|
|
172
|
+
intlayer(), // Dodaj wtyczkę Intlayer
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> Wtyczka `intlayer()` konfiguruje Vite do pracy z Intlayer. Obsługuje pliki deklaracji treści i ustawia aliasy dla optymalnej wydajności.
|
|
178
|
+
|
|
179
|
+
### Krok 4: Zadeklaruj swoją treść
|
|
180
|
+
|
|
181
|
+
Twórz i zarządzaj deklaracjami treści, aby przechowywać tłumaczenia:
|
|
182
|
+
|
|
183
|
+
```tsx fileName="src/app/app.content.ts" contentDeclarationFormat="typescript"
|
|
184
|
+
import { t, type Dictionary } from "intlayer";
|
|
185
|
+
|
|
186
|
+
const appContent = {
|
|
187
|
+
key: "app",
|
|
188
|
+
content: {
|
|
189
|
+
title: t({
|
|
190
|
+
en: "Hello",
|
|
191
|
+
fr: "Bonjour",
|
|
192
|
+
es: "Hola",
|
|
193
|
+
pl: "Witaj",
|
|
194
|
+
}),
|
|
195
|
+
congratulations: t({
|
|
196
|
+
en: "Congratulations! Your app is running. 🎉",
|
|
197
|
+
fr: "Félicitations! Votre application est en cours d'exécution. 🎉",
|
|
198
|
+
es: "¡Felicidades! Tu aplicación está en ejecución. 🎉",
|
|
199
|
+
pl: "Gratulacje! Twoja aplikacja działa. 🎉",
|
|
200
|
+
}),
|
|
201
|
+
},
|
|
202
|
+
} satisfies Dictionary;
|
|
203
|
+
|
|
204
|
+
export default appContent;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
> Deklaracje treści mogą być definiowane w dowolnym miejscu aplikacji, o ile znajdują się w katalogu `contentDir` (domyślnie `./src`) i pasują do rozszerzenia pliku deklaracji treści (domyślnie `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
|
|
208
|
+
|
|
209
|
+
> Więcej szczegółów znajdziesz w [dokumentacji deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md).
|
|
210
|
+
|
|
211
|
+
### Krok 5: Użyj Intlayer w kodzie
|
|
212
|
+
|
|
213
|
+
Aby korzystać z funkcji internacjonalizacji Intlayer w całej aplikacji Analog, musisz dodać Intlayer do konfiguracji aplikacji.
|
|
214
|
+
|
|
215
|
+
```typescript fileName="src/app/app.config.ts"
|
|
216
|
+
import { ApplicationConfig } from "@angular/core";
|
|
217
|
+
import { provideIntlayer } from "angular-intlayer";
|
|
218
|
+
|
|
219
|
+
export const appConfig: ApplicationConfig = {
|
|
220
|
+
providers: [
|
|
221
|
+
provideIntlayer(), // Dodaj tutaj dostawcę Intlayer
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Następnie możesz użyć funkcji `useIntlayer` w dowolnym komponencie.
|
|
227
|
+
|
|
228
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
229
|
+
import { Component } from "@angular/core";
|
|
230
|
+
import { useIntlayer } from "angular-intlayer";
|
|
231
|
+
|
|
232
|
+
@Component({
|
|
233
|
+
selector: "app-home",
|
|
234
|
+
standalone: true,
|
|
235
|
+
template: `
|
|
236
|
+
<div class="content">
|
|
237
|
+
<h1>{{ content().title }}</h1>
|
|
238
|
+
<p>{{ content().congratulations }}</p>
|
|
239
|
+
</div>
|
|
240
|
+
`,
|
|
241
|
+
})
|
|
242
|
+
export default class HomeComponent {
|
|
243
|
+
content = useIntlayer("app");
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Treść Intlayer jest zwracana jako `Signal`, więc dostęp do wartości uzyskujesz wywołując sygnał: `content().title`.
|
|
248
|
+
|
|
249
|
+
### (Opcjonalnie) Krok 6: Zmiana języka treści
|
|
250
|
+
|
|
251
|
+
Aby zmienić język treści, możesz użyć funkcji `setLocale` dostarczonej przez funkcję `useLocale`. Pozwala to ustawić język aplikacji i odpowiednio zaktualizować treść.
|
|
252
|
+
|
|
253
|
+
Utwórz komponent do przełączania języków:
|
|
254
|
+
|
|
255
|
+
```typescript fileName="src/app/locale-switcher.component.ts"
|
|
256
|
+
import { Component } from "@angular/core";
|
|
257
|
+
import { CommonModule } from "@angular/common";
|
|
258
|
+
import { useLocale } from "angular-intlayer";
|
|
259
|
+
|
|
260
|
+
@Component({
|
|
261
|
+
selector: "app-locale-switcher",
|
|
262
|
+
standalone: true,
|
|
263
|
+
imports: [CommonModule],
|
|
264
|
+
template: `
|
|
265
|
+
<div class="locale-switcher">
|
|
266
|
+
<select
|
|
267
|
+
[value]="locale()"
|
|
268
|
+
(change)="setLocale($any($event.target).value)"
|
|
269
|
+
>
|
|
270
|
+
@for (loc of availableLocales; track loc) {
|
|
271
|
+
<option [value]="loc">{{ loc }}</option>
|
|
272
|
+
}
|
|
273
|
+
</select>
|
|
274
|
+
</div>
|
|
275
|
+
`,
|
|
276
|
+
styles: [
|
|
277
|
+
`
|
|
278
|
+
.locale-switcher {
|
|
279
|
+
margin: 1rem;
|
|
280
|
+
padding: 0.5rem;
|
|
281
|
+
border: 1px solid #ccc;
|
|
282
|
+
border-radius: 4px;
|
|
283
|
+
width: fit-content;
|
|
284
|
+
}
|
|
285
|
+
`,
|
|
286
|
+
],
|
|
287
|
+
})
|
|
288
|
+
export class LocaleSwitcherComponent {
|
|
289
|
+
localeCtx = useLocale();
|
|
290
|
+
|
|
291
|
+
locale = this.localeCtx.locale;
|
|
292
|
+
availableLocales = this.localeCtx.availableLocales;
|
|
293
|
+
setLocale = this.localeCtx.setLocale;
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Następnie użyj tego komponentu na swoich stronach:
|
|
298
|
+
|
|
299
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
300
|
+
import { Component } from "@angular/core";
|
|
301
|
+
import { useIntlayer } from "angular-intlayer";
|
|
302
|
+
import { LocaleSwitcherComponent } from "../locale-switcher.component";
|
|
303
|
+
|
|
304
|
+
@Component({
|
|
305
|
+
selector: "app-home",
|
|
306
|
+
standalone: true,
|
|
307
|
+
imports: [LocaleSwitcherComponent],
|
|
308
|
+
template: `
|
|
309
|
+
<app-locale-switcher></app-locale-switcher>
|
|
310
|
+
<div class="content">
|
|
311
|
+
<h1>{{ content().title }}</h1>
|
|
312
|
+
<p>{{ content().congratulations }}</p>
|
|
313
|
+
</div>
|
|
314
|
+
`,
|
|
315
|
+
})
|
|
316
|
+
export default class HomeComponent {
|
|
317
|
+
content = useIntlayer("app");
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Konfiguracja TypeScript
|
|
322
|
+
|
|
323
|
+
Intlayer wykorzystuje rozszerzanie modułów (module augmentation), aby czerpać korzyści z TypeScript i wzmocnić bazę kodu.
|
|
324
|
+
|
|
325
|
+

|
|
326
|
+
|
|
327
|
+

|
|
328
|
+
|
|
329
|
+
Upewnij się, że Twoja konfiguracja TypeScript zawiera automatycznie generowane typy.
|
|
330
|
+
|
|
331
|
+
```json5 fileName="tsconfig.json"
|
|
332
|
+
{
|
|
333
|
+
// ... Twoje istniejące konfiguracje TypeScript
|
|
334
|
+
"include": [
|
|
335
|
+
// ... Twoje istniejące konfiguracje TypeScript
|
|
336
|
+
".intlayer/**/*.ts", // Uwzględnij automatycznie generowane typy
|
|
337
|
+
],
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Konfiguracja Git
|
|
342
|
+
|
|
343
|
+
Zaleca się ignorowanie plików generowanych przez Intlayer. Pozwala to uniknąć ich zatwierdzania w repozytorium Git.
|
|
344
|
+
|
|
345
|
+
Aby to zrobić, dodaj następujące instrukcje do pliku `.gitignore`:
|
|
346
|
+
|
|
347
|
+
```plaintext
|
|
348
|
+
# Ignoruj pliki generowane 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** dla brakujących tłumaczeń.
|
|
362
|
+
- **Podgląd inline** przetłumaczonej treści.
|
|
363
|
+
- **Szybkie akcje** ułatwiające tworzenie i aktualizację 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
|
+
---
|
|
368
|
+
|
|
369
|
+
### Dowiedz się więcej
|
|
370
|
+
|
|
371
|
+
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ć treść do zewnętrznego systemu za pomocą [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md).
|
|
@@ -166,30 +166,28 @@ Aby zintegrować Intlayer z Angular CLI, musisz użyć niestandardowego buildera
|
|
|
166
166
|
|
|
167
167
|
Najpierw zmodyfikuj plik `angular.json`, aby używał niestandardowego buildera Webpack. Zaktualizuj konfiguracje `build` i `serve`:
|
|
168
168
|
|
|
169
|
-
```
|
|
169
|
+
```json5 fileName="angular.json"
|
|
170
170
|
{
|
|
171
171
|
"projects": {
|
|
172
172
|
"your-app-name": {
|
|
173
173
|
"architect": {
|
|
174
174
|
"build": {
|
|
175
|
-
"builder": "@angular-builders/custom-webpack:browser",
|
|
175
|
+
"builder": "@angular-builders/custom-webpack:browser", // replace "@angular-devkit/build-angular:application",
|
|
176
176
|
"options": {
|
|
177
177
|
"customWebpackConfig": {
|
|
178
|
-
"path": "./webpack.config.ts"
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
"path": "./webpack.config.ts",
|
|
179
|
+
"mergeStrategies": { "module.rules": "prepend" },
|
|
180
|
+
},
|
|
181
|
+
"main": "src/main.ts", // replace "browser": "src/main.ts",
|
|
182
|
+
// ...
|
|
183
|
+
},
|
|
181
184
|
},
|
|
182
185
|
"serve": {
|
|
183
186
|
"builder": "@angular-builders/custom-webpack:dev-server",
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
193
191
|
}
|
|
194
192
|
```
|
|
195
193
|
|
|
@@ -33,7 +33,7 @@ Hook `useIntlayer` pozwala pobierać zlokalizowaną zawartość ze słownika za
|
|
|
33
33
|
import { useIntlayer } from "solid-intlayer";
|
|
34
34
|
|
|
35
35
|
const MyComponent = () => {
|
|
36
|
-
const content = useIntlayer("
|
|
36
|
+
const content = useIntlayer("my-dictionary-key");
|
|
37
37
|
|
|
38
38
|
return (
|
|
39
39
|
<div>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-09
|
|
3
|
+
updatedAt: 2026-02-09
|
|
4
|
+
title: Habilidades do Agente
|
|
5
|
+
description: Aprenda como usar as Habilidades do Agente Intlayer para melhorar a compreensão do seu projeto pelo seu agente de IA.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Habilidades do Agente
|
|
9
|
+
- Agente de IA
|
|
10
|
+
- Internacionalização
|
|
11
|
+
- Documentação
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- agent_skills
|
|
15
|
+
history:
|
|
16
|
+
- version: 8.0.4
|
|
17
|
+
date: 2026-02-09
|
|
18
|
+
changes: Inicializar histórico
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## O comando `intlayer init skills`
|
|
22
|
+
|
|
23
|
+
O comando `intlayer init skills` é a maneira mais fácil de configurar as habilidades do agente no seu projeto. Ele detecta seu ambiente e instala os arquivos de configuração necessários para suas plataformas preferidas.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx intlayer init skills
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Quando você executa este comando, ele irá:
|
|
30
|
+
|
|
31
|
+
1. Detectar o framework que você está usando (ex: Next.js, React, Vite).
|
|
32
|
+
2. Perguntar para quais plataformas você deseja instalar habilidades (Cursor, VS Code, OpenCode, Claude Code, etc.).
|
|
33
|
+
3. Gerar os arquivos de configuração necessários (como `.cursor/mcp.json`, `.vscode/mcp.json` ou `.intlayer/skills/*.md`).
|
|
34
|
+
|
|
35
|
+
## Plataformas Suportadas
|
|
36
|
+
|
|
37
|
+
Intlayer suporta integração com as seguintes plataformas:
|
|
38
|
+
|
|
39
|
+
### 1. Cursor
|
|
40
|
+
|
|
41
|
+
Cursor suporta servidores MCP (Model Context Protocol). A execução do `intlayer init skills` criará um arquivo `.cursor/mcp.json` que permite ao Cursor se comunicar com o servidor MCP do Intlayer.
|
|
42
|
+
|
|
43
|
+
### 2. VS Code
|
|
44
|
+
|
|
45
|
+
Para usuários do VS Code, especialmente aqueles que usam GitHub Copilot ou outras extensões compatíveis com MCP, o comando cria uma configuração `.vscode/mcp.json`.
|
|
46
|
+
|
|
47
|
+
### 3. OpenCode
|
|
48
|
+
|
|
49
|
+
OpenCode é um agente CLI interativo projetado para tarefas de engenharia de software. Intlayer fornece habilidades específicas para ajudar o OpenCode a auxiliá-lo em tarefas de internacionalização.
|
|
50
|
+
|
|
51
|
+
### 4. Claude Code
|
|
52
|
+
|
|
53
|
+
O Claude Code pode ser configurado para usar as habilidades do Intlayer adicionando as configurações geradas às suas configurações de desktop ou CLI.
|
|
@@ -86,6 +86,7 @@ npx intlayer doc translate
|
|
|
86
86
|
- **`--temperature [temperature]`**: Configuração de temperatura para o modelo de IA.
|
|
87
87
|
- **`--api-key [apiKey]`**: Forneça sua própria chave de API para o serviço de IA.
|
|
88
88
|
- **`--application-context [applicationContext]`**: Forneça contexto adicional para a tradução de IA.
|
|
89
|
+
- **`--data-serialization [dataSerialization]`**: O formato de serialização de dados a ser usado nas funcionalidades de IA do Intlayer. Opções: `json` (padrão, confiável), `toon` (menos tokens, menos consistente).
|
|
89
90
|
- **`--custom-prompt [prompt]`**: Personalize o prompt base usado para tradução. (Nota: Para a maioria dos casos de uso, a opção `--custom-instructions` é recomendada, pois oferece melhor controle sobre o comportamento da tradução.)
|
|
90
91
|
|
|
91
92
|
> Exemplo: `npx intlayer doc translate --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Minha aplicação é uma loja de gatos"`
|
package/docs/pt/cli/fill.md
CHANGED
|
@@ -126,6 +126,7 @@ Affected dictionary keys for processing: app, comp-test, hello-world, lang-switc
|
|
|
126
126
|
- **`--api-key [apiKey]`**: Forneça sua própria chave de API para o serviço de IA.
|
|
127
127
|
- **`--custom-prompt [prompt]`**: Forneça um prompt personalizado para suas instruções de tradução.
|
|
128
128
|
- **`--application-context [applicationContext]`**: Forneça contexto adicional para a tradução pela IA.
|
|
129
|
+
- **`--data-serialization [dataSerialization]`**: O formato de serialização de dados a ser usado nas funcionalidades de IA do Intlayer. Opções: `json` (padrão, confiável), `toon` (menos tokens, menos consistente).
|
|
129
130
|
|
|
130
131
|
> Exemplo: `npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "Minha aplicação é uma loja de gatos"`
|
|
131
132
|
|
package/docs/pt/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.0.4
|
|
18
|
+
date: 2026-02-06
|
|
19
|
+
changes: Adicionar `dataSerialization` à configuração de IA
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-22
|
|
19
22
|
changes: Move `importMode` build configuration to `dictionary` configuration.
|
|
@@ -892,6 +895,13 @@ O Intlayer suporta múltiplos provedores de IA para maior flexibilidade e escolh
|
|
|
892
895
|
- _Exemplo_: `'https://api.openai.com/v1'`
|
|
893
896
|
- _Nota_: Pode ser usado para apontar para um endpoint de API de IA local ou personalizado.
|
|
894
897
|
|
|
898
|
+
- **dataSerialization**:
|
|
899
|
+
- _Tipo_: `'json' | 'toon'`
|
|
900
|
+
- _Padrão_: `'json'`
|
|
901
|
+
- _Descrição_: O formato de serialización de dados a ser usado nas funcionalidades de IA do Intlayer.
|
|
902
|
+
- _Exemplo_: `'toon'`
|
|
903
|
+
- _Nota_: `json`: Padrão, confiável; usa mais tokens. `toon`: Menos tokens, menos consistente que o JSON.
|
|
904
|
+
|
|
895
905
|
### Configuração de Build
|
|
896
906
|
|
|
897
907
|
Configurações que controlam como o Intlayer otimiza e constrói a internacionalização da sua aplicação.
|