SourceFile.m
NSLocalizedString(@"Word 1", @"");
NSLocalizedString(@"Word 2", @"");
de.lproj/Localizable.strings
"Word 1" = "Wort 1";
"Word 2" = "Wort 2";
fr.lproj/Localizable.strings
/* Missing Word 1 */
"Word 2" = "Mot 2";
是否有脚本或编译器设置来检查所有本地化字符串是否在所有支持的语言环境中翻译?
4条答案
按热度按时间fnatzsnv1#
您可以在键列表上使用
diff
来查看缺少了什么下面是一个shell脚本(我们称之为
keys.sh
),用于打印给定.strings
文件的键,排序为stdout
:然后,您可以将它与
<(cmd)
shell语法结合使用,以比较两个本地化之间的键;例如,比较您的Base.lproj
和fr.lproj
:ct2axkht2#
非本地化字符串
在“编辑方案〉选项”下,选中“显示非本地化字符串”框。
当你构建并运行时,你可以在Xcode命令屏幕上看到警告。
如果您本地化字符串如下所示:
然后Xcode会在终端上打印一条警告消息,如下所示:
对于故事板,Xcode会抛出类似的错误。
eyh26e7m3#
这不是解决你问题的完美方案。但是你可以使用下面的插件在编码时检查本地化字符串。https://github.com/questbeat/Lin
另外,我习惯从Excel文件或Google Sheet导出本地化字符串表作为练习。这将使事情变得更容易,并减少大量错误。
tez616oj4#
Check my example on how you can achieve it
综上所述:你可以在
Build Phase
下创建一个Run Script
,在其中执行一个bash script
,就像@AliSoftware建议的那样,比较你的Localizable.strings
,如果一个与另一个相比缺少一些键,你可以停止构建并将这些缺少的键作为错误输出,或者你可以将它们作为错误输出,不让构建继续。