Improved I18N system (#445)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2025-05-03 21:47:43 +02:00
1 parent f8dbc186fb
commit cfc2103b43
11 files changed
+109 -26

No files matched your search

@@ -0,0 +1,16 @@
using AIStudio.Tools.PluginSystem;
namespace AIStudio.Settings.DataModel;
public static class LangBehaviorExtensions
{
private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(LangBehaviorExtensions).Namespace, nameof(LangBehaviorExtensions));
public static string Name(this LangBehavior langBehavior) => langBehavior switch
{
LangBehavior.AUTO => TB("Choose the language automatically, based on your system language."),
LangBehavior.MANUAL => TB("Choose the language manually."),
_ => TB("Unknown option")
};
}
@@ -1,12 +0,0 @@
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"
};
}
@@ -13,7 +13,7 @@ namespace AIStudio.Settings;
/// <summary>
/// The settings manager.
/// </summary>
public sealed class SettingsManager(ILogger<SettingsManager> logger, RustService rustService)
public sealed class SettingsManager
{
private const string SETTINGS_FILENAME = "settings.json";
@@ -23,9 +23,19 @@ public sealed class SettingsManager(ILogger<SettingsManager> logger, RustService
Converters = { new TolerantEnumConverter() },
};
private readonly ILogger<SettingsManager> logger = logger;
private readonly RustService rustService = rustService;
private readonly ILogger<SettingsManager> logger;
private readonly RustService rustService;
/// <summary>
/// The settings manager.
/// </summary>
public SettingsManager(ILogger<SettingsManager> logger, RustService rustService)
{
this.logger = logger;
this.rustService = rustService;
this.logger.LogInformation("Settings manager created.");
}
/// <summary>
/// The directory where the configuration files are stored.
/// </summary>