internationalization - Language selector in Play 2.4 & Scala 2.11.6 -


i'm trying implement simple page language selector , localized message:


|...en...|▼|

a message in english


ideally when user changes language page should reload updated message , different selected language


|....fr....|▼|

un message en français


but can't work: page stays same , thing changes play_lang cookie.

controller

package controllers  import javax.inject.inject import play.api.mvc._ import play.api.i18n._ import play.api.data._ import play.api.data.forms._  class test @inject() (val messagesapi: messagesapi) extends controller i18nsupport {   def index = action { implicit request =>     ok(views.html.test())   }   def changelanguage() = action { implicit request =>     val referrer = request.headers.get(referer).getorelse("/")     val form = form("language" -> nonemptytext)     form.bindfromrequest.fold(       errors => badrequest(referrer),       language => redirect(referrer).withlang(lang(language))     )   } } 

template

@()(implicit messages: messages, lang: lang) @helper.form(action = routes.test.changelanguage()) {     <select name="language" style="width: auto;"> onchange="this.form.submit()">         @play.api.i18n.lang.availables(play.api.play.current).map { l =>             <option value="@l.code" @(if(lang.code.startswith(l.code)) "selected")>@l.code</option>         }     </select>     <h1>@messages("test.message")</h1> } 

any appreciated.

request in action should implicit.

def index = action { implicit request => 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -