и не должен быть мутабельным, мидлваре определяет уже по request локальку и передает ее дальще в request attribute, а приложение дальше выводит сообщения по локальке переданной в request
Так роутер и не будет знать о нем. Вставляем миддлварь перед роутером, в нем из пути удаляем язык и устанавливаем префикс с языком, что бы генерилисись ссылки с ним по умолчанияю.