MOVABLETYPE曜日問題

MOVABLETYPEを日本語で使っていて、日付に曜日を表示させると水曜日と木曜日が入れ替わってしまうという問題が発生しました。


日本語化を解説したページで質問してみましたが、返事が来る前に自分で見つけました。


以下は、そのページに自分で回答したものです。

簡単に言うと、文字そのものでなく「漢字コード」でコーディングされていたところが間違っていたためです。

‘水’や’木’で検索しても出てこないので難儀しました。



いままでたくさんのユーザーが使ってるはずなのに気がつかなかったのだろうか。それとも曜日表示をする人は少ないのかな。


—-



曜日の件は解決しました。

%Aを全ファイル検索しても場所が見つからなかったのですが、ようやく見つかりました。やっぱり%Aが書いてないです。

日本語パッチが悪いのではありませんでした。もともとコーディングされていたようです。



以下、解決編



問題の箇所は、lib/MT/Util.pm 内にありました。

853行目から857行目は以下のようになってますが、855行目と856行目の 26408 と27700 を入れ替えれば直ります。



修正前




‘jp’ => [
[ ‘&amp#26085;&amp#26332;&amp#26085;’, ‘&amp#26376;&amp#26332;&amp#26085;’,
‘&amp#28779;&amp#26332;&amp#26085;’, ‘&amp#26408;&amp#26332;&amp#26085;’,
‘&amp#27700;&amp#26332;&amp#26085;’, ‘&amp#37329;&amp#26332;&amp#26085;’,
‘&amp#22303;&amp#26332;&amp#26085;’],

修正後
‘jp’ => [
[ ‘&amp#26085;&amp#26332;&amp#26085;’, ‘&amp#26376;&amp#26332;&amp#26085;’,
‘&amp#28779;&amp#26332;&amp#26085;’, ‘&amp#27700;&amp#26332;&amp#26085;’,
‘&amp#26408;&amp#26332;&amp#26085;’, ‘&amp#37329;&amp#26332;&amp#26085;’,
‘&amp#22303;&amp#26332;&amp#26085;’],


以上、2003年11月9日作成


追記 2003年11月9日


あと、書式に %a を指定したときに表示が「・」になってしまう問題もありました。
これは、%a のときは %A の最初の3文字を抜き出す仕様になっていたため、日本語の場合
&amp#26085・・・ の最初の3文字、つまり &amp#2 が返されていたようです。

そこで、強引に次のように変更しました。


73行目 $f{a} = substr $L->[0][$f{w}] || ”, 0, 3;
追加行 if ($lang eq ‘jp’) {
追加行 $f{a} = substr $L->[0][$f{w}] || ”, 0, 7;
追加行 }
74行目 $f{A} = $L->[0][$f{w}];

%a 問題の修正は、日本語化ページで回答した後に行った変造なので、どこにも報告していません。

強引にしたので、ちょっとハズカスイ



関連リンク

8 Comments

  • Pingback: COZO

  • きゃんころ
    2003年12月8日(0) - 6:03 AM | Permalink

    こちらでは、プラグインで解決しています。
    祝日の名称を表示できるのがかっこいいですね。
    http://www.villagewood.net/blog/archives/000172.html

  • Pingback: Memento

  • きゃんころ
    2003年12月27日(0) - 8:10 PM | Permalink

    2.65にバージョンが上がりましたが、
    そちらでも修正はされていません。

  • Pingback: Sonosheet

  • Pingback: ClumsyKen

  • Pingback: ないしょの話は あのねのね-L2日記-

  • Pingback: HeavenWolf

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


    *