将NSLocalizedString转换为NSAttributedString大写文本

时间:2016-12-14 09:54:13

标签: ios swift xcode nsattributedstring nslocalizedstring

重现的步骤:

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

print(testStringAttributed)

预期结果:测试

实际结果:TEST

我使用的是7.3.1,swift 2.2

你可以看到我甚至没有设置属性,即使是属性(使用常规字体样式),结果也是一样的。 这是一个意外的行为,我必须能够在我的应用程序中本地化我的属性字符串(基本上是我在带有链接的标签中设置的文本)。 任何已知的解决方法?

P.S。:将字符串设置为小写会删除大写但是会丢失我设置的任何属性。这里不是一个可行的选择。

1 个答案:

答案 0 :(得分:0)

错误是由于Timur Bernikowich建议的翻译缺失造成的。

NSLocalizedString应该在缺少翻译的情况下返回密钥,但是在转换为NSAttributedString的情况下,字符串变为大写。

在Localizable.string中放置正确的翻译并调用该键修复了问题