Commit Graph

5 Commits

Author SHA1 Message Date
Ben Hillis
5bc0e0184e Use inline _locComment syntax for locked tokens in en-US WSL.adml (#40544)
The standalone <!-- {Locked="..."} --> XML comments above each <string>
are silently ignored by the POMXML parser used by TouchdownBuildTask, so
locked tokens were getting translated in every locale (NetworkingMode
values "Mirrored"/"None"/"NAT", ".wslconfig" key names, etc.).

Move the directives inside each <string> using the inline form the parser
actually honors:
  <string id="X"><!-- _locComment='{Locked="Foo"}' -->...Foo...</string>
  <string id="NetworkingModeMirrored"><!-- _locComment="{Locked}" -->Mirrored</string>

Update validate-localization.py to extract tokens from the inline form so
the baseline-token-presence check still catches authoring mistakes.

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-15 00:32:38 +00:00
Ben Hillis
ca6c0e8d6e validate-localization: downgrade ADML locked-token mismatch to warning (#40533)
The Touchdown `.adml` parser does not honor `<!-- {Locked=...} -->` XML
comments the way the `.resw` parser honors `<comment>{Locked=...}</comment>`,
so every nightly localization PR comes back with locked tokens translated
(`Mirrored` -> `镜像`, `None` -> `Нет`, etc.) and fails CI on the
per-locale token check we added in #40515.

Keep the baseline en-US locked-token check and all ID/presentation parity
checks as errors. Downgrade the per-locale locked-token check to a warning
so loc PRs can land while we figure out the right LocVer placement for
.adml with the Touchdown team.

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-14 00:39:18 +00:00
Blue
334696eb0e Update localization script to reconfigure output streams as utf8 (#40528) 2026-05-13 16:11:42 -07:00
Ben Hillis
1d6133f96f Localize ADMX Group Policy strings via Touchdown (#40515)
Add the WSL ADMX policy strings to the nightly Touchdown localization
pipeline so translated .adml files are produced for every locale already
covered by Resources.resw. Translated files land at
intune/<locale>/WSL.adml, matching the Group Policy on-disk layout (the
language-neutral WSL.admx stays at intune/WSL.admx).

Changes:

* intune/en-US/WSL.adml: new baseline ADML file. Each translatable
  string is annotated with {Locked="..."} XML comments so translators
  preserve product names (Windows Subsystem for Linux, WSL, WSL1, WSL2,
  Store WSL), .wslconfig keys (wsl2.kernel, wsl2.systemDistro,
  wsl2.kernelCommandLine, wsl2.nestedVirtualization,
  wsl2.kernelDebugPort, wsl2.networkingmode, wsl2.firewall), command
  names (wsl.exe, debug-shell, mount), networking-mode enum values
  (None, NAT, Mirrored, VirtioProxy), and the policy state literal
  Disabled.

* .pipelines/wsl-build-nightly-localization.yml: add intune/en-US/WSL.adml
  to the trigger paths and to the TouchdownBuildTask resourceFilePath
  block. The combined ';O:intune\' mapping puts translated files at
  intune/<locale>/WSL.adml.

* tools/devops/validate-localization.py: add validate_adml() which
  enforces the same locked-token invariant as .resw (every {Locked="X"}
  token must appear verbatim in its target string value), validates
  that translated locales have the same string ids as the en-US
  baseline, and is parameterized by the ADML folder name. The argv
  shortcut used in CI to avoid a pip install dependency on click now
  accepts both 3 args (back-compat) and 4 args (with explicit ADML
  folder).

* .pipelines/build-stage.yml: pass 'intune' explicitly to
  validate-localization.py so the validation invocation reads
  'localization/strings en-US intune' -- both folders visible at the
  call site, consistent with the rest of the script's parameterization.

* tools/devops/create-change.py: include untracked files in the
  'Changed files:' report and stage them with 'git add -A' (via
  repo.git.add(A=True)) before commit. Without this, Touchdown's
  first-time ADML outputs land as untracked files in newly created
  intune/<locale>/ directories and are silently dropped by 'git commit
  -a', which only stages modifications and deletions of already-tracked
  files. Confirmed against ADO build 146781281: Touchdown returned
  WSL.adml translations for 20 locales and saved them on disk, but the
  resulting auto-PR (#40511) contained only the resw modifications.

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-13 12:40:43 -07:00
WSL Team
697572d664 Initial open source commit for WSL.
Many Microsoft employees have contributed to the Windows Subsystem for Linux, this commit is the result of their work since 2016.

The entire history of the Windows Subsystem for Linux can't be shared here, but here's an overview of WSL's history after it moved to it own repository in 2021:

Number of commits on the main branch: 2930
Number of contributors: 31

Head over https://github.com/microsoft/WSL/releases for a more detailed history of the features added to WSL since 2021.
2025-05-15 12:09:45 -07:00