Mein Copilot wurde von nervig zu unverzichtbar
Vor sechs Monaten war ich bereit Copilot für alles i18n-Bezogene auszuschalten. Er schlug ständig hardcoded Strings vor wenn ich Übersetzungs-Keys wollte. Er vervollständigte "Loading..." wenn ich t('common.loading') wollte. Er verstand unsere Key-Namenskonventionen nicht. Frustrierend.
Dann entdeckte ich Copilots Funktion für benutzerdefinierte Anweisungen. Verbrachte einen Abend mit der Konfiguration, und jetzt ist es das Gegenteil. Copilot hilft tatsächlich bei der Lokalisierung statt dagegen zu arbeiten.
Hier ist das Setup das meinen Workflow transformiert hat.
Das Problem mit Copilots Standardverhalten
Out of the box weiß Copilot nicht: dass Sie i18n-Keys statt hardcoded Strings wollen, Ihre Key-Namenskonventionen, welche Übersetzungsbibliothek Sie nutzen, oder dass bestimmter Text nicht übersetzt werden soll (Logs, Dev-Nachrichten).
Also schlägt er vor was die meiste Code auf GitHub macht: überall hardcoded englische Strings.
Die Lösung ist Copilot über IHREN i18n-Ansatz zu informieren.
Copilots benutzerdefinierte Anweisungen einrichten
VS Code Copilot liest Anweisungen aus .github/copilot-instructions.md. Erstellen Sie diese Datei in Ihrem Projekt-Root.
Beginnen Sie mit einem Abschnitt zur Internationalisierung. Erklären Sie dass dieses Projekt react-i18next für allen benutzer-sichtbaren Text verwendet und NIEMALS hardcoded Strings nutzen soll.
Beim Schreiben von benutzer-sichtbarem Text die t()-Funktion von useTranslation() verwenden. Die Trans-Komponente für komplexe Interpolation verwenden. Das Key-Format namespace.section.element befolgen.
Geben Sie Beispiele: für Buttons t('common.buttons.save') verwenden, nicht "Save". Für Titel t('settings.profile.title') verwenden, nicht "Profile Settings".
Spezifizieren Sie was NICHT übersetzt werden soll: console.log Nachrichten, Fehlermeldungen in catch-Blöcken (für Debugging), CSS-Klassennamen, technische Identifier und Dev-Environment-Labels.
Nach dem Hinzufügen dieser Datei ändern sich Copilots Vorschläge dramatisch. Er beginnt Übersetzungs-Keys statt Strings vorzuschlagen.
Copilot Ihre Übersetzungsbibliothek beibringen
Verschiedene Projekte nutzen verschiedene i18n-Bibliotheken. Passen Sie Ihre Anweisungen entsprechend an.
Für react-i18next dokumentieren Sie das Import-Pattern: import useTranslation from 'react-i18next', dann t aus useTranslation('namespace') destrukturieren. Für Komponenten mit HTML Trans von react-i18next mit i18nKey und components-Prop verwenden. Für Plurale t('items.count', { count: items.length }) verwenden.
Für next-intl in Server-Komponenten getTranslations von 'next-intl/server' importieren und awaiten. In Client-Komponenten useTranslations von 'next-intl' importieren.
Copilot Ihre Key-Namenskonventionen beibringen
Hier passiert die Magie. Seien Sie spezifisch wie Keys benannt werden sollen.
Dokumentieren Sie die Struktur: Keys folgen namespace.section.element.
Dokumentieren Sie Patterns:
- Seitentitel:
{page}.title(z.B.settings.title) - Bereichsüberschriften:
{page}.{section}.heading(z.B.settings.profile.heading) - Buttons:
{namespace}.buttons.{action}(z.B.common.buttons.save) - Formular-Labels:
{page}.form.{field}.label(z.B.auth.form.email.label) - Fehlermeldungen:
errors.{category}.{type}(z.B.errors.validation.required)
Mit diesen Patterns schlägt Copilot common.buttons. als Präfix vor wenn Sie t(' nach einem Button tippen.
Prompts die gut für i18n-Aufgaben funktionieren
Über passive Vorschläge hinaus ist Copilot Chat exzellent für aktive i18n-Arbeit. Hier sind Prompts die ich regelmäßig nutze:
Strings extrahieren: "Extrahiere alle hardcoded Strings aus dieser Datei zu Übersetzungs-Keys. Verwende den settings Namespace. Aktualisiere das JSX um t() zu nutzen und füge die Keys zu meiner en.json Datei hinzu."
Übersetzungsdateien erstellen: "Erstelle eine Übersetzungsdatei für Spanisch (es) basierend auf meiner englischen Datei. Übersetze UI-Strings natürlich, behalte technische Begriffe, erhalte Platzhalter-Syntax wie {{name}}."
Hardcoded Strings finden: "Finde alle hardcoded benutzer-sichtbaren Strings in dieser Komponente die internationalisiert werden sollten. Keine console.log oder Fehlermeldungen für Debugging."
Integration mit Übersetzungsmanagementsystemen
Copilot kann nicht direkt APIs aufrufen (ohne MCP-fähige Tools), aber Sie können den Workflow trotzdem optimieren.
Option 1: TMS-ready JSON generieren. Fügen Sie Ihren Anweisungen hinzu dass Claude beim Generieren neuer Übersetzungs-Keys auch eine TMS-Import-Datei im JSON-Format mit key, value, context (für Übersetzer) und maxLength Feldern erstellen soll.
Option 2: CLI-Integration. Dokumentieren Sie in Ihren Anweisungen dass nach dem Hinzufügen neuer Keys der Entwickler npx @intlpullhq/cli upload ausführen soll um neue Keys zum TMS zu pushen und npx @intlpullhq/cli download um neueste Übersetzungen zu holen.
Vergleich: Copilot vs Claude Code vs Cursor für i18n
Nachdem ich alle drei ausgiebig genutzt habe:
| Feature | GitHub Copilot | Claude Code | Cursor |
|---|---|---|---|
| Inline-Vorschläge | Exzellent | Gut | Exzellent |
| Benutzerdefinierte Anweisungen | Gut | Exzellent | Exzellent |
| MCP-Support | Kommt bald | Nativ | Nativ |
| TMS-Integration | Manuell | Via MCP | Via MCP |
| Multi-Datei-Bearbeitung | Begrenzt | Nativ | Nativ |
| VS Code Integration | Nativ | CLI | Separate App |
Meine Einschätzung: Nutzen Sie Copilot wenn Sie bereits in VS Code sind und leichtgewichtige Unterstützung wollen. Nutzen Sie Claude Code wenn Sie autonome mehrstufige Workflows brauchen. Nutzen Sie Cursor wenn Sie Copilot-ähnliche UX mit MCP-Fähigkeiten wollen.
Sie schließen sich nicht gegenseitig aus. Ich nutze Copilot für schnelle Vorschläge und Claude Code für komplexe Operationen.
Loslegen
- Erstellen Sie .github/copilot-instructions.md in Ihrem Projekt
- Fügen Sie Ihre i18n-Bibliotheks-Spezifika hinzu
- Dokumentieren Sie Ihre Key-Namenskonventionen
- Inkludieren Sie Beispiele korrekter Nutzung
- Listen Sie was NICHT übersetzt werden soll
- Testen Sie durch Schreiben einer neuen Komponente. Copilot sollte Keys vorschlagen
Die Investition ist vielleicht 30 Minuten Setup. Der Gewinn ist ein Copilot der tatsächlich bei i18n hilft statt dagegen zu arbeiten.
Nutzen Sie IntlPull? Fügen Sie unsere CLI-Befehle zu Ihren Copilot-Anweisungen hinzu. Nachdem Copilot Ihnen beim Schreiben von Übersetzungs-Keys hilft, synchronisiert ein Befehl sie zu Ihrem TMS.
