我有一个C ++项目,其中源代码的注释是用中文编写的,现在我想将它们转换成英文。 我试图解决使用谷歌翻译,但得到问题:整个cpp文件或标题没有被转换,我也发现结构,类等的名称被更改。有时代码也会被修改。
注意:每个.cpp或.h文件少于1000行代码。但是有多个C ++项目,每个项目有大约10个文件。因此,我有大约50个文件,我需要将中文翻译成英文。 我将来可能会获得更多文件。
答案 0 :(得分:3)
嗯,你有什么期望?谷歌翻译不知道CPP文件是什么以及如何对待它。您必须编写自己的程序,从中提取评论(不是那么难),只运行谷歌翻译,然后将它们放回去。
请注意,如果有注释掉的代码,或注释引用变量名称,那些也将被翻译。检测和处理这些案件要困难得多。
答案 1 :(得分:2)
提取评论是一个lexical问题,大部分都是非常简单的问题。
在几个小时内,您可以编写(例如使用flex)一些简单的命令行程序来提取它们。一个好的编辑器(例如GNU emacs)甚至可以配置为在选定的代码块上运行该过滤器。
(处理一些极端情况,例如raw string literals,可能会稍微困难一点,但这些情况不会经常发生,您可以手动处理它们)
顺便说一句,如果您被分配处理该代码,您将需要了解它,并且比手动复制和粘贴或编辑每个注释需要更多的时间。最后,我不确定代码注释的自动翻译质量。你可能会失望的。此外,代码名称(函数,类,变量等)更重要。
或许用英语添加您的评论可能更明智。
不要忘记使用某些版本控制系统。你真的需要一个(例如git
)
(我不相信提取自动翻译的评论会对你的工作有所帮助)
答案 2 :(得分:2)
首先使用python脚本将注释和代码部分分别放在不同的文件中,如下所示
import sys
file=sys.argv[1]
f=open(file,"r")
lines=f.readlines()
f.close()
comment=open("comment.txt","w+")
code=open("code.txt","w+")
for l in lines:
if "//" in l:
comment.write(l)
code.write("\n")
else:
code.write(l)
comment.write("\n")
comment.close()
code.close()
现在使用谷歌翻译器翻译comment.txt,然后使用
paste code.txt comment_en > source
其中comment_en被翻译成英文评论。