【问题标题】:How to generate Localizable.strings file from strings.xml in Android如何在 Android 中从 strings.xml 生成 Localizable.strings 文件
【发布时间】:2014-12-16 07:52:57
【问题描述】:

我想把strings.xml中的字符串转换成ios Localizable.strings格式

格式:

"String"="String"  

我在 web 中使用了一些将 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 和这个本地化过程的新手。

谁能帮助我实现这一目标...

提前致谢。

【问题讨论】:

    标签: android string localization localizable.strings


    【解决方案1】:

    一个非常简单的awk bash 脚本就可以完成您的工作。

    awk '
    BEGIN{
        FS = "^ *<string *| *>|<\/string> *$|^ *<!-- *| *--> *$";
    }
    {
        if (/<string.*name\=\".*\".*>.*<\/string> *$/){
            print "\""$3 "\" \= \"" $3 "\";"
        }
        else if(/<!--.*-->/)
            print "// "$2;
        else if(/^ *$/)
            print ""
    }'
    

    将以上内容保存到android2ios.sh。该脚本将从标准输入流中读取。

    例如,您的 Android 字符串内容(如 &lt;string name="addtocart"&gt;Please add to cart&lt;/string&gt;)被复制到剪贴板,并且您使用 OS X 作为操作系统。

     pbpaste | sh  android2ios.sh
    

    这将打印出来

    "Please add to cart" = "Please add to cart";
    

    您可以按照自己的方式进行重定向和管道操作。该脚本只进行转换。

    &lt;!--comment--&gt; 之类的评论和多行内容也可以通过此脚本很好地处理。

    顺便说一句,我更喜欢"addtocart"="Please add to cart" 方式,因为"value" = "value" 可能会导致重复键。

    【讨论】:

    • &lt;string name="text_register"&gt;REGISTER&lt;/string&gt; 变为 "REGISTER" = "REGISTER";,它应该是 "text_register" = "REGISTER" 所以我将 print "\""$3 "\" \= \"" $3 "\";" 更改为 print "\""$2 "\" \= \"" $3 "\";" 然后它变为 "name="text_register"" = "REGISTER" 然后我将 "name=" 替换为 "" 和"" = " =
    猜你喜欢
    • 2013-05-24
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多