NSLocalizedString 总是返回大写文本

问题描述 投票:0回答:1

我遇到了一个问题,NSLocalizedString 总是返回大写的字符串,无论其输入如何。本地化工作 我假设我做了一些导致这件事的事情,但我似乎不能 弄清楚到底发生了什么变化。

这是我的代码:

func localize(_ str: String) -> String {
    print("str in: \(str)")
    return NSLocalizedString(str, comment: "")
}

我这样称呼它:

let txt = self.localize("Question")
print("txt = \(txt)")

输出:

str in: Question
txt = QUESTION

我尝试过的事情:

  1. 我已经 grep 了我所有的 .strings 文件并确认没有
    “问题”在那里。

  2. 从模拟器中删除应用程序并重新运行应用程序

  3. 将传入的字符串更改为任何文件中都不存在的内容,例如“randomxxyxxy”

我已经尝试在这个问题上搜索了很长时间,但找不到任何类似这个问题的东西。

任何帮助表示赞赏, 谢谢

ios swift nslocalizedstring
1个回答
14
投票

当您的应用程序试图本地化一个字符串但找不到它的翻译文本时,它将以大写字母显示。这样做是为了向您表明大写文本未本地化。您可以通过禁用选项来禁用这些案例的大写:Show not-localized strings

这就是你这样做的方法:

  1. 编辑方案
  2. 选择“运行”操作并单击“选项”选项卡
  3. 取消选中“显示非本地化字符串”选项

在你的情况下,我认为你的字符串本地化不起作用,所以它们被大写,因为该设置已激活。

© www.soinside.com 2019 - 2024. All rights reserved.