備忘録 - XOOPS Cube をインストールして多言語化してみる(2)
以前、XOOPS Cube をインストールして多言語化してみる、ということでブログを書いたのですが、これって書き換えで放置ですね。
・・・あぁ、そういえば、書いている途中で別のことやってたら、ハングアップして、再起動。結局続きを書き足すのが面倒になって放置になったのだった・・・。その時々ちゃんとやんないと、後が面倒になりますね。今回はちゃんとしましょう。というか、このサイトもとりあえず入れただけで、テーマだのたのモジュールだの、全然ちゃんとしてないなぁ・・・。
今回、XCL HD2からHD4にするにあたって、何したんだっけということで眺めてみたら、結局何したか書いてないので、ちょっと確認とおさらいしておきます。
先ずはおさらい、XOOPS HD2にはcubeUtilsモジュールが入っていて、これを使うことで簡単に、他言語かをすることができます。
私の場合、XOOPS HD2をインストーラする際に、最初に文字コードの選択が出てくるので、そこでUTF8を選択していますので、この状態で動くようにすることを前提にしています。もちろんMySQLも4.1以上がUTF8対応らしいのそれ以上ということになりますが、私の場合はOSX Server 10.5.Xにて試していますので、これはクリア、と。
で、先ずはcubeUtilsモジュールのヘルプにある内容が以下。
引用:aaa
引用:Multi Languageを使用される場合
標準では、日本語と英語の切替ができるような設定になっていますが、
これ以外の言語切替を行いたい場合には、/modules/cubeUtils/include/conf_ml.dist.php を
conf_ml.phpにコピーを行って、カストマイズを行って下さい。
但し、Hodajuku Distribution同梱のものでは、preloadが無効になっています。必要な場合には、
/preload/disabled ディレクトリー内のMultiLanguagePreLoad.class.phpを/preloadに移動して下さい。
引用:[ja]日本語[/ja][en]English[/en]の様に記述することによって、日英両対応のコンテンツが作成出来ます。
引用:[ja]mlimg[/ja]を文書に挿入すると、言語切り替え用国旗イメージを表示する事ができます。
この機能の使用のキモとしてはテーマやコンテンツ、メニューなどに[ja]日本語[/ja][en]English[/en]という用に仕込むことで日本語表示場合は、jaタグでくくられた部分が、英語表示の場合はenタグでくくられた部分を表示するというものです。なので、js、enに加えて、自分で使用したい言語の設定を加えることで、標準意外の言語も切り替え可能となります。
私の場合は日本語、英語に加えて、韓国語、中国語(簡体字)の表記をしたいということで、作業に入ります。
先ずは、HD2には入っていない/modules/cubeUtils/include/conf_ml.phpを作ります。
ヘルプにはconf_ml.dist.phpをコピーせよとなっていますが、HD2にはUTF8の場合のサンプルがconf_ml.ja_utf8_sample.php
として用意してあるので、これをコピーしてconf_ml.phpとします。
このファイルも日本語と英語の設定のみなので、内容を修正します。
これでconf_ml.phpのカストマイズはOK
続いて/preload/disabled ディレクトリー内のMultiLanguagePreLoad.class.phpを/preloadに移動。
これも問題なし。
書いているのはここまでですが、その他に
/language/内に使用する言語のUTF-8でのLanguageファイル群が必要になります。
これもHD2のディストリビューションの/extras/extra_languages/内にtw_utf-8、fr_utf8、ja_utf8、ko_utf8、pt_utf8、tw_big5が用意されています。
ここにある例えばja_utf8にhtml/modules、html/install、html/languageという感じで入っているものをそれぞれの階層を追って入れていけばいいわけです。
あとはhtml/modules/内に無いモジュールのlanguageファイルは・・・自分で用意しなくてはならない訳ですね。
これら一連の作業で影響のあるファイル類をまとめると以下。
ここからは各言語ごとに必要なもの。
language内のものはそのまま/language/に放り込む。
modules内のものはそれぞれのモジュール内に入れる、といくことになります。
・・・あぁ、そういえば、書いている途中で別のことやってたら、ハングアップして、再起動。結局続きを書き足すのが面倒になって放置になったのだった・・・。その時々ちゃんとやんないと、後が面倒になりますね。今回はちゃんとしましょう。というか、このサイトもとりあえず入れただけで、テーマだのたのモジュールだの、全然ちゃんとしてないなぁ・・・。
今回、XCL HD2からHD4にするにあたって、何したんだっけということで眺めてみたら、結局何したか書いてないので、ちょっと確認とおさらいしておきます。
先ずはおさらい、XOOPS HD2にはcubeUtilsモジュールが入っていて、これを使うことで簡単に、他言語かをすることができます。
私の場合、XOOPS HD2をインストーラする際に、最初に文字コードの選択が出てくるので、そこでUTF8を選択していますので、この状態で動くようにすることを前提にしています。もちろんMySQLも4.1以上がUTF8対応らしいのそれ以上ということになりますが、私の場合はOSX Server 10.5.Xにて試していますので、これはクリア、と。
で、先ずはcubeUtilsモジュールのヘルプにある内容が以下。
引用:aaa
引用:Multi Languageを使用される場合
標準では、日本語と英語の切替ができるような設定になっていますが、
これ以外の言語切替を行いたい場合には、/modules/cubeUtils/include/conf_ml.dist.php を
conf_ml.phpにコピーを行って、カストマイズを行って下さい。
但し、Hodajuku Distribution同梱のものでは、preloadが無効になっています。必要な場合には、
/preload/disabled ディレクトリー内のMultiLanguagePreLoad.class.phpを/preloadに移動して下さい。
引用:[ja]日本語[/ja][en]English[/en]の様に記述することによって、日英両対応のコンテンツが作成出来ます。
引用:[ja]mlimg[/ja]を文書に挿入すると、言語切り替え用国旗イメージを表示する事ができます。
この機能の使用のキモとしてはテーマやコンテンツ、メニューなどに[ja]日本語[/ja][en]English[/en]という用に仕込むことで日本語表示場合は、jaタグでくくられた部分が、英語表示の場合はenタグでくくられた部分を表示するというものです。なので、js、enに加えて、自分で使用したい言語の設定を加えることで、標準意外の言語も切り替え可能となります。
私の場合は日本語、英語に加えて、韓国語、中国語(簡体字)の表記をしたいということで、作業に入ります。
先ずは、HD2には入っていない/modules/cubeUtils/include/conf_ml.phpを作ります。
ヘルプにはconf_ml.dist.phpをコピーせよとなっていますが、HD2にはUTF8の場合のサンプルがconf_ml.ja_utf8_sample.php
として用意してあるので、これをコピーしてconf_ml.phpとします。
このファイルも日本語と英語の設定のみなので、内容を修正します。
// list the language tags separated with comma
- define('CUBE_UTILS_ML_LANGS','ja,en');
// [en]english[/en] [ja]japanese[/ja] common
+ define('CUBE_UTILS_ML_LANGS','ja,en,zh,ko');
// [en]english[/en] [ja]japanese[/ja] [zh]中国語[/zh] [ko]韓国語[/ko]
ここで中国語と韓国語のくくりタグ記号を指定します。ちなみに中国語をzhにしているのはISO 639-1の文字コードがzhであるからで、chでも問題ありません。(chaでも極端な話aaでもいいようです)// list the language images separated with comma
- define('CUBE_UTILS_ML_LANGIMAGES','modules/cubeUtils/images/japanese.gif,
modules/cubeUtils/images/english.gif');
+ define('CUBE_UTILS_ML_LANGIMAGES','modules/cubeUtils/images/mlicon/ja_utf8.gif,
modules/cubeUtils/images/mlicon/en_utf8.gif,
modules/cubeUtils/images/mlicon/zh_utf8.gif,
modules/cubeUtils/images/mlicon/ko_utf8.gif');
ここにそれぞれの言語用アイコン画像を指定します。// list the language names separated with comma
- define('CUBE_UTILS_ML_LANGNAMES','ja_utf8,english');
+ define('CUBE_UTILS_ML_LANGNAMES','ja_utf8,english,zh_utf8,ko_utf8');
言語名称を指定// list the language caption separated with comma
- define('CUBE_UTILS_ML_LANGDESCS','Japanese,English');
+ define('CUBE_UTILS_ML_LANGDESCS','Japanese,English,Chinese,Korean');
言語の見出し設定。これでconf_ml.phpのカストマイズはOK
続いて/preload/disabled ディレクトリー内のMultiLanguagePreLoad.class.phpを/preloadに移動。
これも問題なし。
書いているのはここまでですが、その他に
/language/内に使用する言語のUTF-8でのLanguageファイル群が必要になります。
これもHD2のディストリビューションの/extras/extra_languages/内にtw_utf-8、fr_utf8、ja_utf8、ko_utf8、pt_utf8、tw_big5が用意されています。
ここにある例えばja_utf8にhtml/modules、html/install、html/languageという感じで入っているものをそれぞれの階層を追って入れていけばいいわけです。
あとはhtml/modules/内に無いモジュールのlanguageファイルは・・・自分で用意しなくてはならない訳ですね。
これら一連の作業で影響のあるファイル類をまとめると以下。
/modules/cubeUtils/include/conf_ml.php
/preload/MultiLanguagePreLoad.class.php
ここまでは共通のもの。ここからは各言語ごとに必要なもの。
/language/XX_utf8/admin.php
/language/XX_utf8/calendar.php
/language/XX_utf8/comment.php
/language/XX_utf8/mail.php
/language/XX_utf8/mail_template
/language/XX_utf8/misc.php
/language/XX_utf8/notification.php
/language/XX_utf8/search.php
/language/XX_utf8/timezone.php
/language/XX_utf8/user.php
/language/XX_utf8/xoopsmailerlocal.php
/language/XX_utf8/mail_template/activated.tpl
/language/XX_utf8/mail_template/index.html
/language/XX_utf8/mail_template/adminactivate.tpl
/language/XX_utf8/mail_template/lostpass1.tpl
/language/XX_utf8/mail_template/comment_notify.tpl
/language/XX_utf8/mail_template/lostpass2.tpl
/language/XX_utf8/mail_template/commentsubmit_notify.tpl
/language/XX_utf8/mail_template/register.tpl
/language/XX_utf8/mail_template/default_notify.tpl
/language/XX_utf8/mail_template/tellfriend.tpl
/modules/legacy/language/XX_utf8/admin.php
/modules/legacy/language/XX_utf8/global.php
/modules/legacy/language/XX_utf8/modinfo.php
/modules/legacy/language/XX_utf8/blocks.php
/modules/legacy/language/XX_utf8/charset_mysql.php
/modules/legacy/language/XX_utf8/main.php
/modules/legacy/language/XX_utf8/help/block.html
/modules/legacy/language/XX_utf8/help/help.html
/modules/legacy/language/XX_utf8/help/index.html
/modules/legacy/language/XX_utf8/help/theme.html
/modules/legacy/language/XX_utf8/help/xoops2.html
/modules/legacyRender/language/XX_utf8/admin.php
/modules/legacyRender/language/XX_utf8/modinfo.php
/modules/legacyRender/language/XX_utf8/help/help.html
/modules/legacyRender/language/XX_utf8/help/index.html
/modules/pm/language/XX_utf8/main.php
/modules/pm/language/XX_utf8/modinfo.php
/modules/pm/language/XX_utf8/help/help.html
/modules/pm/language/XX_utf8/help/index.html
/modules/stdCache/language/XX_utf8/admin.php
/modules/stdCache/language/XX_utf8/modinfo.php
/modules/stdCache/language/XX_utf8/help/index.html
/modules/user/language/XX_utf8/admin.php
/modules/user/language/XX_utf8/admin.php
/modules/user/language/XX_utf8/blocks.php
/modules/user/language/XX_utf8/modinfo.php
/modules/user/language/XX_utf8/main.php
/modules/user/language/XX_utf8/help/index.html
/modules/user/language/XX_utf8/mail_template/activated.tpl
/modules/user/language/XX_utf8/mail_template/adminactivate.tpl
/modules/user/language/XX_utf8/mail_template/index.html
/modules/user/language/XX_utf8/mail_template/lostpass1.tpl
/modules/user/language/XX_utf8/mail_template/lostpass2.tpl
/modules/user/language/XX_utf8/mail_template/register.tpl
install内のものはどうせ日本語でインストールするのだしja_utf8はHD2には入っているので省略。language内のものはそのまま/language/に放り込む。
modules内のものはそれぞれのモジュール内に入れる、といくことになります。
