因为公司要求项目中除了注释外,前台的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>