diff --git a/README.md b/README.md index a8a1113a..8dc2cbaf 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,19 @@ complicated installation. * Resolution * Output formats (TIF, JPG, PNG, PDF and TXT with Tesseract OCR) with varying compression settings +* Filters: Autolevels, Threshold, Blur * Configurable overrides for all defaults as well as filters and formats * Multipage scanning (with collation for double sided scans) * Light and dark mode -* **NEW**: International translations (**help requested**) +* **NEW**: International translations: German; Spanish (**help requested**) It supports any [SANE compatible devices](http://www.sane-project.org/sane-supported-devices.html). ![screenshot](https://github.com/sbs20/scanservjs/raw/master/docs/screen0.png) +![screenshot](https://github.com/sbs20/scanservjs/raw/master/docs/screen1.png) + Copyright 2016-2021 [Sam Strachan](https://github.com/sbs20) ## Requirements diff --git a/docs/screen1.png b/docs/screen1.png new file mode 100644 index 00000000..fb56ca62 Binary files /dev/null and b/docs/screen1.png differ diff --git a/server/package-lock.json b/server/package-lock.json index 3b5036dd..e7d4f474 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.8.0", + "version": "2.8.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/server/package.json b/server/package.json index 86699104..11e9f978 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.8.0", + "version": "2.8.1", "description": "scanservjs is a simple web-based UI for SANE which allows you to share a scanner on a network without the need for drivers or complicated installation. scanserv does not do image conversion or manipulation (beyond the bare minimum necessary for the purposes of browser preview) or OCR.", "scripts": { "serve": "nodemon --exec 'vue-cli-service serve'", diff --git a/webui/src/classes/constants.js b/webui/src/classes/constants.js index 04e2b3a3..7e7d07a2 100644 --- a/webui/src/classes/constants.js +++ b/webui/src/classes/constants.js @@ -2,7 +2,9 @@ const Constants = { Version: process.env.VUE_APP_VERSION, Locales: [ + 'de', 'en', + 'es', 'test' ], diff --git a/webui/src/components/Settings.vue b/webui/src/components/Settings.vue index c825e356..74a8f9fb 100644 --- a/webui/src/components/Settings.vue +++ b/webui/src/components/Settings.vue @@ -9,7 +9,7 @@ {{ $t('settings.theme:description') }} @@ -19,7 +19,7 @@ {{ $t('settings.locale:description') }} @@ -49,8 +49,13 @@ export default { data() { return { settings: storage.settings, - locales: Constants.Locales, - themes: [ + locales: Constants.Locales + }; + }, + + computed: { + themes() { + return [ { text: this.$t('settings.theme:system'), value: Constants.Themes.System @@ -63,8 +68,8 @@ export default { text: this.$t('settings.theme:dark'), value: Constants.Themes.Dark } - ] - }; + ]; + } }, watch: { diff --git a/webui/src/locales/de.json b/webui/src/locales/de.json new file mode 100644 index 00000000..278c81c2 --- /dev/null +++ b/webui/src/locales/de.json @@ -0,0 +1,89 @@ +{ + "global": { + "application-name": "scanservjs" + }, + + "about": { + "main": "scanservjs ist ein einfaches, web-basiertes UI für Scanner. Es erlaubt es, einen oder mehrere Scanner (mittels SANE) über das Netzwerk ohne Treiber oder komplizierte Installation freizugeben. Eingescannte Dokumente können als TIF, JPG, PNG, PDF und TXT (mit Tesseract OCR) in verschiedenen, konfigurierbaren Kompressionseinstellungen gespeichert werden. Neben allen SANE-kompatiblen Geräten, wird außerdem mehrseitiges Scannen unterstützt.", + "issue": "Melde Fehler oder wirf einen Blick auf den Quelltext:" + }, + + "batch-dialog": { + "btn-finish": "Fertig", + "btn-rescan": "Seite erneut scannen", + "btn-next": "Nächste Seite scannen" + }, + + "files": { + "filename": "Dateiname", + "date": "Datum", + "size": "Größe", + "message:deleted": "Gelöscht" + }, + + "navigation": { + "scan": "Scannen", + "files": "Dateien", + "settings": "Einstellungen", + "about": "Über", + "version": "Version" + }, + + "pipeline": { + "high-quality": "Hohe Qualität", + "medium-quality": "Mittlere Qualität", + "low-quality": "Geringe Qualität", + "uncompressed": "Unkomprimiert", + "lzw-compressed": "LZW komprimiert", + "ocr": "OCR (Texterkennung)", + "text-file": "Text-Datei" + }, + + "scan": { + "device": "Gerät", + "source": "Quelle", + "resolution": "Auflösung", + "mode": "Modus", + "dynamic-lineart": "Dynamic Lineart", + "dynamic-lineart:enabled": "Aktiviert", + "dynamic-lineart:disabled": "Deaktiviert", + "batch": "Mehrseitiges Scannen", + "batch:none": "Aus", + "batch:manual": "Manuell (mit Nachfrage)", + "batch:auto": "Automatisch (Dokumenteneinzug)", + "batch:auto-collate-standard": "Automatisch (Sortiert 1, 3... 4, 2)", + "batch:auto-collate-reverse": "Automatisch (umgekehrte Reihenfolge 1, 3... 2, 4)", + "filters": "Filter", + "filters:auto-level": "Automatische Farbjustierung", + "filters:threshold": "Schwellwert", + "filters:blur": "Weichzeichner", + "format": "Format", + "btn-preview": "Vorschau", + "btn-clear": "Leeren", + "btn-scan": "Scannen", + "btn-reset": "Zurücksetzen", + "top": "Oben", + "left": "Links", + "width": "Breite", + "height": "Höhe", + "brightness": "Helligkeit", + "contrast": "Kontrast", + "message:loading-devices": "Suche nach Geräten...", + "message:no-devices": "Keine Geräte gefunden", + "message:deleted-preview": "Vorschau gelöscht", + "message:turn-documents": "Dokumente umdrehen", + "message:preview-of-page": "Vorschau der Seite" + }, + + "settings": { + "title": "@:navigation.settings", + "behaviour-ui": "Verhalten und Erscheinungsbild", + "locale": "Sprache", + "locale:description": "Sprache auswählen", + "theme": "Design", + "theme:description": "Design. Wenn das Systemdesign geändert wurde, so muss die App neu geladen werden, damit die Änderung wirksam wird.", + "theme:system": "Systemdesign", + "theme:light": "Helles Design", + "theme:dark": "Dunkles Design" + } +} diff --git a/webui/src/locales/es.json b/webui/src/locales/es.json new file mode 100644 index 00000000..9a64d44e --- /dev/null +++ b/webui/src/locales/es.json @@ -0,0 +1,89 @@ +{ + "global": { + "application-name": "scanservjs" + }, + + "about": { + "main": "scanservjs es una interfaz gráfica simple y basada en web. Permite compartir uno o mas escáneres (utilizando SANE) en una red sin la necesidad de controladores adicionales o una instalación complicada. Permite guardar en formato TIF, JPG, PNG, PDF, y TXT (con Tesseract OCR) con varias configuraciones de compresión, todas ellas configurables. Soporta el escaneo multipágina y todos los dispositivos SANE compatibles.", + "issue": "Indicar una incidencia o ver el código fuente:" + }, + + "batch-dialog": { + "btn-finish": "Terminar", + "btn-rescan": "Reescanear página", + "btn-next": "Siguiente" + }, + + "files": { + "filename": "Nombre de fichero", + "date": "Fecha", + "size": "Tamaño", + "message:deleted": "Borrado" + }, + + "navigation": { + "scan": "Escanear", + "files": "Ficheros", + "settings": "Configuración", + "about": "Acerca de", + "version": "Versión" + }, + + "pipeline": { + "high-quality": "Calidad alta", + "medium-quality": "Calidad media", + "low-quality": "Calidad baja", + "uncompressed": "Sin compresión", + "lzw-compressed": "Compresión LZW", + "ocr": "OCR", + "text-file": "Fichero de texto" + }, + + "scan": { + "device": "Dispositivo", + "source": "Origen", + "resolution": "Resolución", + "mode": "Modo", + "dynamic-lineart": "Arte lineal dinámico", + "dynamic-lineart:enabled": "Activado", + "dynamic-lineart:disabled": "Desactivado", + "batch": "Lote", + "batch:none": "Nada", + "batch:manual": "Manual (con aviso)", + "batch:auto": "Auto (alimentador automático)", + "batch:auto-collate-standard": "Auto (ordenación 1, 3... 4, 2)", + "batch:auto-collate-reverse": "Auto (inversa 1, 3... 2, 4)", + "filters": "Filtros", + "filters:auto-level": "Autonivelar", + "filters:threshold": "Umbral", + "filters:blur": "Difuminar", + "format": "Formato", + "btn-preview": "Vista previa", + "btn-clear": "Limpiar", + "btn-scan": "Escanear", + "btn-reset": "Reestablecer", + "top": "Arriba", + "left": "Izquierda", + "width": "Anchura", + "height": "Altura", + "brightness": "Brillo", + "contrast": "Contraste", + "message:loading-devices": "Cargando dispositivos...", + "message:no-devices": "No se encuentran dispositivos", + "message:deleted-preview": "Vista previa eliminada", + "message:turn-documents": "Girar documentos", + "message:preview-of-page": "Vista previa de página" + }, + + "settings": { + "title": "@:navigation.settings", + "behaviour-ui": "Comportamiento e interfaz gráfica", + "locale": "Idioma", + "locale:description": "Elige tu idioma", + "theme": "Aspecto", + "theme:description": "Aspecto. Si utilizas el tema System y lo cambias, será necesario que recargues la aplicación.", + "theme:system": "System", + "theme:light": "Light", + "theme:dark": "Dark" + } +}