using System.Globalization; using GFramework.Core.Abstractions.Systems; namespace GFramework.Core.Abstractions.Localization; /// /// 本地化管理器接口 /// public interface ILocalizationManager : ISystem { /// /// 当前语言代码 /// string CurrentLanguage { get; } /// /// 当前文化信息 /// CultureInfo CurrentCulture { get; } /// /// 可用语言列表 /// IReadOnlyList AvailableLanguages { get; } /// /// 设置当前语言 /// /// 语言代码 void SetLanguage(string languageCode); /// /// 获取本地化表 /// /// 表名 /// 本地化表 ILocalizationTable GetTable(string tableName); /// /// 获取本地化文本 /// /// 表名 /// 键名 /// 本地化文本 string GetText(string table, string key); /// /// 获取本地化字符串(支持变量和格式化) /// /// 表名 /// 键名 /// 本地化字符串 ILocalizationString GetString(string table, string key); /// /// 尝试获取本地化文本 /// /// 表名 /// 键名 /// 输出文本 /// 是否成功获取 bool TryGetText(string table, string key, out string text); /// /// 注册格式化器 /// /// 格式化器名称 /// 格式化器实例 void RegisterFormatter(string name, ILocalizationFormatter formatter); /// /// 获取格式化器 /// /// 格式化器名称 /// 格式化器实例,如果不存在则返回 null ILocalizationFormatter? GetFormatter(string name); /// /// 订阅语言变化事件 /// /// 回调函数 void SubscribeToLanguageChange(Action callback); /// /// 取消订阅语言变化事件 /// /// 回调函数 void UnsubscribeFromLanguageChange(Action callback); }