我有一個應用程序,遭受了大手術和很多東西被修改。iphone - 清理Localizable.strings
這個應用程序是和已經本地化爲幾種語言。
我確定localizable.strings文件中的一些字符串不再被使用。至少20%。有沒有辦法檢查哪些字符串仍然被應用程序使用,這樣我就可以擺脫所有語言文件中不必要的字符串?
謝謝。
我有一個應用程序,遭受了大手術和很多東西被修改。iphone - 清理Localizable.strings
這個應用程序是和已經本地化爲幾種語言。
我確定localizable.strings文件中的一些字符串不再被使用。至少20%。有沒有辦法檢查哪些字符串仍然被應用程序使用,這樣我就可以擺脫所有語言文件中不必要的字符串?
謝謝。
,你可以:
轉儲新localizable.strings到一個臨時目錄
genstrings -o temporary.directory *.m
然後等號右邊從localizable.strings文件拖放到作出比較簡單:
cat temporary.directory/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_new.strings
執行相同的「老「Localizable.strings(假設你有一個英文版本):
cat en.lproj/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_old.strings
然後使用/Developer/Applications/Utilities/FileMerge
比較Localizable_old.strings與Localizable_new.strings。
根據多少20%,你可能會「快速」刪除過時的行。
我承認這個程序可能很繁瑣,並且有很大的改進空間,例如它不能在註釋中正確處理等號,但也許會有幫助。
編輯:
我從來沒有真正滿意上面。尋找解決方案更容易維護我最終停止使用NSLocalizedString並折射代碼使用NSLocalizedStringWithDefaultValue(<#key#>, <#tbl#>, <#bundle#>, <#val#>, <#comment#>)
現在我對源代碼內部的本地化進行所有更改,然後運行genstrings。 genstrings將覆蓋Localizable.strings,但'<#val#>'字段將包含Localizable.strings中的字符串。我不需要編輯原始語言的Localizable.strings。更多的細節在my Blog
謝謝。我認爲這會有很大的幫助! – SpaceDog 2010-12-15 16:58:04