Collect I18n Change Merge Requests

Workflow

Use the bundled script for this task. It codifies the fragile parts of the workflow:

Default supported extensions mirror template.NG/build/i18n/collectResources.js: .properties, .js, .jsp, .letter, .eml, .html, .cf, and .txt.

Quick Start

Run from the git repository root:

python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py HEAD

When a latest translation commit must be traced only to source commits in a given range, keep the two inputs separate:

python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py HEAD --source-range <base>..<tip>

Useful options:

python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py <commit> --json
python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py <commit> --no-groups
python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py <commit> --locales ar,ja,ko,vi
python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py <commit> --extensions properties,js,jsp,letter,eml,html,cf,txt
python3 /path/to/collect-i18n-change-merge-requests/scripts/collect_i18n_change_mrs.py <translation-commit> --source-range <base>..<tip> --json

Reporting

Report the total deduplicated ids first, then include the corresponding changed file groups for each id. State the translation commit analyzed, any source range applied, and the strict extraction rule. If the script reports missing baseline keys, include that as residual risk rather than inventing ids from full file history.

Use the script output as the source of truth. Do not fall back to git log -- <file> for the whole file unless the user explicitly asks for full-file history.