From e4f8cdf2d00bc7ba5526e9f644959e78f440604a Mon Sep 17 00:00:00 2001 From: Sam Strachan Date: Wed, 21 Apr 2021 11:42:34 +0100 Subject: [PATCH 01/14] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bc810024..a965f016 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ complicated installation. * Filters: Autolevels, Threshold, Blur * Configurable overrides for all defaults as well as filters and formats * Multipage scanning (with collation for double sided scans) -* International translations: Czech, French, German, Italian, Mandarin, Spanish - (**help requested**) +* International translations: Czech, French, German, Italian, Mandarin, Spanish; + [Help requested](https://github.com/sbs20/scanservjs/issues/154) * Light and dark mode * Responsive design @@ -69,7 +69,7 @@ module.exports = { */ afterConfig(config) { // Set default preview resolution - config.previewResolution = 300; + config.previewResolution = 150; // Add a custom print pipeline config.pipelines.push({ @@ -122,4 +122,4 @@ and it's been a labour of love ever since. ## More about SANE - * http://www.sane-project.org/ \ No newline at end of file + * http://www.sane-project.org/ From 28947465061df50d39303949f829738375abfda0 Mon Sep 17 00:00:00 2001 From: ceskyDJ <48548230+ceskyDJ@users.noreply.github.com> Date: Wed, 21 Apr 2021 22:41:00 +0200 Subject: [PATCH 02/14] Improved Czech translations --- webui/src/locales/cz.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/webui/src/locales/cz.json b/webui/src/locales/cz.json index 6b8176da..e54d03da 100644 --- a/webui/src/locales/cz.json +++ b/webui/src/locales/cz.json @@ -10,7 +10,7 @@ "batch-dialog": { "btn-finish": "Dokončit", - "btn-rescan": "Znovu oskenovat stránku", + "btn-rescan": "Znovu oskenovat", "btn-next": "Další" }, @@ -31,7 +31,7 @@ "filter": { "auto-level": "Automatické zarovnání", - "threshold": "Prahová hodnota barev", + "threshold": "Práh", "blur": "Rozmazané" }, @@ -61,8 +61,8 @@ "batch:auto-collate-reverse": "Automatický (Obrátit 1, 3... 2, 4)", "filters": "Filtry", "format": "Formát", - "btn-preview": "Načíst náhled", - "btn-clear": "Vymazat", + "btn-preview": "Náhled", + "btn-clear": "Smazat", "btn-scan": "Skenovat", "btn-reset": "Resetovat", "top": "Nahoře", @@ -85,7 +85,7 @@ "locale": "Lokalizace", "locale:description": "Vyberte vaši lokalizaci", "theme": "Motiv", - "theme:description": "Motiv. Pokud použijete systémový motiv a ten se změní, budete potřebovat přenačíst aplikaci.", + "theme:description": "Motiv. Pokud použijete systémový motiv a ten se změní, budete potřebovat aktualizovat stránku s aplikací.", "theme:system": "Podle systému", "theme:light": "Světlý", "theme:dark": "Tmavý" From 795d01416d126ffb1430e462e896f47929a95b7b Mon Sep 17 00:00:00 2001 From: sbs20 Date: Thu, 22 Apr 2021 10:50:50 +0100 Subject: [PATCH 03/14] Update locale codes --- webui/src/classes/constants.js | 4 ++-- webui/src/locales/{cz.json => cs.json} | 0 webui/src/locales/{cn.json => zh.json} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename webui/src/locales/{cz.json => cs.json} (100%) rename webui/src/locales/{cn.json => zh.json} (100%) diff --git a/webui/src/classes/constants.js b/webui/src/classes/constants.js index 1ed10ec8..d63b4aeb 100644 --- a/webui/src/classes/constants.js +++ b/webui/src/classes/constants.js @@ -2,13 +2,13 @@ const Constants = { Version: process.env.VUE_APP_VERSION, Locales: [ - 'cn', - 'cz', + 'cs', 'de', 'en', 'es', 'fr', 'it', + 'zh', 'test' ], diff --git a/webui/src/locales/cz.json b/webui/src/locales/cs.json similarity index 100% rename from webui/src/locales/cz.json rename to webui/src/locales/cs.json diff --git a/webui/src/locales/cn.json b/webui/src/locales/zh.json similarity index 100% rename from webui/src/locales/cn.json rename to webui/src/locales/zh.json From 08e13728c2d2357e99f78d8035f6bd54782b685c Mon Sep 17 00:00:00 2001 From: sbs20 Date: Thu, 22 Apr 2021 11:13:06 +0100 Subject: [PATCH 04/14] Localise dates #210 --- webui/src/components/Files.vue | 2 +- webui/src/i18n.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/webui/src/components/Files.vue b/webui/src/components/Files.vue index 3b32c6ec..4064c3a1 100644 --- a/webui/src/components/Files.vue +++ b/webui/src/components/Files.vue @@ -11,7 +11,7 @@ {{ file.name }} - {{ file.lastModified }} + {{ $d(new Date(file.lastModified), 'long', $i18n.locale) }} {{ file.sizeString }} mdi-delete diff --git a/webui/src/i18n.js b/webui/src/i18n.js index ffbf1c20..f8269c59 100644 --- a/webui/src/i18n.js +++ b/webui/src/i18n.js @@ -1,8 +1,29 @@ import Vue from 'vue'; import VueI18n from 'vue-i18n'; +import Constants from './classes/constants'; Vue.use(VueI18n); +const dateTimeFormats = {}; +for (const locale of Constants.Locales) { + dateTimeFormats[locale] = { + short: { + year: 'numeric', + month: 'short', + day: 'numeric' + }, + long: { + year: 'numeric', + month: 'long', + day: 'numeric', + weekday: 'long', + hour: 'numeric', + minute: 'numeric', + hour12: false + } + }; +} + function loadLocaleMessages () { const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i); const messages = {}; @@ -17,6 +38,7 @@ function loadLocaleMessages () { } export default new VueI18n({ + dateTimeFormats, locale: process.env.VUE_APP_I18N_LOCALE || 'en', fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en', messages: loadLocaleMessages() From 15d2f26767ad5b8c569c48299dedabf790b65f8c Mon Sep 17 00:00:00 2001 From: sbs20 Date: Thu, 22 Apr 2021 12:25:42 +0100 Subject: [PATCH 05/14] Version bump --- server/package-lock.json | 2 +- server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index 66224860..ab9b85ed 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.10.0", + "version": "2.10.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/server/package.json b/server/package.json index 0b57f0ec..3e5706bd 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.10.0", + "version": "2.10.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'", From 289d16d02967074062b8ef137400f07966373196 Mon Sep 17 00:00:00 2001 From: Vaagn Avanesyan Date: Mon, 26 Apr 2021 01:50:12 +0300 Subject: [PATCH 06/14] Add Russian localisation --- webui/src/locales/ru.json | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 webui/src/locales/ru.json diff --git a/webui/src/locales/ru.json b/webui/src/locales/ru.json new file mode 100644 index 00000000..ba038553 --- /dev/null +++ b/webui/src/locales/ru.json @@ -0,0 +1,93 @@ +{ + "global": { + "application-name": "scanservjs" + }, + + "about": { + "main": "scanservjs - простой веб-интерфейс для сканеров, который предоставляет общий доступ к сканерам по сети (используя SANE) без необходимости устанавливать драйверы и исключая сложную процедуру настройки. Поддерживаются форматы TIF, JPG, PNG, PDF и TXT (используется Tesseract OCR) с возможностью задать степень сжатия. Доступно сканирование многостраничных документов. Работает со всеми SANE-совместимыми устройствами.", + "issue": "Обратная связь, исходный код:" + }, + + "batch-dialog": { + "btn-finish": "Готово", + "btn-rescan": "Переснять", + "btn-next": "Далее" + }, + + "files": { + "filename": "Имя файла", + "date": "Дата", + "size": "Размер", + "message:deleted": "Удален" + }, + + "navigation": { + "scan": "Сканирование", + "files": "Файлы", + "settings": "Настройки", + "about": "О программе", + "version": "Версия" + }, + + "filter": { + "auto-level": "Автоматическое выравнивание", + "threshold": "Порог", + "blur": "Размытие" + }, + + "pipeline": { + "high-quality": "Высокое качество", + "medium-quality": "Среднее качество", + "low-quality": "Низкое качество", + "uncompressed": "Без сжатия", + "lzw-compressed": "Сжатие LZW", + "ocr": "OCR", + "text-file": "Текстовый файл" + }, + + "scan": { + "device": "Устройство", + "source": "Источник", + "resolution": "Разрешение", + "mode": "Режим сканирования", + "dynamic-lineart": "Черное-белое", + "dynamic-lineart:enabled": "Включено", + "dynamic-lineart:disabled": "Выключено", + "batch": "Пакетный режим", + "batch:none": "Не выбрано", + "batch:manual": "Вручную (с предпросмотром)", + "batch:auto": "Авто (в порядке сканирование)", + "batch:auto-collate-standard": "Авто (Сопоставить 1, 3... 4, 2)", + "batch:auto-collate-reverse": "Авто (В обратном порядке 1, 3... 2, 4)", + "filters": "Фильтры", + "format": "Формат", + "btn-preview": "Предпросмотр", + "btn-clear": "Очистить", + "btn-scan": "Сканировать", + "btn-reset": "Сбросить", + "top": "Отступ сверху", + "left": "Отступ слева", + "width": "Ширина", + "height": "Высота", + "paperSize": "Размер бумаги", + "brightness": "Яркость", + "contrast": "Контраст", + "message:loading-devices": "Получение списка устройств...", + "message:no-devices": "Устройства не обнаружены", + "message:deleted-preview": "Удалено", + "message:turn-documents": "Повернуть", + "message:preview-of-page": "Предпросмотр страницы" + }, + + "settings": { + "title": "@:navigation.settings", + "behaviour-ui": "Пользовательский интерфейс и поведение", + "locale": "Язык", + "locale:description": "Выберите язык", + "theme": "Тема", + "theme:description": "Тема. При выборе темы как в системе, необходимо обновить страницу.", + "theme:system": "Как в системе", + "theme:light": "Светлая", + "theme:dark": "Темная" + } +} \ No newline at end of file From acec67beb3a962db898bb1dced7942635855421c Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 11:03:20 +0100 Subject: [PATCH 07/14] Fix incorrect paper sizes for A4 and A5 #215 --- server/src/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/config.js b/server/src/config.js index 2e2d8e52..9e31cd77 100644 --- a/server/src/config.js +++ b/server/src/config.js @@ -71,8 +71,8 @@ class Config { paperSizes: [ { name: 'A3', dimensions: { x: 297, y: 420 } }, - { name: 'A4', dimensions: { x: 215, y: 297 } }, - { name: 'A5', dimensions: { x: 148, y: 215 } }, + { name: 'A4', dimensions: { x: 210, y: 297 } }, + { name: 'A5', dimensions: { x: 148, y: 210 } }, { name: 'A6', dimensions: { x: 105, y: 148 } }, { name: 'B3', dimensions: { x: 353, y: 500 } }, { name: 'B4', dimensions: { x: 250, y: 353 } }, From 73655da12b654b55705bbbe8021a1f0ac0721bc7 Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 11:11:25 +0100 Subject: [PATCH 08/14] Translatable modes and sources #209 --- webui/src/components/Scan.vue | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/webui/src/components/Scan.vue b/webui/src/components/Scan.vue index 3d0860d0..aaa5fa3a 100644 --- a/webui/src/components/Scan.vue +++ b/webui/src/components/Scan.vue @@ -10,7 +10,7 @@ + :items="sources" item-value="value" item-text="text"> + :items="modes" item-value="value" item-text="text"> { + const key = `mode.${sanitiseLocaleKey(mode)}`; + let translation = this.$t(key); + return { + text: translation === key ? mode : translation, + value: mode + }; + }); + }, + paperSizes() { const deviceSize = { x: this.device.features['-x'].limits[1], @@ -219,6 +234,17 @@ export default { value: p }; }); + }, + + sources() { + return this.device.features['--source'].options.map(source => { + const key = `source.${sanitiseLocaleKey(source)}`; + let translation = this.$t(key); + return { + text: translation === key ? source : translation, + value: source + }; + }); } }, @@ -400,9 +426,9 @@ export default { return this._fetch(url).then(context => { window.clearTimeout(timer); - this.context = context; - if (context.devices.length > 0) { + if (context.devices && context.devices.length > 0) { + this.context = context; this.device = context.devices[0]; this.request = this.buildRequest(); for (let test of context.diagnostics) { From fd303a7b0abec4fe29be513a19d328ce4b9ea1e4 Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 11:13:05 +0100 Subject: [PATCH 09/14] Add russia locale #154 --- webui/src/classes/constants.js | 1 + 1 file changed, 1 insertion(+) diff --git a/webui/src/classes/constants.js b/webui/src/classes/constants.js index d63b4aeb..a142d953 100644 --- a/webui/src/classes/constants.js +++ b/webui/src/classes/constants.js @@ -8,6 +8,7 @@ const Constants = { 'es', 'fr', 'it', + 'ru', 'zh', 'test' ], From 3caf8a412d795749a3373bb36fc505f5f9891451 Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 11:16:41 +0100 Subject: [PATCH 10/14] Version++ --- server/package-lock.json | 2 +- server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index ab9b85ed..adcd0ade 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.10.1", + "version": "2.11.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/server/package.json b/server/package.json index 3e5706bd..a6e16f5c 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "scanservjs-server", - "version": "2.10.1", + "version": "2.11.0", "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'", From b5ceff572a99496825d302e7ecb55fcc25e61be2 Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 11:19:18 +0100 Subject: [PATCH 11/14] Readme update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a965f016..7c51bcfb 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ complicated installation. * Filters: Autolevels, Threshold, Blur * Configurable overrides for all defaults as well as filters and formats * Multipage scanning (with collation for double sided scans) -* International translations: Czech, French, German, Italian, Mandarin, Spanish; - [Help requested](https://github.com/sbs20/scanservjs/issues/154) +* International translations: Czech, French, German, Italian, Mandarin, Russian, + Spanish; [Help requested](https://github.com/sbs20/scanservjs/issues/154) * Light and dark mode * Responsive design From 86fab6783f74997e368a2e5a17f67cbd95c3783b Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 12:20:51 +0100 Subject: [PATCH 12/14] Additional i18n #209 --- webui/src/locales/cs.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/de.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/en.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/es.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/fr.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/it.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/ru.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/test.json | 29 +++++++++++++++++++++++++++++ webui/src/locales/zh.json | 29 +++++++++++++++++++++++++++++ 9 files changed, 261 insertions(+) diff --git a/webui/src/locales/cs.json b/webui/src/locales/cs.json index e54d03da..e040e70e 100644 --- a/webui/src/locales/cs.json +++ b/webui/src/locales/cs.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Zrušení", "btn-finish": "Dokončit", "btn-rescan": "Znovu oskenovat", "btn-next": "Další" @@ -35,6 +36,34 @@ "blur": "Rozmazané" }, + "mode": { + "color": "Barevný", + "halftone": "Halftone", + "gray": "Černobílý", + "lineart": "Perokresba", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Skenovací deska", + "adf": "ADF", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Vysoká kvalita", "medium-quality": "Střední kvalita", diff --git a/webui/src/locales/de.json b/webui/src/locales/de.json index 9b5b42fc..4eb26349 100644 --- a/webui/src/locales/de.json +++ b/webui/src/locales/de.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Stornieren", "btn-finish": "Fertig", "btn-rescan": "Seite erneut scannen", "btn-next": "Nächste Seite scannen" @@ -35,6 +36,34 @@ "blur": "Weichzeichner" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Hohe Qualität", "medium-quality": "Mittlere Qualität", diff --git a/webui/src/locales/en.json b/webui/src/locales/en.json index 1945b1e8..7e2fc324 100644 --- a/webui/src/locales/en.json +++ b/webui/src/locales/en.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Cancel", "btn-finish": "Finish", "btn-rescan": "Rescan page", "btn-next": "Next" @@ -35,6 +36,34 @@ "blur": "Blur" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "ADF", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "High quality", "medium-quality": "Medium quality", diff --git a/webui/src/locales/es.json b/webui/src/locales/es.json index 19732b19..327a291c 100644 --- a/webui/src/locales/es.json +++ b/webui/src/locales/es.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Cancelar", "btn-finish": "Terminar", "btn-rescan": "Reescanear página", "btn-next": "Siguiente" @@ -35,6 +36,34 @@ "blur": "Difuminar" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Calidad alta", "medium-quality": "Calidad media", diff --git a/webui/src/locales/fr.json b/webui/src/locales/fr.json index 61288db5..bc394bf7 100644 --- a/webui/src/locales/fr.json +++ b/webui/src/locales/fr.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Annuler", "btn-finish": "Finish", "btn-rescan": "Rescan page", "btn-next": "Suivant" @@ -35,6 +36,34 @@ "blur": "Flou" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Qualité élevée", "medium-quality": "Qualité moyenne", diff --git a/webui/src/locales/it.json b/webui/src/locales/it.json index 5ad3ae6b..97b6de4b 100644 --- a/webui/src/locales/it.json +++ b/webui/src/locales/it.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Annulla", "btn-finish": "Finito", "btn-rescan": "Ripeti scansione", "btn-next": "Prossima pagina" @@ -35,6 +36,34 @@ "blur": "Sfocatura" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Qualità alta", "medium-quality": "Qualità media", diff --git a/webui/src/locales/ru.json b/webui/src/locales/ru.json index ba038553..55249d37 100644 --- a/webui/src/locales/ru.json +++ b/webui/src/locales/ru.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "Отмена", "btn-finish": "Готово", "btn-rescan": "Переснять", "btn-next": "Далее" @@ -35,6 +36,34 @@ "blur": "Размытие" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "Высокое качество", "medium-quality": "Среднее качество", diff --git a/webui/src/locales/test.json b/webui/src/locales/test.json index 11e52ae4..3e36c518 100644 --- a/webui/src/locales/test.json +++ b/webui/src/locales/test.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "##CANCEL", "btn-finish": "##FINISH", "btn-rescan": "##RESCAN", "btn-next": "##NEXT" @@ -36,6 +37,34 @@ "blur": "##SCAN.FILTERS:BLUR" }, + "mode": { + "color": "##COLOUR", + "halftone": "##HALFTONE", + "gray": "##GREY", + "lineart": "##LINEART", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "##FLATBED", + "adf": "##ADF", + "auto": "##AUTO", + "left-aligned": "##LEFT", + "centrally-aligned": "##CENTRAL", + "duplex": "##DUPLEX", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "##HIGH-QUALITY", "medium-quality": "##MEDIUM-QUALITY", diff --git a/webui/src/locales/zh.json b/webui/src/locales/zh.json index fc416929..64f5d816 100644 --- a/webui/src/locales/zh.json +++ b/webui/src/locales/zh.json @@ -9,6 +9,7 @@ }, "batch-dialog": { + "btn-cancel": "取消", "btn-finish": "完成", "btn-rescan": "重新扫描", "btn-next": "下一张" @@ -35,6 +36,34 @@ "blur": "模糊" }, + "mode": { + "color": "Colour", + "halftone": "Halftone", + "gray": "Grey", + "lineart": "Lineart", + + "24bitcolor":"@:mode.color", + "black & white": "@:mode.lineart", + "gray(error diffusion)": "@:mode.halftone", + "true gray": "@:mode.gray", + "24bit color(fast)": "@:mode.color" + }, + + "source": { + "flatbed": "Flatbed", + "adf": "Automatic Document Feeder", + "auto": "Auto", + "left-aligned": "Left Aligned", + "centrally-aligned": "Centrally Aligned", + "duplex": "Duplex", + + "automatic document feeder": "@:source.adf", + "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)", + "automatic document feeder(left aligned,duplex)": "@:source.adf (@:source.left-aligned, @:source.duplex)", + "automatic document feeder(centrally aligned)": "@:source.adf (@:source.centrally-aligned)", + "automatic document feeder(centrally aligned,duplex)": "@:source.adf (@:source.centrally-aligned, @:source.duplex)" + }, + "pipeline": { "high-quality": "高画质", "medium-quality": "中画质", From 7761b6f8e19b8c843378c0b78ad7f35dc03919ad Mon Sep 17 00:00:00 2001 From: sbs20 Date: Mon, 26 Apr 2021 12:45:43 +0100 Subject: [PATCH 13/14] Global sanitisation fix --- webui/src/components/Scan.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webui/src/components/Scan.vue b/webui/src/components/Scan.vue index aaa5fa3a..7d4d3810 100644 --- a/webui/src/components/Scan.vue +++ b/webui/src/components/Scan.vue @@ -136,7 +136,7 @@ function round(n, dp) { } function sanitiseLocaleKey(s) { - return s.toLowerCase().replace('[', '(').replace(']', ')'); + return s.toLowerCase().replace(/\[/g, '(').replace(/\]/g, ')'); } export default { From 4039260eb47c2a3137ad59e393eda1f9b3117ef1 Mon Sep 17 00:00:00 2001 From: Guldoman Date: Mon, 26 Apr 2021 14:22:04 +0200 Subject: [PATCH 14/14] Update Italian translation --- webui/src/locales/it.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/webui/src/locales/it.json b/webui/src/locales/it.json index 97b6de4b..16aedf3f 100644 --- a/webui/src/locales/it.json +++ b/webui/src/locales/it.json @@ -37,9 +37,9 @@ }, "mode": { - "color": "Colour", - "halftone": "Halftone", - "gray": "Grey", + "color": "A colori", + "halftone": "Mezzitoni", + "gray": "Scala di grigi", "lineart": "Lineart", "24bitcolor":"@:mode.color", @@ -50,12 +50,12 @@ }, "source": { - "flatbed": "Flatbed", - "adf": "Automatic Document Feeder", - "auto": "Auto", - "left-aligned": "Left Aligned", - "centrally-aligned": "Centrally Aligned", - "duplex": "Duplex", + "flatbed": "Piano fisso", + "adf": "Alimentatore automatico di documenti", + "auto": "Automatico", + "left-aligned": "Allineato a sinistra", + "centrally-aligned": "Allineato al centro", + "duplex": "Fronte/retro", "automatic document feeder": "@:source.adf", "automatic document feeder(left aligned)": "@:source.adf (@:source.left-aligned)",