fix: 修复命令行参数检测和日志翻译的条件逻辑

- 命令行参数检测改为不区分大小写,确保参数匹配的可靠性
- 调试模式下禁用日志翻译,避免开发过程中的翻译干扰
- 仅非中文界面启用翻译日志提供程序,中文界面使用标准日志
This commit is contained in:
辉鸭蛋
2026-02-17 22:45:59 +08:00
parent 67ced40b6b
commit 536ed10dbf
3 changed files with 19 additions and 6 deletions

View File

@@ -88,11 +88,22 @@ public partial class App : Application
Log.Logger = loggerConfiguration.CreateLogger();
services.AddSingleton<IMissingTranslationReporter, SupabaseMissingTranslationReporter>();
services.AddSingleton<ITranslationService, JsonTranslationService>();
services.AddLogging(logging =>
if ("zh-Hans".Equals(all.OtherConfig.UiCultureInfoName, StringComparison.OrdinalIgnoreCase))
{
logging.ClearProviders();
logging.Services.AddSingleton<ILoggerProvider, TranslatingSerilogLoggerProvider>();
});
services.AddLogging(c => c.AddSerilog());
}
else
{
services.AddLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Debug);
logging.AddFilter("Microsoft", LogLevel.Warning);
logging.AddFilter("Microsoft.Hosting.Lifetime", LogLevel.Warning);
logging.Services.AddSingleton<ILoggerProvider, TranslatingSerilogLoggerProvider>();
});
}
services.AddLocalization();

View File

@@ -66,7 +66,9 @@ public sealed class TranslatingSerilogLoggerProvider : ILoggerProvider
}
var (template, values) = ExtractTemplateAndValues(state, formatter, exception);
var translatedTemplate = _translationService.Translate(template, TranslationSourceInfo.From(MissingTextSource.Log));
var translatedTemplate = RuntimeHelper.IsDebuggerAttached
? template
: _translationService.Translate(template, TranslationSourceInfo.From(MissingTextSource.Log));
if (values.Length == 0)
{

View File

@@ -58,7 +58,7 @@ public class ApplicationHostService(IServiceProvider serviceProvider) : IHostedS
//无论如何,先跳到主页,否则在通过参数的任务在执行完之前,不会加载快捷键
_ = _navigationWindow.Navigate(typeof(HomePage));
if (args[1].Contains("startOneDragon"))
if (args[1].Contains("startOneDragon", StringComparison.InvariantCultureIgnoreCase))
{
// 通过命令行参数启动「一条龙」 => 跳转到一条龙配置页。