Jump to content

Configuración de dominio .es con dos idiomas


garciasanchezdani

Recommended Posts

Buenos días, tengo que hacer un cambio en un prestashop, con un dominio .es, el cual tiene dos idiomas, en concreto español y portugués.

De momento, el sitio carga DOMINIO.es/es por defecto, y cuando el usuario selecciona en el header el idioma portugués, es redirigido a DOMINIO.es/pt.

Lo que necesito modificar es que, en lugar de DOMINIO.es/es, sea simplemente DOMINIO.es ( el cliente comenta que es redundante, y le doy la razón... ).

No sé muy bien cómo atajar esta tarea...he pensado hacer una redirección en el .htaccess, pero quería ver si alguien puede ayudarme por aquí...

Muchas gracias por adelantado.

Link to comment
Share on other sites

Son dos cosas distintas, el dominio y el idioma de la web. La forma de quitar el idioma es teniendo uno sólamente porque sino no sabría distinguir el idioma que tiene que mostrar. No se si algún módulo de los que eliminan el id de los productos de las urls también incluye la eliminación del idioma, pero me suena que no. Espera a ver si alguien te puede recomendar algún módulo que halla usado.

Si sólo es por estética me parece que te puedes meter en un buen jaleo por algo que para el cliente es transparente. Otra opción es que compre el dominio .com y así no le sale redundante, aunque no lo es xq son cosas distintas.

  • Like 1
Link to comment
Share on other sites

Buenos días, finalmente lo he resuelto modificando dos archivos del core de Prestashop ( en realidad he hecho overrides ).

 

1. classes/Link.php

 

En la función getLangLink, sustituimos:

return Language::getIsoById($id_lang).'/';

 por:

if ($id_lang == Configuration::get('PS_LANG_DEFAULT'))
return '';
else
return Language::getIsoById($id_lang).'/';

2. classes/Tools.php

 

En la función switchLanguage, sustituimos:

if (($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int)Language::getIdByIso($iso))) {
$_GET['id_lang'] = $id_lang;
}

por:

if ( !( ($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int)Language::getIdByIso($iso)) ) ){
$_GET['id_lang'] = Configuration::get('PS_LANG_DEFAULT');
}else{
$_GET['id_lang'] = $id_lang;
}

Eso es todo. Espero que os sirva! :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...