iphone-清理Localizable.strings

iphone-清理Localizable.strings,iphone,xcode,Iphone,Xcode,我有一个应用程序经历了一次大手术,很多东西都被修改了 此应用程序已本地化为多种语言 我确信localizable.strings文件中的某些字符串不再被使用。至少有20%。有没有办法检查应用程序仍在使用哪些字符串,这样我就可以从所有语言文件中去掉不必要的字符串 谢谢。您可以: 将新的localizable.strings转储到具有 genstrings-o temporary.directory*.m 然后从localizable.strings文件中删除等号的右侧,以便于比较: cat tem

我有一个应用程序经历了一次大手术,很多东西都被修改了

此应用程序已本地化为多种语言

我确信localizable.strings文件中的某些字符串不再被使用。至少有20%。有没有办法检查应用程序仍在使用哪些字符串,这样我就可以从所有语言文件中去掉不必要的字符串

谢谢。

您可以:

将新的localizable.strings转储到具有

genstrings-o temporary.directory*.m

然后从localizable.strings文件中删除等号的右侧,以便于比较:

cat temporary.directory/Localizable.strings | awk-F“\=”{print$1}>Localizable\u new.strings

对“old”Localizable.strings执行相同的操作(假设您有英文版本):

cat en.lproj/Localizable.strings | awk-F“\=”{print$1}>Localizable\u old.strings

然后使用
/Developer/Applications/Utilities/FileMerge
比较可本地化的旧.strings可本地化的新.strings

根据20%的数量,您可以“快速”删除过时的行

我承认这个过程可能很乏味,有很大的改进空间,例如,它不能正确处理评论中的等号,但可能会有所帮助

编辑:

我从来没有真正快乐过。为了寻找更易于维护的解决方案,我最终停止使用NSLocalizedString,并将代码折射为使用
NSLocalizedStringWithDefaultValue(,)

现在,我在源代码中对本地化进行了所有更改,然后运行genstring。genstrings将覆盖Localizable.strings,但“”字段将包含我希望在Localizable.strings中包含的字符串。我不需要为原始语言编辑Localizable.strings。更多细节见附件