Translation How-To
This page will give you all the information you need to translate Freeplane into your own language.
Contents
Freeplane translation (translation of the Graphical User Interface -GUI-)
(These are all the strings displayed in Freeplane program, especially in menus and dialogs)
weblate online translation tool
Freeplane uses a new collaborative web based translation tool developed by Michal Čihař. Please note:
- the english is Freeplane default language and can not be translated in weblate but directly in Git
- to be able to translate, you need to know english because in weblate "template strings" to translate are english ones
- the translation is done for the "stable" branch, currently 1.2.x branch (translation of master branch can be done throught Git)
Register and submit your translations here.
How to test a new translation?
Testing a translation by running Freeplane is the best way to fully check the quality of a translation before it is released, because you can check all words and sentences "in context".
- From the weblate server download the translation file
- Rename the downloaded file to Resources_XX.properties, where XX is the language code (for instance: Resources_fr.properties).
You can now add this translation file in your current Freeplane installation for test:
- in your Freeplane installation directory, create subfolders resources\translations and put your translation file there
- if you are running Freeplane Portable version, subfolders to create are App\Freeplane\resources\translations.
Start Freeplane and check your translation while running Freeplane (if necessary define the language under Tools > Preferences).
Note: you can perform changes directly in the translation file (Freeplane restarted needed) and when everything is OK, then upload the new file on weblate.
Current translation state
There are 2 ways to know the list of supported languages and their translation progress status. Important:
- the following informations are relevant for Freeplane stable version but not for the current beta / preview / unstable / under development version of Freeplane.
First solution
See the Freeplane translation table. This table indicates the level of translation reached for each language. Note:
- this page is updated manually (see the date in bold at the end of the 1st line).
Second solution: weblate
It's also possible to follow translation state on the new web translation tool: see weblate translations status.
Frequently Asked Questions / Tips for translators
- While running Freeplane, why are some strings ending with "[translate me]"?
- As long as a key is missing in a translation, Freeplane automatically uses "<English text> [translate me]" as translation. Translators should translate these strings in priority and then remove "[translate me]".
- Why are strings ending with "[auto]"?
- Translation files can be submitted to an automatic translation tool, then strings of type "<English text> [translate me]" becomes strings of type "<local language text> [auto]". Translators should search and review these strings and then remove "[auto]".
- Why is there sometimes space before values?
- spaces before values are ignored, don't care.
- Why is there & character before some values (sometimes "in" the words)?
- the ampersand (&) is used to mark keys in the menu (i.e. open the menu, press the key/letter to activate the menu entry) - while translating, you need to make sure that each letter is only used once per menu.
- Some values begins by <html> with no </html> at the end?
- Java accepts unclosed tags - don't care.
- Some keys are not used / displayed in the software
- you should stay aligned with the English version to be on the safe side, but if keys are not used, it's a bug you can report in Mantis Bug Tracker.
- When testing Freeplane with my translation file, some menus are missing or some buttons have no label, why?
- If you leave any empty keys in the file, Freeplane assumes they are valid translations and displays nothing. There are differences between "empty key in the translation file" which displays nothing and "missing key in the translation file" which displays "<English text> [translate me]" (see above).
- Your translation is truncated
- If your translation is truncated when displayed, it may contains a ' (apostrophe) character (e.g. Freeplane displays "Copier l" instead of "Copier l'identifiant"), you may simply enter the ' character twice (ie "Copier l"identifiant") as translation where " is twice the character '. Most of the time, ' apostrophe characters should be handled as in the English version (for some strings which are used in format statements put them twice them twice, for other strings put them once).
Translation of third party tool used in Freeplane
JOrtho spell checker
For spell check Freeplane relies on JOrtho project. JOrtho translation file contains very few strings and only 5 are used in Freeplane but if you want to translate this file too, you can get it at its current location.
Translation of Tutorial or Documentation maps
These are the mind maps you get when you press Help → Tutorial (freeplaneTutorial.mm) and Help → Documentation (freeplane.mm).
Basic steps
- Create a working directory myTranslations.
- Copy the most recent English documentation from http://freeplane.sourceforge.net/mapsOnline. For this choose Help > Documentation Maps Online and select the map of your choice; or copy your last translation.
- make a subdirecory structure for images: myTranslations/doc; (if you use these, also myTranslations/mouse and myTranslations/key).
- Copy images you reuse or put new images you use in myTranslations.doc (possibly also myTranslations/mouse and myTranslations/key).
- Edit your translation. Drag your images from the defined subdirectories into your translation (assuming URI's are relative).
- Test the translation, in particular the images.
- Zip directory myTranslations.
- Select Help > report a bug, select new report of type translation and upload the zip file.
Note Check Help > Documentation Maps Online > indexMap > Images/doc for the images used in the present doc mind maps.
Old
- Download the latest version of freeplane.mm and FP_MenuReference.mm (or an already existing versions in your language) from the repository.
- The current link is https://github.com/freeplane/freeplane/tree/master/freeplane/resources/translations/ (but check if it's not an outdated link)
- Visit pages http://freeplane.sourceforge.net/doc/freeplane_all_languages.html and http://freeplane.sourceforge.net/doc/FP_MenuReference_all_languages.html to see how the documentation is automaticly translated by Google Translate.
- Using the latest development version of Freeplane, just create a map in your language (or complete the one already existing).
- As it's almost impossible to track differences between maps and ensure an exact one to one relationship between the languages, we don't expect this from translators.
- To track changes of freeplane.mm filters can be useful: Open the file in normal mindmap mode (not via F1) and apply a "Date filter" with the modification time set to the last time you have edited the translated map.
- Just make sure that the map is consistent with the current version of Freeplane, as complete as possible and helpful to users.
- Go to the tracker (requires Sourceforge log-in) and upload your map (the Project should be set to Translations).
Keys Mapping translation
TBD
Java Help translation
TBD (the current version doesn't allow for localization). Hint for later: http://jhelpdev.sourceforge.net/