== お
手軽多言語ハック ==
●
特長気軽に
利用できる
多言語ハックです。
ファイル
1つをコピーして、mainfile.php に1
行追加。たったそれだけで、
動作します。
obフィルターを
利用して
最終出力時にいくつかの
変換処理を
行うだけなので、XOOPSのブロックキャッシュやモジュールキャッシュも
有効に
効きます。
また、mainfile.phpへのパッチなので、XOOPSコアのバージョンアップで
心配する
必要もありません。
他のHackとの
競合もないはずです。(
同じobフィルターを
利用するSimplified URLsでさえも、mainfile.phpに
記述する
順番だけの
問題のはずです。)
●
使い
方このアーカイブに
含まれる easiestml.php をXOOPSインストールディレクトリのinclude/ディレクトリにコピーして
下さい。
mainfile.phpを
開いて、XOOPS_URL
定義行の
直後に、
require XOOPS_ROOT_PATH.'/include/easiestml.php' ;
と
一行追加して
下さい。
たったこれだけで、
[ja]
日本語部分[/ja]
[en]
英語部分[/en]
共通部分という
記述が
可能になります。
このタグを
変更したい
時は、easiestml.php をエディタで
開いて、
最初の
数行をお
好きなように
編集してください。
初期設定では、
以下の
様になっています。
利用する
言語タグをカンマで
区切ることに
注意してください。([]は
不要です)
define('EASIESTML_LANGS','en,ja');
誤認識が
怖いようでしたら、
以下の
設定をお
勧めします。
define('EASIESTML_LANGS','xlang:en,xlang:ja');
この
場合、
以下のような
記述となります。
[xlang:ja]
日本語部分[/xlang:ja]
[xlang:en]
英語部分[/xlang:en]
利用者が
言語を
選択して、それをクッキー
保存するようにしています。そのため、テーマ
内などに、
各言語を
選択するためのリンクを
用意してあげる
必要があります。
手動で
作成しても
良いのですが、
というタグを
入れるだけで、
自動的に
言語選択リンクとなりますので、こちらのご
利用をお
勧めします。
1.22から、クッキーがない
場合の
利用言語は、ブラウザが
送ってきたHTTPリクエスト(Accept_LanguageまたはAccept_Charset)から
判断するようにしました。これらのパターンをいじりたい
場合は、EASIESTML_ACCEPT_LANGUAGE_REGEXES または EASIESTML_ACCEPT_CHARSET_REGEXES を
書き
換えてください。perlの
正規表現であること、その
正規表現を,(カンマ)で
区切っていること(つまり
正規表現内では,は
利用不可能)に
注意が
必要です。
1.23では、EASIESTML_CHARSETS という
定数が
増えました。この
定数についても、
利用言語ごとに
編集する
必要があります。
※
利用可能言語を
増やせば
増やした
分だけ、
出力時の
処理負荷が
大きくなります。
利用しない
言語タグは
定義しないで
下さい。
コンピュータ
入力に
慣れていない
人のために、
入力フォームを
分けたい
場合、POSTマージ
機能を
使うのが
良いでしょう。
まず、CONFIGURATIONエリアをこう
修正して、
define('EASIESTML_USEPOSTMERGER',0 1);
それから、
入力フォームのテンプレートをこんな
感じにいじります。
<input type="text" name="subject" value="<{$value}>" />
English: <input type="text" name="subject[en]" value="<{$value|easiestml:"en"}>" />
日本語: <input type="text" name="subject[ja]" value="<{$value|easiestml:"ja"}>" />
これによって、それぞれのフォームに
書かれたテキストが
言語タグでマージされます。
●
変更履歴2008-10-01 1.31
- ACCEPT_LANGUAGEがあればACCEPT_CHARSETに
優先するように
修正した (thx nobu)
2008-06-20 1.30
- POSTマージ
機能の
実装- グローバル
関数 easiestml() に2
番目の
引数を
追加して、テンプレートからマニュアルで
言語分割ができるようにした
- [mlimg ] の
出力にスペースが
含まれるようにしてみた (thx jagi) 1.30a
2007-04-02 1.26
- デフォルト
言語の
定義を
追加した
- mlimg tag を HTML-lint で
叱られないようにしてみた
2006-09-07 1.25
-
初期判定のロジックで
抜けがあったのを
修正した
2006-01-29 1.24
- テキストボックス
用のエスケープ
判定正規表現をよりシンプルに
改善した
2005-12-29 1.23
- FastestCache への
対応コード
追加 (
各言語ごとのContent-Typeにおけるcharset
追加)
2005-12-24 1.22
- HTTP_ACCEPT_CHARSET, HTTP_ACCEPT_LANGUAGE のパターンから、デフォルトの
言語選択を
行うロジックを
今さらながら
追加2005-04-11 1.21
-
排除ディレクトリ
指定の
部分にあったtypoを
修正 (thx domifara)
2005-03-18 1.20
-
否定先読みのバッファあふれと
思われる
現象に
対応 (ロジックを
大幅修正)
2005-03-18 1.11
-
言語タグ
直後の<br />を
消すロジックを
改善 (
開始タグ
後も
消すようにした)
2005-03-03 1.10
- デバッグ
用allモード
実装 (
管理者のみ)
-
言語タグ
直後の<br />も
一緒に
消すようにした
- イメージタグの
新設 [ mlimg]
2005-03-02 1.00
-
最初の
公開 by GIJOE
http://www.peak.ne.jp/xoops/