文档翻译我们可以用在线翻译工具,Excel工作表的翻译使用在线翻译工具就不是特别方便,那么如何快速进行翻译呢,我们今天介绍在不同的场景下如何利用翻译函数和Python程序来实现单元格的快速翻译。
一、在wps中进行翻译
WPS是我们常用的办公软件,由金山公司出品。自从有了wpsai后,金山公司推出了多项实用的功能,这其中就包括翻译功能,新版的WPS中已经有了翻译函数,支持使用wpsai.translate()来对单元格的内容进批量翻译,目前仅支持英译中和中译英。
利用WPSA进行翻译
例如,我们要把A列的中文内容翻译成B列,就可以采用下面的翻译方法。
=WPSAI.TRANSLATE(A1,"英文")
如果是中译英则可以使用
=WPSAI.TRANSLATE(A1,"中文")
而且这种方法无论是否是wpsai会员都可以使用。
二、在Excel中进行翻译
Excel 365中有翻译函数:translate(),但有时受网络影响,不是特别稳定,如下图所示。
在Excel 365中调用翻译函数
我们可以利用webservice()函数,采用下面的方法,调用有道翻译的内容,翻译完A1的内容后,再双击右下角十字进行批量填充。
=WEBSERVICE("http://e.anyoupin.cn/eh3/?youdao~" & A1)
这种方法的优势是可以自动检测A1是中文还是英文,所以相对简单方便。需要注意的是,此种方法仅能在Excel中使用,在WPS中无效。其翻译质量一般,可能比不上AI翻译,所以追求翻译质量的朋友就不要用这种方法。
在Excel中实现自动翻译
三、在Google Sheets中翻译
如果能够打开http://docs.google.com,那么就可以利用其自带的翻译函数:Googletranslate(单元格,语言1,语言2)进行翻译。这种方法调用的是内置的谷歌翻译,支持多个语种,但需要有特殊网络支持。
在Google Sheets中进行翻译
四、利用Python进行在线文档翻译
在WPS在线文档中已经支持调用Python,并且自带有requests等常用模型。所以,我们可以编写以下翻译代码,调用360翻译工具,免费进行单元格翻译。以下代码是对于Sheet1中A1:A2单元格内容的进行汉译英,如果是要英译汉则需要把data中的'eng'改为'1'即可。
import requestsurl = 'https://fanyi.so.com/index/search'# 读取Excel的A列内容
df = xl("$A$1:$A$2", headers=None, sheet_name="Sheet1")# 初始化起始写入位置
start_row = 1for word in df[0]:try:data = {'eng': '2','validate': '','ignore_trans': '0','query': word,}headers = {'useragent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 Edg/128.0.0.0','pro': 'fanyi'}response = requests.post(url=url, headers=headers, data=data).json()# 获取翻译结果translated_text = response['data']['fanyi']# 将翻译结果写入B列对应的单元格write_xl(translated_text, f"$C${start_row}", sheet_name="Sheet1")# 增加行号以写入下一行start_row += 1except Exception as exc:print(exc)
五、调用翻译API进行翻译
如果是多个Excel文档的翻译,为了提高翻译速度,保证翻译质量,我们还是需要借助Python来调用机器翻译的api,这样可以更加快速地实现翻译,而且准确度相对较高。比如,我们可以利用Python调用小牛翻译的API,因为它每天都赠送20万的免费翻译额度,足够我们的日常翻译了。代码如下:
import openpyxl
import os
import json
import random
from hashlib import md5
import requestsapikey="<小牛机器翻译API>"
workbooks = [wb for wb in os.listdir(os.getcwd()) if wb.endswith('.xlsx')]
def lang():with open("config.txt","r",encoding="utf-8") as f:line=f.readlines()from_lang,to_lang=line[0].strip().split("|")return from_lang,to_langdef get_lst():for workbook in workbooks:wb = openpyxl.load_workbook(workbook)ws = wb.activefor cell_0, cell_1 in zip(ws['A'], ws['B']):if cell_0.value is not None:try:cell_1.value = translate(str(cell_0.value).strip())except Exception as exc:print(exc)wb.save(workbook)def make_md5(s, encoding='utf-8'):return md5(s.encode(encoding)).hexdigest()def translate(sentence):from_lang, to_lang = lang()apikey="<小牛机器翻译的API>"url = 'http://api.niutrans.com/NiuTransServer/translation?'data = {"from": from_lang, "to": to_lang, "apikey": apikey, "src_text": sentence}res = requests.post(url, data = data)res_dict = json.loads(res.text)if "tgt_text" in res_dict:result = res_dict['tgt_text']else:result = ""return result
get_lst()
此外,还需要编写一个配置文件:config.txt,输入下面内容,并与py文件放在同一目录下面。这个文件的功能是设置翻译文本的语言对,如果是从英语翻译成中文就可以设置成:en|zh。其中第一个en也可以设置为auto,这样就可以自动检测语种了。
en|zh
六、学后总结
当前,翻译功能已经渗透到了各个办公软件当中,大家可以根据自己的使用场景的不同进行有效的选择。以上方较为简单实用,适合于对翻译质量要求不高的职场人士。如果想更加严谨和准确一些,我们还可以借用于CAT工具,或者大语言模型进行翻译,然后进行译后编辑和校对。
总之,单文件的翻译建议使用Excel和WPS中的翻译函数,多文档的翻译可以利用Python程序或者CAT工具调用机器翻译API,或者调用小牛机器翻译的文档翻译API接口进行翻译。