免费翻译API

1
2
3
4
5
6
7
8
9
10
11
12
13
def get_tran(text,source_lang="",target_lang=""):
"""
调用 https://findmyip.net/api/translate.php 接口 翻译文本
:param text:需要翻译的源文本
:param source_lang:源文本语言种类(此参数若不填写,将会进行自动检测)
:param target_lang:翻译后的语言种类(此参数若不填写,将会自动翻译成中文)
:return: 翻译后的内容
"""
import requests
url=f"https://findmyip.net/api/translate.php?text={text}&source_lang={source_lang}&target_lang={target_lang}"
response = requests.get(url)
result=response.json()['data']['translate_result']
return result
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def google_translate(q, src_lang='zh-CN', tgt_lang='en', host='tl.faison.cc', debug=False):
""" 调用google翻译接口
src_lang: 初始语言
tgt_lang:目标语言
host:google翻译域名的反代域名,用于解决国内不能直接访问google
"""
if not q.strip():
return q
import requests
# response = requests.get('https://tl.faison.cc/translate_a/single?client=gtx&sl=zh-CN&tl=en&dt=t&q=你好,中国')
params = {'client': 'gtx', 'sl': src_lang, 'tl': tgt_lang, 'dt': 't', 'q': q}
resp = requests.get(f'https://{host}/translate_a/single', params=params)
if resp.status_code == 200 and resp.headers['Content-Type'].startswith('application/json'):
return ''.join(one[0] for one in resp.json()[0]) if not debug else debug
else:
raise Exception(f"""resp.status_code == {resp.status_code}\nresp.headers['Content-Type']={resp.headers['Content-Type']}\nresp.text={resp.text}""")

if __name__ == '__main__':
print(google_translate('你好,中国'))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# %pip install pygoogletranslation
def ggtranslate(line, src='en', dest='zh-cn'):
from googletrans import Translator
# 使用Google翻译API
translator = Translator(service_urls=['tl.faison.cc', 'translate.google.cn',])
#translator.raise_Exception = lambda x: x
if line.strip():
trans = translator.translate(line, src=src, dest=dest)
return trans.text
else:
return line

if __name__ == '__main__':
print(ggtranslate('hello, china'))

参考资料