2011-06-07 29 views
3

我需要準備我的iPhone應用程序的翻譯字符串列表。 我從使用ibtool命令的XIB文件中使用起始字符串和* .m文件中提取了字符串。如何從plist文件中提取翻譯字符串(本地化)?

但我也大量文本中的plist文件翻譯(括在標籤字符串字段類型)。 是否有一個很好的bash腳本/命令將這些字符串提取到一個平坦的txt文件中? 我可以審查並過濾它,以便我的翻譯人員可以使用漂亮的列表,但不能與外部查看的XML文件一起使用。

回答

0

我想不出任何關於我頭頂的命令。然而,plists是美化XML文件,並有各種解析器可用於他們。

創建一個簡單的python腳本來獲取文件中的所有字符串不應該太困難。

2

我做了一個自定義shell腳本,試圖找出所需的值。然後,您可以以修改的方式使用localize.py腳本(請參見下文)自動創建翻譯文件。 (換行符在那裏不知何故非常重要),如果要翻譯有更多的實體,shell腳本可以相應

#!/bin/bash 

rm -f $2 

sed -n 'N;/<key>Title<\/key>/{N;/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/*  \1 *\/\ 
"\1" = "\1";\ 
/p;};}' $1 >> $2 

sed -n 'N;/<key>FooterText<\/key>/{N;/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/* \1 *\/\ 
\"\1" = "\1";\ 
/p;} 
;}' $1 >> $2 

sed -n 'N;/<key>Titles<\/key>/{N;/<array>/{:a 
N;/<\/array>/!{ 
/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/* \1 *\/\ 
\"\1" = "\1";\ 
/p;} 
ba 
;};};}' $1 >> $2 

修改需要一些修改localize.py腳本。因此,I created a small package包含源代碼和plist文件的本地化器。新腳本甚至支持Duplikates(這意味着它會踢他們)

相關問題