Campaign Text and Translations

This guide is for adding text to campaigns and translating this text on the Proca dashboard.

Note: Currently, this is not set up for all campaigns, and must be set up manually by one of our team to determine which text can be customised.


A widget on Proca is made up of three layers of text:

  • In Weblate is the foundational store of all of the strings used in Proca, containing all the different languages on Proca widgets for all widgets by all users
  • There is campaign specific text editable in the Proca Dashboard. These allow for text to be set specifically for a campaign (across all partners). These take precedence over the standard weblate text.
  • Anyone using a Proca widget can also set text specifically for a widget using proca-text html tags. As this happens at the discrete widget level, you can read more about that in the Customising Widgets page of our guide.

Note: A “string” is a set of words.

What to Change, What not to Change

When making translations, you might notice some additional brackets.

  • Do not translate anything inside curly brackets! These function to insert something from elsewhere, they are not text that anyone will see.

So, for example:

{{count}} have already taken action. Let's get to {{goal}}

will end up translated:

{{count}} ont déjà pris des mesures. Atteignons le {{goal}}.
  • Anything inside the < > sort of brackets can still be translated. This text is still displayed as text, and these tags are adding an additional feature to the text, such as bold, italics, hyperlink, etc.

An example of what this would look like is:

I agree with the <1>privacy policy</1>

General Pointers on Language

The language used on each widget matters: it will probably be seen by tens of thousands of people, so even 1% of people getting confused by something would be a problem! Therefore, it is important to have it as easy to understand as possible.

You are encouraged to check out this short guide with tips for writing user interfaces: The few minutes to read through is worth it if it avoids one extra supporter not participating or having to contact us with a question!

Proca Dashboard Interface

Through the Proca Dashboard, it is possible to edit text specifically for a campaign. This is where most of the text that should be translated should be, and is the main place to focus.

(To be clear, we mean a “campaign” within Proca: one common digital action which can have multiple organisations and multiple widgets.)

Any edits made here will change the text for everyone in this campaign! If you wish to change something only for your widgets, take a look at the Customising Widgets page of our guide.

To edit this, you must be a member of an organisation which is part of the campaign. 

Under the Campaigns page, the campaign will have a button option for ‘Translate’.

Clicking it will show the different languages available. Clicking a language shows the text in that language

The one on the left is the original text, in the primary language of the campaign. Of course, your campaign may not have only one “primary” language, but for translations, one “primary” language is needed as reference!

The purple bubble shows how many strings are present. The aim for the translations is to match the primary language on the left!

If there is anything unsaved, a red bubble shows up to remind you to save.

The strings are grouped into different categories:

  • ‘campaign’, texts specifically about the campaign such as social media share messages
  • ‘common’, where standard texts are being changed, such as GDPR text
  • ‘letter’, which is content for the emails (and may include ‘snowflake engine’ content for mixing different content parts together)
  • ‘partners’, which is text for the onboarding process for partners (this is not public facing and most campaigns will just onboard in the primary language)
  • ‘server’, which are texts that aren’t in the widget, such emails sent to supporters to opt-in

Some categories will be compressed by default if they aren’t expected to be changed or translated.

Original Language

Clicking the original language will show all of the strings which can be edited:

The original language has an ‘Editable’ toggle to stop it being changed accidentally.

If a field is empty, it shows as red.

If there is something you would like to edit which is not here, let us know and we can add it to the interface!

Translated Languages

Empty fields will show as red, so the translated language interface will initially all be red!

The ‘key’ (a name tag) of the string will be in the input field; once clicked this shrinks to being a small header. It may avoid confusion to use the keys to refer to strings across languages.

The original text is shown underneath each field, this can be toggled on or off with the ‘Show original text’ button.

Each field has a couple of button options, which button is shown depends on the toggle of the button ‘Enable machine translations’. The options are a copy button or an automated translation button, which will put text in either the original or chosen language into the field. This gives a few different ways to translate.

A partial translation will look like this:

After adding any text, press save!

Note: Widgets will only show the new text once they are rebuilt (which is done in the Widgets > ‘Embed’ interface, see here), so make sure to rebuild them if you want to check how they look or once translations are complete!


If there are things you want to translate beyond what is possible to translate here, then either:

  • There is something missing from set of campaign texts to translate on the Dashboard — get in touch with us and we can see about adding it in.
  • If it is something that happens in the common set of strings within the widget, then you can change it: see this page about making changes on Weblate. Please be aware though: this would be a change for all widgets for all users, so should only be used to correct errors or make improvements that will be general improvements for everyone, not to make changes just to suit your style or fit your campaign. If a translation is slightly off, this may be because it was copied from (for example) language used by the European Commission (we have had people raise issues with a couple of ways they phrase things in different languages) that we have chosen to be consistent with.
  • it may be that you want to customise translations just for your widgets (see the Customising Widgets page of our guide).

Guide Navigation