2016-12-14 14 views
0

Шаги для воспроизведения:Преобразование NSLocalizedString к NSAttributedString прописные тексту

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

print(testStringAttributed) 

ожидаемый результат: тест

Фактический результат: TEST

Я использую 7.3.1, быстры 2,2

Вы можете видеть, что я даже не задавал атрибуты, даже с атрибутом (с регулярным шрифтом), результат тот же. Это неожиданное поведение, и я должен иметь возможность локализовать свои атрибутные строки в моем приложении (в основном текст, который я установил в метке со ссылками). Любое известное обходное решение?

P.S .: Установка строки в нижний регистр удаляет верхний регистр, но заставляет меня потерять любые атрибуты, которые я установил. Здесь нет жизнеспособного варианта.

+2

Это может быть вызвано отсутствием перевода для этого ключа. –

+0

Вы можете изменить его на Где sillyString -> строка ввода print (sillyString.uppercaseString) print (sillyString.lowercaseString) –

ответ

0

Ошибка была вызвана отсутствием перевода, как предложил Тимур Берникович.

NSLocalizedString должен возвращать ключ в случае отсутствия перевода, но он появляется в случае преобразования в NSAttributedString, строка имеет верхний регистр.

Ввод правильного перевода в Localizable.string и называя ключ исправил проблему