java代码注释翻译


import java.io.File;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
import 谷歌实例.GoogleLanguage;
import 谷歌实例.GoogleTranslater;
import 谷歌实例.Translater;


public class 翻译注释
{
	static String 目标文件夹 = "E:/item/git/bateman/src/main/java/org/wkh/bateman/pso1";
	public static void main(String[] args)
	{
		翻译注释.读取文件夹();
	}
	public static void 读取文件夹()
	{
		try
		{
			Files.walkFileTree(Paths.get(目标文件夹), new SimpleFileVisitor<Path>()
			{
				@Override
				public FileVisitResult visitFile(Path 本文件, BasicFileAttributes attrs) throws IOException
				{
					if (本文件.toString().endsWith(".java"))
					{
						new Thread(new 文件处理(本文件.toFile())).start();
					}
					return FileVisitResult.CONTINUE;
				}
			});
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

class 文件处理 implements Runnable
{
	File file;
	static Translater translater = new GoogleTranslater();
	public 文件处理(File file_1)
	{
		file = file_1;
	}
	@Override
	public void run()
	{
		try
		{
			文件装入list(file);
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	public static void 文件装入list(File file) throws IOException
	{
		Path fileUrl = Paths.get(file.getAbsolutePath());
		List<String> lines = Files.readAllLines(fileUrl);
		StringBuffer 块内容 = new StringBuffer();
		boolean 有块内容 = false;
		int 块内容行数 = 0;
		for (int num = 0; num < lines.size(); num++)
		{
			String 行内容 = lines.get(num);
			String 行内容去空白=行内容.trim();
			if (行内容去空白.indexOf("/*") >= 0  && (行内容去空白.indexOf("*/") >= 0))// &&  行内容去空白.indexOf("/*") <(行内容去空白.indexOf("*/"))
			{//一行块注释
				String[] 行内容数组=行内容.split("/\\*");
				有块内容 = false;// 这里直接调用翻译
				块内容行数 = 0;
				String 翻译后行内容 = translater.translate(行内容数组[1], GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 行内容数组[0]+"   /*"+翻译后行内容.replaceAll("/ \\*", "/\\*").replaceAll("\\* /", "\\*/").replaceAll(" \\*", "\n\\*"));
			}else if(行内容去空白.indexOf("//")==0)//整行注释
			{
				String 翻译后行内容 = translater.translate(行内容, GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 翻译后行内容.replaceAll("/ ", "/"));				
			}else if(行内容去空白.indexOf("//")>0)//行尾注释
			{
				String[] 行内容数组=行内容.split("//");
				String 翻译后行内容 = translater.translate(行内容数组[1], GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 行内容数组[0]+"   //"+翻译后行内容.replaceAll("/ ", "/"));
			}else if (行内容去空白.indexOf("/*") == 0)
			{
					有块内容 = true;
					块内容行数++;
					块内容.append(行内容 + "\n");
			}else
			{
				if (有块内容)
				{
					块内容行数++;
					块内容.append(行内容 + "\n");
					if (行内容.indexOf("*/") >= 0)
					{
						String 翻译后行内容 = translater.translate(块内容.toString(), GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
						for (int i = 0; i < 块内容行数; i++)
						{
							lines.set(num - 块内容行数 + i,"");// +1
						}
						lines.set(num,翻译后行内容.replaceAll("/ \\*", "/\\*").replaceAll("\\* /", "\\*/").replaceAll("\\* /", "\\*/").replaceAll(" \\*", "\n\\*"));
						块内容 = new StringBuffer();
						有块内容 = false;
						块内容行数 = 0;
					}
				}
			}
		}
		Files.write(fileUrl, lines);
	}
}

翻译后注释部分的格式会乱,不过可以手工进行整理。

翻译后的文件直接覆盖了原文件,以防万一请先对原文件夹进行备份。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值