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;
}
}
}