Skip to content

Commit a7899f6

Browse files
committed
feat(本地化): 为服务连接管理添加多语言支持
添加GameFrameX.Localization项目引用 在ServiceConnect和ServiceConnectManager中使用本地化服务替换硬编码日志消息 添加中英文资源文件中的服务连接相关消息键和文本 在Keys.DiscoveryCenterManager中添加服务连接相关的消息键常量
1 parent 0843c54 commit a7899f6

7 files changed

Lines changed: 161 additions & 9 deletions

File tree

GameFrameX.DiscoveryCenterManager/GameFrameX.DiscoveryCenterManager.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<OutputPath>..\bin\app</OutputPath>
3939
</PropertyGroup>
4040
<ItemGroup>
41+
<ProjectReference Include="..\GameFrameX.Localization\GameFrameX.Localization.csproj" />
4142
<ProjectReference Include="..\GameFrameX.Monitor\GameFrameX.Monitor.csproj" />
4243
<ProjectReference Include="..\GameFrameX.NetWork\GameFrameX.NetWork.csproj" />
4344
<ProjectReference Include="..\GameFrameX.Utility\GameFrameX.Utility.csproj" />

GameFrameX.DiscoveryCenterManager/Service/ServiceConnect.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
using GameFrameX.DiscoveryCenterManager.ServiceClient;
3333
using GameFrameX.Foundation.Logger;
3434
using GameFrameX.Foundation.Localization.Core;
35+
using GameFrameX.Localization;
3536
using GameFrameX.NetWork;
3637
using GameFrameX.NetWork.Abstractions;
3738
using GameFrameX.NetWork.Messages;
@@ -98,7 +99,7 @@ public async Task InitAsync()
9899
{
99100
if (IsInit)
100101
{
101-
Log.Warning($"ServiceConnectManager Init {Name} already initialized");
102+
Log.Warning(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServiceAlreadyInitialized, Name));
102103
return;
103104
}
104105

@@ -139,7 +140,7 @@ public async Task InitAsync()
139140
/// </remarks>
140141
private void GameAppServiceClientOnError(string s, ErrorEventArgs errorEventArgs)
141142
{
142-
Log.Error($"ServiceConnectManager OnError {errorEventArgs.Exception}");
143+
Log.Error(LocalizationService.GetString(Keys.DiscoveryCenterManager.ClientError, errorEventArgs.Exception));
143144
_initTaskCompletionSource.TrySetResult();
144145
}
145146

GameFrameX.DiscoveryCenterManager/Service/ServiceConnectManager.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
using GameFrameX.NetWork.Abstractions;
3434
using GameFrameX.NetWork.Messages;
3535
using GameFrameX.Utility;
36+
using GameFrameX.Foundation.Localization.Core;
37+
using GameFrameX.Localization;
3638
using Serilog;
3739

3840
namespace GameFrameX.DiscoveryCenterManager.Service;
@@ -82,7 +84,7 @@ public void Register(string name, long serverId, long serverInstanceId, string h
8284
{
8385
if (_serviceConnects.TryGetValue(serverInstanceId, out var serviceConnect))
8486
{
85-
Log.Warning($"ServiceConnectManager Register ServerInstanceId:{serverInstanceId} already registered");
87+
Log.Warning(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServerInstanceAlreadyRegistered, serverInstanceId));
8688
return;
8789
}
8890

@@ -101,12 +103,12 @@ public void UnRegister(long serverInstanceId)
101103
{
102104
if (_serviceConnects.Remove(serverInstanceId, out var serviceConnect))
103105
{
104-
Log.Information($"ServiceConnectManager UnRegister ServerInstanceId:{serverInstanceId}");
106+
Log.Information(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServerInstanceUnregistered, serverInstanceId));
105107
serviceConnect?.Dispose();
106108
}
107109
else
108110
{
109-
Log.Error($"ServiceConnectManager UnRegister ServerInstanceId:{serverInstanceId} not found");
111+
Log.Error(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServerInstanceNotFound, serverInstanceId));
110112
}
111113
}
112114

@@ -133,7 +135,7 @@ public async Task Send(long serverInstanceId, MessageObject message)
133135
}
134136
else
135137
{
136-
Log.Error($"ServiceConnectManager Send ServerInstanceId:{serverInstanceId} not found");
138+
Log.Error(LocalizationService.GetString(Keys.DiscoveryCenterManager.SendServerInstanceNotFound, serverInstanceId));
137139
}
138140
}
139141

@@ -169,7 +171,7 @@ public async Task Send(long serverInstanceId, MessageObject message)
169171
return await serviceConnect.ServiceClient.Call<T>(request, timeout);
170172
}
171173

172-
Log.Error($"ServiceConnectManager Call ServerInstanceId:{serverInstanceId} not found");
174+
Log.Error(LocalizationService.GetString(Keys.DiscoveryCenterManager.CallServerInstanceNotFound, serverInstanceId));
173175
return default;
174176
}
175177
}

GameFrameX.Launcher/StartUp/Discovery/AppStartUpDiscoveryCenterByServer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private void OnPlayerAdd(IPlayerInfo playerInfo)
9494

9595
private void OnServerRemove(IServiceInfo serverInfo)
9696
{
97-
LogHelper.DebugConsole("服务下线回调,通知其他服务器:" + serverInfo);
97+
LogHelper.DebugConsole(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServiceOfflineCallback, serverInfo));
9898
var serverList = _namingServiceManager.GetOuterNodes();
9999
serverList = serverList.Where(m => m.ServerId != 0 && m.ServerInstanceId != serverInfo.ServerInstanceId)
100100
.ToList();
@@ -122,7 +122,7 @@ private void OnServerRemove(IServiceInfo serverInfo)
122122

123123
private void OnServerAdd(IServiceInfo serverInfo)
124124
{
125-
LogHelper.DebugConsole("服务上线回调,通知其他服务器:" + serverInfo);
125+
LogHelper.DebugConsole(LocalizationService.GetString(Keys.DiscoveryCenterManager.ServiceOnlineCallback, serverInfo));
126126
var serverList = _namingServiceManager.GetOuterNodes();
127127
serverList = serverList.Where(m => m.ServerInstanceId != serverInfo.ServerInstanceId).ToList();
128128

GameFrameX.Localization/Keys.DiscoveryCenterManager.cs

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,5 +240,95 @@ public static class DiscoveryCenterManager
240240
/// 参数: {0} - 节点信息
241241
/// </remarks>
242242
public const string DuplicateNodeWarning = "DiscoveryCenterManager.Server.DuplicateNodeWarning";
243+
244+
/// <summary>
245+
/// ServiceConnectManager Register ServerInstanceId:{0} already registered
246+
/// </summary>
247+
/// <remarks>
248+
/// 键名: DiscoveryCenterManager.ServiceConnect.ServerInstanceAlreadyRegistered
249+
/// 用途: 当注册的服务器实例ID已存在时记录警告
250+
/// 参数: {0} - 服务器实例ID
251+
/// </remarks>
252+
public const string ServerInstanceAlreadyRegistered = "DiscoveryCenterManager.ServiceConnect.ServerInstanceAlreadyRegistered";
253+
254+
/// <summary>
255+
/// ServiceConnectManager UnRegister ServerInstanceId:{0}
256+
/// </summary>
257+
/// <remarks>
258+
/// 键名: DiscoveryCenterManager.ServiceConnect.ServerInstanceUnregistered
259+
/// 用途: 当服务器实例注销成功时记录信息
260+
/// 参数: {0} - 服务器实例ID
261+
/// </remarks>
262+
public const string ServerInstanceUnregistered = "DiscoveryCenterManager.ServiceConnect.ServerInstanceUnregistered";
263+
264+
/// <summary>
265+
/// ServiceConnectManager UnRegister ServerInstanceId:{0} not found
266+
/// </summary>
267+
/// <remarks>
268+
/// 键名: DiscoveryCenterManager.ServiceConnect.ServerInstanceNotFound
269+
/// 用途: 当尝试注销不存在服务器实例时记录错误
270+
/// 参数: {0} - 服务器实例ID
271+
/// </remarks>
272+
public const string ServerInstanceNotFound = "DiscoveryCenterManager.ServiceConnect.ServerInstanceNotFound";
273+
274+
/// <summary>
275+
/// ServiceConnectManager Send ServerInstanceId:{0} not found
276+
/// </summary>
277+
/// <remarks>
278+
/// 键名: DiscoveryCenterManager.ServiceConnect.SendServerInstanceNotFound
279+
/// 用途: 当发送消息时找不到目标服务器实例时记录错误
280+
/// 参数: {0} - 服务器实例ID
281+
/// </remarks>
282+
public const string SendServerInstanceNotFound = "DiscoveryCenterManager.ServiceConnect.SendServerInstanceNotFound";
283+
284+
/// <summary>
285+
/// ServiceConnectManager Call ServerInstanceId:{0} not found
286+
/// </summary>
287+
/// <remarks>
288+
/// 键名: DiscoveryCenterManager.ServiceConnect.CallServerInstanceNotFound
289+
/// 用途: 当RPC调用时找不到目标服务器实例时记录错误
290+
/// 参数: {0} - 服务器实例ID
291+
/// </remarks>
292+
public const string CallServerInstanceNotFound = "DiscoveryCenterManager.ServiceConnect.CallServerInstanceNotFound";
293+
294+
/// <summary>
295+
/// ServiceConnectManager Init {0} already initialized
296+
/// </summary>
297+
/// <remarks>
298+
/// 键名: DiscoveryCenterManager.ServiceConnect.ServiceAlreadyInitialized
299+
/// 用途: 当服务已初始化时记录警告
300+
/// 参数: {0} - 服务名称
301+
/// </remarks>
302+
public const string ServiceAlreadyInitialized = "DiscoveryCenterManager.ServiceConnect.ServiceAlreadyInitialized";
303+
304+
/// <summary>
305+
/// ServiceConnectManager OnError {0}
306+
/// </summary>
307+
/// <remarks>
308+
/// 键名: DiscoveryCenterManager.ServiceConnect.ClientError
309+
/// 用途: 当客户端发生错误时记录错误日志
310+
/// 参数: {0} - 异常信息
311+
/// </remarks>
312+
public const string ClientError = "DiscoveryCenterManager.ServiceConnect.ClientError";
313+
314+
/// <summary>
315+
/// 服务上线回调,通知其他服务器: {0}
316+
/// </summary>
317+
/// <remarks>
318+
/// 键名: DiscoveryCenterManager.Startup.ServiceOnlineCallback
319+
/// 用途: 当服务上线时记录调试日志并通知其他服务器
320+
/// 参数: {0} - 服务器信息
321+
/// </remarks>
322+
public const string ServiceOnlineCallback = "DiscoveryCenterManager.Startup.ServiceOnlineCallback";
323+
324+
/// <summary>
325+
/// 服务下线回调,通知其他服务器: {0}
326+
/// </summary>
327+
/// <remarks>
328+
/// 键名: DiscoveryCenterManager.Startup.ServiceOfflineCallback
329+
/// 用途: 当服务下线时记录调试日志并通知其他服务器
330+
/// 参数: {0} - 服务器信息
331+
/// </remarks>
332+
public const string ServiceOfflineCallback = "DiscoveryCenterManager.Startup.ServiceOfflineCallback";
243333
}
244334
}

GameFrameX.Localization/Localization/Messages/Resources.resx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,35 @@
611611
<value>Duplicate node addition...Ignored: {0}</value>
612612
</data>
613613

614+
<!-- ServiceConnect related messages -->
615+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceAlreadyRegistered" xml:space="preserve">
616+
<value>ServiceConnectManager Register ServerInstanceId:{0} already registered</value>
617+
</data>
618+
619+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceUnregistered" xml:space="preserve">
620+
<value>ServiceConnectManager UnRegister ServerInstanceId:{0}</value>
621+
</data>
622+
623+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceNotFound" xml:space="preserve">
624+
<value>ServiceConnectManager UnRegister ServerInstanceId:{0} not found</value>
625+
</data>
626+
627+
<data name="DiscoveryCenterManager.ServiceConnect.SendServerInstanceNotFound" xml:space="preserve">
628+
<value>ServiceConnectManager Send ServerInstanceId:{0} not found</value>
629+
</data>
630+
631+
<data name="DiscoveryCenterManager.ServiceConnect.CallServerInstanceNotFound" xml:space="preserve">
632+
<value>ServiceConnectManager Call ServerInstanceId:{0} not found</value>
633+
</data>
634+
635+
<data name="DiscoveryCenterManager.ServiceConnect.ServiceAlreadyInitialized" xml:space="preserve">
636+
<value>ServiceConnectManager Init {0} already initialized</value>
637+
</data>
638+
639+
<data name="DiscoveryCenterManager.ServiceConnect.ClientError" xml:space="preserve">
640+
<value>ServiceConnectManager OnError {0}</value>
641+
</data>
642+
614643
<!-- Core module log messages -->
615644
<!-- Actor related messages -->
616645
<data name="Core.Actor.CrossDay" xml:space="preserve">

GameFrameX.Localization/Localization/Messages/Resources.zh-CN.resx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,35 @@
643643
<value>重复节点添加,已忽略: {0}</value>
644644
</data>
645645

646+
<!-- ServiceConnect 相关消息 -->
647+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceAlreadyRegistered" xml:space="preserve">
648+
<value>ServiceConnectManager 注册 服务器实例ID:{0} 已被注册</value>
649+
</data>
650+
651+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceUnregistered" xml:space="preserve">
652+
<value>ServiceConnectManager 注销 服务器实例ID:{0}</value>
653+
</data>
654+
655+
<data name="DiscoveryCenterManager.ServiceConnect.ServerInstanceNotFound" xml:space="preserve">
656+
<value>ServiceConnectManager 注销 服务器实例ID:{0} 未找到</value>
657+
</data>
658+
659+
<data name="DiscoveryCenterManager.ServiceConnect.SendServerInstanceNotFound" xml:space="preserve">
660+
<value>ServiceConnectManager 发送 服务器实例ID:{0} 未找到</value>
661+
</data>
662+
663+
<data name="DiscoveryCenterManager.ServiceConnect.CallServerInstanceNotFound" xml:space="preserve">
664+
<value>ServiceConnectManager 调用 服务器实例ID:{0} 未找到</value>
665+
</data>
666+
667+
<data name="DiscoveryCenterManager.ServiceConnect.ServiceAlreadyInitialized" xml:space="preserve">
668+
<value>ServiceConnectManager 初始化 {0} 已初始化</value>
669+
</data>
670+
671+
<data name="DiscoveryCenterManager.ServiceConnect.ClientError" xml:space="preserve">
672+
<value>ServiceConnectManager 错误 {0}</value>
673+
</data>
674+
646675
<!-- Core 模块日志消息 -->
647676
<!-- Actor 相关消息 -->
648677
<data name="Core.Actor.CrossDay" xml:space="preserve">

0 commit comments

Comments
 (0)