Abstract: CiviCRM Multi-Language Support
CiviCRM: Multi-language Support
Written by Piotr Szotkowski   

CiviCRM is an open source constituent relationship management system used by NGOs and advocacy groups (like Amnesty International, Wikimedia Foundation or the Joomla! and Drupal projects) all over the world. Judging by the number of community-contributed and -maintained translations and civicrm.org statistics, CiviCRM installations exist in over twenty languages using various alphabets (Latin, Cyrillic, Arabic, Devanagari, Chinese). Multi-language support is essential in multilingual countries (like Canada or India), as well as in cross-border (e.g., Central and East European) and worldwide organizations.

Currently, the CiviCRM internationalization and localization features are limited to one language per installation. Extending CiviCRM with multi-language support will allow on-the-fly language switching for both static and custom (specific to a given installation) user interface elements, as well as entering and storing multiple language versions of the managed data. The implementation will utilize gettext-like translation mechanism with separate textual domains for every set of localized data (thus evading the issue of gettext not supporting translations of homonyms) and a separate table for storing . This approach ensures that the internationalization layer is mostly independent from the core CiviCRM schema, that its existence doesn’t hamper the (relatively fast) speed of CiviCRM development and that it’s easily adaptable to future CiviCRM features. Another benefit of such an approach is that the database/disk space for the translated strings doesn’t have to be pre-allocated (otherwise, a ten-language site has to support a database an order of magnitude larger than a one-language install, even when most of the content is not localized to all of the languages).

 

Show other articles of this author

42 Votes

1 Comment

Feed
  1. From your explanation, it looks like the current db only store one language per installation. And what you working on is putting different language into one db but different tables, right? It seems like zen cart also has been such.

Add Comment


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)



    Click to get a new image.