日本語で曜日を簡略表示させる

MTにあったら便利なのに、なかった機能。それが日本語で曜日を簡略表示(月、火、水、木…)させる機能です。でも調べていたら、omaさんのこんな情報を発見! 仕組みが分かってみれば、何だ簡単なことだったんですねえ。(^^;)

ごみのやま: 日本語の曜日の省略表示を可能に

ご本人が「飽きてきたんでそろそろ消去するかもです」と書かれているので、全文引用させていただきます。

2004/12/21追記:
3.121-jaで、日本語表示の場合に%aで「月、火、水、木、金、土、日」と正しく表示するように修正されました。

日本語の曜日の省略表示を可能に

MTで曜日を表示させるとき、
【MTEntryDate format=”%A”】で「月曜日」は出るが
【MTEntryDate format=”%a”】で「月」は出ない。
ヘルプでは「省略された曜日の名前を表示させる」と書いてるのに・・・
なぜかと思って調べてみると、良い解決方法を思いつきました。

lib/MT/Util.pmの中の112行目に下の赤文字部分を追加。
(↓こんな感じに並ぶように。)

$f{a} = substr $L->[0][$f{w}] || ”, 0, 3;
$f{c} = substr $L->[0][$f{w}] || ”, 0, 8;

これで、MTEntryDate format=”%c” と入力すると省略された曜日名が出てきます。
別に文字はcじゃ無くても良いんだけど。今回は%cにしてみました。

これは何をしてるのかというと、例えば、
%aだったら「Monday」の頭3文字取得 → 「Mon」に、ということをしてくれてるところ。

日本語になってしまうと、文字実体参照(character entity references)というのが邪魔をして、月曜日が「月曜日」という数字の羅列になってしまってるのです。
なので、%aだったら「月曜日(月曜日)」の頭3文字取得 → 「&#2」に。
というわけで表示されなかったみたいです。
それでうまく表示させるように頭から8文字取得させる命令(%c)を挿入させてみました。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください