`
buptwinux
  • 浏览: 13445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于GoogleAPI的翻译小程序的实现

阅读更多
最近一直在学习java,本科的时候只是做书上的练习,从来没有做过一个使用的东西。昨天考完java的期末试,最后一道大题虽然磕磕绊绊的做出来了。但总觉得太傻瓜。就联想到google的翻译,看有没有开放的API,没想到广大同胞早以聚集在google的大旗下开发各种有意思的小程序了。今天忍不住花了3个多小时试着做了下,呵呵,虽然有些简陋但终归做出来了。现在把源码发上来,请大家测试和批评。注:可以任意传播啊,呵呵。


/*本程序以eclipse3.4为开发环境
 * 一个利用google翻译API实现的英汉双译小程序
 * Author:winux  email: wwwshuimu@163.com
 * date:11,17,2010
 * */
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import com.google.api.GoogleAPI;
import com.google.api.translate.Language;
import com.google.api.translate.Translate;
import com.google.api.translate.Language.*;
import com.google.api.translate.Translate.*;
import com.google.api.detect.*;
public class Translateor //extends Frame
{
       //-----------------检测语言-------此程序暂不需要故未实现------------------
	public Boolean languageDetect(String string) throws Exception
	{
		if(Detect.execute(string) != null)
		{
			
		}
		return true;
	}
	public static void main(String []args)
	{
		GoogleAPI.setHttpReferrer("http://code.google.com/p/i18n-translator/");

		final Frame fr= new Frame("翻译小程序");
		GridLayout g1 = new GridLayout(2,1);//设置文本框所在容器面板的布局方式
		g1.setVgap(10);//设置两个文本框的间距
		Panel panel1 = new Panel(g1);//定义文本框所在面板
		final TextArea text1 = new TextArea(null,10,60,TextArea.SCROLLBARS_VERTICAL_ONLY);
		final TextArea text2 = new TextArea(null,10,60,TextArea.SCROLLBARS_VERTICAL_ONLY);
		final JButton button = new JButton("翻译");
		//-------------------------定义单选框框选择语言-------------------------
		CheckboxGroup cbg = new CheckboxGroup();
		Panel p1 = new Panel();
		p1.setLayout(new GridLayout(3,1));
		//setLayout(new GridLayout(2,1))
		final Checkbox cb1 = new Checkbox("英译汉",cbg,true);
		final Checkbox cb2 = new Checkbox("汉译英",cbg,false);
		p1.add(cb1);
		p1.add(cb2);
		p1.add(button);
		//--------------------------------------------------------------------
		FlowLayout fly = new FlowLayout(FlowLayout.LEFT,5,5);
		fly.setHgap(30);
		fr.setLayout(fly);
		panel1.add(text1);
		panel1.add(text2);
		panel1.setSize(550, 400);
		//panel1.setBounds(10,10, 10,10);
		//-------------------------------------------------------------------
		fr.add(panel1);
		fr.add(p1);
		//--------------------------响应窗口关闭动作------------------------------
		fr.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		//------------------------------------------------------------------------
		//------------------------检测语言-----------------------------------------
		//------------------------------------------------------------------------
		
		//-------------------响应翻译按钮动作--------------------------------------
		ActionListener a1 = new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String str1,str2;
				str1=text1.getText();
				//-------------------------------------------------------------------
				JOptionPane jop = new JOptionPane();
				jop.setBounds(0, 0, 200, 251);
				jop.setLocation(100, 100);
				//--------------------------------------------------------------------
				if(e.getSource()==button)
				{
					
					try {
							if(cb1.getState()==true)
							{
								str2=Translate.execute(str1, Language.ENGLISH,Language.CHINESE_SIMPLIFIED );
								text2.setText(str2);
							}
							if(cb2.getState()==true)
							{
								str2=Translate.execute(str1,Language.CHINESE_SIMPLIFIED,Language.ENGLISH );
								text2.setText(str2);
							}
							str2=text2.getText();
							FileOutputStream fos = new FileOutputStream("result.doc");
							BufferedOutputStream bos = new BufferedOutputStream(fos);
							OutputStreamWriter osw = new OutputStreamWriter(bos);
							osw.write(str2);
							osw.flush();
							osw.close();
							jop.showMessageDialog(fr, "恭喜您,翻译结果已写如word文档","完成",
										JOptionPane.INFORMATION_MESSAGE);
					    }
					catch(Exception e1)
					{
						//e1.printStackTrace();				
						jop.showMessageDialog(fr, "请输入要翻译的内容","警告",JOptionPane.ERROR_MESSAGE);
						//JDialog dialog = jop.createDialog(myF, "关于我们");
						jop.setVisible(true);
					}
				}
			}
		};
		//--------------------------------------------------------------------------------
		button.addActionListener(a1);
		fr.setSize(600,400);
		fr.setVisible(true);
	}
}

用到的包我放在附件里,供大家下载
分享到:
评论
1 楼 Mark_dev 2012-07-09  
输入了内容一直提示说“请输入要翻译的内容”是什么意思?

相关推荐

    基于GoogleAPI的翻译小程序的实现(二)

    NULL 博文链接:https://buptwinux.iteye.com/blog/816111

    大米外贸商城系统开源版mishop集成微信支付宝paypal以及国外主流支付方式自带文章

    大米外贸商城系统 简称mishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换, ...(2)增加小程序支持(未完) (3)集成鱼码个人支付插件(未完) (4)产品增加直播带货扩展(未完)

    java开源包3

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包4

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    精通ANDROID 3(中文版)1/2

    23.3.2 简单建议提供程序实现文件  23.3.3 实现SimpleSuggestion-Provider类  23.3.4 简单建议提供程序搜索活动  23.3.5 搜索调用方活动  23.3.6 简单建议提供程序用户体验  23.4 实现自定义建议提供程序...

    精通Android 3 (中文版)2/2

    23.3.2 简单建议提供程序实现文件  23.3.3 实现SimpleSuggestion-Provider类  23.3.4 简单建议提供程序搜索活动  23.3.5 搜索调用方活动  23.3.6 简单建议提供程序用户体验  23.4 实现自定义建议提供程序...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    安卓软件开发--毕业设计开题报告安卓软件文献翻译.docx

    这样就完成了自己位置的确定,如果需要查看自己所在的位置的话还需要调用一个地图的API比如GoogleMap。调用之后就可以在地图显示自己的位置了。 在本次的项目中主要用到的就是当前的经度和纬度,在查看我们周边商家...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    java开源包1

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包11

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包2

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包6

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包5

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包10

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包8

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包7

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

    java开源包9

    google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来...

Global site tag (gtag.js) - Google Analytics