From b4a210c3087b624c1c84d7640d5c417f32426734 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Mon, 16 Feb 2026 11:58:45 +0100 Subject: [PATCH] Removed redudant normalization --- .../Settings/SettingsManager.cs | 54 +++---------------- 1 file changed, 6 insertions(+), 48 deletions(-) diff --git a/app/MindWork AI Studio/Settings/SettingsManager.cs b/app/MindWork AI Studio/Settings/SettingsManager.cs index faa821fd..d4bfc7e3 100644 --- a/app/MindWork AI Studio/Settings/SettingsManager.cs +++ b/app/MindWork AI Studio/Settings/SettingsManager.cs @@ -172,32 +172,31 @@ public sealed class SettingsManager { case LangBehavior.AUTO: var languageCode = await this.rustService.ReadUserLanguage(); - var normalizedLanguageCode = NormalizeLocaleTag(languageCode); var languagePlugins = PluginFactory.RunningPlugins.OfType().ToList(); - if (!string.IsNullOrWhiteSpace(normalizedLanguageCode)) + if (!string.IsNullOrWhiteSpace(languageCode)) { - var exactMatch = languagePlugins.FirstOrDefault(x => string.Equals(NormalizeLocaleTag(x.IETFTag), normalizedLanguageCode, StringComparison.OrdinalIgnoreCase)); + var exactMatch = languagePlugins.FirstOrDefault(x => string.Equals(x.IETFTag, languageCode, StringComparison.OrdinalIgnoreCase)); if (exactMatch is not null) return exactMatch; - var primaryLanguage = GetPrimaryLanguage(normalizedLanguageCode); + var primaryLanguage = GetPrimaryLanguage(languageCode); if (!string.IsNullOrWhiteSpace(primaryLanguage)) { var primaryLanguageMatch = languagePlugins - .Where(x => string.Equals(GetPrimaryLanguage(NormalizeLocaleTag(x.IETFTag)), primaryLanguage, StringComparison.OrdinalIgnoreCase)) + .Where(x => string.Equals(GetPrimaryLanguage(x.IETFTag), primaryLanguage, StringComparison.OrdinalIgnoreCase)) .OrderBy(x => x.IETFTag, StringComparer.OrdinalIgnoreCase) .FirstOrDefault(); if (primaryLanguageMatch is not null) { - this.logger.LogWarning($"No exact language plugin found for '{normalizedLanguageCode}'. Use language fallback '{primaryLanguageMatch.IETFTag}'."); + this.logger.LogWarning($"No exact language plugin found for '{languageCode}'. Use language fallback '{primaryLanguageMatch.IETFTag}'."); return primaryLanguageMatch; } } } - this.logger.LogWarning($"The language plugin for the language '{languageCode}' (normalized='{normalizedLanguageCode}') is not available."); + this.logger.LogWarning($"The language plugin for the language '{languageCode}' (normalized='{languageCode}') is not available."); return PluginFactory.BaseLanguage; case LangBehavior.MANUAL: @@ -220,47 +219,6 @@ public sealed class SettingsManager return PluginFactory.BaseLanguage; } - private static string NormalizeLocaleTag(string? localeTag) - { - if (string.IsNullOrWhiteSpace(localeTag)) - return string.Empty; - - var trimmed = localeTag.Trim(); - - var encodingIndex = trimmed.IndexOf('.'); - if (encodingIndex >= 0) - trimmed = trimmed[..encodingIndex]; - - var modifierIndex = trimmed.IndexOf('@'); - if (modifierIndex >= 0) - trimmed = trimmed[..modifierIndex]; - - trimmed = trimmed.Replace('_', '-'); - if (string.IsNullOrWhiteSpace(trimmed)) - return string.Empty; - - var segments = trimmed.Split('-', StringSplitOptions.RemoveEmptyEntries); - if (segments.Length == 0) - return string.Empty; - - var language = segments[0].Trim(); - if (language.Equals("c", StringComparison.OrdinalIgnoreCase) || language.Equals("posix", StringComparison.OrdinalIgnoreCase)) - return string.Empty; - - if (language.Length < 2 || !language.All(char.IsLetter)) - return string.Empty; - - language = language.ToLowerInvariant(); - if (segments.Length > 1) - { - var region = segments[1].Trim(); - if (region.Length == 2 && region.All(char.IsLetter)) - return $"{language}-{region.ToUpperInvariant()}"; - } - - return language; - } - private static string GetPrimaryLanguage(string localeTag) { if (string.IsNullOrWhiteSpace(localeTag))