Adding content type translations via GitHub
The Content Types each have their own language folder that contains one JSON file for each language. This file is based on the semantics.json in the parent directory which contains the default English translation. The easiest way for us to verify and make new translations part of the content type is if the translation is submitted in the form of a "Pull Request" on GitHub, e.g. like this user has done: https://github.com/h5p/h5p-course-presentation/pull/17
To do this you'll need a GitHub account, and then you can navigate to the language folder of the content type you wish to translate, e.g. h5p-multi-choice/language. Here you can click the "New file" button and type in the name of the translation, e.g. de.json for German, and then you fill in the translation content. The easiest way to do this is to copy another translation and then just replace the strings. You can use the "Raw" button on existing translation files to get the file content without the line numbers.
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 start with @ are variables and should not 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're done you fill in a title and a description of the work you've done and press the "Propose new file" button. Now you have what is called a patch. You'll get a summary of the changes in the patch and a green button labeled "Create pull request". When you push this button it will submit your proposed changes to the H5P Content Type. After you've done this you can just sit back and wait for feedback from the H5P Team or others. If everything looks and works OK it will be merged in and become a part of the content type.
Note that in the same way, you may use the "Edit" button on existing translations to suggest changes.