namespace BaseGames.Localization
{
///
/// 本地化资源路径 / Addressable 地址的唯一真相源。
///
/// 运行时与编辑器工具的所有路径、地址都必须经此类构造,禁止再硬编码
/// "Assets/_Game/Data/Localization" 或 "Localization/{lang}/{table}" 字符串。
///
/// 设计要点:
/// - 纯静态、无 UnityEditor 依赖,放运行时 asmdef(BaseGames.Localization),
/// 使运行时加载()与编辑器工具共用同一套路径逻辑。
/// - 物理 JSON 路径()供编辑器直读 / 写盘;
/// Addressable 地址()供运行时 AssetLoader 加载。
///
public static class LocalizationPaths
{
/// 本地化 JSON 数据根目录(项目资产相对路径)。
public const string DataRoot = "Assets/_Game/Data/Localization";
/// CSV 导入导出目录(供 Excel 往返)。
public const string ExportRoot = "Assets/_Game/Localization/Export";
/// 指定语言的子目录,如 Assets/_Game/Data/Localization/English。
public static string LanguageFolder(Language language) => $"{DataRoot}/{language}";
/// 指定语言 + 表的 JSON 资产路径。
public static string AssetPath(Language language, string table)
=> $"{DataRoot}/{language}/{table}.json";
///
/// 指定语言 + 表的 Addressable 地址(运行时加载用)。
/// 必须与 指向的文件注册的地址一致。
///
public static string Address(Language language, string table)
=> $"Localization/{language}/{table}";
/// 指定表的 CSV 导出路径。
public static string CsvPath(string table) => $"{ExportRoot}/{table}.csv";
}
}