mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-06 17:38:35 +00:00
fix(webui): localize skills view tabs
This commit is contained in:
parent
73d3a49a27
commit
42ee34e34d
@ -108,7 +108,7 @@ export function SkillsCatalogSettings({ skills }: { skills: SkillSummary[] }) {
|
|||||||
aria-selected={view === item}
|
aria-selected={view === item}
|
||||||
onClick={() => setView(item)}
|
onClick={() => setView(item)}
|
||||||
className={cn(
|
className={cn(
|
||||||
"inline-flex items-center gap-1.5 rounded-[9px] px-3.5 py-1.5 text-[13px] font-medium transition-colors",
|
"inline-flex items-center rounded-[9px] px-3.5 py-1.5 text-[13px] font-medium transition-colors",
|
||||||
view === item
|
view === item
|
||||||
? "bg-background text-foreground shadow-sm"
|
? "bg-background text-foreground shadow-sm"
|
||||||
: "text-muted-foreground hover:text-foreground",
|
: "text-muted-foreground hover:text-foreground",
|
||||||
@ -116,12 +116,7 @@ export function SkillsCatalogSettings({ skills }: { skills: SkillSummary[] }) {
|
|||||||
>
|
>
|
||||||
{item === "installed"
|
{item === "installed"
|
||||||
? t("settings.skills.installedTab", { defaultValue: "Installed" })
|
? t("settings.skills.installedTab", { defaultValue: "Installed" })
|
||||||
: (
|
: t("settings.skills.discoverTab", { defaultValue: "Discover" })}
|
||||||
<>
|
|
||||||
<VercelMark />
|
|
||||||
{t("settings.skills.discoverTab", { defaultValue: "Discover" })}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
@ -228,14 +223,6 @@ export function SkillsCatalogSettings({ skills }: { skills: SkillSummary[] }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function VercelMark() {
|
|
||||||
return (
|
|
||||||
<svg viewBox="0 0 16 16" className="h-3 w-3" aria-hidden>
|
|
||||||
<path d="M8 1 16 15H0L8 1Z" fill="currentColor" />
|
|
||||||
</svg>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function SkillCatalogRow({
|
function SkillCatalogRow({
|
||||||
skill,
|
skill,
|
||||||
onSelect,
|
onSelect,
|
||||||
|
|||||||
@ -788,6 +788,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Review the instruction skills this agent can load during a conversation.",
|
"description": "Review the instruction skills this agent can load during a conversation.",
|
||||||
"caption": "{{available}} available · {{total}} total",
|
"caption": "{{available}} available · {{total}} total",
|
||||||
|
"views": "Skills views",
|
||||||
|
"installedTab": "Installed",
|
||||||
|
"discoverTab": "Discover",
|
||||||
"featured": "Agent skills",
|
"featured": "Agent skills",
|
||||||
"empty": "No skills are available.",
|
"empty": "No skills are available.",
|
||||||
"sourceWorkspace": "Custom",
|
"sourceWorkspace": "Custom",
|
||||||
|
|||||||
@ -775,6 +775,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Revisa las habilidades de instrucciones que este agente puede cargar durante una conversación.",
|
"description": "Revisa las habilidades de instrucciones que este agente puede cargar durante una conversación.",
|
||||||
"caption": "{{available}} disponibles · {{total}} en total",
|
"caption": "{{available}} disponibles · {{total}} en total",
|
||||||
|
"views": "Vistas de habilidades",
|
||||||
|
"installedTab": "Instaladas",
|
||||||
|
"discoverTab": "Descubrir",
|
||||||
"featured": "Habilidades del agente",
|
"featured": "Habilidades del agente",
|
||||||
"empty": "No hay habilidades disponibles.",
|
"empty": "No hay habilidades disponibles.",
|
||||||
"sourceWorkspace": "Personalizada",
|
"sourceWorkspace": "Personalizada",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Consultez les compétences d’instruction que cet agent peut charger pendant une conversation.",
|
"description": "Consultez les compétences d’instruction que cet agent peut charger pendant une conversation.",
|
||||||
"caption": "{{available}} disponibles · {{total}} au total",
|
"caption": "{{available}} disponibles · {{total}} au total",
|
||||||
|
"views": "Vues des compétences",
|
||||||
|
"installedTab": "Installées",
|
||||||
|
"discoverTab": "Découvrir",
|
||||||
"featured": "Compétences agent",
|
"featured": "Compétences agent",
|
||||||
"empty": "Aucune compétence disponible.",
|
"empty": "Aucune compétence disponible.",
|
||||||
"sourceWorkspace": "Personnalisée",
|
"sourceWorkspace": "Personnalisée",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Tinjau skill instruksi yang dapat dimuat agent ini selama percakapan.",
|
"description": "Tinjau skill instruksi yang dapat dimuat agent ini selama percakapan.",
|
||||||
"caption": "{{available}} tersedia · {{total}} total",
|
"caption": "{{available}} tersedia · {{total}} total",
|
||||||
|
"views": "Tampilan skill",
|
||||||
|
"installedTab": "Terpasang",
|
||||||
|
"discoverTab": "Temukan",
|
||||||
"featured": "Skill agent",
|
"featured": "Skill agent",
|
||||||
"empty": "Tidak ada skill yang tersedia.",
|
"empty": "Tidak ada skill yang tersedia.",
|
||||||
"sourceWorkspace": "Kustom",
|
"sourceWorkspace": "Kustom",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "このエージェントが会話中に読み込める指示スキルを確認します。",
|
"description": "このエージェントが会話中に読み込める指示スキルを確認します。",
|
||||||
"caption": "{{available}} 利用可能 · 合計 {{total}}",
|
"caption": "{{available}} 利用可能 · 合計 {{total}}",
|
||||||
|
"views": "スキル表示",
|
||||||
|
"installedTab": "インストール済み",
|
||||||
|
"discoverTab": "見つける",
|
||||||
"featured": "エージェントスキル",
|
"featured": "エージェントスキル",
|
||||||
"empty": "利用可能なスキルはありません。",
|
"empty": "利用可能なスキルはありません。",
|
||||||
"sourceWorkspace": "カスタム",
|
"sourceWorkspace": "カスタム",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "이 에이전트가 대화 중에 불러올 수 있는 지시 스킬을 확인합니다.",
|
"description": "이 에이전트가 대화 중에 불러올 수 있는 지시 스킬을 확인합니다.",
|
||||||
"caption": "{{available}}개 사용 가능 · 총 {{total}}개",
|
"caption": "{{available}}개 사용 가능 · 총 {{total}}개",
|
||||||
|
"views": "스킬 보기",
|
||||||
|
"installedTab": "설치됨",
|
||||||
|
"discoverTab": "탐색",
|
||||||
"featured": "에이전트 스킬",
|
"featured": "에이전트 스킬",
|
||||||
"empty": "사용 가능한 스킬이 없습니다.",
|
"empty": "사용 가능한 스킬이 없습니다.",
|
||||||
"sourceWorkspace": "사용자 지정",
|
"sourceWorkspace": "사용자 지정",
|
||||||
|
|||||||
@ -788,6 +788,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Revise as skills de instrução que este agente pode carregar durante uma conversa.",
|
"description": "Revise as skills de instrução que este agente pode carregar durante uma conversa.",
|
||||||
"caption": "{{available}} disponíveis · {{total}} no total",
|
"caption": "{{available}} disponíveis · {{total}} no total",
|
||||||
|
"views": "Visualizações de skills",
|
||||||
|
"installedTab": "Instaladas",
|
||||||
|
"discoverTab": "Descobrir",
|
||||||
"featured": "Skills do agente",
|
"featured": "Skills do agente",
|
||||||
"empty": "Nenhuma skill disponível.",
|
"empty": "Nenhuma skill disponível.",
|
||||||
"sourceWorkspace": "Personalizada",
|
"sourceWorkspace": "Personalizada",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "Xem các kỹ năng chỉ dẫn mà agent này có thể tải trong cuộc trò chuyện.",
|
"description": "Xem các kỹ năng chỉ dẫn mà agent này có thể tải trong cuộc trò chuyện.",
|
||||||
"caption": "{{available}} khả dụng · tổng {{total}}",
|
"caption": "{{available}} khả dụng · tổng {{total}}",
|
||||||
|
"views": "Chế độ xem kỹ năng",
|
||||||
|
"installedTab": "Đã cài đặt",
|
||||||
|
"discoverTab": "Khám phá",
|
||||||
"featured": "Kỹ năng agent",
|
"featured": "Kỹ năng agent",
|
||||||
"empty": "Không có kỹ năng nào khả dụng.",
|
"empty": "Không có kỹ năng nào khả dụng.",
|
||||||
"sourceWorkspace": "Tùy chỉnh",
|
"sourceWorkspace": "Tùy chỉnh",
|
||||||
|
|||||||
@ -788,6 +788,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "查看此 agent 在对话中可以加载的指令技能。",
|
"description": "查看此 agent 在对话中可以加载的指令技能。",
|
||||||
"caption": "{{available}} 个可用 · 共 {{total}} 个",
|
"caption": "{{available}} 个可用 · 共 {{total}} 个",
|
||||||
|
"views": "技能视图",
|
||||||
|
"installedTab": "已安装",
|
||||||
|
"discoverTab": "发现",
|
||||||
"featured": "Agent 技能",
|
"featured": "Agent 技能",
|
||||||
"empty": "暂无可用技能。",
|
"empty": "暂无可用技能。",
|
||||||
"sourceWorkspace": "自定义",
|
"sourceWorkspace": "自定义",
|
||||||
|
|||||||
@ -774,6 +774,9 @@
|
|||||||
"skills": {
|
"skills": {
|
||||||
"description": "檢閱此 Agent 可在對話期間載入的指令技能。",
|
"description": "檢閱此 Agent 可在對話期間載入的指令技能。",
|
||||||
"caption": "{{available}} 個可用 · 共 {{total}} 個",
|
"caption": "{{available}} 個可用 · 共 {{total}} 個",
|
||||||
|
"views": "技能檢視",
|
||||||
|
"installedTab": "已安裝",
|
||||||
|
"discoverTab": "探索",
|
||||||
"featured": "Agent 技能",
|
"featured": "Agent 技能",
|
||||||
"empty": "目前沒有可用的技能。",
|
"empty": "目前沒有可用的技能。",
|
||||||
"sourceWorkspace": "自訂",
|
"sourceWorkspace": "自訂",
|
||||||
|
|||||||
@ -664,7 +664,9 @@ describe("App layout", () => {
|
|||||||
await waitFor(() => expect(connectSpy).toHaveBeenCalled());
|
await waitFor(() => expect(connectSpy).toHaveBeenCalled());
|
||||||
const sidebar = screen.getByRole("navigation", { name: "Sidebar navigation" });
|
const sidebar = screen.getByRole("navigation", { name: "Sidebar navigation" });
|
||||||
fireEvent.click(within(sidebar).getByRole("button", { name: "Skills" }));
|
fireEvent.click(within(sidebar).getByRole("button", { name: "Skills" }));
|
||||||
fireEvent.click(await screen.findByRole("tab", { name: "Discover" }));
|
const discoverTab = await screen.findByRole("tab", { name: "Discover" });
|
||||||
|
expect(discoverTab.querySelector("svg")).toBeNull();
|
||||||
|
fireEvent.click(discoverTab);
|
||||||
expect(await screen.findByRole("heading", { name: "Trending today" })).toBeInTheDocument();
|
expect(await screen.findByRole("heading", { name: "Trending today" })).toBeInTheDocument();
|
||||||
expect(screen.getByText("find-skills")).toBeInTheDocument();
|
expect(screen.getByText("find-skills")).toBeInTheDocument();
|
||||||
expect(screen.getByText(/14,481 installs \/ 24h/)).toBeInTheDocument();
|
expect(screen.getByText(/14,481 installs \/ 24h/)).toBeInTheDocument();
|
||||||
|
|||||||
@ -75,6 +75,9 @@ const LOCALIZED_SETTINGS_COPY_KEYS = [
|
|||||||
"settings.apps.description",
|
"settings.apps.description",
|
||||||
"settings.apps.caption",
|
"settings.apps.caption",
|
||||||
"settings.apps.restartRequired",
|
"settings.apps.restartRequired",
|
||||||
|
"settings.skills.views",
|
||||||
|
"settings.skills.installedTab",
|
||||||
|
"settings.skills.discoverTab",
|
||||||
"settings.nanobotFeatures.disable",
|
"settings.nanobotFeatures.disable",
|
||||||
"settings.nanobotFeatures.ready",
|
"settings.nanobotFeatures.ready",
|
||||||
"settings.nanobotFeatures.missingDependency",
|
"settings.nanobotFeatures.missingDependency",
|
||||||
@ -437,6 +440,8 @@ describe("webui i18n", () => {
|
|||||||
expect(settings.byok.tabs.webSearch).toBe("网页搜索");
|
expect(settings.byok.tabs.webSearch).toBe("网页搜索");
|
||||||
expect(settings.overview.webSearch).toBe("网页搜索");
|
expect(settings.overview.webSearch).toBe("网页搜索");
|
||||||
expect(settings.overview.workspace).toBe("工作区");
|
expect(settings.overview.workspace).toBe("工作区");
|
||||||
|
expect(settings.skills.installedTab).toBe("已安装");
|
||||||
|
expect(settings.skills.discoverTab).toBe("发现");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("keeps Brazilian Portuguese settings overview copy localized", () => {
|
it("keeps Brazilian Portuguese settings overview copy localized", () => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user