From c21875c51ac1bb9ccfcf53e9e03b65e34d6780af Mon Sep 17 00:00:00 2001 From: Blank Date: Sat, 24 Oct 2026 16:06:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(localization):=20=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=20Keys.Capability.Online=20=E4=B8=BA=20OnlineModule?= =?UTF-8?q?=20=E6=B6=88=E9=99=A4=E5=B5=8C=E5=A5=97=E7=B1=BB=E9=81=AE?= =?UTF-8?q?=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SonarCloud S3218 CRITICAL:Keys.Capability.cs:657 嵌套类 Online 遮蔽 外层 Keys.Online(Keys.Online.cs:41),按 C182/C198/C199/C208 先例 追加 Module 后缀消歧;8 个 Capability.Online.* 资源键字面量与 resx 逐字节不变,同步全仓 6 文件 14 处类型引用。 Linear: GFX-1012 --- .../OnlineCompetitionCapabilityModule.cs | 4 ++-- .../OnlineMatchCapabilityModule.cs | 4 ++-- .../OnlineOperationsCapabilityModule.cs | 8 ++++---- GameFrameX.Localization/Keys.Capability.cs | 2 +- .../Online/CapabilityDependencyCheckTests.cs | 4 ++-- .../Online/CapabilityServiceSharingTests.cs | 4 ++-- .../Online/OnlineCapabilityComposeTests.cs | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Capability/GameFrameX.Capability.Online.Competition/OnlineCompetitionCapabilityModule.cs b/Capability/GameFrameX.Capability.Online.Competition/OnlineCompetitionCapabilityModule.cs index fe5691b81..0e27c8809 100644 --- a/Capability/GameFrameX.Capability.Online.Competition/OnlineCompetitionCapabilityModule.cs +++ b/Capability/GameFrameX.Capability.Online.Competition/OnlineCompetitionCapabilityModule.cs @@ -71,8 +71,8 @@ public sealed class OnlineCompetitionCapabilityModule : ICapabilityModule, IAdmi null, new[] { - new CapabilityOptionalDependency("online-assets", Localization.Keys.Capability.Online.Competition.OptionalAssetsAbsent), - new CapabilityOptionalDependency("online-match", Localization.Keys.Capability.Online.Competition.OptionalMatchAbsent), + new CapabilityOptionalDependency("online-assets", Localization.Keys.Capability.OnlineModule.Competition.OptionalAssetsAbsent), + new CapabilityOptionalDependency("online-match", Localization.Keys.Capability.OnlineModule.Competition.OptionalMatchAbsent), }, typeof(OnlineCompetitionOptions)); diff --git a/Capability/GameFrameX.Capability.Online.Match/OnlineMatchCapabilityModule.cs b/Capability/GameFrameX.Capability.Online.Match/OnlineMatchCapabilityModule.cs index ff20562e7..21c7f2b73 100644 --- a/Capability/GameFrameX.Capability.Online.Match/OnlineMatchCapabilityModule.cs +++ b/Capability/GameFrameX.Capability.Online.Match/OnlineMatchCapabilityModule.cs @@ -75,8 +75,8 @@ public sealed class OnlineMatchCapabilityModule : ICapabilityModule, IAdminActio null, new[] { - new CapabilityOptionalDependency("online-assets", Keys.Capability.Online.Match.OptionalAssetsAbsent), - new CapabilityOptionalDependency("online-matchmaking", Keys.Capability.Online.Match.OptionalMatchmakingAbsent), + new CapabilityOptionalDependency("online-assets", Keys.Capability.OnlineModule.Match.OptionalAssetsAbsent), + new CapabilityOptionalDependency("online-matchmaking", Keys.Capability.OnlineModule.Match.OptionalMatchmakingAbsent), }, typeof(OnlineMatchOptions)); diff --git a/Capability/GameFrameX.Capability.Online.Operations/OnlineOperationsCapabilityModule.cs b/Capability/GameFrameX.Capability.Online.Operations/OnlineOperationsCapabilityModule.cs index cb82c243f..e45c93217 100644 --- a/Capability/GameFrameX.Capability.Online.Operations/OnlineOperationsCapabilityModule.cs +++ b/Capability/GameFrameX.Capability.Online.Operations/OnlineOperationsCapabilityModule.cs @@ -83,10 +83,10 @@ public sealed class OnlineOperationsCapabilityModule : ICapabilityModule, IAdmin new[] { "online-foundation" }, new[] { - new CapabilityOptionalDependency("online-assets", Localization.Keys.Capability.Online.Operations.OptionalAssetsAbsent), - new CapabilityOptionalDependency("online-social", Localization.Keys.Capability.Online.Operations.OptionalSocialAbsent), - new CapabilityOptionalDependency("online-match", Localization.Keys.Capability.Online.Operations.OptionalMatchAbsent), - new CapabilityOptionalDependency("online-matchmaking", Localization.Keys.Capability.Online.Operations.OptionalMatchmakingAbsent), + new CapabilityOptionalDependency("online-assets", Localization.Keys.Capability.OnlineModule.Operations.OptionalAssetsAbsent), + new CapabilityOptionalDependency("online-social", Localization.Keys.Capability.OnlineModule.Operations.OptionalSocialAbsent), + new CapabilityOptionalDependency("online-match", Localization.Keys.Capability.OnlineModule.Operations.OptionalMatchAbsent), + new CapabilityOptionalDependency("online-matchmaking", Localization.Keys.Capability.OnlineModule.Operations.OptionalMatchmakingAbsent), }, typeof(OnlineOperationsOptions)); diff --git a/GameFrameX.Localization/Keys.Capability.cs b/GameFrameX.Localization/Keys.Capability.cs index 437d15ed6..bc3646a77 100644 --- a/GameFrameX.Localization/Keys.Capability.cs +++ b/GameFrameX.Localization/Keys.Capability.cs @@ -654,7 +654,7 @@ public static class Assembly /// /// Online 能力族相关消息 /// - public static class Online + public static class OnlineModule { /// /// online-match(对局)能力相关消息 diff --git a/Tests/GameFrameX.Tests/Online/CapabilityDependencyCheckTests.cs b/Tests/GameFrameX.Tests/Online/CapabilityDependencyCheckTests.cs index 319e59c19..9f79353d7 100644 --- a/Tests/GameFrameX.Tests/Online/CapabilityDependencyCheckTests.cs +++ b/Tests/GameFrameX.Tests/Online/CapabilityDependencyCheckTests.cs @@ -183,7 +183,7 @@ public async Task Compose_MissingOptionalDependency_AssemblesAndDisclosesAbsentF CapabilityRuntime runtime = null; try { - var featureKey = LocalizationKeys.Capability.Online.Match.OptionalAssetsAbsent; + var featureKey = LocalizationKeys.Capability.OnlineModule.Match.OptionalAssetsAbsent; var registerInvoked = false; MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("ghost-optional", featureKey), }; MechanismScenario.First.Register = context => registerInvoked = true; @@ -231,7 +231,7 @@ public async Task Compose_OptionalAbsenceReasons_DistinguishEnableListDisableLis CapabilityRuntime runtime = null; try { - var featureKey = LocalizationKeys.Capability.Online.Match.OptionalAssetsAbsent; + var featureKey = LocalizationKeys.Capability.OnlineModule.Match.OptionalAssetsAbsent; MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("mech-second", featureKey), diff --git a/Tests/GameFrameX.Tests/Online/CapabilityServiceSharingTests.cs b/Tests/GameFrameX.Tests/Online/CapabilityServiceSharingTests.cs index 8201268f1..c5dd51376 100644 --- a/Tests/GameFrameX.Tests/Online/CapabilityServiceSharingTests.cs +++ b/Tests/GameFrameX.Tests/Online/CapabilityServiceSharingTests.cs @@ -453,7 +453,7 @@ public async Task GetOptionalService_DeclaredOptionalDependencyAbsent_ReturnsNul { var registerResolved = new SignalService { Marker = "sentinel", }; var activateResolved = new SignalService { Marker = "sentinel", }; - MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("mech-second", GameFrameX.Localization.Keys.Capability.Online.Match.OptionalAssetsAbsent), }; + MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("mech-second", GameFrameX.Localization.Keys.Capability.OnlineModule.Match.OptionalAssetsAbsent), }; MechanismScenario.First.Register = context => registerResolved = context.GetOptionalService(); MechanismScenario.First.Activate = (context, cancellationToken) => { @@ -488,7 +488,7 @@ public async Task GetOptionalService_NoAbsentOptionalDependency_FailsFast() CapabilityRuntime runtime = null; try { - MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("mech-second", GameFrameX.Localization.Keys.Capability.Online.Match.OptionalAssetsAbsent), }; + MechanismScenario.First.Optional = new[] { new CapabilityOptionalDependency("mech-second", GameFrameX.Localization.Keys.Capability.OnlineModule.Match.OptionalAssetsAbsent), }; MechanismScenario.First.Register = context => context.GetOptionalService(); var registerError = Assert.Throws(() => Compose(CreateOptions("mech-first", "mech-second"))); diff --git a/Tests/GameFrameX.Tests/Online/OnlineCapabilityComposeTests.cs b/Tests/GameFrameX.Tests/Online/OnlineCapabilityComposeTests.cs index 2769d9d1a..d6b421d1e 100644 --- a/Tests/GameFrameX.Tests/Online/OnlineCapabilityComposeTests.cs +++ b/Tests/GameFrameX.Tests/Online/OnlineCapabilityComposeTests.cs @@ -745,8 +745,8 @@ await OnlineCapabilityTestHarness.WithRuntimeAsync(async runtime => } Assert.Equal(2, match.AbsentFeatures.Count); - Assert.Contains(LocalizationService.GetString(GameFrameX.Localization.Keys.Capability.Online.Match.OptionalAssetsAbsent), match.AbsentFeatures); - Assert.Contains(LocalizationService.GetString(GameFrameX.Localization.Keys.Capability.Online.Match.OptionalMatchmakingAbsent), match.AbsentFeatures); + Assert.Contains(LocalizationService.GetString(GameFrameX.Localization.Keys.Capability.OnlineModule.Match.OptionalAssetsAbsent), match.AbsentFeatures); + Assert.Contains(LocalizationService.GetString(GameFrameX.Localization.Keys.Capability.OnlineModule.Match.OptionalMatchmakingAbsent), match.AbsentFeatures); Assert.Contains(runtime.Host.Modules, module => module.Manifest.Id == "online-match"); await runtime.Host.StartAsync();