2005.02.23
MTのエントリーの編集画面・・・(Movabletype)
Movabletypeのエントリーの編集でエントリーの一覧を表示すると、タイトル表示が短くて分かり難いことがある。
全て日本語のタイトルであれば、ほどほどだが「Movabletypeの改良」、「Movabletypeの軽量化」などと入れると、どちらも”Movabletype”までで切れて、どちらがどちらかよく分からない。
調べると、lib/MT/App/CMS.pmで表示文字長を決めているが、文字コードをmt.cfgで”ja”としていると長さは11文字で日本語の2バイト文字もアルファベットなどの1バイト文字も一字は”1″と数えている。
“Movabletype”はそれだけで11文字だから、”Movabletype”だけで切れるのも当然だ。
“ja”でなければ22文字表示となっているが、英文混じりのタイトルを表示すると如何にも短すぎる。
perlの通常の文字列関数は1バイト文字長を1とすると、2バイト文字は2と数えるが、日本語の文字も1字は1と数える関数を作り気を利かせた積りであろうが、かえって不都合だ。
実際に表示される文字の幅の概ね2バイト文字は1バイト文字の2倍だから、標準関数で文字列の長さを指定した方が理にかなっていると思われる。
そこで、CMS.pmの2519行目の”ja”を”jja”として日本語使用の条件を成立しないようにし、2623行目の文字長を22から26とした。
下記に修正した部分を赤字で示す。
} else { if ($app->{cfg}->DefaultLanguage eq 'jja') { $row->{title_short} = MT::I18N::substr_text($row->{title_short}, if $row->{title_short} && MT::I18N::length_text($row->{title } else { $row->{title_short} = substr($row->{title_short}, 0, 26) . '...' if $row->{title_short} && $row->{title_short} =~ m(S{25,}); } }
コメント
コメントフィードを購読する
コメント投稿