Fix broken main: sync TerminalResources xlf files with resx#9339
Conversation
The resx had 8 new strings (DiscoveredTestsInAssembly, DiscoveredTestsSummary, DiscoveredTestsSummarySingular, DiscoveringTestsFrom, Error, Retried, RunningTestsFrom, Try) that were not reflected in the .xlf files, breaking the build via XliffTasks' out-of-date check. Regenerated all 13 locale xlf files with msbuild /t:UpdateXlf. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR fixes a build break in Microsoft.Testing.Platform’s terminal reporter localization pipeline by regenerating the TerminalResources .xlf files so they’re back in sync with TerminalResources.resx, resolving the XliffTasks “out-of-date” error on main.
Changes:
- Regenerated all TerminalResources locale
.xlffiles via/t:UpdateXlf. - Added missing
trans-unitentries for recently introduced terminal/orchestrator strings (e.g., discovery summaries, “Running tests from”, retry “try {0}”). - Ensured newly added units are marked
state="new"for OneLocBuild localization pickup.
Show a summary per file
| File | Description |
|---|---|
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
| src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf | Adds missing trans-unit entries generated from TerminalResources.resx to fix XLF/RESX sync. |
Copilot's findings
- Files reviewed: 13/13 changed files
- Comments generated: 13
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
| <trans-unit id="Try"> | ||
| <source>try {0}</source> | ||
| <target state="new">try {0}</target> | ||
| <note>number or tries of the current test assembly when test assembly is being retried. {0} is number that starts at 1</note> |
Evangelink
left a comment
There was a problem hiding this comment.
Note
🤖 Automated review by GitHub Copilot. Posted via a maintainer's GitHub token, so it appears under their account — the account owner did not write or approve this content personally. Generated by the Expert Code Review workflow. To request a follow-up action, reply by tagging @copilot directly.
✅ 22/22 dimensions clean — no findings.
Scope: 13 generated XLIFF locale files under src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/. No C# source, no tests, no build scripts, no IPC code.
Dimension coverage:
| Dimension | Verdict |
|---|---|
| 1. Algorithmic Correctness | N/A — no code logic |
| 2. Threading & Concurrency | N/A — no code |
| 3. Security & IPC Contract Safety | N/A — no code |
| 4. Public API & Binary Compatibility | N/A — no API surface |
| 5. Performance & Allocations | N/A — no code |
| 6. Cross-TFM Compatibility | N/A — no code |
| 7. Resource & IDisposable Management | N/A — no code |
| 8. Defensive Coding at Boundaries | N/A — no code |
| 9. Localization & Resources | ✅ LGTM |
| 10. Test Isolation | N/A — no tests changed |
| 11. Assertion Quality | N/A — no tests changed |
| 12. Flakiness Patterns | N/A — no tests changed |
| 13. Test Completeness & Coverage | N/A — no new logic |
| 14. Data-Driven Test Coverage | N/A — no tests changed |
| 15. Code Structure & Simplification | N/A — no code |
| 16. Naming & Conventions | N/A — generated file |
| 17. Documentation Accuracy | ✅ LGTM |
| 18. Analyzer & Code Fix Quality | N/A — no analyzer changes |
| 19. IPC Wire Compatibility | N/A — no serialization |
| 20. Build Infrastructure & Dependencies | ✅ LGTM |
| 21. Scope & PR Discipline | ✅ LGTM |
| 22. PowerShell Scripting Hygiene | N/A — no .ps1 changed |
Dimension 9 — Localization & Resources (LGTM):
- All 8 new
trans-unitentries (DiscoveredTestsInAssembly,DiscoveredTestsSummary,DiscoveredTestsSummarySingular,DiscoveringTestsFrom,Error,Retried,RunningTestsFrom,Try) are present in all 13 locale files. - Source strings in each XLF exactly match the corresponding
<value>inTerminalResources.resx. <note>content matches the<comment>in the resx file verbatim.- Format placeholders (
{0},{1}) are identical between<source>and<target>— safe for OneLocBuild to process. - All new targets carry
state="new"— the correct XLIFF convention for strings awaiting translation. - Files were regenerated with
msbuild /t:UpdateXlf, not manually edited. This is exactly the process mandated by the repo's localization guidelines ("NEVER manually edit*.xlffiles — the build generates them automatically.").
Dimension 17 — Documentation Accuracy (LGTM):
- Translator notes are descriptive and accurate, providing context about
{0}/{1}parameter roles and where each string appears in the UI.
Dimension 20 — Build Infrastructure (LGTM):
- The PR description confirms
dotnet buildnow succeeds with 0 errors after this change. The correct tool was used.
Dimension 21 — Scope & PR Discipline (LGTM):
- Single focused concern: sync the 13 XLF files with the resx. No unrelated changes mixed in.
Problem
Main is broken with an XliffTasks out-of-date error:
TerminalResources.resxcontains 8 string entries that were never propagated to the.xlflocalization files:DiscoveredTestsInAssemblyDiscoveredTestsSummaryDiscoveredTestsSummarySingularDiscoveringTestsFromErrorRetriedRunningTestsFromTryThese were added by recent terminal source-sharing / orchestrator overload PRs but OneLocBuild/UpdateXlf never picked them up.
Fix
Ran
msbuild /t:UpdateXlfonMicrosoft.Testing.Platform.csproj, regenerating all 13 locale.xlffiles (520 insertions, 0 deletions). New trans-units are added withstate="new"so OneLocBuild will localize them later.Verified
dotnet buildof the project now succeeds with 0 errors.