@intlayer/docs 9.5.7 → 9.5.9-canary.0
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/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
- package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
- package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/nextjs.md +6 -3
- package/docs/ar/benchmark/solid.md +21 -4
- package/docs/ar/benchmark/svelte.md +18 -3
- package/docs/ar/benchmark/tanstack.md +6 -3
- package/docs/ar/benchmark/vue.md +14 -5
- package/docs/ar/cli/index.md +6 -1
- package/docs/ar/cli/upgrade.md +125 -0
- package/docs/de/benchmark/nextjs.md +6 -3
- package/docs/de/benchmark/solid.md +21 -4
- package/docs/de/benchmark/svelte.md +18 -3
- package/docs/de/benchmark/tanstack.md +6 -3
- package/docs/de/benchmark/vue.md +14 -5
- package/docs/de/cli/index.md +6 -1
- package/docs/de/cli/upgrade.md +125 -0
- package/docs/en/agent_skills.md +29 -1
- package/docs/en/benchmark/nextjs.md +6 -3
- package/docs/en/benchmark/solid.md +21 -4
- package/docs/en/benchmark/svelte.md +18 -3
- package/docs/en/benchmark/tanstack.md +7 -4
- package/docs/en/benchmark/vue.md +15 -6
- package/docs/en/cli/index.md +6 -1
- package/docs/en/cli/upgrade.md +125 -0
- package/docs/en-GB/benchmark/nextjs.md +6 -3
- package/docs/en-GB/benchmark/solid.md +21 -4
- package/docs/en-GB/benchmark/svelte.md +18 -3
- package/docs/en-GB/benchmark/tanstack.md +6 -3
- package/docs/en-GB/benchmark/vue.md +15 -6
- package/docs/en-GB/cli/index.md +6 -1
- package/docs/en-GB/cli/upgrade.md +125 -0
- package/docs/es/benchmark/nextjs.md +6 -3
- package/docs/es/benchmark/solid.md +21 -4
- package/docs/es/benchmark/svelte.md +18 -3
- package/docs/es/benchmark/tanstack.md +6 -3
- package/docs/es/benchmark/vue.md +14 -5
- package/docs/es/cli/index.md +6 -1
- package/docs/es/cli/upgrade.md +125 -0
- package/docs/fr/benchmark/nextjs.md +6 -3
- package/docs/fr/benchmark/solid.md +21 -4
- package/docs/fr/benchmark/svelte.md +18 -3
- package/docs/fr/benchmark/tanstack.md +6 -3
- package/docs/fr/benchmark/vue.md +15 -6
- package/docs/fr/cli/index.md +6 -1
- package/docs/fr/cli/upgrade.md +125 -0
- package/docs/hi/benchmark/nextjs.md +6 -3
- package/docs/hi/benchmark/solid.md +21 -4
- package/docs/hi/benchmark/svelte.md +18 -3
- package/docs/hi/benchmark/tanstack.md +6 -3
- package/docs/hi/benchmark/vue.md +15 -6
- package/docs/hi/cli/index.md +6 -1
- package/docs/hi/cli/upgrade.md +125 -0
- package/docs/id/benchmark/nextjs.md +6 -3
- package/docs/id/benchmark/solid.md +21 -4
- package/docs/id/benchmark/svelte.md +18 -3
- package/docs/id/benchmark/tanstack.md +6 -3
- package/docs/id/benchmark/vue.md +15 -6
- package/docs/id/cli/index.md +6 -1
- package/docs/id/cli/upgrade.md +125 -0
- package/docs/it/benchmark/nextjs.md +6 -3
- package/docs/it/benchmark/solid.md +21 -4
- package/docs/it/benchmark/svelte.md +18 -3
- package/docs/it/benchmark/tanstack.md +6 -3
- package/docs/it/benchmark/vue.md +14 -5
- package/docs/it/cli/index.md +6 -1
- package/docs/it/cli/upgrade.md +125 -0
- package/docs/ja/benchmark/nextjs.md +6 -3
- package/docs/ja/benchmark/solid.md +21 -4
- package/docs/ja/benchmark/svelte.md +18 -3
- package/docs/ja/benchmark/tanstack.md +5 -2
- package/docs/ja/benchmark/vue.md +14 -5
- package/docs/ja/cli/index.md +6 -1
- package/docs/ja/cli/upgrade.md +125 -0
- package/docs/ko/benchmark/nextjs.md +6 -3
- package/docs/ko/benchmark/solid.md +21 -4
- package/docs/ko/benchmark/svelte.md +18 -3
- package/docs/ko/benchmark/tanstack.md +6 -3
- package/docs/ko/benchmark/vue.md +15 -6
- package/docs/ko/cli/index.md +6 -1
- package/docs/ko/cli/upgrade.md +126 -0
- package/docs/pl/benchmark/nextjs.md +6 -3
- package/docs/pl/benchmark/solid.md +21 -4
- package/docs/pl/benchmark/svelte.md +18 -3
- package/docs/pl/benchmark/tanstack.md +6 -3
- package/docs/pl/benchmark/vue.md +15 -6
- package/docs/pl/cli/index.md +6 -1
- package/docs/pl/cli/upgrade.md +125 -0
- package/docs/pt/benchmark/nextjs.md +6 -3
- package/docs/pt/benchmark/solid.md +21 -4
- package/docs/pt/benchmark/svelte.md +18 -3
- package/docs/pt/benchmark/tanstack.md +6 -3
- package/docs/pt/benchmark/vue.md +14 -5
- package/docs/pt/cli/index.md +6 -1
- package/docs/pt/cli/upgrade.md +125 -0
- package/docs/ru/benchmark/nextjs.md +6 -3
- package/docs/ru/benchmark/solid.md +21 -4
- package/docs/ru/benchmark/svelte.md +18 -3
- package/docs/ru/benchmark/tanstack.md +6 -3
- package/docs/ru/benchmark/vue.md +15 -6
- package/docs/ru/cli/index.md +6 -1
- package/docs/ru/cli/upgrade.md +125 -0
- package/docs/tr/benchmark/nextjs.md +6 -3
- package/docs/tr/benchmark/solid.md +21 -4
- package/docs/tr/benchmark/svelte.md +18 -3
- package/docs/tr/benchmark/tanstack.md +6 -3
- package/docs/tr/benchmark/vue.md +15 -6
- package/docs/tr/cli/index.md +6 -1
- package/docs/tr/cli/upgrade.md +125 -0
- package/docs/uk/benchmark/nextjs.md +6 -3
- package/docs/uk/benchmark/solid.md +21 -4
- package/docs/uk/benchmark/svelte.md +18 -3
- package/docs/uk/benchmark/tanstack.md +6 -3
- package/docs/uk/benchmark/vue.md +15 -6
- package/docs/uk/cli/index.md +6 -1
- package/docs/uk/cli/upgrade.md +125 -0
- package/docs/vi/benchmark/nextjs.md +6 -3
- package/docs/vi/benchmark/solid.md +21 -4
- package/docs/vi/benchmark/svelte.md +18 -3
- package/docs/vi/benchmark/tanstack.md +6 -3
- package/docs/vi/benchmark/vue.md +15 -6
- package/docs/vi/cli/index.md +6 -1
- package/docs/vi/cli/upgrade.md +125 -0
- package/docs/zh/benchmark/nextjs.md +6 -3
- package/docs/zh/benchmark/solid.md +21 -4
- package/docs/zh/benchmark/svelte.md +18 -3
- package/docs/zh/benchmark/tanstack.md +5 -2
- package/docs/zh/benchmark/vue.md +15 -6
- package/docs/zh/cli/index.md +6 -1
- package/docs/zh/cli/upgrade.md +125 -0
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +20 -0
package/docs/tr/benchmark/vue.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da Vue için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
|
-
description: vue-i18n, fluent-vue ve Intlayer gibi Vue uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
5
|
+
description: vue-i18n, fluent-vue, Tolgee ve Intlayer gibi Vue uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Benchmark sonuçları güncellendi ve Tolgee eklendi"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -66,6 +69,7 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
71
|
- **Intlayer**: Yerel kapsam (scoping) ve dinamik yükleme ile en hafif çözüm (v9.5.6).
|
|
72
|
+
- **Tolgee**: Dinamik modda sıfır sızıntı ile etkili dinamik yükleme, ancak daha ağır (~3.7× Intlayer) ve derleme zamanında yerleşik tip güvenliğinden yoksundur.
|
|
69
73
|
- **vue-i18n**: Zengin bir ekosisteme sahip endüstri standardı, ancak büyük uygulamalarda önemli ölçüde ağırlaşabilir ve kod bölme (code-splitting) için optimize edilmesi zor olabilir.
|
|
70
74
|
- **fluent-vue**: Yenilikçi mesaj organizasyonu ancak tip güvenliğinden yoksundur ve son derece ağır bir çözüm olduğu ortaya çıkmıştır.
|
|
71
75
|
|
|
@@ -103,6 +107,7 @@ Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
|
103
107
|
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/vue-i18n.md) (v9.5.6)
|
|
104
108
|
- [`vue-i18n`](https://github.com/intlify/vue-i18n) (v11.4.0)
|
|
105
109
|
- [`fluent-vue`](https://github.com/fluent-vue/fluent-vue) (v3.8.2)
|
|
110
|
+
- [`@tolgee/vue`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
106
111
|
|
|
107
112
|
Framework, **10 sayfa** ve **10 dilden** oluşan çok dilli bir uygulamaya sahip `Vue`'dur.
|
|
108
113
|
|
|
@@ -146,7 +151,7 @@ Her yığın için gerçek bir tarayıcıda aynı çok dilli uygulamayı çalı
|
|
|
146
151
|
|
|
147
152
|
GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun vadeli alakasının güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve benimseme olasılığını yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişi karşılaştırmaya yardımcı olur ve ekosistem büyümesi hakkında içgörüler sağlar.
|
|
148
153
|
|
|
149
|
-
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
|
|
154
|
+
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&tolgee/tolgee-js&aymericzip/intlayer)
|
|
150
155
|
|
|
151
156
|
## Detaylı sonuçlar
|
|
152
157
|
|
|
@@ -156,18 +161,22 @@ GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun
|
|
|
156
161
|
|
|
157
162
|
### 2 - Kabul edilebilir çözümler
|
|
158
163
|
|
|
164
|
+
**(Tolgee)** (`@tolgee/vue@7.2.0`):
|
|
165
|
+
|
|
166
|
+
`Tolgee`, daha önce bahsedilen sorunların çoğunu ele alarak dil ve sayfa sızıntısını başarıyla ortadan kaldıran dinamik yükleme sunar (sayfa JS boyutunu yaklaşık 58.8kb seviyesine düşürür). Ancak, anahtarlar için derleme zamanında yerleşik tip güvenliği sağlamaz, bu da eksik anahtarların yakalanmasını zorlaştırır. Ayrıca kütüphanenin boyutu nispeten ağırdır (~13.8kb, bu da `vue-intlayer` boyutunun yaklaşık 3.7 katıdır).
|
|
167
|
+
|
|
159
168
|
**(vue-i18n)** (`vue-i18n@11.4.0`):
|
|
160
169
|
|
|
161
170
|
- **vue-i18n** tartışmasız Vue için en çok kullanılan i18n kütüphanesidir, birçok özelliği ve devasa bir ekosistemi vardır. Ancak kaputun altında çözüm oldukça ağırdır. vue-i18n mesajlar için lazy loading entegre etse bile, kapsam (scoping) özelliği eksiktir. Klasik bir Vue SPA uygulaması durumunda sorun yoktur, ancak @nuxt/i18n kullanan bir nuxt uygulaması için, tüm sayfalardan gelen mesajların tek bir sayfaya dahil edilmesine yol açar. 10'dan fazla sayfa içeren büyük bir nuxt uygulaması için bu gerçekten sorunlu olabilir.
|
|
162
171
|
|
|
163
|
-
Paket çok ağırdır (~24.
|
|
172
|
+
Paket çok ağırdır (~24.1 kb, bu da `vue-intlayer`'ın yaklaşık 6.5 katıdır).
|
|
164
173
|
|
|
165
174
|
**(fluent-vue)** (`fluent-vue@3.8.2`):
|
|
166
175
|
|
|
167
|
-
- **fluent-vue** .ftl formatı aracılığıyla yenilikçi bir girişim sunar. Mesaj organizasyonu harikadır, başlaması daha kolaydır. Ancak pratikte tip güvenliği eksikliği hata riskini artırır ve hata ayıklaması hızla zaman alıcı hale gelebilir. Dahası, bu çözüm mesajları her sayfada her dildeki tüm içeriğin yüklenmesini zorlayan bir vite eklentisi kullanarak yükler. Ek olarak, bu son derece ağır bir çözümdür (~29.7kb, bu da `vue-intlayer`'ın yaklaşık
|
|
176
|
+
- **fluent-vue** .ftl formatı aracılığıyla yenilikçi bir girişim sunar. Mesaj organizasyonu harikadır, başlaması daha kolaydır. Ancak pratikte tip güvenliği eksikliği hata riskini artırır ve hata ayıklaması hızla zaman alıcı hale gelebilir. Dahası, bu çözüm mesajları her sayfada her dildeki tüm içeriğin yüklenmesini zorlayan bir vite eklentisi kullanarak yükler. Ek olarak, bu son derece ağır bir çözümdür (~29.7kb, bu da `vue-intlayer`'ın yaklaşık 8 katıdır).
|
|
168
177
|
|
|
169
178
|
### 3 - Öneriler
|
|
170
179
|
|
|
171
|
-
**(Intlayer)** (`vue-intlayer@9.5.
|
|
180
|
+
**(Intlayer)** (`vue-intlayer@9.5.6`):
|
|
172
181
|
|
|
173
182
|
Kendi çözümüm olduğu için tarafsızlık adına `vue-intlayer`'ı kişisel olarak yargılamayacağım.
|
package/docs/tr/cli/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: CLI - Çok dilli web siteniz için tüm Intlayer CLI komutları
|
|
5
5
|
description: Çok dilli web sitenizi yönetmek için Intlayer CLI'yı nasıl kullanacağınızı keşfedin. Projenizi birkaç dakika içinde kurmak için bu çevrimiçi belgelerdeki adımları izleyin.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- concept
|
|
18
18
|
- cli
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.8
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "upgrade komutunu ekle"
|
|
20
23
|
- version: 9.5.6
|
|
21
24
|
date: 2026-09-21
|
|
22
25
|
changes: "init infra komutunu ekle"
|
|
@@ -155,6 +158,7 @@ Mevcut dillerin veya diğer parametrelerin nasıl yapılandırılacağını öğ
|
|
|
155
158
|
|
|
156
159
|
- **[Initialize Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/init.md)** - Otomatik yapılandırma ile projenizde Intlayer'ı kurun
|
|
157
160
|
- **[Altyapıyı Kur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/infra.md)** - Masaüstü uygulamasını yükleyin veya Docker (hepsi bir arada veya Compose) ile CMS'yi kendi sunucunuzda barındırın
|
|
161
|
+
- **[Intlayer Paketlerini Yükseltme](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/upgrade.md)** - Her `package.json` dosyasındaki Intlayer paketlerini listeleyin ve bunları en son sürüme yükseltin
|
|
158
162
|
- **[Manage Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/configuration.md)** - Intlayer yapılandırmanızı alın ve CMS'ye gönderin
|
|
159
163
|
|
|
160
164
|
### Belge Yönetimi
|
|
@@ -182,6 +186,7 @@ Mevcut dillerin veya diğer parametrelerin nasıl yapılandırılacağını öğ
|
|
|
182
186
|
"scripts": {
|
|
183
187
|
"intlayer:init": "npx intlayer init",
|
|
184
188
|
"intlayer:infra": "npx intlayer init infra",
|
|
189
|
+
"intlayer:upgrade": "npx intlayer upgrade",
|
|
185
190
|
"intlayer:login": "npx intlayer login",
|
|
186
191
|
"intlayer:build": "npx intlayer build",
|
|
187
192
|
"intlayer:watch": "npx intlayer build --watch",
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-23
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
|
+
title: CLI - Intlayer Paketlerini Yükseltme
|
|
5
|
+
description: Projenizin veya monorepo'nuzun her Intlayer paketini listelemek ve bunları en son sürüme yükseltmek için Intlayer CLI upgrade komutunu nasıl kullanacağınızı öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- CLI
|
|
8
|
+
- Upgrade
|
|
9
|
+
- Yükselt
|
|
10
|
+
- Paketler
|
|
11
|
+
- Monorepo
|
|
12
|
+
- Intlayer
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- concept
|
|
16
|
+
- cli
|
|
17
|
+
- upgrade
|
|
18
|
+
history:
|
|
19
|
+
- version: 9.5.8
|
|
20
|
+
date: 2026-09-23
|
|
21
|
+
changes: "upgrade komutunu ekle"
|
|
22
|
+
author: aymericzip
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Intlayer Paketlerini Yükseltme
|
|
26
|
+
|
|
27
|
+
```bash packageManager="npm"
|
|
28
|
+
npx intlayer upgrade
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```bash packageManager="yarn"
|
|
32
|
+
yarn intlayer upgrade
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```bash packageManager="pnpm"
|
|
36
|
+
pnpm intlayer upgrade
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```bash packageManager="bun"
|
|
40
|
+
bun x intlayer upgrade
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`upgrade` komutu, monorepo çalışma alanları da dahil olmak üzere projenizin her `package.json` dosyasında bildirilen Intlayer paketlerini listeler ve bunları yayınlanan en son sürüme yükseltir. `intlayer init` ile aynı paket yükseltme adımını bağımsız olarak çalıştırır.
|
|
44
|
+
|
|
45
|
+
## Argümanlar:
|
|
46
|
+
|
|
47
|
+
- `--project-root [projectRoot]` - İsteğe bağlı. Proje kök dizini. Varsayılan olarak komut, mevcut çalışma dizininin üzerindeki en yakın `package.json` dosyasından başlar.
|
|
48
|
+
- `--dry-run` - İsteğe bağlı. Herhangi bir dosyayı değiştirmeden paketleri ve hedef sürümlerini listeler.
|
|
49
|
+
- `--tag <tag>` - İsteğe bağlı. Yükseltilecek npm dist-tag (örneğin `canary`). Varsayılan olarak `latest` değeridir.
|
|
50
|
+
|
|
51
|
+
## Ne yapar:
|
|
52
|
+
|
|
53
|
+
1. **Intlayer paketlerini listeler** - `intlayer`, `@intlayer/*`, `*-intlayer` ve `intlayer-*` bağımlılıkları ve devDependencies için projenin her `package.json` dosyasını (`node_modules` ve derleme çıktılarını atlayarak) tarar.
|
|
54
|
+
2. **Hedef sürümü getirir** - Her paketin seçilen dist-tag (varsayılan olarak `latest`) sürümünü npm kayıt defterinden okur.
|
|
55
|
+
3. **Aralıkları yeniden yazar** - İşlecini (`^`, `~` veya hiçbiri) ve dosya girintisini koruyarak güncelliğini yitirmiş her aralığı doğrudan dosya içinde günceller.
|
|
56
|
+
4. **Tek seferde yükler** - Kilit dosyasına sahip paket yöneticisini kullanarak çalışma alanı kökünden (kilit dosyası olan en yakın dizin) tek bir yükleme çalıştırır:
|
|
57
|
+
|
|
58
|
+
| Kilit dosyası | Komut |
|
|
59
|
+
| ---------------------------------- | -------------- |
|
|
60
|
+
| `bun.lock` / `bun.lockb` | `bun install` |
|
|
61
|
+
| `pnpm-lock.yaml` | `pnpm install` |
|
|
62
|
+
| `yarn.lock` | `yarn install` |
|
|
63
|
+
| `package-lock.json` veya kilit yok | `npm install` |
|
|
64
|
+
|
|
65
|
+
Kilit dosyası yoksa, npm'e geri dönmeden önce `package.json` dosyasının `packageManager` alanı (örneğin `"bun@1.2.0"`) kullanılır.
|
|
66
|
+
|
|
67
|
+
`workspace:*`, `file:`, `link:`, `catalog:` veya git URL'leri gibi kayıt defterini işaret etmeyen aralıklar asla değiştirilmez.
|
|
68
|
+
|
|
69
|
+
## Örnekler:
|
|
70
|
+
|
|
71
|
+
### Mevcut yükseltmeleri uygulamadan listeleme:
|
|
72
|
+
|
|
73
|
+
```bash packageManager="npm"
|
|
74
|
+
npx intlayer upgrade --dry-run
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```bash packageManager="yarn"
|
|
78
|
+
yarn intlayer upgrade --dry-run
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```bash packageManager="pnpm"
|
|
82
|
+
pnpm intlayer upgrade --dry-run
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```bash packageManager="bun"
|
|
86
|
+
bun x intlayer upgrade --dry-run
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Canary sürümüne yükseltme:
|
|
90
|
+
|
|
91
|
+
```bash packageManager="npm"
|
|
92
|
+
npx intlayer upgrade --tag canary
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```bash packageManager="yarn"
|
|
96
|
+
yarn intlayer upgrade --tag canary
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```bash packageManager="pnpm"
|
|
100
|
+
pnpm intlayer upgrade --tag canary
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```bash packageManager="bun"
|
|
104
|
+
bun x intlayer upgrade --tag canary
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Örnek çıktı:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npx intlayer upgrade
|
|
111
|
+
Intlayer packages:
|
|
112
|
+
package.json
|
|
113
|
+
intlayer ^9.0.0 → ^9.5.7
|
|
114
|
+
apps/web/package.json
|
|
115
|
+
next-intlayer ^9.5.7 (latest)
|
|
116
|
+
vite-intlayer ~9.2.0 → ~9.5.7
|
|
117
|
+
Running bun install...
|
|
118
|
+
✓ Upgraded 2 Intlayer dependencies to latest
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Notlar:
|
|
122
|
+
|
|
123
|
+
- Her çalışma alanını yükseltmek için komutu deponuzun kökünden çalıştırın. Yalnızca ilgili çalışma alanını yükseltmek için o çalışma alanından çalıştırın.
|
|
124
|
+
- Sürümü alınamayan paketler (çevrimdışı, özel veya yayınlanmamış paket) listelenir ve değiştirilmeden bırakılır.
|
|
125
|
+
- Yükleme başarısız olursa, yükseltilen aralıklar `package.json` dosyasında tutulur. Paket yöneticinizin yükleme komutunu manuel olarak çalıştırın.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: Найкраще i18n рішення для Next.js у 2026 році - Звіт бенчмарку
|
|
5
5
|
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Next.js, такі як next-intl, next-i18next та Intlayer. Детальний звіт про продуктивність за розміром бандла, витоком та реактивністю.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Оновлення результатів бенчмарку"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Оновлення результатів бенчмарку"
|
|
@@ -213,7 +216,7 @@ Intlayer намагається оптимізувати всі ці парам
|
|
|
213
216
|
|
|
214
217
|
**(Tolgee)** (`@tolgee/react@7.2.0`):
|
|
215
218
|
|
|
216
|
-
`Tolgee` вирішує багато зі згаданих проблем. Проте його впровадження здалося мені складнішим, ніж у подібних інструментів. Він не забезпечує типізацію (type safety), що ускладнює виявлення відсутніх ключів під час компіляції. Мені довелося обертати функції Tolgee своїми, щоб додати перевірку відсутніх ключів.
|
|
219
|
+
`Tolgee` вирішує багато зі згаданих проблем. Проте його впровадження здалося мені складнішим, ніж у подібних інструментів. Він не забезпечує типізацію (type safety), що ускладнює виявлення відсутніх ключів під час компіляції. Мені довелося обертати функції Tolgee своїми, щоб додати перевірку відсутніх ключів. Пакет також відносно важкий (~14.3 КБ, що приблизно в 2.8 рази більше за `next-intlayer`).
|
|
217
220
|
|
|
218
221
|
**(Next Intl)** (`next-intl@4.14.2`):
|
|
219
222
|
|
|
@@ -239,7 +242,7 @@ Intlayer намагається оптимізувати всі ці парам
|
|
|
239
242
|
|
|
240
243
|
`next-translate` - моя основна рекомендація, якщо вам подобається API у стилі `t()`. Він елегантно працює через `next-translate-plugin`, завантажуючи простори імен через `getStaticProps` за допомогою завантажувача Webpack / Turbopack. Це також один із найлегших варіантів у цьому списку (~3.5 КБ). Визначення просторів імен для сторінок або маршрутів у конфігу добре продумане і простіше в підтримці, ніж у **next-intl** чи **next-i18next**. У версії `3.1.2` я помітив, що статичний рендеринг не працював; Next.js переходив до динамічного рендерингу.
|
|
241
244
|
|
|
242
|
-
**(Intlayer)** (`next-intlayer@9.5.
|
|
245
|
+
**(Intlayer)** (`next-intlayer@9.5.6`):
|
|
243
246
|
|
|
244
247
|
Я не буду особисто оцінювати `next-intlayer` заради об’єктивності, оскільки це моє власне рішення.
|
|
245
248
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: Найкраще i18n рішення для Solid у 2026 році - Звіт про бенчмарк
|
|
5
|
-
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Solid, такі як solid-primitives, solid-i18next та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
5
|
+
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Solid, такі як solid-primitives, solid-i18next, Tolgee та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Оновлення результатів бенчмарку"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Оновлення результатів бенчмарку"
|
|
@@ -68,6 +71,7 @@ style="border:none;"
|
|
|
68
71
|
- **Intlayer**: Рекомендований вибір для професійних додатків Solid, які потребують розширених функцій та оптимізації (v9.5.6).
|
|
69
72
|
- **@solid-primitives/i18n**: Відмінна легка альтернатива для простих проєктів, хоча їй бракує розширених функцій, таких як lazy loading.
|
|
70
73
|
- **solid-i18next**: Стандартний, але важкий варіант (~3.5 рази більше за Intlayer) з тими ж недоліками, що і React i18next.
|
|
74
|
+
- **Tolgee**: Багатофункціональна платформа перекладів, але досить важка (~12.7 КБ, приблизно в 3.0× важча за Intlayer), не має рідних примітивів для Solid (спирається на @tolgee/web) та демонструє значний витік між сторінками у статичних конфігураціях (90% витоку сторінок).
|
|
71
75
|
- **Paraglide**: Інноваційний підхід, але складний DX та проблеми з tree-shaking у деяких конфігураціях.
|
|
72
76
|
|
|
73
77
|
## Протестуйте свій додаток
|
|
@@ -103,6 +107,7 @@ style="border:none;"
|
|
|
103
107
|
- [`solid-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/solid-intlayer/exports.md) (v9.5.6)
|
|
104
108
|
- [`@solid-primitives/i18n`](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n) (v2.2.1)
|
|
105
109
|
- [`i18next`](https://github.com/i18next/i18next) (v26.0.8) + [`@mbarzda/solid-i18next`](https://github.com/mbarzda/solid-i18next) (v1.4.1)
|
|
110
|
+
- [`@tolgee/web`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
106
111
|
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
|
|
107
112
|
|
|
108
113
|
Фреймворк - `Solid` з багатомовним додатком із **10 сторінок** і **10 мов**.
|
|
@@ -147,7 +152,7 @@ style="border:none;"
|
|
|
147
152
|
|
|
148
153
|
Зірки на GitHub є потужним індикатором популярності проекту, довіри спільноти та довгострокової актуальності. Хоча вони не є прямим показником технічної якості, вони відображають, скільки розробників вважають проект корисним, стежать за його розвитком і, ймовірно, впровадять його. Для оцінки цінності проекту зірки допомагають порівняти інтерес до альтернатив і дають уявлення про зростання екосистеми.
|
|
149
154
|
|
|
150
|
-
[](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
|
|
155
|
+
[](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
151
156
|
|
|
152
157
|
## Результати детально
|
|
153
158
|
|
|
@@ -170,6 +175,18 @@ style="border:none;"
|
|
|
170
175
|
Solid primitive надзвичайно легкий і ефективний. Я рекомендую це рішення для легких проєктів, але в ньому може швидко не вистачити функцій для професійних рішень, що включають управління кукі, перенаправлення проксі, форматери тощо.
|
|
171
176
|
Йому також не вистачає lazy loading та скоупінгу просторів імен для оптимізації розміру сторінки.
|
|
172
177
|
|
|
178
|
+
**(Tolgee)** (`@tolgee/web@7.2.0`):
|
|
179
|
+
|
|
180
|
+
`Tolgee` пропонує повнофункціональну платформу керування перекладами з можливостями редагування in-context.
|
|
181
|
+
|
|
182
|
+
Для Solid наразі немає офіційного нативного адаптера (такого як `@tolgee/solid`), тому розробникам доводиться інтегрувати бібліотеку через `@tolgee/web` із кастомними сигналами.
|
|
183
|
+
|
|
184
|
+
Пакет досить важкий (~12.7 КБ, що приблизно в 3.0× більше за `solid-intlayer`).
|
|
185
|
+
|
|
186
|
+
Через відсутність механізму гранулярного поділу за сторінками у Solid усі переклади завантажуються в пам'ять на старті у статичних конфігураціях. Це призводить до значного витоку бандлу (44.5% витоку локалей, 90.0% витоку сторінок) та середнього розміру бандлу сторінки ~91.8 КБ (порівняно з ~35.8 КБ у Intlayer).
|
|
187
|
+
|
|
188
|
+
Реактивність при зміні мови дуже швидка (0.6 мс), що чудово узгоджується з точковою реактивністю Solid, хоча накладні витрати на гідратацію вищі (~5.6 мс проти ~3.0 мс у Intlayer).
|
|
189
|
+
|
|
173
190
|
**(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
|
|
174
191
|
|
|
175
192
|
`Paraglide` пропонує інноваційний, добре продуманий підхід. Незважаючи на це, у цьому бенчмарку деревоподібне шейкінг (tree-shaking), яке рекламує їхня компанія, не спрацювало для моєї реалізації. Робочий процес і DX також складніші за інші варіанти.
|
|
@@ -178,7 +195,7 @@ Solid primitive надзвичайно легкий і ефективний. Я
|
|
|
178
195
|
|
|
179
196
|
### 3 - Рекомендації
|
|
180
197
|
|
|
181
|
-
**(Intlayer)** (`solid-intlayer@9.5.
|
|
198
|
+
**(Intlayer)** (`solid-intlayer@9.5.6`):
|
|
182
199
|
|
|
183
200
|
Я не буду особисто оцінювати `solid-intlayer` заради об'єктивності, оскільки це моє власне рішення.
|
|
184
201
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: Найкраще i18n рішення для Svelte у 2026 році - Звіт про бенчмарк
|
|
5
|
-
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Svelte, такі як svelte-i18n, Paraglide та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
5
|
+
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Svelte, такі як svelte-i18n, Paraglide, Tolgee та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Update benchmark results"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Оновлення результатів бенчмарку"
|
|
@@ -67,6 +70,7 @@ style="border:none;"
|
|
|
67
70
|
|
|
68
71
|
- **Intlayer**: Найефективніший за продуктивністю вибір (v9.5.6) з найменшим слідом (footprint).
|
|
69
72
|
- **Paraglide**: Сильний претендент для tree-shaking, але має складніший досвід розробника та накладні витрати на реактивність.
|
|
73
|
+
- **Tolgee**: Багатофункціональна платформа перекладів із редагуванням in-context, але досить важка (~13.0 КБ, приблизно в 3.6× важча за Intlayer), зі значним витоком між сторінками у статичних конфігураціях (90% витоку сторінок).
|
|
70
74
|
- **svelte-i18n**: Комплексний та стандартний для Svelte, але несе значно більшу вагу бандла (~4.5 разів більше за Intlayer).
|
|
71
75
|
|
|
72
76
|
## Протестуйте свій додаток
|
|
@@ -101,6 +105,7 @@ style="border:none;"
|
|
|
101
105
|
- `Base App` (Без бібліотеки i18n)
|
|
102
106
|
- [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/svelte-intlayer/exports.md) (v9.5.6)
|
|
103
107
|
- [`svelte-i18n`](https://github.com/kaisermann/svelte-i18n) (v4.0.1)
|
|
108
|
+
- [`@tolgee/svelte`](https://github.com/tolgee/tolgee-js) (v7.2.1)
|
|
104
109
|
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
|
|
105
110
|
|
|
106
111
|
Фреймворк - `Svelte` з багатомовним додатком із **10 сторінок** і **10 мов**.
|
|
@@ -145,7 +150,7 @@ style="border:none;"
|
|
|
145
150
|
|
|
146
151
|
Зірки на GitHub є потужним індикатором популярності проекту, довіри спільноти та довгострокової актуальності. Хоча вони не є прямим показником технічної якості, вони відображають, скільки розробників вважають проект корисним, стежать за його розвитком і, ймовірно, впровадять його. Для оцінки цінності проекту зірки допомагають порівняти інтерес до альтернатив і дають уявлення про зростання екосистеми.
|
|
147
152
|
|
|
148
|
-
[](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
153
|
+
[](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
149
154
|
|
|
150
155
|
## Результати детально
|
|
151
156
|
|
|
@@ -165,6 +170,16 @@ style="border:none;"
|
|
|
165
170
|
|
|
166
171
|
> Примітка щодо paraglide: рішення впорскує код у вашу кодову базу для імпорту; як результат, метрика 'lib size' у звіті бенчмарку становить майже 0. Генерація коду - це добре, тому що використана функція включатиме лише необхідну логіку (префікс скрізь проти відсутності префікса, кукі проти сховища тощо). Для порівняння, Intlayer виконує цю фільтрацію за допомогою впорскування змінних оточення під час збірки, щоб змусити бандлер виконувати tree-shaking контенту залежно від логіки. Завдяки цьому paraglide та intlayer стають у 6–10 разів легшими рішеннями, ніж i18next або next-intl.
|
|
167
172
|
|
|
173
|
+
**(Tolgee)** (`@tolgee/svelte@7.2.1`):
|
|
174
|
+
|
|
175
|
+
`Tolgee` пропонує платформу локалізації "все в одному" з контекстним редагуванням in-context та офіційною інтеграцією для Svelte через `@tolgee/svelte`.
|
|
176
|
+
|
|
177
|
+
Пакет досить важкий (~13.0 КБ, що приблизно в 3.6× більше за `svelte-intlayer`).
|
|
178
|
+
|
|
179
|
+
Через відсутність гранулярного поділу за сторінками у Svelte всі переклади завантажуються в пам'ять на старті у статичних конфігураціях. Це призводить до істотного витоку бандлу (50.0% витоку локалей, 90.0% витоку сторінок) та середнього розміру бандлу сторінки ~100.7 КБ (порівняно з ~59.0 КБ у Intlayer).
|
|
180
|
+
|
|
181
|
+
Реактивність при зміні мови дуже швидка (0.5 мс) завдяки реактивним сховищам Svelte, хоча накладні витрати на гідратацію трохи вищі (~6.2 мс проти ~5.5 мс у Intlayer).
|
|
182
|
+
|
|
168
183
|
**(svelte-i18n)** (`svelte-i18n@4.0.1`):
|
|
169
184
|
|
|
170
185
|
Це рішення задовольняє всі потреби i18n у проєкті Svelte. Але як і у випадку з i18next або іншими великими i18n рішеннями, воно трохи важке (~16.6kb, що приблизно в 4.5 разів більше за `svelte-intlayer`).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: Найкраще i18n рішення для TanStack Start у 2026 році - Звіт бенчмарку
|
|
5
5
|
description: Порівняйте бібліотеки інтернаціоналізації для TanStack Start, такі як react-i18next, use-intl та Intlayer. Детальний звіт про продуктивність за розміром бандла, витоком та реактивністю.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Оновлення результатів бенчмарку"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Оновлення результатів бенчмарку"
|
|
@@ -200,7 +203,7 @@ history:
|
|
|
200
203
|
|
|
201
204
|
`Tolgee` вирішує багато зі згаданих проблем. Проте почати роботу з ним здалося мені важче, ніж з іншими інструментами з подібними підходами. Він не забезпечує типізацію, що значно ускладнює виявлення відсутніх ключів під час компіляції. Мені довелося обертати Tolgee API своїми рішеннями, щоб додати перевірку відсутніх ключів.
|
|
202
205
|
|
|
203
|
-
Пакет досить важкий (~
|
|
206
|
+
Пакет досить важкий (~13.8 kb, що більш ніж у 2.9 рази більше за `react-intlayer`).
|
|
204
207
|
|
|
205
208
|
На TanStack Start я також мав проблеми з реактивністю: при зміні локалі довелося примусово перерендерити провайдер і підписуватися на події зміни локалі, щоб завантаження іншою мовою працювало коректно.
|
|
206
209
|
|
|
@@ -234,7 +237,7 @@ history:
|
|
|
234
237
|
|
|
235
238
|
Цей бенчмарк TanStack Start не має прямого еквівалента `next-translate` (Next.js плагін + `getStaticProps`). Командам, які справді хочуть API у стилі `t()` зі зрілою екосистемою, `react-i18next` та `use-intl` залишаються "розумним" вибором, але будьте готові витратити багато часу на оптимізацію для уникнення витоків.
|
|
236
239
|
|
|
237
|
-
**(Intlayer)** (`react-intlayer@9.5.
|
|
240
|
+
**(Intlayer)** (`react-intlayer@9.5.6`):
|
|
238
241
|
|
|
239
242
|
Я не буду особисто оцінювати `react-intlayer` заради об’єктивності, оскільки це моє власне рішення.
|
|
240
243
|
|
package/docs/uk/benchmark/vue.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: Найкраще i18n рішення для Vue у 2026 році - Звіт про бенчмарк
|
|
5
|
-
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Vue, такі як vue-i18n, fluent-vue та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
5
|
+
description: Порівняйте бібліотеки інтернаціоналізації (i18n) для Vue, такі як vue-i18n, fluent-vue, Tolgee та Intlayer. Детальний звіт про продуктивність щодо розміру бандла, витоків та реактивності.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Оновлення результатів бенчмарку та додавання Tolgee"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Оновлення результатів бенчмарку"
|
|
@@ -66,6 +69,7 @@ style="border:none;"
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
71
|
- **Intlayer**: Найлегше рішення (v9.5.6) з нативним скоупінгом (scoping) та динамічним завантаженням.
|
|
72
|
+
- **Tolgee**: Ефективне динамічне завантаження з нульовим витоком у динамічному режимі, але важче рішення (~3.7× Intlayer) без вбудованої типізації під час компіляції.
|
|
69
73
|
- **vue-i18n**: Галузевий стандарт з багатою екосистемою, але може стати значно важчим і важчим для оптимізації під code-splitting у великих додатках.
|
|
70
74
|
- **fluent-vue**: Інноваційна організація повідомлень, але не вистачає безпеки типів (type-safety) і виявляється надзвичайно важким рішенням.
|
|
71
75
|
|
|
@@ -103,6 +107,7 @@ style="border:none;"
|
|
|
103
107
|
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compat/vue-i18n.md) (v9.5.6)
|
|
104
108
|
- [`vue-i18n`](https://github.com/intlify/vue-i18n) (v11.4.0)
|
|
105
109
|
- [`fluent-vue`](https://github.com/fluent-vue/fluent-vue) (v3.8.2)
|
|
110
|
+
- [`@tolgee/vue`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
106
111
|
|
|
107
112
|
Фреймворк - `Vue` з багатомовним додатком із **10 сторінок** і **10 мов**.
|
|
108
113
|
|
|
@@ -146,7 +151,7 @@ style="border:none;"
|
|
|
146
151
|
|
|
147
152
|
Зірки на GitHub є потужним індикатором популярності проекту, довіри спільноти та довгострокової актуальності. Хоча вони не є прямим показником технічної якості, вони відображають, скільки розробників вважають проект корисним, стежать за його розвитком і, ймовірно, впровадять його. Для оцінки цінності проекту зірки допомагають порівняти інтерес до альтернатив і дають уявлення про зростання екосистеми.
|
|
148
153
|
|
|
149
|
-
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
|
|
154
|
+
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&tolgee/tolgee-js&aymericzip/intlayer)
|
|
150
155
|
|
|
151
156
|
## Результати детально
|
|
152
157
|
|
|
@@ -156,18 +161,22 @@ style="border:none;"
|
|
|
156
161
|
|
|
157
162
|
### 2 - Прийнятні рішення
|
|
158
163
|
|
|
164
|
+
**(Tolgee)** (`@tolgee/vue@7.2.0`):
|
|
165
|
+
|
|
166
|
+
`Tolgee` вирішує багато зі згаданих проблем, пропонуючи динамічне завантаження, яке успішно усуває витоки мовних версій та сторінок (зменшуючи JS сторінки приблизно до 58.8 КБ). Проте він не забезпечує вбудованої типізації для ключів під час компіляції, що ускладнює виявлення відсутніх ключів. Крім того, розмір бібліотеки є відносно важким (~13.8 КБ, що приблизно в 3.7 рази більше за `vue-intlayer`).
|
|
167
|
+
|
|
159
168
|
**(vue-i18n)** (`vue-i18n@11.4.0`):
|
|
160
169
|
|
|
161
170
|
- **vue-i18n** безперечно є найбільш використовуваною бібліотекою i18n для Vue, вона має багато функцій і величезну екосистему. Але "під капотом" рішення досить важке. Навіть якщо vue-i18n інтегрує lazy loading для повідомлень, у ній відсутня функція скоупінгу (scoping). У випадку класичного Vue SPA додатка проблем немає, але для nuxt додатка, що використовує @nuxt/i18n, це призводить до включення повідомлень з усіх сторінок в одну. Для великого nuxt додатка з понад 10 сторінками це може стати справді проблематичним.
|
|
162
171
|
|
|
163
|
-
Пакет дуже важкий (~24.
|
|
172
|
+
Пакет дуже важкий (~24.1 kb, що приблизно в 6 разів більше за `vue-intlayer`).
|
|
164
173
|
|
|
165
174
|
**(fluent-vue)** (`fluent-vue@3.8.2`):
|
|
166
175
|
|
|
167
|
-
- **fluent-vue** пропонує спробу інновації через формат .ftl. Організація повідомлень чудова, легше почати роботу. Але на практиці відсутність безпеки типів підвищує ризик помилок і налагодження може швидко стати трудомістким. Більше того, це рішення завантажує повідомлення за допомогою плагіна vite, який змушує завантажувати весь контент усіма мовами на кожну сторінку. Крім того, це надзвичайно важке рішення (~29.7kb, що приблизно в
|
|
176
|
+
- **fluent-vue** пропонує спробу інновації через формат .ftl. Організація повідомлень чудова, легше почати роботу. Але на практиці відсутність безпеки типів підвищує ризик помилок і налагодження може швидко стати трудомістким. Більше того, це рішення завантажує повідомлення за допомогою плагіна vite, який змушує завантажувати весь контент усіма мовами на кожну сторінку. Крім того, це надзвичайно важке рішення (~29.7kb, що приблизно в 8 рази більше за `vue-intlayer`).
|
|
168
177
|
|
|
169
178
|
### 3 - Рекомендації
|
|
170
179
|
|
|
171
|
-
**(Intlayer)** (`vue-intlayer@9.5.
|
|
180
|
+
**(Intlayer)** (`vue-intlayer@9.5.6`):
|
|
172
181
|
|
|
173
182
|
Я не буду особисто оцінювати `vue-intlayer` заради об'єктивності, оскільки це моє власне рішення.
|
package/docs/uk/cli/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: CLI - Усі команди Intlayer CLI для вашого багатомовного вебсайту
|
|
5
5
|
description: Дізнайтеся, як використовувати Intlayer CLI для керування вашим багатомовним вебсайтом. Дотримуйтесь кроків у цій онлайн-документації, щоб налаштувати свій проєкт за лічені хвилини.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- concept
|
|
18
18
|
- cli
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.8
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Додати команду upgrade"
|
|
20
23
|
- version: 9.5.6
|
|
21
24
|
date: 2026-09-21
|
|
22
25
|
changes: "Додати команду init infra"
|
|
@@ -155,6 +158,7 @@ Intlayer приймає кілька форматів файлів конфіг
|
|
|
155
158
|
|
|
156
159
|
- **[Initialize Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/init.md)** - Налаштування Intlayer у вашому проєкті з автоматичною конфігурацією
|
|
157
160
|
- **[Налаштування інфраструктури](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/infra.md)** - Встановіть десктопний застосунок або запустіть CMS на власній інфраструктурі за допомогою Docker (all-in-one або Compose)
|
|
161
|
+
- **[Оновлення пакетів Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/upgrade.md)** - Скласти список пакетів Intlayer для кожного `package.json` та оновити їх до останньої версії
|
|
158
162
|
- **[Manage Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/configuration.md)** - Отримання вашої конфігурації Intlayer та її відправка в CMS
|
|
159
163
|
|
|
160
164
|
### Керування документацією
|
|
@@ -182,6 +186,7 @@ Intlayer приймає кілька форматів файлів конфіг
|
|
|
182
186
|
"scripts": {
|
|
183
187
|
"intlayer:init": "npx intlayer init",
|
|
184
188
|
"intlayer:infra": "npx intlayer init infra",
|
|
189
|
+
"intlayer:upgrade": "npx intlayer upgrade",
|
|
185
190
|
"intlayer:login": "npx intlayer login",
|
|
186
191
|
"intlayer:build": "npx intlayer build",
|
|
187
192
|
"intlayer:watch": "npx intlayer build --watch",
|