2003年11月10日 月曜日

MOVABLETYPE曜日問題

-- カテゴリー:PC関連
MOVABLETYPEを日本語で使っていて、日付に曜日を表示させると水曜日と木曜日が入れ替わってしまうという問題が発生しました。
日本語化を解説したページで質問してみましたが、返事が来る前に自分で見つけました。
以下は、そのページに自分で回答したものです。
簡単に言うと、文字そのものでなく「漢字コード」でコーディングされていたところが間違っていたためです。
'水'や'木'で検索しても出てこないので難儀しました。

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

曜日の件は解決しました。
%Aを全ファイル検索しても場所が見つからなかったのですが、ようやく見つかりました。やっぱり%Aが書いてないです。
日本語パッチが悪いのではありませんでした。もともとコーディングされていたようです。

以下、解決編

問題の箇所は、lib/MT/Util.pm 内にありました。
853行目から857行目は以下のようになってますが、855行目と856行目の 26408 と27700 を入れ替えれば直ります。

修正前

    'jp' => [
            [ '日曜日', '月曜日',
              '火曜日', '木曜日',
              '水曜日', '金曜日',
              '土曜日'],

修正後
    'jp' => [
            [ '日曜日', '月曜日',
              '火曜日', '水曜日',
              '木曜日', '金曜日',
              '土曜日'],
以上、2003年11月9日作成
追記 2003年11月9日

あと、書式に %a を指定したときに表示が「・」になってしまう問題もありました。 これは、%a のときは %A の最初の3文字を抜き出す仕様になっていたため、日本語の場合 &#26085・・・ の最初の3文字、つまり &#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 問題の修正は、日本語化ページで回答した後に行った変造なので、どこにも報告していません。
強引にしたので、ちょっとハズカスイ
関連リンク Posted by cankoro at 2003年11月10日 02:54 | TrackBack
Comments

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

Posted by: きゃんころ at 2003年12月08日 06:03

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

Posted by: きゃんころ at 2003年12月27日 20:10
Post a comment









Remember personal info?