feat(domain): add SidebarSection grouping and sidebar localization strings

Add SidebarSection enum to AtlasRoute with core/manage groupings,
isSidebarRoute filter, and sidebarSection lookup. Add en/zh-Hans
strings for sidebar sections, about window title, and about command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
zhukang
2026-03-10 21:57:02 +08:00
parent 3a62db7d74
commit 7b75e84218
3 changed files with 61 additions and 0 deletions

View File

@@ -11,6 +11,57 @@ public enum AtlasRoute: String, CaseIterable, Codable, Hashable, Identifiable, S
public var id: String { rawValue }
// MARK: - Sidebar
public enum SidebarSection: String, CaseIterable, Identifiable, Sendable {
case core
case manage
public var id: String { rawValue }
public var title: String {
switch self {
case .core:
return AtlasL10n.string("sidebar.section.core")
case .manage:
return AtlasL10n.string("sidebar.section.manage")
}
}
public var routes: [AtlasRoute] {
switch self {
case .core:
return [.overview, .smartClean, .apps]
case .manage:
return [.history, .permissions]
}
}
}
public var isSidebarRoute: Bool {
switch self {
case .settings, .about:
return false
default:
return true
}
}
public static var sidebarRoutes: [AtlasRoute] {
allCases.filter(\.isSidebarRoute)
}
public var sidebarSection: SidebarSection? {
switch self {
case .overview, .smartClean, .apps:
return .core
case .history, .permissions:
return .manage
case .settings, .about:
return nil
}
}
public var title: String {
switch self {
case .overview:

View File

@@ -602,3 +602,8 @@
"about.social.discord" = "Discord";
"smartclean.preview.callout.review.title" = "Some steps in this plan need a closer review";
"sidebar.section.core" = "Core";
"sidebar.section.manage" = "Manage";
"about.window.title" = "About Atlas";
"commands.about" = "About Atlas";

View File

@@ -602,3 +602,8 @@
"about.social.discord" = "Discord";
"smartclean.preview.callout.review.title" = "这份计划中仍有步骤需要复核";
"sidebar.section.core" = "核心";
"sidebar.section.manage" = "管理";
"about.window.title" = "关于 Atlas";
"commands.about" = "关于 Atlas";