From e7ad69be2687ef54c3f52cf330cfe9cda3763b42 Mon Sep 17 00:00:00 2001 From: Archi Date: Mon, 11 Dec 2023 11:38:37 +0100 Subject: [PATCH] Closes #3093 --- ArchiSteamFarm.sln.DotSettings | 3 +- ArchiSteamFarm/Steam/Bot.cs | 1 + .../Steam/Integration/SteamUtilities.cs | 36 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/ArchiSteamFarm.sln.DotSettings b/ArchiSteamFarm.sln.DotSettings index 26efa745c..6a7ef2aa4 100644 --- a/ArchiSteamFarm.sln.DotSettings +++ b/ArchiSteamFarm.sln.DotSettings @@ -712,7 +712,7 @@ / ___ \ | | | (__ | | | || | ___) || |_| __/| (_| || | | | | || _|| (_| || | | | | | | | /_/ \_\|_| \___||_| |_||_||____/ \__|\___| \__,_||_| |_| |_||_| \__,_||_| |_| |_| |_| | -Copyright 2015-$CURRENT_YEAR$ Łukasz "JustArchi" Domeradzki +Copyright 2015-${CurrentDate.Year} Łukasz "JustArchi" Domeradzki Contact: JustArchi@JustArchi.net | Licensed under the Apache License, Version 2.0 (the "License"); @@ -787,6 +787,7 @@ limitations under the License. True NOTIFY + True True True True diff --git a/ArchiSteamFarm/Steam/Bot.cs b/ArchiSteamFarm/Steam/Bot.cs index 3fe4b8113..a7ba09575 100644 --- a/ArchiSteamFarm/Steam/Bot.cs +++ b/ArchiSteamFarm/Steam/Bot.cs @@ -2705,6 +2705,7 @@ public sealed class Bot : IAsyncDisposable, IDisposable { SteamUser.LogOnDetails logOnDetails = new() { AccessToken = RefreshToken, CellID = ASF.GlobalDatabase?.CellID, + ClientLanguage = CultureInfo.CurrentCulture.ToSteamClientLanguage(), LoginID = LoginID, ShouldRememberPassword = BotConfig.UseLoginKeys, Username = username diff --git a/ArchiSteamFarm/Steam/Integration/SteamUtilities.cs b/ArchiSteamFarm/Steam/Integration/SteamUtilities.cs index f3a01090d..453d4c93f 100644 --- a/ArchiSteamFarm/Steam/Integration/SteamUtilities.cs +++ b/ArchiSteamFarm/Steam/Integration/SteamUtilities.cs @@ -67,4 +67,40 @@ internal static class SteamUtilities { return result; } + + internal static string ToSteamClientLanguage(this CultureInfo cultureInfo) { + ArgumentNullException.ThrowIfNull(cultureInfo); + + // We're doing our best here to map provided CultureInfo to language supported by Steam + return cultureInfo.TwoLetterISOLanguageName switch { + "bg" => "bulgarian", + "cs" => "czech", + "da" => "danish", + "de" => "german", + "es" when cultureInfo.Name is "es-419" or "es-AR" or "es-BO" or "es-BR" or "es-BZ" or "es-CL" or "es-CO" or "es-CR" or "es-CU" or "es-DO" or "es-EC" or "es-GQ" or "es-GT" or "es-HN" or "es-MX" or "es-NI" or "es-PA" or "es-PE" or "es-PH" or "es-PR" or "es-PY" or "es-SV" or "es-US" or "es-UY" or "es-VE" => "latam", + "es" => "spanish", + "el" => "greek", + "fr" => "french", + "fi" => "finnish", + "hu" => "hungarian", + "id" => "indonesian", + "it" => "italian", + "ko" => "koreana", + "nl" => "dutch", + "no" => "norwegian", + "pl" => "polish", + "pt" when cultureInfo.Name == "pt-BR" => "brazilian", + "pt" => "portuguese", + "ro" => "romanian", + "ru" => "russian", + "sv" => "swedish", + "th" => "thai", + "tr" => "turkish", + "uk" => "ukrainian", + "vi" => "vietnamese", + "zh" when cultureInfo.Name is "zh-Hant" or "zh-HK" or "zh-MO" or "zh-TW" => "tchinese", + "zh" => "schinese", + _ => "english" + }; + } }