This page explains how to help translation Alfresco into a language that is currently unsupported. The list of languages supported for a specific version is in the documentation for that version (for instance, see Alfresco 4.2). To provide feedback on an official translation, please open an issue.
Tools and Process
The Alfresco community has standardized on a specific set of tools and a collaborative process that incorporates best practices and provides some consistency across the various translation teams.
These are the parts of a mature community translation project:
- Translation tool for collaboratively translating strings for new releases of Alfresco,
- Project site for maintenance and distribution,
- Add-ons directory entry for helping users to find the translation.
The following sections lay out how a language pack moves through these tools during its lifecycle. Most translation projects start off at CrowdIn and don't worry about a separate project site or add-ons directory entry. Once they need to maintain their old translations, or are ready to advertise the language pack to other Alfresco users, they establish those parts of the project.
To participate in a community translation, we ask that you join us in the Alfresco Translators Mailing List where we coordinate the translation process. We also ask that you monitor the Language Packs Forum to help users who have problems with a language pack.
Alfresco Community translations should be distributed under the Apache license to allow for maximum reuse and potential incorporation into the supported product without having to track down contribution agreements from all contributors.
The Alfresco community coalesced around using CrowdIn as a collaborative translation platform. CrowdIn is a web service to assist with community translations. It is free for use by open source projects.
For each new release of Alfresco Community Edition, the latest strings are uploaded to CrowdIn replacing the current version (see the discussion page for reasoning). CrowdIn maintains a translation memory that automatically translates strings that are identical between versions.
Even though CrowdIn offers a forum where translators can discuss the translation, we use the Alfresco Translators Mailing List for collaboration across all the languages. The Google Group infrastructure makes it easier to export the conversations, is more easily searchable, provides a mailing list interface, and will remain valid should we change translation tools. The translation effort for each individual language will determine whether to use the CrowdIn forum or a different mailing list for that specific language.
Process for Updating Strings
- Start a conversation about timing on the Alfresco Translators mailing list
- Export all translations for all languages, and add a link to the package in the project description
- This gives translators a chance to update their project source code repositories with the latest strings for a specific version of the product and tag that version for easy download.
- Upload all of the property files for Community and Enterprise Editions
- CrowdIn will automatically translate identical strings
- Collaboratively translate new strings
The uploaded strings on CrowdIn combines the strings in the latest versions of Enterprise and Community Editions. This provides the greatest coverage of translated strings because there are a few features that are only in Enterprise Edition, but Community Edition normally has the newest features.
Process for Exporting Translations
All of the Alfresco translations stored in CrowdIn can be downloaded with this URL:
Individual languages are available at a URL for each language:
for example pt_PT would be http://crowdin.net/download/project/alfresco/pt-PT.zip
Once the translated files are downloaded, they should be renamed to include the language suffix. Then they can be imported into the code repository at your project site.
One of our community members maintains a site with an export of all the strings in CrowdIn packages as JAR files (with the TinyMCE translation included) that can easily be added to Alfresco:
The packages are refreshed regularly.
The script that does the download and packaging is available here: Build_i18n.sh.txt.
Community developed language packs should host with a popular project hosting service such as GitHub, BitBucket, or Google Code. These services provide a source code repository for tracking changes to the translation, a download facility for packaged language packs, and an issue tracker for reporting problems with previous releases.
The specific details for packaging and installing a language pack is on the Language Packs page. In general:
- Rename the translated strings to include the locale suffix
- Check-in the changes to source control
- Package the translations as a JAR wrapped in an AMP
- Upload the package for distribution
Once the strings for a new version of Alfresco are uploaded into CrowdIn, translations for previous versions will need to be maintained through check-ins to source control. Changes that should carry forward to future translations should also be made against the latest version in CrowdIn.
Mature language packs should be listed at Alfresco Add-ons. This is where most users of Alfresco look for extensions such as language packs.
Working With CrowdIn
You will need to sign-up for an account at CrowdIn and request to join the translation group for the languages you are interested in. In might take us a day to approve your request.
All strings in CrowdIn are in one of the following three states:
- Not translated (red),
- Translated, but not validated (yellow),
- Validated (green).
A quick translation process is to:
- Translate a file,
- You can restrict the view to only strings that still need to be translated using the 'missing translations' filter.
- Download it as an individual file,
- Copy it over the English file in a scratch Alfresco installation,
- Check and see how it looks,
- Validate the translation or fix bugs.
Further testing can be done using the complete packages that are regularly built at http://translation.alfresco.com/.
- The 'English' language pack on Crowdin simply contains the original strings. Making them a 'translation' project makes it easy to export them.
More information is on the Language_Packs page. Please read the General Tips section.
Alfresco translations follow the following guidelines (thanks to the Flattr community for some of these ideas:
- Local languages translations are for users who don't understand English. Sometimes technical users are more comfortable using an English term, but this should be avoided unless the English term is generally accepted in all business settings.
- Don’t be overly formal. The tone of the translation should be professional, yet friendly.
- The CrowdIn language forum is a good place to discuss common term translations so that you can find broad agreement.