今天在网上乱逛,一不小心发现这个Google翻译,用Java调用的实例,把它拷来看了一下,挺不错的!
原文是英语和法语的互相翻译,我改成中文和英语的,但是好像中文翻译英文时有点问题,翻译不了!其他的都可以用的。
下面是一个截图:



源代码:

package test;

/*
* TranslatorFrame.java
*
* Created on 03 February 2008, 19:47
*/

import com.google.api.translate.Language;
import com.google.api.translate.Translate;
import java.awt.event.KeyEvent;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author rich
*/
public class TranslatorFrame extends javax.swing.JFrame {

/** Creates new form TranslatorFrame */
public TranslatorFrame() {
initComponents();
setLocationRelativeTo(null);
}

private void translate() {
try {
String languageFrom = null;
String languageTo = null;
if (chineseToEnglishMenuItem.isSelected()) {
languageFrom = Language.CHINESE_SIMPLIFIED;
languageTo = Language.ENGLISH;
} else if (englishToChineseMenuItem.isSelected()) {
languageFrom = Language.ENGLISH;
languageTo = Language.CHINESE_SIMPLIFIED;
}
toTextArea.setText(Translate.translate(fromTextArea.getText().trim(), languageFrom, languageTo));
} catch (Exception ex) {
Logger.getLogger(TranslatorFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

buttonGroup1 = new javax.swing.ButtonGroup();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
fromTextArea = new javax.swing.JTextArea();
jPanel3 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
toTextArea = new javax.swing.JTextArea();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
englishToChineseMenuItem = new javax.swing.JRadioButtonMenuItem();
chineseToEnglishMenuItem = new javax.swing.JRadioButtonMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Google翻译");
getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.PAGE_AXIS));

fromTextArea.setColumns(20);
fromTextArea.setLineWrap(true);
fromTextArea.setRows(5);
fromTextArea.setWrapStyleWord(true);
fromTextArea.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
fromTextAreaKeyPressed(evt);
}
});
jScrollPane1.setViewportView(fromTextArea);

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE)
.addContainerGap())
);

getContentPane().add(jPanel2);

toTextArea.setColumns(20);
toTextArea.setEditable(false);
toTextArea.setLineWrap(true);
toTextArea.setRows(5);
toTextArea.setWrapStyleWord(true);
jScrollPane2.setViewportView(toTextArea);

javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE)
.addContainerGap())
);

getContentPane().add(jPanel3);

jMenu1.setText("文件");

jMenuItem1.setText("退出");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);

jMenuBar1.add(jMenu1);

jMenu3.setText("语言");

buttonGroup1.add(englishToChineseMenuItem);
englishToChineseMenuItem.setSelected(true);
englishToChineseMenuItem.setText("英语 > 简体中文");
jMenu3.add(englishToChineseMenuItem);

buttonGroup1.add(chineseToEnglishMenuItem);
chineseToEnglishMenuItem.setText("简体中文 > 英语");
jMenu3.add(chineseToEnglishMenuItem);

jMenuBar1.add(jMenu3);

setJMenuBar(jMenuBar1);

pack();
}// </editor-fold>

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void fromTextAreaKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
translate();
evt.consume();
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TranslatorFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JRadioButtonMenuItem englishToChineseMenuItem;
private javax.swing.JRadioButtonMenuItem chineseToEnglishMenuItem;
private javax.swing.JTextArea fromTextArea;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea toTextArea;
// End of variables declaration

}



上面的代码用到了Google提供的一个jar,下载地址:
​​​google-api-translate-java-0.4.jar​