Platzhalter-Check für iOS und Flutter

Fügen Sie einen Ausgangsstring und seine Übersetzungen ein: Das Tool markiert Platzhalter, die verloren gingen, umbenannt wurden, ihren Typ oder ihre Reihenfolge geändert haben, für Apple-Formate (%@, %1$@, %lld) ebenso wie für ICU-Nachrichten in Flutter. Kostenlos, ohne Anmeldung, und Ihr Text verlässt nie Ihren Browser.

Platzhalter vergleichen

Zu prüfende Übersetzungen

Verglichen in Ihrem Browser: Nichts wird hochgeladen.

Jede Übersetzung vor dem Export prüfen, ohne Kopieren und Einfügen

LocalePilot ist eine Desktop-App, die die Platzhalter all Ihrer Übersetzungen automatisch mit denen des Ausgangstexts vergleicht (%@, %1$@, %lld, ICU), sie in einem QA-Center auflistet und den Export sperrt, bis ein blockierender Fehler behoben ist. Sie wird gerade für macOS fertiggestellt: Hinterlassen Sie Ihre E-Mail-Adresse, um vom Start zu erfahren.

Was das Tool vergleicht

  • Apple-Formate: %@, %1$@, %d, %ld, %lld, %.2f, %u, %i und %s, Position für Position. %% ist Text.
  • ICU-Platzhalter in Flutter: {name}, auch innerhalb von plural- und select-Zweigen.

Seltene Konvertierungen wie %e oder %x werden bewusst ignoriert, damit ein Text wie „20%en“ nicht für einen Fehler gehalten wird.

Die häufigsten Fehler

  • Ein verlorener Bezeichner: Nichts stürzt ab, aber der Name oder die Zahl verschwindet vom Bildschirm.
  • Ein geänderter Typ: Wird %lld durch %@ ersetzt, liest die App eine Ganzzahl als Objekt und kann abstürzen.
  • Eine geänderte Reihenfolge ohne Positionen: Zum Umstellen nummerieren Sie jedes Argument (%1$@, %2$@); nummerierte und nicht nummerierte zu mischen ist undefiniertes Verhalten.
  • „20 % Rabatt“ im Deutschen oder Französischen: Durch das Leerzeichen vor dem Prozentzeichen wird % d als Bezeichner gelesen. Verdoppeln Sie das Zeichen: %%.
  • Ein umbenannter ICU-Platzhalter: {count} wird zu {anzahl} und ändert in Flutter die API jeder Locale.

Diese Fälle werden in der Anleitung zu iOS-Formatbezeichnern und der Anleitung zu ICU-Platzhaltern ausführlich behandelt.

Grenzen des Tools

Das Tool vergleicht Platzhalter, nicht die Bedeutung: Es erkennt weder zwei vertauschte %@, wenn die Argumente nicht nummeriert sind, noch einen schlecht übersetzten Satz. Es interpretiert kein ICU-Escaping mit Apostrophen (Flutters Option use-escaping): '{' wird als Klammer gelesen. Es vergleicht jeweils einen String; für eine ganze Datei nutzen Sie den Check für fehlende ARB-Schlüssel oder einen Editor, der jeden Schlüssel prüft.

Häufige Fragen

Welche iOS-Formatbezeichner werden erkannt?

%@, %1$@ (und andere Positionen), %d, %ld, %lld, %.2f, %u, %i, %s; %% gilt als Text. Seltene Konvertierungen wie %e oder %x werden bewusst ignoriert.

Warum wird „20 % Rabatt“ markiert?

In einem Format-String ist „% d“ ein gültiger Bezeichner (das Leerzeichen ist ein printf-Flag), daher enthält „%lld % de remise“ zwei Bezeichner für ein einziges Argument. Schreiben Sie „%lld %% de remise“. Das betrifft auch das Deutsche, wo vor dem Prozentzeichen ebenfalls ein Leerzeichen steht.

Kann ich die Reihenfolge der Argumente in einer Übersetzung ändern?

Ja, indem Sie jedes Argument nummerieren: %1$@ ist das erste, %2$@ das zweite, egal wo sie im Satz stehen. Innerhalb eines Strings wird alles nummeriert oder nichts.

Prüft das Tool auch ICU-Nachrichten in Flutter?

Ja: Platzhalter in geschweiften Klammern werden mit denen des Ausgangstexts verglichen, auch innerhalb von plural- und select-Zweigen.

Wird mein Text an einen Server gesendet?

Nein. Ihre Strings, manchmal noch unveröffentlicht, werden in der Seite verglichen: Nichts wird gesendet.

Was ist der Unterschied zu LocalePilot?

Dieses Tool vergleicht jeweils einen String. LocalePilot ist eine Desktop-App, die gerade für macOS fertiggestellt wird, jeden Schlüssel Ihrer ARB-, .strings- und .xcstrings-Dateien vergleicht und den Export bei einem blockierenden Fehler sperrt.

Beim Start benachrichtigt werden

LocalePilot wird gerade fertiggestellt. Hinterlassen Sie Ihre E-Mail-Adresse, um vom Start zu erfahren.

  • macOS 12 oder neuer · Ollama oder LM Studio optional
  • App-Oberfläche auf Englisch, Französisch, Spanisch, Italienisch und Portugiesisch.