Zum Inhalt springen

Lokalisierung

4Notice erscheint in sieben Sprachen: en, de, fr, es, it, ja, zh-Hans. Der ganze Schritt war ein Ticket und ein Commit („Localize the UI into seven languages”) — weil die Vorarbeit ihn mechanisch gemacht hat.

Alle UI-Texte leben in einem String-Katalog (Resources/Localizable.xcstrings) — bei 4Notice 30 Keys. Die unterstützten Sprachen sind einmal deklariert, in project.yml, sodass das generierte Xcode-Projekt immer übereinstimmt:

options:
developmentLanguage: en
knownRegions: [en, de, fr, es, it, ja, zh-Hans]

Die Akzeptanzkriterien des Tickets: alle UI-Texte im Katalog, orphan-strings meldet nichts, App in de und en geprüft. „Keine hartkodierten Texte” ist keine Stilfrage — es macht die nächsten zwei Schritte prüfbar.

2. Der Agent übersetzt — mit markiertem Vorbehalt

Abschnitt betitelt „2. Der Agent übersetzt — mit markiertem Vorbehalt“

Die Übersetzungen selbst waren Agenten-Arbeit, alle sieben Sprachen in einem Lauf. Der Vorbehalt steht in den Notizen des Tickets, wörtlich:

ja/zh-Hans sind Agent-Übersetzungen — vor dem Store einmal gegenlesen lassen.

Das ist das Muster für Agenten bei Urteils-Arbeit: die Geschwindigkeit mitnehmen, die Unsicherheit dort festhalten, wo sie wieder gesehen wird (im Ticket), und die menschliche Prüfung einplanen, bevor es zählt (beim Store-Eintrag, nicht beim Commit).

Hier liefert der importierte release-checks-Skill: orphan-strings — eines der drei Tools, die der Agent vorher implementiert und verifiziert hat — listet jeden Katalog-Key, den keine Swift-Quelle wörtlich referenziert:

Terminal-Fenster
echo '{"catalog": "Resources/Localizable.xcstrings",
"sources": ["Sources"]}' \
| python3 .agent/tools/orphan-strings/macos.py
# → {"ok": true, "orphans": []}

Eine leere Liste ist das Ziel — aber eine nicht-leere ist Kandidaten, keine Fakten: Ein per String-Interpolation gebauter Key taucht hier ebenfalls auf, also wird jeder Treffer vor dem Löschen bestätigt (der Skill sagt das dazu; deshalb berichtet er, statt zu fixen).

Für 4Notice: keine Waisen, Sichttest auf Deutsch und Englisch, Ticket Done. Store-Metadaten je Sprache sind ein eigenes Thema — sie gehören zu fastlane, wo die Screenshots für alle sieben Sprachen in einem automatisierten Lauf entstehen.