ну и normalized normalizer'ом для редиректа после parseUrl
У меня компонент прописанный в бутстрап, который вешает евент на EVENT_BEFORE_ACTION и из запроса берет язык, выставляет в Yii::$app->language. Если нет в запросе, то пытается из сессии для этого юзера взять или дефолтный ставит