mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-04-28 10:39:47 +00:00
Add language behavior to the app settings
This commit is contained in:
parent
7f6190a883
commit
900b65edf5
@ -3,6 +3,17 @@
|
|||||||
@inherits SettingsPanelBase
|
@inherits SettingsPanelBase
|
||||||
|
|
||||||
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.Apps" HeaderText="App Options">
|
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.Apps" HeaderText="App Options">
|
||||||
|
|
||||||
|
@if (PreviewFeatures.PRE_PLUGINS_2025.IsEnabled(this.SettingsManager))
|
||||||
|
{
|
||||||
|
<ConfigurationSelect OptionDescription="Language behavior" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.LanguageBehavior)" Data="@ConfigurationSelectDataFactory.GetLangBehaviorData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.LanguageBehavior = selectedValue)" OptionHelp="Select the language behavior for the app. The default is to use the system language. You might want to choose a language manually?"/>
|
||||||
|
|
||||||
|
@if (this.SettingsManager.ConfigurationData.App.LanguageBehavior is LangBehavior.MANUAL)
|
||||||
|
{
|
||||||
|
<ConfigurationSelect OptionDescription="Language" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.LanguagePluginId)" Data="@ConfigurationSelectDataFactory.GetLanguagesData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.LanguagePluginId = selectedValue)" OptionHelp="Select the language for the app."/>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
<ConfigurationSelect OptionDescription="Color theme" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreferredTheme)" Data="@ConfigurationSelectDataFactory.GetThemesData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.PreferredTheme = selectedValue)" OptionHelp="Choose the color theme that best suits for you."/>
|
<ConfigurationSelect OptionDescription="Color theme" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreferredTheme)" Data="@ConfigurationSelectDataFactory.GetThemesData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.PreferredTheme = selectedValue)" OptionHelp="Choose the color theme that best suits for you."/>
|
||||||
<ConfigurationOption OptionDescription="Save energy?" LabelOn="Energy saving is enabled" LabelOff="Energy saving is disabled" State="@(() => this.SettingsManager.ConfigurationData.App.IsSavingEnergy)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.IsSavingEnergy = updatedState)" OptionHelp="When enabled, streamed content from the AI is updated once every third second. When disabled, streamed content will be updated as soon as it is available."/>
|
<ConfigurationOption OptionDescription="Save energy?" LabelOn="Energy saving is enabled" LabelOff="Energy saving is disabled" State="@(() => this.SettingsManager.ConfigurationData.App.IsSavingEnergy)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.IsSavingEnergy = updatedState)" OptionHelp="When enabled, streamed content from the AI is updated once every third second. When disabled, streamed content will be updated as soon as it is available."/>
|
||||||
<ConfigurationOption OptionDescription="Enable spellchecking?" LabelOn="Spellchecking is enabled" LabelOff="Spellchecking is disabled" State="@(() => this.SettingsManager.ConfigurationData.App.EnableSpellchecking)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.EnableSpellchecking = updatedState)" OptionHelp="When enabled, spellchecking will be active in all input fields. Depending on your operating system, errors may not be visually highlighted, but right-clicking may still offer possible corrections." />
|
<ConfigurationOption OptionDescription="Enable spellchecking?" LabelOn="Spellchecking is enabled" LabelOff="Spellchecking is disabled" State="@(() => this.SettingsManager.ConfigurationData.App.EnableSpellchecking)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.EnableSpellchecking = updatedState)" OptionHelp="When enabled, spellchecking will be active in all input fields. Depending on your operating system, errors may not be visually highlighted, but right-clicking may still offer possible corrections." />
|
||||||
|
@ -6,6 +6,7 @@ using AIStudio.Assistants.TextSummarizer;
|
|||||||
using AIStudio.Assistants.EMail;
|
using AIStudio.Assistants.EMail;
|
||||||
using AIStudio.Provider;
|
using AIStudio.Provider;
|
||||||
using AIStudio.Settings.DataModel;
|
using AIStudio.Settings.DataModel;
|
||||||
|
using AIStudio.Tools.PluginSystem;
|
||||||
|
|
||||||
using WritingStylesRewrite = AIStudio.Assistants.RewriteImprove.WritingStyles;
|
using WritingStylesRewrite = AIStudio.Assistants.RewriteImprove.WritingStyles;
|
||||||
using WritingStylesEMail = AIStudio.Assistants.EMail.WritingStyles;
|
using WritingStylesEMail = AIStudio.Assistants.EMail.WritingStyles;
|
||||||
@ -25,6 +26,21 @@ public readonly record struct ConfigurationSelectData<T>(string Name, T Value);
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class ConfigurationSelectDataFactory
|
public static class ConfigurationSelectDataFactory
|
||||||
{
|
{
|
||||||
|
public static IEnumerable<ConfigurationSelectData<LangBehavior>> GetLangBehaviorData()
|
||||||
|
{
|
||||||
|
foreach (var behavior in Enum.GetValues<LangBehavior>())
|
||||||
|
yield return new(behavior.Name(), behavior);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<ConfigurationSelectData<Guid>> GetLanguagesData()
|
||||||
|
{
|
||||||
|
foreach (var availablePlugin in PluginFactory.RunningPlugins)
|
||||||
|
{
|
||||||
|
if(availablePlugin is ILanguagePlugin languagePlugin)
|
||||||
|
yield return new(languagePlugin.LangName, availablePlugin.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static IEnumerable<ConfigurationSelectData<LoadingChatProviderBehavior>> GetLoadingChatProviderBehavior()
|
public static IEnumerable<ConfigurationSelectData<LoadingChatProviderBehavior>> 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);
|
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);
|
||||||
|
@ -2,6 +2,16 @@ namespace AIStudio.Settings.DataModel;
|
|||||||
|
|
||||||
public sealed class DataApp
|
public sealed class DataApp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The language behavior.
|
||||||
|
/// </summary>
|
||||||
|
public LangBehavior LanguageBehavior { get; set; } = LangBehavior.AUTO;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The language plugin ID to use.
|
||||||
|
/// </summary>
|
||||||
|
public Guid LanguagePluginId { get; set; } = Guid.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The preferred theme to use.
|
/// The preferred theme to use.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace AIStudio.Settings.DataModel;
|
||||||
|
|
||||||
|
public enum LangBehavior
|
||||||
|
{
|
||||||
|
AUTO,
|
||||||
|
MANUAL,
|
||||||
|
}
|
@ -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"
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user