Ok ca fonctionne nickel.
Je récapitule le hack avant de tenter une réelle modification du module prenant en compte cette possibilité.
Pour avoir une site web multilingue (avec xlanguage) avec url distinctes pour chaque langue et ainsi être correctement référencé, il vous faut procéder comme suit:
Modifiez votre mainfile.php ainsi:
Ligne 40:
// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://www.example.com');
$http_host = getenv("HTTP_HOST");
define('XOOPS_URL', 'http://'.$http_host);
Modifiez le fichier /modules/xlanguage/inclule/function.php ainsi:
Ligne 109:
function xlanguage_detectLang()
{
global $available_languages,$_SERVER;
// if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
// $HTTP_ACCEPT_LANGUAGE = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
// }
// if (!empty($_SERVER['HTTP_USER_AGENT'])) {
// $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
// }
$lang = '';
$xoops_lang ='';
// 1. try to findout user's language by checking its HTTP_ACCEPT_LANGUAGE
// variable
// if (empty($lang) && !empty($HTTP_ACCEPT_LANGUAGE)) {
// $accepted = explode(',', $HTTP_ACCEPT_LANGUAGE);
// $acceptedCnt = count($accepted);
// reset($accepted);
// for ($i = 0; $i < $acceptedCnt; $i++) {
// $lang = xlanguage_lang_detect($accepted[$i], 1);
// if(strncasecmp($lang,'en',2)){
// break;
// }
// }
// }
// 2. try to findout user's language by checking its HTTP_USER_AGENT variable
// if (empty($lang) && !empty($HTTP_USER_AGENT)) {
// $lang = xlanguage_lang_detect($HTTP_USER_AGENT, 2);
// }
// 3. If we catch a valid language, configure it
// if (!empty($lang)) {
// $xoops_lang = $available_languages[$lang][1];
// }
//Hack by smart
$http_host = getenv("HTTP_HOST");
if ($http_host=='www.example.com'){ //your english url
$xoops_lang = 'english';
}
elseif ($http_host=='www.example.fr'){ //your french url
$xoops_lang = 'french';
}
else {
$xoops_lang = 'english';
}
return $xoops_lang;
}
Merci Dugris
J'espère que cette modification vous sera utile.