Summary
Define and document the translation architecture for consolidated XBlock repositories:
Relevant References
Proposed Strategy
- No shared root-level
conf directory in consolidated repositories (xblocks-contrib / xblocks-extra) as per current implementation
- Each XBlock maintains its own
conf directory within its module_name
- Each XBlock has a separate entry in
openedx-translations/transifex.yml
- Update
make extract_translations in xblocks-* repos to extract translations
- It will extract per block
- The daily cron job in
openedx-translations should: - Checkout xblocks-extra / xblocks-contrib
- Extract translation source files for each XBlock independently
- Ensure translation path resolution remains compatible with
openedx-platform
Path Compatibility Validation
Current lookup pattern in openedx-platform:
translations/*/{module_name}/conf/locale:{module_name}
Proposed path of xblock translations for consolidated (xblocks-*) repositories:
openedx-translations/translations/xblocks-*/MODULE_NAME/conf/locale/en/LC_MESSAGES/django.po
Example path:
openedx-translations/translations/xblocks-contrib/xblock_pdf/conf/locale/en/LC_MESSAGES/django.po
This path is compatible for openedx-platform lookup pattern.
Example of existing path of Audio xblock:
openedx-translations/translations/AudioXBlock/audio/conf/locale
Cleanup / Migration Tasks
Definition of Done
Summary
Define and document the translation architecture for consolidated XBlock repositories:
Relevant References
openedx-translations:
https://github.com/openedx/openedx-translations/tree/main/translations
openedx-atlas (CLI to pull translations):
https://github.com/openedx/openedx-atlas
Glob pattern support docs:
https://github.com/openedx/openedx-atlas/blob/1eb61a69e8a0f9c0911fc5d334066d3a06b3d425/docs/decisions/0001-support-glob-pattern.rst#L70
Archived PR:
chore: add xblocks-contrib to translation extraction pipeline openedx-translations#70340
openedx-platform management command:
https://github.com/openedx/openedx-platform/blob/master/common/djangoapps/xblock_django/management/commands/pull_xblock_translations.py
Usage:
make pull_xblock_translations(run inside lms-shell)python manage.py lms pull_xblock_translations --filter=ar,fr_CAProposed Strategy
confdirectory in consolidated repositories (xblocks-contrib/xblocks-extra) as per current implementationconfdirectory within its module_nameopenedx-translations/transifex.ymlmake extract_translationsinxblocks-*repos to extract translationsopenedx-translationsshould: - Checkoutxblocks-extra/xblocks-contribopenedx-platformPath Compatibility Validation
Current lookup pattern in
openedx-platform:translations/*/{module_name}/conf/locale:{module_name}
Proposed path of xblock translations for consolidated (xblocks-*) repositories:
Example path:
This path is compatible for
openedx-platformlookup pattern.Example of existing path of Audio xblock:
Cleanup / Migration Tasks
Definition of Done
transifex.ymlupdated with per-XBlock entriesopenedx-platformverified