Personally I think message catalogs should be stored globally because it is likely that someone other than the developer might touch it.
What I did was request the entire JSON message catalog even before the DOM was ready and then, when both DOM ready fired and the request returned, start loading the application.