- 基建:static/src/locales/ 11 个命名空间×中英双语,zh 为源语言; en-US 聚合器 DeepString 强校验 key 奇偶;installI18n/useLocale 复刻 theme.ts 模式 - 语言切换:个人空间→外观→界面语言(默认 zh-CN,localStorage 持久化) - 防回退栏杆:scripts/i18n_audit.mjs(字符级注释剥离状态机)+ baseline 豁免清单, 挂入 npm run lint 链首与独立 lint:text;规范见 doc/frontend/i18n_spec.md(本地) - 第一波迁移 13 文件约 1400 条:PersonalizationDrawer/toolRenderers/chatDisplay/ InputComposer/admin 全部 6 应用/tutorial/MonitorDirector/WorkflowEditorView - common 公共词归并:刷新中/保存中/暂无数据/未运行 单一来源 - AGENTS.md 新增 §5.8 文案规范
75 lines
2.3 KiB
JSON
75 lines
2.3 KiB
JSON
{
|
|
"name": "astrion-frontend",
|
|
"version": "4.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite build --watch",
|
|
"build": "tsc --noEmit && stylelint \"static/src/**/*.{scss,vue}\" && vite build",
|
|
"lint": "node scripts/i18n_audit.mjs && eslint \"static/src/**/*.{ts,tsx,js,vue}\" --max-warnings=0",
|
|
"lint:text": "node scripts/i18n_audit.mjs",
|
|
"lint:css": "stylelint \"static/src/**/*.{scss,vue}\"",
|
|
"format": "prettier --write \"static/src/**/*.{ts,tsx,js,vue,css}\"",
|
|
"preview": "vite preview",
|
|
"cli": "npm --prefix cli run dev",
|
|
"cli:build": "npm --prefix cli run build",
|
|
"cli:typecheck": "npm --prefix cli run typecheck"
|
|
},
|
|
"dependencies": {
|
|
"@dagrejs/dagre": "^3.1.1",
|
|
"@tiptap/extension-mention": "^3.23.6",
|
|
"@tiptap/extension-placeholder": "^3.23.6",
|
|
"@tiptap/starter-kit": "^3.23.6",
|
|
"@tiptap/suggestion": "^3.23.6",
|
|
"@tiptap/vue-3": "^3.23.6",
|
|
"@types/html2canvas": "^0.5.35",
|
|
"@vue-flow/background": "^1.3.2",
|
|
"@vue-flow/controls": "^1.1.3",
|
|
"@vue-flow/core": "^1.48.2",
|
|
"@vue-flow/minimap": "^1.5.4",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/addon-web-links": "^0.12.0",
|
|
"diff": "^8.0.3",
|
|
"dompurify": "^3.2.7",
|
|
"enquirer": "^2.4.1",
|
|
"html2canvas": "^1.4.1",
|
|
"katex": "^0.16.9",
|
|
"marked": "^11.1.0",
|
|
"pdfjs-dist": "^6.0.227",
|
|
"pinia": "^3.0.4",
|
|
"prismjs": "^1.29.0",
|
|
"rehype-raw": "^7.0.0",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"rehype-stringify": "^10.0.1",
|
|
"remark-breaks": "^4.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-parse": "^11.0.0",
|
|
"remark-rehype": "^11.1.2",
|
|
"sherpa-onnx": "^1.13.2",
|
|
"socket.io-client": "^4.7.5",
|
|
"unified": "^11.0.5",
|
|
"virtua": "^0.49.3",
|
|
"vue": "^3.4.15",
|
|
"vue-i18n": "^10.0.8",
|
|
"vue-stick-to-bottom": "^1.0.0",
|
|
"xterm": "^5.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.61.1",
|
|
"@types/node": "^20.10.5",
|
|
"@vitejs/plugin-vue": "^5.0.3",
|
|
"@vue/eslint-config-prettier": "^9.0.0",
|
|
"@vue/eslint-config-typescript": "^12.0.0",
|
|
"eslint": "^8.56.0",
|
|
"eslint-plugin-vue": "^9.19.2",
|
|
"postcss-html": "^1.6.0",
|
|
"postcss-scss": "^4.0.9",
|
|
"prettier": "^3.1.1",
|
|
"sass": "^1.94.2",
|
|
"stylelint": "^16.10.0",
|
|
"typescript": "^5.3.3",
|
|
"vite": "^5.0.10",
|
|
"vue-tsc": "^1.8.22"
|
|
}
|
|
}
|