HTML に変換マクロNo.04404
tsuki さん 18/11/27 14:57
 
秀まるおさんの HTML に変換マクロ (PlainToHtml..mac) を使おうとしていますが、
どうもうまく動作しません。
メールの右側にできたアイコンをクリックすると、

(プレビュー用の文字列は空です。)

と出てしまいます。

私の操作ミスかもしれませんが、よろしくお願いします。

まお、win10(insider preview 18282), 秀丸メール (6.87 β21) です。

[ ]
RE:04404 HTML に変換マクロNo.04405
秀まるお2 さん 18/11/27 15:45
 
 テストしてみたらとりあえずうまく動くような気がしたんですが、マクロの中身を
見直して1つバグを見つけてしまいました。「表示」メニューの「文字カーソルの表
示」がONになってないとマクロがうまく動かないようになってしまってました。

 今ちょっと直したので、以下のマクロで試してみて欲しいです。それでうまく動く
ようでしたら、ライブラリにアップロードしたマクロを差し替えたいと思います。

-----------------PlainToHtml.mac---------------------------------------
// PlainToHtml.mac
// Version 1.0
// 2016/03/29 by 斉藤秀夫
//
// 2018/11/27 Version 1.1
//     「文字カーソルの表示」がOFFだとうまく動かないバグ修正。
//
//
// このマクロは、現在選択してるメールをHTMLメールに変換します。
// 現在選択してるメールからHTML形式ファイルを生成して、X-Html:ヘッダを埋め込
んで、あたかもこの
// メールが最初からHTMLメールだったかのように変換します。
//
    loaddll "tkinfo.dll";
    if( dllfuncstr("CurrentHeader", "X-Html") != "" ) {
        message "このメールは最初からHTMLメールです。";
        endmacro;
    }
    if( dllfunc("GetMailFlag", "send") != 0 ) {
        message "このマクロは送信系メールでは使えません。";
        endmacro;
    }
    #originHandle = hidemaruhandle(0);

    #browsemode = browsemode;
    if( #browsemode ) {
        browsemodeswitch;
    }
    gofiletop;
    beginsel;
    gofileend;
    copy;
    $htmlFolderBase = year + month + day + hour + minute + second;
    $htmlFolderPath2 = "受信HTML\\" + $htmlFolderBase;
    $htmlFolderPath = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") +
 "\\" + $htmlFolderPath2;
    #n = dllfunc("Bypass_CreateDirectory", $htmlFolderPath);
    if( #n == 0 ) {
        message "フォルダ作成失敗 " + $htmlFolderPath;
        endmacro;
    }
    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", 0);
    gofiletop;
    beginsel;
    gofileend;
    paste;
    gofiletop;
    replaceallfast "&", "\x1B", casesense;
    replaceallfast "<", "&lt;", casesense;
    replaceallfast ">", "&gt;", casesense;
    replaceallfast "  ", "&nbsp; ", casesense;
    replaceallfast "\x1B", "&amp;", casesense;
    replaceallfast "\n", "<br>\n", regular, casesense;
    saveas $htmlFolderPath + "\\index.htm";
    if( result != yes ) {
        message "saveas失敗、" + $htmlFolderPath + "\\index.htm";
        endmacro;
    }
    $x_html = $htmlFolderPath2 + "\\index.htm";
    #tempHandle = hidemaruhandle(0);
    setactivehidemaru #originHandle;
    closehidemaruforced #tempHandle;
    if( dllfunc("IsHidemaruMailMain") ) {
        #n = dllfunc("BeginEditMail");
        #n = dllfunc("SetHeader", "X-Html", $x_html );
        #n = dllfunc("SaveEditMail", 0, 0);
    } else {
        #n = dllfunc("EnableEdit");
        #n = dllfunc("SetHeader", "X-Html", $x_html );
        #n = dllfunc("AlterSave");
        #n = dllfunc("Sync");
        #n = dllfunc("BackSync");
    }
    if( #browsemode ) {
        browsemodeswitch;
    }

[ ]
RE:04405 HTML に変換マクロNo.04406
tsuki さん 18/11/27 15:59
 
tsuki です。

On 2018年11月27日(火) 15:45:25に秀まるお2 wrote:
>
>  今ちょっと直したので、以下のマクロで試してみて欲しいです。それでうまく動く
> ようでしたら、ライブラリにアップロードしたマクロを差し替えたいと思います。

早速のご返事ありがとうございました。使ってみたらうまく動作しているようです。

これに興味をどうして持ったのかは、これを使えば簡単に英語メールが翻訳されてし
まうからです。
右側のアイコンをクリックして Chrome, firefox, edge 等で読めば簡単に翻訳可能
です。
少し感動しました。

他には秀丸メールと往来して、範囲選択して Google 翻訳する手もありますが、少し
面倒かな?

[ ]
RE:04406 HTML に変換マクロNo.04407
秀まるお2 さん 18/11/27 16:20
 
 確認ありがとうございます。ライブラリにアップロードしたPlainToHtml.macはな
くべく早めに差し替えさせていただきます。

> これに興味をどうして持ったのかは、これを使えば簡単に英語メールが翻訳されて
>しまうからです。
> 右側のアイコンをクリックして Chrome, firefox, edge 等で読めば簡単に翻訳可
>能です。
> 少し感動しました。

 そういう技があるとは僕は知りませんでした。(ちなみに僕はFirefox使ってますが)

 今ちょっと、Google Translator for Firefoxってアドオンをインストールしたら、
出来ました。Ctrl+Aですべて選択してからアイコンクリックしたら翻訳されました。
アイコンクリックだけだとダメでしたが。

 ちなみにですが、翻訳する目的だけでしたら、以下のマクロの方がいいかもしれま
せん。一時ファイルのゴミが残る可能性はありますけども。

---------------------------------------------------------------------
// MailBodyToBrowser.mac
// Version 1.0
// 2018/11/27 by 斉藤秀夫
// 現在のメール本文をブラウザで表示させます。翻訳用。
//
//
    loaddll "tkinfo.dll";
    #originHandle = hidemaruhandle(0);

    #browsemode = browsemode;
    if( #browsemode ) {
        browsemodeswitch;
    }
    gofiletop;
    beginsel;
    gofileend;
    copy;

    $dir = dllfuncstr("HomeDir") + "TempMail";
    #n = dllfunc("Bypass_CreateDirectory", $dir);
    if( #n == 0 ) {
        #error = dllfunc("Bypass_GetLastError");
        if( #error != 183 ) {       //ERROR_ALREADY_EXISTなら問題ない
            message "フォルダ作成失敗 " + $dir + "\nエラーコード=" + str(#er
ror);
            endmacro;
        }
    }
    $file = $dir + "\\temp.html";

    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", 0);
    gofiletop;
    beginsel;
    gofileend;
    paste;
    gofiletop;
    replaceallfast "&", "\x1B", casesense;
    replaceallfast "<", "&lt;", casesense;
    replaceallfast ">", "&gt;", casesense;
    replaceallfast "  ", "&nbsp; ", casesense;
    replaceallfast "\x1B", "&amp;", casesense;
    replaceallfast "\n", "<br>\n", regular, casesense;
    saveas $file;
    if( result != yes ) {
        message "saveas失敗、" + $file;
        endmacro;
    }
    $x_html = $htmlFolderPath2 + "\\index.htm";
    #tempHandle = hidemaruhandle(0);
    setactivehidemaru #originHandle;
    closehidemaruforced #tempHandle;
    if( #browsemode ) {
        browsemodeswitch;
    }
    openbyshell $file;

[ ]
RE:04407 HTML に変換マクロNo.04408
tsuki さん 18/11/27 16:35
 
Tsuki です。

On 2018年11月27日(火) 16:20:27に秀まるお2 wrote:
>  ちなみにですが、翻訳する目的だけでしたら、以下のマクロの方がいいかもしれま
> せん。一時ファイルのゴミが残る可能性はありますけども。
 
成る程、何かもっと良い方法があるような気もしていましたが、さすがですね。
これで HTML メールでもテキストメールでも何でも簡単に翻訳可能になるようで、特
に HTMLメールが簡単に翻訳出来るようになって
良かったです。

どうも有難うございました。


[ ]
RE:04406 HTML に変換マクロNo.04409
tsuki さん 18/11/27 18:15
 
tsuki です。

>
>他には秀丸メールと往来して、範囲選択して Google 翻訳する手もありますが、少
>し面倒かな?

少しミスしました。秀丸エディターと往来して Google 翻訳マクロを使うでした。な
お、Chrome で拡張機能の Google 翻訳 を使うのもお勧めです。

[ ]
RE:04407 HTML に変換マクロNo.04413
tsuki さん 18/11/28 11:22
 

>
> 今ちょっと、Google Translator for Firefoxってアドオンをインストールしたら、
>出来ました。Ctrl+Aですべて選択してからアイコンクリックしたら翻訳されました。
>アイコンクリックだけだとダメでしたが。

これですが、右クリックで行けたように思いますが・・

> ちなみにですが、翻訳する目的だけでしたら、以下のマクロの方がいいかもしれ
>ません。一時ファイルのゴミが残る可能性はありますけども。

いろいろやってみていますが、うまくは動作していて、一応は翻訳してくれます。た
だ、テキストメールだと HTMLアイコンを右クリックと同じ画面が出ますが、HTML
メールだと同じにはならなくて、HTML をテキストに変換したのを翻訳しているよう
になってしまうみたいです。どうにか HTML 画面がでるようにはならないでしょうか?

よろしくお願いします。

[ ]
RE:04413 HTML に変換マクロNo.04414
tsuki さん 18/11/28 14:57
 
Tsuki です。

それともう一つ要望があますが、PlainToHtml.mac にて テキストを HTML に変換す
るときに、リンクは青い色のまま one-click でアクセス出来るようにならないでし
ょうか。

宜しくご検討下さい。

[ ]
RE:04414 HTML に変換マクロNo.04415
秀まるお2 さん 18/11/28 15:51
 
 HTMLメールの場合はHTMLメール用のindex.htmファイルをそのまま開くようにして、
プレーンテキストを変換する場合は、URLをクリック可能に変換するようにしてみま
した。

 こんなんでどうでしょうか。

 PlainToHtml.macもURLはリンク可能に変換するように直した方がいいので、そうい
う風に直してまたアップロードしようと思います。

-----------------------------------------------------------------
// MailBodyToBrowser.mac
// Version 1.1
// 2018/11/28 by 斉藤秀夫
// 現在のメール本文をブラウザで表示させます。翻訳用。
//
//
    loaddll "tkinfo.dll";
    #originHandle = hidemaruhandle(0);

 $html = dllfuncstr("CurrentHeader", "X-Html");
 if( $html != "" ) {
  $html = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\" + $html;
  if( existfile( $html ) ) {
   openbyshell $html;
   endmacro;
  }
 }

    #browsemode = browsemode;
    if( #browsemode ) {
        browsemodeswitch;
    }
    gofiletop;
    beginsel;
    gofileend;
    copy;

    $dir = dllfuncstr("HomeDir") + "TempMail";
    #n = dllfunc("Bypass_CreateDirectory", $dir);
    if( #n == 0 ) {
        #error = dllfunc("Bypass_GetLastError");
        if( #error != 183 ) {       //ERROR_ALREADY_EXISTなら問題ない
            message "フォルダ作成失敗 " + $dir + "\nエラーコード=" + str(#er
ror);
            endmacro;
        }
    }
    $file = $dir + "\\temp.html";

    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", 0);
    gofiletop;
    beginsel;
    gofileend;
    paste;
    gofiletop;
    replaceallfast "&", "\x1B", casesense;
    replaceallfast "<", "&lt;", casesense;
    replaceallfast ">", "&gt;", casesense;
    replaceallfast "  ", "&nbsp; ", casesense;
    replaceallfast "\x1B", "&amp;", casesense;
    replaceallfast "\n", "<br>\n", regular, casesense;
    replaceallfast "\\<https?://[!#$%&*+,\\-./0-9:;=?@a-z^_|~]+", "<a href=\
"\\0\">\\0</a>", regular;
    saveas $file;
    if( result != yes ) {
        message "saveas失敗、" + $file;
        endmacro;
    }
    $x_html = $htmlFolderPath2 + "\\index.htm";
    #tempHandle = hidemaruhandle(0);
    setactivehidemaru #originHandle;
    closehidemaruforced #tempHandle;
    if( #browsemode ) {
        browsemodeswitch;
    }
    openbyshell $file;

[ ]
RE:04415 HTML に変換マクロNo.04416
tsuki さん 18/11/28 16:22
 
Tsukiです。

> HTMLメールの場合はHTMLメール用のindex.htmファイルをそのまま開くようにして、
>プレーンテキストを変換する場合は、URLをクリック可能に変換するようにしてみま
>した。

なかなか格好良くなり、何語でも翻訳可能で、十分ではないでしょうか。
有難うございました。

[ ]
RE:04416 HTML に変換マクロNo.04419
秀まるお2 さん 18/11/28 16:59
 
 ではこのマクロも含めて、ぼちぼちライブラリにアップロードしなおしさせていた
だきます。

[ ]