CiviCRM is written with English-language code and strings for display. It has, however, also been built for organisations worldwide. They need to be able to adapt the tool to local circumstances and demands without modifying the tool technically.
Localising CiviCRM (or any software) affects much more than you might initially think. To adapt CiviCRM to a local language is not just a matter of translating the text displayed on the screen. Consider for example the currency used in a given country (USD or $ in United States, GBP or £ in Great Britain), date and time formats (for example: November 16th, 2009 will be commonly written as 11/16/2009 in United States, but in Russia the format will be 16.11.2009) or the formatting of numbers (the same number will be written slightly differently in different countries: 1 234 567,89 in Slovakia or Hungary, but 1,234,567.89 in Japan or the United States).
CiviCRM provides plenty of functionality to support these language and region specific needs. The development team is constantly developing new tools in this area too. The Localization screen (shown in the following screenshot) lets an administrator select the right locale for the language and country of the organization using CiviCRM. Go to: Administer > Configure > Global Settings > Localization.
CiviCRM accommodates different languages, however the developers rely on the community to translate the text displayed.
A number of languages have already been provided to a greater or lesser extent. Some have more than 90% of the text translated, others only 5%, and a number of languages have not been translated at all. Please check the online translation tool Transifex (http://www.transifex.net/projects/p/civicrm/) to find out about your language of interest. Download and install it on your CiviCRM installation to find out how well it will suit your needs.
You may find that although the translation is correct, you would want to use different terms in your situation. You are very much encouraged to take part in the translation of your language.
A number of facilities in CiviCRM support the community in its translation efforts, though some are still under development.
Feel like helping translating CiviCRM to a new language or improving the current translation? Here's how to do it (provided you have a bit of a technical background):
The CiviCRM translation work flow is still a work-in-progress and until the process becomes more mature, you should probably refer to http://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=88408149 for the most current instructions.
The work flow is heavily based on teamwork. Hopefully, there is already a team of translators for your language that you can join. This team will have built a glossary, will have started a translation set and will be able to review your translations and give constructive criticism. If such a team does not yet exist, the opportunity is all yours to create one.
There are quite a lot of strings (phrases) to translate in CiviCRM. To make it easier to translate the part that you are interested in (hopefully the one you know best), the strings that need translation have been divided into components, which are CiviCRM plugins (e.g., CiviCRM core, CiviMail, CiviContribute, etc.). A separate component should be available for each version of CiviCRM, starting with version 3.2 (or 3.1, for language teams that have chosen to do so).
Each component itself contains a number of files, which themselves contain the strings to translate. The main component "CiviCRM" (the core) has close to 20 files (for countries, provinces, menu, etc.).
The process you use to do translation depends on whether you prefer to do translation online or offline. Online translation does not require installation of any software. Offline translation is done with files downloaded from the translation website, using software that offers more features than the online system.
Transifex is the tool to use for online translation. It does not have as many features as an offline tool such as PoEdit, but it's the easiest way to contribute translations and do the occasional quick correction. Every translator should have an account on the Transifex site, because translation teams can use the forums and messaging system to coordinate their work.
The basic steps in online translation are:
Most translation is usually done with an offline translation tool. One of the most common is PoEdit (see http://www.poedit.net), which is free software and has a big community of users. The exact steps in translation using an offline tool depend on your tool of choice, but should follow the following steps:
PoEdit and other translation software will help you build a translation memory for your language. This translation memory can either be restricted to translations done in CiviCRM, or include translations from other projects. If you include other projects, automatic translation might be able to translate more strings, but you will lose consistency and most strings will be marked as fuzzy. This could be a way to bootstrap a new translation, though.
Building a translation memory based on words from the glossary could go a long way in insuring the consistency of your team's work.
Transifex keeps files in a version control system, http://github.com/civicrm/l10n. This is useful to some users who find interacting with the Github site easier than downloading each file separately from Transifex.
To insure a good consistency in the translation, every team is encouraged to build and use a glossary and employ peer review. You can find a glossary of common terms on http://wiki.civicrm.org/confluence/display/CRM/Glossary+for+translations. You definitely should translate these terms to your language, and make sure your team reaches a consensus on all terms.
Building and sharing a common translation memory, which is like a specialized glossary that can be used automatically by translation tools, also helps to insure consistency. The PoEdit help system explains how to build this database (and most other translation software should do the same).
A good way to make progress in translation is to organize translation sprints. This means getting as many people as possible together in the same room to translate as many documents as they can. Here are a few things to keep in mind when organizing a translation sprint: