2010-12-14 53 views
2

我有一個應用程序,遭受了大手術和很多東西被修改。iphone - 清理Localizable.strings

這個應用程序是和已經本地化爲幾種語言。

我確定localizable.strings文件中的一些字符串不再被使用。至少20%。有沒有辦法檢查哪些字符串仍然被應用程序使用,這樣我就可以擺脫所有語言文件中不必要的字符串?

謝謝。

回答

2

,你可以:

轉儲新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.stringsLocalizable_new.strings

根據多少20%,你可能會「快速」刪除過時的行。

我承認這個程序可能很繁瑣,並且有很大的改進空間,例如它不能在註釋中正確處理等號,但也許會有幫助。

編輯:

我從來沒有真正滿意上面。尋找解決方案更容易維護我最終停止使用NSLocalizedString並折射代碼使用NSLocalizedStringWithDefaultValue(<#key#>, <#tbl#>, <#bundle#>, <#val#>, <#comment#>)

現在我對源代碼內部的本地化進行所有更改,然後運行genstrings。 genstrings將覆蓋Localizable.strings,但'<#val#>'字段將包含Localizable.strings中的字符串。我不需要編輯原始語言的Localizable.strings。更多的細節在my Blog

+0

謝謝。我認爲這會有很大的幫助! – SpaceDog 2010-12-15 16:58:04