Java – Accepted Practice for String Resource Management

desktop-developmentjavaprogramming practicesresources

In Android, final strings are stored in a strings.xml file, which makes it easy to update text, reuse strings and to translate an app to a different locale — because everything is in one place.

However, in all the examples that I have seen of desktop applications all the strings have been hardcoded into each class.

Is hardcoding strings into files standard practice for desktop applications? Or is there a better way to do this?

Best Answer

What you're referring to is called internationalization (often abbreviated as i18n), which in desktop Java is accomplished by creating properties files for each locale, then using resource bundles to get strings from those files as needed (see this tutorial). It's not universally used, because there is some setup involved, and it's shorter to type "greetings" compared to messages.getString("greetings"). Usually you only see it when people actually need to have their program translated into different languages.

You can hard code strings in Android too, if you want, but they emphasized using the xml from the start in all their documentation and tutorials, and set up the tools to make it easier.