我希望strings.xml中的字符串转换为ios Localizable.strings格式
格式:
"String"="String"
我在网上使用了一些将xml转换为localible.strings的在线工具,但我看到的格式是:
"Key"="Value"
但我需要这种格式:
"value"="value"
例如:
如果这是Strings.xml文件,
<resources>
<String name="addtocart">Please add to cart</string>
</resources>
localizable.strings格式应该在:
"Please add to cart"="Please add to cart" (I need this)
而不是
"addtocart"="Please add to cart" (Format resulted from conversion tools in web)
eclipse中是否有任何插件或内置功能。我是android和这个本地化过程的新手。
请帮助我实现这一目标......
提前致谢。
答案 0 :(得分:2)
一个非常简单的awk
bash脚本可以完成你的工作。
awk '
BEGIN{
FS = "^ *<string *| *>|<\/string> *$|^ *<!-- *| *--> *$";
}
{
if (/<string.*name\=\".*\".*>.*<\/string> *$/){
print "\""$3 "\" \= \"" $3 "\";"
}
else if(/<!--.*-->/)
print "// "$2;
else if(/^ *$/)
print ""
}'
将上述内容保存到android2ios.sh
。此脚本将从标准输入流中读取。
例如,您的Android字符串内容(如<string name="addtocart">Please add to cart</string>
)会复制到剪贴板,而您使用OS X作为操作系统。
pbpaste | sh android2ios.sh
这将打印
"Please add to cart" = "Please add to cart";
您可以用自己的方式进行重定向和管道处理。该脚本仅进行转换。
此脚本也可以很好地处理像<!--comment-->
和多行内容这样的评论。
顺便说一句,我更喜欢"addtocart"="Please add to cart"
方式,因为"value" = "value"
可能会导致重复的密钥。