Translation assistant
Presentation
The translation assistant can be opened from the dialog boxes by hiting the F2 function key or directly from the menu tools
.
It makes it possible to create and change the translation lexicons of the application in .properties files.
The translation assistant handles french (_fr) and english (_en).
The concerned dialogs are :
- the Capsis dialogs,
- the dialogs of the modules
- the dialogs of the extensions.
The technical dialogs like the Java FileChooser are not concerned.
We can find .properties
translation files in :
- The capsis kernel ( eg
capsis/Labels_en.properties
and_fr
) - The capsis modules ( eg
pp3/Pp3Labels_en.properties
and_fr
) - The capsis extension (eg
capsis/extension/intervener/DHAThinner_en.properties
and_fr
)
How to use the assistant ?
The translation assistant is a 4 columns table.
- The first column contains the keys used in the Java source code of the dialog box.
- The two following columns show respectively the translations in french and in english of these keys, as they are known by the Capsis Translator (class Capsis.util.Translator).
- The last columns indicates the file where the key is specified.
Thus, for one dialog, we can find keys from different translation files. We consider that a key should appear in all the files for the different supported languages (here FR and EN).
For example, The lexicon alisier.AlsLabels matches the two files alisier/AlsLabels_fr.properties and alisier/AlsLabels_en.properties. These two file should contain the same tranlsation keys.
Once the changes are done, the Save button alters the concerned .properties files and reloads them in the Capsis Translator. The changes will be visible at the next dialog opening.
How the source file is chosen for a translation ?
The list of keys in the first column is made by reading the source code of the dialog box. This way, we are sure that the list in complete (technical note: looking for the keys used in “Translator.swap” occurrences). The translations in the two other columns are obtained by asking the Translator.
The keys which translation is just modified are written back in the lexicon where they were found (by asking the Translator).
If a translation is not found (in no .properties file), the matching table cell is let empty and the Translator can not give the source lexicon of the key. To find a lexicon for the keys without translations, we process in order this way:
- look for a direct reference to the lexicon in the source code (technical note: by searching the instruction “Translator.addBundle”),
- hypothesize that the dialog is part of a Capsis module and try to get the id card of the module by following the ad hoc naming conventions and if found, ask it the lexicon name (by idCard.getModelBundleBaseName ()),
- create a lexicon from the class name and in the same directory (for the extensions for example).
Note: this detection method makes it possible to translate the keys once the Java source code written without having to open the .properties files with an editor.
Duplicated keys
When saving modification, The translation Assistant will check if a key is declared several times in different .properties
file. If it is the case, it will ask to remove those duplicated entry. By answering yes
, all
the other found key will be deleted.
SVN user
When a lexicon is created, it must be added and commited in SVN. When a lexicon is changed, it must also be commited in SVN. Take care to commit only the lexicons of your own (e.g.: your module / extensions).