如何从plist文件中提取字符串进行翻译(本地化)?

时间:2011-06-07 21:10:50

标签: iphone localization plist translation extract

我需要为我的iPhone应用程序的翻译准备字符串列表。 我使用genstring 从 * .m文件中提取字符串,使用ibtool 命令从XIB文件中提取

但我还有要在plist文件中翻译的大量文本(包含在 string 标记中的字符串字段类型)。 是否有一个很好的bash脚本/命令来将这些字符串提取到一个平坦的txt文件中? 我可以查看并过滤它,这样我的翻译人员就可以处理好的列表,但不能使用外观的XML文件。

4 个答案:

答案 0 :(得分: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(意思是它会踢它们)

答案 1 :(得分:1)

我们最近制作了一个小型在线申请,请查看:http://www.icapps.be/plist-translator/

答案 2 :(得分:0)

我无法想到任何命令。但是,plists是美化的xml文件,并且有各种可用的解析器。

创建一个简单的python脚本来获取文件中的所有字符串应该不会太难。

答案 3 :(得分:0)

这有帮助吗? http://www.icanlocalize.com/site/tutorials/how-to-translate-plist-files/

我们更倾向于向使用翻译系统的客户付费,但您可以免费使用我们的GUI进行翻译。