diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index 8b387b463..1e77090d0 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -170,8 +170,10 @@ export const en: Translations = { noSkills: "No skills found. Skills are loaded from ~/.hermes/skills/", noSkillsMatch: "No skills match your search or filter.", skillCount: "{count} skill{s}", + resultCount: "{count} result{s}", noDescription: "No description available.", toolsets: "Toolsets", + toolsetLabel: "{name} toolset", noToolsetsMatch: "No toolsets match the search.", setupNeeded: "Setup needed", disabledForCli: "Disabled for CLI", diff --git a/web/src/i18n/types.ts b/web/src/i18n/types.ts index 86b21c405..6a7341ebe 100644 --- a/web/src/i18n/types.ts +++ b/web/src/i18n/types.ts @@ -178,8 +178,10 @@ export interface Translations { noSkills: string; noSkillsMatch: string; skillCount: string; + resultCount: string; noDescription: string; toolsets: string; + toolsetLabel: string; noToolsetsMatch: string; setupNeeded: string; disabledForCli: string; diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index 5138cae05..66f506935 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -170,8 +170,10 @@ export const zh: Translations = { noSkills: "未找到技能。技能从 ~/.hermes/skills/ 加载", noSkillsMatch: "没有匹配的技能。", skillCount: "{count} 个技能", + resultCount: "{count} 个结果", noDescription: "暂无描述。", toolsets: "工具集", + toolsetLabel: "{name} 工具集", noToolsetsMatch: "没有匹配的工具集。", setupNeeded: "需要配置", disabledForCli: "CLI 已禁用", diff --git a/web/src/pages/SkillsPage.tsx b/web/src/pages/SkillsPage.tsx index 98ab08d13..3fc462b10 100644 --- a/web/src/pages/SkillsPage.tsx +++ b/web/src/pages/SkillsPage.tsx @@ -162,7 +162,7 @@ export default function SkillsPage() { return a[0].localeCompare(b[0]); }) .map(([key, count]) => ({ key, name: prettyCategory(key === "__none__" ? null : key, t.common.general), count })); - }, [skills]); + }, [skills, t]); const enabledCount = skills.filter((s) => s.enabled).length; @@ -292,7 +292,7 @@ export default function SkillsPage() { {t.skills.title} - {searchMatchedSkills.length} result{searchMatchedSkills.length !== 1 ? "s" : ""} + {t.skills.resultCount.replace("{count}", String(searchMatchedSkills.length)).replace("{s}", searchMatchedSkills.length !== 1 ? "s" : "")} @@ -405,7 +405,7 @@ export default function SkillsPage() { )} {ts.tools.length === 0 && ( - {ts.enabled ? `${ts.name} toolset` : t.skills.disabledForCli} + {ts.enabled ? t.skills.toolsetLabel.replace("{name}", ts.name) : t.skills.disabledForCli} )}