腾讯云文本翻译官方文档
https://console.cloud.tencent.com/api/explorer?Product=tmt&Version=2018-03-21&Action=TextTranslateBatch
这里是我们要提供的翻译参数包括Region、SourceText(源文字)、Source(源语言,填auto表示让系统自动检测)、Target(目标语言)、UntranslatedText(不让机器翻译的单词、比如说人名、地名等等)。
我试用了可以翻译,但是这里UntranslatedText只支持一个单词。官方给的建议是这个
用来标记不希望被翻译的文本内容,如句子中的特殊符号、人名、地名等;每次请求只支持配置一个不被翻译的单词;仅支持配置人名、地名等名词,不要配置动词或短语,否则会影响翻译结果。
我们用一个办法来绕过这个限制。假设我们把原来要翻译的文本
你好啊Mario,谢谢你Alice,再见Jobs
我们现在不想对着里面的Mario、Alice和Jobs进行翻译。我们重新编码这段文本为
你好%(1)s,谢谢你%(2)s,再见%(3)s
然后我们对1,2,3对应的占位符改成我们想翻译的单词。这里其实有些额外的好处,就是可以把1、2、3按照我们的意思翻译成多种语言。
比如说
我们来试一下腾讯云的翻译软件接口。
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tmt.v20180321 import tmt_client, models
try:
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
cred = credential.Credential("SecretId", "SecretKey")
# 实例化一个http选项,可选的,没有特殊需求可以跳过
httpProfile = HttpProfile()
httpProfile.endpoint = "tmt.tencentcloudapi.com"
# 实例化一个client选项,可选的,没有特殊需求可以跳过
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化要请求产品的client对象,clientProfile是可选的
client = tmt_client.TmtClient(cred, "ap-guangzhou", clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
req = models.TextTranslateRequest()
params = {
"SourceText": "Hello<1>,Thank you<2>,Good Bye<3>",
"Source": "auto",
"Target": "zh",
"ProjectId": 0,
"UntranslatedText": "Mario"
}
req.from_json_string(json.dumps(params))
# 返回的resp是一个TextTranslateResponse的实例,与请求对象对应
resp = client.TextTranslate(req)
# 输出json格式的字符串回包
resp_json = json.loads(resp.to_json_string())
global target_text
target_text=resp_json['TargetText']
print(target_text)
except TencentCloudSDKException as err:
print(err)
#这里可以把你自己的Secret配置上去,为了看程序运行结果,我直接把生成后的文字弄出来
target_text="你好%(1)s,谢谢你%(2)s,再见%(3)s"
context_json="""
{
"en": {
"1": "Mario",
"2": "Alice",
"3": "Jobs"
},
"zh": {
"1": "马里奥",
"2": "爱丽丝",
"3": "乔布斯"
},
"zh-tw": {
"1": "瑪利歐",
"2": "愛麗絲",
"3": "贾伯斯"
},
"jp": {
"1": "マリオ",
"2": "アリス",
"3": "ジョブズ"
}
}
"""
import json
context_dict=json.loads(context_json)
my_csv = '你好%(1)s,谢谢你%(2)s,再见%(3)s'
print(my_csv % context_dict['zh'])
print(my_csv % context_dict['zh-tw'])
print(my_csv % context_dict['jp'])
运行结果如下:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。