I followed these instructions from the readme inside the module and it's working good. Maybe there is a part of the instructions you might have skipped?
User guide
----------
1 install "xlanguage" as a regular module
2 insert one line into XOOPS/include/common.php
 include_once XOOPS_ROOT_PATH.'/modules/xlanguage/api.php';  
  RIGHT BEFORE  
 // #################### Include site-wide lang file ################## 
        if ( file_exists(XOOPS_ROOT_PATH."/language/".$xoopsConfig['language']."/global.php") ) { 
            include_once XOOPS_ROOT_PATH."/language/".$xoopsConfig['language']."/global.php"; 
        } else { 
            include_once XOOPS_ROOT_PATH."/language/english/global.php"; 
        }  
 3 modify language/LocalLanguage/global.php, take "schinese" as example 
 //%%%%%        LANGUAGE SPECIFIC SETTINGS   %%%%% 
    //define('_CHARSET', 'GB2312'); 
    //define('_LANGCODE', 'zh-CN'); 
    define('_CHARSET', empty($xlanguage["charset"])?'GB2312':$xlanguage["charset"]); 
    define('_LANGCODE', empty($xlanguage["code"])?'zh-CN':$xlanguage["code"]); 
    $xlanguage['charset_base'] = "gb2312";  
 4 select basic langauges (from an available language list) and add extended languages (upon a selected basic language) from module admin page for instance, to make language switch between: English, Simplified Chinese (gb2312), Traditional Chinese (big5) and UTF-8 Chinese:
 base 1: name: english; description(optional): English; charset: iso-8859-1; code: en (or anyother like "xen", not a true language code, just the tag for indicating English content)
 base 2: name: schinese; description(optional): Simplified Chinese; charset: gb2312; code: zh (or anyother like "sc", not a true language code, just the tag for indicating Chinese content)
 extended lang of schinese 1: name: tchinese; description(optional): Traditional Chinese; charset: big5 code: zh-TW (the true language code of Traditional Chinese) base: schinese
 extended lang of schinese 2: name: utf8; description(optional): Simplified Chinese UTF-8; charset: utf-8 code: zh-CN (the true language code of Simplified Chinese) base: schinese
5 make the block "langauge selection" visible
6 add multilingual content with according tags sepcified for each base language (in step 4) to your modules, templates or themes[Skip this step if you do not use multi-language content display but only use charset encoding]: 
 wrap content of each language with respective tag specified in step 4:
 [langcode1]Content of the language1[/langcode1] [langcode2]Content of the language2[/langcode2] [langcode3]Content of the language3[/langcode3] ...
 if two or more languages have same content, you do not need add them one by one but use delimiter "|": 
 [langcode1|langcode2]Content shared by language1&2[/langcode1|langcode2] [langcode3]Content of the language3[/langcode3] ...
 a true example (suppose the lang_codes specified in step 4 are: English-en; French-fr; SimplifiedChiense-sc):
 [en]My XOOPS[/en][fr]Moi XOOPS[/fr][sc]ÎÒµÄXOOPS[/sc]
 OR:
 [english|french]This is my content in English and French[/english|french][schinese]ÖÐÎÄÄÚÈÝ[/schinese]