NSLocalizedString始终返回大写文本

时间:2018-09-18 18:32:35

标签: ios swift nslocalizedstring

我遇到了一个问题,即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”

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

感谢您的帮助, 谢谢

1 个答案:

答案 0 :(得分:3)

当您的应用尝试将字符串本地化但找不到翻译后的文本时,它将以大写形式显示。这样做是为了向您显示大写文本未本地化。您可以通过禁用以下选项来禁用大写字母:显示未本地化的字符串

这是您的操作方式:

  
      
  1. 编辑方案
  2.   
  3. 选择“运行”操作,然后单击“选项”标签
  4.   
  5. 取消选中“显示未本地化的字符串”选项
  6.   

enter image description here

在您的情况下,我认为您的字符串本地化不起作用,因此您的字符串大写,原因是该设置已激活。