We are on Drupal 7 and running Civi 5.41.2. We added Spanish to our localization settings as we host several events in Spanish and have a few Spanish-speaking staff. We have been expanding recently and find the need to have other languages. From what we have read, adding languages through localization settings adds a new table for each language and can cause detrimental database bloat if you use 5+ languages. We are thinking we will need 8+ if we want to have language options for every country we are in.

Is there a way to only translate the public facing pages and forms? Using localization seems to add translations of all backend content, which we don't need.

  • 1
    Can you set inherit user language? This would set the language set in user setting. Feb 23, 2022 at 9:21

1 Answer 1


You can avoid the cost of the full multi-language set-up in certain situations; I think you can do what you want with language switcher URLs.

See blog at https://civicrm.org/blog/ayduns/language-switcher for more info, but in summary:

  1. Visit Administer » Localisation » Language, Currency... and list the languages you need in the Available languages selector. Hit save.

  2. Then, say you want to send a link to (European) Spanish speakers for an event booking page, get the event booking URL and append &lcMessages=es_ES Likewise for German speakers append &lcMessages=de_DE.

Users of those links will see translated versions of all CiviCRM interface texts. The content you enter (e.g. event title, description) will be as you entered it though, so for a Spanish event, type in Spanish!

This method will also use translated versions of confirmation emails etc. too, which is a bonus. However please note that the events system (as of 5.49) only supports one timezone, so dates and times will be shown in that configured timezone, which may differ.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.