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