Поло Арт Обновлен 5 лет назад в категории CMS Общий функционал 7
Идентификатором языка является двухсимвольное обозначение языка. Например: en,de,ru. Идентификатор языка получается с помощью метода RS::Language::getCurrentLang. Метод возвращает текущий язык системы по следующему правилу:
Если это административная зона:
попытка использовать язык, установленный в cookie
попытка использовать язык браузера
возвращается базовый язык
Если это клиентская часть:
попытка использовать язык, установленный в cookie
попытка использовать язык текущего сайта
возвращается базовый язык
if (\RS\Router\Manager::obj()->isAdminZone()) {
//Если это административная панель
$sysLangs = self::getSystemLanguages();
if ($request->cookie(self::COOKIE_ADMIN_LANG, TYPE_STRING)) {
//Ищем установленный язык в cookie
$current_lang = $request->cookie(self::COOKIE_ADMIN_LANG, TYPE_STRING);
} else {
//Ищем предпочтительный язык у браузера
$accept_langs = explode(',', $request->server('Accept-Language'));
if ($request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING)) {
//Читаем параметр из cookie
$current_lang = $request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING);
} else {
$site = \Setup::$INSTALLED ? \RS\Site\Manager::getSite() : null;
$current_lang = ($site) ? $site->language : $request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING, \Setup::$DEFAULT_LANG);
}
Комментарии 7
Ответить 0
Ответить 0
Ответить 0
Ответить 0
Ответить 0
Ответить 0
Ответить 0
Написать сообщение