Prestashop如果有多语言,url里会带上/en/,/fr/的语言code。对应默认语言,可以隐藏。
复制/classes/Tools.php
和/classes/Link.php
到/override/classes/Tools.php
和/override/classes/Link.php
里。
在/override/classes/Link.php
里找到
return Language::getIsoById($idLang) . '/';
替换为:
if (Language::getIsoById($idLang) === 'es') { return ''; } else { return Language::getIsoById($idLang) . '/'; }
在/override/classes/Tools.php
里找到
if ( ($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int) Language::getIdByIso($iso)) ) { $_GET['id_lang'] = $id_lang; }
替换为:
if ( ($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int) Language::getIdByIso($iso)) ) { $_GET['id_lang'] = $id_lang; } else { $_GET['id_lang'] = (int) Configuration::get('PS_LANG_DEFAULT'); }