Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenWenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur DokumentationMarkdown des Dokuments in die Zwischenablage kopieren
Ist vue-i18n im Jahr 2026 veraltet?
In der Vue-Community ist kaum eine Bibliothek so verbreitet wie vue-i18n. Seit Vue 2 von Kazupon gepflegt, treibt sie @nuxtjs/i18n an und gilt als Standard für mehrsprachige Vue-Apps.
Unsere Benchmarks 2026 lieferten jedoch ein bemerkenswertes Ergebnis: vue-i18n war die schwerste Lokalisierungs-Runtime über alle getesteten Frontend-Frameworks hinweg.
Ausgehend von einer schlanken Vite + Vue-Basis von 31.5 KB steigerte vue-i18n das durchschnittliche Seiten-JavaScript auf 136.4 KB, mehr als eine Vervierfachung des Payloads.
Wie konnte ein für seine Leichtigkeit geschätztes Framework einen derart schweren i18n-Stack hervorbringen? Und ist das klassische Runtime-Modell heute noch zeitgemäß?
Wichtigste Erkenntnisse
Schwerste getestete Runtime:
Mit 24.3 KB gzipped (83.2 KB minified) vor dem ersten Text ist vue-i18n etwa 9-mal schwerer als die 2.7 KB Runtime von intlayer.
330% Payload-Zuwachs:
vue-i18n vergrößerte eine 31.5 KB Vue-Seite auf 136.4 KB. Intlayer erzielte 59.3 KB, ein 56% kleinerer Seiten-Payload.
Versteckter Browser-Compiler:
Standardmäßig lädt vue-i18n einen vollständigen Nachrichten-Compiler in den Browser, um Texte zur Laufzeit zu parsen.
Wartungsfokus:
Im letzten Jahr verzeichnete vue-i18n ~259 Commits, fokussiert auf Bugfixes und Vue-Versionskompatibilität.
Fehlendes modernes Tooling:
Keine native Unterstützung für Language Server (LSP), KI-MCP-Server oder automatisierte CLI-Übersetzungspipelines.
Wartung vs. modernes Tooling
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
Vergangene zwölf Monate:
intlify/vue-i18n: 259 Commits (Pflege für Vue 3 und Nuxt).aymericzip/intlayer: 4.343 Commits (Compiler-Optimierungen, LSP-Erweiterungen und KI-Agenten-Unterstützung).
Eine etablierte Bibliothek bietet Stabilität. Moderne Frontend-Stacks nutzen jedoch AST-Transformationen im Build, Dead-Code-Elimination und KI-Lokalisierung. Eine reine Laufzeitarchitektur kann diese Entwicklungen nur schwer adaptieren.
Performance in Vite + Vue
Gemessen an einer Anwendung mit 10 Seiten und 10 Sprachen mit Vite und Vue 3:
Dynamisches JSON-Laden
Lädt Übersetzungen während der Laufzeit verzögert
Gescoptes JSON (Namespacing)
Übersetzungs-Namespaces pro Seite
I18n Performance-Benchmark
Was ist diese Metrik?
Die gesamte gzip-komprimierte Größe des Internationalisierungs-Bibliothekspakets. Es enthält nur den Provider und die Inhaltsabruflogik nach Tree-Shaking und Minimierung.
Warum ist das wichtig?
Eine kleinere Bibliotheksgröße reduziert die anfängliche JavaScript-Nutzlast, was zu schnelleren Download- und Ausführungszeiten auf dem Client führt.
Ansehen als
Getestet in realen Browserumgebungen mit Gzip-Kompression. Vollständige Daten in der Vue-Benchmark-Dokumentation.
Basis-Overhead
Overhead vor dem Hinzufügen von Übersetzungstexten:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Bibliothek | Gzipped | Minified |
|---|---|---|
vue-i18n@11.4.0 | 24.3 KB | 83.2 KB |
intlayer@8.7.12 | 2.7 KB | 7.6 KB |
Die Runtime von vue-i18n wiegt allein 24.3 KB gzipped, fast so viel wie der gesamte Vue-Core. Intlayer fügt lediglich 2.7 KB hinzu.
Seitengewicht und Daten-Leakage
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Konfiguration | Seiten-JS Ø (gz) | Sprach-Leakage | Andere-Seiten-Leakage | Komponente Ø (gz) |
|---|---|---|---|---|
| Basis (ohne i18n) | 31.5 KB | 0.0% | 90.0% | 0.9 KB |
vue-i18n | 136.4 KB | 50.2% | 90.0% | 196.0 KB |
| Intlayer | 59.3 KB | 51.1% | 0.0% | 6.5 KB |
Wichtige Beobachtungen
Hoher relativer Zuwachs:
Da Vue von Haus aus sehr kompakt ist (~31 KB), vervierfacht vue-i18n das Gewicht der Anwendung.
Leakage anderer Seiten:
Standardmäßig gehören 90% der geladenen Übersetzungen zu anderen Seiten. Intlayer reduziert dies auf 0.0%.
Gewicht isolierter Komponenten:
Komponenten mit lokalen Scopes erreichten unter vue-i18n durchschnittlich 196 KB durch duplizierte Kataloge, verglichen mit 6.5 KB bei Intlayer.
Warum ist vue-i18n schwer?
Integrierter AST-Compiler im Browser
vue-i18n enthält einen eigenen Nachrichtenformat-Compiler. Pluralregeln und Variablenersetzungen werden zur Laufzeit in Abstract Syntax Trees überführt.
Um dies zu vermeiden, müssen Bundler-Aliase für vue-i18n/dist/vue-i18n.runtime.esm-bundler.js konfiguriert und Kataloge mit @intlify/unplugin-vue-i18n vorkompiliert werden. Viele Projekte übersehen diesen Schritt.
Monolithischer Funktionsumfang
vue-i18n bündelt Formatierer für Zahlen und Daten, verkettete Nachrichten, Brücken zur Options-API ($t, v-t) und reaktive Proxys. Selbst wenn Sie nur simple Strings in <script setup> übersetzen, zahlen Sie für das gesamte Paket.
Dynamische Schlüssel blockieren Tree-Shaking
Da "home.hero.title" dynamisch aufgelöst wird, können Bundler nicht ermitteln, welche Schlüssel genutzt werden. Ungenutzte Übersetzungen verbleiben im Bundle.
Kopieren Sie den Code in die Zwischenablage
Kopieren Sie den Code in die Zwischenablage
Der Intlayer-Compiler erfasst verwendete Eigenschaften präzise und entfernt ungenutzte Inhalte vor dem Erstellen der Client-Chunks. Details in der Bundle-Optimierung.
Entwicklererfahrung
Getrennte Kataloge vs. Co-Location
Bei vue-i18n liegen Texte in einem separaten locales/-Verzeichnis. Intlayer organisiert Inhaltsdateien direkt neben den Komponenten:
Kopieren Sie den Code in die Zwischenablage
Kopieren Sie den Code in die Zwischenablage
Kopieren Sie den Code in die Zwischenablage
Kopieren Sie den Code in die Zwischenablage
Kopieren Sie den Code in die Zwischenablage
Wird Hero.vue gelöscht oder verschoben, werden die Übersetzungen direkt mitangepasst.
Autovervollständigung vs. strikte Vollständigkeit
DefineLocaleMessage bietet Autovervollständigung gegen das Basisschema. Es garantiert jedoch nicht, dass alle Sprachen vollständig gepflegt sind. Fehlt ein Schlüssel in de.json, meldet TypeScript beim Build keinen Fehler.
Mit Intlayer werden Wörterbücher strikt geprüft. Das Aktivieren von strictMode lässt den Build bei jeder fehlenden Übersetzung fehlschlagen.
Modernes Tooling für IDEs und KI
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feature | vue-i18n | Intlayer |
|---|---|---|
| VS Code Extension | Drittanbieter (i18n Ally) | ✅ Offizielle Extension |
| Language Server (LSP) | ❌ Keiner | ✅ Integrierter LSP |
| MCP Server für KI | ❌ Keiner | ✅ Integrierter MCP-Server |
| Agent Skills | ❌ Keine | ✅ Autonome Agent-Skills |
| Visuelles In-Context-CMS | ❌ Keines | ✅ Kostenloses Open-Source-CMS |
Übersetzungspipelines
vue-i18n bietet keinen integrierten Übersetzungsbefehl. Teams greifen meist auf externe Dienste wie Crowdin oder Phrase zurück.
Intlayer liefert integrierte Werkzeuge:
Lokales KI-Auto-Fill (intlayer fill):
Ergänzt fehlende Übersetzungen mit eigenen API-Schlüsseln von OpenAI, Anthropic, Mistral oder Gemini.
Selbst hostbares visuelles CMS:
Nutzen Sie das Intlayer CMS, damit Content-Teams Texte visuell bearbeiten und direkt in Git committen können.
Freie Open-Source-Lizenz:
Die gesamte Toolchain steht unter Apache 2.0.
Wann bleibt vue-i18n sinnvoll?
Wenn das Routing eng mit @nuxtjs/i18n verknüpft ist, lohnt ein Umbau oft nicht.
Bei intensiver Nutzung von verlinkten Nachrichten oder komplexen benutzerdefinierten Pluralregeln.
Wenn die Bundle-Größe für Ihren Anwendungsfall zweitrangig ist.
Wie verbessere ich mein bestehendes vue-i18n-Setup?
Intlayer bietet Drop-in-Kompatibilitätspakete an, die exakt dieselben Funktionssignaturen von vue-i18n und @nuxtjs/i18n (useI18n, $t, <i18n-t>) bereitstellen. Sie müssen Ihre Templates oder Composables nicht neu schreiben, um von einer leichtgewichtigen, compilergestützten Architektur zu profitieren.
Die Einrichtung erfolgt mit einem einzigen Befehl:
Kopieren Sie den Code in die Zwischenablage
Dieses interaktive CLI-Tool:
- Installiert das Kompatibilitätspaket
@intlayer/vue-i18noder@intlayer/nuxt-i18n. - Richtet Vite- oder Nuxt-Bundler-Aliase ein, sodass Ihre bisherigen Importe und Template-Direktiven nahtlos auf Intlayer umgeleitet werden und
vue-i18naus derpackage.jsonentfernt werden kann. - Aktiviert sofort Sprachserver-Diagnosen (LSP), entfernt den 24-KB-AST-Parser aus dem Client-Bundle und schaltet lokale KI-Übersetzungsprozesse frei, ohne ein großes Refactoring zu verlangen.
Detaillierte Schritt-für-Schritt-Anleitungen finden Sie hier:
- Direkte Kompatibilität: Nutzen Sie bestehende Templates mit dem
vue-i18n-Kompatibilitäts-Layer oder@nuxtjs/i18n-Kompatibilitäts-Layer. - Geführte Migration: Konvertieren Sie JSON-Dateien mit unseren Migrationsleitfäden: von vue-i18n oder von @nuxtjs/i18n.
- Hybride Lösung: Behalten Sie
vue-i18nfür die Anzeige bei und verwenden Sie Intlayer mit vue-i18n für strikte Typen und lokale KI-Übersetzung.
Prüfen Sie Ihre Website mit dem kostenlosen i18n SEO Scanner:
Weiterführende Links
Kommentare
Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.
