有什么软件可以翻译java,自己动手开发翻译软件(Java版)

其实这是实验课的一个课程设计,我把功能完善了一下,并强化了防错功能,于是就写成了下面这个程序。

想要做一个翻译软件的话,本文只是一个入门参考,这里面只给出一个简单的功能,即把一个纯英文的文件 翻译成相应的中文文件,并另外保存成一个新的文件。

笔者不想花费时间去写华丽的界面,只是简单地弹出一些输入框,有兴趣的朋友可以自己去美化或完善一下该软件。

?

package cn.ling.TestTranslate;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.util.HashMap;

import java.util.Map;

/**

*

* 模拟文本翻译软件

* 注意:操作的源文件必须只由英文单词构成,否则会得到意想不到的结果

* @author lingyibin

*

*/

public class TestTranslate {

/**

* @param args

*/

public static void main(String[] args) {

translate();

}

/**

* 翻译的主要实现函数

*/

public static void translate(){

//得到源文件路径

String srcFileName = "";

srcFileName = javax.swing.JOptionPane.showInputDialog("请您 输入源文件路径!");

File srcFile = new File(srcFileName);

//源文件路径不合法

if(!srcFile.exists() || !srcFile.isFile()){

javax.swing.JOptionPane.showMessageDialog(null, "对不起,你输入的源文件路径不合法!");

}

//翻译后的文件名,首先得到新文件名,即在原文件名的后面加上"_translated",保留后缀名

int index = srcFileName.lastIndexOf(".");

String newFileName = srcFileName.substring(0,index) + "_translated" + srcFileName.substring(index);

//得到词库文件路径

String cikuFileName = "";

cikuFileName = javax.swing.JOptionPane.showInputDialog("请您 输入词库文件路径!");

File cikuFile = new File(cikuFileName);

//词库文件路径不合法

if(!cikuFile.exists() || !cikuFile.isFile()){

javax.swing.JOptionPane.showMessageDialog(null, "对不起,你输入的词库文件路径不合法!");

}

try {

String tmpStr = null;

String[] strs;

//新建一个缓冲流来读取词库文件

BufferedReader br = new BufferedReader(

new InputStreamReader(

new FileInputStream(cikuFile)));

//用一个MAP来存放键值对

Map mapTrn = new HashMap();

while((tmpStr = br.readLine()) != null){//如果未到末尾 且 读到的不是空行

if(!tmpStr.equals("")){

strs = tmpStr.split("=");

mapTrn.put(strs[0].toLowerCase(), strs[1]);

}

}

//新建一个字节流来读取源文件

FileInputStream fis = new FileInputStream(srcFile);

//新建一个Writer来写入翻译后的字符

OutputStreamWriter osw = new OutputStreamWriter(

new FileOutputStream(newFileName));

int c;

tmpStr = "";

while((c = fis.read()) != -1){

if(!((c>='a' && c<='z') || (c>='A' && c<='Z'))){

if(mapTrn.get(tmpStr.toLowerCase()) != null){

osw.write(mapTrn.get(tmpStr.toLowerCase()).toCharArray());

tmpStr = "";

}

if(c != 32) osw.write(c);

}

else{

tmpStr += (char)c;

}

}

if(mapTrn.get(tmpStr.toLowerCase()) != null){

osw.write(mapTrn.get(tmpStr.toLowerCase()).toCharArray());

tmpStr = "";

}

osw.flush();

osw.close();

} catch (Exception e) {

//e.printStackTrace();

javax.swing.JOptionPane.showMessageDialog(null, "对不起,源文件读取时出错!");

}

}

}

?

?然后得自己建一个词库,格式如下:

Love=爱

I=我

China=中国

?

我把这个程序相关的文件都上传到附件中了,有兴趣的朋友可以去测试测试!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值