@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.
- package/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +4 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- 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-
|
|
3
|
+
updatedAt: 2026-08-10
|
|
4
4
|
title: LSP-сервер Intlayer
|
|
5
|
-
description: Узнайте, как языковой сервер Intlayer
|
|
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
|
|
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
|
-
##
|
|
36
|
+
## Возможности
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
| Возможность | Сочетание клавиш | Что делает |
|
|
39
|
+
| ------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
40
|
+
| **Перейти к определению** | `F12` / `Cmd+Клик` | Перейти от ключа словаря или использования поля к его объявлению в файле контента |
|
|
41
|
+
| **Найти все ссылки** | `Shift+F12` | Из файла контента показать все места вызова, использующие этот ключ или поле |
|
|
42
|
+
| **Всплывающая подсказка** | навести курсор | Посмотреть поля словаря или переведённое значение поля, не покидая файл |
|
|
43
|
+
| **Автодополнение** | `"` `'` `` ` `` `.` | Предлагать объявленные ключи словарей внутри геттера и поля контента после `.` или при деструктуризации |
|
|
44
|
+
| **Диагностика** | автоматически | Предупреждать, когда ключ не объявлен ни в одном файле контента |
|
|
34
45
|
|
|
35
|
-
|
|
46
|
+
Стоит знать ещё о двух особенностях:
|
|
36
47
|
|
|
37
|
-
|
|
48
|
+
- **Объединённые словари** — ключ, разделённый между несколькими файлами контента, возвращает по одному результату на файл, поэтому вы можете перейти к каждому объявлению.
|
|
49
|
+
- **Поддержка монорепозиториев** — сервер находит _ближайший_ к каждому файлу `intlayer.config.*`, поэтому несколько проектов в одном рабочем пространстве получают собственные словари.
|
|
38
50
|
|
|
39
|
-
|
|
51
|
+
### Поддерживаемые вызовы
|
|
40
52
|
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
90
|
+
Установите его глобально (`npm install -g @intlayer/lsp`), если вашему редактору нужен `intlayer-lsp` в `PATH` — это относится к плагину Claude Code и к любой конфигурации ниже, которая вызывает бинарный файл напрямую.
|
|
87
91
|
|
|
88
92
|
---
|
|
89
93
|
|
|
90
|
-
## Настройка
|
|
94
|
+
## Настройка
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
<Tabs defaultTab="vscode">
|
|
97
|
+
<Tab label="VS Code" value="vscode">
|
|
93
98
|
|
|
94
|
-
|
|
99
|
+
Установите [расширение Intlayer для VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). Языковой сервер входит в него начиная с v8.12.0 и запускается автоматически — **настройка не требуется**.
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
npm install -g @intlayer/lsp
|
|
98
|
-
```
|
|
101
|
+
Другие возможности описаны в [документации расширения VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
+
</Tab>
|
|
104
|
+
<Tab label="Cursor / Windsurf" value="cursor">
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
111
|
+
Intlayer поставляет **плагин для Claude Code**, размещённый в репозитории Intlayer. Он даёт Claude Code настоящее разрешение символов для ваших ключей словарей вместо отката к `grep`.
|
|
109
112
|
|
|
110
|
-
|
|
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
|
-
|
|
122
|
+
`install` также включает плагин. **Перезапустите Claude Code** — языковые серверы загружаются при старте, поэтому до перезапуска плагин не действует.
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
После этого Claude Code запускает сервер для файлов `.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.astro` и `.svelte` и использует `goToDefinition`, `findReferences` и `hover` при навигации по коду.
|
|
121
125
|
|
|
122
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
201
|
-
},
|
|
202
|
-
"
|
|
203
|
-
|
|
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
|
-
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## Настройка для интерфейсов командной строки ИИ-агентов (Claude Code, Codex и др.)
|
|
223
|
-
|
|
224
|
-
**Claude Code** имеет первоклассную поддержку плагинов LSP — следуйте инструкциям по [настройке плагина Claude Code](#настройка-в-качестве-плагина-claude-code) выше, чтобы получить полноценную функцию «Перейти к определению» прямо в сессиях терминала.
|
|
161
|
+
Заполнитель `"..."` сохраняет языковые серверы Zed по умолчанию рядом с сервером Intlayer.
|
|
225
162
|
|
|
226
|
-
|
|
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
|
-
--
|
|
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
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## Ручная настройка в других редакторах
|
|
275
|
-
|
|
276
|
-
Любой редактор с поддержкой Language Server Protocol может использовать `@intlayer/lsp`. Характеристики сервера:
|
|
197
|
+
После перезапуска Neovim `gd` на ключе словаря выполняет переход к определению, а `gr` — поиск ссылок.
|
|
277
198
|
|
|
278
|
-
|
|
279
|
-
|
|
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
|
-
|
|
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
|
-
|
|
262
|
+
**Claude Code** работает как полноценный LSP-клиент — см. вкладку выше.
|
|
331
263
|
|
|
332
|
-
|
|
264
|
+
**OpenAI Codex** и большинство других терминальных инструментов не являются LSP-клиентами: они читают и пишут файлы напрямую. Запуск сервера сам по себе им не поможет; польза появляется, когда он активен в сопутствующем редакторе, чей индекс агент может запрашивать (Cursor Composer, Windsurf Cascade, Copilot Chat).
|
|
333
265
|
|
|
334
|
-
|
|
335
|
-
2. Он сканирует вызовы геттеров (`useIntlayer`, `getIntlayer` и т. д.) с помощью регулярного выражения.
|
|
336
|
-
3. Он проверяет, попадает ли позиция курсора внутрь одного из этих вызовов.
|
|
337
|
-
4. Если попадает, он извлекает ключ словаря (группа захвата 3 регулярного выражения) и вызывает `getUnmergedDictionaries()` для поиска каждого файла контента, объявляющего этот ключ.
|
|
338
|
-
5. Он считывает каждый соответствующий файл и находит точную строку с `key: "<key>"`, чтобы точно позиционировать курсор.
|
|
339
|
-
6. Он возвращает массив объектов `Location` — по одному на каждый исходный файл.
|
|
266
|
+
---
|
|
340
267
|
|
|
341
|
-
|
|
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
|
-
|
|
|
350
|
-
|
|
|
351
|
-
| Определения не найдены
|
|
352
|
-
|
|
|
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/
|
|
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-
|
|
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/
|
|
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>
|