【Twitter】いまなにしてる?が半角になる件について | 【task-bar】 渋谷で働くひよっこクリエイターのブログ

【Twitter】いまなにしてる?が半角になる件について

じめじめは嫌い。


おはようございます。たすくです。



最近になって、日本でもユーザーが一気に増えてきたTwitter


シンプルな仕組みですが、フロント側もjQueryを駆使して


何気におもしろいことをやっています。




その中で、ちょっと気になった仕様が1つ。


【task-bar】 渋谷で働くひよっこクリエイターのブログ



テキストエリアに、フォーカスを合わせると、


いまなにしてる?の「?(全角)」が「?(半角)」になるんです。



なんで?





他にも気になっている人はいるみたいですね。


この人 とか。





で、気になるのでソースを読んでみました。


要するに、こういうことでした。



元々のHTMLでは全角、
<div class="bar">
<h3><label for="status" class="doing">いまなにしてる?</label></h3>
<span id="chars_left_notice" class="numeric">
(以下略)
HTMLより引用



外部JavaScriptで用意された日本語版メッセージでは半角になっています。

twttr.i18n = {
"Direct message:" : "ダイレクトメッセージ:",
"Direct message %{person}:" : "%{person}にダイレクトメッセージ:",
"send" : "送信",
"Reply to %{screen_name}:" : "%{screen_name}に返事する",
"reply" : "返信",
"What are you doing?" : "いまなにしてる?",
 (以下略)
外部JavaScript ja.jsより引用


で、テキストエリアにフォーカスが移ると、メッセージが外部jsの方に変わる。


だから半角になってしまう。




いや、ちょっとまてよ、と。


なんでフォーカスするだけで外部jsの表記にしたいんだ、と。


その疑問を解くヒントは、おそらくこの仕様にあります。


Dとスペースを入力すると、

"いまなにしてる?"が"ダイレクトメッセージ:"に変わる。


【task-bar】 渋谷で働くひよっこクリエイターのブログ



こちらは難読化されているので、解析しにくいのですが、この辺の記述だと思います。

G.val("@"+D+" "+G.val().replace(RegExp("@"+D+" ?","i"),"")).trigger("update");
外部JavaScript twitter.jsより引用




フォーカスが当たってる時に、そのテキストエリアに"D "と入ってたら文言を変えなきゃいけないので、


逆に、違う文字列が入っていたら、あらかじめ外部jsに用意しておいた「いまなにしてる?」にしなきゃいけない。


だから、?が?になってしまったんですねー。




外国人にとっては、半角だろうが全角だろうが変わんないんだろうけど、

普段から両方使い分けている日本語ユーザーは違和感を感じる。

こーいう細かい仕様って、気になりますねー。ええ。