How do you handle language settings for Teams 2.0?...
# citrix-vad
b
How do you handle language settings for Teams 2.0? The
app_settings.json
file can be updated via an external task in WEM, but this only works on the second start. File location: C:\Users*\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams I've shortened the content for simpler reading: { "install_source": 0, "theme": 3, "zoom_factor": 1.0, "language": "en-US", "app_launch_count": 0, "first_app_launch_time": 0, "core_launch_count": 0, "first_core_launch_time": 0 } Autodetection of the OS Language does not work.
❤️ 1
👍 1
j
I think i did this for the default user in Teams 1.0 and it worked OK, not sure if the new version works the same
b
It can't preexist. It get's resetted...
j
I used to inject it into the default user profile and the settings would persist for each user. If they've killed that capability in the new Teams, well, I'm glad I don't work with it any more
I used to use Ivanti to kill Teams when it first launched and then restart it after updating the JSON file. Not sure WEM has the same power as Ivanti though. But that technique works for stuff that needs "second start" to kick in
d
On a side note. Congratz @Balint Oberrauch
a
I’m only testing on English language Windows 10/11, and I haven’t tested on Windows Server. Configuring the correct locale and installing the language pack before Teams 2.0 is launched results in the right language selection without having to pre-configure or modify that JSON. Tested for en-AU, en-GB, and en-US
On Windows client, the LanguagePackManagement module is available but for Windows Server, you’ll need to download and install the language pack (hopefully this is changed in Windows Server 2025).
Here’s the code:
Copy code
[System.String] $Language = "en-AU"
[System.String] $TimeZone = "AUS Eastern Standard Time"
Import-Module -Name "International"
Set-TimeZone -Name $TimeZone
Set-Culture -CultureInfo $Language
Set-WinSystemLocale -SystemLocale $Language
Set-WinUILanguageOverride -Language $Language
Set-WinUserLanguageList -LanguageList $Language -Force
$RegionInfo = New-Object -TypeName "System.Globalization.RegionInfo" -ArgumentList $Language
Set-WinHomeLocation -GeoId $RegionInfo.GeoId
if (Get-Command -Name "Set-SystemPreferredUILanguage" -ErrorAction "SilentlyContinue") {
    Set-SystemPreferredUILanguage -Language $Language
}

Import-Module -Name "LanguagePackManagement"
Install-SystemLanguage -Language $Language
j
How does that function on multi-session systems? (Or have you not gone down that road yet)
a
Tested on single and multi-session. It should in theory also work on Windows Server
j
Ah OK, so the language you install would be set for all users on that box? Was just wondering if you could somehow set particular users to be flagged to get a particular language
a
Yes. Picked up from the default locale on the machine at first logon Not sure - but if you install multiple language pack support, users could change their language and it should stick
j
It's a pretty niche ask to be fair. You could just have pools of machines for each locale I guess
a
Many of those commands in that listing above will accept an array of language codes.
p
If you have WEM, can you not use the json files action? Rather than external task action.
r
JSON file action is doable in my testing but it’s not on point with teams 2.1
Hmmm good point @James Rankin about killing it and reopening it. It’s tricky with it now though, but I imagine a little thought process and it is possible