public static function set_persist_locale($locale, $key = null)
{
if (empty($key)) {
$key = self::is_frontend() ? self::config()->persist_id : self::config()->persist_id_cms;
}
// Skip persist if key is unset
if (empty($key)) {
return;
}
// Save locale
if ($locale) {
Session::set($key, $locale);
} else {
Session::clear($key);
}
// Prevent unnecessarily excessive cookie assigment
if (!headers_sent() && (!isset(self::$last_set_locale[$key]) || self::$last_set_locale[$key] !== $locale)) {
self::$last_set_locale[$key] = $locale;
Cookie::set($key, $locale, 90, null, null, false, false);
}
}