openedx / openedx/edx-django-utils

feat: Provide i18n `atlas pull` for Django apps (IDAs) plugins | FC-0012

Open
#380 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
28
Forks
31
Avg merge
7d 6h
Merged PRs (30d)
1

Description

This module could feature an atlas_pull_by_module function which can be extracted from the edx-platform repository to benefit other IDAs (Python micro-services).

def atlas_pull_by_modules(module_names, locale_root, pull_options):
    """
    Atlas pull translations by module name instead of repository name.
    """
    atlas_pull_args = [
        # Asterisk (*) is used instead of the repository name because it's not known at runtime.
        # The `--expand-glob` option is used to expand match any repository name that has the right module name.
        f'translations/*/{module_name}/conf/locale:{module_name}'
        for module_name in module_names
    ]
    subprocess.run(
        args=['atlas', 'pull', '--expand-glob', *pull_options, *atlas_pull_args],
        check=True,
        cwd=locale_root,
    )

Other classes such as BaseAtlasPullCommand can be extracted to this repository to make the edx-platform less of a monolith while allowing other IDAs to have a pull_plugin_translations Django command:

Related
FC-0012 Project

This issue was reported during the FC-0012 project which implements the Translation Infrastructure update OEP-58.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the referenced edx-platform module openedx/core/djangoapps/plugins/i18n_api.py and review the linked OEP-58 design and related issue. Trace BaseAtlasPullCommand and the proposed atlas_pull_by_modules behavior, then confirm the extracted utilities support a pull_plugin_translations Django command for other IDAs without depending on edx-platform.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
localization
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.