Настраиваю мультиязычность на Yii2 Basic. Хочу в сессии хранить язык интерфейса, выбранный пользователем. Нужно перед запуском всех контроллеров обновить язык интерейса в `config['language']` значением из сессии.
В каком файле / контроллере / месте приложения мне обратиться к сессии, вынуть значение и прописать его в конфиг так, чтобы все компоненты приложения, включая attributeLabels в моделях, при обращении к config читали уже обновленное значение языка?
UPDATE 1:
Появилась идея использовать голый PHP прямо в точке входа index.php и пошарить в сессии до запуска самого приложения (код ниже). Не знаю, насколько правильно так делать с архитектурной и проектной точки зрения. Всё ещё нужен совет!
<?php
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
// Вот тут стучимся в сессию
$config = require __DIR__ . '/../config/web.php';
session_start();
$config['language'] = isset($_SESSION['language']) ? $_SESSION['language'] : 'ru-RU';
(new yii\web\Application($config))->run();
Надо создать компонент, который добавить в автозагрузку (чтобы он отрабатывал в момент инициализации приложения). В компоненте установить необходимую локализацию. Что-то типа такого:
public function init(){
parent::init();
$lang = Yii::$app->session->get('lang', 'en-EN');
Yii::$app->language = $lang;
}
В конфиге в секцию bootstrap
'bootstrap' => ['log', 'ComponentName'],
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть такая проблемаМне нужен код , который будет давать скидку на второй и последующие продукты (у меня есть только на второй продукт, напишу...
При смывании форматирования с листа MS Excel даты превратились в числаПримеры:
Есть несколько десятков страниц, хтмл -код которых генерируется phpПри этом все url сайта статичные, динамически не генерируются