Localized file check-in by OneLocBuild Task: Build definition ID 1218: Build ID 2980844#8463
Conversation
…: Build ID 2980828
…: Build ID 2980828
…: Build ID 2980828
…: Build ID 2980828
…: Build ID 2980828
There was a problem hiding this comment.
Pull request overview
This PR updates localization XLIFF (.xlf) files across the MSTest framework, Microsoft.Testing.Platform, and related extensions/analyzers based on the OneLocBuild pipeline output.
Changes:
- Marked many previously
state="new"entries asstate="translated"and added translated target strings for multiple locales (tr, pt-BR, it, pl). - Updated localized strings for platform CLI/help/validation messages and extension-specific messages.
- Updated localized strings for MSTest analyzers and code-fix resources.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf | Adds Turkish translations for common assertion framework messages. |
| src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf | Adds pt-BR translations for common assertion framework messages. |
| src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf | Adds Italian translations for common assertion framework messages. |
| src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf | Adds Polish translations for platform command-line/validation messages. |
| src/Platform/Microsoft.Testing.Extensions.Retry/Resources/xlf/ExtensionResources.pl.xlf | Adds Polish translations for retry extension option descriptions/errors. |
| src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.tr.xlf | Adds Turkish translations for crash dump/report extension messages. |
| src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pt-BR.xlf | Adds pt-BR translations for crash dump/report extension messages. |
| src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf | Adds Turkish translations for Azure DevOps report extension messages/options. |
| src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf | Adds Polish translations for Azure DevOps report extension messages/options. |
| src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf | Marks several locked annotation strings as translated (kept identical to source). |
| src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf | Adds Turkish translations for analyzer titles/messages/descriptions. |
| src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf | Adds Polish translations for analyzer titles/messages/descriptions. |
| src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf | Adds Italian translations for analyzer titles/messages/descriptions. |
| src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.it.xlf | Adds Italian translations for analyzer code-fix titles/messages. |
| <trans-unit id="PreferAsyncAssertionDescription"> | ||
| <source>When verifying exceptions from asynchronous code, use the async assertion methods instead of blocking the asynchronous operation with GetAwaiter().GetResult().</source> | ||
| <target state="new">When verifying exceptions from asynchronous code, use the async assertion methods instead of blocking the asynchronous operation with GetAwaiter().GetResult().</target> | ||
| <target state="translated">Quando si verificano le eccezioni dal codice asincrono, usare i metodi di asserzione asincrona invece di bloccare l'operazione asincrona con GetXhtmliter(). GetResult().</target> |
| <trans-unit id="PreferAsyncAssertionMessageFormat"> | ||
| <source>Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</source> | ||
| <target state="new">Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</target> | ||
| <target state="translated">Usare ''Assert''.{0}invece di bloccare una chiamata asincrona in ''Assert''.{1}</target> |
| <trans-unit id="PreferAsyncAssertionMessageFormat"> | ||
| <source>Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</source> | ||
| <target state="new">Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</target> | ||
| <target state="translated">'Assert.{0}' içinde zaman uyumsuz bir çağrıyı engellemek yerine 'Assert.{1}' kullanın</target> |
| <trans-unit id="PreferAsyncAssertionMessageFormat"> | ||
| <source>Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</source> | ||
| <target state="new">Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</target> | ||
| <target state="translated">Użyj instrukcji „Assert.{0}” zamiast blokować wywołanie asynchroniczne w elemencie „Assert".{1}”</target> |
| <trans-unit id="AvoidUsingAssertsInAsyncVoidContextFix"> | ||
| <source>Change return type to 'Task'</source> | ||
| <target state="new">Change return type to 'Task'</target> | ||
| <target state="translated">Cambia tipo restituito in ''Task''</target> |
| <trans-unit id="AreAllNotNullFailedSummary"> | ||
| <source>Expected all items in collection to be non-null.</source> | ||
| <target state="new">Expected all items in collection to be non-null.</target> | ||
| <target state="translated">Ci si aspettava che tutti gli elementi nella raccolta fossero non Null.</target> |
Localization Review SummaryThis PR updates Italian (it), Polish (pl), Turkish (tr), and Portuguese-Brazilian (pt-BR) translations across 14 Automated ProcessThis is an automated OneLocBuild PR, which is the correct process for updating Critical Translation Issues Found (Italian only)Three BLOCKING localization defects were identified in the Italian translations only. Polish, Turkish, and Portuguese-Brazilian translations appear correct:
These issues must be corrected in the upstream localization pipeline before merging, as they would ship incorrect/confusing text to Italian-speaking developers. RecommendationRequest changes from the localization team to fix the Italian translations for:
Once corrected by the localization pipeline, the automated PR will update with the fixes.
|
Evangelink
left a comment
There was a problem hiding this comment.
| # | Dimension | Verdict |
|---|---|---|
| 9 | Localization & Resources | 🔴 3 BLOCKING |
✅ 20/21 dimensions clean (1 dimension with findings, 17 dimensions N/A for localization-only PR).
- Localization — Italian translations contain corrupted method name (GetAwaiter → GetXhtmliter), missing space, and quote formatting issues
Scope Assessment: This is a documentation-only PR (localization files). The changes are appropriate in scope and generated by the correct automated OneLocBuild process. The issues found are translation quality defects that must be corrected upstream in the localization pipeline before merging.
Generated by Expert Code Review (on open) for issue #8463 · ● 12M
| <trans-unit id="PreferAsyncAssertionDescription"> | ||
| <source>When verifying exceptions from asynchronous code, use the async assertion methods instead of blocking the asynchronous operation with GetAwaiter().GetResult().</source> | ||
| <target state="new">When verifying exceptions from asynchronous code, use the async assertion methods instead of blocking the asynchronous operation with GetAwaiter().GetResult().</target> | ||
| <target state="translated">Quando si verificano le eccezioni dal codice asincrono, usare i metodi di asserzione asincrona invece di bloccare l'operazione asincrona con GetXhtmliter(). GetResult().</target> |
There was a problem hiding this comment.
[BLOCKING] Localization & Resources
The method name GetAwaiter() has been corrupted to GetXhtmliter() in the Italian translation.
Expected: GetAwaiter().GetResult()
Actual: GetXhtmliter(). GetResult()
This is a critical localization error that would confuse Italian-speaking developers, as GetAwaiter is a well-known .NET API method name that should remain consistent across languages or be translated correctly.
Recommendation: Correct the translation to use GetAwaiter() (keeping the English API name, which is standard practice for .NET API documentation in localized text).
| <trans-unit id="AvoidUsingAssertsInAsyncVoidContextFix"> | ||
| <source>Change return type to 'Task'</source> | ||
| <target state="new">Change return type to 'Task'</target> | ||
| <target state="translated">Cambia tipo restituito in ''Task''</target> |
There was a problem hiding this comment.
[BLOCKING] Localization & Resources
Incorrect quote escaping around 'Task' in the Italian translation.
Source: Change return type to 'Task'
Current Italian: Cambia tipo restituito in ''Task''
Expected Italian: Cambia tipo restituito in 'Task'
The double single-quote ''Task'' appears to be over-escaped. While '' is the XLF escape sequence for a literal single quote, the source format shows single quotes 'Task' should render as single quotes in the output. Other properly translated strings in this file use single quotes correctly (e.g., line 44: Usare '{0}').
Recommendation: Change ''Task'' to 'Task' to match the quoting convention used consistently throughout the rest of this file.
| <trans-unit id="PreferAsyncAssertionMessageFormat"> | ||
| <source>Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</source> | ||
| <target state="new">Use 'Assert.{0}' instead of blocking an async call in 'Assert.{1}'</target> | ||
| <target state="translated">Usare ''Assert''.{0}invece di bloccare una chiamata asincrona in ''Assert''.{1}</target> |
There was a problem hiding this comment.
[BLOCKING] Localization & Resources
Missing space before the word "invece" in the Italian translation, and potentially incorrect quote formatting.
Current: Usare ''Assert''.{0}invece di bloccare
Expected: Usare 'Assert.{0}' invece di bloccare
Two issues:
- Missing space:
.{0}inveceshould be.{0} invece(space before "invece") - Quote formatting: The use of
''(double single-quote) may be correct XLF escaping, but verify that the rendering will display as intended. The source uses single quotes'Assert.{0}', and the escaped format should render identically.
Recommendation:
- Add space:
.{0} invece - Verify quote escaping renders correctly as single quotes in the final output
This is the pull request automatically created by the OneLocBuild task in the build process to check-in localized files generated based upon translation source files (.lcl files) handed-back from the downstream localization pipeline. If there are issues in translations, visit https://aka.ms/icxLocBug and log bugs for fixes. The OneLocBuild wiki is https://aka.ms/onelocbuild and the localization process in general is documented at https://aka.ms/AllAboutLoc.