Locale name, currency name, and time zone name data is large and many formatting tasks don't use it. Currently we put all the data into the same resource bundle, making it impossible to avoid pulling it in even when it is not used (e.g. in decimal formatting).
The data should be split into separate resources and organized so that 1) the data is only loaded when needed, 2) the data can easily be omitted from a running system (e.g. packaged in separate jars), 3) the formatters fall back gracefully when the data is not present.
This task is just the data factoring part, actually changing code and APIs to use the refactored data is .
Model on JDK 'provider' framework, e.g. locale name provider, time zone name provider...