Я хочу прочитать сообщения об ошибках из файла messages
, но не могу.Какую ошибку я делаю?
Код, из которого я хочу прочитать строку из файла messages
:
Future { Ok(Json.toJson(JsonResultError(messagesApi("error.incorrectBodyType")(langs.availables(0))))) }
Файл messages
error.incorrectBodyType=Incorrect body type. Body type must be JSON
MessagesApi («error.incorrectBodyType») должен возвращать Incorrect body type. Body type must be JSON
, но возвращает error.incorrectBodyType
.
Если я удаляю двойные кавычки в messagesApi(error.incorrectBodyType)
, тогда код не компилируется
Обновление
Я добавил пару отладочных отпечатков и заметил, что ключи, которые я использую в MessagesApi, не определены.Я не знаю почему, хотя, поскольку я создал их в messages
файле.
println("langs array"+langs.availables)
println("app.title"+messagesApi.isDefinedAt("app.title")(langs.availables(0)))
println("error"+messagesApi.isDefinedAt("error.incorrectBodyType")(langs.availables(0)))
печатает
langs arrayList(Lang(en_GB))
app.titlefalse
errorfalse
Обновление 2 Возможно, я нашел проблему, но не знаюзнаю, как решить это.По сути, я запускаю свой тестовый пример без экземпляра Application
.Я mocking
messagesApi, позвонив по номеру stubMessagesApi()
, определенному в Helpers.stubControllerComponents
. Если я запускаю тот же код, используя Application
, например, class UserControllerFunctionalSpec extends PlaySpec with OneAppPerSuiteWithComponents
, то определяются app.title
и error
.Кажется, без экземпляра Application
, MessagesApi
не использует файл messages
.