From df6c517b45eef605eb81856b1ef6edbe13a455d0 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sun, 21 Jun 2026 11:34:36 +0200 Subject: [PATCH] Fixed I18N namespace detection in key collection --- app/Build/Commands/CollectI18NKeysCommand.cs | 14 ++++++++++++-- .../Assistants/I18N/allTexts.lua | 18 +++++++++--------- .../plugin.lua | 18 +++++++++--------- .../plugin.lua | 18 +++++++++--------- 4 files changed, 39 insertions(+), 29 deletions(-) diff --git a/app/Build/Commands/CollectI18NKeysCommand.cs b/app/Build/Commands/CollectI18NKeysCommand.cs index d36e650a..760a018a 100644 --- a/app/Build/Commands/CollectI18NKeysCommand.cs +++ b/app/Build/Commands/CollectI18NKeysCommand.cs @@ -53,6 +53,9 @@ public sealed partial class CollectI18NKeysCommand foreach (var filePath in allFiles) { counter++; + if(!this.IsSupportedSourceFile(filePath)) + continue; + if(filePath.StartsWith(binPath, StringComparison.OrdinalIgnoreCase)) continue; @@ -68,6 +71,9 @@ public sealed partial class CollectI18NKeysCommand continue; var ns = this.DetermineNamespace(filePath); + if(ns is null) + throw new InvalidOperationException($"Could not determine the namespace for I18N source file '{filePath}'."); + var fileInfo = new FileInfo(filePath); var name = this.DetermineTypeName(filePath) @@ -204,6 +210,10 @@ public sealed partial class CollectI18NKeysCommand return matches; } + + private bool IsSupportedSourceFile(string filePath) => + filePath.EndsWith(".cs", StringComparison.OrdinalIgnoreCase) || + filePath.EndsWith(".razor", StringComparison.OrdinalIgnoreCase); private string? DetermineNamespace(string filePath) { @@ -302,10 +312,10 @@ public sealed partial class CollectI18NKeysCommand return match.Groups[1].Value; } - [GeneratedRegex("""@namespace\s+([a-zA-Z0-9_.]+)""")] + [GeneratedRegex("""(?m)^\s*@namespace\s+([a-zA-Z0-9_.]+)""")] private static partial Regex BlazorNamespaceRegex(); - [GeneratedRegex("""namespace\s+([a-zA-Z0-9_.]+)""")] + [GeneratedRegex("""(?m)^\s*namespace\s+([a-zA-Z0-9_.]+)\s*[;{]""")] private static partial Regex CSharpNamespaceRegex(); [GeneratedRegex("""\bpartial\s+(?:class|struct|interface|record(?:\s+(?:class|struct))?)\s+([A-Za-z_][A-Za-z0-9_]*)""")] diff --git a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua index 1dc33e9a..e3a7c504 100644 --- a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua +++ b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua @@ -46,15 +46,6 @@ LANG_NAME = "English (United States)" UI_TEXT_CONTENT = {} --- Self-hosted -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T146444217"] = "Self-hosted" - --- No provider selected -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T2897045472"] = "No provider selected" - --- Unknown -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unknown" - -- No audit provider is configured. UI_TEXT_CONTENT["AISTUDIO::AGENTS::ASSISTANTAUDIT::ASSISTANTAUDITAGENT::T2034826200"] = "No audit provider is configured." @@ -6751,6 +6742,15 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T3188327965"] = -- Very Low UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T786675843"] = "Very Low" +-- Self-hosted +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T146444217"] = "Self-hosted" + +-- No provider selected +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T2897045472"] = "No provider selected" + +-- Unknown +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unknown" + -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "no model selected" diff --git a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua index 38dc2242..aa29617a 100644 --- a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua @@ -48,15 +48,6 @@ LANG_NAME = "Deutsch (Deutschland)" UI_TEXT_CONTENT = {} --- Self-hosted -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T146444217"] = "Selbst gehostet" - --- No provider selected -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T2897045472"] = "Kein Anbieter ausgewählt" - --- Unknown -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unbekannt" - -- No audit provider is configured. UI_TEXT_CONTENT["AISTUDIO::AGENTS::ASSISTANTAUDIT::ASSISTANTAUDITAGENT::T2034826200"] = "Es ist kein Audit-Anbieter konfiguriert." @@ -6753,6 +6744,15 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T3188327965"] = -- Very Low UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T786675843"] = "Sehr niedrig" +-- Self-hosted +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T146444217"] = "Selbst gehostet" + +-- No provider selected +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T2897045472"] = "Kein Anbieter ausgewählt" + +-- Unknown +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unbekannt" + -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "Kein Modell ausgewählt" diff --git a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua index 32e27a17..c5f1fc1f 100644 --- a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua @@ -48,15 +48,6 @@ LANG_NAME = "English (United States)" UI_TEXT_CONTENT = {} --- Self-hosted -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T146444217"] = "Self-hosted" - --- No provider selected -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T2897045472"] = "No provider selected" - --- Unknown -UI_TEXT_CONTENT["::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unknown" - -- No audit provider is configured. UI_TEXT_CONTENT["AISTUDIO::AGENTS::ASSISTANTAUDIT::ASSISTANTAUDITAGENT::T2034826200"] = "No audit provider is configured." @@ -6753,6 +6744,15 @@ UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T3188327965"] = -- Very Low UI_TEXT_CONTENT["AISTUDIO::PROVIDER::CONFIDENCELEVELEXTENSIONS::T786675843"] = "Very Low" +-- Self-hosted +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T146444217"] = "Self-hosted" + +-- No provider selected +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T2897045472"] = "No provider selected" + +-- Unknown +UI_TEXT_CONTENT["AISTUDIO::PROVIDER::LLMPROVIDERSEXTENSIONS::T3424652889"] = "Unknown" + -- no model selected UI_TEXT_CONTENT["AISTUDIO::PROVIDER::MODEL::T2234274832"] = "no model selected"