2013-03-15 39 views
0

在Xcode中,我們有一個Localizable.string文件,我們用它來在我們的應用程序中支持多種語言。我想要拼寫檢查 Localizable.string文件。 當我使用這個腳本的輸出被打印到控制檯Bash:讀取Localizable.strings的每一行

cat ~/Desktop/Localizable.strings 

但是,當我嘗試讀取一行行使用此腳本一堆空行打印到控制檯拼寫檢查。

cat ~/Desktop/Localizable.strings | while read line; do 
echo $line 
done 

這就是Localizable.strings文件的外觀。它有一個key和一個value。我只想檢查一下Value

"SOME_KEY" = "Spell check this"; 

有什麼想法嗎?

+1

爲什麼不簡單地使用'cat〜/ Desktop/Localizable.strings'? – 2013-03-15 06:41:30

+0

因爲Localizable.string文件有一個鏈接到值的鍵。該鍵可能是拼寫錯誤,但我想檢查該值。將更新我的問題 – 2013-03-15 06:43:21

+1

如果1值爲什麼不使用grep值文件| awk -F「=」'{print $ 2}'。你的使用tild也可以使用腳本中的文件 – Vahid 2013-03-15 07:17:27

回答

1

我找不到可用於此的實用程序。我發現的最近的是/usr/libexec/PlistBuddy(但它不能讓你枚舉鍵或值,只有已知的鍵可以打印)和plutil由埃裏卡Sadun,但這只是編譯爲iOS的,而不是開源。

因此,看來你需要編寫一個簡單的工具,這個:

#import <Foundation/Foundation.h> 

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     NSString *fname = [NSString stringWithUTF8String:argv[1]]; 
     NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:fname]; 
     for (NSString *value in dict.allValues) { 
      printf("%s\n", value.UTF8String); 
     } 
    } 

    return 0; 
} 

調用:./<BINARY> Localizable.strings。這將打印任何僅包含字符串的有效屬性列表文件的所有值,包括.strings文件。

+0

謝謝你這是一個很好的解決方案! – 2013-03-15 07:27:14