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

If you want to add new features to existing content types, and want your changes to be merged in quickly we advice you to follow our pull request guide.

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.

Translating Content Types

If you are familiar with Git and Github, you can go ahead and edit the relevant language file under ./languages and make a pull request. An overview of the translation status for our content types may be found here.

If you're not familiar with Github you'll need to create an account on Github.com and navigate to the content type you wish to add translations to. For example, here's the link for Interactive Video. The rest of the content types can be found on this page.

You will need to fork the project by pressing the 'fork' button, this makes a copy of the project you can edit. Edit the relevant language file. For example, if you want to contribute French translations, edit the /languages/fr.json file. 

Once the file has been edited, make a pull request and it will be merged in and added to the next release of the content type. 

Translating Modules and plugins

Drupal

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

Moodle

Translations for Moodle plugin can be added or edited using lang.moodle.org. Read the documentation to help you started. Select the component named 'hvp' (numbers aren't allowed in Moodle plugin name).

If you prefer to translate using a CAT tool you can convert the original mvp.php file from GitHub to PO using Translate Toolkit. After finishing with the translation use Translate Toolkit to convert the file back to PHP.

The translated mvp.php file can then be imported into lang.moodle.org, submitted in the form of a "Pull Request" on GitHub or posted on Translation contributions forum.

Wordpress

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.

If you have any questions about translating any of the plugins, please ask in the forum.

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.