2016-04-05 11 views
3

Ich habe die Dokumentation in https://www.playframework.com/documentation/2.5.x/ScalaI18N gefolgt und Übersetzungen innerhalb der Controller funktioniert gut. Allerdings brauche ich Übersetzungen in Twirl Templates. Mit implicit messages und/oder mit Messages("test.testing") ich die folgende Fehlermeldung erhalten:play framework 2.5 scala i18n

could not find implicit value for parameter messages: play.api.i18n.Messages 

Mein Controller:

class HomeController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { 

    def updateLocale(lang: String) = Action { implicit request => 
    printf(request.headers.get("Accept-Language").getOrElse("niente")) 
    printf(Messages("test.testing")) 
    Ok(views.html.index(Messages("test.testing"))) 
    } 

Das macht mich auch Zweifel, wie kann ich die Sprache in der Anwendung ermöglichen Ändern ...

Was fehlt mir hier?

Dank

Antwort

3

ersetzen Messages mit injizierten messagesApi:

class HomeController @Inject()(val messagesApi: MessagesApi) 
        extends Controller with I18nSupport { 

     def updateLocale(lang: String): EssentialAction = Action { 
     implicit request => 
      printf(request.headers.get("Accept-Language").getOrElse("niente")) 
      printf(messagesApi("test.testing")) 
      Ok(views.html.index(messagesApi("test.testing"))) 
     } 
    } 
+0

Nach einiger Zeit wird mir klar, ich in der falschen Vorlage implizite Nachrichten wurde hinzugefügt. Ich habe auch meinen Controller von Nachrichten zu messagesApi geändert, wie Sie erwähnt haben. Ich habe diese Antwort akzeptiert. Vielen Dank –