@intlayer/docs 8.9.6-canary.0 → 8.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/docs/ar/benchmark/nextjs.md +8 -8
- package/docs/ar/benchmark/solid.md +8 -8
- package/docs/ar/benchmark/svelte.md +8 -8
- package/docs/ar/benchmark/tanstack.md +7 -7
- package/docs/ar/benchmark/vue.md +8 -8
- package/docs/ar/interest_of_intlayer.md +107 -80
- package/docs/bn/interest_of_intlayer.md +237 -0
- package/docs/cs/interest_of_intlayer.md +237 -0
- package/docs/de/benchmark/nextjs.md +8 -8
- package/docs/de/benchmark/solid.md +8 -8
- package/docs/de/benchmark/svelte.md +8 -8
- package/docs/de/benchmark/tanstack.md +7 -7
- package/docs/de/benchmark/vue.md +8 -8
- package/docs/de/interest_of_intlayer.md +98 -74
- package/docs/en/benchmark/___nextjs.md +8 -8
- package/docs/en/benchmark/___tanstack.md +6 -6
- package/docs/en/benchmark/nextjs.md +8 -8
- package/docs/en/benchmark/solid.md +8 -8
- package/docs/en/benchmark/svelte.md +8 -8
- package/docs/en/benchmark/tanstack.md +7 -7
- package/docs/en/benchmark/vue.md +8 -8
- package/docs/en/configuration.md +2 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en-GB/benchmark/nextjs.md +8 -8
- package/docs/en-GB/benchmark/solid.md +8 -8
- package/docs/en-GB/benchmark/svelte.md +8 -8
- package/docs/en-GB/benchmark/tanstack.md +7 -7
- package/docs/en-GB/benchmark/vue.md +8 -8
- package/docs/en-GB/configuration.md +2 -1
- package/docs/en-GB/interest_of_intlayer.md +59 -33
- package/docs/es/benchmark/nextjs.md +8 -8
- package/docs/es/benchmark/solid.md +8 -8
- package/docs/es/benchmark/svelte.md +8 -8
- package/docs/es/benchmark/tanstack.md +7 -7
- package/docs/es/benchmark/vue.md +8 -8
- package/docs/es/interest_of_intlayer.md +28 -2
- package/docs/fr/benchmark/nextjs.md +8 -8
- package/docs/fr/benchmark/solid.md +8 -8
- package/docs/fr/benchmark/svelte.md +8 -8
- package/docs/fr/benchmark/tanstack.md +7 -7
- package/docs/fr/benchmark/vue.md +8 -8
- package/docs/fr/interest_of_intlayer.md +47 -21
- package/docs/hi/benchmark/nextjs.md +8 -8
- package/docs/hi/benchmark/solid.md +8 -8
- package/docs/hi/benchmark/svelte.md +8 -8
- package/docs/hi/benchmark/tanstack.md +7 -7
- package/docs/hi/benchmark/vue.md +8 -8
- package/docs/hi/interest_of_intlayer.md +114 -88
- package/docs/id/benchmark/nextjs.md +8 -8
- package/docs/id/benchmark/solid.md +8 -8
- package/docs/id/benchmark/svelte.md +8 -8
- package/docs/id/benchmark/tanstack.md +7 -7
- package/docs/id/benchmark/vue.md +8 -8
- package/docs/id/interest_of_intlayer.md +81 -81
- package/docs/it/benchmark/nextjs.md +8 -8
- package/docs/it/benchmark/solid.md +8 -8
- package/docs/it/benchmark/svelte.md +8 -8
- package/docs/it/benchmark/tanstack.md +7 -7
- package/docs/it/benchmark/vue.md +4 -4
- package/docs/it/interest_of_intlayer.md +96 -69
- package/docs/ja/benchmark/nextjs.md +8 -8
- package/docs/ja/benchmark/solid.md +8 -8
- package/docs/ja/benchmark/svelte.md +8 -8
- package/docs/ja/benchmark/tanstack.md +7 -7
- package/docs/ja/benchmark/vue.md +8 -8
- package/docs/ja/interest_of_intlayer.md +108 -81
- package/docs/ko/benchmark/nextjs.md +8 -8
- package/docs/ko/benchmark/solid.md +8 -8
- package/docs/ko/benchmark/svelte.md +8 -8
- package/docs/ko/benchmark/tanstack.md +7 -7
- package/docs/ko/benchmark/vue.md +8 -8
- package/docs/ko/interest_of_intlayer.md +101 -74
- package/docs/nl/interest_of_intlayer.md +237 -0
- package/docs/pl/benchmark/nextjs.md +8 -8
- package/docs/pl/benchmark/solid.md +8 -8
- package/docs/pl/benchmark/svelte.md +8 -8
- package/docs/pl/benchmark/tanstack.md +7 -7
- package/docs/pl/benchmark/vue.md +8 -8
- package/docs/pl/interest_of_intlayer.md +85 -83
- package/docs/pt/benchmark/nextjs.md +8 -8
- package/docs/pt/benchmark/solid.md +8 -8
- package/docs/pt/benchmark/svelte.md +8 -8
- package/docs/pt/benchmark/tanstack.md +7 -7
- package/docs/pt/benchmark/vue.md +8 -8
- package/docs/pt/interest_of_intlayer.md +91 -67
- package/docs/ru/benchmark/nextjs.md +8 -8
- package/docs/ru/benchmark/solid.md +6 -7
- package/docs/ru/benchmark/svelte.md +8 -8
- package/docs/ru/benchmark/tanstack.md +7 -7
- package/docs/ru/benchmark/vue.md +8 -8
- package/docs/ru/interest_of_intlayer.md +95 -69
- package/docs/tr/benchmark/nextjs.md +8 -8
- package/docs/tr/benchmark/solid.md +8 -8
- package/docs/tr/benchmark/svelte.md +8 -8
- package/docs/tr/benchmark/tanstack.md +7 -7
- package/docs/tr/benchmark/vue.md +8 -8
- package/docs/tr/interest_of_intlayer.md +94 -89
- package/docs/uk/benchmark/nextjs.md +8 -8
- package/docs/uk/benchmark/solid.md +8 -8
- package/docs/uk/benchmark/svelte.md +8 -8
- package/docs/uk/benchmark/tanstack.md +7 -7
- package/docs/uk/benchmark/vue.md +8 -8
- package/docs/uk/interest_of_intlayer.md +94 -96
- package/docs/ur/interest_of_intlayer.md +237 -0
- package/docs/vi/benchmark/nextjs.md +8 -8
- package/docs/vi/benchmark/solid.md +8 -8
- package/docs/vi/benchmark/svelte.md +8 -8
- package/docs/vi/benchmark/tanstack.md +7 -7
- package/docs/vi/benchmark/vue.md +8 -8
- package/docs/vi/interest_of_intlayer.md +82 -79
- package/docs/zh/benchmark/nextjs.md +8 -8
- package/docs/zh/benchmark/solid.md +6 -7
- package/docs/zh/benchmark/svelte.md +7 -7
- package/docs/zh/benchmark/tanstack.md +7 -7
- package/docs/zh/benchmark/vue.md +8 -8
- package/docs/zh/interest_of_intlayer.md +99 -72
- package/docs/zh-TW/interest_of_intlayer.md +237 -0
- package/package.json +6 -6
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
createdAt: 2024-08-14
|
|
3
3
|
updatedAt: 2025-09-27
|
|
4
4
|
title: Переваги Intlayer
|
|
5
|
-
description:
|
|
5
|
+
description: Відкрийте для себе переваги та користь використання Intlayer у ваших проектах. Зрозумійте, чому Intlayer виділяється серед інших фреймворків.
|
|
6
6
|
keywords:
|
|
7
7
|
- Переваги
|
|
8
|
-
-
|
|
8
|
+
- Користь
|
|
9
9
|
- Intlayer
|
|
10
|
-
-
|
|
10
|
+
- Фреймворк
|
|
11
11
|
- Порівняння
|
|
12
12
|
slugs:
|
|
13
13
|
- doc
|
|
@@ -15,26 +15,26 @@ slugs:
|
|
|
15
15
|
history:
|
|
16
16
|
- version: 7.3.1
|
|
17
17
|
date: 2025-11-27
|
|
18
|
-
changes: "
|
|
18
|
+
changes: "Випуск Компілятора"
|
|
19
19
|
- version: 5.8.0
|
|
20
20
|
date: 2025-08-19
|
|
21
|
-
changes: "
|
|
21
|
+
changes: "Оновлення порівняльної таблиці"
|
|
22
22
|
- version: 5.5.10
|
|
23
23
|
date: 2025-06-29
|
|
24
|
-
changes: "
|
|
24
|
+
changes: "Початкова історія"
|
|
25
25
|
---
|
|
26
26
|
|
|
27
27
|
# Чому варто розглянути Intlayer?
|
|
28
28
|
|
|
29
29
|
## Що таке Intlayer?
|
|
30
30
|
|
|
31
|
-
**Intlayer
|
|
31
|
+
**Intlayer** — це бібліотека інтернаціоналізації, розроблена спеціально для розробників JavaScript. Вона дозволяє оголошувати ваш вміст у будь-якому місці вашого коду. Вона перетворює оголошення багатомовного вмісту на структуровані словники для легкої інтеграції у ваш код. Використовуючи TypeScript, **Intlayer** робить вашу розробку більш надійною та ефективною.
|
|
32
32
|
|
|
33
|
-
## Чому
|
|
33
|
+
## Чому був створений Intlayer?
|
|
34
34
|
|
|
35
|
-
Intlayer
|
|
35
|
+
Intlayer був створений для вирішення спільної проблеми, яка зачіпає всі популярні бібліотеки i18n, такі як `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` та `vue-i18n`.
|
|
36
36
|
|
|
37
|
-
Усі ці рішення
|
|
37
|
+
Усі ці рішення використовують централізований підхід для перерахування та управління вашим вмістом. Наприклад:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
.
|
|
@@ -49,7 +49,7 @@ Intlayer було створено, щоб вирішити поширену п
|
|
|
49
49
|
└── index.tsx
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Або тут з використанням
|
|
52
|
+
Або тут з використанням просторів назв (namespaces):
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
.
|
|
@@ -70,23 +70,23 @@ Intlayer було створено, щоб вирішити поширену п
|
|
|
70
70
|
└── index.tsx
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
Такий тип архітектури уповільнює процес розробки
|
|
73
|
+
Такий тип архітектури уповільнює процес розробки та ускладнює підтримку кодової бази з кількох причин:
|
|
74
74
|
|
|
75
|
-
1. **Для
|
|
76
|
-
- Створити новий
|
|
77
|
-
- Не забути імпортувати новий
|
|
78
|
-
- Перекласти ваш
|
|
75
|
+
1. **Для кожного нового створеного компонента ви повинні:**
|
|
76
|
+
- Створити новий ресурс/простір назв у папці `locales`
|
|
77
|
+
- Не забути імпортувати новий простір назв на вашій сторінці
|
|
78
|
+
- Перекласти ваш вміст (часто робиться вручну шляхом копіювання/вставлення від постачальників ШІ)
|
|
79
79
|
|
|
80
|
-
2.
|
|
81
|
-
-
|
|
82
|
-
- Перекласти ваш
|
|
83
|
-
- Переконатися, що ваш
|
|
84
|
-
- Перевірити,
|
|
85
|
-
- Переконатися, що структура ваших JSON-файлів однакова для всіх
|
|
80
|
+
2. **Для будь-якої зміни у ваших компонентах ви повинні:**
|
|
81
|
+
- Шукати пов’язаний ресурс/простір назв (далеко від компонента)
|
|
82
|
+
- Перекласти ваш вміст
|
|
83
|
+
- Переконатися, що ваш вміст актуальний для будь-якої мови
|
|
84
|
+
- Перевірити, чи ваш простір назв не містить невикористаних ключів/значень
|
|
85
|
+
- Переконатися, що структура ваших JSON-файлів однакова для всіх мов
|
|
86
86
|
|
|
87
|
-
У професійних
|
|
87
|
+
У професійних проектах, які використовують ці рішення, часто застосовуються платформи локалізації для управління перекладом вмісту. Однак для великих проектів це може швидко стати дорогим.
|
|
88
88
|
|
|
89
|
-
Щоб вирішити цю проблему, Intlayer
|
|
89
|
+
Щоб вирішити цю проблему, Intlayer використовує підхід, який обмежує область дії вашого вмісту кожним компонентом і тримає ваш вміст поруч із вашим компонентом, як ми часто робимо з CSS (`styled-components`), типами, документацією (`storybook`) або юніт-тестами (`jest`).
|
|
90
90
|
|
|
91
91
|
```bash codeFormat="typescript"
|
|
92
92
|
.
|
|
@@ -125,9 +125,7 @@ const componentExampleContent = {
|
|
|
125
125
|
key: "component-example",
|
|
126
126
|
content: {
|
|
127
127
|
myTranslatedContent: t({
|
|
128
|
-
uk: "Привіт, світ",
|
|
129
128
|
en: "Hello World",
|
|
130
|
-
uk: "Привіт, світ",
|
|
131
129
|
es: "Hola Mundo",
|
|
132
130
|
fr: "Bonjour le monde",
|
|
133
131
|
}),
|
|
@@ -151,89 +149,89 @@ export const ComponentExample = () => {
|
|
|
151
149
|
|
|
152
150
|
1. **Збільшити швидкість розробки**
|
|
153
151
|
- Файли `.content.{{ts|mjs|cjs|json}}` можна створювати за допомогою розширення VSCode
|
|
154
|
-
- Інструменти автозаповнення
|
|
152
|
+
- Інструменти автозаповнення ШІ у вашій IDE (наприклад, GitHub Copilot) можуть допомогти вам оголосити вміст, зменшуючи кількість копіювання/вставлення
|
|
155
153
|
|
|
156
|
-
2. **Очистити
|
|
154
|
+
2. **Очистити вашу кодову базу**
|
|
157
155
|
- Зменшити складність
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
3. **Легше дублювати
|
|
161
|
-
- Обмежуючи ризик впливу на
|
|
162
|
-
-
|
|
163
|
-
|
|
164
|
-
4.
|
|
165
|
-
- Якщо ви не використовуєте компонент, Intlayer не
|
|
166
|
-
- Якщо ви видалите компонент, вам буде
|
|
167
|
-
|
|
168
|
-
5.
|
|
169
|
-
-
|
|
170
|
-
- Переклади можна легко виконати за допомогою інструментів автозаповнення
|
|
171
|
-
|
|
172
|
-
6.
|
|
173
|
-
- Якщо компонент завантажується
|
|
174
|
-
|
|
175
|
-
## Додаткові
|
|
176
|
-
|
|
177
|
-
|
|
|
178
|
-
|
|
|
179
|
-
| 
|
|
180
|
-
| 
|
|
184
|
-
| 
|
|
185
|
-
| 
|
|
186
|
-
| 
|
|
187
|
-
| 
|
|
189
|
-
| 
|
|
191
|
-
| 
|
|
194
|
-
| 
|
|
195
|
-
| 
|
|
196
|
-
| 
|
|
197
|
-
| Тестування відсутніх перекладів (CLI/CI)
|
|
156
|
+
- Покращити підтримку
|
|
157
|
+
|
|
158
|
+
3. **Легше дублювати компоненти та пов’язаний з ними вміст (Приклад: компоненти входу/реєстрації тощо)**
|
|
159
|
+
- Обмежуючи ризик впливу на вміст інших компонентів
|
|
160
|
+
- Копіюючи/вставляючи ваш вміст з одного додатка в інший без зовнішніх залежностей
|
|
161
|
+
|
|
162
|
+
4. **Уникнути забруднення кодової бази невикористаними ключами/значеннями для невикористаних компонентів**
|
|
163
|
+
- Якщо ви не використовуєте компонент, Intlayer не імпортуватиме пов’язаний з ним вміст
|
|
164
|
+
- Якщо ви видалите компонент, вам буде легше згадати про видалення пов’язаного з ним вмісту, оскільки він буде знаходитися в тій же папці
|
|
165
|
+
|
|
166
|
+
5. **Зменшити когнітивне навантаження на ШІ-агентів для оголошення вашого багатомовного вмісту**
|
|
167
|
+
- ШІ-агенту не доведеться сканувати всю кодову базу, щоб дізнатися, де реалізувати ваш вміст
|
|
168
|
+
- Переклади можна легко виконати за допомогою інструментів автозаповнення ШІ у вашій IDE (наприклад, GitHub Copilot)
|
|
169
|
+
|
|
170
|
+
6. **Оптимізувати продуктивність завантаження**
|
|
171
|
+
- Якщо компонент завантажується ледаче (lazy-loaded), пов’язаний з ним вміст завантажуватиметься одночасно
|
|
172
|
+
|
|
173
|
+
## Додаткові функції Intlayer
|
|
174
|
+
|
|
175
|
+
| Функція | Опис |
|
|
176
|
+
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
177
|
+
|  | **Підтримка різних фреймворків**<br><br>Intlayer сумісний з усіма основними фреймворками та бібліотеками, включаючи Next.js, React, Vite, Vue.js, Nuxt, Preact, Express та інші. |
|
|
178
|
+
|  | **Управління вмістом на основі JavaScript**<br><br>Використовуйте гнучкість JavaScript для ефективного визначення та управління вашим вмістом. <br><br> - [Оголошення вмісту](https://intlayer.org/doc/concept/content) |
|
|
179
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Функція" width="700"> | **Компілятор**<br><br>Компілятор Intlayer автоматично витягує вміст із компонентів і генерує файли словників.<br><br> - [Компілятор](https://intlayer.org/doc/compiler) |
|
|
180
|
+
|  | **Файл оголошення вмісту для кожної мови**<br><br>Прискорте розробку, оголосивши вміст один раз перед автоматичною генерацією.<br><br> - [Файл оголошення вмісту для кожної мови](https://intlayer.org/doc/concept/per-locale-file) |
|
|
181
|
+
|  | **Середовище Type-Safe**<br><br>Використовуйте TypeScript, щоб переконатися, що ваші визначення вмісту та код не містять помилок, а також користуйтеся перевагами автозаповнення IDE.<br><br> - [Конфігурація TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
182
|
+
|  | **Спрощене налаштування**<br><br>Швидко розпочніть роботу з мінімальною конфігурацією. Легко налаштовуйте параметри інтернаціоналізації, маршрутизації, ШІ, збірки та обробки вмісту. <br><br> - [Дослідіть інтеграцію Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
183
|
+
|  | **Спрощене отримання вмісту**<br><br>Не потрібно викликати функцію `t` для кожного елемента вмісту. Отримуйте весь вміст безпосередньо за допомогою одного хука.<br><br> - [Інтеграція React](https://intlayer.org/doc/environment/create-react-app) |
|
|
184
|
+
|  | **Узгоджена реалізація Server Component**<br><br>Ідеально підходить для серверних компонентів Next.js, використовуйте ту саму реалізацію для клієнтських і серверних компонентів, не потрібно передавати функцію `t` через кожен серверний компонент. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
185
|
+
|  | **Організована кодова база**<br><br>Тримайте кодову базу більш організованою: 1 компонент = 1 словник у тій же папці. Переклади поруч із їхніми відповідними компонентами покращують підтримку та чіткість. <br><br> - [Як працює Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
186
|
+
|  | **Покращена маршрутизація**<br><br>Повна підтримка маршрутизації додатків, що плавно адаптується до складних структур додатків для Next.js, React, Vite, Vue.js тощо.<br><br> - [Дослідіть інтеграцію Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
187
|
+
|  | **Підтримка Markdown**<br><br>Імпортуйте та інтерпретуйте локальні файли та віддалений Markdown для багатомовного вмісту, такого як політики конфіденційності, документація тощо. Інтерпретуйте та робіть метадані Markdown доступними у вашому коді.<br><br> - [Файли вмісту](https://intlayer.org/doc/concept/content/file) |
|
|
188
|
+
|  | **Безкоштовний візуальний редактор та CMS**<br><br>Для авторів вмісту доступний безкоштовний візуальний редактор та CMS, що усуває потребу в платформі локалізації. Синхронізуйте свій вміст за допомогою Git або повністю або частково винесіть його на аутсорс за допомогою CMS.<br><br> - [Редактор Intlayer](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
189
|
+
|  | **Вміст типу Tree-shakable**<br><br>Вміст типу tree-shakable, що зменшує розмір кінцевого пакета. Завантажує вміст на рівні компонента, виключаючи будь-який невикористаний вміст із вашого пакета. Підтримує ледаче завантаження для підвищення ефективності завантаження додатка. <br><br> - [Оптимізація збірки додатка](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
190
|
+
|  | **Статичний рендеринг**<br><br>Не блокує статичний рендеринг. <br><br> - [Інтеграція Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
191
|
+
|  | **Переклад на основі ШІ**<br><br>Перетворіть свій веб-сайт на 231 мову лише одним кліком за допомогою розширених інструментів перекладу на основі ШІ від Intlayer, використовуючи власного постачальника ШІ/ключ API. <br><br> - [Інтеграція CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Автозаповнення](https://intlayer.org/doc/concept/auto-fill) |
|
|
192
|
+
|  | **Інтеграція з сервером MCP**<br><br>Забезпечує сервер MCP (Model Context Protocol) для автоматизації IDE, дозволяючи безперешкодне управління вмістом та робочі процеси i18n безпосередньо у вашому середовищі розробки. <br><br> - [Сервер MCP](https://github.com/aymericzip/intlayer/blob/main/docs/uk/mcp_server.md) |
|
|
193
|
+
|  | **Розширення VSCode**<br><br>Intlayer надає розширення VSCode, яке допоможе вам керувати вмістом і перекладами, створювати словники, перекладати вміст тощо. <br><br> - [Розширення VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
194
|
+
|  | **Взаємосумісність**<br><br>Дозволяє взаємосумісність з react-i18next, next-i18next, next-intl та react-intl. <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) |
|
|
195
|
+
| Тестування відсутніх перекладів (CLI/CI) | ✅ CLI: npx intlayer content test (аудит, сумісний з CI) |
|
|
198
196
|
|
|
199
197
|
## Порівняння Intlayer з іншими рішеннями
|
|
200
198
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
| **Переклади поруч із компонентами**
|
|
204
|
-
| **Інтеграція TypeScript**
|
|
205
|
-
| **Виявлення
|
|
206
|
-
| **Багатий вміст (JSX/Markdown/компоненти)**
|
|
207
|
-
|
|
|
208
|
-
| **Візуальний редактор**
|
|
209
|
-
| **Локалізована маршрутизація**
|
|
210
|
-
|
|
|
211
|
-
|
|
|
212
|
-
| **Форматування (дати, числа, валюти)**
|
|
213
|
-
| **Формат
|
|
214
|
-
| **Підтримка ICU**
|
|
215
|
-
|
|
|
216
|
-
| **Екосистема / Спільнота**
|
|
217
|
-
|
|
|
218
|
-
| **Tree-shaking (
|
|
219
|
-
|
|
|
220
|
-
| **Очищення невикористаного
|
|
221
|
-
| **Управління великими
|
|
199
|
+
| Функція | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
|
201
|
+
| **Переклади поруч із компонентами** | ✅ Так, вміст розміщено разом із кожним компонентом | ❌ Ні | ❌ Ні | ❌ Ні | ❌ Ні | ❌ Ні | ✅ Так — за умови використання `Single File Components` (SFCs) |
|
|
202
|
+
| **Інтеграція TypeScript** | ✅ Просунута, автоматично згенеровані строгі типи | ⚠️ Базова; потрібна додаткова конфігурація для безпеки | ✅ Добре, але менш строго | ⚠️ Типізація, потрібна конфігурація | ✅ Добре | ⚠️ Базова | ✅ Добре (типи доступні; безпека ключів потребує налаштування) |
|
|
203
|
+
| **Виявлення відсутніх перекладів** | ✅ Підсвічування помилок TypeScript та помилки/попередження під час збірки | ⚠️ Переважно рядки відкату (fallback) під час виконання | ⚠️ Рядки відкату | ⚠️ Потрібна додаткова конфігурація | ⚠️ Відкат під час виконання | ⚠️ Відкат під час виконання | ⚠️ Відкат/попередження під час виконання (можна налаштувати) |
|
|
204
|
+
| **Багатий вміст (JSX/Markdown/компоненти)** | ✅ Пряма підтримка | ⚠️ Обмежено / лише інтерполяція | ⚠️ Синтаксис ICU, не справжній JSX | ⚠️ Обмежено | ❌ Не розраховано на багаті вузли | ⚠️ Обмежено | ⚠️ Обмежено (компоненти через `<i18n-t>`, Markdown через плагіни) |
|
|
205
|
+
| **Переклад на основі ШІ** | ✅ Так, підтримує кількох постачальників ШІ. Можна використовувати з власними ключами API. Враховує контекст додатка та обсяг вмісту | ❌ Ні | ❌ Ні | ❌ Ні | ❌ Ні | ❌ Ні | ❌ Ні |
|
|
206
|
+
| **Візуальний редактор** | ✅ Так, локальний візуальний редактор + опціональна CMS; може виносити вміст кодової бази на аутсорс; вбудовуваний | ❌ Ні / доступно через зовнішні платформи локалізації | ❌ Ні / доступно через зовнішні платформи локалізації | ❌ Ні / доступно через зовнішні платформи локалізації | ❌ Ні / доступно через зовнішні платформи локалізації | ❌ Ні / доступно через зовнішні платформи локалізації | ❌ Ні / доступно через зовнішні платформи локалізації |
|
|
207
|
+
| **Локалізована маршрутизація** | ✅ Так, підтримує локалізовані шляхи "з коробки" (працює з Next.js та Vite) | ⚠️ Немає вбудованої, потрібні плагіни (наприклад, `next-i18next`) або власна конфігурація маршрутизатора | ❌ Ні, лише форматування повідомлень, маршрутизація має бути ручною | ⚠️ Немає вбудованої, потрібні плагіни або ручне налаштування | ✅ Вбудовано, App Router підтримує сегмент `[locale]` | ✅ Вбудовано | ✅ Вбудовано |
|
|
208
|
+
| **Динамічне генерування маршрутів** | ✅ Так | ⚠️ Плагін/екосистема або ручне налаштування | ❌ Не надається | ⚠️ Плагін/вручну | ✅ Так | ✅ Так | ❌ Не надається (надає Nuxt i18n) |
|
|
209
|
+
| **Множина** | ✅ Шаблони на основі перерахувань (enums) | ✅ Можна налаштувати (плагіни, такі як i18next-icu) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ Добре | ✅ Добре | ✅ Вбудовані правила множини |
|
|
210
|
+
| **Форматування (дати, числа, валюти)** | ✅ Оптимізовані форматувальники (Intl під капотом) | ⚠️ Через плагіни або власне використання Intl | ✅ Форматувальники ICU | ✅ Хелпери ICU/CLI | ✅ Добре (хелпери Intl) | ✅ Добре (хелпери Intl) | ✅ Вбудовані форматувальники дат/чисел (Intl) |
|
|
211
|
+
| **Формат вмісту** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml в роботі) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **Підтримка ICU** | ⚠️ В роботі | ⚠️ Через плагін (i18next-icu) | ✅ Так | ✅ Так | ✅ Так | ⚠️ Через плагін (`i18next-icu`) | ⚠️ Через власний форматувальник/компілятор |
|
|
213
|
+
| **Хелпери SEO (hreflang, sitemap)** | ✅ Вбудовані інструменти: хелпери для sitemap, robots.txt, метаданих | ⚠️ Плагіни спільноти / вручну | ❌ Не є основним | ❌ Не є основним | ✅ Добре | ✅ Добре | ❌ Не є основним (надає хелпери Nuxt i18n) |
|
|
214
|
+
| **Екосистема / Спільнота** | ⚠️ Менша, але швидко зростає та чуйно реагує | ✅ Найбільша та зріла | ✅ Велика | ⚠️ Менша | ✅ Середнього розміру, зосереджена на Next.js | ✅ Середнього розміру, зосереджена на Next.js | ✅ Велика в екосистемі Vue |
|
|
215
|
+
| **Server-side Rendering та Server Components** | ✅ Так, спрощено для SSR / React Server Components | ⚠️ Підтримується на рівні сторінки, але потрібно передавати t-функції вниз по дереву компонентів | ⚠️ Підтримується на рівні сторінки з додатковим налаштуванням, але потрібно передавати t-функції вниз по дереву компонентів | ✅ Підтримується, потрібне налаштування | ⚠️ Підтримується на рівні сторінки, але потрібно передавати t-функції вниз по дереву компонентів | ⚠️ Підтримується на рівні сторінки, але потрібно передавати t-функції вниз по дереву компонентів | ✅ SSR через Nuxt/Vue SSR (без RSC) |
|
|
216
|
+
| **Tree-shaking (завантаження лише використаного)** | ✅ Так, для кожного компонента під час збірки через плагіни Babel/SWC | ⚠️ Зазвичай завантажує все (можна покращити через простори назв / code-splitting) | ⚠️ Зазвичай завантажує все | ❌ Не типово | ⚠️ Частково | ⚠️ Частково | ⚠️ Частково (з code-splitting / ручним налаштуванням) |
|
|
217
|
+
| **Ледаче завантаження (Lazy loading)** | ✅ Так, для кожної мови / для кожного словника | ✅ Так (наприклад, бекенди/простори назв за запитом) | ✅ Так (розділення мовних пакетів) | ✅ Так (динамічний імпорт каталогів) | ✅ Так (на маршрут / на мову), потрібне управління просторами назв | ✅ Так (на маршрут / на мову), потрібне управління просторами назв | ✅ Так (асинхронні мовні повідомлення) |
|
|
218
|
+
| **Очищення невикористаного вмісту** | ✅ Так, для кожного словника під час збірки | ❌ Ні, лише через ручне розділення просторів назв | ❌ Ні, усі оголошені повідомлення пакуються | ✅ Так, невикористані ключі виявляються та видаляються при збірці | ❌ Ні, можна керувати вручну за допомогою управління просторами назв | ❌ Ні, можна керувати вручну за допомогою управління просторами назв | ❌ Ні, можливо лише через ручне ледаче завантаження |
|
|
219
|
+
| **Управління великими проектами** | ✅ Заохочує модульність, підходить для дизайн-систем | ⚠️ Потрібна хороша дисципліна файлів | ⚠️ Центральні каталоги можуть стати великими | ⚠️ Може стати складним | ✅ Модульно з налаштуванням | ✅ Модульно з налаштуванням | ✅ Модульно з налаштуванням Vue Router/Nuxt i18n |
|
|
222
220
|
|
|
223
221
|
---
|
|
224
222
|
|
|
225
|
-
## Зірки GitHub
|
|
223
|
+
## Зірки на GitHub
|
|
226
224
|
|
|
227
|
-
Зірки GitHub є
|
|
225
|
+
Зірки на GitHub є потужним індикатором популярності проекту, довіри спільноти та довгострокової актуальності. Хоча вони не є прямим показником технічної якості, вони відображають, скільки розробників вважають проект корисним, стежать за його розвитком і, ймовірно, впровадять його. Для оцінки цінності проекту зірки допомагають порівняти інтерес до альтернатив і дають уявлення про зростання екосистеми.
|
|
228
226
|
|
|
229
|
-
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
230
228
|
|
|
231
229
|
---
|
|
232
230
|
|
|
233
|
-
##
|
|
231
|
+
## Взаємосумісність
|
|
234
232
|
|
|
235
|
-
`intlayer` також може допомогти
|
|
233
|
+
`intlayer` також може допомогти в управлінні просторами назв `react-intl`, `react-i18next`, `next-intl`, `next-i18next` та `vue-i18n`.
|
|
236
234
|
|
|
237
|
-
За допомогою `intlayer` ви можете оголосити
|
|
235
|
+
За допомогою `intlayer` ви можете оголосити свій вміст у форматі вашої улюбленої бібліотеки i18n, і intlayer згенерує простори назв у вибраному вами місці (наприклад: `/messages/{{locale}}/{{namespace}}.json`).
|
|
238
236
|
|
|
239
|
-
|
|
237
|
+
Для отримання додаткової інформації зверніться до [опцій `dictionaryOutput` та `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration).
|