在Swift 3或ObjC中的Xcode 8中查找非NSLocalized字符串

本地化是一个过程,其中我们将所有要显示的字符串移动到一个位置,因此,如果有任何更改,例如,“确定”按钮现在将显示为“确定”,那么我们只需要在一个文件中进行更改。 此过程也可以是使应用程序支持多种语言的第一步,以便可以在运行时更改字符串的显示语言。 如果用户习惯(说)法语,则用户必须以法语查看所有内容。 为此,您应该维护一个字符串文件,其中包含代码库中的所有硬编码字符串。

众所周知,与许多开发人员同时工作会导致字符串处理不当,从而进一步导致代码库中本地化和非本地化字符串的混合使用。

假设有一个新要求,要求您的应用程序支持多种语言。 知道您的应用尚未准备好,因为我们从不关心字符串,这可能是您最大的噩梦。 下一步将是什么? 您可能希望尽快了解未本地化的字符串,因此可以计划对其进行本地化。 在代码库中搜索NSLocalizedString并比较.strings文件中的每个字符串是您唯一的选择吗?

好吧,Xcode提供了一种简洁而非常简单的方法来实现这一目标,而只需更改Xcode中的模式设置就可以实现。

#warning:如果您从未对任何字符串进行NSLocalization,则必须首先进行。 然后,担心将其保存在本地化(.string)文件中。

请注意,此解决方案适用于以下代码:

  label.text = NSLocalizedString(“某些字符串”,注释:“”) 

要么

  label.text = NSLocalizedString(anyVariableName,评论:“”) 

不是这个 :

  label.text =“某个字符串” 

这是您的架构的样子:

您可以按照以下步骤操作:

  • 在“运行目标”菜单中单击目标,然后选择“编辑方案”。
  • 在右侧,选择选项。
  • 选中“显示未本地化的字符串”复选框。
  • 单击关闭按钮。
  • 单击运行以此模式启动您的应用程序。

或者,

添加NSShowNonLocalizedStrings启动参数。

  • 在“运行目标”菜单中单击目标,然后选择“编辑方案”。
  • 在右侧,选择参数
  • 在“启动时传递的参数”中添加“ -NSShowNonLocalizedStrings YES ”。
  • 单击关闭按钮。
  • 单击运行以此模式启动您的应用程序。

它是如何工作的:

在Xcode中启用此设置,

  • 在运行时搜索NSLocalizedString。
  • 在字符串文件中查找键的相应条目。
  • 如果找不到任何匹配项,它将在UI上以大写形式显示文本,并在控制台上显示错误消息。

将显示这种错误:

捆绑包CFBundle的字符串表“ Localizable”找不到可本地化的字符串“ Key”