//package api;
//
//import java.io.DataOutputStream;
//import java.io.BufferedReader;
//import java.io.InputStreamReader;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import org.json.JSONObject;
//import org.json.JSONArray;
//
//public class BaiduTranslate {
// private static final String ACCESS_TOKEN = "24.7df8cdef2f46bc9f34ed7d19c39d60c7.2592000.1733965919.282335-116201324";
// private static final String URL_TEMPLATE = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + ACCESS_TOKEN;
//
// public static String translate(String text, String from, String to) {
// try {
// JSONObject payload = new JSONObject();
// payload.put("q", text);
// payload.put("from", from);
// payload.put("to", to);
//
// HttpURLConnection conn = (HttpURLConnection) new URL(URL_TEMPLATE).openConnection();
// conn.setRequestMethod("POST");
// conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
// conn.setDoOutput(true);
//
// try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
// wr.writeBytes(payload.toString());
// }
//
// // 读取响应,指定编码为 UTF-8
// BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
// String inputLine;
// StringBuffer response = new StringBuffer();
//
// while ((inputLine = in.readLine()) != null) {
// response.append(inputLine);
// }
// in.close();
//
// // 打印 API 响应以便调试
// System.out.println("Response: " + response.toString());
//
// JSONObject jsonResponse = new JSONObject(response.toString());
//
// // 检查是否有错误码
// if (jsonResponse.has("error_code")) {
// return "翻译失败: " + jsonResponse.getString("error_msg");
// }
//
// // 解析翻译结果
// JSONObject resultObject = jsonResponse.getJSONObject("result");
// JSONArray transResultArray = resultObject.getJSONArray("trans_result");
// JSONObject firstResult = transResultArray.getJSONObject(0); // 获取第一个翻译结果
//
// return firstResult.getString("dst"); // 返回翻译后的文本
//
// } catch (Exception e) {
// e.printStackTrace();
// return "翻译失败,请检查网络或API配置";
// }
// }
//
//}
package api;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
import org.json.JSONArray;
public class BaiduTranslate {
private static final String ACCESS_TOKEN = "24.7df8cdef2f46bc9f34ed7d19c39d60c7.2592000.1733965919.282335-116201324";
private static final String URL_TEMPLATE = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + ACCESS_TOKEN;
public static String translate(String text, String from, String to) {
try {
JSONObject payload = new JSONObject();
payload.put("q", text);
payload.put("from", from);
payload.put("to", to);
HttpURLConnection conn = (HttpURLConnection) new URL(URL_TEMPLATE).openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setDoOutput(true);
// 使用OutputStream写入JSON数据
try (OutputStream os = conn.getOutputStream()) {
byte[] input = payload.toString().getBytes("utf-8");
os.write(input, 0, input.length);
}
// 读取响应,指定编码为 UTF-8
try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"))) {
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
// 打印 API 响应以便调试
System.out.println("Response: " + response.toString());
JSONObject jsonResponse = new JSONObject(response.toString());
// 检查是否有错误码
if (jsonResponse.has("error_code")) {
return "翻译失败: " + jsonResponse.getString("error_msg");
}
// 解析翻译结果
JSONObject resultObject = jsonResponse.getJSONObject("result");
JSONArray transResultArray = resultObject.getJSONArray("trans_result");
JSONObject firstResult = transResultArray.getJSONObject(0); // 获取第一个翻译结果
return firstResult.getString("dst"); // 返回翻译后的文本
}
} catch (Exception e) {
e.printStackTrace();
return "翻译失败,请检查网络或API配置";
}
}
}
package GUI;
import api.BaiduTranslate;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BaiduTranslateGUI {
private JFrame frame;
private JTextField inputText;
private JTextArea outputText;
private JButton translateButton;
private JComboBox<String> languageSelector;
public BaiduTranslateGUI() {
frame = new JFrame("百度智能云翻译(*^_^*)");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口背景颜色
//frame.getContentPane().setBackground(new Color(175, 238, 238)); // 一种柔和的深绿色
frame.getContentPane().setBackground(new Color(176, 222, 176)); // 鲜艳的绿色
inputText = new JTextField("请输入要翻译的文本", 20);
outputText = new JTextArea(10, 30);
translateButton = new JButton("翻译");
String[] languages = {"中译英", "英译中"};
languageSelector = new JComboBox<>(languages);
JPanel panel = new JPanel();
panel.add(inputText);
panel.add(languageSelector);
panel.add(translateButton);
panel.add(new JScrollPane(outputText));
frame.add(panel);
frame.setVisible(true);
translateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = inputText.getText();
String from = languageSelector.getSelectedItem().equals("中译英") ? "zh" : "en";
String to = from.equals("zh") ? "en" : "zh";
// 调用翻译方法并展示结果
String result = BaiduTranslate.translate(text, from, to);
outputText.setText(result);
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new BaiduTranslateGUI());
}
}

浙公网安备 33010602011771号