H5P Guides

Contributing

Why should you contribute, and what can you do to get involved in the development process of H5P? Let's have a look!

All size contributions to the H5P project are highly appreciated by everyone working on and using H5P. This can be anything from reporting bugs or problems in the forums, to contributing new content types or translating them.

Contributions from the community are extremely important to make sure that the H5P project moves forward in the right direction and as quickly as possible. By developing H5P content types instead of platform-specific content type plugins, you also get big benefits.

  • H5P is designed for creating cross-platform content types. When you create a content type for H5P you create it for all our supported platforms as well.
  • H5P has APIs and a modular architecture that makes development highly efficient. It took 5 minutes to make the Summary content type editable thanks to our powerful editor. When creating interactive video we reused more than 20 existing libraries.
  • Your content type automatically gets all H5P features, they become exportable, importable, handles copyright information, fullscreen mode etc.

Suggesting changes

Do you feel like H5P is missing something or does the behavior of a content type seem very strange to you? You, the community, must not hesitate to create issues for what you consider improvements to H5P.

You can suggest these improvements in a forum post, or you can simply create a new issue for the project on GitHub. Say that you're not happy with the mobile view of our WordPress plugin, then simply add a new issue on GitHub suggesting how you think it should behave.

Contributing code

Got mad coding skills, or not? Doesn't matter! You can fork the different H5P repositories on GitHub and fix issues as you please. Afterward, you simply create a pull request and we merge your changes in. After a little bit of testing of course.

If you're new to H5P development, check out some 'beginner-level' feature requests

Create new content types

You can also contribute by creating new content types. Have a look at our Hello World tutorial for a fast introduction to coding new content types. Make sure you apply for developer access and share the content types you create here on H5P.org!

Extending

Content types can be included in other content types. If you wish for your content type to be used in Presentation or Interactive Video, you can create an issue or pull request on GitHub. Please note that if you're creating a task of some sort it would be wise to extend H5P.Question like Fill in the Blanks does.

Implementing

Lastly, you can contribute by using your coding skills to integrate H5P into a new web system or CMS. There are no guides for this yet, so the best start off point would be either the current Drupal 7 module or the WordPress plugin. Have a look at the source and post your questions to the forum, and we'll try to help.

Translating

Translating is an easy way for people to contribute and help H5P grow.

Modules and plugin

If you wish to translate the UI texts of the plugin you can do it the following way for WordPress:

  1. Go to the languages folder of the H5P plugin, copy the h5p-nb_NO.pot file and rename it to match your ISO 639-1 language code.
  2. Open the file in your favorite text editor, or a program called poedit (makes the job easier), and get on with your translating.
  3. Upload the finished file to the plugin's issue queue or create a new forum post, and we'll add it to the next release of the plugin.

Drupal translations are added through the localize.drupal.org community project.

Moodle translations to be documented. Seems a pull reguest for this folder at least will do the trick.

If you have any questions, please ask in the forum.

Content Types

Currently, you have to edit language files manually to translate H5P content. 

Before you start translating you should check the forum thread to see if anyone else has started on that language. If not, you download the file that suites you language code. If you can't find the file you want, you can download a file for another language and simply rename the files to fit you language code.

Leave a comment in the forum thread so others know that you've started translating for that certain language.

You must keep in mind that the structure of the file must be kept intact, only the English texts to the right of the colons should be changed. Words that starts with @ are variables and shouldn't be translated, e.g. You got @score out of @max answers correct. becomes Sie haben @score von @max Fragen richtig beantwortet. in German. Quotation marks " must be escaped using a backslash, like so: \"

When you are done translating you must zip the folder again and upload it to the same forum post. You can alternatively add content type translations via GitHub.

By adding a translation you relinquish any rights to the translations and agree to the fact that it can be distributed and changed by anyone. The translations will be distributed with the same license as the library they belong to.

We'll look over the translations and then add them to the content types. 

Editor

Check out the Translating editor widgets guide.

Spread the word

When the community grows more smart people works to make H5P better. Help H5P grow by spreading the word.

Sign up as an H5P Beta Tester

Help shape the user experience of H5P by testing new features, content types and plugins. You can contribute by joining the Beta Tester Group

If you have any questions about contributing, feel free to leave a comment below.

Community chat

Get together with other H5P Community members in our gitter chat.