How do the translations works
In fact it is rather simple, each string that needed to be translated has been replaced by a logical key in the OpenRocket code and all those keys have been stored in a file with their corresponding value.
For each language there is a file which contains keys that have been translated and their translation.
Files are in the directory
l10n
for the base file in English the name is
messages.properties
For each other langage there is a file for example the French file is
messages_fr.properties
Find below a partial extract of the English one
! Common labels used in buttons of dialog windows
dlg.but.ok = OK
dlg.but.cancel = Cancel
dlg.but.close = Close
The ! at the beginning of a line is a comment
Let's take as an example the following line
dlg.but.ok = OK
The logical key is
dlg.but.ok
As for its value this is
OK
The same logical key will have a different value depending on the langage.
The file that contain the English langage is complete because this is the base langage. For other langages, if a logical key has not been translated it will take its value in English.
When it starts the application will detect the operating system default langage and if a file for that langage is available it will use it. Otherwise the English langage file will be used instead.
To translate the application in your langage you need to take a copy of the file messages.properties, and rename it to message_XX.properties
XX being the langage code, for example fr for the French langage
and then change all the logical keys valuess.
The French langage file is messages_fr.properties and the Spanish one is messages_es.properties
Translations tools
An Excel file has been created in order to work on the OpenRocket translations and to create with some macros the file that contain all the translation and used by the OpenRocket application.
Download here the example for the French translations or here for the Spanish translations