Translate H5P

A community project to translate H5P

How to contribute


To be able to actively help with translations, you must create your own account. Note that Weblate publicly displays your profile and contributions.

Making suggestions

After you ‘ve registered, you can can start making suggestions:

Becoming an editor

By default new users only have permission to make suggestions (to avoid abuse). For these suggestions to be accepted and submitted to the H5P repositories on GitHub, there needs to be an active editor for the respective language. Editors have further privileges:

Note: If you make suggestions to a language without an active editor, these suggestions will never find their way into H5P!

Becoming an editor is easy: Create your account and tell the site admins through the contact form that you want to become one. Please include:

Working as an editor

As an editor you can directly change translations without having to make suggestions.

If the translation of a library is finished, you can push the changes to GitHub. They will then be reviewed by Joubel and (hopefully) accepted:

Important: Only push single components and not the whole H5P project, as some libraries might be work in progress and at this time only have very few changes not worth pushing yet.

Important: As Weblate always pushes all language files for a library (“component”) you should avoid having “unfinished” language strings in the components: Other editors might push the component to GitHub because they’ve finished their translation and your “unfinished” work would be submitted, too. Weblate offers comments & suggestions for doing preliminary translations.

Adding new languages for libraries

If no-one has ever worked on translations of a specific library into your library, chances are high that there is no language file for the library yet. This means you’ll have to create one yourself:

Working with states

In Weblate every string can have three to keep track of which strings are already finished and which ones need work:

Editors can change the state of a single string in the regular editor:

Screenshot showing where the states can be changed

You can also change the state of all strings in a library in a special page, which you can reach from the overview page of a library’s language:

Screenshot showing where the bulk status change page can be found


To improve consistency, Weblate supports glossaries. These are list of translations that translation conventions that translators should follow. A glossary consists of an English source string and the recommended translation. Whenever a translator encounters a string that contains the source string of a glossary item (even if it’s just a short part of it), the recommended translations will be automatically shown on the right:

Screenshot showing how a glossary entry looks like

You can enter new glossary items in the same panel or by opening the whole glossary. To open the whole glossary, click on Glossary in a library’s overview page:

Screenshot showing how the glossary can be opened

Dealing with problems

Should you have any problems, you can contact the administrators of this site through the contact form or ask on the H5P Translator’s forum.

Setting up GitHub webhooks (as a content type developer)

As Weblate internally keeps a copy of the Git repository of content types and has to merge changes in its repository with changes in the upstream repository, there can be merge conflicts if these repositories converge too much. A way of reducing these conflicts is to notify Weblate of changes in the upstream repository, so that it can immediately fetch these changes. GitHub allows repository owners to do this by setting up a webhook. If you are a content type developer, you are encouraged to add as a webhook like you can see in the screenshot:

Screenshot showing how to set up webhooks in GitHub