Files
QRGen/gui/src-frontend/package.json
T
Serendipity 77fac0e28f feat: i18n 中英双语界面 — i18next + react-i18next
- 安装 i18next / react-i18next / i18next-browser-languagedetector
- 新建 src/i18n.ts 配置(fallback zh)
- 中/英翻译文件各 ~50 条目
- App.tsx 新增 EN/中 语言切换按钮
- ExportPanel + QrPreview + ModePanel + HistoryList + ErrorBoundary
- 全部 7 种模式组件均支持双语
- 12 前端测试通过,tsc 零错误
2026-06-19 21:23:10 +08:00

66 lines
1.7 KiB
JSON

{
"name": "qrgen-gui",
"private": true,
"version": "0.1.0",
"type": "module",
"lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --fix"
],
"*.{json,md,css,html}": [
"prettier --write"
]
},
"scripts": {
"dev": "vite --port 1420",
"build": "tsc && vite build",
"preview": "vite preview",
"tauri": "tauri",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
"format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"prepare": "husky"
},
"dependencies": {
"@tauri-apps/api": "^2",
"@tauri-apps/plugin-clipboard-manager": "^2",
"@tauri-apps/plugin-dialog": "^2",
"@tauri-apps/plugin-fs": "^2",
"@tauri-apps/plugin-store": "^2",
"i18next": "^26.3.1",
"i18next-browser-languagedetector": "^8.2.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-i18next": "^17.0.8"
},
"devDependencies": {
"@commitlint/cli": "^19",
"@commitlint/config-conventional": "^19",
"@eslint/js": "^9",
"@tauri-apps/cli": "^2.11.2",
"@testing-library/jest-dom": "^6",
"@testing-library/react": "^16",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"eslint": "^9",
"globals": "^16",
"husky": "^9",
"jsdom": "^26",
"lint-staged": "^15",
"postcss": "^8.4.49",
"prettier": "^3",
"tailwindcss": "^3.4.16",
"typescript": "^5.6.3",
"typescript-eslint": "^8",
"vite": "^6.0.3",
"vitest": "^3"
}
}