TextwellでGoogleIMEを使って漢字変換するアクション ReIME(修正版)

次の祝日まで75日もあるのかあ。遠いなあ。


TextwellでGoogleIMEを使って後から漢字変換 ReIME
しずこころなく、はなのちるらん。DraftPadから移植。急いでメモをするとき、iOSの弱点は漢字変換だと思うんです。「感じ変換」とか出て、キーっとなったりする。それなら先にひらがなでメモをしておいて...
後から漢字変換できるReIMEなんですけど、長い文章を変換しようとするとミスすることが分かりました。元の文字まで消えてしまう。GoogleIMEの仕様ですね。適当なところで句読点を打つと大丈夫なんですが。たぶん、文節の判定で躓いてしまうのだと思う。


Textwell 1.2.2
分類: 仕事効率化,ユーティリティ
価格: \300 (Sociomedia)

そんなわけで改訂版。平仮名で書かれた文を漢字に置き換えます。

<meta name=viewport content=initial-scale=1>
<title>ReIME</title>
<style>
  body{
    background:#eee;
  }
  div{
    font-size:large;
    word-wrap:break-word;
  }
  hr{
    border:1px #fafafa solid;
  }
</style>
<body id=wine>
<script>
text=T.current;
if(T.range.len && !(/\n/.test(text))){
  T.translucent(false);
  data=GoogleIME(text);
  e=new Array();
  g=new Array();
  g[0]="";
  for(j=0;j<data.length;j++){
    d=data[j][1];
    for(k=0;k<g.length;k++)e[k]=g[k];
    for(m=k=0;k<e.length && m<100;k++){
      for(i=0;i<d.length;i++) g[m++]=e[k]+d[i];
    }
  }
  s="<hr>";
  for(i=0;i<g.length;i++) s+="<div onClick=Paste("+i+")>"+g[i]+"</div><hr>\n";
  wine.innerHTML=s;
}else{
  str="";
  line=text.replace(/。/g,"。\t").replace(/、/g,"、\t").replace(/「/g,"「\t").replace(/」/g,"」\t").split("\t");
  for(i=0;i<line.length;i++){
    s=line[i];
    if(s && !(/[亜-熙]/.test(s))){
      d=GoogleIME(s);
      if(d.length>0){
        for(j=0;j<d.length;j++) str+=d[j][1][0];
      }else{
        str+=s;
      }
    }else{
      str+=s;
    }
  }
  s=str || text;
  T("replaceCurrent",{text:s});
}

function GoogleIME(x){
  q=new XMLHttpRequest();
  q.open("get","http://www.google.com/transliterate?langpair=ja-Hira|ja&text="+encodeURIComponent(x),false);
  q.send(null);
  return JSON.parse(q.responseText);
}

function Paste(i){
  T("replaceCurrent",{text:g[i]});
}
</script>
</body>

登録リンクはこちら→ http://tinyurl.com/kvr9zru


後変換は走り書きの必需品。「つかいかたはいぜんとおなじ」と書いてアクションを実行すると「使い方は以前と同じ」と変換されます。もし変換にミスした場合は、平仮名のまま残るようにしました。「、」で区切って再変換してみてください。