翻訳ソフトの開発を手がける(Java版)


実はこれは実験の授業の1つの課程の設計で、私は機能を完備して、そして間違い防止の機能を強化して、そこで以下のプログラムを書きました.
翻訳ソフトを作るには、本文は入門の参考にすぎません.この中には簡単な機能しかありません.つまり、純粋な英語のファイルを対応する中国語のファイルに翻訳し、新しいファイルに保存します.
筆者は派手なインタフェースを書くのに時間を費やしたくなくて、簡単にいくつかの入力ボックスを弾いて、興味のある友达は自分でこのソフトウェアを美化したり改善したりすることができます.
 
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<String, String> mapTrn = new HashMap<String, String>();
			
			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=  

 
私はこのプログラムに関するファイルを添付ファイルにアップロードしました.興味のある友达はテストすることができます.