自動翻訳API  自動翻訳APIは、翻訳タイプと翻訳者を簡単に設定できるAPIです。リアルタイムの同期翻訳と非同期翻訳の両方をサポートし、柔軟な翻訳環境を提供します。
 自動翻訳APIには2種類あります: 
 同期翻訳API はリアルタイム翻訳を可能にし、非同期翻訳リクエストAPI はリアルタイム翻訳を許可せず、非同期翻訳結果確認API があります。
 ノート  サポートされているテキスト形式  同期翻訳APIおよび非同期翻訳APIでサポートされているテキスト形式は次のとおりです。
   同期翻訳API: プレーンテキストとHTMLフォーマットをサポート    非同期翻訳API: マークダウン形式をサポート     プロジェクトマッチング方法  自動翻訳APIは、App Centerに登録された各ゲームプロジェクトに対して翻訳サービスをマッチングする2つの方法を提供します。
   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  翻訳リクエストと翻訳結果を1つの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  入力言語に関連する値  オブジェクト  ※「翻訳リクエスト言語(from)」が「自動」の場合に存在        content > data > translateMsg > detectedLanguage > language  入力言語検出値  文字列  翻訳サポート言語および言語コードの参照        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" :  { "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は、翻訳リクエストと翻訳レスポンスの2つの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    
 リクエストヘッダー    フィールド名  説明< /th>  タイプ  必須  詳細  例     署名  認証のための署名値  文字列  はい   アプリケーションキーの値を秘密鍵を使用してHmacSHA256でエンコードします 一つの値   pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=     
 リクエストボディ    フィールド名  説明< /th>  タイプ  必須  詳細  例     info  アプリキー情報オブジェクト  オブジェクト  はい           info > app_key  アプリキーの値  文字列  はい      802890479467404e      info > meta_data  自動翻訳サービスによって集約されず、ログ値として保存される  オブジェクト  いいえ   JSONオブジェクト文字列を変換する際、1kb以内    {“game” : “MLB”} または [{“key1”:“blabla”}]      text  翻訳リクエスト内容  文字列  はい   ※ 文字列のJSONエスケープが必要    “「登録」手続きについての問い合わせ”      from  翻訳リクエスト言語  文字列  はい   “text”に対応する言語コード 翻訳サポート言語と言語コードの参照 ※ 非同期翻訳 翻訳リクエストの自動言語検出はサポートされていません。         to  翻訳応答言語  文字列  Y   複数の言語リクエストは「,」で区切って行うことができます 翻訳サポート言語と言語コードの参照    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  内部サーバーエラー (または何らかのメッセージ)  失敗 - サーバー内部エラー    
 リクエストの例  カール Python Java 
      import  requests 
url  =  "https://ats.withhive.com/api/translate/async" 
payload  =  { 
"info" :  { "app_key" :  "815e3d8d6e7443ba" }, 
"text" :  "# マークダウン チートシート ......" , 
"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\":\"# マークダウン チートシート  
    ......\",\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、非同期翻訳リクエストのステータス応答値  文字列  Y   作成から~N日まで確認   5c8ded49-9ee2-412a-a0ab-a4018a0dc093    
 リクエストヘッダー    フィールド名  説明  タイプ  必須かどうか  詳細  例     署名  認証のための署名値  文字列  はい   秘密鍵を使用してHmacSHA256でエンコードされたアプリキー値   pczeZ91N/ijDBZ80ktNdTDPhnmEK98a3AIsTui46o9c=     
 応答    フィールド名  説明  タイプ  詳細  例     result  結果値配列  オブジェクト           result > code  結果コード  整数  レスポンスコードの参照  成功の場合は'200'     result > msg  結果メッセージ  文字列  レスポンスコードの参照  成功の場合は'Success'     content  翻訳結果  オブジェクト           content  翻訳結果  オブジェクト           content > status  翻訳ステータス値  オブジェクト  翻訳ステータス情報        content > status > code  翻訳ステータスコード  整数     100 / 101 / 102 / 199      content > status > mag  翻訳ステータスメッセージ  文字列     “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" 
                                             } 
                                     ] 
                             } 
                     ] 
             } 
     } 
}