PEAK XOOPS - The Easiest Multi-Language Hack (EMLH) 1.31 in englishin japanese






Main : XOOPS Hacks : 

Category: XOOPS Hacks ore     x22       php5
Download Now! Download Now! The Easiest Multi-Language Hack (EMLH) 1.31 Popular Version: 1.31
Submitted Date:  2008/10/1
Description:
in englishin japanese
== お手軽多言語ハック ==

●特長

気軽に利用できる多言語ハックです。

ファイル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]


利用者が言語を選択して、それをクッキー保存するようにしています。そのため、テーマ内などに、各言語を選択するためのリンクを用意してあげる必要があります。手動で作成しても良いのですが、in englishin japanese というタグを入れるだけで、自動的に言語選択リンクとなりますので、こちらのご利用をお勧めします。


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/


Downloaded 26793 times  26793  File Size 5.14 KB  Supported Platforms tar.gz|zip|ore|php5|x22  Home Page http://www.peak.ne.jp/
Modify | Report Broken File | Tell a Friend | Comments (13)


Comments list

malipalo  Posted on 2011/8/20 23:03
Hello everyone,

Excuse my English, I use a translator because I speak French.

First of all I must thank you for this wonderful module, I have long sought a reliable solution to make a multilingual site Xoops.

Site, a base, a domain: it's really better for the changes that two sites one French one English and so on.

I seem to see found a bug, or so I set something wrong, let me explain:

I use your module:
XC Legacy Version: XOOPS Cube Legacy 2.2

It works perfectly.

But this morning by making my translations [en ]..[/en], I noticed in the corner of the screen at the top left.

design [/en]

that has nothing to do there.

I translated the subject of a content with
[fr] conception [/fr] [en] design [/en]

page of the site in English with the error:
http://maison-parents.ch/modules/cours/index.php?content_id=4&easiestml_lang=en

The same page of the site in French but there is no error:
http://maison-parents.ch/modules/cours/index.php?content_id=4&easiestml_lang=fr

Is what I am faced with a bug or is it because I use XOOPS Cube Legacy 2.2 instead of Xoops?

I do not understand this error, I searched without finding the PHP code.

If you can help me on this problem please
I would be eternally grateful. For it is the site of one of my clients for whom I make the translation of these pages in English, and I hold on this problem, I can not find the solution.

Laurent Perret / Geneva - Switzerland
webmaster@incdata.net
phasar  Posted on 2011/8/10 19:07
Hello Joe

I would like to check my configuration to make sure it is correct.

I want to use English and Russian on my site and I'm not certain about the PERL expressions

Quote:

// list the language names separated with comma (these will be alt of <img>)
define('EASIESTML_LANGNAMES','in english,in russian');

// list language - accept_chaset patterns (perl regex) separated with comma
define('EASIESTML_ACCEPT_CHARSET_REGEXES',',/shift_jis/i');

// list language - accept_language patterns (perl regex) separated with comma
define('EASIESTML_ACCEPT_LANGUAGE_REGEXES','/^en/,/^ja/');

// charset in Content-Type separated with comma (only for fastestcache)
define('EASIESTML_CHARSETS','UTF8,UTF8');

Is it correct?
leco1  Posted on 2009/7/30 3:24 | Last modified
休暇では、サポートを提供する一方xoopers

そのためには、良い休暇
GIJOE  Posted on 2009/7/29 4:47
hi leco.
I'm in Holiday, now
leco1  Posted on 2009/7/28 11:23 | Last modified
Hi Gijoe

Welcome from your holiday

I intall cubeutils and now all is ok. This module can be seen running in:

http://sulinvest.com

and

http://mixmusicas.com


Again thanks for the tip

GIJOE  Posted on 2009/7/27 5:01
hi leco.

Perhaps, you've misunderstood the feature of EMLH.
EMLH never changes the system language.

If you make a contents like:
[en]English[/en]
[pt]Portuguese[/pt]
It will be changed by the url "easiestml=en".

Anyway, with you are using XCL, try CubeUtils module.
This module changes the system language also.
leco1  Posted on 2009/7/10 21:51
Hi

I'm trying use this hack in site http://mixmusicas.com with theme mysite3 powered by Nobu.
In this site, i use xoops cube legacy 2.2.0_alpha.

My settings in file easiestml.php is:

[code]
// CONFIGURATIONS BEGIN

// list the language tags separated with comma
//define('EASIESTML_LANGS','xlang:en,xlang:ja'); // This is a sample of long pattern against tag misunderstanding define('EASIESTML_LANGS','en,pt'); // [en]english[/en] [ja]japananese[/ja] common

// list the language images separated with comma
define('EASIESTML_LANGIMAGES','images/en.gif,images/pt.gif');

// list the language names separated with comma (these will be alt of <img>)
define('EASIESTML_LANGNAMES','Em ingl
mosluce  Posted on 2009/2/4 9:29
I know how to make it working ^o^

in englishin japanese insert the language selsctor to the page.

And I can write english content or other language content
in [ xlang:en] or [ xlang:other] blocks.^^

Quote:

mosluce wrotes:
Hi GIJOE!

I try to use this Hack, but it's not work.

http://mosluce.cpbl.weedns.com/main/modules/wfdownloads/index.php
^^^^^^^^^This is my site ( wfdownloads module )^^^^^^^^^^

I am sure that this module has english language pack, but I click the english bottom, It's still not work.

Do you know anything wrong ?^^"
mosluce  Posted on 2009/2/4 1:23
Hi GIJOE!

I try to use this Hack, but it's not work.

http://mosluce.cpbl.weedns.com/main/modules/wfdownloads/index.php
^^^^^^^^^This is my site ( wfdownloads module )^^^^^^^^^^

I am sure that this module has english language pack, but I click the english bottom, It's still not work.

Do you know anything wrong ?^^"
GIJOE  Posted on 2009/1/24 10:18 | Last modified
hi plok.

I don't see what's wrong about you.
It is quite easy to install EMLH.

Just edit your mainfile.php

Of course, you have to edit the area of =CONFIGURATION= in easiestml.php for your purpose.

[ mlimg] is a tag for switching languages.
You can place the tag as you like, theme.html, any templates, or contents.

This site is one of the sample site for EMLH.
I uses language tags [ xlang:ja] and [ xlang:en]

(remove a space just after [)


Try here.
------------------
in englishin japanese
Japanese
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!