b2evolution 2.4.1 "Nevada" の日本語対応に関する改造の改訂版です。
私の改造の考慮不足により発生していたトラックバック受信関連のバグを修正しました。送られてきたトラックバックに文字セット指定が付いていない際に文字コード自動判定が行われない問題と、不要な警告メッセージが出る場合がある問題を修正したつもりです。
2008年4月9日追記: 三点、改造のミスを修正しました。(1)経由検索エンジンのキーワードを文字コード自動判定する部分が機能しないミスをしてしまっていたので修正しました。(2)トラックバック受信関連の改造で、不必要なロケールの切り替えを行ってしまっていた部分があり、実害はありませんが無駄な処理なので修正しました。(3)メール送信のメールヘッダ・エンコード時に変数未設定の警告が出ることがあったのを修正しました。
配布アーカイブファイルを差し替えましたので、すでにダウンロードした方は新しいものをダウンロードしなおしてください。
2008年4月10日追記: トラックバック受信関連をさらに修正しました。(1)送られてきたトラックバックのurlパラメータも文字コード変換するようにしました。(2)まだ変数未設定の警告が出ることがあったのを修正しました。(3)この改造版では文字セットをUTF-8に統一しているので問題は発生しないのですが、b2evoオリジナルのままロケールごとに文字セットが異なる設定になっていると、送られてきたトラックバックの文字セット指定と無関係に、param() の処理で勝手に文字コード変換が行われてしまう場合があるのを回避するようにしました(改造版ではまったく影響は無いので、単にオリジナルの内容に少しでも沿ったものにしたいという気休めみたいなものです)。
また、トラックバック送信関連で、charsetパラメータのエンコードに他のパラメータと同じ rawurlencode() を使うようにしました。
配布アーカイブファイルを変更しましたので、すでにダウンロードした方は新しいものをダウンロードしなおしてください。
以下、説明(ほぼ以前の使い回し)と、改造差し替えファイルのダウンロードリンクを記述します。
単に使ってみたいだけという方は、「前置き」以降の説明文は読まず、「はじめに」と「改造差し替えファイル」だけ読んで利用していただいて構いません。ただ、どこに変更を加えていて、どの機能は手付かずなのか知りたくなった時など、それ以外も参照してみてください。
(例えば、多くの方が興味があるのに、私の改造で手を付けていない部分の最たるものは、「メールによる記事投稿」機能の日本語文字化けです。修正のための動作検証に手間もかかりますし、たとえ文字化けを直しても、主に需要のある、添付ファイル付きメール投稿、いわゆる写メール投稿には元々b2evolutionが対応していませんから、あまり必要性は無いと思っています)
2008年4月8日追記: こちらの記事の改訂版「b2evolution 2.4.1 の日本語周りの改造」を掲載しましたので、今後はそちらをご覧ください。
「b2evolution 2.4.1 の日本語周りの改造案(テスト不十分)」で提示した改造差し替えファイルの内容説明です。
おそらく日本語メッセージファイルのv2.4.1対応の需要のほうが高いと思いますが、あれを作るのは時間がかかるので検討中です(今のところまったく手をつけていません)。自分でやった改造内容を忘れないうちに、備忘録を兼ねて説明を書いておくことを先にさせてもらいます。
2008年4月8日追記: こちらの記事の改訂版「b2evolution 2.4.1 の日本語周りの改造」を掲載しましたので、今後はそちらをご覧ください。
b2evolution 2.4.1 "Nevada" の日本語対応に関する改造をやってみました。
まだ動作テスト中でいろいろな検証が不十分ですが、一応動いているようですし、ちょっとこれ以上まとまった作業をする余裕がなさそうなので、公開してみます。
実用というよりは参考用程度にお考えください。
解説は無しなので、自力で変更内容を調査できる方、トラブルに自分で対処できる方だけどうぞ。以前の「b2evolution 1.8.6 の日本語周りの改造」なども参照するといいかもしれません。
2008年4月8日追記: 「b2evolution 2.4.1 の日本語周りの改造案の説明」を掲載しました。参考になるかどうかわかりませんが、よろしければご覧ください。
日本語メッセージファイルもありませんので、必要でしたら、以前公開した1.8.5用を使用してください。部分的にしか日本語にならず、英語のままの部分も多く残りますが、無いよりはマシかと思います。
b2evolution 1.8.7 "Tokyo" が1月22日に出ました。
1.8.7の日本語周りの改造については、「b2evolution 1.8.6 の日本語周りの改造」とまったく同じです。改造部分の差し替えファイルも、その記事で提示しているものがそのまま使えます。
b2evolution 1.8.7の1.8.6からの変更点は、先日発見されたXSS脆弱性の修正です。
(1.9.1ベータを修正した1.9.2 "Kyoto" も同時に出ています。こちらの日本語改造は、やるつもりはありますが、しばらく先になると思います)
脆弱性関連情報:
CVE-2007-0175 (National Vulnerability Database)
SA23656 (Secunia)
以前にトラックバックで、このサイトで掲載している日本語周りの改造について、公式のほうにマージできないのかという意見をいただきました。他にも同様の意見を持っておられる方がいらっしゃるかも知れませんので、そのことについて書いておきます。
結論から言うと、現状では無理と考えています。
このサイトで掲載している改造は、1.8系になってからは、問題を修正するのではなく、問題のある部分を設定変更で回避しているだけの部分があります。
「b2evolution 1.8.6 の日本語周りの改造」で言えば「内部文字セット」の項目がそれにあたり、内部の文字セットと出力の文字セットをすべてUTF-8固定になるように設定の変更を行っています。
b2evolution開発者は異なる文字セットの混在ができるようにしたいと考えているようですが、現状ではその処理に問題があり、文字化けを起こしてしまいます。(b2evo開発者陣の大半が欧文(ISO-8859-1)環境で使用しており、その場合は他の部分の処理のお陰で問題が表面化しにくいので、問題の把握ができにくいのではないかと思われます)
この問題を完全に修正するためには、大幅な変更が必要になると予想され、現時点では私のほうでは手を出しかねています。
それで内部文字セットと出力文字セットをすべてUTF-8にする変更を行っているわけですが、これは開発者の「異なる文字セットの混在」という意図に反しており、そういった改造が公式のほうに採用される可能性はほとんど無いと考えられます。
この問題を正確に伝えることができる英語コミュニケーション能力や、問題を完全に修正することのできるPHPプログラミング能力が私にあれば、すぐにでも実行したいところですが、なかなかうまくできず頭を抱えております。
とは言え、難しいのではないかと考えているのは、私の勝手な想像に過ぎません。やってみたら意外と簡単かもしれません。もし試みてみようと思った方がいらっしゃれば、私の言葉なんかに惑わされず、ぜひやってみてください。
こんなところで、ご意見への回答になりますでしょうか。