Use PascalCase for i18n namespaces containing spaces
What does this MR do and why?
This fixes ten malformed i18n namespace prefixes.
A namespace should be a PascalCase prefix followed by a single pipe, like ApprovalRule|day(s): https://docs.gitlab.com/development/i18n/externalization/#namespaces. PascalCase can't contain spaces. Ten namespaces contained spaces, covering 46 strings across 15 files. This renames them.
| Before | After | Strings |
|---|---|---|
Compliance Center Export |
ComplianceCenterExport |
22 |
Compliance report |
ComplianceReport* |
7 |
Compliance Center |
ComplianceCenter |
5 |
Deployment Target |
DeploymentTarget* |
3 |
Code Coverage |
CodeCoverage |
2 |
Review App |
ReviewApp |
2 |
Virtual registry |
VirtualRegistry* |
2 |
Corpus Management |
CorpusManagement* |
1 |
License Compliance |
LicenseCompliance* |
1 |
Pipeline Editor |
PipelineEditor* |
1 |
Six of the ten already had a PascalCase namespace of the same name in active use (* in table), so those strings now join the existing one instead of sitting in a near duplicate.
There is no visible change in the UI. The pgettext helper in app/assets/javascripts/locale/index.js returns the last pipe delimited segment either way. The namespace only matters as the context translators see in Crowdin, and to any code that strips the namespace up to the first pipe.
One string merges into an existing msgid
Compliance report|Requirements becomes ComplianceReport|Requirements, which already existed. Both label the same column concept in the compliance dashboard, so they collapse into one msgid. This is why the POT loses one more entry than it gains.
References
- Related to Mark UI text with shortcodes and validate it ag... (!253587 - merged)
- Related to Fix three i18n strings broken by stray pipe cha... (!257706 - merged)
How to set up and validate locally
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.
This merge request was drafted with Claude Code.