Uh oh!
There was an error while loading. Please reload this page.
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> |
Amaury Levé (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.
Uh oh!
There was an error while loading. Please reload this page.
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.