@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,365 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-04-18
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Analog i18n - Як перекласти ваш додаток Analog – посібник 2026
|
|
5
|
+
description: Дізнайтеся, як зробити свій додаток Analog багатомовним. Дотримуйтесь документації для інтернаціоналізації (i18n) та перекладу.
|
|
6
|
+
keywords:
|
|
7
|
+
- Інтернаціоналізація
|
|
8
|
+
- Документація
|
|
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: Ініціалізація історії
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Перекладіть свій додаток Analog (Angular) за допомогою Intlayer | Інтернаціоналізація (i18n)
|
|
25
|
+
|
|
26
|
+
## Зміст
|
|
27
|
+
|
|
28
|
+
<TOC/>
|
|
29
|
+
|
|
30
|
+
## Що таке Intlayer?
|
|
31
|
+
|
|
32
|
+
**Intlayer** — це інноваційна бібліотека інтернаціоналізації (i18n) з відкритим вихідним кодом, розроблена для спрощення багатомовної підтримки в сучасних веб-додатках.
|
|
33
|
+
|
|
34
|
+
З Intlayer ви можете:
|
|
35
|
+
|
|
36
|
+
- **Легко керувати перекладами** за допомогою декларативних словників на рівні компонентів.
|
|
37
|
+
- **Динамічно локалізувати метадані**, маршрути та вміст.
|
|
38
|
+
- **Забезпечити підтримку TypeScript** за допомогою автогенерованих типів, що покращує автодоповнення та виявлення помилок.
|
|
39
|
+
- **Скористатися розширеними функціями**, такими як динамічне визначення та перемикання мови.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Покроковий посібник з налаштування Intlayer у додатку Analog
|
|
44
|
+
|
|
45
|
+
<Tabs defaultTab="code">
|
|
46
|
+
<Tab label="Код" 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="Демо CodeSandbox - Як інтернаціоналізувати ваш додаток за допомогою 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
|
+
Дивіться [Шаблон додатка](https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template) на GitHub.
|
|
60
|
+
|
|
61
|
+
### Крок 1: Встановлення залежностей
|
|
62
|
+
|
|
63
|
+
Встановіть необхідні пакети за допомогою 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
|
+
Основний пакет, який надає інструменти інтернаціоналізації для керування конфігурацією, перекладу, [декларування вмісту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md), транспайляції та [команд CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
|
|
88
|
+
|
|
89
|
+
- **angular-intlayer**
|
|
90
|
+
Пакет, який інтегрує Intlayer з додатком Angular. Він надає провайдери контексту та хуки для інтернаціоналізації Angular.
|
|
91
|
+
|
|
92
|
+
- **vite-intlayer**
|
|
93
|
+
Пакет, який інтегрує Intlayer з Vite. Він надає плагін для обробки файлів декларації вмісту та налаштовує аліаси для оптимальної продуктивності.
|
|
94
|
+
|
|
95
|
+
### Крок 2: Конфігурація вашого проекту
|
|
96
|
+
|
|
97
|
+
Створіть файл конфігурації для налаштування мов вашого додатка:
|
|
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
|
+
// Ваші інші мови
|
|
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
|
+
// Ваші інші мови
|
|
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
|
+
// Ваші інші мови
|
|
147
|
+
],
|
|
148
|
+
defaultLocale: Locales.ENGLISH,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
module.exports = config;
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> Через цей файл конфігурації ви можете налаштувати локалізовані URL-адреси, перенаправлення через middleware, назви кукі, розташування та розширення ваших декларацій вмісту, вимкнути логи Intlayer у консолі та багато іншого. Повний список доступних параметрів дивіться у [документації з конфігурації](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md).
|
|
156
|
+
|
|
157
|
+
### Крок 3: Інтеграція Intlayer у вашу конфігурацію Vite
|
|
158
|
+
|
|
159
|
+
Щоб інтегрувати Intlayer з Analog, вам потрібно використовувати плагін `vite-intlayer`.
|
|
160
|
+
|
|
161
|
+
Змініть ваш файл `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(), // Додайте плагін Intlayer
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> Плагін `intlayer()` налаштовує Vite для роботи з Intlayer. Він обробляє файли декларації вмісту та налаштовує аліаси для оптимальної продуктивності.
|
|
178
|
+
|
|
179
|
+
### Крок 4: Декларування вашого вмісту
|
|
180
|
+
|
|
181
|
+
Створюйте та керуйте своїми деклараціями вмісту для зберігання перекладів:
|
|
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
|
+
uk: "Привіт",
|
|
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
|
+
uk: "Вітаємо! Ваш додаток працює. 🎉",
|
|
200
|
+
}),
|
|
201
|
+
},
|
|
202
|
+
} satisfies Dictionary;
|
|
203
|
+
|
|
204
|
+
export default appContent;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
> Ваші декларації вмісту можуть бути визначені будь-де у вашому додатку, якщо вони включені до директорії `contentDir` (за замовчуванням `./src`) і відповідають розширенню файлів декларації вмісту (за замовчуванням `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
|
|
208
|
+
|
|
209
|
+
> Докладнішу інформацію дивіться у [документації з декларації вмісту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
|
|
210
|
+
|
|
211
|
+
### Крок 5: Використання Intlayer у вашому коді
|
|
212
|
+
|
|
213
|
+
Щоб використовувати функції інтернаціоналізації Intlayer у вашому додатку Analog, вам потрібно надати Intlayer у конфігурації вашого додатка.
|
|
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(), // Додайте провайдер Intlayer сюди
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Потім ви можете використовувати функцію `useIntlayer` у будь-якому компоненті.
|
|
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
|
+
Вміст Intlayer повертається як `Signal`, тому ви отримуєте доступ до значень, викликаючи сигнал: `content().title`.
|
|
248
|
+
|
|
249
|
+
### (Опціонально) Крок 6: Зміна мови вашого вмісту
|
|
250
|
+
|
|
251
|
+
Щоб змінити мову вашого вмісту, ви можете використовувати функцію `setLocale`, яку надає функція `useLocale`. Це дозволяє вам встановлювати локаль додатка та відповідним чином оновлювати вміст.
|
|
252
|
+
|
|
253
|
+
Створіть компонент для перемикання мов:
|
|
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
|
+
Потім використовуйте цей компонент на ваших сторінках:
|
|
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
|
+
### Налаштування TypeScript
|
|
322
|
+
|
|
323
|
+
Intlayer використовує розширення модулів (module augmentation), щоб скористатися перевагами TypeScript і зробити вашу кодову базу надійнішою.
|
|
324
|
+
|
|
325
|
+

|
|
326
|
+
|
|
327
|
+

|
|
328
|
+
|
|
329
|
+
Переконайтеся, що ваша конфігурація TypeScript включає автогенеровані типи.
|
|
330
|
+
|
|
331
|
+
```json5 fileName="tsconfig.json"
|
|
332
|
+
{
|
|
333
|
+
// ... Ваші існуючі конфігурації TypeScript
|
|
334
|
+
"include": [
|
|
335
|
+
// ... Ваші існуючі конфігурації TypeScript
|
|
336
|
+
".intlayer/**/*.ts", // Включіть автогенеровані типи
|
|
337
|
+
],
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Конфігурація Git
|
|
342
|
+
|
|
343
|
+
Рекомендується ігнорувати файли, створені Intlayer. Це дозволяє уникнути їхнього коміту у ваш репозиторій Git.
|
|
344
|
+
|
|
345
|
+
Для цього ви можете додати наступні інструкції до вашого файлу `.gitignore`:
|
|
346
|
+
|
|
347
|
+
```plaintext
|
|
348
|
+
# Ігнорувати файли, створені Intlayer
|
|
349
|
+
.intlayer
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Розширення VS Code
|
|
353
|
+
|
|
354
|
+
Щоб покращити ваш досвід розробки з Intlayer, ви можете встановити офіційне **розширення Intlayer для VS Code**.
|
|
355
|
+
|
|
356
|
+
[Встановити з VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
357
|
+
|
|
358
|
+
Це розширення надає:
|
|
359
|
+
|
|
360
|
+
- **Автодоповнення** для ключів перекладу.
|
|
361
|
+
- **Виявлення помилок у реальному часі** для відсутніх перекладів.
|
|
362
|
+
- **Вбудований попередній перегляд** перекладеного вмісту.
|
|
363
|
+
- **Швидкі дії** для легкого створення та оновлення перекладів.
|
|
364
|
+
|
|
365
|
+
Докладнішу інформацію про використання розширення дивіться в [документації розширення Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
@@ -166,30 +166,28 @@ module.exports = config;
|
|
|
166
166
|
|
|
167
167
|
Спочатку змініть ваш `angular.json`, щоб використовувати спеціальний білдер Webpack. Оновіть конфігурації `build` та `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
|
|
package/docs/vi/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.0.5
|
|
18
|
+
date: 2026-02-06
|
|
19
|
+
changes: Thêm `dataSerialization` vào cấu hình AI
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-22
|
|
19
22
|
changes: Move `importMode` build configuration to `dictionary` configuration.
|
|
@@ -990,6 +993,13 @@ Intlayer hỗ trợ nhiều nhà cung cấp AI để tăng tính linh hoạt và
|
|
|
990
993
|
- _Ví dụ_: `'https://api.openai.com/v1'`
|
|
991
994
|
- _Lưu ý_: Có thể được sử dụng để trỏ đến một điểm cuối API AI cục bộ hoặc tùy chỉnh.
|
|
992
995
|
|
|
996
|
+
- **dataSerialization**:
|
|
997
|
+
- _Loại_: `'json' | 'toon'`
|
|
998
|
+
- _Mặc định_: `'json'`
|
|
999
|
+
- _Mô tả_: Định dạng tuần tự hóa dữ liệu được sử dụng cho các tính năng AI của Intlayer.
|
|
1000
|
+
- _Ví dụ_: `'toon'`
|
|
1001
|
+
- _Ghi chú_: `json`: Tiêu chuẩn, đáng tin cậy; sử dụng nhiều token hơn. `toon`: Ít token hơn, kém nhất quán hơn JSON.
|
|
1002
|
+
|
|
993
1003
|
### Cấu hình Build
|
|
994
1004
|
|
|
995
1005
|
Các thiết lập kiểm soát cách Intlayer tối ưu hóa và xây dựng tính quốc tế hóa của ứng dụng bạn.
|