Google Language APIで、ファイル名を生成するというのはどうだろう?

ブログ、ひいてはCMSで、個別エントリにどんな名前を付けるか、という話。
個別の設定とかカスタマイズとかきちんと調べたわけではないけれど、以下のようなものがあったはずだ。

日本語をそのままURIエンコードして、ファイル名にする。

Voxがこうだったかしら。ある意味潔いのだけど、%の扱いに困る、というか、はてなブックマークとかに不具合が生じやすかったりするという諸刃の剣。むしろそれを利用してブクマされにくいページを作るために使える?

タイトルの中からfilenameに使えなさそうな文字を削除して、ファイル名のベースにする。

typepadとかその辺のシステムでこういうのを入れていたところがあったような気がする。ここの場合だと"filename"になるのか。同じような話題を書くblogだと名前の重複が起きやすい?

タイトルに日本語が含まれたら、それはfilename生成には使わない。

前の項の特殊ケースになるのかこういうルーチンを組み込んであるのかまでは調べていないけど、まあ英文字が見つからなければ適当な接頭辞と通し番号でファイル名を決めてしまう、という方法が存在するのは確かだ。
これ、ブログ的にはそれほど困らないけど、これをCMS的に使うと、ファイル名が通し番号って管理的に見づらいものがあるよね、という面は否めない。

書いている人に入力させちゃう。

究極の解決方法。知らんがな、ということで面倒くさい入力は人まかせ。オートマじゃなくてマニュアル方式。はてなはてな記法でタイトル書くときにこれが選択できる。
でも英語をよく知らない人だとEngrishになっちゃったりしてかえって恥ずかしかったり。恥を避けるために翻訳サイト、辞書サイトで検索したり。

どうせ検索するなら、その場で出来ればいいな。

で、この「翻訳サイトで検索」が最近Google Language APIAJAX的に解決出来るようになったらしいので、それやったらどうだろう?と思いついた、ので作ってみた。

それがこちらのサイト。ちょっと怪しい結果になることもあるけれど、普通に動く気がする。
こういうのをCMSのシステムに組み込んでディレクトリ作成に利用したり、ファイル作成に利用したら、いちおう英称が大丈夫なサイト名になったりしないかな?

こんなソース

id="title"には日本語のタイトルが、id="filename"にはファイル名が入る。一応inputタグを意識したつもり。

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
<!--
  google.load("language", "1");
  function translate() {
    var source = document.getElementById("title").value;

    google.language.translate(source, "ja", "en", function(result) {
      if (result.error) {
        alert("Error:" + result.message);
        return;
      }
      document.getElementById("filename").value
         = result.translation
                 .replace(/ +/g,"_")
                 .replace(/&[^;]+;/g,"")
                 .toLowerCase()
                 .replace(/[^-a-z0-9_]/g,"");
    });
  }
  // -->
</script>

ちなみに

ちなみに、これ、そこいらのサンプルをパクって、というか、この辺の公式サンプルとか、こちらのサンプルとほとんど同じなのだけど、これだけで出来上がっちゃうのは本当に楽。というか、誰か同じようなアイデアで同じようなものを実装しているような気がするんだけどなあ。

それと、インスパイア元。

追記

適当な文章をタイトル候補に入れている間に気が付いたが「コミケ」を「Zero no Tsukaima」と訳す*1Googleの翻訳精度だと役に立たないかもしれないな。

追記その2

はてなアイデアという不具合があって、個別記事ではソースが見えないらしいです。ソースは日付指定で見てください。(サンプルページにもコードは載せてあります。)

*1:d:id:unsphered:20080519:1211189228 にも指摘があった