Skip to content

Implement extraction and translation of static YAML authz metadata (Internationalization) #432

Closed

Description

@BryanttV

Description

The authz schema contains the display names and descriptions shown for static roles, permissions, and permission categories. Currently, applications contribute these strings via YAML files.

Problem

Because these strings are defined in YAML, standard Python and JavaScript extraction tools cannot find them automatically. This leaves them out of the standard localization workflow.

Proposed Solution

Implement the ADR to bring static authorization metadata into the existing OEP-58 translation process. The goal is to make user-facing text translatable while keeping stable system identifiers intact.

Acceptance Criteria

  • Configure an extraction mechanism to parse YAML files and isolate schema fields as independent, translatable messages.
  • Route the extracted messages through the openedx-translations pipeline and Atlas.
  • Update the API to evaluate the requested language and return the correctly translated strings (display names and descriptions).
  • Write tests confirming the API serves the correct language and that stable identifiers remain completely unchanged in all responses.

Proposed ADR: #424

Activity

  1. changed the title [-]8. Implement extraction and translation of static YAML authz metadata (Internationalization)[/-] [+]Implement extraction and translation of static YAML authz metadata (Internationalization)[/+] on Sep 2, 2026
  2. self-assigned this
    on Sep 2, 2026
  3. efortish commented on Oct 1, 2026

    @efortish
    Contributor

    Opened a PR covering the extraction side of this (acceptance criteria 1-2): #509

    A management command (extract_schema_translations) discovers every schema resource via the already-merged SchemaDiscovery step, parses the YAML directly, and generates a Python module with one pgettext() call per display_name/description field, wired into the extract_translations Makefile target ahead of i18n_tool extract.

    Criteria 3-4 (the API returning translated strings, and tests confirming that) aren't buildable yet: the schema loader/model layer that would read these fields at runtime (#475-478) and the role/permission catalog API itself (#508, still just an ADR) don't exist in main. The extraction command intentionally doesn't depend on any of that unmerged pipeline, it only needs the raw YAML fields, so it's usable and testable independent of when those land.

    Will file a follow-up issue for criteria 3-4 once the loader and catalog API are further along, and link it here.

  4. moved this from In Progress to In Review in RBAC AuthZ Boardon Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

willowReleased in Willow

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions