Skip to content

Commit 5391498

Browse files
margropclaude
andcommitted
fix: 补全错题本筛选与原题图片按钮的英文翻译
- 年级/学期、章节、知识点筛选框及其「全部」选项改用翻译文本 - 详情页「查看 / 隐藏原题图片」按钮改用翻译文本 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent c63ca00 commit 5391498

3 files changed

Lines changed: 27 additions & 9 deletions

File tree

‎src/app/error-items/[id]/page.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ export default function ErrorDetailPage() {
619619
<div className="flex flex-wrap gap-2">
620620
{item.originalImageUrl && (
621621
<Button variant="outline" size="sm" onClick={() => setShowQuestionImage(!showQuestionImage)} className="flex items-center gap-2">
622-
{showQuestionImage ? <><EyeOff className="h-4 w-4" />隐藏原题图片</> : <><ImageIcon className="h-4 w-4" />查看原题图片</>}
622+
{showQuestionImage ? <><EyeOff className="h-4 w-4" />{t.replaceImage?.hide || "Hide original image"}</> : <><ImageIcon className="h-4 w-4" />{t.replaceImage?.view || "View original image"}</>}
623623
</Button>
624624
)}
625625
<ReplaceQuestionImageButton

‎src/components/knowledge-filter.tsx‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use client";
22

33
import { useState, useEffect, useCallback } from "react";
4+
import { useLanguage } from "@/contexts/LanguageContext";
45
import { useTimeZone } from "@/contexts/TimeZoneContext";
56
import { getCalendarDate } from "@/lib/date-time";
67
import {
@@ -64,6 +65,7 @@ export function KnowledgeFilter({
6465
onFilterChange,
6566
className
6667
}: KnowledgeFilterProps) {
68+
const { t } = useLanguage();
6769
const { timeZone } = useTimeZone();
6870
const [gradeSemester, setGradeSemester] = useState<string>(initialGrade || "");
6971
const [chapter, setChapter] = useState<string>("");
@@ -240,10 +242,10 @@ export function KnowledgeFilter({
240242
<div className={`flex gap-2 ${className}`}>
241243
<Select value={gradeSemester} onValueChange={handleGradeChange} disabled={loading}>
242244
<SelectTrigger className="w-[140px]">
243-
<SelectValue placeholder="年级/学期" />
245+
<SelectValue placeholder={t.filter?.gradeShort || "Grade"} />
244246
</SelectTrigger>
245247
<SelectContent>
246-
<SelectItem value="all">全部年级</SelectItem>
248+
<SelectItem value="all">{t.filter?.allGrades || "All grades"}</SelectItem>
247249
{filteredGrades.map(gs => (
248250
<SelectItem key={gs} value={gs}>{gs}</SelectItem>
249251
))}
@@ -252,10 +254,10 @@ export function KnowledgeFilter({
252254

253255
<Select value={chapter} onValueChange={handleChapterChange} disabled={!gradeSemester || gradeSemester === "all"}>
254256
<SelectTrigger className="w-[180px]">
255-
<SelectValue placeholder="章节" />
257+
<SelectValue placeholder={t.filter?.chapter || "Chapter"} />
256258
</SelectTrigger>
257259
<SelectContent>
258-
<SelectItem value="all">全部章节</SelectItem>
260+
<SelectItem value="all">{t.filter?.allChapters || "All chapters"}</SelectItem>
259261
{chapters.map(c => (
260262
<SelectItem key={c.id} value={c.name}>
261263
{c.name.replace(/^第\d+章\s*/, '')}
@@ -266,12 +268,12 @@ export function KnowledgeFilter({
266268

267269
<Select value={tag} onValueChange={handleTagChange} disabled={!chapter || chapter === "all"}>
268270
<SelectTrigger className="w-[140px]">
269-
<SelectValue placeholder="知识点" />
271+
<SelectValue placeholder={t.filter?.knowledgePoint || "Tag"} />
270272
</SelectTrigger>
271273
<SelectContent>
272-
<SelectItem value="all">全部知识点</SelectItem>
273-
{tags.map(t => (
274-
<SelectItem key={t} value={t}>{t}</SelectItem>
274+
<SelectItem value="all">{t.filter?.allKnowledgePoints || "All tags"}</SelectItem>
275+
{tags.map(tagName => (
276+
<SelectItem key={tagName} value={tagName}>{tagName}</SelectItem>
275277
))}
276278
</SelectContent>
277279
</Select>

‎src/lib/translations.ts‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,12 @@ export const translations = {
383383
filteringByTag: "Filtering by tag",
384384
grade: "Grade/Semester",
385385
paperLevel: "Paper Level",
386+
gradeShort: "Grade",
387+
chapter: "Chapter",
388+
knowledgePoint: "Tag",
389+
allGrades: "All grades",
390+
allChapters: "All chapters",
391+
allKnowledgePoints: "All tags",
386392
},
387393
stats: {
388394
title: "Practice Statistics",
@@ -952,6 +958,8 @@ export const translations = {
952958
},
953959
replaceImage: {
954960
replace: "Replace image",
961+
view: "View original image",
962+
hide: "Hide original image",
955963
add: "Upload question image",
956964
uploading: "Uploading…",
957965
confirm: "Replace the original question image? The old image will be overwritten and cannot be restored.",
@@ -1399,6 +1407,12 @@ export const translations = {
13991407
filteringByTag: "按标签筛选",
14001408
grade: "年级/学期",
14011409
paperLevel: "所属卷等级",
1410+
gradeShort: "年级/学期",
1411+
chapter: "章节",
1412+
knowledgePoint: "知识点",
1413+
allGrades: "全部年级",
1414+
allChapters: "全部章节",
1415+
allKnowledgePoints: "全部知识点",
14021416
},
14031417
stats: {
14041418
title: "练习统计",
@@ -1967,6 +1981,8 @@ export const translations = {
19671981
},
19681982
replaceImage: {
19691983
replace: "替换原题图片",
1984+
view: "查看原题图片",
1985+
hide: "隐藏原题图片",
19701986
add: "上传原题图片",
19711987
uploading: "上传中…",
19721988
confirm: "确定替换原题图片吗?原图片会被覆盖,无法恢复。",

0 commit comments

Comments
 (0)