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
in englishin japanese== THE EASIEST MULTILANGUAGE HACK for XOOPS ==


The easiest multilanguage hack I ever seen.

All you have to do is just copying a file and inserting a line into mainfile.php.

Block's cache and module's cache are valid.

Since this is just a patch to mainfile.php, don't mind about updating core files.

This hack might not harm the other hacks at all.

Even with ShortURLs, it is just an issue of order in mainfile.php


- edit easiestml.php in this archive as you like





- copy easiestml.php into XOOPS_ROOT_PATH/include/
- open mainfile.php with your editor and insert a line like this:

	// XOOPS Virtual Path (URL)
	// Virtual path to your main XOOPS directory WITHOUT trailing slash
	define('XOOPS_URL', ...);

	require XOOPS_ROOT_PATH.'/include/easiestml.php' ; // insert this

	// Database
	// Choose the database to be used
	define('XOOPS_DB_TYPE', 'mysql');

- edit the other entries in CONFIGURATIONS of easiestml.php
- That's all!

If you define EASIESTML_LANGS as 'en,fr', you can desscribe it like this:

[en]English part[/en]
[fr]French part[/fr]
Common part

Visitors select the language at first visiting, and the language selection is stored in his cookie.

Thus, you'd better insert in englishin japanese tag into your theme or custom block.

If you want to enable auto-language-judgement from information sent by browser, edit the definition of EASIESTML_ACCEPT_CHARSET_REGEXES/EASIESTML_ACCEPT_LANGUAGE_REGEXES in configurations area.

In 1.23, a constant 'EASIESTML_CHARSETS' is added into the CONFIGURATIONS. Edit it please.

If you want to divide <input> for each languages, you can use post merger.


and edit the templates like this:

<input type="text" name="subject" value="<{$value}>" />
English: <input type="text" name="subject[en]" value="<{$value|easiestml:"en"}>" />
Japanese: <input type="text" name="subject[ja]" value="<{$value|easiestml:"ja"}>" />


2008-10-01 1.31
- modified ACCEPT_LANGUAGE is estimated former than ACCEPT_CHARSET (thx nobu)

2008-06-20 1.30
- added post merger
- added manual language switcher for dividing values of <input>
- modified [mlimg ] outputs flags separated with spaces (thx jagi) 1.30a

2007-04-02 1.26
- added a configuration specifying the default language
- modified mlimg tag HTML-lint friendly

2006-09-07 1.25
- fixed the logic judging clients's language

2006-01-29 1.24
- modified regex pattern for escaping <input type="text" value="...">

2005-12-29 1.23
- supported FastestCache (added a constant EASIESTML_CHARSETS in CONFIGURATIONS)

2005-12-24 1.22
- added a feature judging client's language by $_SERVER['HTTP_ACCEPT_CHARSET'] or $_SERVER['HTTP_ACCEPT_LANGUAGE'] using perl regex (Edit the definition of EASIESTML_ACCEPT_CHARSET_REGEXES/EASIESTML_ACCEPT_LANGUAGE_REGEXES in configurations area)

2005-04-11 1.21
- fixed a typo in excluding directory (thx domifara)

2005-03-18 1.20
- fixed troubles caused by buffer overflows of "forward readings"

2005-03-18 1.11
- fixed the logic eliminating <br /> just after language tags

2005-03-03 1.10
- added debugging mode -all- for system admin
- modified to eliminate <br /> just after language tags
- added a tag for images selecting languages [ mlimg]

2005-03-02 1.00
- The first public release


Downloaded 23631 times  23631  File Size 5.14 KB  Supported Platforms tar.gz|zip|ore|php5|x22  Home Page
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:

The same page of the site in French but there is no error:

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
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


// 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

// list language - accept_language patterns (perl regex) separated with comma

// charset in Content-Type separated with comma (only for fastestcache)

Is it correct?
leco1  Posted on 2009/7/30 3:24 | Last modified

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:


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:
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

I'm trying use this hack in site 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:


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

// list the language images separated with comma

// list the language names separated with comma (these will be alt of <img>)
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.^^


mosluce wrotes:

I try to use this Hack, but it's not work.
^^^^^^^^^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

I try to use this Hack, but it's not work.
^^^^^^^^^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
Username or e-mail:


Remember Me

Lost Password?

Register now!