2012-07-27 76 views
1

我有一個視圖以下代碼設置郎鹹平:遊戲框架:在helper.form在斯卡拉視圖

@(lang:Lang)... 
... 
<div> 
... 
@helper.form(action = routes.item.add) { 
    <p>@helper.inputText(myItem("name"))</p> 
    ... 
    } 
... 
</div> 

在我的國際文件,我有條目name。 例如:

  • messages.enname=Name
  • messages.frname=Nom

的觀點總是與法國標籤渲染這個inputText,我不知道如何爲另一個langage,例如改變使用我的視圖中定義的全局參數lang

我一直在尋找像一些解決方案:@helper.form(action = routes.item.add, lang)inputText的水平不變樣的代碼。

回答

1

我的解決辦法:

@(lang:Lang)... 

@import play.i18n._ 

@translate(text: String) = @{ 
Message.get(lang, text) 
} 
... 
<div> 
... 
@helper.form(action = routes.item.add) { 
    <p>@helper.inputText(myItem("name"), '_label -> translate("name"))</p> 
    ... 
    } 
... 
</div> 

在Play中,可以使用'_約定爲表單添加屬性。我通過應用自己的翻譯功能來覆蓋標籤。

+0

爲什麼你將lang作爲String? – 2012-07-30 06:11:57

+0

好問題:我認爲通過lang是沒有用的,因爲我已經將它放入cookie中。我稍後再看看並更新我的答案。感謝這個想法。但也許你有另一種選擇? – 2012-07-30 12:44:05

+0

你使用Scala還是Java?我直接把lang當作'Lang'。 – 2012-07-30 13:42:45

1

您是否使用ScalaJava?通過Scala,你可以設置一個隱含的語言。但是,對Java這並不容易,因爲在遊戲1.2.4:

Lang.set(...) or .change() 

這將在2.1解決:https://play.lighthouseapp.com/projects/82401/tickets/174-20-i18n-add-ability-to-define-implicit-lang-for-java-api

見谷歌論壇前面的討論:https://groups.google.com/forum/?fromgroups#!topic/play-framework/dE1SPBaTM6w

是使用具有階看看帖子:i18n error: controller and templates uses different implicit languages

+0

感謝您的好鏈接!我找到了從這些派生出來的解決方案我會發布這個解決方案的信息。 – 2012-07-28 11:42:36