@intlayer/docs 9.3.0 → 9.3.1

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 (162) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +4 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +4 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/docs/ar/configuration.md +10 -10
  24. package/docs/ar/interest_of_intlayer.md +24 -22
  25. package/docs/ar/intlayer_with_express.md +1 -1
  26. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  27. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  28. package/docs/ar/intlayer_with_tanstack.md +5 -3
  29. package/docs/ar/lsp.md +114 -175
  30. package/docs/ar/readme.md +25 -25
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/bn/interest_of_intlayer.md +24 -22
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/cs/interest_of_intlayer.md +24 -22
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/de/interest_of_intlayer.md +24 -22
  37. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  38. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  39. package/docs/de/intlayer_with_tanstack.md +5 -3
  40. package/docs/de/lsp.md +111 -172
  41. package/docs/de/readme.md +24 -24
  42. package/docs/en/configuration.md +10 -10
  43. package/docs/en/interest_of_intlayer.md +24 -22
  44. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/en/intlayer_with_tanstack.md +5 -3
  47. package/docs/en/lsp.md +109 -170
  48. package/docs/en/readme.md +24 -24
  49. package/docs/en-GB/configuration.md +10 -10
  50. package/docs/en-GB/interest_of_intlayer.md +24 -22
  51. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  52. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  53. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  54. package/docs/en-GB/lsp.md +109 -170
  55. package/docs/en-GB/readme.md +24 -24
  56. package/docs/es/configuration.md +10 -10
  57. package/docs/es/interest_of_intlayer.md +24 -22
  58. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  59. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  60. package/docs/es/intlayer_with_tanstack.md +5 -3
  61. package/docs/es/lsp.md +114 -175
  62. package/docs/es/readme.md +24 -24
  63. package/docs/fr/configuration.md +10 -10
  64. package/docs/fr/interest_of_intlayer.md +24 -22
  65. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  66. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  67. package/docs/fr/intlayer_with_tanstack.md +5 -3
  68. package/docs/fr/lsp.md +110 -171
  69. package/docs/fr/readme.md +24 -24
  70. package/docs/hi/configuration.md +10 -10
  71. package/docs/hi/interest_of_intlayer.md +24 -22
  72. package/docs/hi/intlayer_with_express.md +1 -1
  73. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  74. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  75. package/docs/hi/intlayer_with_tanstack.md +5 -3
  76. package/docs/hi/lsp.md +113 -174
  77. package/docs/hi/readme.md +24 -24
  78. package/docs/id/configuration.md +10 -10
  79. package/docs/id/interest_of_intlayer.md +24 -22
  80. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  81. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  82. package/docs/id/intlayer_with_tanstack.md +5 -3
  83. package/docs/id/lsp.md +113 -174
  84. package/docs/id/readme.md +24 -24
  85. package/docs/it/configuration.md +10 -10
  86. package/docs/it/interest_of_intlayer.md +24 -22
  87. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  88. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  89. package/docs/it/intlayer_with_tanstack.md +5 -3
  90. package/docs/it/lsp.md +115 -176
  91. package/docs/it/readme.md +24 -24
  92. package/docs/ja/configuration.md +10 -10
  93. package/docs/ja/interest_of_intlayer.md +24 -22
  94. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  95. package/docs/ja/intlayer_with_tanstack.md +5 -3
  96. package/docs/ja/lsp.md +113 -174
  97. package/docs/ja/readme.md +24 -24
  98. package/docs/ko/configuration.md +10 -10
  99. package/docs/ko/interest_of_intlayer.md +24 -22
  100. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  101. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  102. package/docs/ko/intlayer_with_tanstack.md +5 -3
  103. package/docs/ko/lsp.md +112 -173
  104. package/docs/ko/readme.md +24 -24
  105. package/docs/nl/configuration.md +10 -10
  106. package/docs/nl/interest_of_intlayer.md +24 -22
  107. package/docs/pl/configuration.md +10 -10
  108. package/docs/pl/interest_of_intlayer.md +4 -2
  109. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  110. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  111. package/docs/pl/intlayer_with_tanstack.md +5 -3
  112. package/docs/pl/lsp.md +115 -176
  113. package/docs/pl/readme.md +24 -24
  114. package/docs/pt/configuration.md +10 -10
  115. package/docs/pt/interest_of_intlayer.md +24 -22
  116. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  117. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  118. package/docs/pt/intlayer_with_tanstack.md +5 -3
  119. package/docs/pt/lsp.md +113 -174
  120. package/docs/pt/readme.md +24 -24
  121. package/docs/ru/configuration.md +10 -10
  122. package/docs/ru/interest_of_intlayer.md +24 -22
  123. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  124. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  125. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ru/intlayer_with_tanstack.md +5 -3
  128. package/docs/ru/lsp.md +112 -173
  129. package/docs/ru/readme.md +24 -24
  130. package/docs/tr/configuration.md +10 -10
  131. package/docs/tr/interest_of_intlayer.md +24 -22
  132. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  133. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  134. package/docs/tr/intlayer_with_tanstack.md +5 -3
  135. package/docs/tr/lsp.md +113 -174
  136. package/docs/tr/readme.md +24 -24
  137. package/docs/uk/configuration.md +10 -10
  138. package/docs/uk/interest_of_intlayer.md +4 -2
  139. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  140. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/uk/intlayer_with_tanstack.md +5 -3
  142. package/docs/uk/lsp.md +113 -174
  143. package/docs/uk/per_locale_file.md +1 -1
  144. package/docs/uk/readme.md +24 -24
  145. package/docs/ur/configuration.md +10 -10
  146. package/docs/ur/interest_of_intlayer.md +24 -22
  147. package/docs/vi/configuration.md +10 -10
  148. package/docs/vi/interest_of_intlayer.md +24 -22
  149. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  150. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  151. package/docs/vi/intlayer_with_tanstack.md +5 -3
  152. package/docs/vi/lsp.md +115 -176
  153. package/docs/vi/readme.md +24 -24
  154. package/docs/zh/configuration.md +10 -10
  155. package/docs/zh/interest_of_intlayer.md +24 -22
  156. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  157. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  158. package/docs/zh/intlayer_with_tanstack.md +5 -3
  159. package/docs/zh/lsp.md +113 -174
  160. package/docs/zh/readme.md +21 -21
  161. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  162. package/package.json +6 -6
package/docs/ru/lsp.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  createdAt: 2025-06-07
3
- updatedAt: 2026-05-31
3
+ updatedAt: 2026-08-10
4
4
  title: LSP-сервер Intlayer
5
- description: Узнайте, как языковой сервер Intlayer предоставляет функцию «Перейти к определению» и другие функции IDE для useIntlayer, getIntlayer и связанных вызовов во всех поддерживаемых редакторах.
5
+ description: Узнайте, как языковой сервер Intlayer добавляет переход к определению, поиск ссылок, всплывающие подсказки, автодополнение ключей и диагностику в вашу IDE и вашего ИИ-агента.
6
6
  keywords:
7
7
  - LSP
8
8
  - Языковой сервер
9
- - Перейти к определению
9
+ - Go to Definition
10
+ - Автодополнение
11
+ - Диагностика
10
12
  - IDE
11
13
  - Intlayer
12
14
  - VS Code
@@ -16,6 +18,9 @@ slugs:
16
18
  - doc
17
19
  - lsp
18
20
  history:
21
+ - version: 9.1.3
22
+ date: 2026-08-10
23
+ changes: "Добавлены поиск ссылок, всплывающие подсказки, автодополнение и диагностика"
19
24
  - version: 8.12.0
20
25
  date: 2026-06-01
21
26
  changes: "Release LSP"
@@ -24,48 +29,47 @@ author: aymericzip
24
29
 
25
30
  # LSP-сервер Intlayer
26
31
 
27
- **Языковой сервер Intlayer (LSP)** — это реализация [протокола языкового сервера (LSP)](https://microsoft.github.io/language-server-protocol/), которая расширяет возможности вашей IDE с помощью интеллектуальных функций, адаптированных под Intlayer. В настоящее время он поддерживает функцию **Перейти к определению (Go to Definition)** для вызовов ключей словаря, позволяя переходить прямо из вызова `useIntlayer("my-key")` в вашем компоненте к файлу `.content.ts`, в котором он объявлен.
32
+ **Языковой сервер Intlayer** — это реализация [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/), которая делает вашу IDE и вашего ИИ-агента осведомлёнными об Intlayer. Он связывает вызов вида `useIntlayer("home")` с файлом `.content.ts`, который его объявляет, в обоих направлениях.
28
33
 
29
34
  ---
30
35
 
31
- ## Зачем использовать LSP?
36
+ ## Возможности
32
37
 
33
- При использовании Intlayer связь между вызовом вроде `useIntlayer("homepage")` и его объявлением в `src/homepage.content.ts` является неявной. Без инструментов вам придется искать файл вручную. LSP делает эту связь явной:
38
+ | Возможность | Сочетание клавиш | Что делает |
39
+ | ------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------- |
40
+ | **Перейти к определению** | `F12` / `Cmd+Клик` | Перейти от ключа словаря или использования поля к его объявлению в файле контента |
41
+ | **Найти все ссылки** | `Shift+F12` | Из файла контента показать все места вызова, использующие этот ключ или поле |
42
+ | **Всплывающая подсказка** | навести курсор | Посмотреть поля словаря или переведённое значение поля, не покидая файл |
43
+ | **Автодополнение** | `"` `'` `` ` `` `.` | Предлагать объявленные ключи словарей внутри геттера и поля контента после `.` или при деструктуризации |
44
+ | **Диагностика** | автоматически | Предупреждать, когда ключ не объявлен ни в одном файле контента |
34
45
 
35
- **Понимание ИИ-агентами**
46
+ Стоит знать ещё о двух особенностях:
36
47
 
37
- ИИ-агенты для кодинга (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) полагаются на языковой сервер для разрешения символов и понимания связей между файлами. При запущенном Intlayer LSP агенты могут отслеживать путь от `useIntlayer("key")` до места объявления ключа, получая точный контекст о доступных ключах контента, структуре каждого словаря и о том, какие файлы следует читать или редактировать.
48
+ - **Объединённые словари** ключ, разделённый между несколькими файлами контента, возвращает по одному результату на файл, поэтому вы можете перейти к каждому объявлению.
49
+ - **Поддержка монорепозиториев** — сервер находит _ближайший_ к каждому файлу `intlayer.config.*`, поэтому несколько проектов в одном рабочем пространстве получают собственные словари.
38
50
 
39
- **Перейти к определению**
51
+ ### Поддерживаемые вызовы
40
52
 
41
- Поместите курсор на любую строку с ключом словаря внутри поддерживаемого вызова геттера и нажмите `F12` (или `Cmd/Ctrl+клик`). Редактор откроет файл объявления контента и поместит курсор на строку `key:`.
53
+ Ключ считывается либо из позиционного строкового аргумента, либо из объекта опций (`{ namespace }`, `{ id }`).
42
54
 
43
- **Поддержка объединенных словарей**
55
+ | Библиотека | Вызовы |
56
+ | --------------------------- | -------------------------------------------------------- |
57
+ | **Intlayer** | `useIntlayer`, `getIntlayer` |
58
+ | **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
59
+ | **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
60
+ | **react-intl** | `formatMessage`, `FormattedMessage` |
61
+ | **Lingui** | `useLingui`, `t`, `Trans`, `_` |
62
+ | **vue-i18n** | `useI18n` |
44
63
 
45
- Ключ может быть разделен между несколькими файлами контента (Intlayer объединяет их). Сервер возвращает одно местоположение (`Location`) на каждый исходный файл, чтобы вы могли перейти к каждому объявлению.
64
+ Это работает для каждого пакета `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `intlayer`), а также для пакетов-адаптеров совместимости, позволяющих сохранить существующий синтаксис i18n.
46
65
 
47
- **Работает везде**
48
-
49
- Поддерживает все пакеты `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
50
-
51
- ### Поддерживаемые вызовы геттеров
52
-
53
- Сервер обнаруживает следующие вызовы функций и извлекает первый строковый литерал в качестве ключа словаря:
54
-
55
- | Функция | Пример |
56
- | ------------- | ----------------------------- |
57
- | `useIntlayer` | `useIntlayer("hero")` |
58
- | `getIntlayer` | `getIntlayer("hero", locale)` |
59
-
60
- Дженерики TypeScript и дополнительные аргументы игнорируются — важен только ключ.
61
-
62
- > `useDictionary` и `getDictionary` принимают уже импортированный объект `Dictionary` в качестве первого аргумента вместо строкового ключа, поэтому они не поддерживают функцию «Перейти к определению» и не отслеживаются сервером.
66
+ > Словари читаются из результата сборки, поэтому выполните `npx intlayer build` — или держите dev-сервер запущенным — чтобы серверу было что разрешать.
63
67
 
64
68
  ---
65
69
 
66
70
  ## Установка
67
71
 
68
- LSP-сервер распространяется в составе пакета `@intlayer/lsp`:
72
+ Сервер поставляется как бинарный файл `intlayer-lsp` в составе `@intlayer/lsp`:
69
73
 
70
74
  ```bash packageManager="npm"
71
75
  npm install --save-dev @intlayer/lsp
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
83
87
  bun add --dev @intlayer/lsp
84
88
  ```
85
89
 
86
- Пакет предоставляет бинарный файл `intlayer-lsp`, который редакторы используют в качестве исполняемого файла сервера.
90
+ Установите его глобально (`npm install -g @intlayer/lsp`), если вашему редактору нужен `intlayer-lsp` в `PATH` это относится к плагину Claude Code и к любой конфигурации ниже, которая вызывает бинарный файл напрямую.
87
91
 
88
92
  ---
89
93
 
90
- ## Настройка в качестве плагина Claude Code
94
+ ## Настройка
91
95
 
92
- Intlayer LSP доступен как **плагин Claude Code**, размещенный непосредственно в репозитории Intlayer на GitHub. Его установка дает Claude Code нативную поддержку функции «Перейти к определению» для всех вызовов `useIntlayer` / `getIntlayer`.
96
+ <Tabs defaultTab="vscode">
97
+ <Tab label="VS Code" value="vscode">
93
98
 
94
- ### 1. Установите бинарный файл языкового сервера
99
+ Установите [расширение Intlayer для VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). Языковой сервер входит в него начиная с v8.12.0 и запускается автоматически — **настройка не требуется**.
95
100
 
96
- ```bash packageManager="npm"
97
- npm install -g @intlayer/lsp
98
- ```
101
+ Другие возможности описаны в [документации расширения VS Code](https://intlayer.org/doc/vs-code-extension).
99
102
 
100
- ```bash packageManager="yarn"
101
- yarn global add @intlayer/lsp
102
- ```
103
+ </Tab>
104
+ <Tab label="Cursor / Windsurf" value="cursor">
103
105
 
104
- ```bash packageManager="pnpm"
105
- pnpm add -g @intlayer/lsp
106
- ```
106
+ [Cursor](https://www.cursor.com/) и [Windsurf](https://windsurf.com/) — форки VS Code, использующие ту же экосистему расширений. Установите [расширение Intlayer для VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) один раз, и сервер активируется автоматически — **настройка не требуется**.
107
+
108
+ </Tab>
109
+ <Tab label="Claude Code" value="claude-code">
107
110
 
108
- Это поместит исполняемый файл `intlayer-lsp` в ваш PATH, который вызывается записью `lspServers` в плагине.
111
+ Intlayer поставляет **плагин для Claude Code**, размещённый в репозитории Intlayer. Он даёт Claude Code настоящее разрешение символов для ваших ключей словарей вместо отката к `grep`.
109
112
 
110
- ### 2. Зарегистрируйте маркетплейс Intlayer и установите плагин
113
+ Поместите бинарный файл в `PATH`, затем зарегистрируйте маркетплейс и установите плагин:
111
114
 
112
115
  ```bash
116
+ npm install -g @intlayer/lsp
117
+
113
118
  claude plugin marketplace add intlayer@github:aymericzip/intlayer
114
119
  claude plugin install intlayer-lsp@intlayer
115
- claude plugin enable intlayer-lsp@intlayer
116
120
  ```
117
121
 
118
- Claude Code добавит `"intlayer-lsp@intlayer": true` в список ваших `enabledPlugins` и автоматически запустит языковой сервер для поддерживаемых типов файлов (`.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.svelte`).
122
+ `install` также включает плагин. **Перезапустите Claude Code** языковые серверы загружаются при старте, поэтому до перезапуска плагин не действует.
119
123
 
120
- ### 3. Включите инструмент LSP (если он еще не активен)
124
+ После этого Claude Code запускает сервер для файлов `.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.astro` и `.svelte` и использует `goToDefinition`, `findReferences` и `hover` при навигации по коду.
121
125
 
122
- Некоторые версии Claude Code требуют установки флага функции LSP. Добавьте следующее в ваш файл `~/.claude/settings.json`, если переход к определению не работает после установки:
126
+ Если переход к определению всё ещё не работает, ваша версия Claude Code может скрывать инструмент LSP за флагом:
123
127
 
124
128
  ```json fileName="~/.claude/settings.json"
125
129
  {
@@ -129,61 +133,10 @@ Claude Code добавит `"intlayer-lsp@intlayer": true` в список ва
129
133
  }
130
134
  ```
131
135
 
132
- Перезапустите Claude Code — теперь он будет использовать `goToDefinition`, `findReferences` и другие операции LSP при навигации по вашему коду Intlayer вместо возврата к `grep`.
133
-
134
- ---
135
-
136
- ## Настройка в VS Code (через расширение — рекомендуется)
137
-
138
- Если у вас установлено [расширение Intlayer для VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension), языковой сервер запускается автоматически. Никакой дополнительной настройки не требуется. LSP напрямую интегрирован в расширение VSCode начиная с версии 8.12.0.
139
-
140
- > Инструкции по установке и описание других функций см. в [документации расширения VS Code](https://intlayer.org/doc/vs-code-extension).
141
-
142
- ---
143
-
144
- ## Ручная настройка в VS Code
145
-
146
- Если вы не используете расширение Intlayer, вы можете подключить языковой сервер вручную, используя универсальное расширение клиента LSP, такое как [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter), или написав собственное небольшое расширение. Рекомендуемый подход — использовать расширение Intlayer.
147
-
148
- Для справки, сервер запускается через бинарный файл `intlayer-lsp` через stdio:
149
-
150
- ```json fileName=".vscode/settings.json"
151
- {
152
- "intlayer.languageServer.command": "npx",
153
- "intlayer.languageServer.args": ["@intlayer/lsp"]
154
- }
155
- ```
156
-
157
- Расширение Intlayer считывает эти настройки для запуска сервера. Если вы используете только расширение, ручные настройки не требуются.
158
-
159
- ---
160
-
161
- ## Настройка в Cursor
162
-
163
- [Cursor](https://www.cursor.com/) — это форк VS Code со встроенными функциями ИИ. Он использует ту же экосистему расширений, поэтому **расширение Intlayer для VS Code** работает без дополнительной настройки — установите его один раз, и Cursor подхватит его автоматически.
164
-
165
- Если вы предпочитаете ручную настройку, Cursor также считывает файл `.vscode/settings.json` из корня рабочей области, поэтому приведенный выше фрагмент кода для VS Code применяется напрямую.
166
-
167
- ---
168
-
169
- ## Настройка в Windsurf
170
-
171
- [Windsurf](https://windsurf.com/) (от Codeium) — еще один редактор на базе VS Code. Установите расширение Intlayer из VS Code Marketplace, и языковой сервер активируется автоматически, точно так же, как в VS Code и Cursor.
172
-
173
- Для ручной настройки создайте файл `.vscode/settings.json` в корне проекта:
174
-
175
- ```json fileName=".vscode/settings.json"
176
- {
177
- "intlayer.languageServer.command": "npx",
178
- "intlayer.languageServer.args": ["@intlayer/lsp"]
179
- }
180
- ```
181
-
182
- ---
183
-
184
- ## Настройка в Zed
136
+ </Tab>
137
+ <Tab label="Zed" value="zed">
185
138
 
186
- [Zed](https://zed.dev/) имеет встроенную поддержку LSP через настройки языка. Добавьте запись в пользовательские настройки Zed (`~/.config/zed/settings.json`):
139
+ Zed имеет встроенную поддержку LSP. Добавьте сервер в пользовательские настройки:
187
140
 
188
141
  ```json fileName="~/.config/zed/settings.json"
189
142
  {
@@ -196,47 +149,21 @@ Claude Code добавит `"intlayer-lsp@intlayer": true` в список ва
196
149
  }
197
150
  },
198
151
  "languages": {
199
- "TypeScript": {
200
- "language_servers": ["intlayer-lsp", "..."]
201
- },
202
- "TSX": {
203
- "language_servers": ["intlayer-lsp", "..."]
204
- },
205
- "JavaScript": {
206
- "language_servers": ["intlayer-lsp", "..."]
207
- },
208
- "Vue.js": {
209
- "language_servers": ["intlayer-lsp", "..."]
210
- },
211
- "Svelte": {
212
- "language_servers": ["intlayer-lsp", "..."]
213
- }
152
+ "TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
153
+ "TSX": { "language_servers": ["intlayer-lsp", "..."] },
154
+ "JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
155
+ "Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
156
+ "Svelte": { "language_servers": ["intlayer-lsp", "..."] }
214
157
  }
215
158
  }
216
159
  ```
217
160
 
218
- Плейсхолдер `"..."` указывает Zed сохранять стандартные языковые серверы вместе с сервером Intlayer.
219
-
220
- ---
221
-
222
- ## Настройка для интерфейсов командной строки ИИ-агентов (Claude Code, Codex и др.)
223
-
224
- **Claude Code** имеет первоклассную поддержку плагинов LSP — следуйте инструкциям по [настройке плагина Claude Code](#настройка-в-качестве-плагина-claude-code) выше, чтобы получить полноценную функцию «Перейти к определению» прямо в сессиях терминала.
161
+ Заполнитель `"..."` сохраняет языковые серверы Zed по умолчанию рядом с сервером Intlayer.
225
162
 
226
- **OpenAI Codex** и другие консольные инструменты пока не работают как клиенты LSP — они напрямую читают и записывают файлы, а не поддерживают постоянный сеанс языкового сервера. Для этих инструментов ценность работающего LSP проявляется косвенно: когда сервер активен в сопутствующем редакторе (VS Code, Cursor, Windsurf и т. д.), его живой индекс доступен любому ИИ-агенту, который может запросить его через контекст редактора (например, Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
163
+ </Tab>
164
+ <Tab label="Neovim" value="neovim">
227
165
 
228
- Если вы работаете исключительно в терминале без открытого редактора, вы можете запустить языковой сервер в фоновом режиме, чтобы он был готов к подключению любого редактора:
229
-
230
- ```bash
231
- # Поддерживать сервер активным в фоновом режиме
232
- npx @intlayer/lsp &
233
- ```
234
-
235
- ---
236
-
237
- ## Ручная настройка в Neovim
238
-
239
- Используя [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), зарегистрируйте пользовательскую конфигурацию сервера:
166
+ С помощью [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) зарегистрируйте пользовательскую конфигурацию сервера:
240
167
 
241
168
  ```lua fileName="~/.config/nvim/init.lua"
242
169
  local lspconfig = require('lspconfig')
@@ -245,7 +172,7 @@ local configs = require('lspconfig.configs')
245
172
  if not configs.intlayer_lsp then
246
173
  configs.intlayer_lsp = {
247
174
  default_config = {
248
- -- Запуск сервера с помощью npx, чтобы не требовалась глобальная установка
175
+ -- Запускать сервер через npx, чтобы не требовалась глобальная установка
249
176
  cmd = { 'npx', '--yes', '@intlayer/lsp' },
250
177
  filetypes = {
251
178
  'typescript',
@@ -267,21 +194,10 @@ end
267
194
  lspconfig.intlayer_lsp.setup({})
268
195
  ```
269
196
 
270
- После перезапуска Neovim нажатие `gd` на ключе Intlayer вызовет функцию перехода к определению.
271
-
272
- ---
273
-
274
- ## Ручная настройка в других редакторах
275
-
276
- Любой редактор с поддержкой Language Server Protocol может использовать `@intlayer/lsp`. Характеристики сервера:
197
+ После перезапуска Neovim `gd` на ключе словаря выполняет переход к определению, а `gr` — поиск ссылок.
277
198
 
278
- - **Транспорт** – Node.js IPC / stdio (стандартный)
279
- - **Исполняемый файл** – `npx @intlayer/lsp` (или локально установленный бинарный файл `intlayer-lsp`)
280
- - **Возможности** – `definitionProvider: true`, `textDocumentSync: Incremental`
281
-
282
- Формат конфигурации для вашего редактора (например, `languageserver.json` для [coc.nvim](https://github.com/neoclide/coc.nvim) или настройки клиента LSP в [Helix](https://helix-editor.com)) смотрите в его документации.
283
-
284
- ### Пример: coc.nvim
199
+ </Tab>
200
+ <Tab label="coc.nvim" value="coc">
285
201
 
286
202
  ```json fileName="~/.config/nvim/coc-settings.json"
287
203
  {
@@ -307,9 +223,14 @@ lspconfig.intlayer_lsp.setup({})
307
223
  }
308
224
  ```
309
225
 
310
- ### Пример: Helix
226
+ </Tab>
227
+ <Tab label="Helix" value="helix">
311
228
 
312
229
  ```toml fileName="~/.config/helix/languages.toml"
230
+ [language-server.intlayer-lsp]
231
+ command = "npx"
232
+ args = ["@intlayer/lsp"]
233
+
313
234
  [[language]]
314
235
  name = "typescript"
315
236
  language-servers = ["intlayer-lsp", "typescript-language-server"]
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
317
238
  [[language]]
318
239
  name = "tsx"
319
240
  language-servers = ["intlayer-lsp", "typescript-language-server"]
320
-
321
- [language-server.intlayer-lsp]
322
- command = "npx"
323
- args = ["@intlayer/lsp"]
324
241
  ```
325
242
 
243
+ </Tab>
244
+ <Tab label="Другие редакторы" value="other">
245
+
246
+ Любой редактор с поддержкой LSP может запускать `@intlayer/lsp`. Укажите ему:
247
+
248
+ - **Исполняемый файл** — `npx @intlayer/lsp` или бинарный файл `intlayer-lsp`
249
+ - **Транспорт** — stdio (стандартный)
250
+ - **Возможности** — `definitionProvider`, `referencesProvider`, `hoverProvider`, `completionProvider` (символы-триггеры `"` `'` `` ` `` `.`), push-диагностика, `textDocumentSync: Incremental`
251
+ - **Шаблоны корня** — `intlayer.config.ts`, `intlayer.config.js`, `package.json`
252
+
253
+ Точный формат конфигурации смотрите в документации LSP вашего редактора.
254
+
255
+ </Tab>
256
+ </Tabs>
257
+
326
258
  ---
327
259
 
328
- ## Как это работает
260
+ ## Примечание об ИИ-агентах в терминале
329
261
 
330
- При запуске сервер считывает конфигурацию Intlayer из корня рабочей области с помощью `getConfiguration()`. Это указывает ему пути `build` и `system`, необходимые для поиска скомпилированных словарей.
262
+ **Claude Code** работает как полноценный LSP-клиент см. вкладку выше.
331
263
 
332
- На каждый запрос **Перейти к определению**:
264
+ **OpenAI Codex** и большинство других терминальных инструментов не являются LSP-клиентами: они читают и пишут файлы напрямую. Запуск сервера сам по себе им не поможет; польза появляется, когда он активен в сопутствующем редакторе, чей индекс агент может запрашивать (Cursor Composer, Windsurf Cascade, Copilot Chat).
333
265
 
334
- 1. Сервер считывает весь текст открытого документа.
335
- 2. Он сканирует вызовы геттеров (`useIntlayer`, `getIntlayer` и т. д.) с помощью регулярного выражения.
336
- 3. Он проверяет, попадает ли позиция курсора внутрь одного из этих вызовов.
337
- 4. Если попадает, он извлекает ключ словаря (группа захвата 3 регулярного выражения) и вызывает `getUnmergedDictionaries()` для поиска каждого файла контента, объявляющего этот ключ.
338
- 5. Он считывает каждый соответствующий файл и находит точную строку с `key: "<key>"`, чтобы точно позиционировать курсор.
339
- 6. Он возвращает массив объектов `Location` — по одному на каждый исходный файл.
266
+ ---
340
267
 
341
- Конфигурация разрешается лениво и кэшируется для каждого сеанса; она сбрасывается при каждом запросе `initialize` (например, при открытии новой папки рабочей области).
268
+ ## Как это работает
269
+
270
+ Для каждого файла сервер находит ближайший `intlayer.config.*` и загружает конфигурацию этого проекта, чтобы найти скомпилированные словари. Конфигурация, словари и список исходных файлов кешируются с коротким TTL и сбрасываются при изменении отслеживаемого файла контента.
271
+
272
+ При запросе сервер разбирает документ (через [oxc](https://oxc.rs/)) и анализирует позицию курсора:
273
+
274
+ 1. **На строке ключа** (`useIntlayer("home")`) → возвращает каждый файл контента, объявляющий этот ключ, с позицией на строке `key:`.
275
+ 2. **На использовании поля** (`content.title`, деструктурированное свойство, `t('path.to.field')`, `<Trans>`, …) → возводит переменную обратно к её словарю и возвращает соответствующее поле внутри файлов контента.
276
+ 3. **Из файла контента** → выполняет обратный поиск, просматривая исходники проекта в поисках мест вызова этого ключа или поля.
342
277
 
343
278
  ---
344
279
 
345
280
  ## Устранение неполадок
346
281
 
347
- | Симптом | Возможная причина | Решение |
348
- | ------------------------------------------ | ------------------------------- | ---------------------------------------------------------------------------------- |
349
- | Перейти к определению ничего не делает | Сервер не запущен | Убедитесь, что `@intlayer/lsp` установлен и редактор запускает его |
350
- | Неверный корень рабочей области | Несколько папок рабочей области | Убедитесь, что папка с `intlayer.config.ts` является первой папкой рабочей области |
351
- | Определения не найдены для ключа | Конфигурация не разрешена | Убедитесь, что `intlayer.config.ts` (или `.js`) существует в корне рабочей области |
352
- | Сервер аварийно завершает работу на старте | Слишком старая версия Node.js | Требуется Node.js 14.18 |
282
+ | Симптом | Вероятная причина | Решение |
283
+ | -------------------------------------------- | --------------------------------- | ---------------------------------------------------------------------------- |
284
+ | Ничего не происходит | Сервер не запущен | Убедитесь, что `@intlayer/lsp` установлен и редактор его запускает |
285
+ | Работает в редакторе, но не в Claude Code | Плагин установлен во время сессии | Перезапустите Claude Code языковые серверы загружаются при старте |
286
+ | Определения для ключа не найдены | Словари не собраны | Выполните `npx intlayer build` или запустите dev-сервер |
287
+ | Все ключи отмечены как необъявленные | Конфигурация не разрешена | Проверьте, что `intlayer.config.ts` (или `.js`) есть в корне проекта |
288
+ | В монорепозитории используется не тот проект | Нет конфигурации в пакете | Добавьте `intlayer.config.*` в каждый пакет, объявляющий собственный контент |
289
+ | Сервер падает при запуске | Слишком старая версия Node.js | Требуется Node.js ≥ 14.18 |
290
+
291
+ В VS Code сервер пишет логи в **Вид → Вывод → «Intlayer LSP»** — это помогает убедиться, какая конфигурация была разрешена и сколько словарей найдено.
package/docs/ru/readme.md CHANGED
@@ -46,27 +46,27 @@ Intlayer, это **современное решение i18n** для веб-
46
46
 
47
47
  ## Ключевые преимущества Intlayer:
48
48
 
49
- | Особенность | Описание |
50
- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | <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 и другие. |
52
- | <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) |
53
- | <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) |
54
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Компилятор**<br><br>Компилятор Intlayer автоматически извлекает контент из компонентов и создает файлы словарей.<br><br> - [Компилятор](https://intlayer.org/doc/compiler) |
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
- | <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) |
57
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Упрощённый доступ к контенту**<br><br>Не нужно вызывать функцию `t` для каждого элемента контента. Получайте весь ваш контент напрямую с помощью одного хука.<br><br> - [Интеграция с React](https://intlayer.org/doc/environment/create-react-app) |
58
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Единообразная реализация серверных компонентов**<br><br>Идеально подходит для серверных компонентов Next.js, используйте одну и ту же реализацию как для клиентских, так и для серверных компонентов, нет необходимости передавать функцию `t` через каждый серверный компонент.<br><br> - [Серверные компоненты](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Организованный код**<br><br>Поддерживайте ваш код более организованным: 1 компонент = 1 словарь в той же папке. Переводы находятся рядом с соответствующими компонентами, что улучшает сопровождаемость и ясность.<br><br> - [Как работает Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Расширенная маршрутизация**<br><br>Полная поддержка маршрутизации приложений, плавно адаптирующаяся к сложным структурам приложений для Next.js, React, Vite, Vue.js и других.<br><br> - [Изучите интеграцию с Next.js](https://intlayer.org/doc/environment/nextjs) |
61
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Поддержка Markdown**<br><br>Импорт и интерпретация локализованных файлов и удалённого Markdown для многоязычного контента, такого как политики конфиденциальности, документация и прочее. Интерпретируйте и делайте метаданные Markdown доступными в вашем коде.<br><br> - [Файлы контента](https://intlayer.org/doc/concept/content/file) |
62
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Бесплатный визуальный редактор и CMS**<br><br>Для контент-райтеров доступен бесплатный визуальный редактор и CMS, что устраняет необходимость в платформе локализации. Сохраняйте синхронизацию контента с помощью Git или полностью/частично выносите его с помощью CMS.<br><br> - [Редактор Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Контент с поддержкой tree-shaking**<br><br>Контент с поддержкой tree-shaking, уменьшающий размер итогового бандла. Загружает контент для каждого компонента, исключая неиспользуемый контент из вашего бандла. Поддерживает ленивую загрузку для повышения эффективности загрузки приложения. <br><br> - [Оптимизация сборки приложения](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Статическая отрисовка**<br><br>Не блокирует статическую отрисовку. <br><br> - [Интеграция с Next.js](https://intlayer.org/doc/environment/nextjs) |
65
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Перевод с использованием ИИ**<br><br>Преобразуйте ваш сайт на 231 язык всего одним кликом с помощью передовых инструментов перевода на базе ИИ от Intlayer, используя вашего собственного поставщика ИИ / API ключ. <br><br> - [Интеграция CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Автозаполнение](https://intlayer.org/doc/concept/auto-fill) |
66
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Интеграция MCP сервера**<br><br>Обеспечивает MCP (Model Context Protocol) сервер для автоматизации IDE, позволяя бесшовно управлять контентом и рабочими процессами i18n непосредственно в вашей среде разработки. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/mcp_server.md) |
67
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Расширение VSCode**<br><br>Intlayer предоставляет расширение для VSCode, которое поможет вам управлять вашим контентом и переводами, создавать словари, переводить контент и многое другое. <br><br> - [Расширение VSCode](https://intlayer.org/doc/vs-code-extension) |
68
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Взаимодействие**<br><br>Обеспечивает взаимодействие с react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer и react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer и next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer и next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer и vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
69
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Производительность и бенчмарк**<br><br>Использует передовое разделение кода (tree-shaking) и динамическую загрузку для повышения производительности и сохранения максимальной легкости решения. <br><br> - [Производительность и бенчмарк](https://intlayer.org/doc/benchmark) |
49
+ | Особенность | Описание |
50
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | <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 и другие. |
52
+ | <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) |
53
+ | <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) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Компилятор**<br><br>Компилятор Intlayer автоматически извлекает контент из компонентов и создает файлы словарей.<br><br> - [Компилятор](https://intlayer.org/doc/compiler) |
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
+ | <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) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Упрощённый доступ к контенту**<br><br>Не нужно вызывать функцию `t` для каждого элемента контента. Получайте весь ваш контент напрямую с помощью одного хука.<br><br> - [Интеграция с React](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Единообразная реализация серверных компонентов**<br><br>Идеально подходит для серверных компонентов Next.js, используйте одну и ту же реализацию как для клиентских, так и для серверных компонентов, нет необходимости передавать функцию `t` через каждый серверный компонент.<br><br> - [Серверные компоненты](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Организованный код**<br><br>Поддерживайте ваш код более организованным: 1 компонент = 1 словарь в той же папке. Переводы находятся рядом с соответствующими компонентами, что улучшает сопровождаемость и ясность.<br><br> - [Как работает Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Расширенная маршрутизация**<br><br>Полная поддержка маршрутизации приложений, плавно адаптирующаяся к сложным структурам приложений для Next.js, React, Vite, Vue.js и других.<br><br> - [Изучите интеграцию с Next.js](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Поддержка Markdown**<br><br>Импорт и интерпретация локализованных файлов и удалённого Markdown для многоязычного контента, такого как политики конфиденциальности, документация и прочее. Интерпретируйте и делайте метаданные Markdown доступными в вашем коде.<br><br> - [Файлы контента](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Бесплатный визуальный редактор и CMS**<br><br>Для контент-райтеров доступен бесплатный визуальный редактор и CMS, что устраняет необходимость в платформе локализации. Сохраняйте синхронизацию контента с помощью Git или полностью/частично выносите его с помощью CMS.<br><br> - [Редактор Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Контент с поддержкой tree-shaking**<br><br>Контент с поддержкой tree-shaking, уменьшающий размер итогового бандла. Загружает контент для каждого компонента, исключая неиспользуемый контент из вашего бандла. Поддерживает ленивую загрузку для повышения эффективности загрузки приложения. <br><br> - [Оптимизация сборки приложения](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Статическая отрисовка**<br><br>Не блокирует статическую отрисовку. <br><br> - [Интеграция с Next.js](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Перевод с использованием ИИ**<br><br>Преобразуйте ваш сайт на 231 язык всего одним кликом с помощью передовых инструментов перевода на базе ИИ от Intlayer, используя вашего собственного поставщика ИИ / API ключ. <br><br> - [Интеграция CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Автозаполнение](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Интеграция MCP сервера**<br><br>Обеспечивает MCP (Model Context Protocol) сервер для автоматизации IDE, позволяя бесшовно управлять контентом и рабочими процессами i18n непосредственно в вашей среде разработки. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Расширение VSCode**<br><br>Intlayer предоставляет расширение для VSCode, которое поможет вам управлять вашим контентом и переводами, создавать словари, переводить контент и многое другое. <br><br> - [Расширение VSCode](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Взаимодействие**<br><br>Обеспечивает взаимодействие с react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer и react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer и next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer и next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer и vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Адаптеры совместимости Intlayer](https://intlayer.org/doc/compatibility) |
69
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Производительность и бенчмарк**<br><br>Использует передовое разделение кода (tree-shaking) и динамическую загрузку для повышения производительности и сохранения максимальной легкости решения. <br><br> - [Производительность и бенчмарк](https://intlayer.org/doc/benchmark) |
70
70
 
71
71
  ---
72
72
 
@@ -173,7 +173,7 @@ const HomePage = () => {
173
173
  <li><a href="https://intlayer.org/doc/concept/cms" rel=''>Intlayer CMS</a></li>
174
174
  <li><a href="https://intlayer.org/doc/concept/content" rel=''>Словарь</a>
175
175
  <ul>
176
- <li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>Файл декларации контента для каждого языка</a></li>
176
+ <li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>Файл декларации контента для каждого языка</a></li>
177
177
  <li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Перевод</a></li>
178
178
  <li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Перечисление</a></li>
179
179
  <li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Условие</a></li>
@@ -194,7 +194,7 @@ const HomePage = () => {
194
194
  <ul>
195
195
  <li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
196
196
  <li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
197
- <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
197
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
198
198
  <li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js с компилятором</a></li>
199
199
  </ul>
200
200
  </li>
@@ -223,7 +223,7 @@ const HomePage = () => {
223
223
  <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
224
224
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
225
225
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
226
- <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
226
+ <li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
227
227
  <li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
228
228
  <li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
229
229
  <li>