chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
import { I18N_KEYS } from "@shared/constants";
import { t } from "../services/core/i18n";
interface DependencyNameInput {
name: string;
displayName?: string;
}
/**
* 统一解析依赖名称的展示文案(多语言兜底)。
*
* 设计目的:
* - 后端在个别异常场景可能返回未翻译 key甚至错误拼接的 key
* - 若前端直接展示该值,会把内部 key 暴露给用户,影响可读性;
* - 因此前端按稳定包名优先映射本地 i18n再回退后端字段。
*/
export function resolveDepDisplayName(dep: DependencyNameInput): string {
const keyByPackageName: Record<string, string> = {
uv: I18N_KEYS.Pages.Dependencies.DEP_UV,
pnpm: I18N_KEYS.Pages.Dependencies.DEP_PNPM,
"@anthropic-ai/sdk": I18N_KEYS.Pages.Dependencies.DEP_ANTHROPIC_SDK,
"claude-code-acp-ts": I18N_KEYS.Pages.Dependencies.DEP_CLAUDE_CODE_ACP,
"qiming-file-server": I18N_KEYS.Pages.Dependencies.DEP_FILE_SERVER,
"qiming-mcp-stdio-proxy": I18N_KEYS.Pages.Dependencies.DEP_MCP_PROXY,
qimingcode: I18N_KEYS.Pages.Dependencies.DEP_QIMINGCODE,
};
const mappedKey = keyByPackageName[dep.name];
if (mappedKey) return t(mappedKey);
const fallbackDisplayName = dep.displayName?.trim();
if (!fallbackDisplayName) return dep.name;
if (fallbackDisplayName.includes("Claw.Pages.Dependencies.dep.")) {
const translated = t(fallbackDisplayName);
return translated !== fallbackDisplayName ? translated : dep.name;
}
return fallbackDisplayName;
}