Why Messages map for "en" language is showing as empty

I am trying to understand how MessagesApi works. I suppose for each language I want to support, I should create a separate messages.XXX file.

My application has two files messages and messages.en.

The entries in application.conf are

play.i18n {
  # The application languages
  langs = [ "en" ]

  # Whether the language cookie should be secure or not
  #langCookieSecure = true

  # Whether the HTTP only attribute of the cookie should be set to true
  #langCookieHttpOnly = true
}

In my controller, I am injecting messagesApi and langs and am printing these values.

def signupUser = silhouette.UserAwareAction.async {
    implicit request => {
      println(s"In controller messages are ${messagesApi.messages}")
      println(s"In controller langs are ${langs.availables}")
...
}

I see the following print

In controller messages are Map(en -> Map(), default -> Map(app.title -> Welcome to ,....)
In controller langs are List(Lang(en_GB))

I suppose the default key is picking values from the messages file. Why is the en Map empty? Shouldn't it pick values from messages.en file?