
I'm not sure what the point of LocaleNames.java is. In a "normal" environment I would expect to see colors_en_us.properties colors_en.properties colors_jp.properties cololrs.properties In a lot of cases (in the U.S. anyway) colors.properties and colors_en.properties would be identical. But if the locale is set to something like es_MX, which doesn't exist in the list above, then colors.properties is going to be used. The other aspect to this is that property files can be chained. So colors_en_us.properties might only contain the keys for us specific phrases while colors_en.properties would contain definitions of all keys. The point is that in a "properly" configured system the key verifier should only fail if there is no key in the default file.