Bug or feature? Only 4 locales pulled in from custom.messages files.

According to the wiki page Overriding OpenMRS Default Runtime Properties

The recommended way to customize the default runtime properties (specifically the messages*.properties files) is to define ‘custom.messages’ files in the runtime properties file. However, it appears that only 4 locales can be overridden in this manner: English, French, Spanish and German. This from the master branch of openmrs_core:

web/src/main/java/org/openmrs/web/Listener.java
...
private void copyCustomizationIntoWebapp(ServletContext servletContext, Properties props) {
...
custom.put("custom.messages", "/WEB-INF/custom_messages.properties");
custom.put("custom.messages_fr", "/WEB-INF/custom_messages_fr.properties");
custom.put("custom.messages_es", "/WEB-INF/custom_messages_es.properties");
custom.put("custom.messages_de", "/WEB-INF/custom_messages_de.properties");
...

Any other custom messages files for other locales appear to be ignored/never loaded. Is this a bug, or is there a different method recommended for customizing messages files for other locales? Thanks!

Your conclusion looks correct that the rest are ignored.

With this ticket, https://issues.openmrs.org/browse/TRUNK-4097 they were moved from the web to api layer hence rendering that code useless for platform 2.x and above.

Once upon a time, i used to see this: https://wiki.openmrs.org/display/docs/Database+Messages+Module

And this: https://wiki.openmrs.org/display/docs/Custom+Messages+Module

So, you’re saying for 2.x and above, we need to use a module to do this kind of message customization, is that right? Thanks!

Yes, the typical way to add messages is via a module.

(If you’re just completing missing translations, the way to address that is to contribute those to openmrs-core, or on transifex, and get them incorporated into the main codebase…)