@intlayer/docs 7.0.4-canary.0 → 7.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.
Files changed (107) hide show
  1. package/blog/ar/intlayer_with_i18next.md +68 -106
  2. package/blog/ar/intlayer_with_next-i18next.md +84 -288
  3. package/blog/ar/intlayer_with_next-intl.md +58 -337
  4. package/blog/ar/intlayer_with_react-i18next.md +68 -290
  5. package/blog/ar/intlayer_with_react-intl.md +63 -266
  6. package/blog/de/intlayer_with_i18next.md +77 -97
  7. package/blog/de/intlayer_with_next-i18next.md +69 -296
  8. package/blog/de/intlayer_with_next-intl.md +59 -340
  9. package/blog/de/intlayer_with_react-i18next.md +68 -290
  10. package/blog/de/intlayer_with_react-intl.md +62 -264
  11. package/blog/en/intlayer_with_i18next.md +36 -1638
  12. package/blog/en/intlayer_with_next-i18next.md +22 -847
  13. package/blog/en/intlayer_with_next-intl.md +32 -1053
  14. package/blog/en/intlayer_with_react-i18next.md +38 -764
  15. package/blog/en/intlayer_with_react-intl.md +42 -1018
  16. package/blog/en-GB/intlayer_with_i18next.md +67 -103
  17. package/blog/en-GB/intlayer_with_next-i18next.md +71 -292
  18. package/blog/en-GB/intlayer_with_next-intl.md +58 -337
  19. package/blog/en-GB/intlayer_with_react-i18next.md +67 -289
  20. package/blog/en-GB/intlayer_with_react-intl.md +61 -264
  21. package/blog/es/intlayer_with_i18next.md +67 -103
  22. package/blog/es/intlayer_with_next-i18next.md +71 -296
  23. package/blog/es/intlayer_with_next-intl.md +57 -338
  24. package/blog/es/intlayer_with_react-i18next.md +68 -290
  25. package/blog/es/intlayer_with_react-intl.md +62 -265
  26. package/blog/fr/intlayer_with_i18next.md +66 -104
  27. package/blog/fr/intlayer_with_next-i18next.md +82 -285
  28. package/blog/fr/intlayer_with_next-intl.md +57 -338
  29. package/blog/fr/intlayer_with_react-i18next.md +67 -289
  30. package/blog/fr/intlayer_with_react-intl.md +61 -264
  31. package/blog/hi/intlayer_with_i18next.md +68 -104
  32. package/blog/hi/intlayer_with_next-i18next.md +74 -299
  33. package/blog/hi/intlayer_with_next-intl.md +57 -239
  34. package/blog/hi/intlayer_with_react-i18next.md +69 -291
  35. package/blog/hi/intlayer_with_react-intl.md +65 -268
  36. package/blog/id/intlayer_with_i18next.md +126 -0
  37. package/blog/id/intlayer_with_next-i18next.md +142 -0
  38. package/blog/id/intlayer_with_next-intl.md +113 -0
  39. package/blog/id/intlayer_with_react-i18next.md +124 -0
  40. package/blog/id/intlayer_with_react-intl.md +122 -0
  41. package/blog/it/intlayer_with_i18next.md +67 -103
  42. package/blog/it/intlayer_with_next-i18next.md +71 -296
  43. package/blog/it/intlayer_with_next-intl.md +57 -338
  44. package/blog/it/intlayer_with_react-i18next.md +68 -290
  45. package/blog/it/intlayer_with_react-intl.md +62 -265
  46. package/blog/ja/intlayer_with_i18next.md +68 -103
  47. package/blog/ja/intlayer_with_next-i18next.md +85 -283
  48. package/blog/ja/intlayer_with_next-intl.md +58 -336
  49. package/blog/ja/intlayer_with_react-i18next.md +68 -290
  50. package/blog/ja/intlayer_with_react-intl.md +62 -264
  51. package/blog/ko/intlayer_with_i18next.md +80 -96
  52. package/blog/ko/intlayer_with_next-i18next.md +85 -287
  53. package/blog/ko/intlayer_with_next-intl.md +68 -327
  54. package/blog/ko/intlayer_with_react-i18next.md +68 -290
  55. package/blog/ko/intlayer_with_react-intl.md +64 -266
  56. package/blog/pl/intlayer_with_i18next.md +126 -0
  57. package/blog/pl/intlayer_with_next-i18next.md +142 -0
  58. package/blog/pl/intlayer_with_next-intl.md +111 -0
  59. package/blog/pl/intlayer_with_react-i18next.md +124 -0
  60. package/blog/pl/intlayer_with_react-intl.md +122 -0
  61. package/blog/pt/intlayer_with_i18next.md +67 -103
  62. package/blog/pt/intlayer_with_next-i18next.md +72 -293
  63. package/blog/pt/intlayer_with_next-intl.md +57 -256
  64. package/blog/pt/intlayer_with_react-i18next.md +104 -78
  65. package/blog/pt/intlayer_with_react-intl.md +62 -266
  66. package/blog/ru/intlayer_with_i18next.md +66 -104
  67. package/blog/ru/intlayer_with_next-i18next.md +71 -296
  68. package/blog/ru/intlayer_with_next-intl.md +58 -337
  69. package/blog/ru/intlayer_with_react-i18next.md +68 -290
  70. package/blog/ru/intlayer_with_react-intl.md +62 -265
  71. package/blog/tr/intlayer_with_i18next.md +71 -107
  72. package/blog/tr/intlayer_with_next-i18next.md +72 -297
  73. package/blog/tr/intlayer_with_next-intl.md +58 -339
  74. package/blog/tr/intlayer_with_react-i18next.md +69 -291
  75. package/blog/tr/intlayer_with_react-intl.md +63 -285
  76. package/blog/vi/intlayer_with_i18next.md +126 -0
  77. package/blog/vi/intlayer_with_next-i18next.md +142 -0
  78. package/blog/vi/intlayer_with_next-intl.md +111 -0
  79. package/blog/vi/intlayer_with_react-i18next.md +124 -0
  80. package/blog/vi/intlayer_with_react-intl.md +122 -0
  81. package/blog/zh/intlayer_with_i18next.md +67 -102
  82. package/blog/zh/intlayer_with_next-i18next.md +72 -296
  83. package/blog/zh/intlayer_with_next-intl.md +58 -336
  84. package/blog/zh/intlayer_with_react-i18next.md +68 -290
  85. package/blog/zh/intlayer_with_react-intl.md +63 -106
  86. package/docs/ar/plugins/sync-json.md +244 -0
  87. package/docs/de/plugins/sync-json.md +244 -0
  88. package/docs/en/intlayer_cli.md +25 -0
  89. package/docs/en/intlayer_with_nextjs_14.md +2 -0
  90. package/docs/en/intlayer_with_nextjs_15.md +2 -0
  91. package/docs/en/intlayer_with_nextjs_16.md +2 -0
  92. package/docs/en/plugins/sync-json.md +1 -1
  93. package/docs/en-GB/plugins/sync-json.md +244 -0
  94. package/docs/es/plugins/sync-json.md +244 -0
  95. package/docs/fr/plugins/sync-json.md +244 -0
  96. package/docs/hi/plugins/sync-json.md +244 -0
  97. package/docs/id/plugins/sync-json.md +244 -0
  98. package/docs/it/plugins/sync-json.md +244 -0
  99. package/docs/ja/plugins/sync-json.md +244 -0
  100. package/docs/ko/plugins/sync-json.md +244 -0
  101. package/docs/pl/plugins/sync-json.md +244 -0
  102. package/docs/pt/plugins/sync-json.md +244 -0
  103. package/docs/ru/plugins/sync-json.md +244 -0
  104. package/docs/tr/plugins/sync-json.md +245 -0
  105. package/docs/vi/plugins/sync-json.md +244 -0
  106. package/docs/zh/plugins/sync-json.md +244 -0
  107. package/package.json +14 -14
@@ -1,346 +1,124 @@
1
1
  ---
2
2
  createdAt: 2025-01-02
3
- updatedAt: 2025-06-29
4
- title: Intlayer и react-i18next
5
- description: Сравнить Intlayer с react-i18next для приложения React
3
+ updatedAt: 2025-10-29
4
+ title: Как автоматизировать ваши JSON-переводы react-i18next с помощью Intlayer
5
+ description: Автоматизируйте ваши JSON-переводы с помощью Intlayer и react-i18next для улучшенной интернационализации в React-приложениях.
6
6
  keywords:
7
7
  - react-i18next
8
8
  - i18next
9
9
  - Intlayer
10
10
  - Интернационализация
11
- - Документация
12
- - Next.js
13
- - JavaScript
11
+ - i18n
12
+ - Блог
14
13
  - React
14
+ - JavaScript
15
+ - TypeScript
16
+ - Управление контентом
15
17
  slugs:
16
18
  - blog
17
19
  - intlayer-with-react-i18next
20
+ history:
21
+ - version: 7.0.0
22
+ date: 2025-10-29
23
+ changes: Переход на плагин syncJSON
18
24
  ---
19
25
 
20
- # React Internationalization (i18n) с react-i18next и Intlayer
21
-
22
- ## Обзор
23
-
24
- - **Intlayer** помогает вам управлять переводами с помощью файлов декларации контента на **уровне компонентов**.
25
- - **react-i18next** - популярная интеграция React для **i18next**, которая предоставляет хуки, такие как `useTranslation`, для получения локализованных строк в ваших компонентах.
26
-
27
- Когда они объединены, Intlayer может **экспортировать** словари в **i18next-совместимый JSON**, чтобы react-i18next мог **потреблять** их во время выполнения.
28
-
29
- ## Зачем использовать Intlayer с react-i18next?
30
-
31
- Файлы декларации контента **Intlayer** предлагают лучший опыт разработчика, потому что они:
32
-
33
- 1. **Гибкие в размещении файлов**
34
- Поместите каждый файл декларации контента прямо рядом с компонентом, которому он нужен. Эта структура позволяет вам сохранять переводы в одном месте, предотвращая оставшихся от orphaned переводов, когда компоненты перемещаются или удаляются.
35
-
36
- ```bash codeFormat="typescript"
37
- .
38
- └── src
39
- └── components
40
- └── MyComponent
41
- ├── index.content.ts # Файл декларации контента
42
- └── index.tsx
43
- ```
44
-
45
- ```bash codeFormat="esm"
46
- .
47
- └── src
48
- └── components
49
- └── MyComponent
50
- ├── index.content.mjs # Файл декларации контента
51
- └── index.mjx
52
- ```
53
-
54
- ```bash codeFormat="cjs"
55
- .
56
- └── src
57
- └── components
58
- └── MyComponent
59
- ├── index.content.cjs # Файл декларации контента
60
- └── index.cjx
61
- ```
62
-
63
- ```bash codeFormat="json"
64
- .
65
- └── src
66
- └── components
67
- └── MyComponent
68
- ├── index.content.json # Файл декларации контента
69
- └── index.jsx
70
- ```
71
-
72
- 2. **Централизованные переводы**
73
- Один файл декларации контента собирает все необходимые переводы для компонента, облегчая обнаружение недостающих переводов.
74
- С TypeScript вы даже получите ошибки во время компиляции, если переводы отсутствуют.
75
-
76
- ## Установка
77
-
78
- В проекте Create React App установите эти зависимости:
79
-
80
- ```bash
81
- # С npm
82
- npm install intlayer react-i18next i18next i18next-resources-to-backend
83
- ```
26
+ # Как автоматизировать ваши JSON-переводы react-i18next с помощью Intlayer
84
27
 
85
- ```bash
86
- # С yarn
87
- yarn add intlayer react-i18next i18next i18next-resources-to-backend
88
- ```
28
+ ## Что такое Intlayer?
89
29
 
90
- ```bash
91
- # С pnpm
92
- pnpm add intlayer react-i18next i18next i18next-resources-to-backend
93
- ```
30
+ **Intlayer** — это инновационная, открытая библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в React-приложениях.
94
31
 
95
- ### Что это за пакеты?
32
+ Смотрите конкретное сравнение с react-i18next в нашем блоге [react-i18next vs. react-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md).
96
33
 
97
- - **intlayer** CLI и основная библиотека для управления конфигурациями i18n, декларациями контента и построением выходных словарей.
98
- - **react-intlayer** – Специфическая для React интеграция для Intlayer, предоставляющая скрипты для автоматизации создания словарей.
99
- - **react-i18next** – Специфическая для React библиотека интеграции для i18next, включая хук `useTranslation`.
100
- - **i18next** – Основная платформа для обработки переводов.
101
- - **i18next-resources-to-backend** – Бэкенд i18next, который динамически импортирует ресурсы JSON.
34
+ ## Почему стоит сочетать Intlayer с react-i18next?
102
35
 
103
- ## Настройка Intlayer для экспорта словарей i18next
36
+ Хотя Intlayer предоставляет отличное самостоятельное решение i18n (см. наше [руководство по интеграции с React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+react.md)), вы можете захотеть объединить его с react-i18next по нескольким причинам:
104
37
 
105
- Создайте (или обновите) ваш `intlayer.config.ts` в корне вашего проекта:
38
+ 1. **Существующая кодовая база**: У вас уже есть реализованная система на react-i18next, и вы хотите постепенно перейти на улучшенный опыт разработки с Intlayer.
39
+ 2. **Требования к совместимости**: Ваш проект требует совместимости с существующими плагинами или рабочими процессами react-i18next.
40
+ 3. **Знакомство команды**: Ваша команда привыкла к react-i18next, но хочет улучшить управление контентом.
106
41
 
107
- ```typescript title="intlayer.config.ts"
108
- import { Locales, type IntlayerConfig } from "intlayer";
42
+ **Для этого Intlayer может быть реализован как адаптер для react-i18next, чтобы помочь автоматизировать ваши JSON-переводы в CLI или CI/CD пайплайнах, тестировать переводы и многое другое.**
109
43
 
110
- const config: IntlayerConfig = {
111
- internationalization: {
112
- // Добавьте столько локалей, сколько вам нужно
113
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
114
- defaultLocale: Locales.ENGLISH,
115
- },
116
- content: {
117
- // Укажите Intlayer создавать i18next-совместимый JSON
118
- dictionaryOutput: ["i18next"],
44
+ В этом руководстве показано, как использовать превосходную систему декларации контента Intlayer, сохраняя при этом совместимость с react-i18next.
119
45
 
120
- // Выберите выходной каталог для созданных ресурсов
121
- // Эта папка будет создана, если еще не существует.
122
- i18nextResourcesDir: "./i18next/resources",
123
- },
124
- };
46
+ ## Содержание
125
47
 
126
- export default config;
127
- ```
48
+ <TOC/>
128
49
 
129
- > **Примечание**: Если вы не используете TypeScript, вы можете создать этот файл конфигурации как `.cjs`, `.mjs` или `.js` (см. [документацию Intlayer](https://intlayer.org/ru/doc/concept/configuration) для получения подробной информации).
50
+ ## Пошаговое руководство по настройке Intlayer с react-i18next
130
51
 
131
- ## Создание ресурсов i18next
52
+ ### Шаг 1: Установка зависимостей
132
53
 
133
- После того как ваши декларации контента будут на месте (в следующем разделе), выполните **команду сборки Intlayer**:
54
+ Установите необходимые пакеты:
134
55
 
135
- ```bash
136
- # С npm
137
- npx run intlayer build
56
+ ```bash packageManager="npm"
57
+ npm install intlayer @intlayer/sync-json-plugin
138
58
  ```
139
59
 
140
- ```bash
141
- # С yarn
142
- yarn intlayer build
60
+ ```bash packageManager="pnpm"
61
+ pnpm add intlayer @intlayer/sync-json-plugin
143
62
  ```
144
63
 
145
- ```bash
146
- # С pnpm
147
- pnpm intlayer build
64
+ ```bash packageManager="yarn"
65
+ yarn add intlayer @intlayer/sync-json-plugin
148
66
  ```
149
67
 
150
- > Это сгенерирует ваши ресурсы i18next внутри директории `./i18next/resources` по умолчанию.
68
+ **Описание пакетов:**
151
69
 
152
- Типичный вывод может выглядеть так:
70
+ - **intlayer**: Основная библиотека для управления интернационализацией, декларации контента и сборки
71
+ - **@intlayer/sync-json-plugin**: Плагин для экспорта деклараций контента Intlayer в JSON-формат, совместимый с react-i18next
153
72
 
154
- ```bash
155
- .
156
- └── i18next
157
- └── resources
158
- ├── en
159
- │ └── my-content.json
160
- ├── fr
161
- │ └── my-content.json
162
- └── es
163
- └── my-content.json
164
- ```
73
+ ### Шаг 2: Реализация плагина Intlayer для обёртывания JSON
165
74
 
166
- Где каждый ключ декларации **Intlayer** используется как **i18next пространство имен** (например, `my-content.json`).
167
-
168
- ## Импорт словарей в вашу конфигурацию react-i18next
169
-
170
- Чтобы динамически загружать эти ресурсы во время выполнения, используйте [`i18next-resources-to-backend`](https://www.npmjs.com/package/i18next-resources-to-backend). Например, создайте файл `i18n.ts` (или `.js`) в вашем проекте:
171
-
172
- ```typescript title="i18n.ts"
173
- import i18next from "i18next";
174
- import { initReactI18next } from "react-i18next";
175
- import resourcesToBackend from "i18next-resources-to-backend";
176
-
177
- i18next
178
- // плагин react-i18next
179
- .use(initReactI18next)
180
- // динамическая загрузка ресурсов
181
- .use(
182
- resourcesToBackend((language: string, namespace: string) => {
183
- // Настройте путь импорта к вашему каталогу ресурсов
184
- return import(`../i18next/resources/${language}/${namespace}.json`);
185
- })
186
- )
187
- // Инициализация i18next
188
- .init({
189
- // Альтернативная локаль
190
- fallbackLng: "en",
191
-
192
- // Вы можете добавить другие параметры конфигурации i18next здесь, смотрите:
193
- // https://www.i18next.com/overview/configuration-options
194
- });
195
-
196
- export default i18next;
197
- ```
75
+ Создайте конфигурационный файл Intlayer для определения поддерживаемых локалей:
198
76
 
199
- ```javascript title="i18n.js"
200
- import i18next from "i18next";
201
- import { initReactI18next } from "react-i18next";
202
- import resourcesToBackend from "i18next-resources-to-backend";
203
-
204
- i18next
205
- .use(initReactI18next)
206
- .use(
207
- resourcesToBackend(
208
- (language, namespace) =>
209
- import(`../i18next/resources/${language}/${namespace}.json`)
210
- )
211
- )
212
- .init({
213
- fallbackLng: "en",
214
- });
215
-
216
- export default i18next;
217
- ```
77
+ **Если вы также хотите экспортировать JSON-словари для react-i18next**, добавьте плагин `syncJSON`:
218
78
 
219
- Затем, в вашем **корневом** или **индексном** файле (например, `src/index.tsx`), импортируйте эту настройку `i18n` **до** рендеринга `App`:
220
-
221
- ```typescript
222
- import React from "react";
223
- import ReactDOM from "react-dom/client";
224
- // Инициализация i18n перед чем-либо еще
225
- import "./i18n";
226
- import App from "./App";
227
-
228
- ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
229
- <React.StrictMode>
230
- <App />
231
- </React.StrictMode>
232
- );
233
- ```
234
-
235
- ## Создание и управление вашими декларациями контента
236
-
237
- Intlayer извлекает переводы из “файлов декларации контента”, находящихся где угодно под `./src` (по умолчанию).
238
- Вот минимальный пример на TypeScript:
239
-
240
- ```typescript title="src/components/MyComponent/MyComponent.content.ts"
241
- import { t, type Dictionary } from "intlayer";
79
+ ```typescript fileName="intlayer.config.ts"
80
+ import { Locales, type IntlayerConfig } from "intlayer";
81
+ import { syncJSON } from "@intlayer/sync-json-plugin";
242
82
 
243
- const content = {
244
- // "key" будет вашим пространством имен i18next (например, "my-component")
245
- key: "my-component",
246
- content: {
247
- // Каждый вызов "t" - это отдельный узел перевода
248
- heading: t({
249
- en: "Hello World",
250
- es: "Hola Mundo",
251
- fr: "Bonjour le monde",
252
- }),
253
- description: t({
254
- en: "My i18n description text...",
255
- fr: "Ma description en i18n...",
256
- es: "Mi descripción en i18n...",
257
- }),
83
+ const config: IntlayerConfig = {
84
+ internationalization: {
85
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
86
+ defaultLocale: Locales.ENGLISH,
258
87
  },
259
- } satisfies Dictionary;
260
-
261
- export default content;
262
- ```
263
-
264
- Если вы предпочитаете JSON, `.cjs` или `.mjs`, обратитесь к [документации Intlayer](https://intlayer.org/ru/doc/concept/content).
265
-
266
- > По умолчанию действительные декларации контента соответствуют шаблону расширения файла:
267
-
268
- > `*.content.{ts,tsx,js,jsx,mjs,mjx,cjs,cjx,json}`
269
-
270
- ## Использование переводов в React-компонентах
271
-
272
- После того как вы **собрали** свои ресурсы Intlayer и настроили react-i18next, вы можете напрямую использовать хук `useTranslation` из **react-i18next**.
273
- Например:
274
-
275
- ```tsx title="src/components/MyComponent/MyComponent.tsx"
276
- import type { FC } from "react";
277
- import { useTranslation } from "react-i18next";
278
-
279
- /**
280
- * Пространство имен i18next - это ключ Intlayer из "MyComponent.content.ts",
281
- * поэтому мы передадим "my-component" в useTranslation().
282
- */
283
- const MyComponent: FC = () => {
284
- const { t } = useTranslation("my-component");
285
-
286
- return (
287
- <div>
288
- <h1>{t("heading")}</h1>
289
- <p>{t("description")}</p>
290
- </div>
291
- );
88
+ plugins: [
89
+ syncJSON({
90
+ source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
91
+ }),
92
+ ],
292
93
  };
293
94
 
294
- export default MyComponent;
95
+ export default config;
295
96
  ```
296
97
 
297
- > Обратите внимание, что функция `t` ссылается на **ключи** внутри вашего сгенерированного JSON. Для записи контента Intlayer с именем `heading`, вы будете использовать `t("heading")`.
298
-
299
- ## Дополнительно: Интеграция с Create React App Scripts (CRACO)
300
-
301
- **react-intlayer** предлагает подход на основе CRACO для пользовательских сборок и конфигурации сервера разработки. Если вы хотите seamlessly интегрировать шаг сборки Intlayer, вы можете:
98
+ Плагин `syncJSON` автоматически обернет JSON. Он будет читать и записывать JSON-файлы без изменения архитектуры контента.
302
99
 
303
- 1. **Установить react-intlayer** (если вы этого еще не сделали):
304
- ```bash
305
- npm install react-intlayer --save-dev
306
- ```
307
- 2. **Настройте ваши скрипты `package.json`** для использования скриптов `react-intlayer`:
100
+ Если вы хотите, чтобы JSON сосуществовал с файлами декларации контента intlayer (`.content` файлы), Intlayer будет работать следующим образом:
308
101
 
309
- ```jsonc
310
- "scripts": {
311
- "start": "react-intlayer start",
312
- "build": "react-intlayer build",
313
- "transpile": "intlayer build"
314
- }
315
- ```
102
+ 1. загрузить как JSON, так и файлы декларации контента и преобразовать их в словарь intlayer.
103
+ 2. если возникают конфликты между JSON и файлами декларации контента, Intlayer выполнит слияние всех этих словарей. В зависимости от приоритета плагинов и файла декларации контента (все настраивается).
316
104
 
317
- > Скрипты `react-intlayer` основаны на [CRACO](https://craco.js.org/). Вы также можете реализовать свою собственную настройку на основе плагина intlayer craco. [Смотрите пример здесь](https://github.com/aymericzip/intlayer/blob/main/examples/react-app/craco.config.js).
105
+ Если изменения внесены с помощью CLI для перевода JSON или с использованием CMS, Intlayer обновит JSON-файл с новыми переводами.
318
106
 
319
- Теперь выполнение `npm run build`, `yarn build` или `pnpm build` запускает как сборку Intlayer, так и CRA.
320
-
321
- ## Конфигурация TypeScript
322
-
323
- **Intlayer** предоставляет **автоматически сгенерированные определения типов** для вашего контента. Чтобы гарантировать, что TypeScript их подберет, добавьте **`types`** (или `types`, если вы настроили иначе) в массив **include** вашего `tsconfig.json`:
324
-
325
- ```json5 title="tsconfig.json"
326
- {
327
- "compilerOptions": {
328
- // ...
329
- },
330
- "include": ["src", "types"],
331
- }
332
- ```
333
-
334
- > Это позволит TypeScript выводить тип ваших переводов для лучшей автозавершения и обнаружения ошибок.
107
+ Для получения дополнительной информации о плагине `syncJSON` обратитесь к [документации плагина syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-json.md).
335
108
 
336
109
  ## Конфигурация Git
337
110
 
338
- Рекомендуется **игнорировать** автоматически сгенерированные файлы и папки от Intlayer. Добавьте эту строку в ваш `.gitignore`:
111
+ Рекомендуется игнорировать автоматически сгенерированные файлы Intlayer:
339
112
 
340
- ```plaintext
113
+ ```plaintext fileName=".gitignore"
341
114
  # Игнорировать файлы, сгенерированные Intlayer
342
115
  .intlayer
343
- i18next
344
116
  ```
345
117
 
346
- Вы обычно **не** коммитите эти ресурсы или внутренние артефакты сборки `.intlayer`, так как их можно сгенерировать при каждой сборке.
118
+ Эти файлы могут быть сгенерированы заново в процессе сборки и не требуют добавления в систему контроля версий.
119
+
120
+ ### Расширение VS Code
121
+
122
+ Для улучшения опыта разработчика установите официальное **Расширение Intlayer для VS Code**:
123
+
124
+ [Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)