自动翻译 API 自動翻譯API是一個允許您輕鬆設置翻譯類型和翻譯者的API。它支持實時同步翻譯和異步翻譯,提供靈活的翻譯環境。
有兩種類型的自動翻譯API:
同步翻譯API ,允許實時翻譯,非同步翻譯請求API ,不允許實時翻譯,以及非同步翻譯結果確認API 。
注意事項 支援的文本格式 同步翻譯API和非同步翻譯API支援的文本格式如下。
同步翻譯API:支持純文本和HTML格式 非同步翻譯 API:支持 Markdown 格式 專案匹配方法 自動翻譯 API 提供兩種方式來匹配在 App Center 註冊的每個遊戲專案的翻譯服務。
1:1 與自動翻譯服務的匹配:為每個項目註冊所使用的服務 當呼叫一個自動翻譯服務時,輸入項目 ID 以進行匹配:通過添加每個項目 ID 來調用 API 支援翻譯的語言 Hive 平台支援總共 16 種翻譯語言,如下所示。
語言 語言特定標記 語言代碼 韓語 Korean 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. 檢查服務金鑰 (appKey)、密鑰 在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 > app_key 应用密钥值 字符串 是 802890479467404e info > meta_data 未被自动翻译服务聚合的值,但作为日志保存 对象 否 转换 JSON 对象字符串时,限制在 1kb 内 {“game” : “MLB”} 或 [{“key1”:“blabla”}] text 翻译请求内容 字符串 是 ※ 需要字符串 JSON 转义 “关于 \”注册\” 程序的询问” from 翻译请求的语言 字符串 是 与“text”对应的语言代码 翻譯支援語言和語言代碼參考 ※ 當輸入“auto”時,自動檢測(小寫) 1. (自動檢測)“auto” 2. (韓文)“ko” to 翻譯回應語言 字串 Y 可以通過用“,”分隔來請求多種語言 翻譯支援語言及語言代碼參考 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 輸入語言檢測值 字串 翻譯支援語言及語言代碼參考 content > data > translateMsg > detectedLanguage > score 輸入語言檢測分數(越接近1越準確) 數字(浮點數) 1.0 content > data > translateMsg > translations 翻譯文本的陣列 陣列 以語言暴露為陣列 content > data > translateMsg > translations > text 翻譯文本 字串 Json Escape 字串 關於「註冊」過程的查詢 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":{
"app_key":"802890479467404e"
},
"text": "伺服器帳戶申請帳戶創建多語言內容管理程序查詢",
"to":"en,fr,de",
"from": "ko"
}'
import requests
url = "https://ats.withhive.com/api/translate/sync"
payload = {
"info" : { "app_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 \"app_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」。
這是一種同步翻譯文本類型,並支持需要前後處理的Markdown文本格式。
請求 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
請求標頭 欄位名稱 描述< /th> 類型 必填 詳細資訊 範例 簽名 用於身份驗證的簽名值 字串 是 使用密鑰對應用程序金鑰值進行HmacSHA256編碼 pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=
請求主體 欄位名稱 描述< /th> 類型 必填 詳細資訊 範例 info 應用程式金鑰資訊物件 物件 是 info > app_key 應用程式金鑰值 字串 是 802890479467404e info > meta_data 不會被自動翻譯服務聚合,但作為日誌值儲存 物件 否 當轉換 JSON 物件字串時,大小在 1kb 以內 {“game” : “MLB”} 或 [{“key1”:“blabla”}] text 翻譯請求內容 字串 是 ※ 需要字串 JSON 轉義 “關於 \”註冊\” 程序的詢問” from 翻譯請求語言 字串 是 對應於“text”的語言代碼 翻譯支援語言及語言代碼參考 ※ 異步翻譯 自動語言檢測不支援翻譯請求。 到 翻譯響應語言 字符串 是 可以通過“,”分隔進行多語言請求 支援的翻譯語言及語言代碼參考 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 字符串 https:///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":{
"app_key":"815e3d8d6e7443ba"
},
"text":"# Markdown Cheat Sheet ......",
"to":"ko,ja,zh-hant",
"from":"en"
}'
import requests
url = "https://ats.withhive.com/api/translate/async"
payload = {
"info" : { "app_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 \"app_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 實時網址 https://ats.withhive.com/api/translate/async/result/{uuid} HTTP 方法 GET
請求路徑 欄位名稱 描述 類型 是否必填 詳細資訊 範例 uuid 翻譯結果ID,異步翻譯請求的狀態響應值 字串 Y 從創建到 ~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 > mag 翻译状态消息 字符串 “完成(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"
}
]
}
]
}
}
}