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');
}
