feat: add admin panel, Replicate AI translation, and document translation

- Admin panel (/admin) with JWT auth: configure Replicate API token,
  JigsawStack API key, model version, enable/disable AI translation,
  change admin password. Settings persisted in data/settings.json.

- Replicate AI translation: POST /api/translate/replicate uses
  JigsawStack text-translate model via Replicate API. Main page
  switches to client-side AI translation when enabled.

- Document translation tab: supports PDF, DOCX, XLSX, XLS, CSV.
  Excel/Word formatting fully preserved (SheetJS + JSZip XML manipulation).
  PDF uses pdf-parse extraction + pdf-lib reconstruction.
  Column selector UI for tabular data (per-sheet, All/None toggles).

- Updated README with full implementation documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 07:43:54 +01:00
parent 0190ea5da9
commit 0799101da3
23 changed files with 18595 additions and 261 deletions

View File

@@ -18,18 +18,25 @@
"@emotion/react": "^11",
"@emotion/styled": "^11",
"apollo-server-micro": "^2.25.2",
"formidable": "^3.5.1",
"framer-motion": "^6",
"graphql": "^15.8.0",
"jose": "^4.14.4",
"jszip": "^3.10.1",
"lingva-scraper": "1.1.0",
"next": "12.1.6",
"next-pwa": "^5.4.4",
"nextjs-cors": "^2.1.0",
"pdf-lib": "^1.17.1",
"pdf-parse": "^1.1.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hotkeys-hook": "^3.4.6",
"react-icons": "^4.4.0"
"react-icons": "^4.4.0",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@types/formidable": "^3.4.4",
"@testing-library/cypress": "^8.0.3",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",