refactor: support i18n

This commit is contained in:
mlogclub
2026-05-25 12:06:15 +08:00
parent 309ac1fe9e
commit 988f55c80d
179 changed files with 10968 additions and 3763 deletions
+21 -19
View File
@@ -32,6 +32,7 @@ import {
TabsList,
TabsTrigger,
} from "@/components/ui/tabs"
import { useI18n } from "@/i18n/provider"
type DashboardTask = {
id: number
@@ -43,6 +44,7 @@ type DashboardTask = {
}
export function DataTable({ data }: { data: DashboardTask[] }) {
const t = useI18n()
return (
<Tabs
defaultValue="modules"
@@ -50,29 +52,29 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
>
<div className="flex flex-col gap-4 md:flex-row md:items-center md:justify-between">
<div>
<CardTitle className="text-xl"></CardTitle>
<CardTitle className="text-xl">{t("scaffold.moduleBoard")}</CardTitle>
<CardDescription className="mt-1">
{t("scaffold.moduleBoardDescription")}
</CardDescription>
</div>
<div className="flex items-center gap-2">
<Input className="w-full md:w-64" placeholder="搜索模块名称" />
<Input className="w-full md:w-64" placeholder={t("scaffold.searchModule")} />
<Button variant="outline">
<FilterIcon />
{t("scaffold.filter")}
</Button>
</div>
</div>
<TabsList className="w-fit">
<TabsTrigger value="modules"></TabsTrigger>
<TabsTrigger value="milestones"></TabsTrigger>
<TabsTrigger value="modules">{t("scaffold.moduleList")}</TabsTrigger>
<TabsTrigger value="milestones">{t("scaffold.milestones")}</TabsTrigger>
</TabsList>
<TabsContent value="modules" className="m-0">
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardTitle>{t("scaffold.phaseOneModules")}</CardTitle>
<CardDescription>
Skill
{t("scaffold.phaseOneDescription")}
</CardDescription>
</CardHeader>
<CardContent>
@@ -80,11 +82,11 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
<Table>
<TableHeader className="bg-muted/50">
<TableRow>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead className="text-right"></TableHead>
<TableHead>{t("scaffold.module")}</TableHead>
<TableHead>{t("scaffold.owner")}</TableHead>
<TableHead>{t("scaffold.status")}</TableHead>
<TableHead>{t("scaffold.progress")}</TableHead>
<TableHead className="text-right">{t("scaffold.updatedAt")}</TableHead>
</TableRow>
</TableHeader>
<TableBody>
@@ -94,7 +96,7 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
<TableCell>{item.owner}</TableCell>
<TableCell>
<Badge variant="outline" className="px-1.5">
{item.status === "已完成" ? (
{item.status === t("scaffold.done") ? (
<CircleCheckIcon className="fill-green-500 text-green-500" />
) : (
<Clock3Icon className="text-amber-500" />
@@ -117,16 +119,16 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
<TabsContent value="milestones" className="m-0">
<Card className="border-dashed">
<CardHeader>
<CardTitle></CardTitle>
<CardTitle>{t("scaffold.nextMilestone")}</CardTitle>
<CardDescription>
UI API
{t("scaffold.nextMilestoneDescription")}
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3">
{[
"打通登录、用户、角色、权限列表接口。",
"补充表单弹窗、分页查询与错误处理。",
"接入知识库与渠道模块的实际配置能力。",
t("scaffold.milestoneLogin"),
t("scaffold.milestoneForms"),
t("scaffold.milestoneKnowledge"),
].map((item) => (
<div
key={item}