Question

J'utilise Joomla avec le composant de traduction JoomFish. Ce site a des traductions en allemand et chinois. Ce que je suis en train de comprendre est comment obtenir le domaine .de par défaut à la traduction en langue allemande (qui se charge visité comme domain.com/de ou domain.com/cn).

Quelqu'un sait-il un moyen de le faire avec peut-être .htaccess (une sorte de redirection)? Ou peut-être PHP? Peut-être fixer une sorte de variable de session en fonction du domaine (PHP_URL_HOST)?

En ce moment j'ai apache2 configuration avec le wwww.domain.com comme l'hôte virtuel principal, et .de et .cn comme alias.

Était-ce utile?

La solution

Bienvenue sur SO!

fourni, votre Apache a mod_setenvif activé, ajoutez ceci à votre fichier .htaccess:

# Site accessed via "example.de" or "example.cn"
SetEnvIf Host "\.de$" SITE_LANGUAGE=de
SetEnvIf Host "\.cn$" SITE_LANGUAGE=zh

# URL dependent
SetEnvIf Request_URI "^/de/" SITE_LANGUAGE=de
SetEnvIf Request_URI "^/cn/" SITE_LANGUAGE=zh

Ensuite, dans votre script PHP, vous pouvez interroger SITE_LANGUAGE:

switch($_SERVER['SITE_LANGUAGE']) {
   case 'de':
      // german stuff
   case 'zh':
      // chinese stuff
}

Autres conseils

Merci! Après avoir ajouté le code htaccess, tout ce que je devais faire est modifier /plugins/system/jfrouter.php à environ environ 145:

if (isset($_SERVER['SITE_LANGUAGE'])) {
    switch($_SERVER['SITE_LANGUAGE']) {
        case 'de':
            $client_lang = 'de';
            $lang_known = true; 
            JRequest::setVar('lang', 'de' );
            break;
        case 'zh':
            $client_lang = 'zh';
            $lang_known = true;
            JRequest::setVar('lang', 'zh' );
            break;
    }
}

Que faire si vous avez eu un cas de sélection en php basé sur une requête get?

Quelque chose comme domain.com/?lang=de conjointement avec

$lang = "default";
if (isset($_GET['lang'])) {
    $lang = $_GET['lang'];
}   
if ($lang != "default") {
    if($lang == "de") {
        ....

dans votre code. .... serait le cas où vous chargez votre traducteur ou d'une ressource linguistique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top