HmLangTranslator (汎用的な言語コンテキストの翻訳や変換)

概要

このプログラムは文章的なものを翻訳変換する目的のための抽象性の高い秀丸マクロライブラリです。
抽象的なクラスを継承したサンプルとして

  • Google翻訳
  • 連想類語辞典
  • 対義語辞典

の4点のライブラリを使用例として添付しています。

ダウンロード

更新日 2019/03/26
HmLangTranslator.zip ver 1.03

動作環境

  • 秀丸

    秀丸エディタ ver8.66以上

  • hmV8

    hmV8 1.4.7.5以上

インストール

  • 解凍

    HmLangTranslator.zipをダウンロード&zip解凍

  • 配置場所

    普段秀丸のマクロを置いているような適当なディレクトリに、
    「*.js」ファイル、「*.mac」ファイルを全て置いてください

  • 5つの「*.mac」ファイル

    5つの「*.mac」ファイルは、全て特定の変換ライブラリの使用のサンプルです。
    詳細は左メニューの対応する項目内に掲載されています。

  • Google翻訳系

    • HmGoogleTranslatorAuto2Ja.mac

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

    • HmGoogleTranslatorAuto2En.mac

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

  • 日本語・連想類語・対義語系

    • HmRensoRuigoTranslator.mac

      日本語シソーラスの「連想類語辞典」を使用して、連想類語単語のリストを取り出す

    • HmRensoTaigigoTranslator.mac

      Weblioの「対義語辞典」を使用して、対義語のリストを取り出す

Google Apps Scriptの設定

こちらの Google Apps Script に無料の翻訳APIを作成 を行い、 公開したURLを控えておきましょう。 PICTURE

HmGoogleTranslator.jsの書き換え

HmGoogleTranslator.jsの下記の部分を

    get Url() {
        // Google Apps Script で自分で得たURLを取得
        return "https://script.google.com/macros/s/**********************************************/exec";
    }

↓(以下のような感じとなるでしょう。※下のURLは無効です。ご自身のGoogle Apps Scriptで公開したURLを張り付けてください)

    get Url() {
        // Google Apps Script で自分で得たURLを取得
        return "https://script.google.com/macros/s/CqgOj3AjkP5A2oaXgB_BwbujUjTqpQEAKfycbyJKE4lR1AHYa_PaLh9/exec";
    }

利用の手引き

  • 文字列を選択して実行

    変換したいテキスト文字列を選択して、マクロを実行します。

    PICTURE

  • 翻訳結果

    PICTURE

翻訳結果の表示方法の変更など

*.jsファイルは、大抵のメソッドがクラス継承によるメソッドオーバーライドによって、
挙動を変更出来るようになっています。

HmMyCustom.mac
#JS = loaddll( hidemarudir + @"\hmV8.dll" );

#_ = dllfuncw( #JS, "DoFile", currentmacrodirectory + @"\HmAbstractTranslator.js");
#_ = dllfuncw( #JS, "DoFile", currentmacrodirectory + @"\HmGoogleTranslator.js");
#_ = dllfuncw( #JS, "DoString", R"JS(
    // クラスを継承し、部分を上書きすることで、自分独自のクエリー挙動へと修正する。
    class MyStrategy extends GoogleTranslatorQueryStrategy {
        set DstText(value) {
            // 編集中のテキストは変更せず、アウトプット枠へと出すようにする。
            let replaced_value = value.replace(/\r/g, "\r\n");
            PrintOutputPane(replaced_value);
        }
    }
    // Google翻訳を継承し、カスタムしたモノを利用して、言語自動判別 ⇒ 英語へ
    let result_words = ContextTranslator.Translate(MyStrategy, { src: "", dst: "en" });

)JS"
);

freedll( #JS );
        

HmRensoRuigoTranslator.macの記述なども出力方法の変更の参考となることでしょう。

ライセンス

  • *.jsや*.ts

    MIT License となります。

    ソースの場所

    • Githubにソースがあります。

      (※ Githubでリポジトリの「サブディレクトリ」だけをダウンロードする簡単な方法は、こちら)