我正在对一个大的文本文件进行机械翻译,我想把它自动化,这个文件看起来像这样
<TEXT>
<Unknown1>-65535</Unknown1>
<autoId>1</autoId>
<autoId2>0</autoId2>
<alias>Name2.Boast_Duel_Season01_sudden_death_1vs1</alias>
<replacement>Уникальная массовая дуэль: Битва один на один до полного уничтожения в один раунд</replacement>
</TEXT>
<TEXT>
<Unknown1>-65535</Unknown1>
<autoId>2</autoId>
<autoId2>0</autoId2>
<alias>Name2.Boast_Duel_Season01_sudden_death_3vs3</alias>
<replacement>Уникальная массовая дуэль: Битва трое на трое до полного уничтожения в один раунд</replacement>
</TEXT>
<TEXT>
<Unknown1>-65535</Unknown1>
<autoId>3</autoId>
<autoId2>0</autoId2>
<alias>Name2.Boast_MuSinTower_step01</alias>
<replacement>Первое воплощение Бога Войны: Боль</replacement>
这里的人帮我建立了一个脚本,在我做了一点修改之后,我成功地提取了我需要翻译的文本,使用这个脚本
import re
def loadfile(filename):
'''
Returns a string containing all data from file
'''
infile = open(filename, 'r')
infile_string = infile.read()
infile.close()
return infile_string
def main():
#load the files into strings
original = loadfile("original.xml")
#grab all of the "TEXT" blocks from the original file
original_regex = re.compile("(<original>.*?</original>)", re.DOTALL)
original_list = original_regex.findall(original)
#a string to write out to the new file
outfile_string = ""
for i in range(len(original_list)): #loop through all of the original text blocks
#build a new string with the replacement text only
build_string = ""
build_string += original_list[i]
build_string += "\n" + " "*4
outfile_string+=build_string
#write the outfile string out to a file
outfile = open("replacement.xml", 'w')
outfile.write(outfile_string)
outfile.close()
if __name__ == "__main__":
main()
现在我有了一个只需要翻译文本的文件(大约30万行文本)
<replacement>Золотой великан</replacement>
<replacement>Серкет</replacement>
<replacement>Предводитель Хакан</replacement>
<replacement>Посвященный У Кахи</replacement>
<replacement>Лидер банды Чугуна Хви Бичжок</replacement>
<replacement>Предводитель Сок Самчжа</replacement>
<replacement>Глава охранников гробницы</replacement>
<replacement>Древняя гробница</replacement>
<replacement>Василиск с крыльями вихря</replacement>
问题是,在使用google translate运行之后,格式会变得非常混乱,有时翻译的产品在标题前只有一个单词,这是不可接受的
<replacement> Golden Giant </ replacement>
<replacement> Serket </ replacement>
Hakan <replacement> Leader </ replacement>
Dedicated <replacement> Kakha </ replacement>
The gang's leader <replacement> Cast Iron Hwee Bichzhok </ replacement>
<replacement> Leader Samji Juice </ replacement>
<replacement> Chapter guards tomb </ replacement>
<replacement> Ancient tomb </ replacement>
<replacement> Basilisk with wings swirl </ replacement>
我可以解决其他格式的问题,但我真的不能解决这个问题,任何建议或修改原脚本是欢迎的,谢谢。你知道吗
编辑:我认为“notepad++”中的replace命令可能有帮助,我只是不知道具体如何。 将notepad++添加到标记中。你知道吗
编辑2:我找到了一个非常简单但需要更多修改的解决方案,我打开了文件,搜索了所有的<replacement>
字符串,然后删除了它们!现在所有的文本都被正确地集中,我只需要在文档中每一行的开头添加字符串<replacement>
。。
现在,我该怎么做?你知道吗
既然您已经在深入研究python,那么有一个好消息:您已经可以用python翻译XML文件了。看看python的Goslate模块,它是Google翻译引擎的接口。你知道吗
首先,使用
pip install goslate
或easy_install goslate
安装goslate,因为它不包括在大多数python发行版中。你知道吗接下来,您可以要求翻译引擎将字符串翻译成所需的语言,并将翻译后的字符串写入输出文件。只需使用如下代码:
您已经翻译了
text_to_be_translated
,不需要额外的操作。你知道吗相关问题 更多 >
编程相关推荐