Pregunta

Estoy usando Joomla con el componente de traducción de Joomfish. Este sitio web tiene traducciones alemanas y chinas. Lo que estoy tratando de averiguar es cómo hacer que el dominio .de sea predeterminado a la traducción del idioma alemán (que se cargaría si se lo visite como dominio.com/de o dominio.com/cn).

¿Alguien sabe una manera de hacer esto con tal vez .htaccess (algún tipo de redirección)? O posiblemente PHP? ¿Quizás establezca algún tipo de variable de sesión basada en el dominio (php_url_host)?

En este momento tengo la configuración de Apache2 con el wwww.domain.com como el principal host virtual, y el .de y .cn como alias.

¿Fue útil?

Solución

¡Bienvenido a SO!

Proporcionado, su apache tiene mod_setenvif habilitado, agregue esto a su .htaccess expediente:

# 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

Entonces, en su script PHP puede consultar SITE_LANGUAGE:

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

Otros consejos

¡Gracias! Después de agregar el código htaccess, todo lo que tenía que hacer era editar /plugins/system/jfrouter.php alrededor de alrededor de 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;
    }
}

¿Qué pasa si tuvo un caso de selección en PHP basado en una solicitud GET?

Algo como domain.com/?lang=de junto con

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

en tu código. .... Sería donde carga su recurso de traductor o idioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top