说明
接口返回的信息枚举类,目前只有中文
ok(200,"成功", ""),
ERROR_NULL(4000, "未知错误!", ""),
1,通过下面的工具类,可以直接在打印台上输出
ok(200,"成功", "Success"),
ERROR_NULL(4000, "未知错误!", "Unknown error"),
2,把打印台的内容复制粘贴到枚举类上即可
如果有更好的方式可以实现翻译的功能,欢迎您也可以分享你的想法
翻译工具类,枚举类中文生成英文
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.util.*;
/**
* HttpClient工具类
*/
public class HttpClientUtil {
/**请求编码*/
private static final String DEFAULT_CHARSET = "UTF-8";
/**
* 执行HTTP POST请求
* @param url url
* @param param 参数
* @return
*/
public static String httpPostWithJSON(String url, Map<String, ?> param) {
CloseableHttpClient client = null;
try {
if(url == null || url.trim().length() == 0){
throw new Exception("URL is null");
}
HttpPost httpPost = new HttpPost(url);
client = HttpClients.createDefault();
if(param != null){
StringEntity entity = new StringEntity(JSONUtils.toJSONString(param), DEFAULT_CHARSET);//解决中文乱码问题
entity.setContentEncoding(DEFAULT_CHARSET);
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
HttpResponse resp = client.execute(httpPost);
if(resp.getStatusLine().getStatusCode() == 200) {
return EntityUtils.toString(resp.getEntity(), DEFAULT_CHARSET);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(client);
}
return null;
}
/**
* 执行HTTP GET请求
* @param url url
* @param param 参数
* @return
*/
public static String httpGetWithJSON(String url, Map<String, ?> param) {
CloseableHttpClient client = null;
try {
if(url == null || url.trim().length() == 0){
throw new Exception("URL is null");
}
client = HttpClients.createDefault();
if(param != null){
StringBuffer sb = new StringBuffer("?");
for (String key : param.keySet()){
sb.append(key).append("=").append(param.get(key)).append("&");
}
url = url.concat(sb.toString());
url = url.substring(0, url.length()-1);
}
HttpGet httpGet = new HttpGet(url);
HttpResponse resp = client.execute(httpGet);
if(resp.getStatusLine().getStatusCode() == 200) {
return EntityUtils.toString(resp.getEntity(), DEFAULT_CHARSET);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(client);
}
return null;
}
/**
* 关闭HTTP请求
* @param client
*/
private static void close(CloseableHttpClient client){
if(client == null){
return;
}
try {
client.close();
} catch (Exception e) {
}
}
// 请求翻译 api 实现翻译
public static String getFanyi(String zhongwen){
String url = "http://fanyi.youdao.com/translate?&doctype=json&type=ZH_CN2EN&i="+zhongwen;
String result = httpGetWithJSON(url, null);
JsonRootBean jsonRootBean = JSON.parseObject(result, new TypeReference<JsonRootBean>(){});
String yingwen = jsonRootBean.getTranslateResult().get(0).get(0).getTgt();
return yingwen;
}
public static void main(String[] args) throws Exception {
// ERROR_NULL(4000, "未知错误!", ""),
for (XxxEnums e: XxxEnums.values()){
String code = String.valueOf(e.getCode());
if ("".equals(e.getEnMsg()) || e.getEnMsg()==null){
# 一级标题 System.out.println(e+"("+code+",\""+e.getMsg()+"\",\""+getFanyi(e.getMsg())+"\"),");
}else {
System.out.println(e+"("+code+",\""+e.getMsg()+"\",\""+e.getEnMsg()+"\"),");
}
}
}
}
api 接口返回的实体类
import java.util.List;
public class JsonRootBean {
private String type;
private int errorCode;
private int elapsedTime;
private List<List<TranslateResult>> translateResult;
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}
public int getErrorCode() {
return errorCode;
}
public void setElapsedTime(int elapsedTime) {
this.elapsedTime = elapsedTime;
}
public int getElapsedTime() {
return elapsedTime;
}
public void setTranslateResult(List<List<TranslateResult>> translateResult) {
this.translateResult = translateResult;
}
public List<List<TranslateResult>> getTranslateResult() {
return translateResult;
}
}
class TranslateResult {
private String src;
private String tgt;
public void setSrc(String src) {
this.src = src;
}
public String getSrc() {
return src;
}
public void setTgt(String tgt) {
this.tgt = tgt;
}
public String getTgt() {
return tgt;
}
}
翻译api的type类型
ZH_CN2EN 中文 » 英语
ZH_CN2JA 中文 » 日语
ZH_CN2KR 中文 » 韩语
ZH_CN2FR 中文 » 法语
ZH_CN2RU 中文 » 俄语
ZH_CN2SP 中文 » 西语
EN2ZH_CN 英语 » 中文
JA2ZH_CN 日语 » 中文
KR2ZH_CN 韩语 » 中文
FR2ZH_CN 法语 » 中文
RU2ZH_CN 俄语 » 中文
SP2ZH_CN 西语 » 中文