ある程度の日本語ページ一覧分類について †
- ページ: BugTrack2
- 投稿者: 名無しさん
- 優先順位: 低
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2007-04-21 (土) 13:09:05
- バージョン:
メッセージ †
関連:BugTrack/562
上のページに追記したほうが良かったかもしれませんが、バグということでとりあえず別ページに。
- (:config/PageReading/dict)の「JIS第一水準が読みの順になっていることを利用したルール」の中にある
/[九-郡]/,ク
/[卦-乎]/,ケ
/[乎-魂]/,コ
の部分で、ケの終わりとコの始まりが「乎」となっていて、かぶっている。
本来なら「乎」は、「コ」と判定してほしいので
/[九-郡]/,ク
/[卦-限]/,ケ
/[乎-魂]/,コ
とあるべきだと思います。
上のついでに、サンプル辞書の JISの並びによる部分は、UTF-8では動作しませんという注意を(:config/PageReading/dict)に追記してもらえるとうれしいです。
理由は、試しにUTF-8でこの機能を使ったときに、「ひらがな」で始まるページまで記号扱いされたから*1。誤動作です。
:config/PageReading に正常登録されていなかったり、'^([ァ-ヶ])' に当てはまらない時は、記号か日本語に分類されます。上では読みの収得に失敗したのでこうなっただけであって、ページ一覧の動作はこれがデフォルトみたいです。
無効にすればきちんと動きます(あ→ア、みたいに)。
UTF-8版として出すからには、パッケージ(のどこか)に、このことについて注意書きがあればと。
以上2点(1つは蛇足かもですが)、よろしくお願いします。
- 情報まとめありがとうございます :) UTF-8版では、この項目が無い方が良い様に見えますね。EUC-JP版のみのトリックであるという記述を追加して、かつUTF-8版ではこれを乗せないようになるのがいいのかな?-- henoheno
- 複数を管理する余裕がなければ、記述の追加のみでもかまわないと思います。記述があれば、各自で対処できるようになりますし。 --
- メッセージの一部修正(小さなことなので、スタンプ変更なし) --
- cvs:lib/func.php のpage_list() の次の部分。
if ($pagereading_enable) {
// WARNING: Japanese code hard-wired
if(mb_ereg('^([A-Za-z])', mb_convert_kana($page, 'a'), $matches)) {
$initial = & $matches[1];
} elseif (isset($readings[$page]) && mb_ereg('^([ァ-ヶ])', $readings[$page], $matches)) { // here
$initial = & $matches[1];
} elseif (mb_ereg('^[ -~]|[^ぁ-ん亜-熙]', $page)) { // and here
$initial = & $sentinel_symbol;
} else {
$initial = & $sentinel_another;
}
} else {
ココもEUC-JP のコードを基準にして書かれてますよね?「WARNING: Japanese code hard-wired」と注意書きしているぐらいですし。 --