最終更新日 2024-09-27

HmDeepLLangTranslatorCPP

秀丸エディタ9.25以上の場合、こちらではなく、HmDeepLLangTranslatorJS を強く推奨します。

概要

DeepLで取得した「自分用のAPI KEY」を利用し、
その登録したAPIを経由して、秀丸マクロ上で言語間翻訳を実現します。

ダウンロード

Windowsのbit数ではなく、秀丸のビット数 Windows OSが64bit版か32bit版かは関係ありません。秀丸エディタが32bit版か64bit版かでダウンロード対象を選択してください。

動作環境

インストール

Deep API Freeの取得

こちらの DeepLにて無料の翻訳APIを作成 を行い、 控えておきましょう。

HmDeepLLangTranslator.macの書き換え

HmDeepLLangTranslator.macの下記の部分を

// 環境変数から、DeepL Apps Script の翻訳APIへのURLアドレスを取得。
// ご自身で環境変数「DEEPL_SCRIPT_TRANSLATION」にDeepLのAPIのAUTH_KEYを設定してください。
$auth_key = getenv("DEEPL_SCRIPT_TRANSLATION"); 

// 環境変数への登録が面倒、あるいは避けたいという場合は、下部へと直接認証キーの文字列を貼り付けること。
// $auth_key = "*******-****-****-****-************:**";

環境変数から取得するか、それともマクロ内に直接認証キーを書くのか、状況に応じて選択してください。
マクロ内に直接書くことを選択した場合はコメントアウトを外して有効にしましょう。

// 環境変数から、DeepL Apps Script の翻訳APIへのURLアドレスを取得。
// ご自身で環境変数「DEEPL_SCRIPT_TRANSLATION」にDeepLのAPIのAUTH_KEYを設定してください。
// $auth_key = getenv("DEEPL_SCRIPT_TRANSLATION"); 

// 環境変数への登録が面倒、あるいは避けたいという場合は、下部へと直接認証キーの文字列を貼り付けること。
$auth_key = "*******-****-****-****-************:**";

利用の手引き

HmDeepLLangTranslator2Ja.mac

DeepL API Free翻訳を使って、日本語へと翻訳される。元が何言語かは自動判別

HmDeepLLangTranslator2En.mac

DeepL API Free翻訳を使って、英語へと翻訳される。元が何言語かは自動判別

言語の指定や変更など

「"ja"」や「"en"」など言語を指し示す具体的な文字列は、
翻訳対応言語とシンボルの一覧は、こちら で確認することが出来ます。

日本語から英語にする際に、漢字のみの構成だと「中国語」だと判定されてしまう問題

世界のメジャーな多くの言語からの自動判定ですと、
「漢字のみの単語」だけだと日本語なのか中国語なのか判別がつかないためです。
日本語→英語の翻訳だということがわかっている場合には、
HmDeepLLangTranslator2En.mac を下記のように言語を両方明示する形へと編集しましょう。

HmDeepLLangTranslator2En.mac を編集
/*
 * This codes is licensed under CC0 1.0 Universal
 */

execmacro currentmacrodirectory + @"\HmDeepLLangTranslator.mac", "ja", "en";

翻訳元のテキスト文字列の指定の方法を変えたい場合

HmDeepLLangTranslatorCPPでは、デフォルトの挙動として、

この挙動を変更したい場合、
例えば選択しているとかではなく、何か別の手段で翻訳対象のテキストを決定したいという場合、
マクロ層で自由に対象を定めることができるようになっています。

HmDeepLLangTranslator.mac を編集
・・・

// 途中でマクロの文法や型の致命的エラーが発生した場合でもdllを解放する。
if (version >= 898) { 
    eval "keepdll #DLL, 0";
    eval "keepdll #DLL_CURL, 0";
}

$my_text = "何かご自身のカスタムによって翻訳元のテキストを決定";
$AnswerText = dllfuncstrw(#DLL, "try_translate" , $auth_key, $source_lang, $target_lang, $my_text);

freedll(#DLL);
freedll(#DLL_CURL);

・・・

ライセンス