В частности, мне нужно разрешить передачу локали в URL-адресе, а затем изменить локаль. Это должно быть глобальным поведением и должно произойти до того, как будет вызвано какое-либо действие, так что изменение локали вступит в силу с текущего запроса.В игровой среде 2.x, как добавить глобальное действие/фильтр?
GlobalSettings.onRequest()
еще не имеет Http.Context
, и насколько я знаю, он не имеет API для изменения языка на этом этапе.
У меня могло бы быть какое-то действие, которое меняет локаль, но я не знаю, как сделать ее глобальной, чтобы все запросы переходили к этому действию в первую очередь, и я не хочу комментировать каждый контроллер, поскольку его очень легко забыть.
Я использую play framework 2.1.2, любой указатель будет оценен.
спасибо за хорошее решение - переопределить onRequest. – user3054023
для полноты Я бы просто предложил этот простой «материал для изменения языка»: 'String langString = request.getQueryString (" lang "); if (langString! = null) {ctx.changeLang (langString);} '. Это позволяет вам добавить '? Lang = de' в ваш URL-адрес и переключить сеанс на немецкий. И еще, большое спасибо за это решение. Искали слишком долго для этого! – Giszmo