Ich verwende genstrings
, um .strings
Dateien aus Quellcodedateien in meinem Projekt zu generieren. Obwohl das Projekt technisch gesehen eine Cappuccino App ist, sollte diese Frage gleichermaßen für jedes Projekt gelten, das .strings
Dateien verwendet.Wie behalte ich Flags/Breite in einem printf-formatierten NSString, der als Schlüssel für NSLocalizedString verwendet wird?
Ich habe eine Format-Zeichenfolge, die ich gerne lokalisiert werden würde: @"%d:%02d %@"
. Es dient zur Anzeige von Zeitwerten. Wenn dies eine OSX/iOS-App wäre, würde ich die eingebaute Datetime-Formatierung verwenden, aber da es sich um Cappuccino handelt, muss ich meine eigene rollen. Wenn ich genstrings
ausführen, erzeugt es diesen Wert für diesen Schlüssel: .
Dies ist, wie es in der Localizable.strings
Datei erscheint:
/* ShortLocalTimeFormat */ "%d:%02d %@" = "%1$d:%2$d %[email protected]";
mit dem folgenden Befehl: genstrings -o Resources/en.lproj -s CPLocalizedString *.j */*.j
Wieder ignorieren, dass ich CPLocalizedString
statt NSLocalizedStrings
und *.j
statt *.m
bin mit, wie Diese Werte sind für Cappuccino geeignet. Beachten Sie, dass die 02
in %02d
in der resultierenden Formatzeichenfolge verworfen wird. Wenn ich es erneut mit der Option -noPositionalParameters
ausführen, bleibt nur die Zeichenfolge wie folgt: genstrings -o Resources/en.lproj -noPositionalParameters -s CPLocalizedString *.j */*.j
.
/* ShortLocalTimeFormat */ "%d:%02d %@" = "%d:%02d %@";
Ist das ein Fehler in genstrings
, oder ist es nicht möglich, Fahnen/Breite in Format-Strings zu verwenden, während Positionsparameter zu halten?
Ich nehme an, der 'HH: MM' Teil einer Zeit Zeichenfolge ändert sich nicht wirklich zwischen Gebietsschemata ... oder, wenn es so ist, bezweifle ich, dass ich eine dieser Gebietsschemas unterstützen werde. Keine Worte der Weisheit auf 'Genstrings'? –