@@ -20,11 +20,17 @@ type SidebarTone = "light" | "glass";
2020function SidebarHeader ( {
2121 collapsed,
2222 tone,
23+ locale,
2324} : {
2425 collapsed : boolean ;
2526 tone : SidebarTone ;
27+ locale : string ;
2628} ) {
2729 const glass = tone === "glass" ;
30+ const subtitle =
31+ locale === "zh-CN"
32+ ? "办公空间协同决策智能体平台"
33+ : "Collaborative agent office platform" ;
2834
2935 return (
3036 < div
@@ -44,7 +50,7 @@ function SidebarHeader({
4450 < span className = "absolute inset-0 bg-[radial-gradient(circle_at_30%_20%,rgba(125,211,252,0.42),transparent_42%),linear-gradient(135deg,rgba(255,255,255,0.96),rgba(224,242,254,0.46))]" />
4551 < span className = "relative" > CP</ span >
4652 </ span >
47- { ! collapsed && (
53+ { ! collapsed ? (
4854 < span className = "min-w-0" >
4955 < span
5056 className = { cn (
@@ -55,10 +61,10 @@ function SidebarHeader({
5561 Cube Pets Office
5662 </ span >
5763 < span className = "mt-1.5 block truncate text-[11px] font-semibold leading-none text-slate-500" >
58- 办公室已成为桌面运转的伙伴
64+ { subtitle }
5965 </ span >
6066 </ span >
61- ) }
67+ ) : null }
6268 </ div >
6369 ) ;
6470}
@@ -122,13 +128,13 @@ function SidebarNavItem({
122128 >
123129 < Icon className = "size-[17px] shrink-0" />
124130 </ span >
125- { ! collapsed && < span className = "truncate" > { label } </ span > }
126- { active && (
131+ { ! collapsed ? < span className = "truncate" > { label } </ span > : null }
132+ { active ? (
127133 < >
128134 < span className = "absolute left-0 top-1/2 h-7 w-1 -translate-y-1/2 rounded-r-full bg-sky-400 shadow-[0_0_18px_rgba(56,189,248,0.68)]" />
129135 < span className = "pointer-events-none absolute inset-y-2 right-2 w-12 rounded-full bg-[radial-gradient(circle,rgba(125,211,252,0.22),transparent_68%)]" />
130136 </ >
131- ) }
137+ ) : null }
132138 </ button >
133139 ) ;
134140
@@ -139,11 +145,11 @@ function SidebarNavItem({
139145 < TooltipTrigger asChild > { content } </ TooltipTrigger >
140146 < TooltipContent side = "right" sideOffset = { 8 } >
141147 { label }
142- { isDisabled && (
148+ { isDisabled ? (
143149 < span className = "ml-1 text-xs opacity-60" >
144150 ({ comingSoonLabel } )
145151 </ span >
146- ) }
152+ ) : null }
147153 </ TooltipContent >
148154 </ Tooltip >
149155 </ li >
@@ -156,11 +162,14 @@ function SidebarNavItem({
156162function SidebarUserBlock ( {
157163 collapsed,
158164 tone,
165+ locale,
159166} : {
160167 collapsed : boolean ;
161168 tone : SidebarTone ;
169+ locale : string ;
162170} ) {
163171 const glass = tone === "glass" ;
172+ const modeLabel = locale === "zh-CN" ? "高级模式" : "Advanced mode" ;
164173
165174 return (
166175 < div
@@ -185,16 +194,16 @@ function SidebarUserBlock({
185194 >
186195 MC
187196 </ div >
188- { ! collapsed && (
197+ { ! collapsed ? (
189198 < span className = "min-w-0" >
190199 < span className = "block truncate text-sm font-bold text-slate-800" >
191200 Mission Control
192201 </ span >
193202 < span className = "mt-0.5 block truncate text-[11px] font-medium text-slate-500" >
194- 高级模式
203+ { modeLabel }
195204 </ span >
196205 </ span >
197- ) }
206+ ) : null }
198207 </ div >
199208 ) ;
200209}
@@ -233,21 +242,22 @@ export function AppSidebar({
233242 embedded = false ,
234243} : AppSidebarProps ) {
235244 const [ location , setLocation ] = useLocation ( ) ;
236- const { copy } = useI18n ( ) ;
245+ const { locale , copy } = useI18n ( ) ;
237246 const activeId = getActiveSidebarId ( location ) ;
238- const sidebarCopy = copy . sidebar ;
239247 const sidebarTone : SidebarTone = embedded ? "glass" : "light" ;
248+ const isZh = locale === "zh-CN" ;
249+ const sidebarCopy = copy . sidebar ;
240250
241251 const labelMap : Record < string , string > = {
242- autopilot : sidebarCopy . autopilot ,
243- tasks : sidebarCopy . tasks ,
244- projects : sidebarCopy . projects ,
245- knowledge : sidebarCopy . knowledge ,
246- datasource : sidebarCopy . datasource ,
247- dashboard : sidebarCopy . dashboard ,
248- marketplace : sidebarCopy . marketplace ,
249- notifications : sidebarCopy . notifications ,
250- settings : sidebarCopy . settings ,
252+ autopilot : isZh ? "自动驾驶" : sidebarCopy . autopilot ,
253+ tasks : isZh ? "任务中心" : sidebarCopy . tasks ,
254+ projects : isZh ? "项目空间" : sidebarCopy . projects ,
255+ knowledge : isZh ? "知识库" : sidebarCopy . knowledge ,
256+ datasource : isZh ? "数据源" : sidebarCopy . datasource ,
257+ dashboard : isZh ? "数据看板" : sidebarCopy . dashboard ,
258+ marketplace : isZh ? "智能体市场" : sidebarCopy . marketplace ,
259+ notifications : isZh ? "通知中心" : sidebarCopy . notifications ,
260+ settings : isZh ? "设置与集成" : sidebarCopy . settings ,
251261 } ;
252262
253263 return (
@@ -272,7 +282,11 @@ export function AppSidebar({
272282 color : "#1e293b" ,
273283 } }
274284 >
275- < SidebarHeader collapsed = { collapsed } tone = { sidebarTone } />
285+ < SidebarHeader
286+ collapsed = { collapsed }
287+ tone = { sidebarTone }
288+ locale = { locale }
289+ />
276290
277291 < nav
278292 className = { cn (
@@ -281,9 +295,9 @@ export function AppSidebar({
281295 ) }
282296 aria-label = "Main navigation"
283297 >
284- { ! collapsed && (
298+ { ! collapsed ? (
285299 < span className = "pointer-events-none absolute bottom-8 left-[31px] top-5 w-px bg-gradient-to-b from-transparent via-sky-100/80 to-transparent" />
286- ) }
300+ ) : null }
287301 < ul role = "list" className = "relative flex flex-col gap-2.5" >
288302 { SIDEBAR_NAV_ITEMS . map ( item => (
289303 < SidebarNavItem
@@ -319,9 +333,13 @@ export function AppSidebar({
319333
320334 < SidebarStatusBlock collapsed = { collapsed } tone = { sidebarTone } />
321335
322- < SidebarUserBlock collapsed = { collapsed } tone = { sidebarTone } />
336+ < SidebarUserBlock
337+ collapsed = { collapsed }
338+ tone = { sidebarTone }
339+ locale = { locale }
340+ />
323341
324- { ! collapsed && < SidebarTaskStats tone = { sidebarTone } /> }
342+ { ! collapsed ? < SidebarTaskStats tone = { sidebarTone } /> : null }
325343 </ aside >
326344 ) ;
327345}
0 commit comments