【Twitter】いまなにしてる?が半角になる件について
じめじめは嫌い。
おはようございます。たすくです。
最近になって、日本でもユーザーが一気に増えてきたTwitter 。
シンプルな仕組みですが、フロント側もjQueryを駆使して
何気におもしろいことをやっています。
その中で、ちょっと気になった仕様が1つ。

テキストエリアに、フォーカスを合わせると、
いまなにしてる?の「?(全角)」が「?(半角)」になるんです。
なんで?
他にも気になっている人はいるみたいですね。
この人 とか。
で、気になるのでソースを読んでみました。
要するに、こういうことでした。
元々のHTMLでは全角、
<div class="bar">HTMLより引用
<h3><label for="status" class="doing">いまなにしてる?</label></h3>
<span id="chars_left_notice" class="numeric">
(以下略)
外部JavaScriptで用意された日本語版メッセージでは半角になっています。
twttr.i18n = {外部JavaScript ja.jsより引用
"Direct message:" : "ダイレクトメッセージ:",
"Direct message %{person}:" : "%{person}にダイレクトメッセージ:",
"send" : "送信",
"Reply to %{screen_name}:" : "%{screen_name}に返事する",
"reply" : "返信",
"What are you doing?" : "いまなにしてる?",
(以下略)
で、テキストエリアにフォーカスが移ると、メッセージが外部jsの方に変わる。
だから半角になってしまう。
いや、ちょっとまてよ、と。
なんでフォーカスするだけで外部jsの表記にしたいんだ、と。
その疑問を解くヒントは、おそらくこの仕様にあります。
Dとスペースを入力すると、
"いまなにしてる?"が"ダイレクトメッセージ:"に変わる。

こちらは難読化されているので、解析しにくいのですが、この辺の記述だと思います。
G.val("@"+D+" "+G.val().replace(RegExp("@"+D+" ?","i"),"")).trigger("update");外部JavaScript twitter.jsより引用
フォーカスが当たってる時に、そのテキストエリアに"D "と入ってたら文言を変えなきゃいけないので、
逆に、違う文字列が入っていたら、あらかじめ外部jsに用意しておいた「いまなにしてる?」にしなきゃいけない。
だから、?が?になってしまったんですねー。
外国人にとっては、半角だろうが全角だろうが変わんないんだろうけど、
普段から両方使い分けている日本語ユーザーは違和感を感じる。
こーいう細かい仕様って、気になりますねー。ええ。