Internationalisation is done at 3 different levels, Java, HTML/JSP and JavScript. All of these rely on the standard ResourceBundle to store the various languages.
The resource bundles are located under the step-core project, under src/main/resources/. They split out into various files:
The classes of interest are:
There are very few other instances where the Java code needs to localise messages. One example, is the Loader (which initialises all the indexes). This just accesses the ResourceBundle directly by name.
The following code fragments explain how this is used
TODO
In the JavaScript layer, the internationalised messages are exposed under the __s variable.
In other words, __s.my_property
accesses the my_property key from the InteractiveBundle. This is processed by the com.tyndalehouse.step.rest.controllers.InternationalJsonController
whose role is to produce a file containing the language keys used by the client code.