mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-05 01:09:40 +00:00
Improved I18N system (#445)
This commit is contained in:
1 parent
f8dbc186fb
commit
cfc2103b43
11 files changed
+109
-26
No files matched your search
@@ -0,0 +1,30 @@
|
||||
namespace AIStudio.Tools.PluginSystem;
|
||||
|
||||
public class I18N : ILang
|
||||
{
|
||||
public static readonly I18N I = new();
|
||||
private static readonly ILogger<I18N> LOG = Program.LOGGER_FACTORY.CreateLogger<I18N>();
|
||||
|
||||
private ILanguagePlugin language = PluginFactory.BaseLanguage;
|
||||
|
||||
private I18N()
|
||||
{
|
||||
}
|
||||
|
||||
public static void Init(ILanguagePlugin language) => I.language = language;
|
||||
|
||||
#region Implementation of ILang
|
||||
|
||||
public string T(string fallbackEN)
|
||||
{
|
||||
LOG.LogWarning("Using I18N.I.T without namespace and type is probably wrong, because the I18N key collection process of the build system will not find those keys.");
|
||||
return this.GetText(this.language, fallbackEN);
|
||||
}
|
||||
|
||||
public string T(string fallbackEN, string? typeNamespace, string? typeName)
|
||||
{
|
||||
return this.GetText(this.language, fallbackEN, typeNamespace, typeName);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -12,8 +12,8 @@ public static class ILangExtensions
|
||||
typeName ??= type.Name;
|
||||
typeNamespace ??= type.Namespace!;
|
||||
|
||||
// When the type's name ends with `1 or 2`, etc. (i.e., generic classes), remove it:
|
||||
if(typeName.Contains("`"))
|
||||
// When the type's name ends with `1 or `2, etc. (i.e., generic classes), remove it:
|
||||
if(typeName.Contains('`'))
|
||||
typeName = typeName[..typeName.IndexOf('`')];
|
||||
|
||||
var ns = $"{typeNamespace}::{typeName}".ToUpperInvariant().Replace(".", "::");
|
||||
|
||||
Reference in new issue
Block a user