Zum Inhalt springen
i18n Doctor

i18n Doctor: Erhalten Sie einen vollständigen Bericht zum Übersetzungsstatus mit einem einzigen Befehl.

Führen Sie better-i18n doctor aus, um Ihre gesamte Codebasis in fünf Dimensionen zu analysieren – Codequalität, Übersetzungsabdeckung, Genauigkeit der Platzhalter, verwaiste Schlüssel und CDN-Synchronisierung – und erhalten Sie eine einzige Gesundheitsbewertung von 0 bis 100 mit umsetzbaren Diagnosen.

$ better-i18n doctor
better-i18n · i18n-Doktor-Bericht
████████████████░░░░82 / 100A
PASSED (threshold: 70)
Coverage95(3 issues)
Quality88(2 issues)
Code72(8 issues)
Structure100(clean)
Performance91(1 issue)

Fünf Analyseebenen in einem einzigen Durchgang

Der Doktor führt Code-Scans, Abdeckungsanalysen, Qualitätsprüfungen, Leistungsaudits und CDN-Synchronisationsprüfungen durch – alles gleichzeitig und mit einer einheitlichen Bewertung.

Code – Erkennung von fest codierten Zeichenfolgen

Das AST-basierte Scannen findet alle benutzerseitigen Zeichenfolgen, die nicht in t() eingeschlossen sind. Es erfasst JSX-Text, Attribute, ternäre Lokalisierungslogik, Toast-Meldungen und Zeichenfolgenvariablen.

Abdeckung – Fehlende Übersetzungen

Vergleicht die in Ihrer Quellsprache vorhandenen Schlüssel mit jeder Zielsprache. Jeder in einer Zielsprache fehlende Schlüssel wird mit seinem genauen Namespace und Pfad gemeldet.

Qualität – Platzhalter-Fehlanpassung

Überprüft, ob Interpolationsplatzhalter in allen Sprachumgebungen konsistent sind. Unterstützt die Formate named {}, double-brace {{}}, printf-%s, template ${} und positional-{0}.

Leistung – Erkennung verwaister Schlüssel

Erkennt Schlüssel, die in Ihren Übersetzungsdateien vorhanden sind, aber im Code nie referenziert werden. Verwaiste Schlüssel erhöhen die Nutzlastgröße und verursachen Wartungsaufwand.

Synchronisierung – CDN-Vergleich

Vergleicht die aus Ihrem Code extrahierten Schlüssel mit den im CDN veröffentlichten Schlüsseln. Zeigt Probleme mit fehlenden Remote-Schlüsseln und ungenutzten Remote-Schlüsseln auf, bevor sie in die Produktion gelangen.

Eine einzige Punktzahl für die Qualität Ihrer Übersetzung

Der Arzt berechnet anhand der Diagnoseergebnisse eine Punktzahl zwischen 0 und 100. Fehler werden mit jeweils 3,0 Punkten bestraft, während der Warnbeitrag jeder Regel auf 20 Punkte begrenzt ist. Dadurch wird verhindert, dass eine einzelne Regel mit Tausenden von Warnungen Ihre gesamte Punktzahl auf Null reduziert.

Der Standard-Bestandteilschwellenwert beträgt 70 (Note B). Verwenden Sie --ci, um Builds unterhalb dieses Schwellenwerts als fehlerhaft zu kennzeichnen, oder beginnen Sie mit --report, um eine Basislinie festzulegen, bevor Sie die Bewertung durchsetzen.

Punktformel
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)

Notenschwellen

A+≥ 90
Pass
A≥ 80
Pass
B≥ 70
Pass
C≥ 50
Nicht bestanden
F< 50
Nicht bestanden

CI/CD-Integration – Verhindern Sie fehlerhafte Übersetzungen, bevor sie veröffentlicht werden

Fügen Sie Doctor zu Ihrer CI-Pipeline hinzu, um bei jedem Push Übersetzungsfehler zu erkennen. Die automatische OIDC-Authentifizierung in GitHub Actions bedeutet, dass keine Geheimnisse verwaltet werden müssen.

GitHub-Aktionen mit OIDC

Führen Sie eine automatische Authentifizierung ohne API-Schlüssel mithilfe von GitHub Actions OIDC durch. Fügen Sie einfach id-token: Schreibberechtigung hinzu und führen Sie doctor --ci --report aus.

Schwellenwert-Gating

Legen Sie einen Schwellenwert für das Bestehen fest (Standard: 70) und lehnen Sie den Build ab, wenn die Punktzahl darunter fällt. Beginnen Sie die Nachverfolgung mit --report und setzen Sie sie dann mit --ci durch.

Maschinenlesbares JSON

Verwenden Sie --format json für eine strukturierte Ausgabe, die Sie in jq, benutzerdefinierte Dashboards oder nachgelagerte Automatisierungsprozesse in Ihrer Bereitstellungspipeline einbinden können.

Dashboard-Berichterstattung

Laden Sie die Ergebnisse mit --report in das Better i18n-Dashboard hoch, um historische Daten zu verfolgen, Trendanalysen durchzuführen und dem gesamten Team einen Überblick über den Status der i18n zu verschaffen.

# GitHub Actions example
- run: npx @better-i18n/cli doctor --ci --report

Wann sollte welcher Befehl verwendet werden?

Doctor ist die umfassende Option. Verwenden Sie gezielte Befehle, wenn Sie eine bestimmte Überprüfung benötigen oder schnelleres Feedback in Pre-Commit-Hooks wünschen.

Arzt

Umfassende Gesundheitsbewertung mit fünf Analyseebenen – die einzige zuverlässige Quelle für den i18n-Status Ihres Projekts.

scannen

Fokussierte Erkennung von fest codierten Zeichenfolgen. Unterstützt --staged für Pre-Commit-Hooks.

bitte überprüfen

Interaktiver Checker für fehlende oder ungenutzte Übersetzungsschlüssel mit geführten Eingabeaufforderungen.

synchronisieren

Vollständiger Vergleich zwischen lokal und remote, der sowohl fehlende als auch ungenutzte Schlüssel gleichzeitig anzeigt.

Entwickelt für reale i18n-Workflows

Gesundheitswert 0–100

Einzelbewertung mit Aufschlüsselung nach Kategorien und CI-Bestanden/Nicht bestanden-Schwellenwert. Verfolgen Sie den Zustand Ihrer Übersetzung im Laufe der Zeit.

Verfolgung des lexikalischen Geltungsbereichs

Intelligente Namespace-Erkennung für useTranslations und getTranslations. Jeder t()-Aufruf wird dem richtigen Namespace zugeordnet.

Unterstützung für Serverkomponenten

Umfassende Unterstützung für asynchrone Serverfunktionen des Next.js App Routers. Serverseitige getTranslations-Aufrufe werden erkannt und geprüft.

Konfigurierbare Regeln

Deaktivieren oder herabstufen Sie Regeln in i18n.config.ts. Legen Sie Regeln auf „error”, „warning” oder „off” fest, um sie an die Anforderungen Ihres Projekts anzupassen.

Intelligente Filterung

Ignoriert automatisch CSS-Klassennamen, URLs, Importpfade und Entwicklerkonstanten. Es werden nur umsetzbare Ergebnisse angezeigt.

Ausführliches Audit-Protokoll

Umfassende Transparenz mit --verbose. Zusammenfassungen zum Geltungsbereich, Zeitinformationen und Namespace-Auflösungsprotokolle für die Fehlerbehebung.

Bitte überprüfen Sie den Status Ihrer Übersetzung, bevor Sie sie versenden.

Führen Sie einmal „better-i18n doctor“ aus, um Ihre Ausgangsbasis zu ermitteln. Integrieren Sie es in Ihre CI, um sicherzustellen, dass keine Übersetzungen mehr fehlen.