Let's take an example: consider that you want to add support for French language in the admin console UI.
Sample workflow
Checkout fresh copy from SVN
Local build and installation
From inside the directory where you have checked out the sources:
$ mvn -PskipTests
Add support in the Java code
You need to change the following List in SyncopeSession (trunk / 1_0_X) from
public static final List<Locale> SUPPORTED_LOCALES = Arrays.asList(new Locale[] { Locale.ENGLISH, Locale.ITALIAN});
to
public static final List<Locale> SUPPORTED_LOCALES = Arrays.asList(new Locale[] { Locale.ENGLISH, Locale.ITALIAN, Locale.FRENCH});
If your language is not in the default Java set of locale constants, it is possible to add it as shown below for Brazilian Portuguese, for example:
public static final List<Locale> SUPPORTED_LOCALES = Arrays.asList(new Locale[] { Locale.ENGLISH, Locale.ITALIAN, Locale.forLanguageTag("pt-BR") });
Add actual translations
The admin console is a plain Apache Wicket web application, empowering Wicket's i18n support: see all details about this mechanism.
Basically, for each *_it.properties
file found under console/src/main/resources/org/apache/syncope/console/
- copy it in the same place by adding
_fr
to file name (for example, copySyncopeApplication.properties
intoSyncopeApplication_fr.properties
, or using another example, for Portuguese translations for each*_it.properties
file found underconsole/src/main/resources/org/apache/syncope/console/
- copy it in the same place by adding
_pt_BR
to file name (for example, copySyncopeApplication.properties
intoSyncopeApplication_pt_BR.properties
- edit the newly added files by translating all messages to French
Check the (partial) result
In order to check if you are doing well, from inside the directory where you have checked out the sources:
$ cd console $ mvn -Pdev
You should now be able to browse the admin console at http://localhost:9080/syncope-console/, choose 'French' from the dropdown on the login form and see if the provided translation is working.
Finalize
Once done with latest two items above, you are ready to either commit your work or file an issue on JIRA and attach a patch there.