@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-14
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-27
|
|
4
4
|
title: Преимущества Intlayer
|
|
5
5
|
description: Узнайте о преимуществах и достоинствах использования Intlayer в ваших проектах. Поймите, почему Intlayer выделяется среди других фреймворков.
|
|
6
6
|
keywords:
|
|
@@ -13,6 +13,9 @@ slugs:
|
|
|
13
13
|
- doc
|
|
14
14
|
- why
|
|
15
15
|
history:
|
|
16
|
+
- version: 7.3.1
|
|
17
|
+
date: 2025-11-27
|
|
18
|
+
changes: "Выпуск компилятора"
|
|
16
19
|
- version: 5.8.0
|
|
17
20
|
date: 2025-08-19
|
|
18
21
|
changes: "Обновление сравнительной таблицы"
|
|
@@ -21,15 +24,15 @@ history:
|
|
|
21
24
|
changes: "Инициализация истории"
|
|
22
25
|
---
|
|
23
26
|
|
|
24
|
-
# Почему стоит
|
|
27
|
+
# Почему стоит выбрать Intlayer?
|
|
25
28
|
|
|
26
29
|
## Что такое Intlayer?
|
|
27
30
|
|
|
28
|
-
**Intlayer**
|
|
31
|
+
**Intlayer** — это библиотека интернационализации, разработанная специально для JavaScript-разработчиков. Она позволяет объявлять контент в любом месте вашего кода. Она преобразует объявления многоязычного контента в структурированные словари для легкой интеграции в ваш код. Благодаря использованию TypeScript, **Intlayer** делает вашу разработку более надежной и эффективной.
|
|
29
32
|
|
|
30
|
-
##
|
|
33
|
+
## Зачем был создан Intlayer?
|
|
31
34
|
|
|
32
|
-
Intlayer был создан для решения общей проблемы, которая затрагивает все популярные
|
|
35
|
+
Intlayer был создан для решения общей проблемы, которая затрагивает все популярные i18n библиотеки, такие как `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` и `vue-i18n`.
|
|
33
36
|
|
|
34
37
|
Все эти решения используют централизованный подход для перечисления и управления вашим контентом. Например:
|
|
35
38
|
|
|
@@ -37,8 +40,8 @@ Intlayer был создан для решения общей проблемы,
|
|
|
37
40
|
.
|
|
38
41
|
├── locales
|
|
39
42
|
│ ├── en.json
|
|
40
|
-
│ ├──
|
|
41
|
-
│ └──
|
|
43
|
+
│ ├── es.json
|
|
44
|
+
│ └── fr.json
|
|
42
45
|
├── i18n.ts
|
|
43
46
|
└── src
|
|
44
47
|
└── components
|
|
@@ -46,7 +49,7 @@ Intlayer был создан для решения общей проблемы,
|
|
|
46
49
|
└── index.tsx
|
|
47
50
|
```
|
|
48
51
|
|
|
49
|
-
Или
|
|
52
|
+
Или с использованием пространств имен:
|
|
50
53
|
|
|
51
54
|
```bash
|
|
52
55
|
.
|
|
@@ -67,23 +70,23 @@ Intlayer был создан для решения общей проблемы,
|
|
|
67
70
|
└── index.tsx
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
Такая архитектура замедляет процесс разработки и усложняет поддержку кодовой базы по нескольким причинам:
|
|
71
74
|
|
|
72
|
-
1. **Для каждого нового созданного компонента необходимо:**
|
|
73
|
-
- Создать новый ресурс/пространство
|
|
74
|
-
- Не забыть импортировать новое пространство
|
|
75
|
-
- Перевести ваш контент (часто
|
|
75
|
+
1. **Для каждого нового созданного компонента вам необходимо:**
|
|
76
|
+
- Создать новый ресурс/пространство имен в папке `locales`
|
|
77
|
+
- Не забыть импортировать новое пространство имен на свою страницу
|
|
78
|
+
- Перевести ваш контент (часто делается вручную путем копирования/вставки из ИИ-провайдеров)
|
|
76
79
|
|
|
77
|
-
2. **Для
|
|
78
|
-
-
|
|
80
|
+
2. **Для любого изменения в ваших компонентах вам необходимо:**
|
|
81
|
+
- Искать соответствующий ресурс/пространство имен (далеко от компонента)
|
|
79
82
|
- Перевести ваш контент
|
|
80
83
|
- Убедиться, что ваш контент актуален для всех локалей
|
|
81
|
-
- Проверить, что
|
|
84
|
+
- Проверить, что ваше пространство имен не содержит неиспользуемых ключей/значений
|
|
82
85
|
- Убедиться, что структура ваших JSON-файлов одинакова для всех локалей
|
|
83
86
|
|
|
84
|
-
В профессиональных проектах, использующих эти решения, часто применяются платформы локализации для управления переводом
|
|
87
|
+
В профессиональных проектах, использующих эти решения, часто применяются платформы локализации для управления переводом контента. Однако для крупных проектов это может быстро стать дорогостоящим.
|
|
85
88
|
|
|
86
|
-
Для решения этой проблемы Intlayer использует подход,
|
|
89
|
+
Для решения этой проблемы Intlayer использует подход, который ограничивает область действия вашего контента каждым компонентом и хранит его рядом с компонентом, как мы часто делаем с CSS (`styled-components`), типами, документацией (`storybook`) или модульными тестами (`jest`).
|
|
87
90
|
|
|
88
91
|
```bash codeFormat="typescript"
|
|
89
92
|
.
|
|
@@ -129,7 +132,6 @@ const componentExampleContent = {
|
|
|
129
132
|
},
|
|
130
133
|
} satisfies Dictionary;
|
|
131
134
|
|
|
132
|
-
// Экспортируем контент компонента по умолчанию
|
|
133
135
|
export default componentExampleContent;
|
|
134
136
|
```
|
|
135
137
|
|
|
@@ -146,66 +148,90 @@ export const ComponentExample = () => {
|
|
|
146
148
|
Этот подход позволяет вам:
|
|
147
149
|
|
|
148
150
|
1. **Увеличить скорость разработки**
|
|
149
|
-
- Файлы `.content.{{ts|mjs|cjs|json}}` можно создавать с помощью расширения
|
|
150
|
-
- Инструменты
|
|
151
|
+
- Файлы `.content.{{ts|mjs|cjs|json}}` можно создавать с помощью расширения VSCode
|
|
152
|
+
- Инструменты автодополнения с ИИ в вашей IDE (например, GitHub Copilot) могут помочь вам объявлять контент, уменьшая необходимость копирования/вставки
|
|
151
153
|
|
|
152
154
|
2. **Очистить вашу кодовую базу**
|
|
153
|
-
-
|
|
154
|
-
- Повысить
|
|
155
|
+
- Уменьшить сложность
|
|
156
|
+
- Повысить удобство поддержки
|
|
155
157
|
|
|
156
|
-
3.
|
|
158
|
+
3. **Легче дублировать компоненты и связанный с ними контент (например, компоненты входа/регистрации и т. д.)**
|
|
157
159
|
- Ограничивая риск влияния на контент других компонентов
|
|
158
160
|
- Копируя и вставляя ваш контент из одного приложения в другое без внешних зависимостей
|
|
159
161
|
|
|
160
|
-
4.
|
|
161
|
-
- Если вы не используете компонент, Intlayer не будет импортировать
|
|
162
|
-
- Если вы
|
|
162
|
+
4. **Избежать загрязнения кодовой базы неиспользуемыми ключами/значениями для неиспользуемых компонентов**
|
|
163
|
+
- Если вы не используете компонент, Intlayer не будет импортировать связанный с ним контент
|
|
164
|
+
- Если вы удалите компонент, вам будет проще вспомнить об удалении связанного с ним контента, так как он будет находиться в той же папке
|
|
163
165
|
|
|
164
|
-
5. **Снизить
|
|
165
|
-
- ИИ-агенту не
|
|
166
|
-
- Переводы легко
|
|
166
|
+
5. **Снизить когнитивную нагрузку для ИИ-агентов при объявлении вашего многоязычного контента**
|
|
167
|
+
- ИИ-агенту не придется сканировать всю кодовую базу, чтобы узнать, где реализовать ваш контент
|
|
168
|
+
- Переводы могут легко выполняться инструментами автодополнения с ИИ в вашей IDE (например, GitHub Copilot)
|
|
169
|
+
|
|
170
|
+
6. **Оптимизировать производительность загрузки**
|
|
171
|
+
- Если компонент загружается лениво, связанный с ним контент будет загружен одновременно
|
|
167
172
|
|
|
168
173
|
## Дополнительные возможности Intlayer
|
|
169
174
|
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
| 
|
|
174
|
-
|
|
|
175
|
-
|  | **Поддержка различных фреймворков**<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
|
+
|  | **Типобезопасная среда**<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
|
+
|  | **Согласованная реализация серверных компонентов**<br><br>Идеально подходит для серверных компонентов Next.js: используйте одну и ту же реализацию как для клиентских, так и для серверных компонентов, без необходимости передавать функцию `t` через каждый серверный компонент. <br><br> - [Серверные компоненты](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> - [CMS Intlayer](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/ru/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) |
|
|
189
196
|
|
|
190
197
|
## Сравнение Intlayer с другими решениями
|
|
191
198
|
|
|
192
|
-
|
|
|
193
|
-
|
|
|
194
|
-
| **Переводы рядом с компонентами**
|
|
195
|
-
| **Интеграция с TypeScript**
|
|
196
|
-
| **Обнаружение отсутствующих переводов**
|
|
197
|
-
|
|
|
198
|
-
| **Перевод
|
|
199
|
-
| **Визуальный редактор**
|
|
200
|
-
| **Локализованная маршрутизация**
|
|
201
|
-
| **Динамическая генерация маршрутов**
|
|
202
|
-
|
|
|
203
|
-
| **Форматирование (даты, числа, валюты)**
|
|
204
|
-
| **Формат
|
|
205
|
-
| **Поддержка ICU**
|
|
206
|
-
| **SEO
|
|
207
|
-
| **Экосистема / Сообщество**
|
|
208
|
-
|
|
|
209
|
-
| **Tree-shaking (загрузка только
|
|
210
|
-
| **Ленивая загрузка**
|
|
211
|
-
|
|
|
199
|
+
| Возможность | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
201
|
+
| **Переводы рядом с компонентами** | ✅ Да, контент расположен вместе с каждым компонентом | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ✅ Да — при использовании `Single File Components` (SFCs) |
|
|
202
|
+
| **Интеграция с TypeScript** | ✅ Продвинутая, автоматически генерируемые строгие типы | ⚠️ Базовая; требуется дополнительная настройка для безопасности | ✅ Хорошая, но менее строгая | ⚠️ Типизация, требуется настройка | ✅ Хорошая | ⚠️ Базовая | ✅ Хорошая (типы доступны; требуется настройка безопасности ключей) |
|
|
203
|
+
| **Обнаружение отсутствующих переводов** | ✅ Подсветка ошибок в TypeScript и ошибка/предупреждение во время сборки | ⚠️ В основном резервные строки во время выполнения | ⚠️ Резервные строки | ⚠️ Требуется дополнительная настройка | ⚠️ Резерв во время выполнения | ⚠️ Резерв во время выполнения | ⚠️ Резервные строки/предупреждения во время выполнения (настраиваемо) |
|
|
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
|
+
| **Плюрализация** | ✅ Шаблоны на основе перечислений | ✅ Настраиваемо (плагины, такие как i18next-icu) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ Хорошо | ✅ Хорошо | ✅ Встроенные правила плюрализации |
|
|
210
|
+
| **Форматирование (даты, числа, валюты)** | ✅ Оптимизированные форматтеры (Intl под капотом) | ⚠️ Через плагины или пользовательское использование Intl | ✅ Форматтеры ICU | ✅ ICU/CLI хелперы | ✅ Хорошо (Intl хелперы) | ✅ Хорошо (Intl хелперы) | ✅ Встроенные форматтеры даты/чисел (Intl) |
|
|
211
|
+
| **Формат контента** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **Поддержка ICU** | ⚠️ WIP | ⚠️ Через плагин (i18next-icu) | ✅ Да | ✅ Да | ✅ Да | ⚠️ Через плагин (`i18next-icu`) | ⚠️ Через пользовательский форматтер/компилятор |
|
|
213
|
+
| **SEO хелперы (hreflang, sitemap)** | ✅ Встроенные инструменты: хелперы для sitemap, robots.txt, метаданных | ⚠️ Плагины сообщества/вручную | ❌ Нет в ядре | ❌ Нет в ядре | ✅ Хорошо | ✅ Хорошо | ❌ Нет в ядре (предоставляется Nuxt i18n хелперами) |
|
|
214
|
+
| **Экосистема / Сообщество** | ⚠️ Меньше, но быстро растет и активно развивается | ✅ Самое большое и зрелое | ✅ Большое | ⚠️ Меньше | ✅ Среднего размера, ориентировано на Next.js | ✅ Среднего размера, ориентировано на Next.js | ✅ Большое в экосистеме Vue |
|
|
215
|
+
| **SSR и серверные компоненты** | ✅ Да, оптимизировано для SSR / React Server Components | ⚠️ Поддерживается на уровне страницы, но нужно передавать t-функции по дереву компонентов для дочерних серверных компонентов | ⚠️ Поддерживается на уровне страницы с дополнительной настройкой, но нужно передавать t-функции по дереву компонентов для дочерних серверных компонентов | ✅ Поддерживается, требуется настройка | ⚠️ Поддерживается на уровне страницы, но нужно передавать t-функции по дереву компонентов для дочерних серверных компонентов | ⚠️ Поддерживается на уровне страницы, но нужно передавать t-функции по дереву компонентов для дочерних серверных компонентов | ✅ SSR через Nuxt/Vue SSR (без RSC) |
|
|
216
|
+
| **Tree-shaking (загрузка только нужного контента)** | ✅ Да, для каждого компонента во время сборки через плагины Babel/SWC | ⚠️ Обычно загружает всё (можно улучшить с помощью пространств имен/разделения кода) | ⚠️ Обычно загружает всё | ❌ Не по умолчанию | ⚠️ Частично | ⚠️ Частично | ⚠️ Частично (с разделением кода/ручной настройкой) |
|
|
217
|
+
| **Ленивая загрузка** | ✅ Да, для каждой локали / для каждого словаря | ✅ Да (например, бэкенды/пространства имен по запросу) | ✅ Да (разделение бандлов локалей) | ✅ Да (динамический импорт каталогов) | ✅ Да (для каждого маршрута/локали), требуется управление пространствами имен | ✅ Да (для каждого маршрута/локали), требуется управление пространствами имен | ✅ Да (асинхронные сообщения локали) |
|
|
218
|
+
| **Очистка неиспользуемого контента** | ✅ Да, для каждого словаря во время сборки | ❌ Нет, только через ручную сегментацию пространств имен | ❌ Нет, все объявленные сообщения попадают в бандл | ✅ Да, неиспользуемые ключи обнаруживаются и удаляются при сборке | ❌ Нет, можно управлять вручную через пространства имен | ❌ Нет, можно управлять вручную через пространства имен | ❌ Нет, возможно только через ручную ленивую загрузку |
|
|
219
|
+
| **Управление крупными проектами** | ✅ Поощряет модульность, подходит для дизайн-систем | ⚠️ Требуется хорошая дисциплина файлов | ⚠️ Центральные каталоги могут стать большими | ⚠️ Может стать сложным | ✅ Модульно с настройкой | ✅ Модульно с настройкой | ✅ Модульно с настройкой Vue Router/Nuxt i18n |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Звезды на GitHub
|
|
224
|
+
|
|
225
|
+
Звезды на GitHub — это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
226
|
+
|
|
227
|
+
[](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)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Совместимость
|
|
232
|
+
|
|
233
|
+
`intlayer` также может помочь в управлении вашими пространствами имен `react-intl`, `react-i18next`, `next-intl`, `next-i18next` и `vue-i18n`.
|
|
234
|
+
|
|
235
|
+
Используя `intlayer`, вы можете объявлять свой контент в формате вашей любимой библиотеки i18n, и intlayer сгенерирует ваши пространства имен в выбранном вами месте (например: `/messages/{{locale}}/{{namespace}}.json`).
|
|
236
|
+
|
|
237
|
+
Для получения более подробной информации обратитесь к [опциям dictionaryOutput и i18nextResourcesDir](https://intlayer.org/doc/concept/configuration#content-configuration).
|
|
@@ -36,14 +36,14 @@ Bu sayfa, Next.js üzerindeki i18n çözümleri için hazırlanan bir kıyaslama
|
|
|
36
36
|
|
|
37
37
|
## Sonuçlar Referansı:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md
|
|
46
|
+
> [Tam kıyaslama verilerini görün](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md)
|
|
47
47
|
|
|
48
48
|
Benchmark deposunun tamamını [buradan](https://github.com/intlayer-org/benchmark-i18n) inceleyebilirsiniz.
|
|
49
49
|
|
|
@@ -72,7 +72,7 @@ Intlayer tüm bu boyutlarda optimizasyon yapmaya çalışır.
|
|
|
72
72
|
|
|
73
73
|
Bu sorunları ortaya çıkarmak için [buradan](https://intlayer.org/i18n-seo-scanner) deneyebileceğiniz ücretsiz bir tarayıcı oluşturdum.
|
|
74
74
|
|
|
75
|
-
<
|
|
75
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
76
76
|
|
|
77
77
|
## Sorun
|
|
78
78
|
|
|
@@ -36,14 +36,14 @@ Bu sayfa, Solid üzerindeki i18n çözümleri için bir benchmark raporudur.
|
|
|
36
36
|
|
|
37
37
|
## Sonuç referansı:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md
|
|
46
|
+
> [Tam kıyaslama verilerini görün](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md)
|
|
47
47
|
|
|
48
48
|
Tüm benchmark deposunu [burada](https://github.com/intlayer-org/benchmark-i18n/tree/main) görebilirsiniz.
|
|
49
49
|
|
|
@@ -68,7 +68,7 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
68
68
|
|
|
69
69
|
i18n sızıntı sorunlarını hızlıca tespit etmek için [burada](https://intlayer.org/i18n-seo-scanner) mevcut olan ücretsiz bir tarayıcı kurdum.
|
|
70
70
|
|
|
71
|
-
<
|
|
71
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
72
72
|
|
|
73
73
|
## Sorun
|
|
74
74
|
|
|
@@ -36,14 +36,14 @@ Bu sayfa, Svelte üzerindeki i18n çözümleri için bir benchmark raporudur.
|
|
|
36
36
|
|
|
37
37
|
## Sonuç referansı:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md
|
|
46
|
+
> [Tam kıyaslama verilerini görün](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md)
|
|
47
47
|
|
|
48
48
|
Tüm benchmark deposunu [burada](https://github.com/intlayer-org/benchmark-i18n/tree/main) görebilirsiniz.
|
|
49
49
|
|
|
@@ -67,7 +67,7 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
67
67
|
|
|
68
68
|
i18n sızıntı sorunlarını hızlıca tespit etmek için [burada](https://intlayer.org/i18n-seo-scanner) mevcut olan ücretsiz bir tarayıcı kurdum.
|
|
69
69
|
|
|
70
|
-
<
|
|
70
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
71
71
|
|
|
72
72
|
## Sorun
|
|
73
73
|
|
|
@@ -36,14 +36,14 @@ Bu sayfa, TanStack Start üzerindeki i18n çözümleri için hazırlanan bir kı
|
|
|
36
36
|
|
|
37
37
|
## Sonuçlar Referansı:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
|
|
41
|
-
width="100%"
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
|
|
41
|
+
width="100%"
|
|
42
42
|
height="600px"
|
|
43
|
-
style="border:none;"
|
|
44
|
-
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md
|
|
46
|
+
> [Tam kıyaslama verilerini görün](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md)
|
|
47
47
|
|
|
48
48
|
Benchmark deposunun tamamını [buradan](https://github.com/intlayer-org/benchmark-i18n/tree/main) inceleyebilirsiniz.
|
|
49
49
|
|
|
@@ -68,7 +68,7 @@ Diğer bir etki ise geliştirici deneyimidir (DX): içeriği nasıl tanımladı
|
|
|
68
68
|
|
|
69
69
|
i18n sızıntısı (leakage) sorunlarını hızlıca tespit etmek için [buradan](https://intlayer.org/i18n-seo-scanner) erişilebilen ücretsiz bir tarayıcı hazırladım.
|
|
70
70
|
|
|
71
|
-
<
|
|
71
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
72
72
|
|
|
73
73
|
## Sorun
|
|
74
74
|
|
package/docs/tr/benchmark/vue.md
CHANGED
|
@@ -36,14 +36,14 @@ Bu sayfa, Vue üzerindeki i18n çözümleri için bir benchmark raporudur.
|
|
|
36
36
|
|
|
37
37
|
## Sonuç referansı:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md
|
|
46
|
+
> [Tam kıyaslama verilerini görün](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md)
|
|
47
47
|
|
|
48
48
|
Tüm benchmark deposunu [burada](https://github.com/intlayer-org/benchmark-i18n/tree/main) görebilirsiniz.
|
|
49
49
|
|
|
@@ -67,7 +67,7 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
67
67
|
|
|
68
68
|
i18n sızıntı sorunlarını hızlıca tespit etmek için [burada](https://intlayer.org/i18n-seo-scanner) mevcut olan ücretsiz bir tarayıcı kurdum.
|
|
69
69
|
|
|
70
|
-
<
|
|
70
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
71
71
|
|
|
72
72
|
## Sorun
|
|
73
73
|
|