Thank you for your interest in contributing translations to Manyverse! Follow this guide to setup and get started with.

We use the online platform Crowdin to easily craft the translation strings. It makes the process much easier, and doesn't require you to know anything about programming.

1 Join Crowdin

  1. Make an account at Crowdin by following this link:
  2. Open our translation project:
  3. On the main page for the project, click on a language that you are fluent in
  4. Once the language page opens, click on ALL STRINGS then Crowdsourcing
  5. You now see the crowdsourcing dashboard where you can already start translating strings that are marked with a red dot

2 Tips while you translate


Some texts may have user data injected into them with the format {{data}}, for instance:

There are {{amount}} friends online

Note that you must preserve the {{amount}} in your text. For instance, if we were translating the above into Brazilian Portuguese, the correct text should be:

Há {{amount}} amigos online


The purpose of the string is clarified by the "context" field which is usually a chain such as connections -> peers -> types -> room -> othersonline. The first part in this chain is usually an individual screen in the app. So the string "({{amount}} online)" might be ambiguous when read in isolation, but we know from the context that it is in the connections screen, describing peer types, in specific a room and indicating the amount of othersonline.

Duplicate strings

Sometimes the same string in English may be repeated in multiple places. This is not a problem and it's okay to repeat it in your target language too. But note that not all languages will have repeated strings, as the context may alter the specific translation. For instance, English may repeat the string "Comment" which is simultaneously a noun and a verb, but in Portuguese, the noun is "Comentário" and the verb is "Comentar", so if the context dictates a verb or a noun, the translation will be different.

Sentences with bold formatting

Some texts in the app are split into parts, because we need to make some parts bold. You can notice that this is the case when the "context" looks something like:

  • welcome -> off the grid -> description -> 1 normal
  • welcome -> off the grid -> description -> 2 bold
  • welcome -> off the grid -> description -> 3 normal
  • welcome -> off the grid -> description -> 4 bold
  • welcome -> off the grid -> description -> 5 normal

Pay careful attention that these 5 texts will be joined together as one sentence, so there may need to be a whitespace at the end or beginning of some of these. Also, depending on your language, you may not need all of these parts. For instance, if you want to start the sentence with bold, you can just make the "1 normal" string empty and put the bold starter text in "2 bold". For example, assume the original string in English:

  • 1 normal: "The "
  • 2 bold: "book"
  • 3 normal: " is on the table"

Some languages might not start with a preposition such as "The". In that case it's perfectly fine to leave 1 normal empty and start the string with bold. For example, the above translated to Finnish would be:

  • 1 normal: ""
  • 2 bold: "Kirja"
  • 3 normal: " on pöydällä"

If the split doesn't work in your language or if you don't want to use bold, then it's also fine to put the entire sentence in one of the parts, for example:

  • 1 normal: "The book is on the table"
  • 2 bold: ""
  • 3 normal: ""

3 When you're done

You just need to press "Save" for each text that you translate, after that there is nothing else that you need to do! The Crowdin system will automatically send us a merge request in GitLab and we (developers) will review that before including it into Manyverse. The actual release of the translated texts has to be done manually like any new version release. Thank you for translating!

This file comes from our Wiki page on GitLab. Last updated on 2024-05-13.