Ich arbeite gerade an einer iOS App und lokalisiere sie in mehreren Sprachen, habe aber ein nerviges (nicht brechendes) Problem.
Wenn ich eine neue Lokalisierung für mein Storyboard hinzufügen würde, würde xcode automatisch die Strings füllen, was sehr nett ist. Das Problem, das ich habe, ist, dass ich mehrere Schnittstellen habe, die beide einen Zurückknopf haben. Der Text dazu ist natürlich der gleiche und ihre Übersetzungen sind auch. Die Frage, über die ich nachgedacht habe, ist es möglich, ohne die Verwendung von strings.localizable mehrere Objektübersetzungen irgendwie zu einem zusammenzuführen?
So würde es derzeit aussehen:
%Vor%Aber es wäre viel einfacher, wenn es eine Syntax wie
gäbe "Pnu-Ec-HAj.normalTitle", "Rtx-fT-rdc.normalTitle" = "Back";
(Diese Syntax ist offensichtlich nicht korrekt)
Ich habe mich eine Weile umgeschaut, aber noch keine Antworten auf diese Frage gefunden.
Danke fürs Lesen.
Ich würde empfehlen, jeden Text in Ihrem Storyboard im Code zu referenzieren und den Text in viewDidLoad wie zB:
zu setzen buyButton.titleLabel.text = NSLocalizedString(@"SHOP_BUY_BUTTON_TEXT",@"Button for buying product in detail view");
Es ist eine Menge Arbeit, wenn Sie riesige Storyboards haben, aber am Ende haben Sie ein sauberes Localizable.strings
mit prägnanten Schlüsseln und Kommentaren, die den notwendigen Kontext für Ihre Übersetzer bereitstellen.
Ich präfixe den Schlüssel mit dem Abschnitt der App, also zum Beispiel SHOP_***
, USER_SETTINGS_***
, etc.
Außerdem verwenden wir einen Service wie OneSky , um unsere Übersetzungen online zu organisieren und sie aus der Cloud zu aktualisieren (nicht mit ihnen verbunden, und es ist auch nicht ohne Kinderkrankheiten).
Leider sind die .strings
-Dateien Schlüsselwertdateien und von Natur aus muss es einen Schlüssel geben (bestehend aus der nib ID des Elements, gefolgt von der Eigenschaft) und dem zugehörigen String-Wert.
Wie Apple im vorhergehenden Link beschreibt:
Das Dateiformat für Standardzeichenfolgen besteht aus einem oder mehreren Schlüssel / Wert-Paaren mit optionalen Kommentaren. Der Schlüssel und der Wert in einem gegebenen Paar sind Textfolgen, die in doppelte Anführungszeichen eingeschlossen und durch ein Gleichheitszeichen getrennt sind.
Dann wird Ihre Idee von den .strings
-Dateien nicht unterstützt.
Die einzige Möglichkeit, diese Funktion zu unterstützen, ist die Verwendung von NSLocalizedString
im Code.
Tags und Links ios xcode localization interface builder