1 件の投稿を表示中 (合計 7 個)
  • 作成者
    投稿
  • #4251
    naya
    参加者

    選択範囲を、ひらがな⇔カタカナで相互変換する
    機能/プラグイン/マクロ等あったらご紹介ください。

    「えむえでぃた」を選択し、Ctrl+Pで
    「エムエディタ」になる、みたいなテンポだとベストです。

    #4255
    匿名
    ゲスト

    個人的には、標準コマンドで用意してほしいんですけど、利用者が日本人となると、日本語版だけ用意するってのも大変なんですかね。この機能のプラグインがないのは不思議ですね。正確に作るのはややこしいのでしょうかね。自分も使う機会ありそうなので、一応マクロで作ってみました。 即席なので、作りが荒いのはお許しを。

    //平とカナで対応がない文字もあるようなので、対応がある一般的な文字だけのひらカナ変換マクロです。
    //
    //カタカナを選ぶと、選択範囲中の全ての平仮名が全てのカタカナになります。
    //ひらがなを選ぶと、選択範囲中の全てのカタカナが全て平仮名になります。
    //カタカタ→平仮名 平仮名→カタカナ同時入れ替えとかは、自分で作ってください。
    //ポップアップメニューが面倒な場合は、はずしてマクロを分けてください。

    var hirakana = new ConvertHiraganaKatakana();
    var mm = new Array(
    { title: ‘カタカナ(&K)’, act: hirakana.Katakana },
    { title: ‘ひらがな(&H)’, act: hirakana.Hiragana }
    );

    var menu = CreatePopupMenu();
    mm.unshift({});
    if( !document.selection.IsEmpty ) {
    for( var i =1; i<mm.length; i++) { menu.Add( mm.title, i );}
    menu.Add( "", 0, eeMenuSeparator );
    }
    menu.Add( ScriptName+"(&C)", 0, eeMenuGrayed );
    var result = menu.Track();
    if(result == 0) Quit();
    document.selection.text = mm[result].act(document.selection.text);
    //editor.NewFile();
    //document.selection.text = hirakana.TableDisp().join("n");
    Quit();

    function ConvertHiraganaKatakana () {

    // 一般的なものだけに絞る
    // 参考ヘルプ http://jp.emeditor.com/modules/xoopsfaq/index.php?cat_id=4#q39
    //ひらがな [x{3041}-x{309e}]
    //全角カタカナ [x{309b}-x{309c}x{30a1}-x{30fe}]

    var table = CreateHiraKanaTable();

    this.Katakana = function (str) {
    return str.replace(
    /[u3041-u3094]/g,
    function (chr){ return table[ chr ] }
    );
    }

    this.Hiragana = function (str) {
    return str.replace(
    /[u30a1-u30e4]/g,
    function (chr){ return table[ chr ] }
    );
    }

    this.TableDisp = function () {
    var t = new Array();
    for( var key in table ) { t.push( key + table[key] );}
    return t;
    }

    function CreateHiraKanaTable() {
    var hira
    var table = {};
    // for( var i = 0x3041; i<0x309e; i++ ) {
    for( var i = 0x3041; i<0x3094; i++ ) {
    hira = String.fromCharCode( i );
    table[ hira ] = String.fromCharCode( i + 0x60);
    table[ table[ hira ] ] = hira;
    }
    return table;
    }
    }

    #4257
    naya
    参加者

    perler さん、すばらしいマクロをありがとうございます。
    プラグインでもなかったとは意外でした。

    ところで、
    「ウィンドウズ」をひらがなにコンバートしたら
    「うぃンどうず」になりますが、「ン」も「ん」になるように
    するには「x{3041}-x{309e}]」みたいなところを
    見直したらいいでしょうか?

    今もひらがなで殴り書きした会議の議事録を
    直している作業をしてましたので早速活躍しそうです。

    以上、まずは御礼申し上げます。

    #4258
    匿名
    ゲスト

    すいません、私も今気づいたところです。
    単純な連続性がない部分があるみたいで、そのひとつに「ん」当るみたいです。
    ちょっと今すぐ一個一個直す時間がないので、時間が取れたら見直します。

    一番確実なのは、コード範囲を指定するのではなく、一個一個手打ちで対応表を作ることです。その方が分かりやすいかも^^;
    50音なら、50×2 気合で^^;

    #4259
    匿名
    ゲスト

    TableDispメソッドで、表の中身書き出せるようにしてます。
    見たら表はちゃんと出来てるので、マッチングの問題でした。

    /[u30a1-u30e4]/g,
    function (chr){ return table[ chr ] }

    /[u30a1-u30f4]/g,

    取り急ぎまで。まだ他にもおかしいところありませんが、ん→ンはできるようになってると思います。

    #4280
    naya
    参加者

    nayaです。
    # 御礼したつもりが、勘違いだったようです、御礼遅くなってすみません。

    /[u30a1-u30e4]/g,  の部分を  /[u30a1-u30f4]/g,  に変更することで
    ん⇔ンの相互変換も快適にできるようになりました。
    perlerさん、ありがとうございました。

    #4281
    naya
    参加者

    nayaです。
    # 御礼したつもりが、勘違いだったようです、御礼遅くなってすみません。

    /[u30a1-u30e4]/g,  の部分を  /[u30a1-u30f4]/g,  に変更することで
    ん⇔ンの相互変換も快適にできるようになりました。
    perlerさん、ありがとうございました。

1 件の投稿を表示中 (合計 7 個)
  • このトピックに返信するにはログインしてください。