Skip to main content

XBlock to embed video content using iframe along with download buttons

Usage

  1. Go to Settings -> Advanced Settings in a specific course within Studio.

  2. Add “video_iframe” to Advanced Module List and save.

  3. Add Advanced -> Video Iframe unit to the course.

  4. Add a valid URL to the Video URL field and optionally add Video Description, Video Download URL and Captions Download URL and/or modify Video Title.

Testing with Docker

This XBlock comes with a Docker test environment ready to build, based on the xblock-sdk workbench. To build and run it:

$ make dev.run

The XBlock SDK Workbench, including this XBlock, will be available on the list of XBlocks at http://localhost:8000

Translating

Internationalization (i18n) is when a program is made aware of multiple languages. Localization (l10n) is adapting a program to local language and cultural habits.

Use the locale directory to provide internationalized strings for your XBlock project. For more information on how to enable translations, visit the Open edX XBlock tutorial on Internationalization.

This cookiecutter template uses django-statici18n to provide translations to static javascript using gettext.

The included Makefile contains targets for extracting, compiling and validating translatable strings. The general steps to provide multilingual messages for a Python program (or an XBlock) are:

  1. Mark translatable strings.

  2. Run i18n tools to create raw message catalogs.

  3. Create language specific translations for each message in the catalogs.

  4. Use gettext to translate strings.

1. Mark translatable strings

Mark translatable strings in python:

from django.utils.translation import ugettext as _

# Translators: This comment will appear in the `.po` file.
message = _("This will be marked.")

See edx-developer-guide for more information.

You can also use gettext to mark strings in javascript:

// Translators: This comment will appear in the `.po` file.
var message = gettext("Custom message.");

See edx-developer-guide for more information.

2. Run i18n tools to create Raw message catalogs

This cookiecutter template offers multiple make targets which are shortcuts to use edx-i18n-tools.

After marking strings as translatable we have to create the raw message catalogs. These catalogs are created in .po files. For more information see GNU PO file documentation. These catalogs can be created by running:

$ make extract_translations

The previous command will create the necessary .po files under xblock-video-iframe/video_iframe/conf/locale/en/LC_MESSAGES/text.po. The text.po file is created from the django-partial.po file created by django-admin makemessages (makemessages documentation), this is why you will not see a django-partial.po file.

3. Create language specific translations

3.1 Add translated strings

After creating the raw message catalogs, all translations should be filled out by the translator. One or more translators must edit the entries created in the message catalog, i.e. the .po file(s). The format of each entry is as follows:

#  translator-comments
A. extracted-comments
#: reference…
#, flag…
#| msgid previous-untranslated-string
msgid 'untranslated message'
msgstr 'mensaje traducido (translated message)'

For more information see GNU PO file documentation.

To use translations from transifex use the follow Make target to pull translations:

$ make pull_translations

See config instructions for information on how to set up your transifex credentials.

See transifex documentation for more details about integrating django with transiflex.

3.2 Compile translations

Once translations are in place, use the following Make target to compile the translation catalogs .po into .mo message files:

$ make compile_translations

The previous command will compile .po files using django-admin compilemessages (compilemessages documentation). After compiling the .po file(s), django-statici18n is used to create language specific catalogs. See django-statici18n documentation for more information.

To upload translations to transiflex use the follow Make target:

$ make push_translations

See config instructions for information on how to set up your transifex credentials.

See transifex documentation for more details about integrating django with transiflex.

Note: The dev.run make target will automatically compile any translations.

Note: To check if the source translation files (.po) are up-to-date run:

$ make detect_changed_source_translations

4. Use gettext to translate strings

Django will automatically use gettext and the compiled translations to translate strings.

Troubleshooting

If there are any errors compiling .po files run the following command to validate your .po files:

$ make validate

See django’s i18n troubleshooting documentation for more information.

Change Log

Unreleased

1.0.0 – 2024-06-18

Added

  • Author view to display custom message with instructions if no video url is detected. Also disable validations for author view to supress default validation failure messages.

Removed

  • autoplay from allow attribute passed to the iframe.

Changed

  • Title of display_name field to Video Title and modified the description.

  • Default display name of the XBlock as displayed in the Advanced XBlocks selection list from Video to Video Iframe.

0.1.0 – 2024-04-28

Added

  • First iteration of XBlock.

Metadata

Release files for xblock-video-iframe 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xblock-video-iframe 1.0.0
File Size Uploaded
xblock_video_iframe-1.0.0.tar.gz 26.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xblock-video-iframe 1.0.0
File Interpreter ABI Platform
xblock_video_iframe-1.0.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 48.0 kB

Release files / xblock_video_iframe-1.0.0.tar.gz

Download URL xblock_video_iframe-1.0.0.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8ddfffbb71ef3dbafef19f95f5bea051d272db5dd07119c9405f4df444c3605e
BLAKE2b-256 checksum
How to use checksums
84ccb018cd0a21919a6d66b724cd6b005524c1ba057a5bd0cdf07c86266d885f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.9.19

Release files / xblock_video_iframe-1.0.0-py2.py3-none-any.whl

Download URL xblock_video_iframe-1.0.0-py2.py3-none-any.whl
Size 21.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
2d1929f6f7549aad2391f88ca8ccac31fb6cc7a1f7912ff9e9d84f4bbe68aeb3
BLAKE2b-256 checksum
How to use checksums
38e944ad172e0e35204e76ecf799c89cf2a652fb23755a4cb97bde7f6a3d0d2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.9.19

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page