With Crowdin
There is a Nuxeo project on Crowdin. To join the project, create an account on Crowdin and follow this link: http://crowdin.net/project/nuxeo/invite.
If you are not familiar with Crowdin, take a look at their quick start guide.
Basically here are the steps to contribute:
- Join the Nuxeo translation group of your choice at crowdin.net/project/nuxeo. Pick a language you want to translate and start by clicking “translate”.
- In the Crowdin translation view you will find all the phrases to translate to the left. (To view only the ones that still need translation, use the “missing translations” filter.)
- Click on a phrase you want to translate. You see the original phrase in the top, and a box to fill out your translation beneath.
- Enter the translation and by clicking “commit translation” commit it for approval/rating.
By default, new users have the translator status. It means you can propose new translations, but can't validate them. To gain the proofreader status and have the validation permission, please ask for it on Nuxeo Answers or on the dev list.
Now here's a couple of tips taken from the Flattr translation guide.
- Some phrases have placeholders in them (like %s). These are placeholders for values that are added later. E.g. a name: “Hello, %s”, could be “Hello, Peter” on the website. They must remain in the translation as well, although placement may vary.
- If the context for the phrase is unclear, you can request the context from the Nuxeo team. These comments are also visible for anyone else that translates or approves translations.
Before every release, the translations are exported from Crowdin to the nuxeo-platform-lang-ext addon by Nuxeo.
Without Crowdin
Update or Create Localized Messages
You will find French and English language resources files in nuxeo-platform-lang/src/main/resources/nuxeo.war/WEB-INF/classes
living in https://github.com/nuxeo/nuxeo-features GitHub repository.
Other language translations live in https://github.com/nuxeo/nuxeo-platform-lang-ext
To edit a language file, we recommend using either:
- a standalone resource editor: http://resourcebundleeditor.dev.java.net/
- an Eclipse plugin: http://sourceforge.net/projects/eclipse-rbe
Properties files should only contains ASCII characters. Use the code point directly for non ASCII char. For instance the char 'é' should be '\u00e9'. Take a look at this table for the details.
You should create your translations from messages_en.properties
or messages_fr.properties
since only those are maintained by Nuxeo developers. Make sure your new file uses a four letter code. Two letter code are only used as fallback for dialects ad will be handled directly by Nuxeo. The switch to a four letter code has been initiated since we started using Crowdin to manage community translation.
Once you have added your new properties file, you need to modify the deployment-fragment.xml
file adding a new entry with your locale:
<extension target="faces-config#APPLICATION_LOCALE">
<locale-config>
<default-locale>en</default-locale>
<supported-locale>en_GB</supported-locale>
<supported-locale>en_US</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>fr_FR</supported-locale>
<supported-locale>ar_SA</supported-locale> <!-- Arabic - Saudi Arabia -->
<supported-locale>ca_ES</supported-locale> <!-- Catalan - Spain -->
<supported-locale>cs_CZ</supported-locale> <!-- Czech - Czech Republic -->
<supported-locale>zh_CN</supported-locale> <!-- Chinese (Simplified) - China -->
<supported-locale>de</supported-locale> <!-- German - Germany -->
<supported-locale>de_DE</supported-locale> <!-- German - Germany -->
<supported-locale>el_GR</supported-locale> <!-- Greek - Greece -->
<supported-locale>es</supported-locale> <!-- Spanish - Spain -->
<supported-locale>es_ES</supported-locale> <!-- Spanish - Spain -->
<supported-locale>eu_ES</supported-locale> <!-- Basque -->
<supported-locale>fr_CA</supported-locale> <!-- French - Canada -->
<supported-locale>gl_ES</supported-locale> <!-- Galician -->
<supported-locale>it_IT</supported-locale> <!-- Italian - Italy -->
<supported-locale>ja_JP</supported-locale> <!-- Japanese (Gregorian calendar) - Japan -->
<supported-locale>nl</supported-locale> <!-- Dutch - Netherlands -->
<supported-locale>nl_NL</supported-locale> <!-- Dutch - Netherlands -->
<supported-locale>pl</supported-locale> <!-- Polish - Poland -->
<supported-locale>pl_PL</supported-locale> <!-- Polish - Poland -->
<supported-locale>pt</supported-locale> <!-- Portuguese - Portugal -->
<supported-locale>pt_PT</supported-locale> <!-- Portuguese - Portugal -->
<supported-locale>pt_BR</supported-locale> <!-- Portuguese - Brazil -->
<supported-locale>ru</supported-locale> <!-- Russian - Russia -->
<supported-locale>ru_RU</supported-locale> <!-- Russian - Russia -->
<supported-locale>sr_RS</supported-locale> <!-- Serbian(Cyrillic) - Serbia -->
<supported-locale>vi_VN</supported-locale> <!-- Vietnamese - Vietnam -->
</locale-config>
</extension>
For Nuxeo versions before 5.4.3, extension target is "faces-config#APPLICATION"
Build and Test
To test, build with Maven the modified nuxeo-platform-lang
or(and) nuxeo-platform-lang-ext
module(s) and copy it(them) into the bundles directory ($NUXEO_HOME/server/default/deploy/nuxeo.ear/bundles/
for JBoss or $NUXEO_HOME/nxserver/bundles/
for Tomcat).
Contribute
Please contribute your translation work back to Nuxeo so that other users can benefit from, and improve upon, your work.
Login Page
By default, language is defined following the OS or browser locale settings. However, the language used after login may be forced using the language selector.
If you contribute a new language to Nuxeo, we'll update the login page.
If you need to temporarily patch it for testing purpose, the login.jsp
page is located in nuxeo-platform-webapp/src/main/resources/web/nuxeo.war/
living in https://github.com/nuxeo/nuxeo-dm repository.
If you want to permanently overwrite the default login.jsp page with your own, the good practice is to create a plugin for Nuxeo rather than editing Nuxeo source code.