Prepare for onboarding PowerShell to the Native2Native localization pipeline#27667
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
It will be tricky to backport the localized resources to old releases like 7.5 and 7.4. The localization will be based on resource strings in the master branch of GitHub repo. If we blindly backport all localized resources to 7.5 and 7.4, it's highly possible to break something, as some strings may be removed in later versions, but we are not backporting the corresponding code changes to 7.5 and 7.4. Given that 7.4 is about to reach the end of its life cycle, and 7.5 is not even the stable version today, I think we should not support localization for those 2 versions. For 7.6, the mismatch described above can also happen but should be in a smaller scale. |
adityapatwardhan
left a comment
There was a problem hiding this comment.
Do we need to add localization for modules that we ship with PowerShell like Archive, PSGet, PSResourceGet and ThreadJob?
Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
Ideally, yes, we should. I need to talk to Jason about that. But they will need to be localized in their corresponding repos, not in PowerShell repo. It will raise a new question: how to ship the localized resources for those modules? We cannot ship those modules with all the localized resources dlls, as that will increase the size of the module, which will affect the PowerShell package size. |
|
Could we also:
This would catch both missing localization coverage and stale manifest entries in CI. But these are non blocking. |
@jshigetomi, Good catch on the resource tests! They are under
I'm not sure how to test that, as the |
PR Summary
Native2Native localization pipeline: https://eng.ms/docs/cloud-ai-platform/azure-core/azure-experiences-and-ecosystems/cme-international-customer-exp/software-localization-onelocbuild/onelocbuild/native2native/overview
LocProject.jsonfile for PowerShell localization.resxresource files.cssource filesMicrosoft.PowerShell.LocalAccountsfolder as it's never built or shipped with PowerShell 7.ResourceValidationtests accordingly.The
LanguageSetused inLocProject.jsonfile for now is VS_Main_Languages, because that's what .NET runtime uses for its localization. I think we should target the same languages that .NET runtime targets. For a language that .NET doesn’t localize to, even if we localize PowerShell resources for it, it still won’t be fully localized given that any .NET exceptions will use the fallback en-US strings.Impact on package size: Localization will increase the size of PowerShell package because we need to ship the satellite assemblies. The language set
VS_Main_Languagesincludes 13 languages. If we use it, the size of PowerShell will increase around 10 mb (6 mb for S.M.A satellite assemblies along).To be decided: We need to decide the language set to use before filing the onboarding request.
[Update] The Global Readiness folks have confirmed that we can stay with the
VS_Main_Languagesinitially.