From 7f6190a883b1df4c0ecdb8bdfa7bed5aa479af6d Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sat, 12 Apr 2025 11:10:20 +0200 Subject: [PATCH] Add LangName property to language plugin interface and implementation --- .../plugin.lua | 3 ++ .../plugin.lua | 3 ++ .../Tools/PluginSystem/ILanguagePlugin.cs | 5 ++++ .../Tools/PluginSystem/PluginLanguage.cs | 29 +++++++++++++++++++ 4 files changed, 40 insertions(+) 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 634c8e74..a3a35172 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 @@ -44,6 +44,9 @@ DEPRECATION_MESSAGE = "" -- code followed by the ISO 3166-1 country code: IETF_TAG = "de-DE" +-- The language name in the user's language: +LANG_NAME = "Deutsch (Deutschland)" + UI_TEXT_CONTENT = { HOME = CONTENT_HOME, } 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 78f66474..d234853c 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 @@ -44,6 +44,9 @@ DEPRECATION_MESSAGE = "" -- code followed by the ISO 3166-1 country code: IETF_TAG = "en-US" +-- The language name in the user's language: +LANG_NAME = "English (United States)" + UI_TEXT_CONTENT = { HOME = CONTENT_HOME, } diff --git a/app/MindWork AI Studio/Tools/PluginSystem/ILanguagePlugin.cs b/app/MindWork AI Studio/Tools/PluginSystem/ILanguagePlugin.cs index 5d6191e9..5b9fd895 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/ILanguagePlugin.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/ILanguagePlugin.cs @@ -23,4 +23,9 @@ public interface ILanguagePlugin /// Gets the IETF tag of the language plugin. /// public string IETFTag { get; } + + /// + /// Gets the name of the language. + /// + public string LangName { get; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginLanguage.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginLanguage.cs index 39a60759..c5865ffa 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginLanguage.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginLanguage.cs @@ -7,6 +7,7 @@ public sealed class PluginLanguage : PluginBase, ILanguagePlugin private readonly Dictionary content = []; private readonly List otherLanguagePlugins = []; private readonly string langCultureTag; + private readonly string langName; private ILanguagePlugin? baseLanguage; @@ -15,6 +16,9 @@ public sealed class PluginLanguage : PluginBase, ILanguagePlugin if(!this.TryInitIETFTag(out var issue, out this.langCultureTag)) this.pluginIssues.Add(issue); + if(!this.TryInitLangName(out issue, out this.langName)) + this.pluginIssues.Add(issue); + if (this.TryInitUITextContent(out issue, out var readContent)) this.content = readContent; else @@ -127,7 +131,32 @@ public sealed class PluginLanguage : PluginBase, ILanguagePlugin message = string.Empty; return true; } + + private bool TryInitLangName(out string message, out string readLangName) + { + if (!this.state.Environment["LANG_NAME"].TryRead(out readLangName)) + { + message = "The field LANG_NAME does not exist or is not a valid string."; + readLangName = string.Empty; + return false; + } + + if (string.IsNullOrWhiteSpace(readLangName)) + { + message = "The field LANG_NAME is empty. Use a valid language name."; + readLangName = string.Empty; + return false; + } + + message = string.Empty; + return true; + } /// public string IETFTag => this.langCultureTag; + + /// + public string LangName => this.langName; + + #endregion } \ No newline at end of file