2016-12-14 3 views
0

Schritte Großbuchstaben zu reproduzieren:konvertieren NSLocalizedString zu NSAttributedString dem Text

let testString = NSLocalizedString("test", comment: "string for test") 
let testStringAttributed = NSAttributedString(string: testString) 

print(testStringAttributed) 

erwartetes Ergebnis: Test

tatsächliches Ergebnis: TEST

Ich bin mit 7.3.1, swift 2.2

Sie können sehen, dass ich nicht einmal Attribute gesetzt habe, auch bei attributierten (mit einem regulären Schriftstil) ist das Ergebnis dasselbe. Dies ist ein unerwartetes Verhalten und ich muss in der Lage sein, meine attributierten Strings in meiner App zu lokalisieren (im Grunde genommen ein Text, den ich in einem Label mit Links gesetzt habe). Jede bekannte Problemumgehung?

S.S .: Wenn die Zeichenkette auf Kleinbuchstaben gesetzt wird, wird das Großbuchstabe entfernt, aber ich verliere alle Attribute, die ich eingestellt habe. Keine praktikable Option hier.

+2

Es kann durch fehlende Übersetzung für diesen Schlüssel verursacht werden. –

+0

Sie können es von ändern Wo Luftschlangenspray -> Eingabestring print (sillyString.uppercaseString) print (sillyString.lowercaseString) –

Antwort

0

Der Fehler war aufgrund einer fehlenden Übersetzung wie Timur Bernikowich vorgeschlagen.

NSLocalizedString soll den Schlüssel im Falle einer fehlenden Übersetzung zurückgeben, aber im Falle einer Konvertierung in NSAttributedString wird der String in Großbuchstaben geschrieben.

Die richtige Übersetzung in Localizable.string und den Aufruf des Schlüssels behoben das Problem