似乎messages.en
文件仅在重新编译/重新启动应用程序时重新加载。如何在Prod模式下重新加载而不重新启动。
我正在使用Play 2.3
答案 0 :(得分:3)
简短回答:绕过依赖注入的单例,并创建我们自己的MessagesApi
:
implicit val messagesApi = new DefaultMessagesApi(Environment.simple(), current.configuration, new DefaultLangs(current.configuration))
答案很长:
Play的MessagesApi
对象是一个单例,意味着我们始终使用相同的实例:
@Singleton
class DefaultMessagesApi @Inject() (environment: Environment, configuration: Configuration, langs: Langs) extends MessagesApi { ...
及其保存所有消息的messages
字段是不可变的。
val messages: Map[String, Map[String, String]] = loadAllMessages
我们无法修改它。
然而......我们可以创建自己的MessagesApi
并使用它。例如:
implicit val messagesApi = new DefaultMessagesApi(Environment.simple(), current.configuration, new DefaultLangs(current.configuration))