@intlayer/docs 7.5.9 → 7.5.11
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 +9 -2
- package/dist/cjs/generated/docs.entry.cjs +57 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +57 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/ci.md +137 -0
- package/docs/ar/cli/index.md +7 -1
- package/docs/ar/cli/list.md +39 -2
- package/docs/ar/cli/list_projects.md +131 -0
- package/docs/ar/cli/push.md +1 -1
- package/docs/ar/configuration.md +3 -3
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/ar/intlayer_CMS.md +25 -5
- package/docs/ar/intlayer_with_express.md +1 -0
- package/docs/ar/intlayer_with_fastify.md +516 -0
- package/docs/ar/readme.md +1 -1
- package/docs/de/cli/ci.md +137 -0
- package/docs/de/cli/index.md +7 -1
- package/docs/de/cli/list.md +39 -2
- package/docs/de/cli/list_projects.md +130 -0
- package/docs/de/cli/push.md +1 -1
- package/docs/de/configuration.md +3 -3
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/de/intlayer_CMS.md +25 -5
- package/docs/de/intlayer_with_express.md +1 -0
- package/docs/de/intlayer_with_fastify.md +449 -0
- package/docs/de/readme.md +1 -1
- package/docs/en/cli/ci.md +137 -0
- package/docs/en/cli/index.md +14 -1
- package/docs/en/cli/list.md +39 -2
- package/docs/en/cli/list_projects.md +128 -0
- package/docs/en/cli/push.md +1 -1
- package/docs/en/configuration.md +3 -3
- package/docs/en/interest_of_intlayer.md +2 -2
- package/docs/en/intlayer_CMS.md +25 -5
- package/docs/en/intlayer_with_express.md +1 -0
- package/docs/en/intlayer_with_fastify.md +439 -0
- package/docs/en/readme.md +3 -1
- package/docs/en-GB/cli/ci.md +137 -0
- package/docs/en-GB/cli/index.md +7 -1
- package/docs/en-GB/cli/list.md +39 -2
- package/docs/en-GB/cli/list_projects.md +130 -0
- package/docs/en-GB/cli/push.md +1 -1
- package/docs/en-GB/configuration.md +3 -3
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_CMS.md +25 -5
- package/docs/en-GB/intlayer_with_express.md +1 -0
- package/docs/en-GB/intlayer_with_fastify.md +445 -0
- package/docs/en-GB/readme.md +3 -1
- package/docs/es/cli/ci.md +137 -0
- package/docs/es/cli/index.md +7 -1
- package/docs/es/cli/list.md +39 -2
- package/docs/es/cli/list_projects.md +130 -0
- package/docs/es/cli/push.md +1 -1
- package/docs/es/configuration.md +3 -3
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/es/intlayer_CMS.md +25 -5
- package/docs/es/intlayer_with_express.md +1 -0
- package/docs/es/intlayer_with_fastify.md +480 -0
- package/docs/es/readme.md +1 -1
- package/docs/fr/cli/ci.md +137 -0
- package/docs/fr/cli/index.md +7 -1
- package/docs/fr/cli/list.md +39 -2
- package/docs/fr/cli/list_projects.md +131 -0
- package/docs/fr/cli/push.md +1 -1
- package/docs/fr/configuration.md +3 -3
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/fr/intlayer_CMS.md +25 -5
- package/docs/fr/intlayer_with_express.md +1 -0
- package/docs/fr/intlayer_with_fastify.md +439 -0
- package/docs/fr/readme.md +1 -1
- package/docs/hi/cli/ci.md +137 -0
- package/docs/hi/cli/index.md +7 -1
- package/docs/hi/cli/list.md +38 -1
- package/docs/hi/cli/list_projects.md +130 -0
- package/docs/hi/cli/push.md +1 -1
- package/docs/hi/configuration.md +3 -3
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/hi/intlayer_CMS.md +25 -5
- package/docs/hi/intlayer_with_express.md +1 -0
- package/docs/hi/intlayer_with_fastify.md +540 -0
- package/docs/hi/readme.md +1 -1
- package/docs/id/cli/ci.md +137 -0
- package/docs/id/cli/index.md +7 -1
- package/docs/id/cli/list.md +38 -1
- package/docs/id/cli/list_projects.md +128 -0
- package/docs/id/cli/push.md +1 -1
- package/docs/id/configuration.md +3 -3
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_CMS.md +25 -5
- package/docs/id/intlayer_with_express.md +1 -0
- package/docs/id/intlayer_with_fastify.md +470 -0
- package/docs/id/readme.md +1 -1
- package/docs/it/cli/ci.md +137 -0
- package/docs/it/cli/index.md +7 -1
- package/docs/it/cli/list.md +39 -2
- package/docs/it/cli/list_projects.md +130 -0
- package/docs/it/cli/push.md +1 -1
- package/docs/it/configuration.md +3 -3
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/it/intlayer_CMS.md +25 -5
- package/docs/it/intlayer_with_express.md +1 -0
- package/docs/it/intlayer_with_fastify.md +445 -0
- package/docs/it/readme.md +1 -1
- package/docs/ja/cli/ci.md +137 -0
- package/docs/ja/cli/index.md +7 -1
- package/docs/ja/cli/list.md +38 -1
- package/docs/ja/cli/list_projects.md +136 -0
- package/docs/ja/cli/push.md +1 -1
- package/docs/ja/configuration.md +3 -3
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ja/intlayer_CMS.md +25 -5
- package/docs/ja/intlayer_with_express.md +1 -0
- package/docs/ja/intlayer_with_fastify.md +516 -0
- package/docs/ja/readme.md +1 -1
- package/docs/ko/cli/ci.md +137 -0
- package/docs/ko/cli/index.md +7 -1
- package/docs/ko/cli/list.md +38 -1
- package/docs/ko/cli/list_projects.md +128 -0
- package/docs/ko/cli/push.md +1 -1
- package/docs/ko/configuration.md +3 -3
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/ko/intlayer_CMS.md +25 -5
- package/docs/ko/intlayer_with_express.md +1 -0
- package/docs/ko/intlayer_with_fastify.md +463 -0
- package/docs/ko/readme.md +1 -1
- package/docs/pl/cli/ci.md +137 -0
- package/docs/pl/cli/index.md +7 -1
- package/docs/pl/cli/list.md +39 -2
- package/docs/pl/cli/list_projects.md +130 -0
- package/docs/pl/cli/push.md +1 -1
- package/docs/pl/configuration.md +3 -3
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_CMS.md +25 -5
- package/docs/pl/intlayer_with_express.md +1 -0
- package/docs/pl/intlayer_with_fastify.md +457 -0
- package/docs/pl/readme.md +1 -1
- package/docs/pt/cli/ci.md +137 -0
- package/docs/pt/cli/index.md +7 -1
- package/docs/pt/cli/list.md +39 -2
- package/docs/pt/cli/list_projects.md +134 -0
- package/docs/pt/cli/push.md +1 -1
- package/docs/pt/configuration.md +3 -3
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/pt/intlayer_CMS.md +25 -5
- package/docs/pt/intlayer_with_express.md +1 -0
- package/docs/pt/intlayer_with_fastify.md +502 -0
- package/docs/pt/readme.md +1 -1
- package/docs/ru/cli/ci.md +137 -0
- package/docs/ru/cli/index.md +7 -1
- package/docs/ru/cli/list.md +39 -2
- package/docs/ru/cli/list_projects.md +130 -0
- package/docs/ru/cli/push.md +1 -1
- package/docs/ru/configuration.md +3 -3
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/ru/intlayer_CMS.md +25 -5
- package/docs/ru/intlayer_with_express.md +1 -0
- package/docs/ru/intlayer_with_fastify.md +468 -0
- package/docs/ru/readme.md +1 -1
- package/docs/tr/cli/ci.md +137 -0
- package/docs/tr/cli/index.md +7 -1
- package/docs/tr/cli/list.md +39 -2
- package/docs/tr/cli/list_projects.md +134 -0
- package/docs/tr/cli/push.md +1 -1
- package/docs/tr/configuration.md +3 -3
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_CMS.md +25 -5
- package/docs/tr/intlayer_with_express.md +1 -0
- package/docs/tr/intlayer_with_fastify.md +471 -0
- package/docs/tr/readme.md +1 -1
- package/docs/vi/cli/ci.md +137 -0
- package/docs/vi/cli/index.md +7 -1
- package/docs/vi/cli/list.md +38 -1
- package/docs/vi/cli/list_projects.md +130 -0
- package/docs/vi/cli/push.md +1 -1
- package/docs/vi/configuration.md +3 -3
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_CMS.md +25 -5
- package/docs/vi/intlayer_with_express.md +1 -0
- package/docs/vi/intlayer_with_fastify.md +490 -0
- package/docs/vi/readme.md +1 -1
- package/docs/zh/cli/ci.md +137 -0
- package/docs/zh/cli/index.md +7 -1
- package/docs/zh/cli/list.md +38 -1
- package/docs/zh/cli/list_projects.md +130 -0
- package/docs/zh/cli/push.md +1 -1
- package/docs/zh/configuration.md +3 -3
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh/intlayer_CMS.md +25 -5
- package/docs/zh/intlayer_with_express.md +1 -0
- package/docs/zh/intlayer_with_fastify.md +451 -0
- package/docs/zh/readme.md +1 -1
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +57 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Как перевести ваш Fastify backend — руководство по i18n 2026
|
|
5
|
+
description: Узнайте, как сделать ваш Fastify backend мультиязычным. Следуйте документации, чтобы интернационализировать (i18n) и перевести его.
|
|
6
|
+
keywords:
|
|
7
|
+
- Интернационализация
|
|
8
|
+
- Документация
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Fastify
|
|
11
|
+
- JavaScript
|
|
12
|
+
- Backend
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- fastify
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-fastify-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 7.6.0
|
|
20
|
+
date: 2025-12-31
|
|
21
|
+
changes: Добавлена команда init
|
|
22
|
+
- version: 7.6.0
|
|
23
|
+
date: 2025-12-31
|
|
24
|
+
changes: Инициализация истории
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Перевод вашего Fastify-бэкенда с помощью Intlayer | Интернационализация (i18n)
|
|
28
|
+
|
|
29
|
+
`fastify-intlayer` — это мощный плагин для интернационализации (i18n) для приложений на Fastify, разработанный, чтобы сделать ваши бэкенд-сервисы доступными глобально, предоставляя локализованные ответы в соответствии с предпочтениями клиента.
|
|
30
|
+
|
|
31
|
+
### Практические сценарии использования
|
|
32
|
+
|
|
33
|
+
- **Отображение ошибок бэкенда на языке пользователя**: Когда возникает ошибка, отображение сообщений на родном языке пользователя повышает понимание и снижает фрустрацию. Это особенно полезно для динамических сообщений об ошибках, которые могут отображаться во фронтенд-компонентах, таких как toast-уведомления или модальные окна.
|
|
34
|
+
- **Получение многоязычного контента**: Для приложений, которые извлекают контент из базы данных, интернационализация гарантирует, что вы сможете выдавать этот контент на нескольких языках. Это критично для платформ, таких как e-commerce-сайты или системы управления контентом (CMS), которым необходимо отображать описания товаров, статьи и другой контент на языке, предпочитаемом пользователем.
|
|
35
|
+
- **Отправка многоязычных писем**: Будь то транзакционные письма, маркетинговые кампании или уведомления, отправка писем на языке получателя может значительно повысить вовлечённость и эффективность.
|
|
36
|
+
- **Многоязычные push-уведомления**: Для мобильных приложений отправка push-уведомлений на предпочитаемом пользователем языке может повысить вовлеченность и удержание. Этот персонализированный подход делает уведомления более релевантными и побуждающими к действию.
|
|
37
|
+
- **Другие виды коммуникаций**: Любая форма коммуникации с backend, такая как SMS-сообщения, системные оповещения или обновления интерфейса, выигрывает от использования языка пользователя, обеспечивая ясность и улучшая общий пользовательский опыт.
|
|
38
|
+
|
|
39
|
+
Интернационализируя backend, ваше приложение не только уважает культурные различия, но и лучше соответствует потребностям глобального рынка, что делает это ключевым шагом при масштабировании ваших сервисов по всему миру.
|
|
40
|
+
|
|
41
|
+
## Начало работы
|
|
42
|
+
|
|
43
|
+
### Установка
|
|
44
|
+
|
|
45
|
+
Чтобы начать использовать `fastify-intlayer`, установите пакет с помощью npm:
|
|
46
|
+
|
|
47
|
+
```bash packageManager="npm"
|
|
48
|
+
npm install intlayer fastify-intlayer
|
|
49
|
+
npx intlayer init
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash packageManager="pnpm"
|
|
54
|
+
pnpm add intlayer fastify-intlayer
|
|
55
|
+
pnpm intlayer init
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```bash packageManager="yarn"
|
|
60
|
+
yarn add intlayer fastify-intlayer
|
|
61
|
+
yarn intlayer init
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```bash packageManager="bun"
|
|
66
|
+
bun add intlayer fastify-intlayer
|
|
67
|
+
bunx intlayer init
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Настройка
|
|
72
|
+
|
|
73
|
+
Настройте параметры интернационализации, создав файл `intlayer.config.ts` в корне вашего проекта:
|
|
74
|
+
|
|
75
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
76
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
77
|
+
|
|
78
|
+
const config: IntlayerConfig = {
|
|
79
|
+
internationalization: {
|
|
80
|
+
locales: [
|
|
81
|
+
Locales.ENGLISH,
|
|
82
|
+
Locales.FRENCH,
|
|
83
|
+
Locales.SPANISH_MEXICO,
|
|
84
|
+
Locales.SPANISH_SPAIN,
|
|
85
|
+
],
|
|
86
|
+
defaultLocale: Locales.ENGLISH,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export default config;
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
94
|
+
import { Locales } from "intlayer";
|
|
95
|
+
|
|
96
|
+
/** @type {import('intlayer').IntlayerConfig} */ // Тип конфигурации Intlayer
|
|
97
|
+
const config = {
|
|
98
|
+
internationalization: {
|
|
99
|
+
locales: [
|
|
100
|
+
Locales.ENGLISH,
|
|
101
|
+
Locales.FRENCH,
|
|
102
|
+
Locales.SPANISH_MEXICO,
|
|
103
|
+
Locales.SPANISH_SPAIN,
|
|
104
|
+
],
|
|
105
|
+
defaultLocale: Locales.ENGLISH,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export default config;
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
113
|
+
const { Locales } = require("intlayer");
|
|
114
|
+
|
|
115
|
+
/** @type {import('intlayer').IntlayerConfig} */ // Тип конфигурации Intlayer
|
|
116
|
+
const config = {
|
|
117
|
+
internationalization: {
|
|
118
|
+
locales: [
|
|
119
|
+
Locales.ENGLISH,
|
|
120
|
+
Locales.FRENCH,
|
|
121
|
+
Locales.SPANISH_MEXICO,
|
|
122
|
+
Locales.SPANISH_SPAIN,
|
|
123
|
+
],
|
|
124
|
+
defaultLocale: Locales.ENGLISH,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
module.exports = config;
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Объявление содержимого
|
|
132
|
+
|
|
133
|
+
Создавайте и управляйте объявлениями содержимого для хранения переводов:
|
|
134
|
+
|
|
135
|
+
```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
|
|
136
|
+
import { t, type Dictionary } from "intlayer";
|
|
137
|
+
|
|
138
|
+
const indexContent = {
|
|
139
|
+
key: "index",
|
|
140
|
+
content: {
|
|
141
|
+
exampleOfContent: t({
|
|
142
|
+
ru: "Пример возвращаемого содержимого на русском",
|
|
143
|
+
en: "Example of returned content in English",
|
|
144
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
145
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
146
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
147
|
+
}),
|
|
148
|
+
},
|
|
149
|
+
} satisfies Dictionary;
|
|
150
|
+
|
|
151
|
+
export default indexContent;
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
|
|
155
|
+
import { t } from "intlayer";
|
|
156
|
+
|
|
157
|
+
javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
|
|
158
|
+
import { t } from "intlayer";
|
|
159
|
+
|
|
160
|
+
/** @type {import('intlayer').Dictionary} */
|
|
161
|
+
const indexContent = {
|
|
162
|
+
key: "index",
|
|
163
|
+
content: {
|
|
164
|
+
exampleOfContent: t({
|
|
165
|
+
ru: "Пример возвращаемого содержимого на русском",
|
|
166
|
+
en: "Example of returned content in English",
|
|
167
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
168
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
169
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
170
|
+
}),
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export default indexContent;
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
```javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
178
|
+
const { t } = require("intlayer");
|
|
179
|
+
|
|
180
|
+
/** @type {import('intlayer').Dictionary} */
|
|
181
|
+
const indexContent = {
|
|
182
|
+
key: "index",
|
|
183
|
+
content: {
|
|
184
|
+
exampleOfContent: t({
|
|
185
|
+
ru: "Пример возвращаемого содержимого на русском",
|
|
186
|
+
en: "Example of returned content in English",
|
|
187
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
188
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
189
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
190
|
+
}),
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
module.exports = indexContent;
|
|
195
|
+
javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
196
|
+
const { t } = require("intlayer");
|
|
197
|
+
|
|
198
|
+
/** @type {import('intlayer').Dictionary} */
|
|
199
|
+
const indexContent = {
|
|
200
|
+
key: "index",
|
|
201
|
+
content: {
|
|
202
|
+
exampleOfContent: t({
|
|
203
|
+
ru: "Пример возвращаемого содержимого на русском",
|
|
204
|
+
en: "Example of returned content in English",
|
|
205
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
206
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
207
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
208
|
+
}),
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
module.exports = indexContent;
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
216
|
+
{
|
|
217
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
218
|
+
"key": "index",
|
|
219
|
+
"content": {
|
|
220
|
+
"exampleOfContent": {
|
|
221
|
+
"nodeType": "translation",
|
|
222
|
+
"translation": {
|
|
223
|
+
"ru": "Пример возвращаемого содержимого на русском",
|
|
224
|
+
"en": "Example of returned content in English",
|
|
225
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
226
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
227
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
> Ваши декларации содержимого могут быть определены в любом месте вашего приложения, при условии, что они находятся в директории `contentDir` (по умолчанию `./src`). И соответствуют расширению файла декларации содержимого (по умолчанию, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
235
|
+
|
|
236
|
+
> Для подробностей смотрите [документацию по декларации содержимого](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).
|
|
237
|
+
|
|
238
|
+
### Настройка приложения Fastify
|
|
239
|
+
|
|
240
|
+
Настройте ваше приложение Fastify для использования `fastify-intlayer`:
|
|
241
|
+
|
|
242
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
243
|
+
import Fastify from "fastify";
|
|
244
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
245
|
+
import dictionaryExample from "./index.content";
|
|
246
|
+
|
|
247
|
+
const fastify = Fastify({ logger: true }); // Инициализация Fastify с логированием
|
|
248
|
+
|
|
249
|
+
// Подключение плагина интернационализации
|
|
250
|
+
await fastify.register(intlayer);
|
|
251
|
+
|
|
252
|
+
// Маршруты
|
|
253
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
254
|
+
return t({
|
|
255
|
+
ru: "Пример возвращаемого контента на английском языке",
|
|
256
|
+
en: "Example of returned content in English",
|
|
257
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
258
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
259
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
264
|
+
return getIntlayer("index").exampleOfContent;
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
268
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
// Запуск сервера
|
|
272
|
+
const start = async () => {
|
|
273
|
+
try {
|
|
274
|
+
await fastify.listen({ port: 3000 });
|
|
275
|
+
} catch (err) {
|
|
276
|
+
fastify.log.error(err);
|
|
277
|
+
process.exit(1);
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
start();
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
285
|
+
import Fastify from "fastify";
|
|
286
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
287
|
+
import dictionaryExample from "./index.content";
|
|
288
|
+
|
|
289
|
+
const fastify = Fastify({ logger: true });
|
|
290
|
+
|
|
291
|
+
// Загрузка плагина интернационализации
|
|
292
|
+
await fastify.register(intlayer);
|
|
293
|
+
|
|
294
|
+
// Маршруты
|
|
295
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
296
|
+
return t({
|
|
297
|
+
en: "Example of returned content in English",
|
|
298
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
299
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
300
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
305
|
+
return getIntlayer("index").exampleOfContent;
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
309
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// Запуск сервера
|
|
313
|
+
const start = async () => {
|
|
314
|
+
try {
|
|
315
|
+
await fastify.listen({ port: 3000 });
|
|
316
|
+
} catch (err) {
|
|
317
|
+
fastify.log.error(err);
|
|
318
|
+
process.exit(1);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
start();
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
326
|
+
const Fastify = require("fastify");
|
|
327
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
328
|
+
const dictionaryExample = require("./index.content");
|
|
329
|
+
|
|
330
|
+
const fastify = Fastify({ logger: true });
|
|
331
|
+
|
|
332
|
+
// Обёртка для запуска сервера с async/await
|
|
333
|
+
const start = async () => {
|
|
334
|
+
try {
|
|
335
|
+
// Загрузка плагина интернационализации
|
|
336
|
+
await fastify.register(intlayer);
|
|
337
|
+
|
|
338
|
+
// Маршруты
|
|
339
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
340
|
+
return t({
|
|
341
|
+
ru: "Пример возвращаемого содержимого на русском языке",
|
|
342
|
+
en: "Example of returned content in English",
|
|
343
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
344
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
345
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
350
|
+
return getIntlayer("index").exampleOfContent;
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
354
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
await fastify.listen({ port: 3000 });
|
|
358
|
+
} catch (err) {
|
|
359
|
+
fastify.log.error(err);
|
|
360
|
+
process.exit(1);
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
start();
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### Совместимость
|
|
368
|
+
|
|
369
|
+
`fastify-intlayer` полностью совместим с:
|
|
370
|
+
|
|
371
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/index.md)>) для React-приложений
|
|
372
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/next-intlayer/index.md)>) для приложений Next.js
|
|
373
|
+
|
|
374
|
+
- [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/index.md) для приложений React
|
|
375
|
+
- [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/next-intlayer/index.md) для приложений Next.js
|
|
376
|
+
- [`vite-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/vite-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/vite-intlayer/index.md)>) для приложений на Vite
|
|
377
|
+
|
|
378
|
+
Он также бесшовно работает с любым решением для интернационализации в различных средах, включая браузеры и API-запросы. Вы можете настроить middleware для определения локали через заголовки или cookies:
|
|
379
|
+
|
|
380
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
381
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
382
|
+
|
|
383
|
+
const config: IntlayerConfig = {
|
|
384
|
+
// ... Другие параметры конфигурации
|
|
385
|
+
middleware: {
|
|
386
|
+
headerName: "my-locale-header",
|
|
387
|
+
cookieName: "my-locale-cookie",
|
|
388
|
+
},
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
export default config;
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
395
|
+
import { Locales } from "intlayer";
|
|
396
|
+
|
|
397
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
398
|
+
const config = {
|
|
399
|
+
// ... Другие параметры конфигурации
|
|
400
|
+
middleware: {
|
|
401
|
+
headerName: "my-locale-header",
|
|
402
|
+
cookieName: "my-locale-cookie",
|
|
403
|
+
},
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
export default config;
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
410
|
+
const { Locales } = require("intlayer");
|
|
411
|
+
|
|
412
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
413
|
+
const config = {
|
|
414
|
+
// ... Другие параметры конфигурации
|
|
415
|
+
middleware: {
|
|
416
|
+
headerName: "my-locale-header",
|
|
417
|
+
cookieName: "my-locale-cookie",
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
module.exports = config;
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
По умолчанию `fastify-intlayer` будет интерпретировать заголовок `Accept-Language`, чтобы определить предпочитаемый язык клиента.
|
|
425
|
+
|
|
426
|
+
> Для получения дополнительной информации о конфигурации и продвинутых темах посетите нашу [документацию](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
427
|
+
|
|
428
|
+
### Настройка TypeScript
|
|
429
|
+
|
|
430
|
+
`fastify-intlayer` использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript обеспечивает учёт каждого ключа перевода, снижая риск отсутствующих переводов и упрощая поддержку.
|
|
431
|
+
|
|
432
|
+
Убедитесь, что автогенерируемые типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш файл tsconfig.json.
|
|
433
|
+
|
|
434
|
+
```json5 fileName="tsconfig.json"
|
|
435
|
+
{
|
|
436
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
437
|
+
"include": [
|
|
438
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
439
|
+
".intlayer/**/*.ts", // Включить автогенерируемые типы
|
|
440
|
+
],
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Расширение для VS Code
|
|
445
|
+
|
|
446
|
+
Чтобы улучшить опыт разработки с Intlayer, вы можете установить официальное расширение **Intlayer VS Code Extension**.
|
|
447
|
+
|
|
448
|
+
[Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
449
|
+
|
|
450
|
+
Это расширение предоставляет:
|
|
451
|
+
|
|
452
|
+
- **Автодополнение** для ключей переводов.
|
|
453
|
+
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
454
|
+
- **Встроенные превью** переведённого содержимого.
|
|
455
|
+
- **Быстрые действия** для простого создания и обновления переводов.
|
|
456
|
+
|
|
457
|
+
Для получения дополнительных сведений о том, как использовать расширение, обратитесь к [документации Intlayer VS Code Extension](https://intlayer.org/doc/vs-code-extension).
|
|
458
|
+
|
|
459
|
+
### Настройка Git
|
|
460
|
+
|
|
461
|
+
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш Git-репозиторий.
|
|
462
|
+
|
|
463
|
+
Для этого вы можете добавить следующие строки в файл `.gitignore`:
|
|
464
|
+
|
|
465
|
+
```plaintext fileName=".gitignore"
|
|
466
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
467
|
+
.intlayer
|
|
468
|
+
```
|
package/docs/ru/readme.md
CHANGED
|
@@ -50,7 +50,7 @@ Intlayer — это **современное решение i18n** для веб
|
|
|
50
50
|
| Особенность | Описание |
|
|
51
51
|
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
52
|
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Поддержка нескольких фреймворков**<br><br>Intlayer совместим со всеми основными фреймворками и библиотеками, включая Next.js, React, Vite, Vue.js, Nuxt, Preact, Express и другие. |
|
|
53
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.
|
|
53
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Управление контентом на основе JavaScript**<br><br>Используйте гибкость JavaScript для эффективного определения и управления вашим контентом. <br><br> - [Объявление контента](https://intlayer.org/doc/concept/content) |
|
|
54
54
|
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Файл объявления контента для каждого языка**<br><br>Ускорьте разработку, объявляя ваш контент один раз до автоматической генерации.<br><br> - [Файл объявления контента для каждого языка](https://intlayer.org/doc/concept/per-locale-file) |
|
|
55
55
|
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Безопасная типизация среды**<br><br>Используйте TypeScript, чтобы гарантировать отсутствие ошибок в определениях контента и коде, а также получать автозаполнение в IDE.<br><br> - [Конфигурация TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
56
56
|
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Упрощённая настройка**<br><br>Быстрый старт с минимальной конфигурацией. Легко настраивайте параметры интернационализации, маршрутизации, ИИ, сборки и обработки контента.<br><br> - [Изучите интеграцию с Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-06
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
|
+
title: CI Komutu
|
|
5
|
+
description: CI/CD pipeline'ları ve monorepo'larda otomatik olarak enjekte edilen kimlik bilgileriyle Intlayer komutlarını çalıştırmak için Intlayer CI komutunu nasıl kullanacağınızı öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- CI
|
|
8
|
+
- CI/CD
|
|
9
|
+
- Otomasyon
|
|
10
|
+
- Monorepo
|
|
11
|
+
- Kimlik Bilgileri
|
|
12
|
+
- CLI
|
|
13
|
+
- Intlayer
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- cli
|
|
18
|
+
- ci
|
|
19
|
+
history:
|
|
20
|
+
- version: 7.5.11
|
|
21
|
+
date: 2026-01-06
|
|
22
|
+
changes: CI komutu ekle
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# CI Komutu
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx intlayer ci <command...>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
CI komutu otomasyon ve CI/CD pipeline'ları için tasarlanmıştır. `INTLAYER_PROJECT_CREDENTIALS` ortam değişkeninden kimlik bilgilerini otomatik olarak enjekte eder ve bir monorepo'daki birden fazla projede Intlayer komutlarını çalıştırabilir.
|
|
32
|
+
|
|
33
|
+
## Nasıl çalışır
|
|
34
|
+
|
|
35
|
+
CI komutu iki modda çalışır:
|
|
36
|
+
|
|
37
|
+
1. **Tek Proje Modu**: Mevcut çalışma dizini `INTLAYER_PROJECT_CREDENTIALS` içindeki proje yollarından biriyle eşleşiyorsa, komutu yalnızca o belirli proje için çalıştırır.
|
|
38
|
+
|
|
39
|
+
2. **Yineleme Modu**: Belirli bir proje bağlamı algılanmazsa, yapılandırılmış tüm projeler üzerinde yineler ve her biri için komutu çalıştırır.
|
|
40
|
+
|
|
41
|
+
## Ortam Değişkeni
|
|
42
|
+
|
|
43
|
+
Komut, `INTLAYER_PROJECT_CREDENTIALS` ortam değişkeninin ayarlanmış olmasını gerektirir. Bu değişken, proje yollarını kimlik bilgilerine eşleyen bir JSON nesnesi içermelidir:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"packages/app": {
|
|
48
|
+
"clientId": "your-client-id-1",
|
|
49
|
+
"clientSecret": "your-client-secret-1"
|
|
50
|
+
},
|
|
51
|
+
"packages/admin": {
|
|
52
|
+
"clientId": "your-client-id-2",
|
|
53
|
+
"clientSecret": "your-client-secret-2"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Paket Yöneticisi Algılama
|
|
59
|
+
|
|
60
|
+
CI komutu, `npm_config_user_agent` ortam değişkenine dayalı olarak hangi paket yöneticisinin kullanıldığını (npm, yarn, pnpm veya bun) otomatik olarak algılar ve Intlayer'ı çalıştırmak için uygun komutu kullanır.
|
|
61
|
+
|
|
62
|
+
## Argümanlar
|
|
63
|
+
|
|
64
|
+
- **`<command...>`**: Çalıştırılacak Intlayer komutu (örneğin, `fill`, `push`, `build`). Herhangi bir Intlayer komutunu ve argümanlarını iletebilirsiniz.
|
|
65
|
+
|
|
66
|
+
> Örnek: `npx intlayer ci fill --verbose`
|
|
67
|
+
>
|
|
68
|
+
> Örnek: `npx intlayer ci push`
|
|
69
|
+
>
|
|
70
|
+
> Örnek: `npx intlayer ci build`
|
|
71
|
+
|
|
72
|
+
## Örnekler
|
|
73
|
+
|
|
74
|
+
### Tek proje modunda komut çalıştırma
|
|
75
|
+
|
|
76
|
+
`INTLAYER_PROJECT_CREDENTIALS` içindeki yollardan biriyle eşleşen bir proje dizinindeyken:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
cd packages/app
|
|
80
|
+
npx intlayer ci fill
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Bu, `packages/app` projesi için kimlik bilgileri otomatik olarak enjekte edilerek `fill` komutunu çalıştıracaktır.
|
|
84
|
+
|
|
85
|
+
### Tüm projelerde komut çalıştırma
|
|
86
|
+
|
|
87
|
+
Herhangi bir proje yoluyla eşleşmeyen bir dizindeyken, komut yapılandırılmış tüm projeler üzerinde yineleyecektir:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
cd /path/to/monorepo
|
|
91
|
+
npx intlayer ci push
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Bu, `INTLAYER_PROJECT_CREDENTIALS` içinde yapılandırılmış her proje için `push` komutunu çalıştıracaktır.
|
|
95
|
+
|
|
96
|
+
### Ek bayraklar iletme
|
|
97
|
+
|
|
98
|
+
Temel Intlayer komutuna herhangi bir bayrak iletebilirsiniz:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx intlayer ci fill --verbose --mode complete
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### CI/CD pipeline'larında kullanma
|
|
105
|
+
|
|
106
|
+
CI/CD yapılandırmanızda (örneğin, GitHub Actions, GitLab CI), `INTLAYER_PROJECT_CREDENTIALS`'i bir sır olarak ayarlayın:
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
# GitHub Actions örneği
|
|
110
|
+
env:
|
|
111
|
+
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
112
|
+
|
|
113
|
+
steps:
|
|
114
|
+
- name: Sözlükleri doldur
|
|
115
|
+
run: npx intlayer ci fill
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Hata İşleme
|
|
119
|
+
|
|
120
|
+
- `INTLAYER_PROJECT_CREDENTIALS` ayarlanmamışsa, komut bir hata ile çıkacaktır.
|
|
121
|
+
- `INTLAYER_PROJECT_CREDENTIALS` geçerli bir JSON değilse, komut bir hata ile çıkacaktır.
|
|
122
|
+
- Bir proje yolu mevcut değilse, bir uyarı ile atlanacaktır.
|
|
123
|
+
- Herhangi bir proje başarısız olursa, komut sıfır olmayan bir durum kodu ile çıkacaktır.
|
|
124
|
+
|
|
125
|
+
## Kullanım Durumları
|
|
126
|
+
|
|
127
|
+
- **Monorepo otomasyonu**: Bir monorepo'daki birden fazla projede Intlayer komutlarını çalıştırma
|
|
128
|
+
- **CI/CD pipeline'ları**: Sürekli entegrasyon iş akışlarında sözlük yönetimini otomatikleştirme
|
|
129
|
+
- **Toplu işlemler**: Birden fazla Intlayer projesinde aynı işlemi aynı anda gerçekleştirme
|
|
130
|
+
- **Gizli yönetimi**: Ortam değişkenlerini kullanarak birden fazla proje için kimlik bilgilerini güvenli bir şekilde yönetme
|
|
131
|
+
|
|
132
|
+
## Güvenlik En İyi Uygulamaları
|
|
133
|
+
|
|
134
|
+
- `INTLAYER_PROJECT_CREDENTIALS`'i CI/CD platformunuzda şifrelenmiş sırlar olarak saklayın
|
|
135
|
+
- Kimlik bilgilerini asla sürüm kontrolüne commit etmeyin
|
|
136
|
+
- Farklı dağıtım ortamları için ortama özel kimlik bilgileri kullanın
|
|
137
|
+
- Kimlik bilgilerini düzenli olarak döndürün
|
package/docs/tr/cli/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
4
|
title: CLI
|
|
5
5
|
description: Çok dilli web sitenizi yönetmek için Intlayer CLI'nın nasıl kullanılacağını keşfedin. Projenizi birkaç dakika içinde kurmak için bu çevrimiçi dokümantördeki adımları izleyin.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- concept
|
|
18
18
|
- cli
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.11
|
|
21
|
+
date: 2026-01-06
|
|
22
|
+
changes: projects list komutu eklendi
|
|
20
23
|
- version: 7.5.9
|
|
21
24
|
date: 2025-12-30
|
|
22
25
|
changes: init komutu eklendi
|
|
@@ -119,6 +122,7 @@ Mevcut yerellerin veya diğer parametrelerin nasıl yapılandırılacağını g
|
|
|
119
122
|
- **[Sözlükleri Derle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/build.md)** - İçerik beyan dosyalarından sözlüklerinizi derleyin
|
|
120
123
|
- **[Sözlükleri İzle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/watch.md)** - Değişiklikleri izleyin ve sözlükleri otomatik olarak derleyin
|
|
121
124
|
- **[CLI Sürümünü Kontrol Et](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/version.md)** - Yüklü Intlayer CLI sürümünü kontrol edin
|
|
125
|
+
- **[Projeleri Listele](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/list_projects.md)** - Bir dizindeki veya git deposundaki tüm Intlayer projelerini listeleyin
|
|
122
126
|
|
|
123
127
|
### Sözlük Yönetimi
|
|
124
128
|
|
|
@@ -166,6 +170,7 @@ Mevcut yerellerin veya diğer parametrelerin nasıl yapılandırılacağını g
|
|
|
166
170
|
"intlayer:list": "npx intlayer content list",
|
|
167
171
|
"intlayer:test": "npx intlayer content test",
|
|
168
172
|
"intlayer:transform": "npx intlayer transform",
|
|
173
|
+
"intlayer:projects": "npx intlayer projects list",
|
|
169
174
|
"intlayer:doc:translate": "npx intlayer doc translate",
|
|
170
175
|
"intlayer:doc:review": "npx intlayer doc review"
|
|
171
176
|
}
|
|
@@ -175,3 +180,4 @@ Mevcut yerellerin veya diğer parametrelerin nasıl yapılandırılacağını g
|
|
|
175
180
|
>
|
|
176
181
|
> - `npx intlayer list` yerine `npx intlayer content list`
|
|
177
182
|
> - `npx intlayer test` yerine `npx intlayer content test`
|
|
183
|
+
> - `npx intlayer projects-list` veya `npx intlayer pl` yerine `npx intlayer projects list`
|