Um die Übersetzungen einer Mac-App hin und zurück zu übertragen, exportieren Sie einen Xcode-Lokalisierungskatalog, erhalten dessen Pluralstruktur und Argumentzuordnungen und importieren und testen anschließend das zurückgegebene Paket. Diese Anleitung zeigt anhand einer synthetischen Auswahlbezeichnung genau, was übergeben und geprüft werden muss.

Die Aufgabe richtet sich an alle, die Übersetzungsunterlagen in Xcode auf einem Mac vorbereiten: Eine nach Anzahl abhängige Meldung soll zur Übersetzung geschickt und anschließend mit intaktem Verhalten zurückgebracht werden. Die beispielhafte Bezeichnung lautet Selected 3 tiles in 2 groups. Beide Zahlen können sich unabhängig voneinander ändern. Deshalb muss die Übergabe mehr als nur den lesbaren Wortlaut bewahren.

Vor dem Export den Nachrichtenvertrag festlegen

Betrachten Sie den Nachrichtenvertrag als kurze Spezifikation: welchen Eintrag die App abruft, welche Laufzeitwerte sie bereitstellt und welche Werte die grammatische Variation steuern. Apple dokumentiert, dass String.LocalizationValue lokalisierbare Zeichenfolgen mit Interpolation unterstützt, einschließlich zur Laufzeit bereitgestellter Werte. Die Dokumentation beschreibt außerdem, wie ein statischer Schlüssel und ein separater Standardwert verwendet werden, wenn sich die Kennung vom angezeigten Ausgangstext unterscheiden soll. String.LocalizationValue

Halten Sie für dieses ausgearbeitete Beispiel den folgenden Vertrag neben der Übersetzungsanfrage fest. Dies sind veranschaulichende Anforderungen für die synthetische Bezeichnung, kein Apple-Dateiformat.

Vertragselement Anforderung in diesem Beispiel
Zweck der Meldung Die aktuelle Auswahl zusammenfassen
Englischer Ausgangstext Selected 3 tiles in 2 groups.; beide Zahlen werden zur Laufzeit bereitgestellt
Argument 1 Anzahl der Kacheln; steuert die Form von tile
Argument 2 Anzahl der Gruppen; steuert die Form von group
Zahlenformat Typ und Formatspezifizierer beibehalten, die Xcode für jedes Argument aufzeichnet
Freiheit bei der Übersetzung Satz umstellen, dabei aber die Bedeutung jedes Arguments erhalten
Erforderliches Verhalten Jedes Substantiv stimmt mit seiner jeweiligen Anzahl überein

Notieren Sie auch den tatsächlichen Katalog, die Tabelle und den Schlüssel aus dem Projekt. Erfinden Sie während der Übersetzung keinen Ersatzschlüssel. Apples Anleitung zur Vorbereitung erklärt, dass lokalisierbare APIs Kataloge während eines Builds füllen und dass der Parameter table oder tableName den Katalog auswählt. Außerdem können Kommentare den Kontext der Zeichenfolge erläutern. App-Text für die Übersetzung vorbereiten

Ein hilfreicher synthetischer Kommentar lautet: Zusammenfassung der Auswahl. Argument 1 ist die Anzahl der ausgewählten Kacheln. Argument 2 ist die Anzahl der Gruppen, zu denen diese Kacheln gehören. Beide Anzahlen ändern sich unabhängig voneinander. Jede Anzahl muss ihrem zugehörigen Substantiv zugeordnet bleiben. So erhält die übersetzende Person genügend Informationen, um zwei Argumente zu unterscheiden, selbst wenn sie denselben Zahlentyp haben.

Unabhängige Pluralvarianten im Katalog vorbereiten

Beginnen Sie mit der Meldung in der lokalisierbaren Quelle der App und erstellen Sie dann das Projekt. Klicken Sie im Zeichenfolgenkatalog-Editor mit gedrückter Ctrl-Taste auf den betreffenden Schlüssel und wählen Sie Nach Plural variieren. Apple dokumentiert, dass Xcode den Formatspezifizierer der Interpolation ermittelt, die Pluralformen der Sprache hinzufügt und die Variantenfelder zunächst mit dem vorhandenen Wert füllt. Diese vorausgefüllten Werte müssen noch bearbeitet werden. Text mit einem Zeichenfolgenkatalog lokalisieren und variieren

Für den englischen Ausgangstext sind unter anderem diese angezeigten Ergebnisse vorgesehen: Selected 1 tile in 1 group., Selected 3 tiles in 1 group. und Selected 1 tile in 2 groups. Eine einzelne Auswahl, die nur auf der Anzahl der Kacheln beruht, kann nicht jede Kombination korrekt wiedergeben.

Apples Demonstration zu Zeichenfolgenkatalogen zeigt, wie sich mehrere Argumente mithilfe von Ersetzungen variieren lassen. Jede Ersetzung enthält Pluralfälle, und ihr Informationsfenster zeigt die Argumentposition und den C-Formatspezifizierer an. Zur Laufzeit kombiniert das System die ausgewählten Ersetzungen mit der umgebenden Meldung. Zeichenfolgenkataloge entdecken

Verwenden Sie diesen Mechanismus für die beiden unabhängigen Anzahlen. Lassen Sie Wörter, die mit einer Anzahl übereinstimmen müssen, innerhalb der zugehörigen Variation, statt ein festes Substantiv im Plural im umgebenden Satz stehen zu lassen. Benennen Sie die Ersetzungen sinnvoll, sofern der Editor dies zulässt, und prüfen Sie anschließend ihre Zuordnungen: Die Kachelersetzung muss weiterhin Argument 1 verwenden und die Gruppenersetzung Argument 2.

Verlangen Sie nicht, dass jede Ziellokalisierung denselben Bestand an Varianten wie der englische Text hat. Apple dokumentiert, dass Xcode sprachspezifische Pluralvarianten hinzufügt. Wenn Sie Varianten in der Ausgangslokalisierung hinzufügen, werden sie auch auf Übersetzungen übertragen; werden sie nur in einer anderen Lokalisierung hinzugefügt, betrifft dies nur jene Lokalisierung. Prüfen Sie vor dem Export die tatsächlichen Varianten der Zielsprache. Text mit einem Zeichenfolgenkatalog lokalisieren und variieren

Argumentidentität bewahren, wenn sich der Wortlaut ändert

Die Position eines Platzhalters im Satz und seine Argumentnummer erfüllen unterschiedliche Zwecke. Vielleicht muss eine übersetzende Person die Gruppenanzahl vor der Kachelanzahl nennen, ohne die Reihenfolge zu ändern, in der die App diese Werte bereitstellt.

Apples Referenz zu Formatspezifizierern dokumentiert die Positionsnotation mit n$. Beispielsweise bezeichnet %1$lld Argument 1 mit einer long long-Ganzzahlkonvertierung, während %2$lld Argument 2 mit derselben Konvertierung bezeichnet. %d steht für eine andere Ganzzahldarstellung; es ist keine kürzere Schreibweise von %lld. Die Referenz ist archiviert. Nutzen Sie sie daher für diese etablierten Formatierungsregeln zusammen mit dem aktuellen Katalog-Workflow. Zeichenfolgen-Formatspezifizierer

Betrachten Sie das veranschaulichende Formatfragment Groups: %2$lld; tiles: %1$lld. Wenn Argument 1 den Wert 3 und Argument 2 den Wert 2 hat, lautet die vorgesehene Ausgabe Groups: 2; tiles: 3. Dieses Fragment veranschaulicht nur die Argumentreihenfolge; es implementiert keine grammatische Pluralwahl und sollte die Ersetzungen des Katalogs nicht ersetzen.

Prüfen Sie Platzhalter nach Bedeutung, Index und Typ. Eine Prüfung, bei der nur sichergestellt wird, dass zwei Prozentzeichen vorhanden sind, würde eine vertauschte Anzahl nicht erkennen. Eine Prüfung nur der Typen würde den Tausch ebenfalls übersehen, weil beide Werte Ganzzahlen sind. Umgekehrt würde eine Änderung der Argumentreihenfolge in der App, nur damit sie einer Übersetzung entspricht, den Vertrag für alle anderen Übersetzungen ändern, die diesen Eintrag verwenden.

Bitten Sie die übersetzende Person bei der Übergabe, die exportierten Argumentzuordnungen und Formatierungstypen beizubehalten und den Wortlaut anzupassen. Eine strukturelle Änderung an einer Ersetzung muss ausdrücklich anhand des Vertrags geprüft werden. Eine Änderung der Wortstellung kann durchaus passend sein.

Ein Paket exportieren, das zurückgegeben werden kann

Aktivieren Sie vor dem Export die Build-Einstellung Use Compiler to Extract Swift Strings des Projekts, damit lokalisierbare Swift-Zeichenfolgen enthalten sind. Wählen Sie das Projekt im Projektnavigator aus, gehen Sie zu Product > Export Localizations, wählen Sie die erforderlichen Lokalisierungen und den Zielordner aus und exportieren Sie. Apple dokumentiert diese Schritte und das resultierende .xcloc-Paket. Lokalisierungen exportieren

Die beiden Katalogerweiterungen erfüllen unterschiedliche Aufgaben. Die .xcstrings-Datei des Projekts enthält seinen Zeichenfolgenkatalog. Das exportierte .xcloc-Paket dient als Übergabe an die übersetzende Person; sein Ordner Localized Contents enthält XLIFF, und der Ordner Notes kann Begleittexte enthalten. Senden Sie das Paket zusammen mit dem Vertragshinweis, statt die Meldung auf eine zweispaltige Liste sichtbarer Sätze zu reduzieren. Lokalisierungen exportieren

Vergewissern Sie sich, dass das Übersetzungswerkzeug Varianten von Zeichenfolgenkatalogen in XLIFF unterstützt. Apple erklärt, dass aus Katalogen stammende Variantenkennungen den Schlüssel der Zeichenfolge und die Varianteneinstellungen kodieren, und dokumentiert die Einstellung Localization Prefers String Catalogs für diese Exportdarstellung. Diese Strukturen müssen beim Rückweg erhalten bleiben. Zeichenfolgenkataloge entdecken

Verwenden Sie diese praktische Checkliste für die Übergabe. Sie ist eine Workflow-Empfehlung, die sich aus der dokumentierten Paketstruktur und dem Vertrag des Beispiels ableitet.

  • Geben Sie das übersetzte .xcloc-Paket mit allen relevanten Ressourcen zurück.
  • Bewahren Sie Nachrichtenkennungen und Variantenpfade, sofern keine beabsichtigte strukturelle Änderung dokumentiert ist.
  • Liefern Sie Zieltexte für die erforderlichen Pluralvarianten der Ziellokalisierung.
  • Bewahren Sie Argumentidentitäten, Zahlentypen und Ersetzungszuordnungen.
  • Kennzeichnen Sie alle nach dem Export erhaltenen Änderungen am Ausgangstext, damit sie vor dem Import abgeglichen werden können.

Falls das Werkzeug der übersetzenden Person variierte Einträge nicht erhalten kann, bearbeiten Sie die exportierte Lokalisierung mit Xcode oder tragen Sie die Übersetzungen in den Katalog des Projekts ein. Apple dokumentiert das Bearbeiten von XLIFF-Zieltexten und von Zeichenfolgenkatalogen in Xcode; spätere Exporte enthalten Änderungen am Katalog. Bei einem reinen Austausch als Fließtext muss jemand die Variationsstruktur rekonstruieren. XLIFF- und Zeichenfolgenkatalogdateien bearbeiten

Die Rückgabe importieren und die tatsächlichen Unterschiede prüfen

Bewahren Sie den ursprünglichen Export zum Vergleich auf. Wenn das übersetzte Paket zurückkommt, wählen Sie das Projekt aus und gehen Sie zu Product > Import Localizations. Wählen Sie den Ordner des Xcode-Lokalisierungskatalogs aus. Prüfen Sie im Importfenster Warnungen und Fehler über Issues View sowie die Änderungen über File View, bevor Sie den Import abschließen. Apple gibt an, dass der Vergleichseditor links die importierte Version und rechts die aktuelle Projektversion anzeigt. Lokalisierungen importieren

Bei Zeichenfolgen aus Katalogen dokumentiert Apple den Import der Übersetzungen zurück in den entsprechenden Zeichenfolgenkatalog. Öffnen Sie nach dem Import erneut den Eintrag zur Zusammenfassung der Auswahl und prüfen Sie beide Ersetzungen, ihre Argumentzuordnungen und ihre Zielvarianten. Zeichenfolgenkataloge entdecken

Gehen Sie bei Auffälligkeiten systematisch vor. Fehlt ein Eintrag, vergleichen Sie seine Tabelle und seinen Schlüssel mit dem ursprünglichen Export. Fehlen Pluralvarianten, vergleichen Sie die zurückgegebene Variantenstruktur. Stehen Anzahlen neben den falschen Substantiven, vergleichen Sie die Argumentzuordnungen. Ist nur eine Kombination fehlerhaft, prüfen Sie den Text dieser Variante, bevor Sie den Anwendungscode ändern. Diese Reihenfolge folgt den Abhängigkeiten des Beispiels; sie bedeutet nicht, dass Xcode automatisch jeden Vertragsverstoß erkennt.

Unterschiedliche Anzahlen testen, um vertauschte Argumente aufzudecken

Ein erfolgreicher Import bestätigt, dass Xcode die Übergabe akzeptiert hat. Das Verhalten des Beispiels muss dennoch geprüft werden. Verwenden Sie Testdaten der App oder eine Entwicklungsfixture, um die folgenden Kombinationen anzuzeigen. Die erwarteten Sätze veranschaulichen den Vertrag des englischen Ausgangstexts; der Wortlaut und die Variantenauswahl müssen der Ziellokalisierung folgen.

Anzahl der Kacheln Anzahl der Gruppen Erwartete Ausgabe des englischen Ausgangstexts Was damit geprüft wird
1 1 Selected 1 tile in 1 group. Beide Singularformen
3 1 Selected 3 tiles in 1 group. Unabhängige Variation der Kacheln
1 2 Selected 1 tile in 2 groups. Unabhängige Variation der Gruppen
3 2 Selected 3 tiles in 2 groups. Unterschiedliche Werte, die vertauschte Argumente aufdecken

Prüfen Sie auch den Wert null, falls die App eine leere Auswahl anzeigen kann. Wählen Sie außerdem Werte, die jede für die jeweilige Ziellokalisierung erforderliche Pluralkategorie abdecken. Die vier Zeilen decken die englischen Kombinationen aus Singular und Plural ab, aber nicht jede mögliche Zielvariante.

Um die Mac-App in einer Ziellokalisierung auszuführen, wählen Sie Product > Scheme > Edit Scheme, dann Run und öffnen Sie Options. Legen Sie App Language und bei Bedarf App Region fest, schließen Sie den Editor, wählen Sie das Mac-Ausführungsziel und starten Sie die App. Apple dokumentiert diesen Workflow zum Testen über das Schema. Lokalisierungen beim Ausführen der App testen

Lesen Sie die angezeigte Meldung und prüfen Sie, ob sie in die Desktop-Oberfläche passt. Wenn die Anzahlen den richtigen Substantiven zugeordnet bleiben, jede erforderliche Variante korrekt funktioniert und die zurückgegebene Struktur dem vorgesehenen Vertrag entspricht, hat die Übersetzungsrunde das für diese Bezeichnung erforderliche Verhalten bewahrt. Bewahren Sie den Vertragshinweis zusammen mit der Übergabe auf, damit sich die nächste Textänderung anhand derselben klaren Anforderungen prüfen lässt.

Quellen