Using CivCRM in a language other than US-English¶
CiviCRM uses US English by default but supports translation into a wide range of other languages with varying degrees of completeness.
If you want to help out with translations visit the translation documentation.
To enable use of CiviCRM in a new language translation you need to
- download the translation files
- install them in the appropriate directory
- select the language in the Language settings
The exact instructions on how to download and install the translations files differ between platforms:
Changing the default CiviCRM language after installation¶
Once you have installed the translation files, you can change the language used by CiviCRM:
- Go to Administer > Localization > Languages, Currency, Location
- Select the new default language.
- Update the default currency, money formatting options, default country, etc.
You will also probably want to update the date and time formats:
- Go to Administer > Localization > Date Formats
Finally, you may notice that many other options in CiviCRM will not be correctly translated:
- Individual prefixes (Mrs, M, etc)
- Gender options (M, F, other)
- Address Location Types
- Some fieldsets in the "Edit Contact" screen
These are known in CiviCRM as Option Values, and there are many of these.
To avoid having to change every single setting, you can install the following extension: fixoptiontranslations. Once the extension is enabled, all options will be translated. The extension can then be uninstalled and removed.
Updating translation files¶
The easiest way to update your translations regularly is to use the l10n update extension:
The "l10n update" extension will do a daily check to update the translation files for CiviCRM core, as well as for extensions. Every night, around 2 AM (North American Eastern Time), the CiviCRM website packages updated translation files. These are available at the following address:
xx_XX is an ISO language code corresponding to one CiviCRM has published translations for.
For example, for Spanish CiviCRM core:
For the CDN Tax Receipts extension in Canadian French:
Storing translation files in another directory¶
By default, CiviCRM looks in
[civicrm.root]/l10n for translation files. Since CiviCRM 5.23, there is a new setting available to store those files in another directory. This can be convenient when files are updated regularly, or when using the l10nupdate extension, which requires the files to be web-writable. More information, see PR15408. As of this writing, this setting only applies to core translations, not extensions.
gettext is the mechanism by which strings are translated. By default, CiviCRM uses the PHP-Gettext implementation. This implementation can cause a 20-30% performance loss.
Since CiviCRM 4.2, it is possible to use native
gettext. This may require some changes to your hosting environment and is therefore recommended mainly for sites hosted on dedicated environments (VPS or dedicated server, it may not work on shared hosting).
To enable it:
- PHP must have
gettextsupport compiled in (it usually is the case, see
phpinfo()for more information). Debian and Ubuntu include it by default.
- The operating system must have the locale enabled. For example, on Linux-based systems, this is in
/etc/locale.gen, or by typing this command:
Debian/Ubuntu systems can enable locales by typing:
The "UTF-8" variant of the locale must be enabled. For example: "fr_FR.UTF-8".
Apache or PHP-FPM must be restarted after adding a new locale. Finally, uncomment the following in civicrm.settings.php: