自動翻訳API  自動翻訳APIは、翻訳タイプと翻訳者を簡単に設定できるAPIです。リアルタイムの同期翻訳と非同期翻訳の両方をサポートしており、柔軟な翻訳環境を提供します。
 自動翻訳APIの種類は、リアルタイム翻訳を可能にする同期翻訳API と、リアルタイム翻訳を許可しない非同期翻訳リクエストAPI および非同期翻訳結果確認API に大別されます。
 ノート  サポートされているテキスト形式  同期翻訳APIと非同期翻訳APIがサポートするテキストフォーマットは以下の通りです。 
   同期翻訳API: プレーンテキストとHTML形式をサポート    非同期翻訳API: マークダウン形式をサポート     プロジェクトマッチングメソッド  自動翻訳APIは、アプリセンターに登録された各ゲームプロジェクトに対して翻訳サービスを一致させるための2つの方法を提供します。 
   自動翻訳サービスと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  App CenterプロジェクトID  文字列  N   1. 値がある場合: プロジェクトIDで集計する 2. 値がない場合: "None"として集計   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”      to  翻訳応答言語  文字列  Y   複数の言語は“,”で区切ってリクエストできます 翻訳サポート言語と Hive 言語コードの参照    1. (単一言語翻訳) “en” 2. (多言語翻訳)“en, fr, de"     
 応答    フィールド名  説明  タイプ  詳細  例     result  結果値  オブジェクト           result > code  結果コード  整数  レスポンスコードを参照  '200' 成功時     result > msg  結果メッセージ  文字列  レスポンスコードを参照  '成功' 成功時     content  翻訳結果  オブジェクト           content > data > translateMsg  翻訳値の配列  配列           content > data > translateMsg > detectedLanguage  入力言語に関連する値  オブジェクト  ※ "翻訳リクエスト言語(from)" が "auto" の場合に存在        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  内部サーバーエラー (または何らかのメッセージ)  失敗 * 内部サーバーエラー    
 リクエストの例  カール Python Java 
      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は、翻訳リクエストとレスポンスを2つのAPIを通じて別々に処理します。 主に2つのAPIがあります:リクエスト用の「非同期翻訳リクエストAPI」と、レスポンス用の「非同期翻訳結果確認API」です。
 これは、前処理および後処理を必要とするマークダウンテキスト形式をサポートする本文の翻訳テキストタイプです。
 リクエスト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  App CenterプロジェクトID  文字列  はい   1. 値がある場合: プロジェクトIDで集計する 2. 値がない場合: "None"として集計   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 言語コードの参照 ※ 非同期翻訳は翻訳リクエストコンテンツの自動言語検出をサポートしていません。         to  翻訳応答言語  文字列  Y   複数の言語リクエストは「、」で区切ることで可能です。 翻訳サポート言語と 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  内部サーバーエラー(または何らかのメッセージ)  失敗 * 内部サーバーエラー    
 リクエストの例  カール Python Java 
      import  requests 
url  =  "https://ats.withhive.com/api/translate/async" 
payload  =  { 
"info" :  { "service_key" :  "815e3d8d6e7443ba" }, 
"text" :  "# Markdown チートシート ......" , 
"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\":\"# マークダウン チートシート 
    ......\",\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  翻訳ステータスメッセージ  文字列     “completed(100)”/ “waiting(101)” / “processing(102)” / “failed(199)”     content > data   翻訳結果値  オブジェクト  ※ result>status>msg の値が “waiting” / “processing” / “failed” の場合、フィールドは存在せず、 “completed” の場合のみ存在します。        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" 
                                             } 
                                     ] 
                             } 
                     ] 
             } 
     } 
}