Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
OmarIthawi opened this issue Feb 1, 2024 · 0 comments
Open

Comments

@OmarIthawi
Copy link
Member

OmarIthawi commented Feb 1, 2024

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.

@OmarIthawi OmarIthawi changed the title feat: Provide i18n tooling for Django app plugins feat: Provide i18n atlas pull for Django apps (IDAs) plugins | FC-0012 Feb 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant