diff --git a/README.md b/README.md index f4e80ed..55650a0 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,16 @@ Paperless server you configure yourself. There is no AI or cloud processing. ## Features - 📷 Camera preview with multi-page capture (add pages one by one) +- 🟢 Live edge-detection overlay while aiming — see the document outline before you capture - ✂️ Automatic edge detection + perspective correction (OpenCV), with manual corner adjustment - 🎨 Per-page filters: color, grayscale, black & white (document mode) - 🔄 Rotate, reorder and delete pages - 📄 Export to a multi-page PDF (A4 or original size) - ☁️ Direct upload to Paperless-ngx **or** share via the Android share sheet +- ✅ Real upload feedback — the app waits for Paperless to consume the document and reports + **Added / Duplicate / Failed** (with a *Don't wait* option to skip the wait) - 🔊 Capture feedback: shutter sound (only when the ringer isn't silenced) + a brief flash +- 🌍 Localized UI (see [Languages](#languages)) - 🔐 API token stored encrypted (Android Keystore / EncryptedSharedPreferences) ## Tech @@ -91,6 +95,16 @@ The build uses env vars, so nothing sensitive ends up in the repo. Prefer **https**; with `http://` the app warns that the token and documents travel over the network unencrypted. +## Languages + +The UI ships in **English** (default), **Dutch**, **German**, **French**, **Spanish**, +**Italian** and **Portuguese**. The app follows your device language automatically. + +All strings live in `app/src/main/res/values/strings.xml` (English base). Contributing a +language is just adding a `values-/strings.xml` with the same keys — e.g. +`values-pl/strings.xml` for Polish. Every string must be present in every locale (the release +lint enforces this). + ## Project layout ``` @@ -99,19 +113,20 @@ app/src/main/java/eu/geyskens/pdfscan/ ├── MainActivity.kt # Compose host + navigation ├── ScanViewModel.kt # scan session, rendering, export, upload ├── data/ # Page model, ScanFilter, SettingsRepository -├── scan/ # EdgeDetector, ImageProcessor, BitmapIo (OpenCV) +├── scan/ # EdgeDetector, DocumentAnalyzer (live), ImageProcessor, BitmapIo ├── pdf/ # PdfBuilder (multi-page PDF) ├── paperless/ # PaperlessClient (OkHttp REST + task polling) └── ui/screens/ # Camera, Pages, Crop, Export, Settings ``` +UI strings are in `res/values*/strings.xml` (one file per language). + ## Roadmap Tracked as issues in the repository: -- Live edge-detection overlay while aiming (like Microsoft Lens) -- Internationalization: extract UI strings to resources + add translations -- Batch import scans from the gallery +- Batch import scans from the gallery (import existing photos as pages) +- More UI languages (contributions welcome) > OCR is intentionally **not** done on-device: Paperless-ngx already runs OCR (via > OCRmyPDF/Tesseract) when it consumes the uploaded document.