我正在研究一个大型文本文件的加工翻译,我希望自动化,文件看起来像这样,
<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()
现在我的文件只需要翻译文本(接近300k行文本),
<replacement>Золотой великан</replacement>
<replacement>Серкет</replacement>
<replacement>Предводитель Хакан</replacement>
<replacement>Посвященный У Кахи</replacement>
<replacement>Лидер банды Чугуна Хви Бичжок</replacement>
<replacement>Предводитель Сок Самчжа</replacement>
<replacement>Глава охранников гробницы</replacement>
<replacement>Древняя гробница</replacement>
<replacement>Василиск с крыльями вихря</replacement>
问题是,在使用谷歌翻译运行后,格式变得格格不入,翻译的产品有时在标题之前只有一个单词并且这是不可接受的,
<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>
我可以解决其他格式问题,但我真的无法解决这个问题,欢迎对原始脚本提出任何建议或修改,谢谢。
编辑:我认为&#34; notepad ++&#34;中的替换命令也许是帮助,我只是不知道究竟是怎么回事。 将notepad ++添加到标签中。
编辑2 :我找到了一个非常简单的解决方案但需要更多修改,我只是打开文件,搜索所有<replacement>
字符串,并删除它们!现在所有文本都集中正确,我只需要将字符串<replacement>
添加到文档中每行的开头。
现在,我该怎么做?
答案 0 :(得分:0)
既然你已经深入研究python,那就有好消息:你可以使用python来翻译你的XML文件。看一下python的Goslate模块,它是Google翻译引擎的界面。
首先,使用pip install goslate
或easy_install goslate
安装goslate,因为它不包含在大多数python发行版中。
接下来,您可以要求翻译引擎将您的字符串翻译成所需的语言,并在输出文件中编写已翻译的字符串。只需使用以下代码:
import goslate
gs = goslate.Goslate()
# set your text_to_be_translated here in reading loop
text_translated = gs.translate(text_to_be_translated, target_language,source_language)
您已翻译text_to_be_translated
,无需其他操作。