Campaign Text and Translations

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

The ‘Texts’ tab is used both for editing campaign text and translating it into other languages — it is the campaign text editor.

Note: This option 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:

  • 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 widget/text tab, or using proca-text HTML tags. As this happens at the discrete widget level, you can read more about that on the Widget customisation page of our guide.

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

Invite a Translator

The ability to change text is only for members of the organisation who controls the campaign, which means you have to invite them to join so that they have the relevant permissions. The below video shows how:

invite translator gif instructions
  1. On the Campaign page click on the Texts tab
  2. Find the “Invite” button at the bottom of the page
  3. Enter their email and edit the email content if desired (you can change this in the same ‘Translate’ text editor)
  4. Send them the email

If a translator is also taking part in a campaign in another organisation, they may have to change which organisation they are signed in to to access the translation option or their usual widgets: see more here.

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 section of our guide.

To edit this, you must be a member of an organisation that is part of the campaign — see above for how to invite someone to join your organisation so that they can edit it.

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

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

The first 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 a reference!

The purple bubble shows how many strings are present. The aim of 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 it.

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
  • ‘onboarding’, which are texts used in the onboarding process for new partner organisations joining the campaign

Some categories might 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 depending 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!

Editing Onboarding Text

There are two parts of text in the onboarding process which you can change!

  • welcome/intro/summary of the campaign which is shown at the top (with a blue background, shown on every step)
  • The message before the questions about the partner’s involvement in the campaign (shown on the Request to Join step with input fields — in the example image below it just says “Hello”)

You can edit these using the ‘Text’ button option:


If you want to use bullet points, use the “markdown” version: “- ” (dash+space) will be automatically translated into a bullet point

- list item one
- list item two

This will become:

  • list item one
  • list item two

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>


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

  • There is something missing from the 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 Widgets page of our guide).

Guide Navigation