IBInspectable und NSLocalizedString

8

Ich habe viele lokalisierte Texte in meiner Localizable.strings-Datei geschrieben, und ich suche nach einer Möglichkeit, diese zu verwenden und sie im Interface Builder anzuzeigen. Das heißt, anstatt Outlets für alle meine Ansichten zu erstellen und den Text in Code zu setzen, möchte ich eine IB_DESIGNABLE UILabel-Unterklasse erstellen, die auf meine Localizable.strings-Datei zugreifen und den lokalisierten Text dann direkt auf dem Interface Builder anzeigen muss.

Das Problem ist, dass NSLocalizedString keine Ergebnisse im Interface Builder liefert, sondern nur, wenn ich den Code aktiviere. Gibt es eine Möglichkeit, dem Interface Builder mitzuteilen, welche Datei für die Lokalisierung verwendet werden soll (zum Beispiel in prepareForInterfaceBuilder)?

    
JRV 21.10.2014, 11:57
quelle

3 Antworten

6

Ich habe es endlich selbst herausgefunden. Die Antwort lautet: Verwenden Sie [[NSBundle bundleForClass:self.class] localizedStringForKey:key value:@"" table:nil] , um Übersetzungen aus der Datei Localizable.strings im Interface Builder zu erhalten. Diese Erkenntnis hat es mir ermöglicht, das NSLocalizedString -Makro ( only für den Interface Builder) neu zu definieren:

%Vor%     
JRV 22.10.2014, 06:41
quelle
12

Dank der Antwort von JRV habe ich diese Klasse endlich repariert:

%Vor%

Dies schafft die Möglichkeit, den Schlüssel im Interface Builder zu setzen:

Dies wird das Etikett direkt im Interface Builder aktualisieren, ziemlich cool und etwas, das xcode standardmäßig unterstützen sollte!

Sie können dies auch auf Github finden: Ссылка

    
Antoine 11.12.2014 08:22
quelle
1

Das hat für mich funktioniert,

%Vor%

Und füge diese String Erweiterung hinzu:

%Vor%     
Zaid Pathan 02.02.2017 06:29
quelle