VRHandsFrameの翻訳をGoogle翻訳⇒DeepL翻訳に変更する方法

どもども、リアルはしがないプログラマ、VRCではロポリこんのアイドルグループLPK48のリーダーのえいきちです。

VRHandsFrameの翻訳がGoogleAppsScriptを使ったものだったので、DeepL翻訳にも対応出来るのでは?と思い、やってみたら簡単に出来たのでその方法をまとめます。

注意事項

DeepL翻訳に変えたからといって劇的に翻訳精度が上がる訳ではありません。
これはVR上での文字の読み取り精度に問題があったり、VR内での文書は翻訳するのに適した形ではないことが多い為です。
どうしてもDeepL翻訳が良いんだ…!という人だけ試してみてください。

また、この方法は正式な方法ではなくカスタマイズになるので、自己責任でご利用お願いします。

DeepL翻訳の登録

こちらの記事を参考にDeepL翻訳へアカウントを登録します。
登録自体は無料ですが、アカウントの本人認証の為にクレジットカードの登録が必要です。

DeepL翻訳に変更するためのコード

DeepL翻訳の無料版APIキーが発行出来たら、VRHandsFrameのマニュアルにある「個人用翻訳サーバの導入手順」のコードを下記のDeepL翻訳版に置き換えます。

let apiKey = 'xxx';のxxx部分に発行したAPIキーを貼り付けてください。

function doPost(e) {
  var p = JSON.parse(e.postData.getDataAsString());
  //DeepLのAPIにリクエストするURLを設定
  let apiUrl = 'https://api-free.deepl.com/v2/translate?auth_key=';
  //DeepLのAPIキーを設定 ※各自のAPIキーで書き換え
  let apiKey = 'xxx';
  //APIリクエストのPOST時に必要なパラメータを設定
  apiUrl = apiUrl + apiKey + '&text=' + encodeURI(p.text) + '&target_lang=' + p.target;
  //DeepLのAPIに翻訳をリクエスト
  let response =  UrlFetchApp.fetch(apiUrl).getContentText();
  let json = JSON.parse(response);
  var translatedText = json['translations'][0]['text'];
  return ContentService.createTextOutput(translatedText);
}

DeepL翻訳の制約

DeepL翻訳のAPIの仕様上、下記の制約があります。

  • 1ヵ月に翻訳出来るのは500,000文字まで

  • 翻訳文はURLで送信する為、URL長の制限がある。(長文を翻訳するとエラーとなる可能性がある)

終わりに

これでVRHandsFrameの翻訳をDeepL翻訳に変更出来ました!
Google翻訳に比べるとDeepL翻訳の無料版は制限がきついので、使い勝手が良いとは言えないかもしれませんが…
万が一、50万文字制限に引っ掛かったら一時的にGoogle翻訳版に戻しましょう。

この記事が気に入ったらサポートをしてみませんか?