在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”