抽空写了一个将 Android 的 strings.xml
文件转为 iOS 的 Localizable.strings
格式的小脚本。而且把它封装撑了一个 Alfred Workflow。
使用时只要复制想要转换的 strings.xml
的内容,然后调出 Alfred 输入 a2x
,再在对应的 Localizable.strings
文件里粘贴就行了。
所执行的其实就是一个 awk 脚本。
1awk '2BEGIN{3 FS = "^ *<string *| *>|<\/string> *$|^ *<!-- *| *--> *$";4}5{6 if (/<string.*name\=\".*\".*>.*<\/string> *$/){7 match($2, /name *\= *\"[^ ]+\"/)8 name = substr($2, RSTART + 5, RLENGTH - 5)9 print name " \= \"" $3 "\";"10 }11 else if(/<!--.*-->/)12 print "// "$2;13 else if(/^ *$/)14 print ""15}'
所以如果不想用 Alfred 的话,也可以直接执行这个脚本。
比如在 OS X 上,pbcopy
和 pbpaste
是复制和粘贴的命令,把它们通过管道连接起来,就可以实现自动转换剪贴板内容的功能了。
1pbpaste | awk '2BEGIN{3 FS = "^ *<string *| *>|<\/string> *$|^ *<!-- *| *--> *$";4}5{6 if (/<string.*name\=\".*\".*>.*<\/string> *$/){7 match($2, /name *\= *\"[^ ]+\"/)8 name = substr($2, RSTART + 5, RLENGTH - 5)9 print name " \= \"" $3 "\";"10 }11 else if(/<!--.*-->/)12 print "// "$2;13 else if(/^ *$/)14 print ""15}' | pbcopy