From b6a4c3182ed55c9df9c346f1d3a408b3177988c9 Mon Sep 17 00:00:00 2001 From: ngc2207 Date: Thu, 12 Dec 2024 21:32:06 +0800 Subject: [PATCH] feat(i18n): update AppSidebar component for internationalization support chore(site): add siteConfig --- messages/en-US.json | 4 + messages/zh-CN.json | 4 + src/components/app-sidebar.tsx | 252 +++++++++++++++++---------------- src/config/site.ts | 6 +- 4 files changed, 141 insertions(+), 125 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 08c84e7..4e6ba19 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -18,6 +18,10 @@ "shareProject": "Share Project", "deleteProject": "Delete Project", "more": "More" + }, + "NavSecondary": { + "support": "Support", + "feedback": "Feedback" } } } \ No newline at end of file diff --git a/messages/zh-CN.json b/messages/zh-CN.json index e1090cc..a5c4541 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -18,6 +18,10 @@ "shareProject": "分享项目", "deleteProject": "删除项目", "more": "更多" + }, + "NavSecondary": { + "support": "支持", + "feedback": "反馈" } } } \ No newline at end of file diff --git a/src/components/app-sidebar.tsx b/src/components/app-sidebar.tsx index 489400c..aab162d 100644 --- a/src/components/app-sidebar.tsx +++ b/src/components/app-sidebar.tsx @@ -22,136 +22,140 @@ import { SidebarMenuButton, SidebarMenuItem, } from "@/components/ui/sidebar"; +import { siteConfig } from "@/config/site"; +import { useTranslations } from "next-intl"; import { NavMain } from "@/components/nav-main"; import { NavUser } from "@/components/nav-user"; import { NavProjects } from "@/components/nav-projects"; import { NavSecondary } from "@/components/nav-secondary"; -const data = { - user: { - name: "gitea", - email: "about@gitea.com", - avatar: "/gitea.svg", - }, - navMain: [ - { - title: "Playground", - url: "#", - icon: SquareTerminal, - isActive: true, - items: [ - { - title: "History", - url: "#", - }, - { - title: "Starred", - url: "#", - }, - { - title: "Settings", - url: "#", - }, - ], - }, - { - title: "Models", - url: "#", - icon: Bot, - items: [ - { - title: "Genesis", - url: "#", - }, - { - title: "Explorer", - url: "#", - }, - { - title: "Quantum", - url: "#", - }, - ], - }, - { - title: "Documentation", - url: "#", - icon: BookOpen, - items: [ - { - title: "Introduction", - url: "#", - }, - { - title: "Get Started", - url: "#", - }, - { - title: "Tutorials", - url: "#", - }, - { - title: "Changelog", - url: "#", - }, - ], - }, - { - title: "Settings", - url: "#", - icon: Settings2, - items: [ - { - title: "General", - url: "#", - }, - { - title: "Team", - url: "#", - }, - { - title: "Billing", - url: "#", - }, - { - title: "Limits", - url: "#", - }, - ], - }, - ], - navSecondary: [ - { - title: "Support", - url: "#", - icon: LifeBuoy, - }, - { - title: "Feedback", - url: "#", - icon: Send, - }, - ], - projects: [ - { - name: "Design Engineering", - url: "#", - icon: Frame, - }, - { - name: "Sales & Marketing", - url: "#", - icon: PieChart, - }, - { - name: "Travel", - url: "#", - icon: Map, - }, - ], -}; - export function AppSidebar({ ...props }: React.ComponentProps) { + const t = useTranslations(); + + const data = { + user: { + name: "gitea", + email: "about@gitea.com", + avatar: "/gitea.svg", + }, + navMain: [ + { + title: "Playground", + url: "#", + icon: SquareTerminal, + isActive: true, + items: [ + { + title: "History", + url: "#", + }, + { + title: "Starred", + url: "#", + }, + { + title: "Settings", + url: "#", + }, + ], + }, + { + title: "Models", + url: "#", + icon: Bot, + items: [ + { + title: "Genesis", + url: "#", + }, + { + title: "Explorer", + url: "#", + }, + { + title: "Quantum", + url: "#", + }, + ], + }, + { + title: "Documentation", + url: "#", + icon: BookOpen, + items: [ + { + title: "Introduction", + url: "#", + }, + { + title: "Get Started", + url: "#", + }, + { + title: "Tutorials", + url: "#", + }, + { + title: "Changelog", + url: "#", + }, + ], + }, + { + title: "Settings", + url: "#", + icon: Settings2, + items: [ + { + title: "General", + url: "#", + }, + { + title: "Team", + url: "#", + }, + { + title: "Billing", + url: "#", + }, + { + title: "Limits", + url: "#", + }, + ], + }, + ], + navSecondary: [ + { + title: t("Components.NavSecondary.support"), + url: siteConfig.url, + icon: LifeBuoy, + }, + { + title: t("Components.NavSecondary.feedback"), + url: siteConfig.url, + icon: Send, + }, + ], + projects: [ + { + name: "Design Engineering", + url: "#", + icon: Frame, + }, + { + name: "Sales & Marketing", + url: "#", + icon: PieChart, + }, + { + name: "Travel", + url: "#", + icon: Map, + }, + ], + }; + return ( diff --git a/src/config/site.ts b/src/config/site.ts index cc8ba31..b7fe804 100644 --- a/src/config/site.ts +++ b/src/config/site.ts @@ -1,4 +1,8 @@ +export const siteConfig = { + url: "https://github.com/NGC2207/judge4c", +}; + export const META_THEME_COLORS = { light: "#ffffff", dark: "#09090b", -} +};