microsoft / microsoft/winget-cli
Winget installing wrong locale version of app
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 26.4k
- Forks
- 1.8k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 15
Description
Brief description of your issue
Winget is installing packages using the wrong locale. I tried to install Mozilla.Firefox, which within the package specifies en-US as default and my system is also set to en-US, however winget installed the en-GB version of it even on a 2nd and 3rd try.
I just freshly installed windows 11 23H2 (after updates OS Build 22631.3007) using the en-US iso (Windows automagically set the country or region in settings to Germany regardless of my choices, but that's not an winget related issue). I also didn't log into Microsoft account and installed it using a local account (as connecting to the wifi didn't work, even though it was detected on the oobe screen, so it cannot be something fetched from there either).
For reference, I did not change any of the localization settings manually (yet) and my system has:
PS C:\Users\user> Get-WinUserLanguageList
LanguageTag : en-DE
Autonym : English (Germany)
EnglishName : English
LocalizedName : English (Germany)
ScriptName : Latin
InputMethodTips : {}
Spellchecking : True
Handwriting : False
LanguageTag : en-US
Autonym : English (United States)
EnglishName : English
LocalizedName : English (United States)
ScriptName : Latin
InputMethodTips : {0409:00000409}
Spellchecking : True
Handwriting : False
LanguageTag : en-GB
Autonym : English (United Kingdom)
EnglishName : English
LocalizedName : English (United Kingdom)
ScriptName : Latin
InputMethodTips : {0809:00000407}
Spellchecking : True
Handwriting : False
PS C:\Users\user> Get-WinHomeLocation
GeoId HomeLocation
----- ------------
94 Germany
Steps to reproduce
- Be in Germany
- Install Windows 11 Pro 23H2 using the en-US iso and the default locale settings for en-US.
- Let windows install all updates.
winget install Mozilla.Firefox
Edit: Issue is caused by the presence of "en-DE" (why is it even there when I freshly installed en-US Windows?) within the WinUserLanguageList. When I order en-US before it winget is correctly installing en-US. However even though it has higher priority than en-GB (as seen above), when en-DE is listed first, en-US 2nd, and en-GB 3rd winget still defaults to en-GB. (Same, but expected, for en-US being 3rd and en-GB 2nd).
Expected behavior
Installing Mozilla.Firefox using the en-US locale
Actual behavior
Installing Mozilla.Firefox using the en-GB locale
Environment
PS C:\Users\user> winget --info
Windows Package Manager v1.6.3482
Copyright (c) Microsoft Corporation. All rights reserved.
Windows: Windows.Desktop v10.0.22631.3007
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.3482.0
Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User) %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User) %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root C:\Program Files\WinGet\Packages
Portable Package Root (x86) C:\Program Files (x86)\WinGet\Packages
Installer Downloads %USERPROFILE%\Downloads
Links
---------------------------------------------------------------------------
Privacy Statement https://aka.ms/winget-privacy
License Agreement https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale
Admin Setting State
--------------------------------------------------
LocalManifestFiles Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride Disabled
LocalArchiveMalwareScanOverride Disabled
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing winget install Mozilla.Firefox with the listed Windows language order, then trace how the CLI selects a package locale from WinUserLanguageList. Check the behavior when en-DE precedes en-US and en-GB; done means the en-US package is selected when it is the preferred matching locale, without breaking expected fallback behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, internationalization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100