08:23:33)追加された行はこの色です。削除された行はこの色です。XOOPSの多言語対応Hackは幾つかあるが、GIJOEさんの[[お手軽多言語ハック:http://www.peak.ne.jp/xoops/modules/mydownloads/singlefile.php?cid=2&lid=50]]は、ほんとにお手軽で、Marcan版のHackのようにXOOPSのモジュールにまで修正を行わなくとも良いので、とても便利なHackです。そのままだとコンテンツだけが多言語の対象で、Marcan版のようにメインメニューやXOOPSのLanguageファイルの内容は反映され無いため、少々多言語対応としては物足りなさを感じる事もあります。そこで、Marcan版の一部を転用してLanguageファイル切替にもとりあえず対応できるようにしてみました。include/common.phpと入れ替えるだけでOKなはずです。部分が、きっちりとXOOPSのLanguageと対応するように定義されている必要があります。Hack適用後のものを修正しています。一部PukiWikiとの相性確保部分を修正し、&ref(common.php);を入れ替えました。小生が多用しているPukiWikiModでは、幾つかの点でEMLHとの共存で問題がある。PukiWikiModは、PukiWikiの「?ページ名」というパラメータに対応するために、$_GETパラメータでなく、$_SERVER['QUERY_STRING']を解釈する。EMLHのeasiestml_langパラメータが付加された時点で、このパラメータをページ名と誤解してしまうため、うまく動作しない。これについては上記common.phpのHackにて受け取ったeasiestml_langを$_SERVER['QUERY_STRING']から消し去る事でPukiWikiをだませるように対応済みである。PukiWikiModで静的URLモードを使用する場合に、.htaccessでのRewrite定義が、他のパラメータを受けわたすように出来ていないので、/modules/pukiwiki/123.html?easiestml_lang=xlang:jaなどというURLをうまく処理できない。これについては、.htaccessの定義を以下に変更する事によってうまくいきそうだ。削除して有効にしてください。PukiWikiModでは、コンテンツの内容をstrip_tagsしたものの部分文字列をdescriptionメタタグにセットしているが、この部分に[mlimg]や[xlang:ja]などがそのままわたされ、EMLH側で処理を行うようになってしまう。この場合、[mlimg]の処理では予期せぬHTMLタグが挿入されるし、[xlang:ja]・・・[/xlang:ja]の部分も、部分文字列を抽出されてタグが対応しない状態でdescriptionメタタグにセットされる場合もあり、予期せぬ動作をしてしまう。[mlimg]に関しては、同等の機能を持つインラインプラグイン&ref(mlimg.inc.php);を用意する事で回避できるが、タグの不整合に関しては、/modules/pukiwiki/pukiwiki.php内の修正が必要となる。PukiWikiModでは、ページをXOOPSブロックとして利用できるが、この部分ではサーバー側で別途対象ページを特別なパラメータ付きでHTTPリクエストを行い取得した内容をキャッシュファイルに格納して表示するようになっている。このページリクエスト時に、現在はサーバ側では表示言語を意識していないためデフォルトの言語しかブロックには表示できない。そこで、ブロック表示部分を修正して現在の表示言語によってサーバ側でのブロックページリクエスト時にも言語指定を行うようにして、さらに言語毎にキャッシュを持つようにした。上記のmlimgプラグインも、XOOPSブロック表示時にきちんと現在表示しているページのURLを再現できるために、ブロック表示時にプラグイン内の特別なcallbackを呼び出せるようなプラグイン拡張呼出機能を追加した。2.0.10へアップデートして、このハックが動作しなくなりました。2.0.10のcommon.phpは2.0.9.xとちょっと違うんですが、違いを全部直しても動作してません。私が直してみたファイルはこちらです。