2017-12-09 5 views
0

Ich versuche ein kleines Xcode-Projekt zu lokalisieren (Xcode 9 und Swift 4). In diesem Projekt gibt es Orte, wo ich Plurale verwende, also muss ich sie auch lokalisieren. Um das zu tun, verwende ich stringsdict Datei. Im Code verwende ich localizedStringWithFormat(_:,fromat,:argument) statische Methode auf einem String. Hier ist, wie mein Code für eine Vielzahl von aussieht (Ich drucke nur die Worte zum Testen):XLIFF enthält nicht alle Arten von Pluralformen, wenn versucht wird, ein Projekt in Xcode zu lokalisieren.

let localizedString = NSLocalizedString("%d apple(s)", comment: "The number of apples") 
    print(String.localizedStringWithFormat(localizedString, 0)) 
    print (String.localizedStringWithFormat(localizedString, 1)) 
    print(String.localizedStringWithFormat(localizedString, 2)) 
    print(String.localizedStringWithFormat(localizedString, 10)) 

Dann erstelle ich eine stringsdict Datei. Es sieht wie folgt aus:

enter image description here

Im Video von der WWDC 2017 (Sitzung 401) über die Lage der Unterkunft gesagt wird, dass, wenn wir stringsdict Datei verwenden für Plurale in andere Sprachen (in diesem Fall lokalisierende, ich will Lokalisieren Sie es in Russisch), wir müssen nur Werte für die Fälle unserer Entwicklungssprache (Englisch) angeben, und beim Export für die Lokalisierung erstellt Xcode automatisch Fälle in einer XLIFF Datei für die Sprache, in die wir lokalisieren möchten. Also habe ich Werte für Null, Eins und Anderes angegeben (in der Demo von der Session werden Werte nur zu Schlüsseln angegeben und andere, allerdings mache ich mir nicht, dass das der Grund des Problems ist).

Nun, wenn ich eine XLIFF Datei erstellen Sie es wie folgt aussieht (nur der Teil der Äpfel):

enter image description here

Wie Sie sehen können, Xcode erzeugt keine Fälle für eine bestimmte Sprache automatisch (für Russisch sollte es 4) haben. Ich benutze stringsdict Dateien sowie versuchen, Plural zum ersten Mal zu lokalisieren, damit ich nicht herausfinden kann, was ich falsch mache. Wenn Sie wissen, wo das Problem liegt, oder Vorschläge haben, würde ich Ihre Hilfe zu schätzen wissen.

Antwort

0

Es gibt wenig, was Sie in Xcode tun können. XLIFF hält nur die Segmente, die es halten soll.

Ein besserer Ansatz wäre die Saiten neu zu formulieren, so dass Plurale weniger ein Problem ist, wie:

nicht "% d Apfel (s)"

aber "Anzahl der Äpfel:% d"

Sie sollten einen Fehler bei Apple darüber ablegen.

Sofern Sie keine Anforderung haben, mit dem XLIFF von Xcode zu arbeiten, schlage ich vor, dass Sie nicht und stattdessen auf die String-Dateien verlassen.

+0

Ich wollte nur Plural klingen weniger Roboter. Also, es ist nichts falsch an meiner Implementierung? –

+0

Ich glaube nicht, dass mit Ihrer Implementierung etwas nicht in Ordnung ist. Xcode war von Anfang an nicht sehr gut darin, Plural zu exportieren: https://stackoverflow.com/questions/26179269/xcode-6-localization-of-plurals-gender-with-xliff?rq=1 – brandelune

+0

Ich habe gesehen im Apple Dev Forum ein ähnliches Problem über all diese. Ein Typ aus der Firma schreibt, dass es ein Bug ist und bittet andere, darüber zu berichten. Hoffnung auf zukünftige Updates wird dieses Problem gelöst. Wie auch immer, es ist ziemlich traurig, dass das nicht funktioniert, denn im Session-Video sieht es sehr cool und hilfreich aus. –

Verwandte Themen