Всем привет. Как сделать английскую локализацию по умолчанию. Сейчас, если я в админке выставляю английский, то сайт английский. Но если я включаю чекбокс «Разрешить смену языка пользователями (подстановкой префикса в URL)», что бы заработал виджет смены языка, то сайт по умолчанию становится русским. Хотя в конфиге остаётся английским. Как то тут, что то не так).
Всем привет. Как сделать английскую локализацию по умолчанию. Сейчас, если я в админке выставляю английский, то сайт английский. Но если я включаю чекбокс «Разрешить смену языка пользователями (подстановкой префикса в URL)», что бы заработал виджет смены языка, то сайт по умолчанию становится русским. Хотя в конфиге остаётся английским. Как то тут, что то не так).
Вроде Fuze задумал какую-то глобальную доработку языков в следующем обновлении, если успеет, как он написал ранее. Может там будет уже эта возможность:)
Понятно.Спасибо.Думал может что то не так включаю)
Не знаю, как там устроено технически, не смотрел. Но судя по описанию ситуации, предполагаю, логика в том, что теперь после включения смены языков, для того, чтобы английский был по умолчанию у пользователя, нужно изменить настройки языка в браузере или на устройстве)
Да там без бутылки не разобрать. Например в файле виджета есть такая переменная, которая потом передаётся в шаблон.
$current_lang = cmsCore::getLanguageName();
Метод getLanguageName()
public static function getLanguageName() { return self::$language; }
Но он всегда возвращает 'ru', даже если поменять на
public static function getLanguageName() { $config = cmsConfig::getInstance(); return $config->language; }
Хотя в конфиге 'en').
Lora, ради интереса, чтобы проверить свою догадку, приведённую выше, скачал систему. Действительно есть пара моментов когда язык по умолчанию может зависеть от языка, который сообщает сайту браузер HTTP_ACCEPT_LANGUAGE и переопределять конфиг.
instantcms_20211012_v2.14.3\bootstrap.php
// Язык браузера if($user_lang !== $config->getConfig('language') && $config->set('language', $user_lang); } }
может посмотреть в этом направлении?
Блин, совсем не подумал про этот файл. Ок, сейчас гляну.
Ну всё, молодец Нил™, догадался. Это от самый код). Закоментил и всё стало как надо.
Теперь понятно почему возвращало всегда 'ru'
Насколько понимаю по датам сообщениям, данный топик обсуждался до выпуска ветки 2.15, то есть для версий 2.14.3 и ранее.
А у меня для сайта на версии 2.15.1 — абсолютно противоположная проблема:
1. Я настраиваю языковую локализацию по умолчанию (в моём случае она не русская и не английская).
2. Затем включаю опцию " Разрешить смену языка пользователями (подстановкой префикса в URL)", чтобы русский и английский язык были доступны на сайте в качестве языков международного общения.
3. И у меня наоборот — языком по умолчанию становится английский, а не тот, который мне нужен.
— — — — -
Вот поднятый мной топик:
instantcms.ru/forum/multijazychnyi-sait-s-jazykom-po-umolchaniyu-ne-angliiskim.html
Решение пока ищу. Разбор рекомендаций в данном топике точно будут полезны. Но если знаете конкретный ответ по моему запросу — также буду очень признателен за подсказки.