diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor index e67aaf5f..32d9a320 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor @@ -3,6 +3,17 @@ @inherits SettingsPanelBase + + @if (PreviewFeatures.PRE_PLUGINS_2025.IsEnabled(this.SettingsManager)) + { + + + @if (this.SettingsManager.ConfigurationData.App.LanguageBehavior is LangBehavior.MANUAL) + { + + } + } + diff --git a/app/MindWork AI Studio/Settings/ConfigurationSelectData.cs b/app/MindWork AI Studio/Settings/ConfigurationSelectData.cs index 5a2b8f11..d6c39297 100644 --- a/app/MindWork AI Studio/Settings/ConfigurationSelectData.cs +++ b/app/MindWork AI Studio/Settings/ConfigurationSelectData.cs @@ -6,6 +6,7 @@ using AIStudio.Assistants.TextSummarizer; using AIStudio.Assistants.EMail; using AIStudio.Provider; using AIStudio.Settings.DataModel; +using AIStudio.Tools.PluginSystem; using WritingStylesRewrite = AIStudio.Assistants.RewriteImprove.WritingStyles; using WritingStylesEMail = AIStudio.Assistants.EMail.WritingStyles; @@ -25,6 +26,21 @@ public readonly record struct ConfigurationSelectData(string Name, T Value); /// public static class ConfigurationSelectDataFactory { + public static IEnumerable> GetLangBehaviorData() + { + foreach (var behavior in Enum.GetValues()) + yield return new(behavior.Name(), behavior); + } + + public static IEnumerable> GetLanguagesData() + { + foreach (var availablePlugin in PluginFactory.RunningPlugins) + { + if(availablePlugin is ILanguagePlugin languagePlugin) + yield return new(languagePlugin.LangName, availablePlugin.Id); + } + } + public static IEnumerable> GetLoadingChatProviderBehavior() { yield return new("When possible, use the LLM provider which was used for each chat in the first place", LoadingChatProviderBehavior.USE_CHAT_PROVIDER_IF_AVAILABLE); diff --git a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs index 7e89404a..af76fa26 100644 --- a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs +++ b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs @@ -2,6 +2,16 @@ namespace AIStudio.Settings.DataModel; public sealed class DataApp { + /// + /// The language behavior. + /// + public LangBehavior LanguageBehavior { get; set; } = LangBehavior.AUTO; + + /// + /// The language plugin ID to use. + /// + public Guid LanguagePluginId { get; set; } = Guid.Empty; + /// /// The preferred theme to use. /// diff --git a/app/MindWork AI Studio/Settings/DataModel/LangBehavior.cs b/app/MindWork AI Studio/Settings/DataModel/LangBehavior.cs new file mode 100644 index 00000000..492d6bca --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/LangBehavior.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Settings.DataModel; + +public enum LangBehavior +{ + AUTO, + MANUAL, +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/DataModel/LangBehaviourExtensions.cs b/app/MindWork AI Studio/Settings/DataModel/LangBehaviourExtensions.cs new file mode 100644 index 00000000..c71caf92 --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/LangBehaviourExtensions.cs @@ -0,0 +1,12 @@ +namespace AIStudio.Settings.DataModel; + +public static class LangBehaviorExtensions +{ + public static string Name(this LangBehavior langBehavior) => langBehavior switch + { + LangBehavior.AUTO => "Choose the language automatically, based on your system language.", + LangBehavior.MANUAL => "Choose the language manually.", + + _ => "Unknown option" + }; +} \ No newline at end of file