OFBiz的国际化XML代码快速生成

因为公司要求项目中除了注释外,前台的view中不要出现中文,全部都使用国际化的代码来配置,增加了很多工作量,而且英文不好的人来说简直是天大的灾难,于是我就写了个小工具,来生成OFBiz的国际化的标签,支持自己配置,也可以直接输入中文,在线翻译。

调用有道翻译的API,为什么不调用Google Translate,因为注册有点麻烦。

<html>
    <head>
        <title>自动转换OFBiz国际化</title>
        <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                $("#gen").click(function(){
                    gen();
                });

                $("#translate").click(function(){
                    var zh = $("#zh").val();
                    // 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
                    var url = "http://fanyi.youdao.com/openapi.do?keyfrom=tourmsg&key=1134363095&type=data&callback=show&doctype=jsonp&version=1.1&q=" + zh;
                    // 创建script标签,设置其属性
                    var script = document.createElement('script');
                    script.setAttribute('src', url);
                    // 把script标签加入head,此时调用开始
                    document.getElementsByTagName('head')[0].appendChild(script);

                });
            });

            function gen(){
                var zh = $("#zh").val();
                var en = $("#en").val();
                var key = $("#key").val();
                var content = '<property key="' + key + '">\r'+
                    '\t<value xml:lang="en">'+ en +'</value>\r'+
                    '\t<value xml:lang="zh">'+ zh +'</value>\r'+
                '</property>';
                $("#reslut").val(content);
            }

            function show(data){
                var translation = data['translation'];
                var apiResult = translation[0];
                var arr = apiResult.split(" ");
                var newstr = "";
                $(arr).each(function(k,v){
                    newstr+=v.firstUpperCase();
                });
                $("#key").val(newstr);
                $("#en").val(translation);
                gen();
            }

            String.prototype.firstUpperCase = function(){
                return this.replace(/\b(\w)(\w*)/g, function($0, $1, $2) {
                    return $1.toUpperCase() + $2.toLowerCase();
                });
            }
        </script>
    </head>
    <body>
        <div>
        KEY:<input type="text" id="key" size="40"/>
        </div>
        <div style="height: 100px;">
            <div style="position: relative;float: left;">
                <p>中文:</p>
                <textarea cols="50" rows="3" id="zh"></textarea>
            </div>
            <div style="position: relative;float: left;margin-left: 30px">
                <p>英文:</p>
                <textarea cols="50" rows="3" id="en"></textarea>
            </div>
        </div>
        <div><button id="gen" style="width: 120px;height: 30px">生产OFBiz国际化</button>
         OR
        <button id="translate" style="width: 120px;height: 30px">翻译并取第一个</button></div>

        <div>
            <p>结果:</p>
            <textarea rows="5" cols="70" id="reslut">
<property key="">
    <value xml:lang="en"></value>
    <value xml:lang="zh"></value>
</property>
            </textarea>
        </div>
        <hr/>

    </body>
</html>

站内相关文章:

Comment ()
如果您有不同的看法,或者疑问,欢迎指教