それは単に Set locale from accept language header を切り替えるだけではありませんか?
Set locale from accept language header