using System.Collections.Generic; namespace BaseGames.Localization { /// /// 标记一个 ScriptableObject 持有可本地化字段。 /// 实现此接口后, /// 将自动发现并检查该 SO 的所有 Key,无需在审计模块中硬编码扫描逻辑。 /// /// 新增 SO 类型时:实现此接口即可自动纳入本地化审计,不需要修改审计模块。 /// public interface ILocalizableAsset { /// /// 返回该资产中所有本地化 Key 的引用列表。 /// 实现时跳过空 key(string.IsNullOrEmpty 检查)。 /// IEnumerable GetLocalizationKeys(); } /// /// 对一个本地化 Key 引用的描述,供审计工具使用。 /// public readonly struct LocalizationKeyRef { /// 本地化 Key 字符串。 public readonly string Key; /// 所属表名(使用 常量)。 public readonly string Table; /// 该 Key 来自的字段名称,用于审计报告中精确定位。 public readonly string FieldName; public LocalizationKeyRef(string key, string table, string fieldName) { Key = key; Table = table; FieldName = fieldName; } } }