iphone - 清理 Localized.strings

标签 iphone xcode

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

此应用程序过去和现在都已本地化为多种语言。

我确信 localized.strings 文件中的某些字符串不再被使用。其中至少有20%。有没有办法检查应用程序仍在使用哪些字符串,以便我可以从所有语言文件中删除不必要的字符串?

谢谢。

最佳答案

你可以:

使用

将新的 localized.strings 转储到临时目录

genstrings -o temporary.directory *.m

然后从 localized.strings 文件中删除等号的右侧以使比较更容易:

cat temporary.directory/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_new.strings

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

cat en.lproj/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_old.strings

然后使用 /Developer/Applications/Utilities/FileMergeLocalized_old.stringsLocalizes_new.strings 进行比较。

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

我承认这个过程可能很乏味,并且有很大的改进空间,例如它无法正确处理注释中的等号,但也许它有帮助。

编辑:

我从来没有真正对上面的内容感到满意。寻找更易于维护的解决方案,我最终停止使用 NSLocalizedString 并重构代码以使用 NSLocalizedStringWithDefaultValue(<#key#>, <#tbl#>, <#bundle#>, <#val#>, <#comment#>)

现在我对源代码中的本地化进行了所有更改,然后运行 ​​genstrings。 genstrings 将覆盖 Localized.strings,但“<#val#>”字段将包含我想要在 Localized.strings 内的字符串。我不需要编辑原始语言的 Localized.strings 。更多详情见my Blog

关于iphone - 清理 Localized.strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442142/

相关文章:

objective-c - 写入包中的文件?

ios - 面试 - 将 C++ 库与 iOS 应用程序集成

ios - 即使应用程序处于后台也可以为 UiView 设置动画

javascript - 修复了 Mobile Safari 中的定位

ios - 我的应用程序推送通知仅在我客户的 iPhone 中不起作用

iphone - CoreData 查找字符串 - NSPredicate 或 for 循环?

iphone - iOS设计PNG文件

iphone - 在单击按钮的 iphone 上停止异步调度队列

xcode - 在哪里可以下载旧版本的 Xcode?

ios - XMPP、CoreData - 如何仅加载自身和目标用户消息?