本文主要是介绍----中英互译小程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个简单实用的翻译工具
由于我的英语水平不够好,在学习Java的过程中经常遇到一些不便之处。因此,我决定自己编写了一个翻译程序,以方便自己的学习和使用。希望大家能够与我一起共同学习,相互进步!
使用界面
桌面图标
双击运行
中译英
英译中
源码
Maven
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency></dependencies>
翻译工具类
public static String translate(String query, boolean transliteration) throws Exception {String appKey = "Key"; // 应用IDString appSecret = "Values"; // 应用密钥String salt = String.valueOf(System.currentTimeMillis());String sign = md5(appKey + query + salt + appSecret);String encodedQuery = URLEncoder.encode(query, "UTF-8");String apiUrl = "http://openapi.youdao.com/api?"+ "q=" + encodedQuery+ "&from=auto"+ "&to=zh-CHS"+ "&appKey=" + appKey+ "&salt=" + salt+ "&sign=" + sign;if (transliteration) {apiUrl += "&transliteration=true";}URL url = new URL(apiUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));StringBuilder response = new StringBuilder();String line;while ((line = reader.readLine()) != null) {response.append(line);}reader.close();return parseTranslation(response.toString());}public static String parseTranslation(String jsonResponse) {Gson gson = new Gson();TranslationResponse translationResponse = gson.fromJson(jsonResponse, TranslationResponse.class);String translation = translationResponse.getTranslationResult();String transliteration = translationResponse.getTransliterationResult();if (transliteration != null && !transliteration.isEmpty()) {translation += "\n音译: " + transliteration;}return translation;}public static String md5(String input) {try {java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");byte[] array = md.digest(input.getBytes("UTF-8"));StringBuilder sb = new StringBuilder();for (byte bt : array) {sb.append(Integer.toHexString((bt & 0xFF) | 0x100).substring(1, 3));}return sb.toString().toLowerCase();} catch (Exception e) {e.printStackTrace();return null;}}// 定义一个内部类来表示 API 返回的 JSON 结构private static class TranslationResponse {private String[] translation;private String transliteration;public String getTranslationResult() {return translation != null && translation.length > 0 ? translation[0] : null;}public String getTransliterationResult() {return transliteration;}}
GUi
package org.example;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Main {static String Auto="中英互译-MG";public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {createAndShowGUI();}});}private static void createAndShowGUI() {// 创建主窗口JFrame frame = new JFrame(Auto);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 创建面板,并设置布局为 GridBagLayoutJPanel panel = new JPanel(new GridBagLayout());// 设置面板的背景颜色panel.setBackground(Color.yellow);// 创建文本框、按钮和标签JTextField textField = new JTextField();textField.setPreferredSize(new Dimension(150, 60));textField.setFont(textField.getFont().deriveFont(30f)); // 设置字体大小JButton button = new JButton("翻译");// 设置按钮的背景颜色button.setBackground(Color.cyan);JTextArea resultTextArea = new JTextArea(10, 30);JScrollPane resultScrollPane = new JScrollPane(resultTextArea);resultTextArea.setFont(resultTextArea.getFont().deriveFont(30f));// 创建 GridBagConstraints 对象设置组件的位置和大小GridBagConstraints c = new GridBagConstraints();c.fill = GridBagConstraints.BOTH; // 设置组件在水平和垂直方向上都扩展c.gridx = 0;c.gridy = 0;c.weightx = 1;c.weighty = 0;c.insets = new Insets(5, 5, 5, 5); // 设置组件之间的垂直间隔和水平间隔panel.add(textField, c);c.gridy = 1;c.weighty = 0;panel.add(button, c);c.gridy = 2;c.weighty = 1;panel.add(resultScrollPane,c);// 为按钮添加 ActionListener,当用户点击按钮时进行翻译button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String query = textField.getText();boolean transliteration = false; // 默认设置为 falsetry {String result = YoudaoTranslator.translate(query, transliteration);resultTextArea.setText(result);} catch (Exception ex) {ex.printStackTrace();}}});// 为文本框添加 ActionListener,当用户按下键盘上的"确定"键时进行翻译textField.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String query = textField.getText();boolean transliteration = false; // 默认设置为 falsetry {String result = YoudaoTranslator.translate(query, transliteration);resultTextArea.setText(result);} catch (Exception ex) {ex.printStackTrace();}}});// 把面板添加到窗口中并设置窗口可见frame.getContentPane().add(panel);frame.pack();frame.setVisible(true);}
}
打包jar
1.点击项目结构
2.选择工件
3.点击加号,添加jar,选择具有依赖的模块
4.设置好输出目录
5.最后点击构建,选择构建工件的构建
6.最后到指定目录找到jar包,可以双击运行,但是必须有java环境
jar转exe
1.下载exe4j 软件,并且激活
2.Choose project type
3.Configure application
4.Configure executable
5.Java invocation
-Dfile.encoding=GBK
6.JRE
7.Splash screen
8.Messages
这篇关于----中英互译小程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!