自动翻译 API 自动翻译API是一个允许您轻松设置翻译类型和翻译器的API。它支持实时同步翻译和异步翻译,提供灵活的翻译环境。
自动翻译API的类型可以大致分为同步翻译API ,允许实时翻译,以及异步翻译请求API 和异步翻译结果检查API ,不允许实时翻译。
注意事项 支持的文本格式 同步翻译API和异步翻译API支持的文本格式如下。
同步翻译API:支持纯文本和HTML格式 异步翻译API:支持Markdown格式 项目匹配方法 自动翻译API为在应用中心注册的每个游戏项目提供两种匹配翻译服务的方法。
自动翻译服务和1:1匹配:注册每个项目使用的服务 调用单个自动翻译服务时,输入用于匹配的项目ID:将每个项目ID添加到API调用中 支持的翻译语言 Hive 支持的翻译语言总共有 16 种,具体如下。
语言 语言符号 Hive 语言代码 韩语 한국어 ko 英语 English en 日语 日本語 ja 简体中文 简体中文 zh-hans 繁体中文 繁體中文 zh-hant 法语 Français fr 德语 Deutsch de 俄语 русский ru 西班牙语 Español es 葡萄牙语 Português pt 印尼语 Bahasa Indonesia id 越南语 tiếng Việt vi 泰语 ไทย th 意大利语 Italiano it 土耳其语 Türkçe tr 阿拉伯语 العربية ar
前提条件 使用自动翻译API的先决条件如下。
1. 检查服务密钥和秘密密钥 Hive 控制台 > AI 服务 > 自动翻译 > 自动翻译系统 > 服务管理 来注册服务。 检查产品的服务密钥和秘密密钥。 2. 签名验证 API 服务器使用服务密钥和秘密密钥生成签名。
在 Hive 控制台中选择密钥管理 > AI 服务 > 自动翻译 > 自动翻译系统 > 服务管理 以检查生成的签名。生成的签名代码示例如下。
签名是使用服务密钥和秘密密钥通过 HmacSHA256 编码的 Base64 值。 同步翻译 API 处理翻译请求并在实时同步模式下通过单个 API 请求和响应提供结果。 由于翻译结果直接在 API 响应中提供,因此没有可用的 API 来检查翻译结果。
这是一个支持不需要前后处理的纯文本和HTML文本格式的同步翻译文本类型。
请求 URL 实时 URL https://ats.withhive.com/api/translate/Sync https://ats.withhive.com/api/translate/sync/{project_id} HTTP 方法 POST 内容类型 application/json 数据格式 JSON
请求路径 字段名称 描述 类型 是否必填 详细信息 示例 project_id 应用中心项目ID 字符串 N 1. 如果有值:按项目ID聚合 2. 当没有值时:聚合为“无” com.com2us.project1
请求头 字段名称 描述 类型 必需 详细信息 示例 签名 用于身份验证的签名值 字符串 是 使用服务密钥的秘密密钥通过HmacSHA256编码的值 IWusOMIBN8D/0HqgZ7/58e4rgS05E+nka3Ya9vc+yiY=
请求体 字段名称 描述 类型 是否必需 详细信息 示例 info 服务密钥信息对象 对象 是 info > service_key 服务密钥值 字符串 是 802890479467404e info > meta_data 在自动翻译服务中未聚合但存储在日志中的值 对象 否 转换为 JSON 对象字符串时,限制在 1kb 内 {“game” : “MLB”} 或 [{“key1”:“blabla”}] text 翻译请求内容 字符串 是 ※ 需要字符串 JSON 转义 “ \”关于注册程序的询问\” from 翻译请求语言 字符串 是 与“text”对应的语言代码 翻译支持语言和 Hive 语言代码参考 ※ 输入“auto”将自动检测(小写) 1. (自动检测)“auto” 2. (韩语)“ko” 到 翻译响应语言 字符串 是 可以通过用“,”分隔来请求多种语言 翻译支持语言和 Hive 语言代码参考 1. (单语言翻译) “en” 2. (多语言翻译)“en, fr, de"
响应 字段名称 描述 类型 详细信息 示例 result 结果值 对象 result > code 结果代码 整数 参考响应代码 '200' 表示成功 result > msg 结果消息 字符串 参考响应代码 '成功' 表示成功 content 翻译结果 对象 content > data > translateMsg 翻译值数组 数组 content > data > translateMsg > detectedLanguage 与输入语言相关的值 对象 ※ 如果“翻译请求语言(来自)”为“自动”,则存在 content > data > translateMsg > detectedLanguage > language 检测到的输入语言值 字符串 参考支持的翻译语言和 Hive 语言代码 content > data > translateMsg > detectedLanguage > score 输入语言检测分数(越接近1,越准确) 数字(浮点数) 1.0 content > data > translateMsg > translations 翻译文本数组 数组 按语言显示为数组 content > data > translateMsg > translations > text 翻译文本 字符串 Json 转义字符串 关于“注册”过程的查询 content > data > translateMsg > translations > to 翻译语言国家代码 字符串 "en"
响应代码 代码 文本 备注 200 "成功" 成功 400 <> 缺失或 请求不正确 失败 * 缺失请求参数或 失败 * 无法解析 (JSON 错误) 401 错误的签名 失败 * 签名密钥问题 404 未注册的应用密钥 失败 * 未注册的服务密钥 404 未注册的作业 UUID 失败 * 未注册的作业 UUID 500 内部服务器错误 (或某些消息) 失败 * 内部服务器错误
请求示例 Curl Python Java
curl --request POST \
--url https://ats.withhive.com/api/translate/sync \
--header 'Content-Type: application/json' \
--header 'Signature: IWusOMIBN8D/0HqgZ7/58e4rgS05E+nka3Ya9vc+yiY=' \
--data '{
"info":{
"service_key":"802890479467404e"
},
"text":"请求创建服务器账户申请和管理多语言内容的程序",
"to":"en,fr,de",
"from" : "ko"
}'
import requests
url = "https://ats.withhive.com/api/translate/sync"
payload = {
"info" : { "service_key" : "802890479467404e" },
"text" : "关于服务器账户申请和账户创建的多语言内容管理流程的询问" ,
"to" : "en,fr,de" ,
"from" : "ko"
}
headers = {
"Content-Type" : "application/json" ,
"Signature" : "IWusOMIBN8D/0HqgZ7/58e4rgS05E+nka3Ya9vc+yiY="
}
response = requests . request ( "POST" , url , json = payload , headers = headers )
print ( response . text )
OkHttpClient client = new OkHttpClient ();
MediaType mediaType = MediaType . parse ( "application/json" );
RequestBody body = RequestBody . create ( mediaType , "{\n \"info\":{\n \"service_key\":\"802890479467404e\"\n },\n \"text\":\"服务器账户申请账户创建多语言内容管理程序查询\",\n \"to\":\"en,fr,de\",\n \"from\" : \"ko\"\n}" );
Request request = new Request . Builder ()
. url ( "https://ats.withhive.com/api/translate/sync" )
. post ( body )
. addHeader ( "Content-Type" , "application/json" )
. addHeader ( "Signature" , "IWusOMIBN8D/0HqgZ7/58e4rgS05E+nka3Ya9vc+yiY=" )
. build ();
Response response = client . newCall ( request ). execute ();
响应示例 {
"result" : {
"code" : 200 ,
"msg" : "Success"
},
"content" : {
"data" : {
"translateMsg" :[{
"detectedLanguage" :{
"language" : "ko" ,
"score" : -1.0
},
"translations" :[{
"text" : "Server Account Application Create an account Inquiries about the multilingual content management process" ,
"to" : "en"
},
{
"text" : "Demande de compte serveur Créer un compte Demandes de renseignements sur le processus de gestion de contenu multilingue" ,
"to" : "fr"
},
{
"text" : "Server-Konto-Anwendung Konto erstellen Anfragen zum mehrsprachigen Content-Management-Prozess" ,
"to" : "de"
}]
}]
}
}
}
异步翻译请求 API 异步翻译API通过两个API分别处理翻译请求和响应。 主要有两个API:用于请求的“异步翻译请求API”和用于响应的“异步翻译结果检查API”。
这是一个翻译文本类型,用于正文,支持需要前后处理的markdown文本格式。
请求 URL 实时 URL https://ats.withhive.com/api/translate/async https://ats.withhive.com/api/translate/async/{project_id} HTTP 方法 POST 内容类型 application/json 数据格式 JSON
请求路径 字段名称 描述 类型 必需 详细信息 示例 project_id 应用中心项目ID 字符串 是 1. 当有值时:按项目ID聚合 2. 当没有值时:聚合为“无” com.com2us.project1
请求头 字段名称 描述 类型 必需 详细信息 示例 签名 用于身份验证的签名值 字符串 是 使用服务密钥的秘密密钥通过HmacSHA256编码的值 pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=
请求体 字段名称 描述 类型 必需 详细信息 示例 info 服务密钥信息对象 对象 是 info > service_key 服务密钥值 字符串 是 802890479467404e info > meta_data 在自动翻译服务中未聚合但保存在日志中的值 对象 否 转换为 JSON 对象字符串时,大小在 1kb 以内 {“game” : “MLB”} 或 [{“key1”:“blabla”}] text 翻译请求的内容 字符串 是 ※ 需要字符串 JSON 转义 “ \”有关注册程序的查询” from 翻译请求的语言 字符串 是 与“text”对应的语言代码 翻译支持语言和 Hive 语言代码参考 ※ 异步翻译不支持自动语言检测功能。 到 翻译响应语言 字符串 是 可以通过“,”分隔来请求多种语言 翻译支持语言和 Hive 语言代码参考 1. (单语言翻译)“en” 2. (多语言翻译) “en, fr, de"
响应 字段名称 描述 类型 详细信息 示例 result 结果值 对象 result > code 结果代码 整数 参见响应代码 '200' 表示成功 result > msg 结果消息 字符串 参见响应代码 '成功' 表示成功 content 翻译结果值 对象 content > uuid 翻译结果 ID 字符串 UUID4 格式 ID 用于检查翻译状态的 ID 62fe5786-0bb8-4cd0-b51a-6d6f6bfe2bac content > resultUrl 用于检查翻译状态的 URL 字符串 /api/translate/async/result/{uuid} 是
响应代码 代码 文本 备注 200 "成功" 成功 400 <> 缺失或 请求不正确 失败 * 缺失请求参数或 失败 * 解析不可能(JSON 错误) 401 错误的签名 失败 * 签名密钥异常 404 未注册的应用密钥 失败 * 未注册的服务密钥 404 未注册的工作 UUID 失败 * 未注册的工作 UUID 500 内部服务器错误(或某些消息) 失败 * 内部服务器错误
请求示例 Curl Python Java
curl --request POST \
--url https://ats.withhive.com/api/translate/async \
--header 'Content-Type: application/json' \
--header 'Signature: pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=' \
--data '{
"info":{
"service_key":"815e3d8d6e7443ba"
},
"text":"# Markdown 备忘单 ......",
"to":"ko,ja,zh-hant",
"from":"en"
}'
import requests
url = "https://ats.withhive.com/api/translate/async"
payload = {
"info" : { "service_key" : "815e3d8d6e7443ba" },
"text" : "# Markdown cheat sheet ......" ,
"to" : "ko,ja,zh-hant" ,
"from" : "en"
}
headers = {
"Content-Type" : "application/json" ,
"Signature" : "pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c="
}
response = requests . request ( "POST" , url , json = payload , headers = headers )
print ( response . text )
OkHttpClient client = new OkHttpClient ();
MediaType mediaType = MediaType . parse ( "application/json" );
RequestBody body = RequestBody . create ( mediaType , "{\n \"info\":{\n \"service_key\":\"815e3d8d6e7443ba\"\n },\n\t\"text\":\"# Markdown cheat sheet
......\",\n \"to\":\"ko,ja,zh-hant\",\n\t\t\"from\":\"en\"\n}\n" );
Request request = new Request . Builder ()
. url ( "https://ats.withhive.com/api/translate/async" )
. post ( body )
. addHeader ( "Content-Type" , "application/json" )
. addHeader ( "Signature" , "pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=" )
. build ();
Response response = client . newCall ( request ). execute ();
响应示例 {
"result" : {
"code" : 200 ,
"msg" : "Success"
},
"content" : {
"uuid" : "d2a36ba1-1bb3-43aa-ac57-46576d27eb37" ,
"resultUrl" : "https://test-ats.withhive.com/api/translate/async/result/d2a36ba1-1bb3-43aa-ac57-46576d27eb37"
}
}
异步翻译结果检查 API 异步翻译结果检查API返回异步翻译请求的翻译结果。换句话说,它是处理请求和响应分开的异步API中对应响应的API。
请求 URL 实时 URL https://ats.withhive.com/api/translate/async/result/{uuid} HTTP 方法 GET
请求路径 字段名称 描述 类型 必需 详细信息 示例 uuid 翻译结果ID,异步翻译请求的状态响应值 字符串 是 可以从创建到~N天进行检查 5c8ded49-9ee2-412a-a0ab-a4018a0dc093
请求头 字段名称 描述 类型 必需 详细信息 示例 签名 用于身份验证的签名值 字符串 是 使用服务密钥的秘密密钥通过HmacSHA256编码的值 pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=
响应 字段名称 描述 类型 详细信息 示例 result 结果数组 对象 result > code 结果代码 整数 参考响应代码 '200' 表示成功 result > msg 结果消息 字符串 参考响应代码 '成功' 表示成功 content 翻译结果 对象 content 翻译结果 对象 content > status 翻译状态值 对象 翻译状态信息 content > status > code 翻译状态代码 整数 100 / 101 / 102 / 199 content > status > msg 翻译状态消息 字符串 “已完成(100)”/ “等待中(101)” / “处理中(102)” / “失败(199)” content > data 翻译结果值 对象 ※ 如果result>status>msg值为 “等待中” / “处理中” / “失败” 将没有字段, 仅在“已完成”时存在 content > data > translateMsg 翻译值数组 数组 content > data > translateMsg > translations 翻译文本数组 数组 按语言显示为数组 content > data > translateMsg > translations > text 翻译文本 字符串 Json转义字符串 关于“注册”过程的查询 content > data > translateMsg > translations > to 翻译语言国家代码 字符串 "en"
响应代码 代码 文本 备注 200 "成功" 成功 400 <> 缺失或 请求不正确 失败 * 缺失请求参数或 失败 * 解析不可能(JSON错误) 401 错误的签名 失败 * 签名密钥异常 404 未注册的应用密钥 失败 * 未注册的服务密钥 404 未注册的作业UUID 失败 * 未注册的作业UUID 500 内部服务器错误(或某些消息) 失败 * 内部服务器错误
请求示例 响应示例 {
"result" : {
"code" : 200 ,
"msg" : "Success"
},
"content" : {
"status" : {
"code" : 100 ,
"msg" : "completed"
},
"data" : {
"translateMsg" : [
{
"translations" : [
{
"text" : "# Markdown 치트 시트\r\n\r\n......" ,
"to" : "ko"
},
{
"text" : "# Markdownチートシート\r\n\r\n......" ,
"to" : "ja"
},
{
"text" : "# Markdown 備忘單\r\n\r\n......" ,
"to" : "zh-hant"
}
]
}
]
}
}
}