@intlayer/docs 8.1.6 → 8.1.7

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 (81) hide show
  1. package/README.md +18 -9
  2. package/dist/cjs/generated/docs.entry.cjs +1 -1
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +1 -1
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +2 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/compiler.md +26 -0
  9. package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
  10. package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
  11. package/docs/ar/readme.md +138 -110
  12. package/docs/de/compiler.md +26 -0
  13. package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
  14. package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
  15. package/docs/de/readme.md +152 -124
  16. package/docs/en/compiler.md +27 -0
  17. package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
  18. package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
  19. package/docs/en/readme.md +129 -105
  20. package/docs/en-GB/compiler.md +26 -0
  21. package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
  22. package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
  23. package/docs/en-GB/readme.md +134 -108
  24. package/docs/es/compiler.md +26 -0
  25. package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
  26. package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
  27. package/docs/es/readme.md +149 -121
  28. package/docs/fr/compiler.md +26 -0
  29. package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
  30. package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
  31. package/docs/fr/readme.md +150 -122
  32. package/docs/hi/compiler.md +26 -0
  33. package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
  34. package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
  35. package/docs/hi/readme.md +153 -125
  36. package/docs/id/compiler.md +26 -0
  37. package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
  38. package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
  39. package/docs/id/readme.md +133 -105
  40. package/docs/it/compiler.md +26 -0
  41. package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
  42. package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
  43. package/docs/it/readme.md +155 -127
  44. package/docs/ja/compiler.md +26 -0
  45. package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
  46. package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
  47. package/docs/ja/readme.md +152 -126
  48. package/docs/ko/compiler.md +26 -0
  49. package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
  50. package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
  51. package/docs/ko/readme.md +154 -126
  52. package/docs/pl/compiler.md +26 -0
  53. package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
  54. package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
  55. package/docs/pl/readme.md +134 -106
  56. package/docs/pt/compiler.md +27 -1
  57. package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
  58. package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
  59. package/docs/pt/readme.md +154 -126
  60. package/docs/ru/compiler.md +26 -0
  61. package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
  62. package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
  63. package/docs/ru/readme.md +137 -109
  64. package/docs/tr/compiler.md +26 -0
  65. package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
  66. package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
  67. package/docs/tr/readme.md +139 -111
  68. package/docs/uk/compiler.md +26 -0
  69. package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
  70. package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
  71. package/docs/uk/readme.md +133 -109
  72. package/docs/vi/compiler.md +27 -1
  73. package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
  74. package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
  75. package/docs/vi/readme.md +138 -110
  76. package/docs/zh/compiler.md +26 -0
  77. package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
  78. package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
  79. package/docs/zh/readme.md +148 -120
  80. package/package.json +7 -8
  81. package/src/generated/docs.entry.ts +40 -0
@@ -0,0 +1,369 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-12-30
4
+ title: Vite и React i18n - Превратите существующее приложение в многоязычное (руководство по i18n 2026)
5
+ description: Узнайте, как сделать ваше существующее приложение Vite и React многоязычным с помощью Intlayer Compiler. Следуйте документации, чтобы интернационализировать (i18n) и перевести его с помощью ИИ.
6
+ keywords:
7
+ - Интернационализация
8
+ - Документация
9
+ - Intlayer
10
+ - Vite
11
+ - React
12
+ - Компилятор
13
+ - ИИ
14
+ slugs:
15
+ - doc
16
+ - environment
17
+ - vite-and-react
18
+ - compiler
19
+ - AI
20
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
21
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
22
+ history:
23
+ - version: 8.1.6
24
+ date: 2026-02-23
25
+ changes: Первый выпуск
26
+ ---
27
+
28
+ # Как сделать многоязычным (i18n) существующее приложение Vite и React впоследствии (руководство по i18n 2026)
29
+
30
+ <Tabs defaultTab="video">
31
+ <Tab label="Видео" value="video">
32
+
33
+ <iframe title="Лучшее решение i18n для Vite и React? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
34
+
35
+ </Tab>
36
+ <Tab label="Код" value="code">
37
+
38
+ <iframe
39
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
40
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
41
+ title="Демо CodeSandbox - Как интернационализировать ваше приложение с помощью Intlayer"
42
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
43
+ loading="lazy"
44
+ />
45
+
46
+ </Tab>
47
+ </Tabs>
48
+
49
+ Посмотрите [шаблон приложения](https://github.com/aymericzip/intlayer-vite-react-template) на GitHub.
50
+
51
+ ## Содержание
52
+
53
+ <TOC/>
54
+
55
+ ## Почему сложно интернационализировать существующее приложение?
56
+
57
+ Если вы когда-либо пытались добавить несколько языков в приложение, созданное только для одного, вы знаете эту боль. Это не просто «сложно» — это утомительно. Вам приходится прочесывать каждый файл, выискивать каждую строку текста и переносить их в отдельные файлы словарей.
58
+
59
+ Затем наступает рискованная часть: замена всего этого текста программными хуками без нарушения верстки или логики. Это такая работа, которая останавливает разработку новых функций на недели и кажется бесконечным рефакторингом.
60
+
61
+ ## Что такое Intlayer Compiler?
62
+
63
+ **Intlayer Compiler** был создан, чтобы пропустить эту рутинную ручную работу. Вместо того чтобы вы извлекали строки вручную, компилятор делает это за вас. Он сканирует ваш код, находит текст и использует ИИ для генерации словарей за кулисами.
64
+ Затем он изменяет ваш код во время сборки, чтобы внедрить необходимые хуки i18n. По сути, вы продолжаете писать свое приложение так, как если бы оно было одноязычным, а компилятор автоматически обрабатывает многоязычную трансформацию.
65
+
66
+ > Документация компилятора: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compiler.md)
67
+
68
+ ### Ограничения
69
+
70
+ Поскольку компилятор выполняет анализ и трансформацию кода (вставку хуков и генерацию словарей) во время **компиляции**, это может **замедлить процесс сборки** вашего приложения.
71
+
72
+ Чтобы смягчить это влияние во время разработки, вы можете настроить компилятор на запуск в режиме [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md) или отключить его, когда он не нужен.
73
+
74
+ ---
75
+
76
+ ## Пошаговое руководство по настройке Intlayer в приложении Vite и React
77
+
78
+ ### Шаг 1: Установка зависимостей
79
+
80
+ Установите необходимые пакеты с помощью npm:
81
+
82
+ ```bash packageManager="npm"
83
+ npm install intlayer react-intlayer
84
+ npm install vite-intlayer --save-dev
85
+ npx intlayer init
86
+ ```
87
+
88
+ ```bash packageManager="pnpm"
89
+ pnpm add intlayer react-intlayer
90
+ pnpm add vite-intlayer --save-dev
91
+ pnpm intlayer init
92
+ ```
93
+
94
+ ```bash packageManager="yarn"
95
+ yarn add intlayer react-intlayer
96
+ yarn add vite-intlayer --save-dev
97
+ yarn intlayer init
98
+ ```
99
+
100
+ ```bash packageManager="bun"
101
+ bun add intlayer react-intlayer
102
+ bun add vite-intlayer --dev
103
+ bunx intlayer init
104
+ ```
105
+
106
+ - **intlayer**
107
+ Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, перевода, [декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md), транспиляции и [команд CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/index.md).
108
+
109
+ - **react-intlayer**
110
+ Пакет, интегрирующий Intlayer с приложением React. Он предоставляет провайдеры контекста и хуки для интернационализации React.
111
+
112
+ - **vite-intlayer**
113
+ Включает плагин Vite для интеграции Intlayer с [бандлером Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочтительной локали пользователя, управления куки и обработки перенаправления URL.
114
+
115
+ ### Шаг 2: Настройка вашего проекта
116
+
117
+ Создайте конфигурационный файл для настройки языков вашего приложения:
118
+
119
+ ```typescript fileName="intlayer.config.ts"
120
+ import { Locales, type IntlayerConfig } from "intlayer";
121
+
122
+ const config: IntlayerConfig = {
123
+ internationalization: {
124
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
125
+ defaultLocale: Locales.ENGLISH,
126
+ },
127
+ compiler: {
128
+ enabled: true, // Можно установить значение 'build-only', чтобы ограничить влияние на режим разработки
129
+ outputDir: "i18n",
130
+ dictionaryKeyPrefix: "", // Без префикса comp-
131
+ },
132
+ ai: {
133
+ provider: "openai",
134
+ model: "gpt-5-mini",
135
+ apiKey: process.env.OPEN_AI_API_KEY,
136
+ applicationContext: "This app is an map app", // Примечание: вы можете настроить описание этого приложения
137
+ },
138
+ };
139
+
140
+ export default config;
141
+ ```
142
+
143
+ > **Примечание**: Убедитесь, что у вас установлен `OPEN_AI_API_KEY` в переменных окружения.
144
+
145
+ > Через этот конфигурационный файл вы можете настроить локализованные URL-адреса, перенаправление middleware, имена куки, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Полный список доступных параметров см. в [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
146
+
147
+ ### Шаг 3: Интеграция Intlayer в конфигурацию Vite
148
+
149
+ Добавьте плагин intlayer в вашу конфигурацию.
150
+
151
+ ```typescript fileName="vite.config.ts"
152
+ import { defineConfig } from "vite";
153
+ import react from "@vitejs/plugin-react-swc";
154
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
155
+
156
+ // https://vitejs.dev/config/
157
+ export default defineConfig({
158
+ plugins: [react(), intlayer(), intlayerCompiler()],
159
+ });
160
+ ```
161
+
162
+ > Плагин Vite `intlayer()` используется для интеграции Intlayer с Vite. Он обеспечивает сборку файлов декларации контента и отслеживает их в режиме разработки. Он определяет переменные окружения Intlayer в приложении Vite. Кроме того, он предоставляет псевдонимы для оптимизации производительности.
163
+
164
+ > Плагин Vite `intlayerCompiler()` используется для извлечения контента из компонентов и записи файлов `.content`.
165
+
166
+ ### Шаг 4: Компиляция вашего кода
167
+
168
+ Просто пишите свои компоненты с жестко заданными строками на вашем языке по умолчанию. Компилятор позаботится об остальном.
169
+
170
+ Пример того, как может выглядеть ваша страница:
171
+
172
+ <Tabs>
173
+ <Tab value="Код">
174
+
175
+ ```tsx fileName="src/App.tsx"
176
+ import { useState, type FC } from "react";
177
+ import reactLogo from "./assets/react.svg";
178
+ import viteLogo from "/vite.svg";
179
+ import "./App.css";
180
+ import { IntlayerProvider } from "react-intlayer";
181
+
182
+ const AppContent: FC = () => {
183
+ const [count, setCount] = useState(0);
184
+
185
+ return (
186
+ <>
187
+ <div>
188
+ <a href="https://vitejs.dev" target="_blank">
189
+ <img src={viteLogo} className="logo" alt="Vite logo" />
190
+ </a>
191
+ <a href="https://react.dev" target="_blank">
192
+ <img src={reactLogo} className="logo react" alt="React logo" />
193
+ </a>
194
+ </div>
195
+ <h1>Vite + React</h1>
196
+ <div className="card">
197
+ <button onClick={() => setCount((count) => count + 1)}>
198
+ count is {count}
199
+ </button>
200
+ <p>
201
+ Edit <code>src/App.tsx</code> and save to test HMR
202
+ </p>
203
+ </div>
204
+ <p className="read-the-docs">
205
+ Click on the Vite and React logos to learn more
206
+ </p>
207
+ </>
208
+ );
209
+ };
210
+
211
+ const App: FC = () => (
212
+ <IntlayerProvider>
213
+ <AppContent />
214
+ </IntlayerProvider>
215
+ );
216
+
217
+ export default App;
218
+ ```
219
+
220
+ </Tab>
221
+ <Tab value="Вывод">
222
+
223
+ ```ts fileName="i18n/app-content.content.json"
224
+ {
225
+ key: "app-content",
226
+ content: {
227
+ nodeType: "translation",
228
+ translation: {
229
+ en: {
230
+ viteLogo: "Vite logo",
231
+ reactLogo: "React logo",
232
+ title: "Vite + React",
233
+ countButton: "count is",
234
+ editMessage: "Edit",
235
+ hmrMessage: "and save to test HMR",
236
+ readTheDocs: "Click on the Vite and React logos to learn more",
237
+ },
238
+ fr: {
239
+ viteLogo: "Logo Vite",
240
+ reactLogo: "Logo React",
241
+ title: "Vite + React",
242
+ countButton: "compte est",
243
+ editMessage: "Modifier",
244
+ hmrMessage: "et enregistrer pour tester HMR",
245
+ readTheDocs: "Cliquez sur les logos Vite et React pour en savoir plus",
246
+ },
247
+ }
248
+ }
249
+ }
250
+ ```
251
+
252
+ ```tsx fileName="src/App.tsx"
253
+ import { useState, type FC } from "react";
254
+ import reactLogo from "./assets/react.svg";
255
+ import viteLogo from "/vite.svg";
256
+ import "./App.css";
257
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
258
+
259
+ const AppContent: FC = () => {
260
+ const [count, setCount] = useState(0);
261
+ const content = useIntlayer("app-content");
262
+
263
+ return (
264
+ <>
265
+ <div>
266
+ <a href="https://vitejs.dev" target="_blank">
267
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
268
+ </a>
269
+ <a href="https://react.dev" target="_blank">
270
+ <img
271
+ src={reactLogo}
272
+ className="logo react"
273
+ alt={content.reactLogo.value}
274
+ />
275
+ </a>
276
+ </div>
277
+ <h1>{content.title}</h1>
278
+ <div className="card">
279
+ <button onClick={() => setCount((count) => count + 1)}>
280
+ {content.countButton} {count}
281
+ </button>
282
+ <p>
283
+ {content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
284
+ </p>
285
+ </div>
286
+ <p className="read-the-docs">{content.readTheDocs}</p>
287
+ </>
288
+ );
289
+ };
290
+
291
+ const App: FC = () => (
292
+ <IntlayerProvider>
293
+ <AppContent />
294
+ </IntlayerProvider>
295
+ );
296
+
297
+ export default App;
298
+ ```
299
+
300
+ </Tab>
301
+ </Tabs>
302
+
303
+ - **`IntlayerProvider`** используется для предоставления локали вложенным компонентам.
304
+
305
+ ### (Опционально) Шаг 6: Изменение языка вашего контента
306
+
307
+ Чтобы изменить язык вашего контента, вы можете использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция позволяет установить локаль приложения и соответствующим образом обновить контент.
308
+
309
+ ```tsx fileName="src/components/LocaleSwitcher.tsx"
310
+ import type { FC } from "react";
311
+ import { Locales } from "intlayer";
312
+ import { useLocale } from "react-intlayer";
313
+
314
+ const LocaleSwitcher: FC = () => {
315
+ const { setLocale } = useLocale();
316
+
317
+ return (
318
+ <button onClick={() => setLocale(Locales.English)}>
319
+ Change Language to English
320
+ </button>
321
+ );
322
+ };
323
+ ```
324
+
325
+ > Чтобы узнать больше о хуке `useLocale`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md).
326
+
327
+ ### (Опционально) Шаг 7: Заполнить недостающие переводы
328
+
329
+ Intlayer предоставляет инструмент CLI, который поможет вам заполнить недостающие переводы. Вы можете использовать команду `intlayer` для тестирования и заполнения недостающих переводов в вашем коде.
330
+
331
+ ```bash
332
+ npx intlayer test # Проверить наличие недостающих переводов
333
+ ```
334
+
335
+ ```bash
336
+ npx intlayer fill # Заполнить недостающие переводы
337
+ ```
338
+
339
+ > Для получения более подробной информации обратитесь к [документации CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/ci.md)
340
+
341
+ ### Конфигурация Git
342
+
343
+ Рекомендуется игнорировать файлы, созданные Intlayer. Это позволит вам избежать их фиксации в вашем репозитории Git.
344
+
345
+ Чтобы сделать это, вы можете добавить следующие инструкции в ваш файл `.gitignore`:
346
+
347
+ ```plaintext fileName=".gitignore"
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).
366
+
367
+ ### Идите дальше
368
+
369
+ Чтобы пойти дальше, вы можете внедрить [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести свой контент с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).