/** * Change language in cookie while clicking on a flag * * @param null $cookie * @return string iso code */ public static function setCookieLanguage($cookie = null) { if (!$cookie) { $cookie = JeproshopContext::getContext()->cookie; } /* If language does not exist or is disabled, erase it */ if ($cookie->lang_id) { $lang = new JeproshopLanguageModelLanguage((int) $cookie->lang_id); if (!JeproshopTools::isLoadedObject($lang, 'lang_id') || !$lang->published || !$lang->isAssociatedToShop()) { $cookie->lang_id = null; } } /* Automatically detect language if not already defined, detect_language is set in Cookie::update **/ if ((!$cookie->lang_id || isset($cookie->detect_language)) && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $array = explode(',', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])); $string = $array[0]; if (JeproshopTools::isLanguageCode($string)) { $lang = JeproshopLanguageModelLanguage::getLanguageByIETFCode($string); if (JeproshopTools::isLoadedObject($lang, 'lang_id') && $lang->published && $lang->isAssociatedToShop()) { JeproshopContext::getContext()->language = $lang; $cookie->lang_id = (int) $lang->lang_id; } } } if (isset($cookie->detect_language)) { unset($cookie->detect_language); } /* If language file not present, you must use default language file **/ if (!$cookie->lang_id || !JeproshopTools::isUnsignedInt($cookie->lang_id)) { $cookie->lang_id = (int) JeproshopSettingModelSetting::getValue('default_lang'); } $iso = JeproshopLanguageModelLanguage::getIsoById((int) $cookie->lang_id); //@include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php'); return $iso; }