summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig3
-rw-r--r--.gitlab-ci.yml33
-rw-r--r--NEWS67
-rw-r--r--backend/Makefile.am2
-rw-r--r--backend/avision.c9
-rw-r--r--backend/bh.h3
-rw-r--r--backend/canon_dr-cmd.h1
-rw-r--r--backend/canon_dr.c24
-rw-r--r--backend/canon_dr.h5
-rw-r--r--backend/dell1600n_net.c2
-rw-r--r--backend/epson.c112
-rw-r--r--backend/epson2-ops.c14
-rw-r--r--backend/escl/escl.c81
-rw-r--r--backend/escl/escl.h6
-rw-r--r--backend/escl/escl_capabilities.c14
-rw-r--r--backend/escl/escl_crop.c8
-rw-r--r--backend/escl/escl_devices.c8
-rw-r--r--backend/escl/escl_jpeg.c4
-rw-r--r--backend/escl/escl_mupdf.c18
-rw-r--r--backend/escl/escl_newjob.c71
-rw-r--r--backend/escl/escl_pdf.c24
-rw-r--r--backend/escl/escl_png.c16
-rw-r--r--backend/escl/escl_reset.c42
-rw-r--r--backend/escl/escl_scan.c2
-rw-r--r--backend/escl/escl_status.c137
-rw-r--r--backend/escl/escl_tiff.c8
-rw-r--r--backend/genesys/genesys.cpp3
-rw-r--r--backend/genesys/gl124.cpp4
-rw-r--r--backend/genesys/gl124_registers.h2
-rw-r--r--backend/hp-option.c4
-rw-r--r--backend/hp-scl.c2
-rw-r--r--backend/hp3900_config.c10
-rw-r--r--backend/hp3900_rts8822.c8
-rw-r--r--backend/hp3900_sane.c4
-rw-r--r--backend/hp5400_internal.c4
-rw-r--r--backend/hp5590.c18
-rw-r--r--backend/hp5590_low.c8
-rw-r--r--backend/hpsj5s.c22
-rw-r--r--backend/kodakaio.c2
-rw-r--r--backend/lexmark_low.c6
-rw-r--r--backend/lexmark_x2600.c2
-rw-r--r--backend/magicolor.c71
-rw-r--r--backend/mustek_scsi_pp.c2
-rw-r--r--backend/mustek_usb2.c10
-rw-r--r--backend/mustek_usb2_high.c12
-rw-r--r--backend/mustek_usb2_reflective.c10
-rw-r--r--backend/mustek_usb2_transparent.c8
-rw-r--r--backend/net.c2
-rw-r--r--backend/pixma/pixma_common.h2
-rw-r--r--backend/pixma/pixma_imageclass.c1
-rw-r--r--backend/pixma/pixma_io_sanei.c4
-rw-r--r--backend/pixma/pixma_mp150.c24
-rw-r--r--backend/plustek-pp_io.c4
-rw-r--r--backend/rts8891.c1243
-rw-r--r--backend/rts8891_devices.c85
-rw-r--r--backend/rts8891_low.c74
-rw-r--r--backend/rts8891_low.h6
-rw-r--r--backend/sm3600.h4
-rw-r--r--backend/snapscan-usb.c2
-rw-r--r--backend/test.c2
-rw-r--r--backend/umax_pp_low.c2
-rw-r--r--backend/umax_pp_mid.c2
-rw-r--r--backend/xerox_mfp-usb.c2
-rw-r--r--backend/xerox_mfp.c66
-rw-r--r--backend/xerox_mfp.conf.in4
-rw-r--r--backend/xerox_mfp.h1
-rw-r--r--configure.ac1
-rw-r--r--doc/descriptions/artec_eplus48u.desc16
-rw-r--r--doc/descriptions/avision.desc6
-rw-r--r--doc/descriptions/epjitsu.desc16
-rw-r--r--doc/descriptions/escl.desc20
-rw-r--r--doc/descriptions/genesys.desc6
-rw-r--r--doc/descriptions/gt68xx.desc63
-rw-r--r--doc/descriptions/magicolor.desc10
-rw-r--r--doc/descriptions/mustek.desc4
-rw-r--r--doc/descriptions/pixma.desc62
-rw-r--r--doc/sane-escl.man6
-rw-r--r--doc/sane-magicolor.man8
-rw-r--r--doc/sane-mustek.man4
-rw-r--r--doc/sane-pixma.man16
-rw-r--r--doc/saned.man12
-rw-r--r--frontend/saned.c395
-rw-r--r--frontend/scanimage.c2
-rw-r--r--include/sane/sanei_usb.h6
-rw-r--r--po/LINGUAS1
-rw-r--r--po/bg.po102
-rw-r--r--po/ca.po102
-rw-r--r--po/ca@valencia.po102
-rw-r--r--po/cs.po102
-rw-r--r--po/da.po102
-rw-r--r--po/de.po102
-rw-r--r--po/en_GB.po102
-rw-r--r--po/eo.po102
-rw-r--r--po/es.po102
-rw-r--r--po/fi.po102
-rw-r--r--po/fr.po160
-rw-r--r--po/gl.po102
-rw-r--r--po/he.po102
-rw-r--r--po/hu.po102
-rw-r--r--po/it.po102
-rw-r--r--po/ja.po102
-rw-r--r--po/ka.po102
-rw-r--r--po/nb.po102
-rw-r--r--po/nl.po102
-rw-r--r--po/pl.po102
-rw-r--r--po/pt.po102
-rw-r--r--po/ru.po102
-rw-r--r--po/sv.po102
-rw-r--r--po/tr.po6983
-rw-r--r--po/uk.po221
-rw-r--r--po/zh_CN.po213
-rw-r--r--sanei/sanei_config.c2
-rw-r--r--sanei/sanei_pa4s2.c2
-rw-r--r--sanei/sanei_scsi.c2
-rw-r--r--sanei/sanei_usb.c18
-rwxr-xr-xtools/create-release.sh11
-rw-r--r--tools/sane-find-scanner.c2
117 files changed, 10841 insertions, 2127 deletions
diff --git a/.editorconfig b/.editorconfig
index 107f9ec..8bd845a 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,7 +6,8 @@
# Your editor may need a plugin for this configuration to take effect.
# See http://editorconfig.org/#download for details.
-root = true ; look no further
+; look no further
+root = true
[*]
charset = utf-8
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f68aa36..88e22f3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,7 +5,7 @@
variables:
REGISTRY_HUB: "registry.gitlab.com/sane-project/ci-envs"
- CONFIGURE_MINI: "--enable-silent-rules"
+ CONFIGURE_MINI: ""
CONFIGURE_FULL: "--with-usb --with-usb-record-replay --with-avahi --enable-pnm-backend --with-libcurl --with-poppler-glib"
stages:
@@ -39,14 +39,7 @@ make-dist:
- cd build
- tar xzf ../sane-backends-*.tar.gz --strip-components=1
- (set -x; ./configure $CONFIGURE_OPTS)
- - eval "(set -x; make -j2 -k $MAKE_FLAGS)"
-
-debian-10-full:
- image: $REGISTRY_HUB:debian-buster-full
- variables:
- CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
- MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
- <<: *compile_definition
+ - eval "(set -x; make -w -O -j2 -k $MAKE_FLAGS)"
debian-11-mini:
image: $REGISTRY_HUB:debian-bullseye-mini
@@ -59,8 +52,8 @@ debian-11-mini:
# environment is used to keep some of the HTML documentation that's
# available from our website up-to-date.
-debian-11-full:
- image: $REGISTRY_HUB:debian-bullseye-full
+debian-12-full:
+ image: $REGISTRY_HUB:debian-bookworm-full
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
@@ -76,22 +69,22 @@ debian-11-full:
- doc/sanei-html
expire_in: 1 day
-fedora-36-clang:
- image: $REGISTRY_HUB:fedora-36-clang
+fedora-39-clang:
+ image: $REGISTRY_HUB:fedora-39-clang
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
- MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
+ MAKE_FLAGS: "CFLAGS='-Werror -Wno-error=unused-but-set-variable' CXXFLAGS='-Werror'"
<<: *compile_definition
-alpine-3.15-musl:
- image: $REGISTRY_HUB:alpine-3.15-musl
+alpine-3.18-musl:
+ image: $REGISTRY_HUB:alpine-3.18-musl
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
MAKE_FLAGS: "CFLAGS='-Werror -Wno-pedantic' CXXFLAGS=-Werror"
<<: *compile_definition
-ubuntu-22.04-lts:
- image: $REGISTRY_HUB:ubuntu-jammy-dist
+ubuntu-23.10:
+ image: $REGISTRY_HUB:ubuntu-mantic-dist
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
@@ -112,7 +105,7 @@ make-distcheck:
image: $REGISTRY_HUB:debian-bullseye-full
stage: snapshot
dependencies:
- - debian-11-full
+ - debian-12-full
script:
- tar xzf sane-backends-*.tar.gz --strip-components=1
- rm sane-backends-*.tar.gz
@@ -132,6 +125,8 @@ make-distcheck:
upload:
image: alpine
stage: release
+ needs:
+ - job: make-dist
before_script:
- apk --no-cache add curl git jq
script:
diff --git a/NEWS b/NEWS
index 0578bde..3e9d475 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,73 @@
<!--(towncrier release notes start)-->
+## New with 1.4.0 (released 2025-05-11)
+
+### Backends
+
+- `avision`:
+ - Added support for Xerox Book Scanner 4167, which appears to be a rebadged Avision FB6080E using different USB ids.
+- `artec_eplus48u`:
+ - Added some firmware names to descriptions
+- `canon_dr`:
+ - Added "function-number" option, specifically for Canon DR-3010.
+- `epjitsu`:
+ - Added some firmware names to descriptions
+- `escl`:
+ - New validated working scanners:
+ - Brother MFC-J453DW
+ - Epson XP-4200 validated.
+ - Canon PIXMA TS5100
+ - Fix for Kyocera ECOSYS M3145dn reset to idle.
+ - Added lineart mode activation for ADF source.
+ - Diagnostic log rationalisation to make less "noisy".
+ - Fix for SSL/TLS issue encountered with the Canon GX6050 scanner.
+ - Fix for HTTP2 header tag case issue.
+- `gt68xx`:
+ - Added some firmware names to descriptions
+- `hp5590`:
+ - Fix for issue triggered by the default increase to buffer size. Incorrectly reported as a buffer size issue, it was merely an algorithmic error in the backend.
+- `magicolor`:
+ - Added support for Toshiba TEC e-STUDIO2323AM
+ - Small fixes for device definitions.
+ - Protocol fixes for ESTUDIO devices.
+- `pixma`:
+ - Added support for new models:
+ - PIXMA TS3600 Series
+ - PIXMA TS3700 Series
+ - PIXMA TS8800 series
+ - PIXMA E3400 Series
+ - imageClass MF4500w Series
+ - PIXMA G3080 series
+ - PIXMA G3090 series
+ - PIXMA G4080 series
+ - PIXMA G4090 series
+ - PIXUS XK130 series
+ - Buffer overflow issue fix for networked scanners.
+- `rts8891`:
+ - Merged older work for Umax Atra 4400/4450 support.
+
+### Frontends
+
+- `saned`:
+ - Added long-standing request for network scanner relay. See new options -n and --allow-network. Beware that there are potential recursive issues with the misuse of this option.
+ - Fixes for child process lifecycle management.
+
+- `scanimage`:
+ - Formatting fix for help text.
+
+### Build
+
+- Fix for build issues on MacOS and clang16 with conflicting function names.
+- CI builds on GitLab updated to more recent versions.
+- sm3600 backend had definitions for typedef "bool" which now forms part of C23 standard and conflicted. This has been fixed.
+- Clang warnings fixed, mostly due to pre-ANSI argumentless function definitions and declarations. All updated to ANSI standards.
+
+### Documentation
+
+- Added translations for newly support language Turkish.
+
+
## New with 1.3.1 (released 2024-05-22)
### Backends
diff --git a/backend/Makefile.am b/backend/Makefile.am
index 86b1d1f..4bf4e6f 100644
--- a/backend/Makefile.am
+++ b/backend/Makefile.am
@@ -1619,7 +1619,7 @@ libsane_rts8891_la_LIBADD = $(COMMON_LIBS) \
sane_strstatus.lo \
../sanei/sanei_scsi.lo \
../sanei/sanei_usb.lo \
- $(SCSI_LIBS) $(USB_LIBS) $(RESMGR_LIBS) $(RESMGR_LIBS)
+ $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(RESMGR_LIBS) $(RESMGR_LIBS)
EXTRA_DIST += rts8891.conf.in
# TODO: Why are these distributed but not compiled?
EXTRA_DIST += rts8891_devices.c rts8891_low.c rts8891_low.h
diff --git a/backend/avision.c b/backend/avision.c
index a681ed2..3189e41 100644
--- a/backend/avision.c
+++ b/backend/avision.c
@@ -1321,6 +1321,15 @@ static Avision_HWEntry Avision_Device_List [] =
/* status="complete" */
{ NULL, NULL,
+ 0x262c, 0x2001,
+ "Xerox", "Book Scanner 4167",
+ AV_NON_INTERLACED_DUPLEX_300,
+ { 0, {0, 0}, {{0, 0}, {0, 0}} }
+ },
+ /* comment="1 pass, 1200 dpi, A3 - duplex! - zero edge! (rebadged Avision FB6080E)" */
+ /* status="complete" */
+
+ { NULL, NULL,
0x04a7, 0x049C,
"Xerox", "DocuMate150",
AV_INT_BUTTON | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_BACKGROUND_QUIRK,
diff --git a/backend/bh.h b/backend/bh.h
index c96dc79..1a4c7f1 100644
--- a/backend/bh.h
+++ b/backend/bh.h
@@ -544,9 +544,8 @@ static SANE_String_Const paper_list[] =
0
};
-static /* inline */ int _is_host_little_endian(void);
static /* inline */ int
-_is_host_little_endian()
+_is_host_little_endian(void)
{
SANE_Int val = 255;
unsigned char *firstbyte = (unsigned char *) &val;
diff --git a/backend/canon_dr-cmd.h b/backend/canon_dr-cmd.h
index 0ef883f..7812232 100644
--- a/backend/canon_dr-cmd.h
+++ b/backend/canon_dr-cmd.h
@@ -247,6 +247,7 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
#define get_R_PANEL_count_only(in) getbitfield(in+1, 1, 1)
#define get_R_PANEL_bypass_mode(in) getbitfield(in+1, 1, 2)
#define get_R_PANEL_enable_led(in) getbitfield(in+2, 1, 0)
+#define get_R_PANEL_function_number(in) getbitfield(in+3, 0xf, 0)
#define get_R_PANEL_counter(in) getnbyte(in + 0x04, 4)
/*sensors*/
diff --git a/backend/canon_dr.c b/backend/canon_dr.c
index 359005a..9607e3c 100644
--- a/backend/canon_dr.c
+++ b/backend/canon_dr.c
@@ -464,6 +464,7 @@
#define STRING_IMPRINTER_ADDON_BoI SANE_I18N("Black-on-Image")
#define STRING_IMPRINTER_ADDON_WoB SANE_I18N("White-on-Black")
+
/* Also set via config file. */
static int global_buffer_size;
static int global_buffer_size_default = 2 * 1024 * 1024;
@@ -1564,6 +1565,7 @@ init_model (struct scanner *s)
s->fcal_dest = FCAL_DEST_SW;
s->sw_lut = 1;
s->invert_tly = 1;
+ s->has_function_number = 1;
/*only in Y direction, so we trash them in X*/
s->std_res_x[DPI_100]=0;
@@ -3214,6 +3216,22 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->cap = SANE_CAP_INACTIVE;
}
+ if(option==OPT_FUNCTION_NUMBER){
+ opt->name = "function-number";
+ opt->title = "Function number";
+ opt->desc = "Function number set on panel";
+ opt->type = SANE_TYPE_INT;
+ opt->unit = SANE_UNIT_NONE;
+ opt->constraint_type = SANE_CONSTRAINT_RANGE;
+ opt->constraint.range = &s->counter_range;
+ s->counter_range.min=1;
+ s->counter_range.max=9;
+ s->counter_range.quant=1;
+ opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
+ if(!s->can_read_panel || !s->has_function_number)
+ opt->cap = SANE_CAP_INACTIVE;
+ }
+
if(option==OPT_ADF_LOADED){
opt->name = "adf-loaded";
opt->title = "ADF Loaded";
@@ -3654,6 +3672,11 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
*val_p = s->total_counter;
return ret;
+ case OPT_FUNCTION_NUMBER:
+ ret = read_panel(s, OPT_FUNCTION_NUMBER);
+ *val_p = s->panel_function_number;
+ return ret;
+
case OPT_ADF_LOADED:
ret = read_sensors(s,OPT_ADF_LOADED);
*val_p = s->sensor_adf_loaded;
@@ -4674,6 +4697,7 @@ read_panel(struct scanner *s,SANE_Int option)
s->panel_bypass_mode = get_R_PANEL_bypass_mode(in);
s->panel_enable_led = get_R_PANEL_enable_led(in);
s->panel_counter = get_R_PANEL_counter(in);
+ s->panel_function_number = get_R_PANEL_function_number(in);
ret = SANE_STATUS_GOOD;
}
diff --git a/backend/canon_dr.h b/backend/canon_dr.h
index e84b5b7..d591e7a 100644
--- a/backend/canon_dr.h
+++ b/backend/canon_dr.h
@@ -78,6 +78,7 @@ enum scanner_Option
OPT_COUNTER,
OPT_ROLLERCOUNTER,
OPT_TOTALCOUNTER,
+ OPT_FUNCTION_NUMBER,
OPT_ADF_LOADED,
OPT_CARD_LOADED,
@@ -250,6 +251,7 @@ struct scanner
int has_hwcrop;
int has_pre_imprinter;
int has_post_imprinter;
+ int has_function_number;
int can_read_sensors;
int can_read_panel;
int can_write_panel;
@@ -445,13 +447,14 @@ struct scanner
int panel_bypass_mode;
int panel_enable_led;
int panel_counter;
+ int panel_function_number;
int sensor_adf_loaded;
int sensor_card_loaded;
int roller_counter;
int total_counter;
/* values which are used to track the frontend's access to sensors */
- char panel_read[OPT_COUNTER - OPT_START + 1];
+ char panel_read[OPT_FUNCTION_NUMBER - OPT_START + 1];
char sensors_read[OPT_CARD_LOADED - OPT_ADF_LOADED + 1];
};
diff --git a/backend/dell1600n_net.c b/backend/dell1600n_net.c
index 9f2d48d..45b0d2c 100644
--- a/backend/dell1600n_net.c
+++ b/backend/dell1600n_net.c
@@ -907,7 +907,7 @@ sane_get_select_fd (SANE_Handle __sane_unused__ handle,
/* Clears the contents of gKnownDevices and zeros it */
void
-ClearKnownDevices ()
+ClearKnownDevices (void)
{
int i;
diff --git a/backend/epson.c b/backend/epson.c
index d2aba4c..d1cad9f 100644
--- a/backend/epson.c
+++ b/backend/epson.c
@@ -851,9 +851,9 @@ static EpsonHdrUnion command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
SANE_Status * status);
static SANE_Status get_identity_information (SANE_Handle handle);
static SANE_Status get_identity2_information (SANE_Handle handle);
-static int send (Epson_Scanner * s, void *buf, size_t buf_size,
+static int scanner_send (Epson_Scanner * s, void *buf, size_t buf_size,
SANE_Status * status);
-static ssize_t receive (Epson_Scanner * s, void *buf, ssize_t buf_size,
+static ssize_t scanner_receive (Epson_Scanner * s, void *buf, ssize_t buf_size,
SANE_Status * status);
static SANE_Status color_shuffle (SANE_Handle handle, int *new_length);
static SANE_Status request_focus_position (SANE_Handle handle,
@@ -880,7 +880,7 @@ static void scan_finish (Epson_Scanner * s);
*/
static int
-send (Epson_Scanner * s, void *buf, size_t buf_size, SANE_Status * status)
+scanner_send (Epson_Scanner * s, void *buf, size_t buf_size, SANE_Status * status)
{
DBG (3, "send buf, size = %lu\n", (u_long) buf_size);
@@ -933,7 +933,7 @@ send (Epson_Scanner * s, void *buf, size_t buf_size, SANE_Status * status)
*/
static ssize_t
-receive (Epson_Scanner * s, void *buf, ssize_t buf_size, SANE_Status * status)
+scanner_receive (Epson_Scanner * s, void *buf, ssize_t buf_size, SANE_Status * status)
{
ssize_t n = 0;
@@ -1044,7 +1044,7 @@ expect_ack (Epson_Scanner * s)
len = sizeof (result);
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
@@ -1072,12 +1072,12 @@ set_cmd (Epson_Scanner * s, u_char cmd, int val)
params[0] = ESC;
params[1] = cmd;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
return status;
params[0] = val;
- send (s, params, 1, &status);
+ scanner_send (s, params, 1, &status);
status = expect_ack (s);
return status;
@@ -1151,7 +1151,7 @@ set_zoom (Epson_Scanner * s, int x_zoom, int y_zoom)
cmd[0] = ESC;
cmd[1] = s->hw->cmd->set_zoom;
- send (s, cmd, 2, &status);
+ scanner_send (s, cmd, 2, &status);
status = expect_ack (s);
if (status != SANE_STATUS_GOOD)
@@ -1160,7 +1160,7 @@ set_zoom (Epson_Scanner * s, int x_zoom, int y_zoom)
params[0] = x_zoom;
params[1] = y_zoom;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
status = expect_ack (s);
return status;
@@ -1179,7 +1179,7 @@ set_resolution (Epson_Scanner * s, int xres, int yres)
params[0] = ESC;
params[1] = s->hw->cmd->set_resolution;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
status = expect_ack (s);
if (status != SANE_STATUS_GOOD)
@@ -1190,7 +1190,7 @@ set_resolution (Epson_Scanner * s, int xres, int yres)
params[2] = yres;
params[3] = yres >> 8;
- send (s, params, 4, &status);
+ scanner_send (s, params, 4, &status);
status = expect_ack (s);
return status;
@@ -1224,7 +1224,7 @@ set_scan_area (Epson_Scanner * s, int x, int y, int width, int height)
params[0] = ESC;
params[1] = s->hw->cmd->set_scan_area;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
status = expect_ack (s);
if (status != SANE_STATUS_GOOD)
return status;
@@ -1238,7 +1238,7 @@ set_scan_area (Epson_Scanner * s, int x, int y, int width, int height)
params[6] = height;
params[7] = height >> 8;
- send (s, params, 8, &status);
+ scanner_send (s, params, 8, &status);
status = expect_ack (s);
return status;
@@ -1267,7 +1267,7 @@ set_color_correction_coefficients (Epson_Scanner * s)
params[0] = ESC;
params[1] = cmd;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
return status;
@@ -1285,7 +1285,7 @@ set_color_correction_coefficients (Epson_Scanner * s)
cct[0], cct[1], cct[2], cct[3],
cct[4], cct[5], cct[6], cct[7], cct[8]);
- send (s, cct, length, &status);
+ scanner_send (s, cct, length, &status);
status = expect_ack (s);
DBG (1, "set_color_correction_coefficients: ending=%d.\n", status);
@@ -1376,11 +1376,11 @@ set_gamma_table (Epson_Scanner * s)
}
}
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
return status;
- send (s, gamma, length, &status);
+ scanner_send (s, gamma, length, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
return status;
@@ -1621,7 +1621,7 @@ reset (Epson_Scanner * s)
return status;
}
- send (s, param, 2, &status);
+ scanner_send (s, param, 2, &status);
status = expect_ack (s);
if (needToClose)
@@ -1658,8 +1658,8 @@ close_scanner (Epson_Scanner * s)
param[0] = ESC;
param[1] = s->hw->cmd->request_status;
param[2]='\0';
- send(s,param,2,&status);
- receive(s,result,4,&status);
+ scanner_send(s,param,2,&status);
+ scanner_receive(s,result,4,&status);
}
@@ -1782,7 +1782,7 @@ feed (Epson_Scanner * s)
params[0] = cmd;
- send (s, params, 1, &status);
+ scanner_send (s, params, 1, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
{
@@ -1824,7 +1824,7 @@ eject (Epson_Scanner * s)
params[0] = cmd;
- send (s, params, 1, &status);
+ scanner_send (s, params, 1, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
{
@@ -1866,7 +1866,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
head = &(hdrunion->hdr);
- send (s, cmd, cmd_size, status);
+ scanner_send (s, cmd, cmd_size, status);
if (SANE_STATUS_GOOD != *status)
{
@@ -1874,7 +1874,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
it seems to fix the problem. It should not have any
ill effects on other scanners. */
*status = SANE_STATUS_GOOD;
- send (s, cmd, cmd_size, status);
+ scanner_send (s, cmd, cmd_size, status);
if (SANE_STATUS_GOOD != *status)
return (EpsonHdrUnion) 0;
}
@@ -1883,18 +1883,18 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
if (s->hw->connection == SANE_EPSON_SCSI)
{
- receive (s, buf, 4, status);
+ scanner_receive (s, buf, 4, status);
buf += 4;
}
else if (s->hw->connection == SANE_EPSON_USB)
{
int bytes_read;
- bytes_read = receive (s, buf, 4, status);
+ bytes_read = scanner_receive (s, buf, 4, status);
buf += bytes_read;
}
else
{
- receive (s, buf, 1, status);
+ scanner_receive (s, buf, 1, status);
buf += 1;
}
@@ -1923,7 +1923,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
}
else
{
- receive (s, buf, 3, status);
+ scanner_receive (s, buf, 3, status);
/* buf += 3; */
}
@@ -1948,7 +1948,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
head = &(hdrunion->hdr);
buf = head->buf;
- receive (s, buf, count, status);
+ scanner_receive (s, buf, count, status);
if (SANE_STATUS_GOOD != *status)
return (EpsonHdrUnion) 0;
@@ -4958,20 +4958,20 @@ sane_start (SANE_Handle handle)
params[0] = ESC;
params[1] = s->hw->cmd->request_extended_status;
- send (s, params, 2, &status); /* send ESC f (request extended status) */
+ scanner_send (s, params, 2, &status); /* send ESC f (request extended status) */
if (SANE_STATUS_GOOD == status)
{
len = 4; /* receive header */
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = result[3] << 8 | result[2];
buf = alloca (len);
- receive (s, buf, len, &status); /* receive actual status data */
+ scanner_receive (s, buf, len, &status); /* receive actual status data */
if (buf[0] & 0x80)
{
@@ -4999,20 +4999,20 @@ sane_start (SANE_Handle handle)
params[0] = ESC;
params[1] = s->hw->cmd->request_condition;
- send (s, params, 2, &status); /* send request condition */
+ scanner_send (s, params, 2, &status); /* send request condition */
if (SANE_STATUS_GOOD != status)
return status;
len = 4;
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = result[3] << 8 | result[2];
buf = alloca (len);
- receive (s, buf, len, &status);
+ scanner_receive (s, buf, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
@@ -5081,7 +5081,7 @@ sane_start (SANE_Handle handle)
params[0] = ESC;
params[1] = s->hw->cmd->start_scanning;
- send (s, params, 2, &status);
+ scanner_send (s, params, 2, &status);
if (SANE_STATUS_GOOD != status)
{
@@ -5120,7 +5120,7 @@ sane_auto_eject (Epson_Scanner * s)
params[0] = cmd;
- send (s, params, 1, &status);
+ scanner_send (s, params, 1, &status);
if (SANE_STATUS_GOOD != (status = expect_ack (s)))
{
@@ -5142,7 +5142,7 @@ read_data_block (Epson_Scanner * s, EpsonDataRec * result)
SANE_Status status;
u_char param[3];
- receive (s, result, s->block ? 6 : 4, &status);
+ scanner_receive (s, result, s->block ? 6 : 4, &status);
if (SANE_STATUS_GOOD != status)
return status;
@@ -5207,7 +5207,7 @@ read_data_block (Epson_Scanner * s, EpsonDataRec * result)
param[0] = ESC;
param[1] = s->hw->cmd->start_scanning;
- send (s, param, 2, &status);
+ scanner_send (s, param, 2, &status);
if (SANE_STATUS_GOOD != status)
{
@@ -5338,7 +5338,7 @@ START_READ:
break;
}
- receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
+ scanner_receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
&status);
if (SANE_STATUS_GOOD != status)
@@ -5347,7 +5347,7 @@ START_READ:
* send the ACK signal to the scanner in order to make
* it ready for the next data block.
*/
- send (s, S_ACK, 1, &status);
+ scanner_send (s, S_ACK, 1, &status);
/*
* ... and request the next data block
@@ -5378,7 +5378,7 @@ START_READ:
break;
}
- receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
+ scanner_receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
&status);
if (SANE_STATUS_GOOD != status)
@@ -5388,7 +5388,7 @@ START_READ:
return status;
}
- send (s, S_ACK, 1, &status);
+ scanner_send (s, S_ACK, 1, &status);
/*
* ... and the last data block
@@ -5420,7 +5420,7 @@ START_READ:
break;
}
- receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
+ scanner_receive (s, s->buf + index * s->params.pixels_per_line, buf_len,
&status);
if (SANE_STATUS_GOOD != status)
@@ -5442,7 +5442,7 @@ START_READ:
reorder = SANE_TRUE;
}
- receive (s, s->buf, buf_len, &status);
+ scanner_receive (s, s->buf, buf_len, &status);
if (SANE_STATUS_GOOD != status)
{
@@ -5460,7 +5460,7 @@ START_READ:
{
if (s->canceling)
{
- send (s, S_CAN, 1, &status);
+ scanner_send (s, S_CAN, 1, &status);
expect_ack (s);
*length = 0;
@@ -5470,7 +5470,7 @@ START_READ:
return SANE_STATUS_CANCELLED;
}
else
- send (s, S_ACK, 1, &status);
+ scanner_send (s, S_ACK, 1, &status);
}
s->end = s->buf + buf_len;
@@ -6132,21 +6132,21 @@ get_identity2_information (SANE_Handle handle)
param[1] = s->hw->cmd->request_identity2;
param[2] = '\0';
- send (s, param, 2, &status);
+ scanner_send (s, param, 2, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = 4; /* receive header */
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = result[3] << 8 | result[2];
buf = alloca (len);
- receive (s, buf, len, &status); /* receive actual status data */
+ scanner_receive (s, buf, len, &status); /* receive actual status data */
/* the first two bytes of the buffer contain the optical resolution */
s->hw->optical_res = buf[1] << 8 | buf[0];
@@ -6234,21 +6234,21 @@ request_focus_position (SANE_Handle handle, u_char * position)
param[1] = s->hw->cmd->request_focus_position;
param[2] = '\0';
- send (s, param, 2, &status);
+ scanner_send (s, param, 2, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = 4; /* receive header */
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = result[3] << 8 | result[2];
buf = alloca (len);
- receive (s, buf, len, &status); /* receive actual status data */
+ scanner_receive (s, buf, len, &status); /* receive actual status data */
*position = buf[1];
DBG (1, "Focus position = 0x%x\n", buf[1]);
@@ -6287,7 +6287,7 @@ request_push_button_status (SANE_Handle handle, SANE_Bool * theButtonStatus)
param[1] = s->hw->cmd->request_push_button_status;
param[2] = '\0';
- send (s, param, 2, &status);
+ scanner_send (s, param, 2, &status);
if (SANE_STATUS_GOOD != status)
{
@@ -6297,14 +6297,14 @@ request_push_button_status (SANE_Handle handle, SANE_Bool * theButtonStatus)
len = 4; /* receive header */
- receive (s, result, len, &status);
+ scanner_receive (s, result, len, &status);
if (SANE_STATUS_GOOD != status)
return status;
len = result[3] << 8 | result[2]; /* this should be 1 for scanners with one button */
buf = alloca (len);
- receive (s, buf, len, &status); /* receive actual status data */
+ scanner_receive (s, buf, len, &status); /* receive actual status data */
DBG (1, "Push button status = %d\n", buf[0] & 0x01);
*theButtonStatus = ((buf[0] & 0x01) != 0);
diff --git a/backend/epson2-ops.c b/backend/epson2-ops.c
index faf0ffa..61930f6 100644
--- a/backend/epson2-ops.c
+++ b/backend/epson2-ops.c
@@ -1774,10 +1774,16 @@ e2_ext_read(struct Epson_Scanner *s)
return status;
}
- if (e2_dev_model(dev, "GT-8200") || e2_dev_model(dev, "Perfection1650")) {
- /* See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597922#127 */
- s->buf[buf_len] &= 0xc0;
- }
+ /* Some scanners wrongly set FSG_STATUS_CANCEL_REQ. Mask it out.
+ * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597922#127
+ * https://gitlab.com/sane-project/backends/-/issues/716
+ */
+ if (e2_dev_model(dev, "GT-8200") || e2_dev_model(dev, "Perfection1650") ||
+ e2_dev_model(dev, "GT-10000") || e2_dev_model(dev, "ES-6000") ||
+ e2_dev_model(dev, "Perfection610") || e2_dev_model(dev, "GT-6600") ||
+ e2_dev_model(dev, "Perfection1200") || e2_dev_model(dev, "GT-7600") ||
+ e2_dev_model(dev, "Expression1600") || e2_dev_model(dev, "ES-2000"))
+ s->buf[buf_len] &= FSG_STATUS_FER | FSG_STATUS_NOT_READY;
if (s->buf[buf_len] & FSG_STATUS_CANCEL_REQ) {
DBG(0, "%s: cancel request received\n", __func__);
diff --git a/backend/escl/escl.c b/backend/escl/escl.c
index 77b753f..6bd3429 100644
--- a/backend/escl/escl.c
+++ b/backend/escl/escl.c
@@ -61,25 +61,6 @@ static const SANE_Device **devlist = NULL;
static ESCL_Device *list_devices_primary = NULL;
static int num_devices = 0;
-#ifdef CURL_SSLVERSION_MAX_DEFAULT
-static int proto_tls[] = {
- CURL_SSLVERSION_MAX_DEFAULT,
- #ifdef CURL_SSLVERSION_MAX_TLSv1_3
- CURL_SSLVERSION_MAX_TLSv1_3,
- #endif
- #ifdef CURL_SSLVERSION_MAX_TLSv1_2
- CURL_SSLVERSION_MAX_TLSv1_2,
- #endif
- #ifdef CURL_SSLVERSION_MAX_TLSv1_1
- CURL_SSLVERSION_MAX_TLSv1_1,
- #endif
- #ifdef CURL_SSLVERSION_MAX_TLSv1_0
- CURL_SSLVERSION_MAX_TLSv1_0,
- #endif
- -1
-};
-#endif
-
typedef struct Handled {
struct Handled *next;
@@ -120,17 +101,15 @@ escl_free_device(ESCL_Device *current)
}
-#ifdef CURL_SSLVERSION_MAX_DEFAULT
static int
-escl_tls_protocol_supported(char *url, int proto)
+escl_tls_protocol_supported(char *url)
{
CURLcode res = CURLE_UNSUPPORTED_PROTOCOL;
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
- /* ask libcurl to use TLS version 1.0 or later */
- curl_easy_setopt(curl, CURLOPT_SSLVERSION, proto);
+ curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_TRY);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
@@ -145,33 +124,17 @@ escl_tls_protocol_supported(char *url, int proto)
static int
escl_is_tls(char * url, char *type)
{
- int tls_version = 0;
if(!strcmp(type, "_uscans._tcp") ||
!strcmp(type, "https"))
{
- while(proto_tls[tls_version] != -1)
- {
- if (escl_tls_protocol_supported(url, proto_tls[tls_version]) == CURLE_OK)
+ if (escl_tls_protocol_supported(url) == CURLE_OK)
{
- DBG(10, "curl tls compatible (%d)\n", proto_tls[tls_version]);
- break;
+ DBG(10, "curl tls compatible\n");
+ return 1;
}
- tls_version++;
- }
- if (proto_tls[tls_version] < 1)
- return 0;
}
- return proto_tls[tls_version];
-}
-#else
-static int
-escl_is_tls(char * url, char *type)
-{
- (void)url;
- (void)type;
return 0;
}
-#endif
void
escl_free_handler(escl_sane_t *handler)
@@ -416,7 +379,7 @@ convertFromESCLDev(ESCL_Device *cdev)
unix_path, cdev->https ? "s" : "", cdev->ip_address, cdev->port_nb);
sdev->name = tmp;
- DBG( 1, "Escl add device : %s\n", tmp);
+ DBG( 10, "Escl add device : %s\n", tmp);
sdev->vendor = get_vendor(cdev->model_name);
if (!sdev->vendor)
@@ -523,7 +486,7 @@ attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
line = sanei_config_get_string(line + 6, &name_str);
DBG (10, "New Escl_Device URL [%s].\n", (name_str ? name_str : "VIDE"));
if (!name_str || !*name_str) {
- DBG (1, "Escl_Device URL missing.\n");
+ DBG(10, "Escl_Device URL missing.\n");
return SANE_STATUS_INVAL;
}
if (*line) {
@@ -1163,19 +1126,19 @@ escl_parse_name(SANE_String_Const name, ESCL_Device *device)
device->type = strdup("http");
host = name + 7;
} else {
- DBG(1, "Unknown URL scheme in %s", name);
+ DBG(10, "Unknown URL scheme in %s", name);
return SANE_STATUS_INVAL;
}
port_str = strchr(host, ':');
if (port_str == NULL) {
- DBG(1, "Port missing from URL: %s", name);
+ DBG(10, "Port missing from URL: %s", name);
return SANE_STATUS_INVAL;
}
port_str++;
device->port_nb = atoi(port_str);
if (device->port_nb < 1 || device->port_nb > 65535) {
- DBG(1, "Invalid port number in URL: %s", name);
+ DBG(10, "Invalid port number in URL: %s", name);
return SANE_STATUS_INVAL;
}
@@ -1201,7 +1164,7 @@ _get_hack(SANE_String_Const name, ESCL_Device *device)
fp = sanei_config_open (ESCL_CONFIG_FILE);
if (!fp)
{
- DBG (2, "_get_hack: couldn't access %s\n", ESCL_CONFIG_FILE);
+ DBG(4, "_get_hack: couldn't access %s\n", ESCL_CONFIG_FILE);
DBG (3, "_get_hack: exit\n");
}
@@ -1236,7 +1199,7 @@ _get_blacklist_pdf(void)
fp = sanei_config_open (ESCL_CONFIG_FILE);
if (!fp)
{
- DBG (2, "_get_blacklit: couldn't access %s\n", ESCL_CONFIG_FILE);
+ DBG(4, "_get_blacklit: couldn't access %s\n", ESCL_CONFIG_FILE);
DBG (3, "_get_blacklist: exit\n");
}
@@ -1345,7 +1308,7 @@ sane_cancel(SANE_Handle h)
}
handler->scanner->work = SANE_FALSE;
handler->cancel = SANE_TRUE;
- escl_scanner(handler->device, handler->scanner->scanJob, handler->result);
+ escl_scanner(handler->device, handler->scanner->scanJob, handler->result, SANE_TRUE);
free(handler->result);
handler->result = NULL;
free(handler->scanner->scanJob);
@@ -1558,7 +1521,7 @@ sane_start(SANE_Handle h)
int bps = 0;
if (handler->device == NULL) {
- DBG(1, "Missing handler device.\n");
+ DBG(10, "Missing handler device.\n");
return (SANE_STATUS_INVAL);
}
handler->cancel = SANE_FALSE;
@@ -1566,6 +1529,7 @@ sane_start(SANE_Handle h)
handler->decompress_scan_data = SANE_FALSE;
handler->end_read = SANE_FALSE;
if (handler->scanner->work == SANE_FALSE) {
+ escl_reset_all_jobs(handler->device);
SANE_Status st = escl_status(handler->device,
handler->scanner->source,
NULL,
@@ -1887,24 +1851,23 @@ escl_curl_url(CURL *handle, const ESCL_Device *device, SANE_String_Const path)
(device->https ? "https" : "http"), device->ip_address,
device->port_nb, path);
- DBG( 1, "escl_curl_url: URL: %s\n", url );
+ DBG( 10, "escl_curl_url: URL: %s\n", url );
curl_easy_setopt(handle, CURLOPT_URL, url);
free(url);
- DBG( 1, "Before use hack\n");
+ DBG( 10, "Before use hack\n");
if (device->hack) {
- DBG( 1, "Use hack\n");
+ DBG( 10, "Use hack\n");
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, device->hack);
}
- DBG( 1, "After use hack\n");
+ DBG( 10, "After use hack\n");
if (device->https) {
- DBG( 1, "Ignoring safety certificates, use https\n");
+ DBG( 10, "Ignoring safety certificates, use https\n");
+ curl_easy_setopt(handle, CURLOPT_USE_SSL, (long)CURLUSESSL_TRY);
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYHOST, 0L);
- if (device->tls > 0)
- curl_easy_setopt(handle, CURLOPT_SSLVERSION, device->tls);
}
if (device->unix_socket != NULL) {
- DBG( 1, "Using local socket %s\n", device->unix_socket );
+ DBG( 10, "Using local socket %s\n", device->unix_socket );
curl_easy_setopt(handle, CURLOPT_UNIX_SOCKET_PATH,
device->unix_socket);
}
diff --git a/backend/escl/escl.h b/backend/escl/escl.h
index b59a3ff..2dce59b 100644
--- a/backend/escl/escl.h
+++ b/backend/escl/escl.h
@@ -248,7 +248,11 @@ SANE_Status escl_scan(capabilities_t *scanner,
void escl_scanner(const ESCL_Device *device,
char *scanJob,
- char *result);
+ char *result,
+ SANE_Bool status);
+
+SANE_Status escl_reset_all_jobs(ESCL_Device *device);
+
typedef void CURL;
diff --git a/backend/escl/escl_capabilities.c b/backend/escl/escl_capabilities.c
index 950efaa..05b3fd2 100644
--- a/backend/escl/escl_capabilities.c
+++ b/backend/escl/escl_capabilities.c
@@ -48,7 +48,7 @@ header_callback(void *str, size_t size, size_t nmemb, void *userp)
char *content = realloc(header->memory, header->size + realsize + 1);
if (content == NULL) {
- DBG( 1, "Not enough memory (realloc returned NULL)\n");
+ DBG( 10, "Not enough memory (realloc returned NULL)\n");
return (0);
}
header->memory = content;
@@ -201,10 +201,8 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner, int type)
{
const char *name = (const char *)node->name;
if (strcmp(name, "ColorMode") == 0) {
+#ifndef HAVE_POPPLER_GLIB
const char *color = (SANE_String_Const)xmlNodeGetContent(node);
-#if HAVE_POPPLER_GLIB
- if (type == PLATEN || strcmp(color, "BlackAndWhite1"))
-#else
if (strcmp(color, "BlackAndWhite1"))
#endif
scanner->caps[type].ColorModes = char_to_array(scanner->caps[type].ColorModes, &scanner->caps[type].ColorModesSize, (SANE_String_Const)xmlNodeGetContent(node), 1);
@@ -235,14 +233,14 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner, int type)
}
#endif
#if(defined HAVE_TIFFIO_H)
- else if(type == PLATEN && !strcmp(scanner->caps[type].DocumentFormats[i], "image/tiff"))
+ else if(!strcmp(scanner->caps[type].DocumentFormats[i], "image/tiff"))
{
have_tiff = SANE_TRUE;
scanner->caps[type].have_tiff = i;
}
#endif
#if HAVE_POPPLER_GLIB
- else if(type == PLATEN && !strcmp(scanner->caps[type].DocumentFormats[i], "application/pdf"))
+ else if(!strcmp(scanner->caps[type].DocumentFormats[i], "application/pdf"))
{
have_pdf = SANE_TRUE;
scanner->caps[type].have_pdf = i;
@@ -568,9 +566,9 @@ escl_capabilities(ESCL_Device *device, char *blacklist, SANE_Status *status)
curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 3L);
CURLcode res = curl_easy_perform(curl_handle);
if (res == CURLE_OK)
- DBG( 1, "Create NewJob : the scanner header responded : [%s]\n", header->memory);
+ DBG( 10, "Create NewJob : the scanner header responded : [%s]\n", header->memory);
if (res != CURLE_OK) {
- DBG( 1, "The scanner didn't respond: %s\n", curl_easy_strerror(res));
+ DBG( 10, "The scanner didn't respond: %s\n", curl_easy_strerror(res));
*status = SANE_STATUS_INVAL;
goto clean_data;
}
diff --git a/backend/escl/escl_crop.c b/backend/escl/escl_crop.c
index 59284ac..a7e0fa0 100644
--- a/backend/escl/escl_crop.c
+++ b/backend/escl/escl_crop.c
@@ -44,7 +44,7 @@ escl_crop_surface(capabilities_t *scanner,
int real_h = 0;
unsigned char *surface_crop = NULL;
- DBG( 1, "Escl Image Crop\n");
+ DBG( 10, "Escl Image Crop\n");
ratio = (double)w / (double)scanner->caps[scanner->source].width;
scanner->caps[scanner->source].width = w;
if (scanner->caps[scanner->source].pos_x < 0)
@@ -62,18 +62,18 @@ escl_crop_surface(capabilities_t *scanner,
y_off = (int)((double)scanner->caps[scanner->source].pos_y * ratio);
real_h = scanner->caps[scanner->source].height - y_off;
- DBG( 1, "Escl Image Crop [%dx%d|%dx%d]\n", scanner->caps[scanner->source].pos_x, scanner->caps[scanner->source].pos_y,
+ DBG( 10, "Escl Image Crop [%dx%d|%dx%d]\n", scanner->caps[scanner->source].pos_x, scanner->caps[scanner->source].pos_y,
scanner->caps[scanner->source].width, scanner->caps[scanner->source].height);
*width = real_w;
*height = real_h;
- DBG( 1, "Escl Image Crop [%dx%d]\n", *width, *height);
+ DBG( 10, "Escl Image Crop [%dx%d]\n", *width, *height);
if (x_off > 0 || real_w < scanner->caps[scanner->source].width ||
y_off > 0 || real_h < scanner->caps[scanner->source].height) {
surface_crop = (unsigned char *)malloc (sizeof (unsigned char) * real_w
* real_h * bps);
if(!surface_crop) {
- DBG( 1, "Escl Crop : Surface_crop Memory allocation problem\n");
+ DBG( 10, "Escl Crop : Surface_crop Memory allocation problem\n");
free(surface);
surface = NULL;
goto finish;
diff --git a/backend/escl/escl_devices.c b/backend/escl/escl_devices.c
index a2fdb80..05598ed 100644
--- a/backend/escl/escl_devices.c
+++ b/backend/escl/escl_devices.c
@@ -193,21 +193,21 @@ escl_devices(SANE_Status *status)
*status = SANE_STATUS_GOOD;
if (!(simple_poll = avahi_simple_poll_new())) {
- DBG( 1, "Failed to create simple poll object.\n");
+ DBG( 10, "Failed to create simple poll object.\n");
*status = SANE_STATUS_INVAL;
goto fail;
}
client = avahi_client_new(avahi_simple_poll_get(simple_poll), 0,
client_callback, NULL, &error);
if (!client) {
- DBG( 1, "Failed to create client: %s\n", avahi_strerror(error));
+ DBG( 10, "Failed to create client: %s\n", avahi_strerror(error));
*status = SANE_STATUS_INVAL;
goto fail;
}
if (!(sb = avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
AVAHI_PROTO_UNSPEC, "_uscan._tcp",
NULL, 0, browse_callback, client))) {
- DBG( 1, "Failed to create service browser: %s\n",
+ DBG( 10, "Failed to create service browser: %s\n",
avahi_strerror(avahi_client_errno(client)));
*status = SANE_STATUS_INVAL;
goto fail;
@@ -216,7 +216,7 @@ escl_devices(SANE_Status *status)
AVAHI_PROTO_UNSPEC,
"_uscans._tcp", NULL, 0,
browse_callback, client))) {
- DBG( 1, "Failed to create service browser: %s\n",
+ DBG( 10, "Failed to create service browser: %s\n",
avahi_strerror(avahi_client_errno(client)));
*status = SANE_STATUS_INVAL;
goto fail;
diff --git a/backend/escl/escl_jpeg.c b/backend/escl/escl_jpeg.c
index 62c20c0..9008dae 100644
--- a/backend/escl/escl_jpeg.c
+++ b/backend/escl/escl_jpeg.c
@@ -179,7 +179,7 @@ get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps)
if (surface != NULL)
free(surface);
fseek(scanner->tmp, start, SEEK_SET);
- DBG( 1, "Escl Jpeg : Error reading jpeg\n");
+ DBG( 10, "Escl Jpeg : Error reading jpeg\n");
if (scanner->tmp) {
fclose(scanner->tmp);
scanner->tmp = NULL;
@@ -241,7 +241,7 @@ get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps)
surface = malloc(cinfo.output_width * cinfo.output_height * cinfo.output_components);
if (surface == NULL) {
jpeg_destroy_decompress(&cinfo);
- DBG( 1, "Escl Jpeg : Memory allocation problem\n");
+ DBG( 10, "Escl Jpeg : Memory allocation problem\n");
if (scanner->tmp) {
fclose(scanner->tmp);
scanner->tmp = NULL;
diff --git a/backend/escl/escl_mupdf.c b/backend/escl/escl_mupdf.c
index dd23482..f5b3b7e 100644
--- a/backend/escl/escl_mupdf.c
+++ b/backend/escl/escl_mupdf.c
@@ -137,7 +137,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
if (!ctx)
{
- DBG(1, "cannot create mupdf context\n");
+ DBG(10, "cannot create mupdf context\n");
status = SANE_STATUS_INVAL;
goto close_file;
}
@@ -147,7 +147,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
fz_register_document_handlers(ctx);
fz_catch(ctx)
{
- DBG(1, "cannot register document handlers: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot register document handlers: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_context;
}
@@ -157,7 +157,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
stream = fz_open_file_ptr_escl(ctx, scanner->tmp);
fz_catch(ctx)
{
- DBG(1, "cannot open stream: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot open stream: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_context;
}
@@ -167,7 +167,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
fz_seek(ctx, stream, 0, SEEK_SET);
fz_catch(ctx)
{
- DBG(1, "cannot seek stream: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot seek stream: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_stream;
}
@@ -177,7 +177,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
doc = fz_open_document_with_stream(ctx, "filename.pdf", stream);
fz_catch(ctx)
{
- DBG(1, "cannot open document: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot open document: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_stream;
}
@@ -187,14 +187,14 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
page_count = fz_count_pages(ctx, doc);
fz_catch(ctx)
{
- DBG(1, "cannot count number of pages: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot count number of pages: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_document;
}
if (page_number < 0 || page_number >= page_count)
{
- DBG(1, "page number out of range: %d (page count %d)\n", page_number + 1, page_count);
+ DBG(10, "page number out of range: %d (page count %d)\n", page_number + 1, page_count);
status = SANE_STATUS_INVAL;
goto drop_document;
}
@@ -209,7 +209,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
pix = fz_new_pixmap_from_page_number(ctx, doc, 0, &ctm, fz_device_rgb(ctx), 0);
fz_catch(ctx)
{
- DBG(1, "cannot render page: %s\n", fz_caught_message(ctx));
+ DBG(10, "cannot render page: %s\n", fz_caught_message(ctx));
status = SANE_STATUS_INVAL;
goto drop_document;
}
@@ -220,7 +220,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
// If necessary, trim the image.
surface = escl_crop_surface(scanner, surface, pix->w, pix->h, pix->n, width, height);
if (!surface) {
- DBG( 1, "Escl Pdf : Surface Memory allocation problem\n");
+ DBG( 10, "Escl Pdf : Surface Memory allocation problem\n");
status = SANE_STATUS_NO_MEM;
goto drop_pix;
}
diff --git a/backend/escl/escl_newjob.c b/backend/escl/escl_newjob.c
index cb48bd1..ed2f4b0 100644
--- a/backend/escl/escl_newjob.c
+++ b/backend/escl/escl_newjob.c
@@ -96,7 +96,7 @@ download_callback(void *str, size_t size, size_t nmemb, void *userp)
char *content = realloc(download->memory, download->size + realsize + 1);
if (content == NULL) {
- DBG( 1, "Not enough memory (realloc returned NULL)\n");
+ DBG( 10, "Not enough memory (realloc returned NULL)\n");
return (0);
}
download->memory = content;
@@ -144,19 +144,19 @@ escl_newjob (capabilities_t *scanner, const ESCL_Device *device, SANE_Status *st
*status = SANE_STATUS_GOOD;
if (device == NULL || scanner == NULL) {
*status = SANE_STATUS_NO_MEM;
- DBG( 1, "Create NewJob : the name or the scan are invalid.\n");
+ DBG( 10, "Create NewJob : the name or the scan are invalid.\n");
return (NULL);
}
upload = (struct downloading *)calloc(1, sizeof(struct downloading));
if (upload == NULL) {
*status = SANE_STATUS_NO_MEM;
- DBG( 1, "Create NewJob : memory allocation failure\n");
+ DBG( 10, "Create NewJob : memory allocation failure\n");
return (NULL);
}
download = (struct downloading *)calloc(1, sizeof(struct downloading));
if (download == NULL) {
free(upload);
- DBG( 1, "Create NewJob : memory allocation failure\n");
+ DBG( 10, "Create NewJob : memory allocation failure\n");
*status = SANE_STATUS_NO_MEM;
return (NULL);
}
@@ -168,38 +168,21 @@ escl_newjob (capabilities_t *scanner, const ESCL_Device *device, SANE_Status *st
int have_tiff = scanner->caps[scanner->source].have_tiff;
int have_pdf = scanner->caps[scanner->source].have_pdf;
- if ((scanner->source == PLATEN && have_pdf == -1) ||
- (scanner->source > PLATEN)) {
- if (have_tiff != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]);
- }
- else if (have_png != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_png]);
- }
- else if (have_jpeg != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]);
- }
+ if (have_pdf != -1) {
+ scanner->caps[scanner->source].default_format =
+ strdup(scanner->caps[scanner->source].DocumentFormats[have_pdf]);
}
- else {
- if (have_pdf != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_pdf]);
- }
- else if (have_tiff != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]);
- }
- else if (have_png != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_png]);
- }
- else if (have_jpeg != -1) {
- scanner->caps[scanner->source].default_format =
- strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]);
- }
+ else if (have_tiff != -1) {
+ scanner->caps[scanner->source].default_format =
+ strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]);
+ }
+ else if (have_png != -1) {
+ scanner->caps[scanner->source].default_format =
+ strdup(scanner->caps[scanner->source].DocumentFormats[have_png]);
+ }
+ else if (have_jpeg != -1) {
+ scanner->caps[scanner->source].default_format =
+ strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]);
}
if (atof ((const char *)device->version) <= 2.0)
{
@@ -222,7 +205,7 @@ escl_newjob (capabilities_t *scanner, const ESCL_Device *device, SANE_Status *st
" <scan:Duplex>%s</scan:Duplex>",
scanner->source == ADFDUPLEX ? "true" : "false");
}
- DBG( 1, "Create NewJob : %s\n", scanner->caps[scanner->source].default_format);
+ DBG( 10, "Create NewJob : %s\n", scanner->caps[scanner->source].default_format);
if (scanner->caps[scanner->source].pos_x > scanner->caps[scanner->source].width)
off_x = (scanner->caps[scanner->source].pos_x > scanner->caps[scanner->source].width) / 2;
if (scanner->caps[scanner->source].pos_y > scanner->caps[scanner->source].height)
@@ -295,7 +278,7 @@ escl_newjob (capabilities_t *scanner, const ESCL_Device *device, SANE_Status *st
upload->memory = strdup(cap_data);
upload->size = strlen(cap_data);
wake_up_device:
- DBG( 1, "Create NewJob : %s\n", cap_data);
+ DBG( 10, "Create NewJob : %s\n", cap_data);
download->memory = malloc(1);
download->size = 0;
curl_handle = curl_easy_init();
@@ -310,12 +293,12 @@ wake_up_device:
curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 3L);
CURLcode res = curl_easy_perform(curl_handle);
if (res != CURLE_OK) {
- DBG( 1, "Create NewJob : the scanner responded incorrectly: %s\n", curl_easy_strerror(res));
+ DBG( 10, "Create NewJob : the scanner responded incorrectly: %s\n", curl_easy_strerror(res));
*status = SANE_STATUS_INVAL;
}
else {
if (download->memory != NULL) {
- char *tmp_location = strstr(download->memory, "Location:");
+ char *tmp_location = strcasestr(download->memory, "Location:");
if (tmp_location) {
temporary = strchr(tmp_location, '\r');
if (temporary == NULL)
@@ -325,7 +308,7 @@ wake_up_device:
location = strrchr(tmp_location,'/');
if (location) {
result = strdup(location);
- DBG( 1, "Create NewJob : %s\n", result);
+ DBG( 10, "Create NewJob : %s\n", result);
*temporary = '\n';
*location = '\0';
location = strrchr(tmp_location,'/');
@@ -333,7 +316,7 @@ wake_up_device:
if (location) {
location++;
scanner->scanJob = strdup(location);
- DBG( 1, "Full location header [%s]\n", scanner->scanJob);
+ DBG( 10, "Full location header [%s]\n", scanner->scanJob);
}
else
scanner->scanJob = strdup("ScanJobs");
@@ -341,14 +324,14 @@ wake_up_device:
}
}
if (result == NULL) {
- DBG( 1, "Error : Create NewJob, no location: %s\n", download->memory);
+ DBG( 10, "Error : Create NewJob, no location: %s\n", download->memory);
*status = SANE_STATUS_INVAL;
}
free(download->memory);
download->memory = NULL;
}
else {
- DBG( 1, "Create NewJob : The creation of the failed job: %s\n", download->memory);
+ DBG( 10, "Create NewJob : The creation of the failed job: %s\n", download->memory);
// If "409 Conflict" appear it means that there is no paper in feeder
if (strstr(download->memory, "409 Conflict") != NULL)
*status = SANE_STATUS_NO_DOCS;
@@ -363,7 +346,7 @@ wake_up_device:
}
else {
*status = SANE_STATUS_NO_MEM;
- DBG( 1, "Create NewJob : The creation of the failed job\n");
+ DBG( 10, "Create NewJob : The creation of the failed job\n");
return (NULL);
}
}
diff --git a/backend/escl/escl_pdf.c b/backend/escl/escl_pdf.c
index 8277e1d..0bfa3b3 100644
--- a/backend/escl/escl_pdf.c
+++ b/backend/escl/escl_pdf.c
@@ -121,21 +121,21 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
file = g_mapped_file_new_from_fd (fileno (scanner->tmp), 0, NULL);
if (!file) {
- DBG(1, "Error : g_mapped_file_new_from_fd");
+ DBG(10, "Error : g_mapped_file_new_from_fd");
status = SANE_STATUS_INVAL;
goto close_file;
}
bytes = g_mapped_file_get_bytes (file);
if (!bytes) {
- DBG(1, "Error : g_mapped_file_get_bytes");
+ DBG(10, "Error : g_mapped_file_get_bytes");
status = SANE_STATUS_INVAL;
goto free_file;
}
doc = poppler_document_new_from_bytes (bytes, NULL, NULL);
if (!doc) {
- DBG(1, "Error : poppler_document_new_from_bytes");
+ DBG(10, "Error : poppler_document_new_from_bytes");
status = SANE_STATUS_INVAL;
goto free_bytes;
}
@@ -145,14 +145,14 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
data = (char*)set_file_in_buffer(scanner->tmp, &size);
if (!data) {
- DBG(1, "Error : set_file_in_buffer");
+ DBG(10, "Error : set_file_in_buffer");
status = SANE_STATUS_INVAL;
goto close_file;
}
doc = poppler_document_new_from_data (data, size, NULL, NULL);
if (!doc) {
- DBG(1, "Error : poppler_document_new_from_data");
+ DBG(10, "Error : poppler_document_new_from_data");
status = SANE_STATUS_INVAL;
goto free_data;
}
@@ -160,7 +160,7 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
page = poppler_document_get_page (doc, 0);
if (!page) {
- DBG(1, "Error : poppler_document_get_page");
+ DBG(10, "Error : poppler_document_get_page");
status = SANE_STATUS_INVAL;
goto free_doc;
}
@@ -172,14 +172,14 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
h = (int)ceil(dh);
cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h);
if (!cairo_surface) {
- DBG(1, "Error : cairo_image_surface_create");
+ DBG(10, "Error : cairo_image_surface_create");
status = SANE_STATUS_INVAL;
goto free_page;
}
cr = cairo_create (cairo_surface);
if (!cairo_surface) {
- DBG(1, "Error : cairo_create");
+ DBG(10, "Error : cairo_create");
status = SANE_STATUS_INVAL;
goto free_surface;
}
@@ -196,26 +196,26 @@ get_PDF_data(capabilities_t *scanner, int *width, int *height, int *bps)
int st = cairo_status(cr);
if (st)
{
- DBG(1, "%s", cairo_status_to_string (st));
+ DBG(10, "%s", cairo_status_to_string (st));
status = SANE_STATUS_INVAL;
goto destroy_cr;
}
*bps = 3;
- DBG(1, "Escl Pdf : Image Size [%dx%d]\n", w, h);
+ DBG(10, "Escl Pdf : Image Size [%dx%d]\n", w, h);
surface = cairo_surface_to_pixels (cairo_surface, *bps);
if (!surface) {
status = SANE_STATUS_NO_MEM;
- DBG(1, "Escl Pdf : Surface Memory allocation problem");
+ DBG(10, "Escl Pdf : Surface Memory allocation problem");
goto destroy_cr;
}
// If necessary, trim the image.
surface = escl_crop_surface(scanner, surface, w, h, *bps, width, height);
if (!surface) {
- DBG(1, "Escl Pdf Crop: Surface Memory allocation problem");
+ DBG(10, "Escl Pdf Crop: Surface Memory allocation problem");
status = SANE_STATUS_NO_MEM;
}
diff --git a/backend/escl/escl_png.c b/backend/escl/escl_png.c
index 294ec00..fc8d02d 100644
--- a/backend/escl/escl_png.c
+++ b/backend/escl/escl_png.c
@@ -64,7 +64,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
// check for valid magic number
if (!png_check_sig (magic, sizeof (magic)))
{
- DBG( 1, "Escl Png : PNG error is not a valid PNG image!\n");
+ DBG( 10, "Escl Png : PNG error is not a valid PNG image!\n");
status = SANE_STATUS_INVAL;
goto close_file;
}
@@ -73,7 +73,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (!png_ptr)
{
- DBG( 1, "Escl Png : PNG error create a png read struct\n");
+ DBG( 10, "Escl Png : PNG error create a png read struct\n");
status = SANE_STATUS_INVAL;
goto close_file;
}
@@ -81,7 +81,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
png_infop info_ptr = png_create_info_struct (png_ptr);
if (!info_ptr)
{
- DBG( 1, "Escl Png : PNG error create a png info struct\n");
+ DBG( 10, "Escl Png : PNG error create a png info struct\n");
png_destroy_read_struct (&png_ptr, NULL, NULL);
status = SANE_STATUS_INVAL;
goto close_file;
@@ -93,7 +93,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
png_destroy_read_struct (&png_ptr, &info_ptr, NULL);
if (surface)
free (surface);
- DBG( 1, "Escl Png : PNG read error.\n");
+ DBG( 10, "Escl Png : PNG read error.\n");
status = SANE_STATUS_INVAL;
goto close_file;
}
@@ -115,7 +115,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
png_set_palette_to_rgb (png_ptr);
else if (color_type != PNG_COLOR_TYPE_RGB && color_type != PNG_COLOR_TYPE_RGB_ALPHA)
{
- DBG(1, "PNG format not supported.\n");
+ DBG(10, "PNG format not supported.\n");
status = SANE_STATUS_NO_MEM;
goto close_file;
}
@@ -145,7 +145,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
surface = (unsigned char *)malloc (sizeof (unsigned char) * w
* h * components);
if (!surface) {
- DBG( 1, "Escl Png : texels Memory allocation problem\n");
+ DBG( 10, "Escl Png : texels Memory allocation problem\n");
status = SANE_STATUS_NO_MEM;
goto close_file;
}
@@ -153,7 +153,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
// setup a pointer array. Each one points at the begening of a row.
row_pointers = (png_bytep *)malloc (sizeof (png_bytep) * h);
if (!row_pointers) {
- DBG( 1, "Escl Png : row_pointers Memory allocation problem\n");
+ DBG( 10, "Escl Png : row_pointers Memory allocation problem\n");
free(surface);
status = SANE_STATUS_NO_MEM;
goto close_file;
@@ -169,7 +169,7 @@ get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps)
// If necessary, trim the image.
surface = escl_crop_surface(scanner, surface, w, h, components, width, height);
if (!surface) {
- DBG( 1, "Escl Png : Surface Memory allocation problem\n");
+ DBG( 10, "Escl Png : Surface Memory allocation problem\n");
status = SANE_STATUS_NO_MEM;
goto close_file;
}
diff --git a/backend/escl/escl_reset.c b/backend/escl/escl_reset.c
index 95e3f2d..ad3080b 100644
--- a/backend/escl/escl_reset.c
+++ b/backend/escl/escl_reset.c
@@ -44,7 +44,32 @@ write_callback(void __sane_unused__*str,
* This function is called in the 'sane_cancel' function.
*/
void
-escl_scanner(const ESCL_Device *device, char *scanJob, char *result)
+escl_delete(const ESCL_Device *device, char *uri)
+{
+ CURL *curl_handle = NULL;
+ long answer = 0;
+
+ if (uri == NULL)
+ return;
+ curl_handle = curl_easy_init();
+ if (curl_handle != NULL) {
+ escl_curl_url(curl_handle, device, uri);
+ curl_easy_setopt(curl_handle, CURLOPT_CUSTOMREQUEST, "DELETE");
+ if (curl_easy_perform(curl_handle) == CURLE_OK) {
+ curl_easy_getinfo(curl_handle, CURLINFO_RESPONSE_CODE, &answer);
+ return;
+ }
+ curl_easy_cleanup(curl_handle);
+ }
+}
+
+/**
+ * \fn void escl_scanner(const ESCL_Device *device, char *result)
+ * \brief Function that resets the scanner after each scan, using curl.
+ * This function is called in the 'sane_cancel' function.
+ */
+void
+escl_scanner(const ESCL_Device *device, char *scanJob, char *result, SANE_Bool status)
{
CURL *curl_handle = NULL;
const char *scan_jobs = "/eSCL/";
@@ -70,10 +95,15 @@ CURL_CALL:
if (i >= 15) return;
}
curl_easy_cleanup(curl_handle);
- if (SANE_STATUS_GOOD != escl_status(device,
- PLATEN,
- NULL,
- NULL))
- goto CURL_CALL;
+ char* end = strrchr(scan_cmd, '/');
+ *end = 0;
+ escl_delete(device, scan_cmd);
+ if (status) {
+ if (SANE_STATUS_GOOD != escl_status(device,
+ PLATEN,
+ NULL,
+ NULL))
+ goto CURL_CALL;
+ }
}
}
diff --git a/backend/escl/escl_scan.c b/backend/escl/escl_scan.c
index 8af6bb2..b7f344d 100644
--- a/backend/escl/escl_scan.c
+++ b/backend/escl/escl_scan.c
@@ -83,7 +83,7 @@ escl_scan(capabilities_t *scanner, const ESCL_Device *device, char *scanJob, cha
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, scanner);
CURLcode res = curl_easy_perform(curl_handle);
if (res != CURLE_OK) {
- DBG( 1, "Unable to scan: %s\n", curl_easy_strerror(res));
+ DBG( 10, "Unable to scan: %s\n", curl_easy_strerror(res));
scanner->real_read = 0;
fclose(scanner->tmp);
scanner->tmp = NULL;
diff --git a/backend/escl/escl_status.c b/backend/escl/escl_status.c
index 1f848a2..eec8041 100644
--- a/backend/escl/escl_status.c
+++ b/backend/escl/escl_status.c
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <libxml/parser.h>
@@ -52,7 +53,7 @@ memory_callback_s(void *contents, size_t size, size_t nmemb, void *userp)
char *str = realloc(mem->memory, mem->size + realsize + 1);
if (str == NULL) {
- DBG(1, "not enough memory (realloc returned NULL)\n");
+ DBG(10, "not enough memory (realloc returned NULL)\n");
return (0);
}
mem->memory = str;
@@ -224,7 +225,7 @@ reload:
curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 3L);
CURLcode res = curl_easy_perform(curl_handle);
if (res != CURLE_OK) {
- DBG( 1, "The scanner didn't respond: %s\n", curl_easy_strerror(res));
+ DBG( 10, "The scanner didn't respond: %s\n", curl_easy_strerror(res));
status = SANE_STATUS_INVAL;
goto clean_data;
}
@@ -270,3 +271,135 @@ clean_data:
}
return (status);
}
+
+static void
+print_xml_job_finish(xmlNode *node,
+ SANE_Status *job)
+{
+ while (node) {
+ if (node->type == XML_ELEMENT_NODE) {
+ if (find_nodes_s(node)) {
+ if (strcmp((const char *)node->name, "JobState") == 0) {
+ const char *state = (const char *)xmlNodeGetContent(node);
+ if (!strcmp(state, "Canceled")) {
+ *job = SANE_STATUS_GOOD;
+ DBG(10, "jobId Completed SANE_STATUS_GOOD\n");
+ }
+ else if (!strcmp(state, "Aborted")) {
+ *job = SANE_STATUS_GOOD;
+ DBG(10, "jobId Completed SANE_STATUS_GOOD\n");
+ }
+ else if (!strcmp(state, "Completed")) {
+ *job = SANE_STATUS_GOOD;
+ DBG(10, "jobId Completed SANE_STATUS_GOOD\n");
+ }
+ }
+ }
+ }
+ print_xml_job_finish(node->children, job);
+ node = node->next;
+ }
+}
+
+static void
+print_xml_reset_all_jobs (xmlNode *node,
+ ESCL_Device *device)
+{
+ DBG(10, "print_xml_reset_all_jobs\n");
+ SANE_Status status = SANE_STATUS_DEVICE_BUSY;
+ while (node) {
+ if (node->type == XML_ELEMENT_NODE) {
+ if (find_nodes_s(node)) {
+ if (strcmp((const char *)node->name, "JobUri") == 0) {
+ DBG(10, "print_xml_reset_all_jobs: %s\n", node->name);
+ if (device != NULL) {
+ print_xml_job_finish (node, &status);
+ if (status == SANE_STATUS_DEVICE_BUSY) {
+ char *jobUri = (char *)xmlNodeGetContent(node);
+ char *job = strrchr((const char *)jobUri, '/');
+ char *scanj = NULL;
+ if (job != NULL) {
+ if (strstr(jobUri,"ScanJobs"))
+ scanj = strdup("ScanJobs");
+ else
+ scanj = strdup("ScanJob");
+ DBG(10, "print_xml_reset_all_jobs: %s/%s\n", scanj, job);
+ escl_scanner(device, scanj, job, SANE_FALSE);
+ free(scanj);
+ }
+ DBG(10, "print_xml_reset_all_jobs: sleep to finish the job\n");
+ }
+ }
+ }
+ }
+ }
+ print_xml_reset_all_jobs (node->children,
+ device);
+ node = node->next;
+ }
+}
+
+/**
+ * \fn SANE_Status escl_reset_all_jobs (ESCL_Device *device, , char *scanJob)
+ * \brief Function that forces the end of jobs, using curl.
+ * This function is called in the 'sane_start' function.
+ *
+ * \return status (if everything is OK, status = SANE_STATUS_GOOD, otherwise, SANE_STATUS_NO_MEM/SANE_STATUS_INVAL)
+ */
+SANE_Status
+escl_reset_all_jobs(ESCL_Device *device)
+{
+ CURL *curl_handle = NULL;
+ xmlDoc *data = NULL;
+ xmlNode *node = NULL;
+ struct idle *var = NULL;
+ const char *scanner_status = "/eSCL/ScannerStatus";
+ SANE_Status status = SANE_STATUS_DEVICE_BUSY;
+
+ DBG(10, "escl_reset_all_jobs\n");
+ if (device == NULL)
+ return (SANE_STATUS_NO_MEM);
+ DBG(10, "1 - escl_reset_all_jobs\n");
+ var = (struct idle*)calloc(1, sizeof(struct idle));
+ if (var == NULL)
+ return (SANE_STATUS_NO_MEM);
+ DBG(10, "2 - escl_reset_all_jobs\n");
+ var->memory = malloc(1);
+ var->size = 0;
+ curl_handle = curl_easy_init();
+
+ escl_curl_url(curl_handle, device, scanner_status);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, memory_callback_s);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)var);
+ curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, 1L);
+ curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 3L);
+ CURLcode res = curl_easy_perform(curl_handle);
+ if (res != CURLE_OK) {
+ DBG( 10, "The scanner didn't respond: %s\n", curl_easy_strerror(res));
+ status = SANE_STATUS_INVAL;
+ goto clean_data1;
+ }
+ DBG(10, "3 - escl_reset_all_jobs\n");
+ DBG( 10, "eSCL : Status : %s.\n", var->memory);
+ data = xmlReadMemory(var->memory, var->size, "file.xml", NULL, 0);
+ if (data == NULL) {
+ status = SANE_STATUS_NO_MEM;
+ goto clean_data1;
+ }
+ node = xmlDocGetRootElement(data);
+ if (node == NULL) {
+ status = SANE_STATUS_NO_MEM;
+ goto clean1;
+ }
+ print_xml_reset_all_jobs (node, device);
+ status = SANE_STATUS_GOOD;
+clean1:
+ xmlFreeDoc(data);
+clean_data1:
+ xmlCleanupParser();
+ xmlMemoryDump();
+ curl_easy_cleanup(curl_handle);
+ free(var->memory);
+ free(var);
+ return status;
+}
diff --git a/backend/escl/escl_tiff.c b/backend/escl/escl_tiff.c
index e17554e..6270ff4 100644
--- a/backend/escl/escl_tiff.c
+++ b/backend/escl/escl_tiff.c
@@ -65,7 +65,7 @@ get_TIFF_data(capabilities_t *scanner, int *width, int *height, int *bps)
lseek(fileno(scanner->tmp), 0, SEEK_SET);
tif = TIFFFdOpen(fileno(scanner->tmp), "temp", "r");
if (!tif) {
- DBG( 1, "Escl Tiff : Can not open, or not a TIFF file.\n");
+ DBG( 10, "Escl Tiff : Can not open, or not a TIFF file.\n");
status = SANE_STATUS_INVAL;
goto close_file;
}
@@ -76,14 +76,14 @@ get_TIFF_data(capabilities_t *scanner, int *width, int *height, int *bps)
surface = (unsigned char*) malloc(npixels * sizeof (uint32_t));
if (surface == NULL)
{
- DBG( 1, "Escl Tiff : raster Memory allocation problem.\n");
+ DBG( 10, "Escl Tiff : raster Memory allocation problem.\n");
status = SANE_STATUS_INVAL;
goto close_tiff;
}
if (!TIFFReadRGBAImage(tif, w, h, (uint32_t *)surface, 0))
{
- DBG( 1, "Escl Tiff : Problem reading image data.\n");
+ DBG( 10, "Escl Tiff : Problem reading image data.\n");
status = SANE_STATUS_INVAL;
free(surface);
goto close_tiff;
@@ -94,7 +94,7 @@ get_TIFF_data(capabilities_t *scanner, int *width, int *height, int *bps)
// If necessary, trim the image.
surface = escl_crop_surface(scanner, surface, w, h, components, width, height);
if (!surface) {
- DBG( 1, "Escl Tiff : Surface Memory allocation problem\n");
+ DBG( 10, "Escl Tiff : Surface Memory allocation problem\n");
status = SANE_STATUS_INVAL;
}
diff --git a/backend/genesys/genesys.cpp b/backend/genesys/genesys.cpp
index ab1367e..74ef74e 100644
--- a/backend/genesys/genesys.cpp
+++ b/backend/genesys/genesys.cpp
@@ -840,7 +840,8 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D
// FIXME: should porbably wait for some timeout
Status status;
- for (unsigned i = 0;; ++i) {
+// for (unsigned i = 0;; ++i) {
+ for(;;) {
status = scanner_read_status(dev);
if (status.is_feeding_finished || (
direction == Direction::BACKWARD && status.is_at_home))
diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp
index af193a3..ef3cca0 100644
--- a/backend/genesys/gl124.cpp
+++ b/backend/genesys/gl124.cpp
@@ -83,8 +83,8 @@ gl124_init_registers (Genesys_Device * dev)
dev->reg.init_reg(0x05, 0x00);
if(dev->model->sensor_id == SensorId::CIS_CANON_LIDE_120) {
- dev->reg.init_reg(0x06, 0x50);
- dev->reg.init_reg(0x07, 0x00);
+ dev->reg.init_reg(0x06, 0x50);
+ dev->reg.init_reg(0x07, 0x00);
} else {
dev->reg.init_reg(0x03, 0x50 & ~REG_0x03_AVEENB);
dev->reg.init_reg(0x06, 0x50 | REG_0x06_GAIN4);
diff --git a/backend/genesys/gl124_registers.h b/backend/genesys/gl124_registers.h
index dfc25f6..2c08e1c 100644
--- a/backend/genesys/gl124_registers.h
+++ b/backend/genesys/gl124_registers.h
@@ -290,4 +290,4 @@ static constexpr RegAddr REG_TRUEB = 0x112;
} // namespace gl124
} // namespace genesys
-#endif // BACKEND_GENESYS_GL843_REGISTERS_H
+#endif // BACKEND_GENESYS_GL124_REGISTERS_H
diff --git a/backend/hp-option.c b/backend/hp-option.c
index 6aed680..99dad31 100644
--- a/backend/hp-option.c
+++ b/backend/hp-option.c
@@ -3809,7 +3809,7 @@ hp_optset_isEnabled (HpOptSet this, HpData data, const char *name,
SANE_Status
sanei_hp_optset_download (HpOptSet this, HpData data, HpScsi scsi)
{
- int i, errcount = 0;
+ int i; //, errcount = 0;
DBG(3, "Start downloading parameters to scanner\n");
@@ -3839,7 +3839,7 @@ sanei_hp_optset_download (HpOptSet this, HpData data, HpScsi scsi)
if ( sanei_hp_scl_errcheck (scsi) != SANE_STATUS_GOOD )
{
- errcount++;
+ //errcount++;
DBG(3, "Option %s generated scanner error\n",
this->options[i]->descriptor->name);
diff --git a/backend/hp-scl.c b/backend/hp-scl.c
index 37a01e8..8b6ada1 100644
--- a/backend/hp-scl.c
+++ b/backend/hp-scl.c
@@ -143,7 +143,7 @@ typedef struct
/* Initialize structure where we remember out open file descriptors */
void
-sanei_hp_init_openfd ()
+sanei_hp_init_openfd (void)
{int iCount;
memset (asHpOpenFd, 0, sizeof (asHpOpenFd));
diff --git a/backend/hp3900_config.c b/backend/hp3900_config.c
index c40920f..9f64d31 100644
--- a/backend/hp3900_config.c
+++ b/backend/hp3900_config.c
@@ -3813,7 +3813,7 @@ static SANE_Int cfg_timing_get(SANE_Int sensortype, SANE_Int tm, struct st_timin
/** SEC: Motor curves ---------- */
-static SANE_Int *bq5550_motor()
+static SANE_Int *bq5550_motor(void)
{
SANE_Int *rst = NULL;
SANE_Int steps[] =
@@ -3835,7 +3835,7 @@ static SANE_Int *bq5550_motor()
return rst;
}
-static SANE_Int *hp4370_motor()
+static SANE_Int *hp4370_motor(void)
{
SANE_Int *rst = NULL;
SANE_Int steps[] =
@@ -3936,7 +3936,7 @@ static SANE_Int *hp4370_motor()
return rst;
}
-static SANE_Int *hp3970_motor()
+static SANE_Int *hp3970_motor(void)
{
SANE_Int *rst = NULL;
SANE_Int steps[] =
@@ -4037,7 +4037,7 @@ static SANE_Int *hp3970_motor()
return rst;
}
-static SANE_Int *hp3800_motor()
+static SANE_Int *hp3800_motor(void)
{
SANE_Int *rst = NULL;
SANE_Int steps[] =
@@ -4182,7 +4182,7 @@ static SANE_Int *hp3800_motor()
return rst;
}
-static SANE_Int *cfg_motorcurve_get()
+static SANE_Int *cfg_motorcurve_get(void)
{
/* returns motor setting buffer for a device */
diff --git a/backend/hp3900_rts8822.c b/backend/hp3900_rts8822.c
index f74d586..5cdfafe 100644
--- a/backend/hp3900_rts8822.c
+++ b/backend/hp3900_rts8822.c
@@ -618,7 +618,7 @@ RTS_Free (struct st_device *dev)
}
static struct st_device *
-RTS_Alloc ()
+RTS_Alloc (void)
{
/* this function allocates space for device's variable */
@@ -6304,7 +6304,7 @@ Gamma_GetTables (struct st_device *dev, SANE_Byte * Gamma_buffer)
}
static void
-Gamma_FreeTables ()
+Gamma_FreeTables (void)
{
SANE_Int c;
@@ -11319,7 +11319,7 @@ Head_Relocate (struct st_device *dev, SANE_Int speed, SANE_Int direction,
}
static SANE_Int
-Calib_CreateFixedBuffers ()
+Calib_CreateFixedBuffers (void)
{
SANE_Byte channel;
SANE_Int ret;
@@ -14002,7 +14002,7 @@ Free_Constrains (struct st_device *dev)
}
static void
-RTS_DebugInit ()
+RTS_DebugInit (void)
{
/* Default values */
RTS_Debug->dev_model = HP3970;
diff --git a/backend/hp3900_sane.c b/backend/hp3900_sane.c
index 5face5e..daf04f1 100644
--- a/backend/hp3900_sane.c
+++ b/backend/hp3900_sane.c
@@ -1752,7 +1752,7 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
SANE_Char line[PATH_MAX];
SANE_Char *str = NULL;
SANE_String_Const proper_str;
- SANE_Int nline = 0;
+ //SANE_Int nline = 0;
/* Initialize debug */
DBG_INIT ();
@@ -1771,7 +1771,7 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
{
while (sanei_config_read (line, sizeof (line), conf_fp))
{
- nline++;
+ //nline++;
if (str)
free (str);
diff --git a/backend/hp5400_internal.c b/backend/hp5400_internal.c
index 95866c4..e78e9e5 100644
--- a/backend/hp5400_internal.c
+++ b/backend/hp5400_internal.c
@@ -109,7 +109,7 @@ static TScannerModel Model_HP54xx =
HP5400_SANE_STATIC
int
-InitHp5400_internal() {
+InitHp5400_internal(void) {
MatchVersions = malloc( sizeof(versionString) * numVersions );
strcpy( MatchVersions[0].strVersion, "SilitekIBlizd C3 ScannerV0.84");
@@ -121,7 +121,7 @@ InitHp5400_internal() {
HP5400_SANE_STATIC
int
-FreeHp5400_internal() {
+FreeHp5400_internal(void) {
free(MatchVersions);
MatchVersions = NULL;
diff --git a/backend/hp5590.c b/backend/hp5590.c
index 78c9313..56acfb1 100644
--- a/backend/hp5590.c
+++ b/backend/hp5590.c
@@ -2154,6 +2154,24 @@ sane_read_internal (struct hp5590_scanner * scanner, SANE_Byte * data,
max_length,
scanner->transferred_image_size);
+ /*
+ * We will truncate down the buffer size to *under* what the
+ * internal USB reading buffer can supply. This will avoid page read issues
+ * at the end of the buffer.
+ *
+ * See: https://gitlab.com/sane-project/backends/-/issues/781
+ *
+ */
+ if (max_length > BULK_READ_PAGE_SIZE * MAX_READ_PAGES)
+ {
+ DBG (DBG_proc, "%s, truncating sane_read buffer from %u to %u\n",
+ __func__,
+ max_length,
+ BULK_READ_PAGE_SIZE * MAX_READ_PAGES);
+
+ max_length = BULK_READ_PAGE_SIZE * MAX_READ_PAGES;
+ }
+
SANE_Int length_limited = 0;
*length = max_length;
if ((unsigned long long) *length > scanner->transferred_image_size)
diff --git a/backend/hp5590_low.c b/backend/hp5590_low.c
index 2d19dcf..7038f43 100644
--- a/backend/hp5590_low.c
+++ b/backend/hp5590_low.c
@@ -99,9 +99,15 @@ struct usb_in_usb_ctrl_setup {
#define CORE_FLAG_NOT_READY 1 << 1
/* Bulk transfers are done in pages, below their respective sizes */
+/*
+ * Note that we limit the amount we can supply to sane_read() to avoid
+ * clashes with the size of the internal read buffer.
+ *
+ */
#define BULK_WRITE_PAGE_SIZE 0x0f000
#define BULK_READ_PAGE_SIZE 0x10000
-#define ALLOCATE_BULK_READ_PAGES 16 /* 16 * 65536 = 1Mb */
+#define ALLOCATE_BULK_READ_PAGES 17 /* 16 * 65536 = 1Mb */
+#define MAX_READ_PAGES 16 /* maximum that we will return to sane_read() */
/* Structure describing bulk read state, because bulk reads will be done in
* pages, but function caller uses its own buffer, whose size is certainly
diff --git a/backend/hpsj5s.c b/backend/hpsj5s.c
index 5ff5064..4c58dbf 100644
--- a/backend/hpsj5s.c
+++ b/backend/hpsj5s.c
@@ -648,7 +648,7 @@ DetectScanner (void)
}
static void
-StandByScanner ()
+StandByScanner (void)
{
WriteScannerRegister (0x74, 0x80);
WriteScannerRegister (0x75, 0x0C);
@@ -678,7 +678,7 @@ SwitchHardwareState (SANE_Byte mask, SANE_Byte invert_mask)
/*return value: 0 - no paper, 1 - paper loaded.*/
static int
-CheckPaperPresent ()
+CheckPaperPresent (void)
{
if ((CallFunctionWithRetVal (0xB2) & 0x10) == 0)
return 1; /*Ok - paper present. */
@@ -686,7 +686,7 @@ CheckPaperPresent ()
}
static int
-ReleasePaper ()
+ReleasePaper (void)
{
int i;
@@ -874,7 +874,7 @@ TurnOnPaperPulling (enumColorDepth enColor, SANE_Word wResolution)
}
static void
-TurnOffPaperPulling ()
+TurnOffPaperPulling (void)
{
CallFunctionWithParameter (0x91, 0);
}
@@ -884,7 +884,7 @@ TurnOffPaperPulling ()
While paper not loaded this is base "white point".
*/
static SANE_Byte
-GetCalibration ()
+GetCalibration (void)
{
int i;
int Result;
@@ -1041,7 +1041,7 @@ PaperFeed (SANE_Word wLinesToFeed)
/*For now we do no calibrate elements - just set maximum limits. FIX ME?*/
static void
-CalibrateScanElements ()
+CalibrateScanElements (void)
{
/*Those arrays will be used in future for correct calibration. */
/*Then we need to transfer UP brightness border, we use these registers */
@@ -1260,7 +1260,7 @@ CalibrateScanElements ()
/*Returns 0 in case of fail and 1 in success.*/
static int
-OutputCheck ()
+OutputCheck (void)
{
int i;
@@ -1277,7 +1277,7 @@ OutputCheck ()
}
static int
-InputCheck ()
+InputCheck (void)
{
int i;
SANE_Byte Buffer[256];
@@ -1298,7 +1298,7 @@ InputCheck ()
}
static int
-CallCheck ()
+CallCheck (void)
{
int i;
SANE_Byte Buffer[256];
@@ -1331,7 +1331,7 @@ CallCheck ()
}
static void
-LoadingPaletteToScanner ()
+LoadingPaletteToScanner (void)
{
/*For now we have statical gamma. */
SANE_Byte Gamma[256];
@@ -1394,7 +1394,7 @@ CallFunctionWithRetVal (SANE_Byte Function)
}
static SANE_Byte
-ReadDataByte ()
+ReadDataByte (void)
{
SANE_Byte Result;
diff --git a/backend/kodakaio.c b/backend/kodakaio.c
index 0241e2a..da3e234 100644
--- a/backend/kodakaio.c
+++ b/backend/kodakaio.c
@@ -1827,7 +1827,7 @@ k_init_parametersta(KodakAio_Scanner * s)
SANE_UNFIX(s->val[OPT_BR_X].w), SANE_UNFIX(s->val[OPT_BR_Y].w));
/*
- * The default color depth is stored in mode_params.depth:‭
+ * The default color depth is stored in mode_params.depth:
*/
if (mode_params[s->val[OPT_MODE].w].depth == 1)
s->params.depth = 1;
diff --git a/backend/lexmark_low.c b/backend/lexmark_low.c
index 246455f..a0237c7 100644
--- a/backend/lexmark_low.c
+++ b/backend/lexmark_low.c
@@ -2497,7 +2497,7 @@ sanei_lexmark_low_find_start_line (Lexmark_Device * dev)
*/
- int blackLineCount = 0;
+// int blackLineCount = 0;
int whiteLineCount = 0;
int blackByteCounter = 0;
unsigned char max_byte = 0;
@@ -2838,14 +2838,14 @@ sanei_lexmark_low_find_start_line (Lexmark_Device * dev)
if (blackByteCounter > 0)
{
/* This was a black line */
- blackLineCount++;
+// blackLineCount++;
whiteLineCount = 0;
}
else
{
/* This is a white line */
whiteLineCount++;
- blackLineCount = 0;
+// blackLineCount = 0;
}
} /* end for buffer */
diff --git a/backend/lexmark_x2600.c b/backend/lexmark_x2600.c
index 610064e..08a5e3b 100644
--- a/backend/lexmark_x2600.c
+++ b/backend/lexmark_x2600.c
@@ -624,7 +624,7 @@ attach_one (SANE_String_Const devname)
}
SANE_Status
-scan_devices(){
+scan_devices(void){
DBG (2, "scan_devices\n");
SANE_Char config_line[PATH_MAX];
FILE *fp;
diff --git a/backend/magicolor.c b/backend/magicolor.c
index 5278937..aac46be 100644
--- a/backend/magicolor.c
+++ b/backend/magicolor.c
@@ -105,16 +105,19 @@
static struct MagicolorCmd magicolor_cmd[] = {
{"mc1690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
{"mc4690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
+ {"es2323am", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
};
static SANE_Int magicolor_default_resolutions[] = {150, 300, 600};
static SANE_Int magicolor_default_depths[] = {1,8};
+static SANE_Int estudio_default_resolutions[] = {150, 200, 300, 400, 600};
+
static struct MagicolorCap magicolor_cap[] = {
/* KONICA MINOLTA magicolor 1690MF, USB ID 0x123b:2089 */
{
- 0x2089, "mc1690mf", "KONICA MINOLTA magicolor 1690MF", ".1.3.6.1.4.1.18334.1.1.1.1.1.23.1.1",
+ 0x2089, "mc1690mf", "magicolor 1690MF", ".1.3.6.1.4.1.18334.1.1.1.1.1.23.1.1",
-1, 0x85,
600, {150, 600, 0}, magicolor_default_resolutions, 3, /* 600 dpi max, 3 resolutions */
8, magicolor_default_depths, /* color depth 8 default, 1 and 8 possible */
@@ -126,7 +129,7 @@ static struct MagicolorCap magicolor_cap[] = {
/* KONICA MINOLTA magicolor 4690MF, USB ID 0x132b:2079 */
{
- 0x2079, "mc4690mf", "KONICA MINOLTA magicolor 4690MF",
+ 0x2079, "mc4690mf", "magicolor 4690MF",
"FIXME", /* FIXME: fill in the correct OID! */
0x03, 0x85,
600, {150, 600, 0}, magicolor_default_resolutions, 3, /* 600 dpi max, 3 resolutions */
@@ -137,13 +140,25 @@ static struct MagicolorCap magicolor_cap[] = {
{0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
},
+ /* TOSHIBA e-STUDIO2323AM, USB ID 0x08a6:8056 */
+ {
+ 0x8056, "es2323am", "e-STUDIO2323AM", ".1.3.6.1.4.1.1129.2.3.72.1",
+ 0x03, 0x85,
+ 600, {150, 600, 0}, estudio_default_resolutions, 5,
+ 8, magicolor_default_depths,
+ {-100, 100, 0},
+ {0, SANE_FIX(0x13f8 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x1b9c * MM_PER_INCH / 600), 0},
+ SANE_TRUE, SANE_TRUE,
+ {0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
+ },
+
};
static int MC_SNMP_Timeout = 2500;
static int MC_Scan_Data_Timeout = 15000;
static int MC_Request_Timeout = 5000;
-
+#define ESTUDIO_DEVICE(s) ((s)->hw->cap->id == 0x8056)
/****************************************************************************
* General configuration parameter definitions
@@ -235,7 +250,7 @@ print_params(const SANE_Parameters params)
#define MAGICOLOR_SNMP_SYSOBJECT_OID ".1.3.6.1.2.1.1.2.0"
#define MAGICOLOR_SNMP_MAC_OID ".1.3.6.1.2.1.2.2.1.6.1"
#define MAGICOLOR_SNMP_DEVICE_TREE ".1.3.6.1.4.1.18334.1.1.1.1.1"
-
+#define ESTUDIO_SNMP_DEVICE_TREE ".1.3.6.1.4.1.1129.2.3.72.1"
/* We don't have a packet wrapper, which holds packet size etc., so we
don't have to use a *read_raw and a *_read function... */
@@ -342,8 +357,13 @@ sanei_magicolor_net_open(struct Magicolor_Scanner *s)
buf[1] = cmd->net_lock;
buf[2] = 0x00;
/* Copy the device's USB id to bytes 3-4: */
- buf[3] = s->hw->cap->id & 0xff;
- buf[4] = (s->hw->cap->id >> 8) & 0xff;
+ if (ESTUDIO_DEVICE(s)) {
+ buf[3] = (s->hw->cap->id >> 8) & 0xff;
+ buf[4] = s->hw->cap->id & 0xff;
+ } else {
+ buf[3] = s->hw->cap->id & 0xff;
+ buf[4] = (s->hw->cap->id >> 8) & 0xff;
+ }
DBG(32, "Proper welcome message received, locking the scanner...\n");
sanei_magicolor_net_write_raw(s, buf, 5, &status);
@@ -777,7 +797,6 @@ cmd_finish_scan (SANE_Handle handle)
return status;
}
memset (&returned[0], 0x00, 0x0b);
-
status = mc_txrx (s, buf, buflen, returned, 0x0b);
free (buf);
if (status != SANE_STATUS_GOOD)
@@ -995,7 +1014,20 @@ cmd_read_data (SANE_Handle handle, unsigned char *buf, size_t len)
/* Temporarily set the poll timeout to 10 seconds instead of 2,
* because a color scan needs >5 seconds to initialize. */
MC_Request_Timeout = MC_Scan_Data_Timeout;
- status = mc_txrx (s, txbuf, txbuflen, buf, len);
+
+ if (ESTUDIO_DEVICE(s)) {
+ /* e-STUDIO device returns 5-bytes of ack data here
+ * ignore it to not mess up image buffer */
+ unsigned char ack[5];
+
+ status = mc_txrx (s, txbuf, txbuflen, ack, sizeof(ack));
+ if (status == SANE_STATUS_GOOD) {
+ mc_recv (s, buf, len, &status);
+ }
+ } else {
+ status = mc_txrx (s, txbuf, txbuflen, buf, len);
+ }
+
MC_Request_Timeout = oldtimeout;
free (txbuf);
if (status != SANE_STATUS_GOOD)
@@ -1029,8 +1061,8 @@ mc_dev_init(Magicolor_Device *dev, const char *devname, int conntype)
dev->connection = conntype;
dev->sane.name = devname;
dev->sane.model = NULL;
- dev->sane.type = "flatbed scanner";
- dev->sane.vendor = "Magicolor";
+ dev->sane.type = "multi-function peripheral";
+ dev->sane.vendor = "Konica Minolta";
dev->cap = &magicolor_cap[MAGICOLOR_CAP_DEFAULT];
dev->cmd = &magicolor_cmd[MAGICOLOR_LEVEL_DEFAULT];
/* Change default level when using a network connection */
@@ -1042,8 +1074,10 @@ static SANE_Status
mc_dev_post_init(struct Magicolor_Device *dev)
{
DBG(5, "%s\n", __func__);
- NOT_USED (dev);
/* Correct device parameters if needed */
+ if (dev->cap->id == 0x8056)
+ dev->sane.vendor = "Toshiba";
+
return SANE_STATUS_GOOD;
}
@@ -1305,7 +1339,8 @@ mc_scan_finish(Magicolor_Scanner * s)
s->buf = s->end = s->ptr = NULL;
/* TODO: Any magicolor command for "scan finished"? */
- status = cmd_finish_scan (s);
+ if (!ESTUDIO_DEVICE(s))
+ status = cmd_finish_scan (s);
status = cmd_request_error(s);
if (status != SANE_STATUS_GOOD) {
@@ -1922,8 +1957,16 @@ mc_network_discovery_handle (struct snmp_pdu *pdu, snmp_discovery_data *magic)
vp->val.objid, value_len) == 0) {
DBG (5, "%s: Device appears to be a magicolor device (OID=%s)\n", __func__, device);
} else {
- DBG (5, "%s: Device is not a Magicolor device\n", __func__);
- return 0;
+ anOID_len = MAX_OID_LEN;
+ read_objid(ESTUDIO_SNMP_DEVICE_TREE, anOID, &anOID_len);
+
+ if (netsnmp_oid_is_subtree (anOID, anOID_len,
+ vp->val.objid, value_len) == 0) {
+ DBG (5, "%s: Device appears to be a estudio device (OID=%s)\n", __func__, device);
+ } else {
+ DBG (5, "%s: Device is not a e-STUDIO / Magicolor device\n", __func__);
+ return 0;
+ }
}
}
diff --git a/backend/mustek_scsi_pp.c b/backend/mustek_scsi_pp.c
index 98e3f20..860fca3 100644
--- a/backend/mustek_scsi_pp.c
+++ b/backend/mustek_scsi_pp.c
@@ -78,7 +78,7 @@ static int mustek_scsi_pp_timeout = 5000;
/* FIXME: use same method as mustek.c ? */
static int
-mustek_scsi_pp_get_time ()
+mustek_scsi_pp_get_time (void)
{
struct timeval tv;
int retval;
diff --git a/backend/mustek_usb2.c b/backend/mustek_usb2.c
index cb511b9..785bdb3 100644
--- a/backend/mustek_usb2.c
+++ b/backend/mustek_usb2.c
@@ -537,7 +537,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-GetDeviceStatus ()
+GetDeviceStatus (void)
{
DBG (DBG_FUNC, "GetDeviceStatus: start\n");
return MustScanner_GetScannerState ();
@@ -576,7 +576,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-CarriageHome ()
+CarriageHome (void)
{
DBG (DBG_FUNC, "CarriageHome: start\n");
return MustScanner_BackHome ();
@@ -914,7 +914,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-StartScan ()
+StartScan (void)
{
DBG (DBG_FUNC, "StartScan: start\n");
if (ST_Reflective == g_ScanType)
@@ -1099,7 +1099,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-StopScan ()
+StopScan (void)
{
SANE_Bool rt;
int i;
@@ -1159,7 +1159,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-IsTAConnected ()
+IsTAConnected (void)
{
SANE_Bool hasTA;
diff --git a/backend/mustek_usb2_high.c b/backend/mustek_usb2_high.c
index e8b067f..cf0157b 100644
--- a/backend/mustek_usb2_high.c
+++ b/backend/mustek_usb2_high.c
@@ -199,7 +199,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-MustScanner_Init ()
+MustScanner_Init (void)
{
DBG (DBG_FUNC, "MustScanner_Init: Call in\n");
@@ -260,7 +260,7 @@ Return value:
return FASLE
***********************************************************************/
static SANE_Bool
-MustScanner_GetScannerState ()
+MustScanner_GetScannerState (void)
{
if (SANE_STATUS_GOOD != Asic_Open (&g_chip, g_pDeviceFile))
@@ -343,7 +343,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-MustScanner_BackHome ()
+MustScanner_BackHome (void)
{
DBG (DBG_FUNC, "MustScanner_BackHome: call in \n");
@@ -3081,7 +3081,7 @@ Return value:
the lines of scanned
***********************************************************************/
static unsigned int
-GetScannedLines ()
+GetScannedLines (void)
{
unsigned int dwScannedLines = 0;
@@ -3103,7 +3103,7 @@ Return value:
the lines which pass to superstratum
***********************************************************************/
static unsigned int
-GetReadyLines ()
+GetReadyLines (void)
{
unsigned int dwReadyLines = 0;
@@ -3143,7 +3143,7 @@ Return value:
none
***********************************************************************/
static void
-AddReadyLines ()
+AddReadyLines (void)
{
pthread_mutex_lock (&g_readyLinesMutex);
g_wtheReadyLines++;
diff --git a/backend/mustek_usb2_reflective.c b/backend/mustek_usb2_reflective.c
index ed37296..e0b0d10 100644
--- a/backend/mustek_usb2_reflective.c
+++ b/backend/mustek_usb2_reflective.c
@@ -72,7 +72,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Reflective_Reset ()
+Reflective_Reset (void)
{
DBG (DBG_FUNC, "Reflective_Reset: call in\n");
@@ -576,7 +576,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Reflective_AdjustAD ()
+Reflective_AdjustAD (void)
{
SANE_Byte * lpCalData;
unsigned short wCalWidth;
@@ -1293,7 +1293,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Reflective_StopScan ()
+Reflective_StopScan (void)
{
DBG (DBG_FUNC, "Reflective_StopScan: call in\n");
if (!g_bOpened)
@@ -1338,7 +1338,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Reflective_LineCalibration16Bits ()
+Reflective_LineCalibration16Bits (void)
{
SANE_Status status;
SANE_Byte * lpWhiteData;
@@ -1758,7 +1758,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Reflective_PrepareScan ()
+Reflective_PrepareScan (void)
{
g_wScanLinesPerBlock = g_dwBufferSize / g_BytesPerRow;
g_wMaxScanLines = g_dwImageBufferSize / g_BytesPerRow;
diff --git a/backend/mustek_usb2_transparent.c b/backend/mustek_usb2_transparent.c
index 1c4b91b..04b9eda 100644
--- a/backend/mustek_usb2_transparent.c
+++ b/backend/mustek_usb2_transparent.c
@@ -73,7 +73,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Transparent_Reset ()
+Transparent_Reset (void)
{
DBG (DBG_FUNC, "Transparent_Reset: call in\n");
@@ -502,7 +502,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Transparent_StopScan ()
+Transparent_StopScan (void)
{
DBG (DBG_FUNC, "Transparent_StopScan: call in\n");
@@ -613,7 +613,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Transparent_AdjustAD ()
+Transparent_AdjustAD (void)
{
SANE_Byte * lpCalData;
unsigned short wCalWidth;
@@ -1659,7 +1659,7 @@ Return value:
return FALSE
***********************************************************************/
static SANE_Bool
-Transparent_PrepareScan ()
+Transparent_PrepareScan (void)
{
DBG (DBG_FUNC, "Transparent_PrepareScan: call in\n");
diff --git a/backend/net.c b/backend/net.c
index 7b1ea05..bea22cc 100644
--- a/backend/net.c
+++ b/backend/net.c
@@ -313,7 +313,7 @@ add_device (const char *name, Net_Device ** ndp)
#endif /* NET_USES_AF_INDEP */
/* Calls getpwuid_r(). The return value must be freed by the caller. */
-char* get_current_username()
+static char* get_current_username(void)
{
long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
if (bufsize == -1)
diff --git a/backend/pixma/pixma_common.h b/backend/pixma/pixma_common.h
index 5b393dc..68d10ff 100644
--- a/backend/pixma/pixma_common.h
+++ b/backend/pixma/pixma_common.h
@@ -70,7 +70,7 @@
#define PIXMA_STATUS_FAILED 0x1515
#define PIXMA_STATUS_BUSY 0x1414
-#define PIXMA_MAX_ID_LEN 30
+#define PIXMA_MAX_ID_LEN 40
/* These may have been defined elsewhere */
#ifndef MIN
diff --git a/backend/pixma/pixma_imageclass.c b/backend/pixma/pixma_imageclass.c
index 83b19bd..c750b20 100644
--- a/backend/pixma/pixma_imageclass.c
+++ b/backend/pixma/pixma_imageclass.c
@@ -953,6 +953,7 @@ const pixma_config_t pixma_iclass_devices[] = {
DEV ("Canon i-SENSYS MF4700 Series", "MF4700", MF4700_PID, 600, 0, 640, 1050, PIXMA_CAP_ADF),
DEV ("Canon i-SENSYS MF4800 Series", "MF4800", MF4800_PID, 600, 0, 640, 1050, PIXMA_CAP_ADF),
DEV ("Canon imageCLASS MF4570dw", "MF4570dw", MF4570_PID, 600, 0, 640, 877, 0),
+ DEV ("Canon imageClass MF4500w Series", "MF4500w", MF4570_PID, 600, 0, 640, 877, 0),
DEV ("Canon i-SENSYS MF8200C Series", "MF8200C", MF8200_PID, 600, 300, 640, 1050, PIXMA_CAP_ADF),
DEV ("Canon i-SENSYS MF8300 Series", "MF8300", MF8300_PID, 600, 0, 640, 1050, PIXMA_CAP_ADF),
DEV ("Canon imageCLASS D530", "D530", D530_PID, 600, 0, 640, 877, 0),
diff --git a/backend/pixma/pixma_io_sanei.c b/backend/pixma/pixma_io_sanei.c
index 394523e..756e0de 100644
--- a/backend/pixma/pixma_io_sanei.c
+++ b/backend/pixma/pixma_io_sanei.c
@@ -132,7 +132,7 @@ attach_bjnp (SANE_String_Const devname,
return SANE_STATUS_NO_MEM;
si->cfg = cfg;
- sprintf(si->serial, "%s_%s", cfg->model, serial);
+ snprintf(si->serial, sizeof(si->serial), "%s_%s", cfg->model, serial);
si -> interface = INT_BJNP;
si->next = first_scanner;
first_scanner = si;
@@ -188,7 +188,7 @@ u16tohex (uint16_t x, char *str)
static void
read_serial_number (scanner_info_t * si)
{
- uint8_t unicode[2 * (PIXMA_MAX_ID_LEN - 9) + 2];
+ uint8_t unicode[2 * (PIXMA_MAX_ID_LEN - 9) + 2]; // 9 = size of VID + PID + "_"
uint8_t ddesc[18];
int iSerialNumber;
SANE_Int usb;
diff --git a/backend/pixma/pixma_mp150.c b/backend/pixma/pixma_mp150.c
index 99024ca..b582c48 100644
--- a/backend/pixma/pixma_mp150.c
+++ b/backend/pixma/pixma_mp150.c
@@ -363,6 +363,18 @@
#define TS7700A_PID 0x1111
#define GX6500_PID 0x1148
+/* 2024 new device (untested) */
+#define TS3600_PID 0x1156
+#define TS3700_PID 0x1158
+#define E3600_PID 0x1157
+
+#define G4090_PID 0x114A
+#define G4080_PID 0x114B
+#define G3090_PID 0x114C
+#define G3080_PID 0x114D
+#define TS8800_PID 0x1159
+#define XK130_PID 0x115A
+
/* Generation 4 XML messages that encapsulates the Pixma protocol messages */
#define XML_START_1 \
"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\
@@ -2017,5 +2029,17 @@ const pixma_config_t pixma_mp150_devices[] = {
DEVICE ("Canon PIXMA TS7700A series", "TS7700A", TS7700A_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS),
DEVICE ("Canon PIXMA GX6500 series", "GX6500", GX6500_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF),
+ DEVICE ("Canon PIXMA TS3600 Series", "TS3600", TS3600_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA TS3700 Series", "TS3700", TS3700_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA E3600 Series", "E3600", E3600_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF),
+
+ DEVICE ("Canon PIXMA G4090", "G4090", G4090_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA G4080", "G4080", G4080_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA G3090", "G3090", G3090_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA G3080", "G3080", G3080_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA TS8800 series", "TS8800", TS8800_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS),
+ DEVICE ("Canon PIXMA XK130 series", "XK130", XK130_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS),
+
+
END_OF_DEVICE_LIST
};
diff --git a/backend/plustek-pp_io.c b/backend/plustek-pp_io.c
index 45ffe8b..d979c8b 100644
--- a/backend/plustek-pp_io.c
+++ b/backend/plustek-pp_io.c
@@ -422,7 +422,7 @@ static Bool ioP98OpenScanPath( pScanData ps )
{
Byte tmp;
ULong dw;
- ULong dwTime = 1;
+// ULong dwTime = 1; // Doesn't seem to be used. [RL]
if( 0 == ps->IO.bOpenCount ) {
@@ -457,7 +457,7 @@ static Bool ioP98OpenScanPath( pScanData ps )
ps->IO.bOpenCount = 0;
}
- dwTime++;
+// dwTime++; // Doesn't seem to be used. [RL]
}
DBG( DBG_IO, "ioP98OpenScanPath() failed!\n" );
return _FALSE;
diff --git a/backend/rts8891.c b/backend/rts8891.c
index 2732871..16aecca 100644
--- a/backend/rts8891.c
+++ b/backend/rts8891.c
@@ -83,6 +83,7 @@
#include <string.h>
#include <ctype.h>
#include <time.h>
+#include <math.h>
#include <sys/types.h>
#include <unistd.h>
@@ -109,12 +110,6 @@
#define MARGIN_LEVEL 128 /* white level for margin detection */
-/* width used for calibration */
-#define CALIBRATION_WIDTH 637
-
-/* data size for calibration: one RGB line*/
-#define CALIBRATION_SIZE CALIBRATION_WIDTH*3
-
/* #define FAST_INIT 1 */
#define BUILD 2401
@@ -233,6 +228,8 @@ static SANE_Status find_origin (struct Rts8891_Device *dev,
static SANE_Status find_margin (struct Rts8891_Device *dev);
static SANE_Status dark_calibration (struct Rts8891_Device *dev, int mode,
int light);
+static SANE_Status lamp_warm_up (struct Rts8891_Device *dev, int mode,
+ int light);
static SANE_Status gain_calibration (struct Rts8891_Device *dev, int mode,
int light);
static SANE_Status offset_calibration (struct Rts8891_Device *dev, int mode,
@@ -1051,6 +1048,8 @@ static char *sensor_name (int sensor)
return "SENSOR_TYPE_4400";
case SENSOR_TYPE_4400_BARE:
return "SENSOR_TYPE_4400_BARE";
+ case SENSOR_TYPE_UMAX:
+ return "SENSOR_TYPE_UMAX";
default:
return "BOGUS";
}
@@ -1136,7 +1135,7 @@ sane_start (SANE_Handle handle)
init_lamp (dev);
/* do warming up if needed: just detected or at sane_open() */
- if (dev->needs_warming == SANE_TRUE)
+ if (dev->needs_warming == SANE_TRUE && dev->sensor != SENSOR_TYPE_UMAX)
{
DBG (DBG_info, "sane_start: warming lamp ...\n");
#ifdef HAVE_SYS_TIME_H
@@ -1213,6 +1212,11 @@ sane_start (SANE_Handle handle)
"sane_start: sensor changed to type 'SENSOR_TYPE_4400'!\n");
dev->sensor = SENSOR_TYPE_4400;
break;
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_info,
+ "sane_start: sensor changed to type 'SENSOR_TYPE_XPA'!\n");
+ dev->sensor = SENSOR_TYPE_XPA;
+ break;
}
}
}
@@ -1226,6 +1230,7 @@ sane_start (SANE_Handle handle)
mode = 0x20;
break;
case SENSOR_TYPE_BARE:
+ case SENSOR_TYPE_UMAX:
light = 0x3b;
mode = 0x20;
break;
@@ -1272,6 +1277,21 @@ sane_start (SANE_Handle handle)
sanei_rts88xx_write_reg (dev->devnum, LAMP_BRIGHT_REG,
dev->regs + LAMP_BRIGHT_REG);
+ /* step 3a: lamp warm-up (UMAX-only) */
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ status = lamp_warm_up(dev, mode, light);
+ if (status != SANE_STATUS_GOOD)
+ {
+ if (dev->conf.allowsharing == SANE_TRUE)
+ {
+ sanei_usb_release_interface (dev->devnum, 0);
+ }
+ DBG (DBG_error, "sane_start: lamp warm-up failed!\n");
+ return status;
+ }
+ }
+
/* step 4: gain calibration */
status = gain_calibration (dev, mode, light);
if (status != SANE_STATUS_GOOD)
@@ -1771,8 +1791,11 @@ sane_read (SANE_Handle handle, SANE_Byte * buf,
return SANE_STATUS_EOF;
}
- dev->regs[LAMP_REG] = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &(dev->regs[LAMP_REG]));
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[LAMP_REG] = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &(dev->regs[LAMP_REG]));
+ }
/* byte length for high dpi mode */
length = (session->params.bytes_per_line * 8) / session->params.depth;
@@ -1830,8 +1853,11 @@ sane_read (SANE_Handle handle, SANE_Byte * buf,
dev->current = dev->start;
}
- dev->regs[LAMP_REG] = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &(dev->regs[LAMP_REG]));
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[LAMP_REG] = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &(dev->regs[LAMP_REG]));
+ }
/* it seems there is no gray or lineart hardware mode for the rts8891 */
if (session->params.format == SANE_FRAME_GRAY
@@ -2912,6 +2938,15 @@ average_area (int color, SANE_Byte * data, int width, int height,
return global;
}
+static void
+gamma_correction (unsigned char *data, int length, float gamma)
+{
+ int i;
+
+ for (i = 0; i < length; i++)
+ data[i] = 255 * pow(data[i] / 255.0, 1/gamma);
+}
+
/**
* Sets lamp brightness (hum, maybe some timing before light off)
@@ -2922,6 +2957,11 @@ set_lamp_brightness (struct Rts8891_Device *dev, int level)
SANE_Status status = SANE_STATUS_GOOD;
SANE_Byte reg;
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ return status;
+ }
+
reg = 0xA0 | (level & 0x0F);
sanei_rts88xx_write_reg (dev->devnum, LAMP_BRIGHT_REG, &reg);
switch (level)
@@ -2945,7 +2985,12 @@ set_lamp_brightness (struct Rts8891_Device *dev, int level)
sanei_rts88xx_get_status (dev->devnum, dev->regs);
DBG (DBG_io, "set_lamp_brightness: status=0x%02x 0x%02x\n", dev->regs[0x10],
dev->regs[0x11]);
- if (dev->sensor != SENSOR_TYPE_4400)
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x10] = 0x20;
+ dev->regs[0x11] = 0x3b;
+ }
+ else if (dev->sensor != SENSOR_TYPE_4400)
{
dev->regs[0x10] = 0x28;
dev->regs[0x11] = 0x3f;
@@ -2988,7 +3033,12 @@ init_lamp (struct Rts8891_Device *dev)
sanei_rts88xx_write_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
sanei_rts88xx_write_control (dev->devnum, 0x00);
sanei_rts88xx_write_control (dev->devnum, 0x00);
- if (dev->sensor != SENSOR_TYPE_4400 && dev->sensor != SENSOR_TYPE_4400_BARE)
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x20, 0x3b);
+ dev->regs[0x11] = 0x3b;
+ }
+ else if (dev->sensor != SENSOR_TYPE_4400 && dev->sensor != SENSOR_TYPE_4400_BARE)
{
sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x28, 0x3f);
dev->regs[0x11] = 0x3f;
@@ -2998,11 +3048,14 @@ init_lamp (struct Rts8891_Device *dev)
sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x10, 0x22);
dev->regs[0x11] = 0x22;
}
- reg = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- dev->regs[LAMP_REG] = 0xa2;
- dev->regs[LAMP_BRIGHT_REG] = 0xa0;
- rts8891_write_all (dev->devnum, dev->regs, dev->reg_count);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ dev->regs[LAMP_REG] = 0xa2;
+ dev->regs[LAMP_BRIGHT_REG] = 0xa0;
+ rts8891_write_all (dev->devnum, dev->regs, dev->reg_count);
+ }
return set_lamp_brightness (dev, 7);
}
@@ -3022,7 +3075,7 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
int startx = 300;
int width = 1200;
int x, y, sum, current;
- int starty = 18;
+ int starty = (dev->sensor == SENSOR_TYPE_UMAX) ? 42 : 18;
int height = 180;
int timing;
@@ -3152,6 +3205,38 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
dev->regs[0xd7] = 0x30; /* 0x10 */
dev->regs[0xda] = 0xa7; /* 0xa0 */
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x14] = 0xf0;
+ dev->regs[0x16] = 0x0f;
+ dev->regs[0x23] = 0x00;
+ dev->regs[0x35] = 0x0e;
+ dev->regs[0x36] = 0x2c;
+ dev->regs[0x3a] = 0x0e;
+ dev->regs[0xc0] = 0x87;
+ dev->regs[0xc1] = 0x07;
+ dev->regs[0xc2] = 0xf8;
+ dev->regs[0xc3] = 0x78;
+ dev->regs[0xc4] = 0xf8;
+ dev->regs[0xc5] = 0x07;
+ dev->regs[0xc6] = 0x87;
+ dev->regs[0xc7] = 0x07;
+ dev->regs[0xc8] = 0xf8;
+ dev->regs[0xc9] = 0xfc;
+ dev->regs[0xca] = 0x0f;
+ dev->regs[0xcd] = 0x00;
+ dev->regs[0xce] = 0x80;
+ dev->regs[0xcf] = 0xe2;
+ dev->regs[0xd0] = 0xe4;
+ dev->regs[0xd7] = 0x10;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xd9] = 0x2d;
+ dev->regs[0xda] = 0x00;
+ dev->regs[0xe2] = 0x03;
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 2061);
+ /* dev->regs[0xe5] = 0x0d;
+ dev->regs[0xe6] = 0x08; 080d=2061 */
+ }
SET_DOUBLE (dev->regs, TIMING_REG, timing);
SET_DOUBLE (dev->regs, TIMING1_REG, timing+1);
SET_DOUBLE (dev->regs, TIMING2_REG, timing+2);
@@ -3180,8 +3265,11 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
sanei_rts88xx_set_gain (dev->regs, 0x10, 0x10, 0x10);
/* gray level scan */
- dev->regs[LAMP_REG] = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, dev->regs + LAMP_REG);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[LAMP_REG] = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, dev->regs + LAMP_REG);
+ }
if (dev->sensor != SENSOR_TYPE_4400
&& (dev->sensor != SENSOR_TYPE_4400_BARE))
{
@@ -3208,6 +3296,16 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
write_gray_data (data, "find_origin.pnm", width, height);
}
+ /* strong gamma correction (16) for reliable detection with cold lamp */
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ gamma_correction(data, total, 16);
+ if (DBG_LEVEL > DBG_io2)
+ {
+ write_gray_data (data, "find_origin_gamma.pnm", width, height);
+ }
+ }
+
/* now we have the data, search for the black area so that we can */
/* deduce start of scan area */
/* we apply an Y direction sobel filter to get reliable edge detection */
@@ -3291,6 +3389,20 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
dev->regs[0xe6] = 0x08; 0x10 080d=2061=1030*2+1 */
SET_DOUBLE (dev->regs, EXPOSURE_REG, 2061);
}
+ else if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x36] = 0x24; /* direction reverse (& ~0x08) */
+ dev->regs[0xb2] = 0x02;
+ dev->regs[0xd9] = 0x2d;
+ dev->regs[0xda] = 0x00;
+ dev->regs[0xe2] = 0x07;
+
+ /*
+ dev->regs[0xe5] = 0x06;
+ dev->regs[0xe6] = 0x04; 406=1030 */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 1030);
+ sum -= 32;
+ }
else
{
dev->regs[0x11] = 0x3f; /* 0x3b */
@@ -3306,6 +3418,7 @@ find_origin (struct Rts8891_Device *dev, SANE_Bool * changed)
}
/* move by a fixed amount relative to the 'top' of the scanner */
+ DBG (DBG_info, "find_origin: moving back %d lines\n", height - sum + 10);
sanei_rts88xx_set_scan_area (dev->regs, height - sum + 10,
height - sum + 11, 637, 893);
rts8891_write_all (dev->devnum, dev->regs, dev->reg_count);
@@ -3341,6 +3454,7 @@ find_margin (struct Rts8891_Device *dev)
int height = 1;
SANE_Byte reg = 0xa2;
int timing=0;
+ unsigned char margin_level = MARGIN_LEVEL;
DBG (DBG_proc, "find_margin: start\n");
@@ -3352,12 +3466,25 @@ find_margin (struct Rts8891_Device *dev)
{
sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x10, 0x23);
}
+ else if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x20, 0x3b);
+ }
else
{
sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x28, 0x3b);
}
- sanei_rts88xx_set_gain (dev->regs, 0x3f, 0x3f, 0x3f);
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ sanei_rts88xx_set_offset (dev->regs, 0xad, 0xb2, 0xb1);
+ sanei_rts88xx_set_gain (dev->regs, 0x00, 0x00, 0x00);
+ startx = 66;
+ }
+ else
+ {
+ sanei_rts88xx_set_gain (dev->regs, 0x3f, 0x3f, 0x3f);
+ }
/* set scan parameters */
dev->regs[0x33] = 0x01;
@@ -3447,6 +3574,49 @@ find_margin (struct Rts8891_Device *dev)
dev->regs[0x8d] = 0x3b; /* 0x00 */
timing=0x00b0;
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x35] = 0x0e;
+ dev->regs[0x3a] = 0x0e;
+ dev->regs[0x40] = 0x20;
+ dev->regs[0x72] = 0xe1;
+ dev->regs[0x73] = 0x14;
+ dev->regs[0x74] = 0x18;
+ dev->regs[0x7a] = 0x01;
+ dev->regs[0x8d] = 0x07;
+ timing=0x32;
+ dev->regs[0xc1] = 0x07;
+ dev->regs[0xc2] = 0x80;
+ dev->regs[0xc4] = 0xf8;
+ dev->regs[0xc5] = 0x7f;
+ dev->regs[0xc6] = 0xff;
+ dev->regs[0xc7] = 0x07;
+ dev->regs[0xc8] = 0x80;
+ dev->regs[0xc9] = 0x00;
+ dev->regs[0xca] = 0x0f;
+ dev->regs[0xcb] = 0x00;
+ dev->regs[0xcc] = 0xfe;
+ dev->regs[0xcd] = 0x00;
+ dev->regs[0xce] = 0x00;
+ dev->regs[0xcf] = 0xf7;
+ dev->regs[0xd0] = 0xe1;
+ dev->regs[0xd1] = 0xea;
+ dev->regs[0xd2] = 0x0b;
+ dev->regs[0xd3] = 0x03;
+ dev->regs[0xd4] = 0x05;
+ dev->regs[0xd6] = 0xab;
+ dev->regs[0xd7] = 0x10;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xda] = 0x00;
+ dev->regs[0xe2] = 0x03;
+ dev->regs[0xee] = 0x00;
+ dev->regs[0xf1] = 0x00;
+
+ /* dev->regs[0xe5] = 0xbd;
+ dev->regs[0xe6] = 0x0a; 0abd=2749 */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 2749);
+ margin_level = 32;
+ }
SET_DOUBLE (dev->regs, TIMING_REG, timing);
SET_DOUBLE (dev->regs, TIMING1_REG, timing+1);
SET_DOUBLE (dev->regs, TIMING2_REG, timing+2);
@@ -3480,11 +3650,28 @@ find_margin (struct Rts8891_Device *dev)
write_gray_data (data, "find_margin.pnm", width, height);
}
- /* we search from left to right the first white pixel */
+ /* gamma correction (2) for reliable detection with cold lamp */
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ gamma_correction(data, total, 2);
+ if (DBG_LEVEL > DBG_io2)
+ {
+ write_gray_data (data, "find_margin_gamma.pnm", width, height);
+ }
+ }
+
+ /* search from left for the first white pixel (4 consecutive for UMAX) */
x = 0;
- while (x < width && data[x] < MARGIN_LEVEL)
- x++;
- if (x == width)
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ while (x < width - 3 && (data[x] < margin_level ||
+ data[x + 1] < margin_level ||
+ data[x + 2] < margin_level ||
+ data[x + 3] < margin_level))
+ x++;
+ else
+ while (x < width && data[x] < margin_level)
+ x++;
+ if (x == width || (dev->sensor == SENSOR_TYPE_UMAX && x == width - 3))
{
DBG (DBG_warn, "find_margin: failed to find left margin!\n");
DBG (DBG_warn, "find_margin: using default...\n");
@@ -3679,7 +3866,10 @@ initialize_device (struct Rts8891_Device *dev)
dev->regs[0xd5] = 0x86; /* 0x06 */
dev->regs[0xd7] = 0x30; /* 0x10 */
dev->regs[0xd8] = 0xf6; /* 0x7a */
- dev->regs[0xd9] = 0x80; /* 0x00 */
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0xd9] = 0x80; /* 0x00 */
+ }
dev->regs[0xda] = 0x00; /* 0x15 */
dev->regs[0xe2] = 0x01; /* 0x00 */
/* dev->regs[0xe5] = 0x14; 0x0f */
@@ -4011,6 +4201,38 @@ int i;
dev->regs[0x90] = 0x80; /* 0x00 */
}
break;
+ case SENSOR_TYPE_UMAX:
+ for (i = 0; i < dev->reg_count; i++)
+ dev->regs[i] = 0x00;
+ dev->regs[0x00] = 0xe5;
+ dev->regs[0x01] = 0x41;
+ dev->regs[0x0b] = 0x70;
+ dev->regs[0x10] = 0xd0;
+ dev->regs[0x11] = 0x1b;
+ dev->regs[0x13] = 0x20;
+ dev->regs[0x15] = 0x20;
+ dev->regs[0x1d] = 0x20;
+ dev->regs[0x20] = 0x3a;
+ dev->regs[0x21] = 0xf2;
+ dev->regs[0x34] = 0x10;
+ dev->regs[0x36] = 0x07;
+ dev->regs[0x40] = 0x20;
+ dev->regs[0x44] = 0x8c;
+ dev->regs[0x45] = 0x76;
+ dev->regs[0x8d] = 0x80;
+ dev->regs[0x8e] = 0x68;
+ dev->regs[0x93] = 0x02;
+ dev->regs[0x94] = 0x0e;
+ dev->regs[0xa3] = 0xcc;
+ dev->regs[0xa4] = 0x27;
+ dev->regs[0xa5] = 0x64;
+ dev->regs[0xb2] = 0x02;
+ dev->regs[0xd5] = 0x86;
+ dev->regs[0xd6] = 0x1b;
+ dev->regs[0xd8] = 0xff;
+ dev->regs[0xe2] = 0x01;
+ dev->regs[0xe5] = 0x14;
+ break;
}
return SANE_STATUS_GOOD;
}
@@ -4093,6 +4315,14 @@ init_device (struct Rts8891_Device *dev)
DBG (DBG_io, "init_device: status=0x%02x 0x%02x\n", dev->regs[0x10],
dev->regs[0x11]);
+ if (dev->model->sensor == SENSOR_TYPE_UMAX)
+ {
+ /* bit 7 in reg 0x10 is set on USB plug when UTA is attached
+ * we keep track of it and set it back on exit so we can detect UTA next time
+ */
+ dev->has_uta = (dev->regs[0x10] & 0x80) ? SANE_TRUE : SANE_FALSE;
+ DBG (DBG_io, "init_device: UMAX UTA (Transparency adapter) %s\n", dev->has_uta ? "detected":"not detected");
+ }
/* reads lamp status and sensor information */
sanei_rts88xx_get_lamp_status (dev->devnum, dev->regs);
DBG (DBG_io, "init_device: lamp status=0x%02x\n", dev->regs[0x8e]);
@@ -4194,39 +4424,77 @@ init_device (struct Rts8891_Device *dev)
DBG (DBG_warn, "init_device: got unexpected id 0x%02x\n", id);
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x10] = 0x28;
+ dev->regs[0x11] = 0x28;
+ dev->regs[0x12] = 0xff;
+ dev->regs[0x14] = 0xf0; /* GPIO/buttons direction? */
+ dev->regs[0x15] = 0x28;
+ dev->regs[0x16] = 0x0f; /* GPIO/buttons direction? */
+ dev->regs[0x18] = 0xff;
+ dev->regs[0x24] = 0xff;
+ dev->regs[0x72] = 0xe1;
+ dev->regs[0x73] = 0x14;
+ dev->regs[0x74] = 0x18;
+ dev->regs[0x75] = 0x15;
+ dev->regs[0xc0] = 0x87;
+ dev->regs[0xc1] = 0x07;
+ dev->regs[0xc2] = 0xf8;
+ dev->regs[0xc3] = 0x78;
+ dev->regs[0xc4] = 0xf8;
+ dev->regs[0xc5] = 0x07;
+ dev->regs[0xc6] = 0x87;
+ dev->regs[0xc7] = 0x07;
+ dev->regs[0xc8] = 0xf8;
+ dev->regs[0xc9] = 0xfc;
+ dev->regs[0xca] = 0x0f;
+ dev->regs[0xce] = 0x80;
+ dev->regs[0xcf] = 0xe2;
+ dev->regs[0xd0] = 0xe4;
+ dev->regs[0xd1] = 0xea;
+ dev->regs[0xd2] = 0x0b;
+ dev->regs[0xd3] = 0x03;
+ dev->regs[0xd4] = 0x05;
+ dev->regs[0xd7] = 0x10;
+ dev->regs[0xd8] = 0xa6;
+ }
+ else
+ {
+ dev->regs[0x12] = 0xff;
+ dev->regs[0x14] = 0xf8;
+ dev->regs[0x15] = 0x28;
+ dev->regs[0x16] = 0x07;
+ dev->regs[0x18] = 0xff;
+ dev->regs[0x23] = 0xff;
+ dev->regs[0x24] = 0xff;
- dev->regs[0x12] = 0xff;
- dev->regs[0x14] = 0xf8;
- dev->regs[0x15] = 0x28;
- dev->regs[0x16] = 0x07;
- dev->regs[0x18] = 0xff;
- dev->regs[0x23] = 0xff;
- dev->regs[0x24] = 0xff;
+ dev->regs[0x72] = 0xe1;
+ dev->regs[0x73] = 0x14;
+ dev->regs[0x74] = 0x18;
+ dev->regs[0x75] = 0x15;
+ dev->regs[0xc0] = 0xff;
+ dev->regs[0xc1] = 0x0f;
+ dev->regs[0xc3] = 0xff;
+ dev->regs[0xc4] = 0xff;
+ dev->regs[0xc5] = 0xff;
+ dev->regs[0xc6] = 0xff;
+ dev->regs[0xc7] = 0xff;
+ dev->regs[0xc8] = 0xff;
+ dev->regs[0xca] = 0x0e;
+ dev->regs[0xcd] = 0xf0;
+ dev->regs[0xce] = 0xff;
+ dev->regs[0xcf] = 0xf5;
+ dev->regs[0xd0] = 0xf7;
+ dev->regs[0xd1] = 0xea;
+ dev->regs[0xd2] = 0x0b;
+ dev->regs[0xd3] = 0x03;
+ dev->regs[0xd4] = 0x05;
+ dev->regs[0xd7] = 0x30;
+ dev->regs[0xd8] = 0xf6;
+ dev->regs[0xd9] = 0x80;
+ }
- dev->regs[0x72] = 0xe1;
- dev->regs[0x73] = 0x14;
- dev->regs[0x74] = 0x18;
- dev->regs[0x75] = 0x15;
- dev->regs[0xc0] = 0xff;
- dev->regs[0xc1] = 0x0f;
- dev->regs[0xc3] = 0xff;
- dev->regs[0xc4] = 0xff;
- dev->regs[0xc5] = 0xff;
- dev->regs[0xc6] = 0xff;
- dev->regs[0xc7] = 0xff;
- dev->regs[0xc8] = 0xff;
- dev->regs[0xca] = 0x0e;
- dev->regs[0xcd] = 0xf0;
- dev->regs[0xce] = 0xff;
- dev->regs[0xcf] = 0xf5;
- dev->regs[0xd0] = 0xf7;
- dev->regs[0xd1] = 0xea;
- dev->regs[0xd2] = 0x0b;
- dev->regs[0xd3] = 0x03;
- dev->regs[0xd4] = 0x05;
- dev->regs[0xd7] = 0x30;
- dev->regs[0xd8] = 0xf6;
- dev->regs[0xd9] = 0x80;
rts8891_write_all (dev->devnum, dev->regs, dev->reg_count);
/* now we are writing and reading back from memory, it is surely a memory test since the written data
@@ -4370,14 +4638,17 @@ init_device (struct Rts8891_Device *dev)
return SANE_STATUS_IO_ERROR;
}
}
- reg = 0x80;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- reg = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- sanei_rts88xx_read_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
- /* we expect 0xF8 0x28 here */
- dev->regs[0x14] = dev->regs[0x14] & 0x7F;
- sanei_rts88xx_write_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x80;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ reg = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ sanei_rts88xx_read_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
+ /* we expect 0xF8 0x28 here */
+ dev->regs[0x14] = dev->regs[0x14] & 0x7F;
+ sanei_rts88xx_write_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
+ }
/* reads scanner status */
sanei_rts88xx_get_status (dev->devnum, dev->regs);
@@ -4387,10 +4658,13 @@ init_device (struct Rts8891_Device *dev)
DBG (DBG_io, "init_device: link=0x%02x\n", control);
sanei_rts88xx_read_reg (dev->devnum, CONTROL_REG, &control);
sanei_rts88xx_reset_lamp (dev->devnum, dev->regs);
- reg = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- reg = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ reg = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ }
/* here, we are in iddle state */
@@ -4480,19 +4754,25 @@ init_device (struct Rts8891_Device *dev)
dev->regs[0x12] = 0xff;
dev->regs[0x13] = 0x20;
sanei_rts88xx_write_regs (dev->devnum, 0x12, dev->regs + 0x12, 2);
- dev->regs[0x14] = 0xf8;
- dev->regs[0x15] = 0x28;
- sanei_rts88xx_write_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x14] = 0xf8;
+ dev->regs[0x15] = 0x28;
+ sanei_rts88xx_write_regs (dev->devnum, 0x14, dev->regs + 0x14, 2);
+ }
reg = 0;
sanei_rts88xx_write_control (dev->devnum, 0x00);
sanei_rts88xx_write_control (dev->devnum, 0x00);
sanei_rts88xx_set_status (dev->devnum, dev->regs, 0x28, 0x28);
- reg = 0x80;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x80;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ dev->regs[LAMP_REG] = 0xad;
+ }
dev->regs[0x8b] = 0xff;
dev->regs[0x8c] = 0x3f;
- dev->regs[LAMP_REG] = 0xad;
rts8891_write_all (dev->devnum, dev->regs, dev->reg_count);
set_lamp_brightness (dev, 0);
@@ -4601,7 +4881,7 @@ detect_device (struct Rts8891_Device *dev)
/**
* Do dark calibration. We scan a well defined area until average pixel value
* of the black area is about 0x03 for each color channel. This calibration is
- * currently done at 75 dpi regardless of the final scan dpi.
+ * currently done at 75 dpi (100 for UMAX) regardless of the final scan dpi.
*/
static SANE_Status
dark_calibration (struct Rts8891_Device *dev, int mode, int light)
@@ -4611,7 +4891,7 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
int ro = 250, tro = 250, bro = 0;
int bo = 250, tbo = 250, bbo = 0;
int go = 250, tgo = 250, bgo = 0;
- unsigned char image[CALIBRATION_SIZE];
+ unsigned char image[dev->model->calibration_width * 3];
float global, ra, ga, ba;
int num = 0;
char name[32];
@@ -4628,7 +4908,15 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
/* set up starting values */
sanei_rts88xx_set_gain (dev->regs, 0, 0, 0);
- sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 4, 4 + CALIBRATION_WIDTH);
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ /* UMAX calibratration area is 1500 but the width is halved by reg. 0x7a */
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 2, 2 + 2 * dev->model->calibration_width);
+ }
+ else
+ {
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 4, 4 + dev->model->calibration_width);
+ }
sanei_rts88xx_set_status (dev->devnum, dev->regs, mode, light);
@@ -4743,6 +5031,51 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
dev->regs[0xef] = 0x02; /* 0x03 */
dev->regs[0xf0] = 0xa8; /* 0x70 */
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x33] = 0x01;
+ dev->regs[0x35] = 0x47;
+ dev->regs[0x40] = 0xa0;
+ dev->regs[0x7a] = 0x02;
+ dev->regs[0x8d] = 0x46;
+ dev->regs[0xc0] = 0x66;
+ dev->regs[0xc1] = 0xc0;
+ dev->regs[0xc2] = 0x7f;
+ dev->regs[0xc3] = 0x99;
+ dev->regs[0xc4] = 0x3f;
+ dev->regs[0xc5] = 0x80;
+ dev->regs[0xc6] = 0x66;
+ dev->regs[0xc7] = 0xc0;
+ dev->regs[0xc8] = 0x7f;
+ dev->regs[0xc9] = 0xff;
+ dev->regs[0xcb] = 0x00;
+ dev->regs[0xcc] = 0x00;
+ dev->regs[0xcd] = 0x80;
+ dev->regs[0xce] = 0xff;
+ dev->regs[0xcf] = 0xe3;
+ dev->regs[0xd0] = 0xe8;
+ dev->regs[0xd1] = 0xee;
+ dev->regs[0xd2] = 0x0f;
+ dev->regs[0xd3] = 0x0b;
+ dev->regs[0xd4] = 0x0d;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xe2] = 0x07;
+
+ /*dev->regs[0xe5] = 0x1b; 28=40
+ dev->regs[0xe6] = 0x01; */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 283);
+
+ dev->regs[0xe7] = 0x4b;
+ dev->regs[0xe9] = 0x40;
+ dev->regs[0xea] = 0x7d;
+ dev->regs[0xeb] = 0x04;
+ dev->regs[0xec] = 0x18;
+ dev->regs[0xed] = 0x85;
+ dev->regs[0xee] = 0x02;
+ dev->regs[0xef] = 0x0a;
+ dev->regs[0xf0] = 0x81;
+ dev->regs[0xf1] = 0x01;
+ }
/* we loop scanning a 637 (1911 bytes) pixels wide area in color mode
* until each black average reaches the desired value */
@@ -4757,7 +5090,7 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
/* do scan */
status =
rts8891_simple_scan (dev->devnum, dev->regs, dev->reg_count, 0x02,
- CALIBRATION_SIZE, image);
+ dev->model->calibration_width * 3, image);
if (status != SANE_STATUS_GOOD)
{
DBG (DBG_error, "dark_calibration: failed to scan\n");
@@ -4768,12 +5101,13 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
if (DBG_LEVEL >= DBG_io2)
{
sprintf (name, "dark%03d.pnm", num);
- write_rgb_data (name, image, CALIBRATION_WIDTH, 1);
+ write_rgb_data (name, image, dev->model->calibration_width, 1);
num++;
}
/* we now compute the average of red pixels from the first 15 pixels */
global = average_area (SANE_TRUE, image, 15, 1, &ra, &ga, &ba);
+// global = average_area (SANE_TRUE, image, dev->model->calibration_width, 1, &ra, &ga, &ba);
DBG (DBG_info,
"dark_calibration: global=%.2f, channels=(%.2f,%.2f,%.2f)\n",
global, ra, ga, ba);
@@ -4855,6 +5189,133 @@ dark_calibration (struct Rts8891_Device *dev, int mode, int light)
}
/*
+ * wait until lamp is warmed up enough. We repeat 6 single-line scans at
+ * 1200dpi until the average value change between first and last is below
+ * 0.3 %
+ */
+static SANE_Status
+lamp_warm_up (struct Rts8891_Device *dev, int mode, int light)
+{
+ SANE_Status status = SANE_STATUS_GOOD;
+ int num = 0;
+ char name[32];
+ unsigned char image[9600 * 3];
+ float global, ra, ga, ba, first = 0;
+ int seq = 1;
+#define LAMP_MAX_CYCLES 360 /* max. 2 minutes (120s/2s * 6) */
+
+ DBG (DBG_proc, "lamp_warm_up: start\n");
+
+ sanei_rts88xx_set_gain (dev->regs, 0, 0, 0);
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 400, 400 + 9600); /* why 400? */
+
+ sanei_rts88xx_set_status (dev->devnum, dev->regs, mode, light);
+
+ dev->regs[0x00] = 0xe5; /* scan */
+ dev->regs[0x32] = 0x00;
+ dev->regs[0x33] = 0x03;
+ dev->regs[0x35] = 0x0e;
+ dev->regs[0x36] = 0x22;
+ dev->regs[0x3a] = 0x0e;
+ dev->regs[0x40] = 0x20;
+
+ dev->regs[0x7a] = 0x01;
+
+ dev->regs[0x8d] = 0x84;
+ dev->regs[0x8e] = 0x63;
+
+ dev->regs[0xb2] = 0x02;
+
+ dev->regs[0xc0] = 0x1f;
+ dev->regs[0xc1] = 0x00;
+ dev->regs[0xc2] = 0xfe;
+ dev->regs[0xc3] = 0xe0;
+ dev->regs[0xc4] = 0xff;
+ dev->regs[0xc5] = 0x01;
+ dev->regs[0xc6] = 0x1f;
+ dev->regs[0xc7] = 0x00;
+ dev->regs[0xc8] = 0xfe;
+ dev->regs[0xc9] = 0x00;
+ dev->regs[0xca] = 0x00;
+ dev->regs[0xcb] = 0x1c;
+ dev->regs[0xcc] = 0x00;
+ dev->regs[0xcd] = 0xc0;
+ dev->regs[0xce] = 0x01;
+ dev->regs[0xcf] = 0xeb;
+ dev->regs[0xd0] = 0xed;
+ dev->regs[0xd1] = 0xe1;
+ dev->regs[0xd2] = 0x02;
+ dev->regs[0xd3] = 0x12;
+ dev->regs[0xd4] = 0xf4;
+ dev->regs[0xd5] = 0x86;
+ dev->regs[0xd6] = 0x1b;
+ dev->regs[0xd7] = 0x10;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xd9] = 0x2d;
+ dev->regs[0xda] = 0x00;
+ dev->regs[0xe2] = 0x00;
+
+ /*dev->regs[0xe5] = 0xf7;
+ dev->regs[0xe6] = 0x2a; */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 0x2af7);
+
+ dev->regs[0xe7] = 0x00;
+ dev->regs[0xe8] = 0x00;
+ dev->regs[0xe9] = 0x00;
+ dev->regs[0xea] = 0x00;
+ dev->regs[0xeb] = 0x00;
+ dev->regs[0xec] = 0x00;
+ dev->regs[0xed] = 0x00;
+ dev->regs[0xef] = 0x00;
+ dev->regs[0xf0] = 0x00;
+ dev->regs[0xf2] = 0x00;
+
+ /* scan 9600 pixels wide area in color mode 6 times
+ * if average value difference between first and last scan is 0.3% or greater,
+ * retry after 2 seconds */
+ sanei_rts88xx_set_status (dev->devnum, dev->regs, mode, light);
+ while (seq < LAMP_MAX_CYCLES)
+ {
+ /* do scan */
+ status =
+ rts8891_simple_scan (dev->devnum, dev->regs, dev->reg_count, 0x12,
+ 9600 * 3, image);
+ if (status != SANE_STATUS_GOOD)
+ {
+ DBG (DBG_error, "lamp_warm_up: failed to scan\n");
+ return status;
+ }
+
+ /* save scanned picture for data debugging */
+ if (DBG_LEVEL >= DBG_io2)
+ {
+ sprintf (name, "warm%03d.pnm", num);
+ write_rgb_data (name, image, 9600, 1);
+ num++;
+ }
+ global = average_area (SANE_TRUE, image, 9600, 1, &ra, &ga, &ba);
+ if (seq % 6 == 1)
+ first = global;
+ if (seq % 6 == 0)
+ {
+ DBG (DBG_info, "lamp_warm_up: change=%f\n", global / first);
+ if (global / first < 1.003)
+ break;
+ sleep(2);
+ }
+ seq++;
+ }
+ if (seq >= LAMP_MAX_CYCLES)
+ {
+ DBG (DBG_error0, "lamp_warm_up: timed out waiting for lamp to stabilize\n");
+ /* continue anyway */
+ }
+
+ DBG (DBG_proc, "lamp_warm_up: exit\n");
+ return status;
+}
+
+/*
* do gain calibration. We do scans until averaged values of the area match
* the target code. We're doing a dichotomy again.
*/
@@ -4871,9 +5332,9 @@ gain_calibration (struct Rts8891_Device *dev, int mode, int light)
int trg, tbg, tgg, bgg, brg, bbg;
int num = 0;
char name[32];
- int width = CALIBRATION_WIDTH;
- int length = CALIBRATION_SIZE;
- unsigned char image[CALIBRATION_SIZE];
+ int width = dev->model->calibration_width;
+ int length = dev->model->calibration_width * 3;
+ unsigned char image[dev->model->calibration_width * 3];
int pass = 0;
int timing=0;
@@ -4882,7 +5343,10 @@ gain_calibration (struct Rts8891_Device *dev, int mode, int light)
DBG (DBG_proc, "gain_calibration: start\n");
/* set up starting values */
- sanei_rts88xx_set_scan_area (dev->regs, 1, 2, xstart, xstart + width);
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, xstart, xstart + 2 * width);
+ else
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, xstart, xstart + width);
sanei_rts88xx_set_offset (dev->regs, dev->red_offset, dev->green_offset,
dev->blue_offset);
@@ -5023,6 +5487,54 @@ gain_calibration (struct Rts8891_Device *dev, int mode, int light)
dev->regs[0x87] = 0x00;
dev->regs[0x88] = 0x06;
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x33] = 0x01;
+ dev->regs[0x35] = 0x47;
+ dev->regs[0x40] = 0xa0;
+ dev->regs[0x7a] = 0x02;
+ timing = 0x32;
+ dev->regs[0x8d] = 0x4f;
+ dev->regs[0xc0] = 0x66;
+ dev->regs[0xc1] = 0xc0;
+ dev->regs[0xc2] = 0x7f;
+ dev->regs[0xc3] = 0x99;
+ dev->regs[0xc4] = 0x3f;
+ dev->regs[0xc5] = 0x80;
+ dev->regs[0xc6] = 0x66;
+ dev->regs[0xc7] = 0xc0;
+ dev->regs[0xc8] = 0x7f;
+ dev->regs[0xc9] = 0xff;
+ dev->regs[0xcb] = 0x00;
+ dev->regs[0xcc] = 0x00;
+ dev->regs[0xcd] = 0x80;
+ dev->regs[0xce] = 0xff;
+ dev->regs[0xcf] = 0xe3;
+ dev->regs[0xd0] = 0xe8;
+ dev->regs[0xd1] = 0xee;
+ dev->regs[0xd2] = 0x0f;
+ dev->regs[0xd3] = 0x0b;
+ dev->regs[0xd4] = 0x0d;
+ dev->regs[0xd7] = 0x10;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xda] = 0x00;
+ dev->regs[0xe2] = 0x07;
+
+ /*dev->regs[0xe5] = 0x1b; 28=40
+ dev->regs[0xe6] = 0x01; */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 283);
+
+ dev->regs[0xe7] = 0x4b;
+ dev->regs[0xe9] = 0x40;
+ dev->regs[0xea] = 0x7d;
+ dev->regs[0xeb] = 0x04;
+ dev->regs[0xec] = 0x18;
+ dev->regs[0xed] = 0x85;
+ dev->regs[0xee] = 0x02;
+ dev->regs[0xef] = 0x0a;
+ dev->regs[0xf0] = 0x81;
+ dev->regs[0xf1] = 0x01;
+ }
SET_DOUBLE (dev->regs, TIMING_REG, timing);
SET_DOUBLE (dev->regs, TIMING1_REG, timing+1);
SET_DOUBLE (dev->regs, TIMING2_REG, timing+2);
@@ -5039,9 +5551,18 @@ gain_calibration (struct Rts8891_Device *dev, int mode, int light)
bgg = 0;
bbg = 0;
/* top values */
- trg = 0x1f;
- tgg = 0x1f;
- tbg = 0x1f;
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ trg = 0x3f;
+ tgg = 0x3f;
+ tbg = 0x3f;
+ }
+ else
+ {
+ trg = 0x1f;
+ tgg = 0x1f;
+ tbg = 0x1f;
+ }
/* loop on gain calibration until we find until we find stable value
* or we do more than 20 tries */
@@ -5228,7 +5749,7 @@ offset_calibration (struct Rts8891_Device *dev, int mode, int light)
int ro = 250, tro = 250, bro = 123;
int go = 250, tgo = 250, bgo = 123;
int bo = 250, tbo = 250, bbo = 123;
- unsigned char image[CALIBRATION_SIZE];
+ unsigned char image[dev->model->calibration_width * 3];
float global, ra, ga, ba;
int num = 0;
char name[32];
@@ -5239,7 +5760,10 @@ offset_calibration (struct Rts8891_Device *dev, int mode, int light)
/* gains from previous step are a little higher than the one used */
sanei_rts88xx_set_gain (dev->regs, dev->red_gain, dev->green_gain,
dev->blue_gain);
- sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 4, 4 + CALIBRATION_WIDTH);
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 4, 4 + 2 * dev->model->calibration_width);
+ else
+ sanei_rts88xx_set_scan_area (dev->regs, 1, 2, 4, 4 + dev->model->calibration_width);
dev->regs[0x32] = 0x00;
dev->regs[0x33] = 0x03;
@@ -5341,6 +5865,52 @@ offset_calibration (struct Rts8891_Device *dev, int mode, int light)
dev->regs[0xef] = 0x02; /* 0x03 */
dev->regs[0xf0] = 0xa8; /* 0x70 */
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ dev->regs[0x33] = 0x01;
+ dev->regs[0x35] = 0x47;
+ dev->regs[0x40] = 0xa0;
+ dev->regs[0x7a] = 0x02;
+ /* timing = 0x32; */
+ dev->regs[0x8d] = 0x46;
+ dev->regs[0xc0] = 0x66;
+ dev->regs[0xc1] = 0xc0;
+ dev->regs[0xc2] = 0x7f;
+ dev->regs[0xc3] = 0x99;
+ dev->regs[0xc4] = 0x3f;
+ dev->regs[0xc5] = 0x80;
+ dev->regs[0xc6] = 0x66;
+ dev->regs[0xc7] = 0xc0;
+ dev->regs[0xc8] = 0x7f;
+ dev->regs[0xc9] = 0xff;
+ dev->regs[0xcb] = 0x00;
+ dev->regs[0xcc] = 0x00;
+ dev->regs[0xcd] = 0x80;
+ dev->regs[0xce] = 0xff;
+ dev->regs[0xcf] = 0xe3;
+ dev->regs[0xd0] = 0xe8;
+ dev->regs[0xd1] = 0xee;
+ dev->regs[0xd2] = 0x0f;
+ dev->regs[0xd3] = 0x0b;
+ dev->regs[0xd4] = 0x0d;
+ dev->regs[0xd8] = 0xa6;
+ dev->regs[0xe2] = 0x07;
+
+ /*dev->regs[0xe5] = 0x1b; 28=40
+ dev->regs[0xe6] = 0x01; */
+ SET_DOUBLE (dev->regs, EXPOSURE_REG, 283);
+
+ dev->regs[0xe7] = 0x4b;
+ dev->regs[0xe9] = 0x40;
+ dev->regs[0xea] = 0x7d;
+ dev->regs[0xeb] = 0x04;
+ dev->regs[0xec] = 0x18;
+ dev->regs[0xed] = 0x85;
+ dev->regs[0xee] = 0x02;
+ dev->regs[0xef] = 0x0a;
+ dev->regs[0xf0] = 0x81;
+ dev->regs[0xf1] = 0x01;
+ }
/* we loop scanning a 637 (1911 bytes) pixels wide area in color mode until each black average
* reaches the desired value */
@@ -5351,13 +5921,13 @@ offset_calibration (struct Rts8891_Device *dev, int mode, int light)
sanei_rts88xx_set_offset (dev->regs, ro, go, bo);
sanei_rts88xx_set_status (dev->devnum, dev->regs, mode, light);
rts8891_simple_scan (dev->devnum, dev->regs, dev->reg_count, 0x02,
- CALIBRATION_SIZE, image);
+ dev->model->calibration_width * 3, image);
/* save scanned picture for data debugging */
if (DBG_LEVEL >= DBG_io2)
{
sprintf (name, "offset%03d.pnm", num);
- write_rgb_data (name, image, CALIBRATION_WIDTH, 1);
+ write_rgb_data (name, image, dev->model->calibration_width, 1);
num++;
}
@@ -5465,7 +6035,7 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
*status1 |= 0x08;
}
- /* we default to 75 dpi then override needed registers */
+ /* we default to 75 dpi (100 for UMAX) then override needed registers */
timing=0x00b0;
regs[0x32] = 0x20;
regs[0x33] = 0x83;
@@ -5543,10 +6113,25 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
regs[0xe2] = 0x02; /* 0x05 */
exposure=443;
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ regs[0x36] = 0x29;
+ regs[0x7a] = 0x02;
+ timing = 0x32;
+ regs[0x8d] = 0x4f;
+ regs[0xe2] = 0x00;
+ /* regs[0xe5] = 0xdf;
+ regs[0xe6] = 0x08; 8df =2271 */
+ exposure=2271;
+ regs[0xee] = 00;
+ regs[0xf1] = 00;
+ }
switch (dev->xdpi)
{
case 75:
+ case 100:
+ case 200:
break;
case 150:
@@ -5796,6 +6381,37 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
"setup_shading_calibration: setting up SENSOR_TYPE_4400_BARE for 300 dpi\n");
return SANE_STATUS_INVAL;
break;
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io,
+ "setup_shading_calibration: setting up SENSOR_TYPE_UMAX for 300 dpi\n");
+ regs[0x36] = 0x2c;
+ regs[0x40] = 0x20;
+ regs[0x7a] = 0x01;
+ regs[0x8d] = 0x12;
+ regs[0xc0] = 0x87;
+ regs[0xc1] = 0x07;
+ regs[0xc2] = 0xf8;
+ regs[0xc3] = 0x78;
+ regs[0xc4] = 0xf8;
+ regs[0xc5] = 0x07;
+ regs[0xc6] = 0x87;
+ regs[0xc7] = 0x07;
+ regs[0xc8] = 0xf8;
+ regs[0xc9] = 0xfc;
+ regs[0xca] = 0x0f;
+ regs[0xcd] = 0x00;
+ regs[0xce] = 0x80;
+ regs[0xcf] = 0xe2;
+ regs[0xd0] = 0xe4;
+ regs[0xd1] = 0xea;
+ regs[0xd2] = 0x0b;
+ regs[0xd3] = 0x17;
+ regs[0xd4] = 0x01;
+ regs[0xe2] = 0x07;
+ /* regs[0xe5] = 0xc9;
+ regs[0xe6] = 0x01; 0x1c9=457 */
+ exposure=457;
+ break;
}
break;
@@ -5950,6 +6566,46 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
"setup_shading_calibration: setting up SENSOR_TYPE_4400_BARE for 600 dpi\n");
return SANE_STATUS_INVAL;
break;
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io,
+ "setup_shading_calibration: setting up SENSOR_TYPE_UMAX for 600 dpi\n");
+ *status1 = 0x20;
+
+ regs[0x36] = 0x2c;
+ regs[0x40] = 0x20;
+ regs[0x7a] = 0x01;
+ regs[0x8d] = 0x24;
+ regs[0xc0] = 0xff;
+ regs[0xc1] = 0x07;
+ regs[0xc2] = 0x80;
+ regs[0xc3] = 0x00;
+ regs[0xc4] = 0xf8;
+ regs[0xc5] = 0x7f;
+ regs[0xc6] = 0xff;
+ regs[0xc7] = 0x07;
+ regs[0xc8] = 0x80;
+ regs[0xc9] = 0x00;
+ regs[0xca] = 0x0f;
+ regs[0xcc] = 0xfe;
+ regs[0xcd] = 0x00;
+ regs[0xce] = 0x00;
+ regs[0xcf] = 0xd7;
+ regs[0xd0] = 0x61;
+ regs[0xd1] = 0xaa;
+ regs[0xd2] = 0x0b;
+ regs[0xd3] = 0x03;
+ regs[0xd4] = 0x05;
+ regs[0xd5] = 0x86;
+ regs[0xd6] = 0x1b;
+ regs[0xd7] = 0x10;
+ regs[0xd8] = 0xa6;
+ regs[0xd9] = 0x2d;
+
+ regs[0xe2] = 0x07;
+ /* regs[0xe5] = 0xae;
+ regs[0xe6] = 0x02;*/
+ exposure=0x02ae;
+ break;
}
break;
@@ -6100,6 +6756,44 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
"setup_shading_calibration: setting up SENSOR_TYPE_4400_BARE for 1200 dpi\n");
return SANE_STATUS_INVAL;
break;
+
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io,
+ "setup_shading_calibration: setting up SENSOR_TYPE_UMAX for 1200 dpi\n");
+ *status1 = 0x20;
+ regs[0x36] = 0x2c;
+ regs[0x40] = 0x20;
+ regs[0x7a] = 0x01;
+ regs[0x8d] = 0x48;
+
+ regs[0xc0] = 0x1f;
+ regs[0xc1] = 0x00;
+ regs[0xc2] = 0xfe;
+ regs[0xc3] = 0xe0;
+ regs[0xc4] = 0xff;
+ regs[0xc5] = 0x01;
+ regs[0xc6] = 0x1f;
+ regs[0xc7] = 0x00;
+ regs[0xc8] = 0xfe;
+ regs[0xc9] = 0x00;
+ regs[0xca] = 0x00;
+ regs[0xcb] = 0x1c;
+ regs[0xcc] = 0x00;
+ regs[0xcd] = 0xc0;
+ regs[0xce] = 0x01;
+ regs[0xcf] = 0xeb;
+ regs[0xd0] = 0xed;
+ regs[0xd1] = 0xe1;
+ regs[0xd2] = 0x02;
+ /* regs[0xd3] = 0x12; */
+ regs[0xd4] = 0xf4;
+ regs[0xd5] = 0x86;
+ regs[0xd6] = 0x1b;
+ regs[0xe2] = 0x07;
+ /* regs[0xe5] = 0x5e;
+ regs[0xe6] = 0x05; 0x55e=1374 */
+ exposure=1374;
+ break;
}
break;
}
@@ -6113,7 +6807,10 @@ setup_shading_calibration (struct Rts8891_Device *dev, int mode, int *light, int
/* in logs, the driver use the computed offset minus 2 */
sanei_rts88xx_set_offset (regs, dev->red_offset, dev->green_offset, dev->blue_offset);
sanei_rts88xx_set_gain (regs, dev->red_gain, dev->green_gain, dev->blue_gain);
- sanei_rts88xx_set_scan_area (regs, 1, 1 + lines, dev->xstart, dev->xstart + dev->pixels);
+ if (dev->sensor == SENSOR_TYPE_UMAX && dev->xdpi == 100)
+ sanei_rts88xx_set_scan_area (regs, 1, 1 + lines, dev->xstart, dev->xstart + 2 * dev->pixels);
+ else
+ sanei_rts88xx_set_scan_area (regs, 1, 1 + lines, dev->xstart, dev->xstart + dev->pixels);
DBG (DBG_proc, "setup_shading_calibration: exit\n");
return status;
@@ -6153,7 +6850,10 @@ shading_calibration (struct Rts8891_Device *dev, SANE_Bool color, int mode, int
}
if (dev->shading_data != NULL)
free (dev->shading_data);
- dev->shading_data = (unsigned char *) malloc (dev->bytes_per_line);
+ if (dev->sensor == SENSOR_TYPE_UMAX && dev->xdpi == 100)
+ dev->shading_data = (unsigned char *) malloc (2 * dev->bytes_per_line);
+ else
+ dev->shading_data = (unsigned char *) malloc (dev->bytes_per_line);
if (dev->shading_data == NULL)
{
free (image);
@@ -6217,7 +6917,13 @@ shading_calibration (struct Rts8891_Device *dev, SANE_Bool color, int mode, int
{
sum += image[x + y * width];
}
- dev->shading_data[x] = sum / (lines - 13);
+ if (dev->sensor == SENSOR_TYPE_UMAX && dev->xdpi == 100)
+ {
+ dev->shading_data[2 * x] = sum / (lines - 13);
+ dev->shading_data[2 * x + 1] = sum / (lines - 13);
+ }
+ else
+ dev->shading_data[x] = sum / (lines - 13);
}
if (DBG_LEVEL >= DBG_io2)
{
@@ -6292,10 +6998,17 @@ send_calibration_data (struct Rts8891_Session *session)
/* 675 pixels at 75 DPI, 16 bits values, 3 color channels */
/* 5400 pixels at max sensor 600 dpi */
/* 3 16bits 256 value gamma tables plus start/end markers */
- /* must multiple of 32 */
- data_size = (675 * dev->xdpi) / 75;
-
- width = dev->pixels;
+ /* must multple of 32 */
+ if (dev->sensor == SENSOR_TYPE_UMAX && dev->xdpi == 100)
+ {
+ data_size = (675 * 2 * dev->xdpi) / 75;
+ width = 2 * dev->pixels;
+ }
+ else
+ {
+ data_size = (675 * dev->xdpi) / 75;
+ width = dev->pixels;
+ }
/* effective data calibration size */
size = data_size * 2 * 3 + 3 * (512 + 2);
@@ -6563,7 +7276,11 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
DBG (DBG_warn,
"setup_scan_registers: native gray modes not implemented for this model, failure expected\n");
}
- sanei_rts88xx_set_scan_area (regs, dev->ystart, dev->ystart + dev->lines, dev->xstart, dev->xstart + dev->pixels);
+ DBG (DBG_info, "setup_scan_registers: dev->xdpi = %d\n", dev->xdpi);
+ if (dev->sensor == SENSOR_TYPE_UMAX && dev->xdpi == 100)
+ sanei_rts88xx_set_scan_area (regs, dev->ystart, dev->ystart + dev->lines, dev->xstart, dev->xstart + 2 * dev->pixels);
+ else
+ sanei_rts88xx_set_scan_area (regs, dev->ystart, dev->ystart + dev->lines, dev->xstart, dev->xstart + dev->pixels);
DBG (DBG_info, "setup_scan_registers: xstart=%d, pixels=%d\n", dev->xstart, dev->pixels);
DBG (DBG_info, "setup_scan_registers: ystart=%d, lines =%d\n", dev->ystart, dev->lines);
@@ -6590,7 +7307,7 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
*status2 = 0x3b;
}
- /* default to 75 dpi color scan */
+ /* default to 75 dpi (100 for UMAX) color scan */
regs[0x0b] = 0x70;
regs[0x0c] = 0x00;
regs[0x0d] = 0x00;
@@ -6923,9 +7640,73 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
regs[0xf0] = 0xa8; /* 0x00 */
regs[0xf2] = 0x01; /* 0x00 */
}
+ if (dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ regs[0x14] = 0xf0;
+ regs[0x16] = 0x00;
+ regs[0x23] = 0x00;
+ regs[0x32] = 0x80;
+ regs[0x33] = 0x81;
+ regs[0x40] = 0xa4;
+ regs[0x7a] = 0x02;
+ timing=0x0182;
+ regs[0x85] = 0x10;
+ regs[0x86] = 0x14;
+ regs[0x87] = 0x20;
+ regs[0x88] = 0x22;
+ regs[0x8d] = 0x4f;
+ regs[0xc0] = 0x66;
+ regs[0xc1] = 0xc0;
+ regs[0xc2] = 0x7f;
+ regs[0xc3] = 0x99;
+ regs[0xc4] = 0x3f;
+ regs[0xc5] = 0x80;
+ regs[0xc6] = 0x66;
+ regs[0xc7] = 0xc0;
+ regs[0xc8] = 0x7f;
+ regs[0xc9] = 0xff;
+ regs[0xcb] = 0x00;
+ regs[0xcc] = 0x00;
+ regs[0xcd] = 0x80;
+ regs[0xce] = 0xff;
+ regs[0xcf] = 0xe3;
+ regs[0xd0] = 0xe8;
+ regs[0xd1] = 0xee;
+ regs[0xd2] = 0x0f;
+ /*regs[0xd3] = 0x0b;*/
+ regs[0xd4] = 0x0d;
+
+ regs[0xd6] = 0x0f;
+ regs[0xd7] = 0x10; /* 4111 */
+
+ regs[0xd8] = 0xa6; /* 0xa610=42512 */
+
+ regs[0xd9] = 0x2d;
+ regs[0xda] = 0x00;
+ regs[0xe2] = 0x07;
+ regs[0xe3] = 0xbd;
+ regs[0xe4] = 0x08;
+
+ /* regs[0xe5] = 0x1b;
+ regs[0xe6] = 0x01; exposure time 0x011b=283 */
+ exposure=283;
+
+ regs[0xe7] = 0x4b;
+ regs[0xe9] = 0x40;
+ regs[0xea] = 0x7d;
+ regs[0xeb] = 0x04;
+ regs[0xec] = 0x18;
+ regs[0xed] = 0x85;
+ regs[0xee] = 0x02;
+ regs[0xef] = 0x0a;
+ regs[0xf0] = 0x81;
+ regs[0xf1] = 0x01;
+ }
switch (dev->xdpi)
{
case 75:
+ case 100:
+ case 200:
break;
case 150:
regs[0x35] = 0x45;
@@ -7042,6 +7823,48 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
regs[0xf0] = 0x02;
regs[0xf2] = 0x00;
break;
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_UMAX for 150 dpi\n");
+ regs[0x32] = 0x20;
+ regs[0x33] = 0x83;
+ regs[0x40] = 0x2c;
+ regs[0x7a] = 0x01;
+ regs[0x8d] = 0x09;
+ regs[0xc1] = 0x06;
+ regs[0xc2] = 0x7e;
+ regs[0xc4] = 0xf9;
+ regs[0xc5] = 0x81;
+ regs[0xc7] = 0x06;
+ regs[0xc8] = 0x7e;
+ regs[0xca] = 0x0f;
+ regs[0xcb] = 0xc0;
+ regs[0xcd] = 0x00;
+ regs[0xce] = 0x30;
+ regs[0xcf] = 0xe4;
+ regs[0xd0] = 0xe6;
+ regs[0xd1] = 0xea;
+ regs[0xd2] = 0x0b;
+ regs[0xd3] = 0x17;
+ regs[0xd4] = 0x01;
+ regs[0xe2] = 0x0f;
+ regs[0xe3] = 0x89;
+ regs[0xe4] = 0x03;
+ /* regs[0xe5] = 0xaa;*/
+ exposure = 170;
+
+ regs[0xe7] = 0x00;
+ regs[0xe8] = 0x79;
+ regs[0xe9] = 0x01;
+ regs[0xea] = 0x0b;
+ regs[0xeb] = 0x58;
+ regs[0xec] = 0x01;
+ regs[0xed] = 0x04;
+ regs[0xee] = 0xbc;
+ regs[0xef] = 0x00;
+ regs[0xf0] = 0x03;
+ regs[0xf1] = 0x00;
+ regs[0xf2] = 0x00;
+ break;
}
break;
@@ -7194,6 +8017,59 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
regs[0xf0] = 0x00;
regs[0xf2] = 0x00;
break;
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_UMAX for 300 dpi\n");
+ regs[0x32] = 0x20;
+ regs[0x33] = 0x83;
+ regs[0x35] = 0x0e;
+ regs[0x3a] = 0x0e;
+ regs[0x40] = 0x2c;
+ regs[0x7a] = 0x01;
+ timing=0x022b;
+ regs[0x85] = 0x18;
+ regs[0x86] = 0x1b;
+ regs[0x87] = 0x30;
+ regs[0x88] = 0x30;
+ regs[0x8d] = 0x12;
+ regs[0xc0] = 0x87;
+ regs[0xc1] = 0x07;
+ regs[0xc2] = 0xf8;
+ regs[0xc3] = 0x78;
+ regs[0xc4] = 0xf8;
+ regs[0xc5] = 0x07;
+ regs[0xc6] = 0x87;
+ regs[0xc7] = 0x07;
+ regs[0xc8] = 0xf8;
+ regs[0xc9] = 0xfc;
+ regs[0xca] = 0x0f;
+ regs[0xcd] = 0x00;
+ regs[0xce] = 0x80;
+ regs[0xcf] = 0xe2;
+ regs[0xd0] = 0xe4;
+ regs[0xd1] = 0xea;
+ regs[0xd2] = 0x0b;
+ regs[0xd3] = 0x17;
+ regs[0xd4] = 0x01;
+ regs[0xe3] = 0x00;
+ regs[0xe4] = 0x00;
+ /* regs[0xe5] = 0xc9;
+ regs[0xe6] = 0x01; */
+ exposure = 457;
+
+ regs[0xe7] = 0x00;
+ regs[0xe8] = 0x00;
+ regs[0xe9] = 0x00;
+ regs[0xea] = 0x00;
+ regs[0xeb] = 0x00;
+ regs[0xec] = 0x00;
+ regs[0xed] = 0x00;
+ regs[0xee] = 0x00;
+ regs[0xef] = 0x00;
+ regs[0xf0] = 0x00;
+ regs[0xf1] = 0x00;
+ regs[0xf2] = 0x00;
+
+ break;
}
break;
case 600:
@@ -7391,6 +8267,75 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_4400_BARE for 600 dpi\n");
return SANE_STATUS_INVAL;
break;
+
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_UMAX for 600 dpi\n");
+/* *status1 = 0x10;
+ *status2 = 0x23;*/
+
+ regs[0x32] = 0x20;
+ regs[0x33] = 0x83;
+ regs[0x34] = 0xf0;
+ regs[0x35] = 0x1b;
+ regs[0x36] = 0x29;
+ regs[0x3a] = 0x1b;
+ regs[0x40] = 0x2c;
+ regs[0x7a] = 0x01;
+ regs[0x85] = 0x30;
+ regs[0x86] = 0x30;
+ regs[0x87] = 0x60;
+ regs[0x88] = 0x5a;
+ regs[0x8d] = 0x24;
+
+ regs[0xc0] = 0xff;
+ regs[0xc1] = 0x07;
+ regs[0xc2] = 0x80;
+ regs[0xc3] = 0x00;
+ regs[0xc4] = 0xf8;
+ regs[0xc5] = 0x7f;
+ regs[0xc6] = 0xff;
+ regs[0xc7] = 0x07;
+ regs[0xc8] = 0x80;
+ regs[0xc9] = 0x00;
+ regs[0xca] = 0x0f;
+
+ regs[0xcc] = 0xfe;
+ regs[0xcd] = 0x00;
+ regs[0xce] = 0x00;
+ regs[0xcf] = 0xd7;
+ regs[0xd0] = 0x61;
+ regs[0xd1] = 0xaa;
+ regs[0xd2] = 0x0b;
+ regs[0xd3] = 0x03;
+ regs[0xd4] = 0x05;
+ regs[0xd5] = 0x86;
+ regs[0xd6] = 0x1b;
+ regs[0xd7] = 0x10;
+ regs[0xd8] = 0xa6;
+ regs[0xd9] = 0x2d;
+
+ regs[0xe0] = 0x00;
+ regs[0xe1] = 0x00;
+ regs[0xe2] = 0x01;
+ regs[0xe3] = 0x00;
+ regs[0xe4] = 0x00;
+/* regs[0xe5] = 0xbd;
+ regs[0xe6] = 0x0a;*/
+ exposure=0x0abd;
+ regs[0xe7] = 0x00;
+ regs[0xe8] = 0x00;
+ regs[0xe9] = 0x00;
+ regs[0xea] = 0x00;
+ regs[0xeb] = 0x00;
+ regs[0xec] = 0x00;
+ regs[0xed] = 0x00;
+ regs[0xee] = 0x00;
+ regs[0xef] = 0x00;
+ regs[0xf0] = 0x00;
+ regs[0xf1] = 0x00;
+ regs[0xf2] = 0x00;
+ timing=0x0425;
+ break;
}
break;
case 1200:
@@ -7584,6 +8529,68 @@ setup_scan_registers (struct Rts8891_Session *session, SANE_Byte *status1, SANE_
DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_4400_BARE for 1200 dpi\n");
return SANE_STATUS_INVAL;
break;
+
+ case SENSOR_TYPE_UMAX:
+ DBG (DBG_io, "setup_scan_registers: setting up SENSOR_TYPE_UMAX for 1200 dpi\n");
+ regs[0x32] = 0x20;
+ regs[0x33] = 0x83;
+ regs[0x34] = 0xf0;
+ regs[0x35] = 0x0e;
+ regs[0x36] = 0x29;
+ regs[0x3a] = 0x0e;
+ regs[0x40] = 0x2c;
+ regs[0x7a] = 0x01;
+ timing=0x081a;
+ regs[0x85] = 0x60;
+ regs[0x86] = 0x5a;
+ regs[0x87] = 0xc0;
+ regs[0x88] = 0xae;
+ regs[0x8d] = 0x48;
+
+ regs[0xc0] = 0x1f;
+ regs[0xc1] = 0x00;
+ regs[0xc2] = 0xfe;
+ regs[0xc3] = 0xe0;
+ regs[0xc4] = 0xff;
+ regs[0xc5] = 0x01;
+ regs[0xc6] = 0x1f;
+ regs[0xc7] = 0x00;
+ regs[0xc8] = 0xfe;
+ regs[0xc9] = 0x00;
+ regs[0xca] = 0x00;
+ regs[0xcb] = 0x1c;
+ regs[0xcc] = 0x00;
+ regs[0xcd] = 0xc0;
+ regs[0xce] = 0x01;
+ regs[0xcf] = 0xeb;
+ regs[0xd0] = 0xed;
+ regs[0xd1] = 0xe1;
+ regs[0xd2] = 0x02;
+ /* regs[0xd3] = 0x12; */
+ regs[0xd4] = 0xf4;
+ regs[0xd5] = 0x86;
+ regs[0xd6] = 0x1b;
+
+ regs[0xe2] = 0x00;
+ regs[0xe3] = 0x00;
+ regs[0xe4] = 0x00;
+ /* regs[0xe5] = 0xf7;
+ regs[0xe6] = 0x2a; */
+ exposure=0x2af7;
+ regs[0xe7] = 0x00;
+ regs[0xe8] = 0x00;
+ regs[0xe9] = 0x00;
+ regs[0xea] = 0x00;
+ regs[0xeb] = 0x00;
+ regs[0xec] = 0x00;
+ regs[0xed] = 0x00;
+ regs[0xee] = 0x00;
+ regs[0xef] = 0x00;
+ regs[0xf0] = 0x00;
+ regs[0xf1] = 0x00;
+ regs[0xf2] = 0x00;
+
+ break;
}
break;
}
@@ -7661,10 +8668,13 @@ park_head (struct Rts8891_Device *dev, SANE_Bool wait)
DBG (DBG_proc, "park_head: start\n");
- reg = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- reg = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ reg = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ }
status = sanei_rts88xx_read_reg (dev->devnum, CONTROL_REG, &control);
@@ -7684,10 +8694,13 @@ park_head (struct Rts8891_Device *dev, SANE_Bool wait)
}
sanei_rts88xx_write_regs (dev->devnum, 0x16, dev->regs + 0x16, 2);
- reg = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
- reg = 0xad;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ reg = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ reg = 0xad;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG, &reg);
+ }
/* 0x20 expected */
sanei_rts88xx_read_reg (dev->devnum, CONTROLER_REG, &reg);
@@ -7738,6 +8751,11 @@ update_button_status (struct Rts8891_Session *session)
/* effective button reading */
status = rts8891_read_buttons (session->dev->devnum, &mask);
+ if (session->dev->sensor == SENSOR_TYPE_UMAX)
+ {
+ mask >>= 8;
+ }
+
/* release interface if needed */
if (lock == SANE_TRUE)
{
@@ -7778,6 +8796,11 @@ set_lamp_state (struct Rts8891_Session *session, int on)
}
}
+ if (session->dev->sensor == SENSOR_TYPE_UMAX) /* main lamp on UMAX */
+ {
+ sanei_rts88xx_set_status (session->dev->devnum, session->dev->regs, session->dev->has_uta ? 0xa0 : 0x20, on ? 0x3b : 0x1b);
+ }
+
status = sanei_rts88xx_read_reg (session->dev->devnum, LAMP_REG, &reg);
if (on)
{
diff --git a/backend/rts8891_devices.c b/backend/rts8891_devices.c
index 8216a0a..82a934b 100644
--- a/backend/rts8891_devices.c
+++ b/backend/rts8891_devices.c
@@ -68,6 +68,9 @@ static Rts8891_Model hp4400c_model = {
/* default sensor */
SENSOR_TYPE_4400,
+ /* calibration width */
+ 637,
+
/* default gamma table */
{0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c,
0x30, 0x34, 0x38, 0x3c, 0x40, 0x44, 0x48, 0x4c, 0x50, 0x52, 0x53, 0x55,
@@ -132,6 +135,9 @@ static Rts8891_Model hp4470c_model = {
/* default sensor */
SENSOR_TYPE_XPA,
+ /* calibration width */
+ 637,
+
/* default gamma table */
{0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c,
0x30, 0x34, 0x38, 0x3c, 0x40, 0x44, 0x48, 0x4c, 0x50, 0x52, 0x53, 0x55,
@@ -177,11 +183,25 @@ static Rts8891_Model astra4400_model = {
"Astra 4400", /* Device model name */
"flatbed scanner", /* Device type */
- {1200, 600, 300, 150, 75, 0}, /* possible x-resolutions */
- {600, 300, 150, 0}, /* possible y-resolutions */
+/* Some resolutions supported by Windows driver are emulated:
+ driver dpi real dpi
+ -------------------------
+ 75 (+preview) 200x100 very fast
+ 100 200x100 very fast
+ 150 150x150
+ 200 200x200
+ 300 300x300
+ 400 600x400
+ 600 600x600
+ 800 1200x1200
+ 1200 1200x1200
+*/
+
+ {1200, 600, 300, 150, 100, 0}, /* possible x-resolutions */
+ {1200, 600, 400, 300, 150, 100, 0}, /* possible y-resolutions */
1200, /* max physical x dpi */
- 600, /* max physical y dpi */
- 150, /* min physical y dpi */
+ 1200, /* max physical y dpi */
+ 100, /* min physical y dpi */
SANE_FIX (8.3), /* Start of scan area in mm (x) */
SANE_FIX (3.0), /* Start of scan area in mm (y) */
@@ -196,42 +216,43 @@ static Rts8891_Model astra4400_model = {
24, 12, 0, /* R, G, and B CCD Line-distance correction in lines at
max motor resolution */
/* default sensor */
- SENSOR_TYPE_XPA,
+ SENSOR_TYPE_UMAX,
+
+ /* calibration width */
+ 750,
/* default gamma table */
- {0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c,
- 0x30, 0x34, 0x38, 0x3c, 0x40, 0x44, 0x48, 0x4c, 0x50, 0x52, 0x53, 0x55,
- 0x57, 0x58, 0x5a, 0x5c, 0x5d, 0x5f, 0x60, 0x62, 0x63, 0x64, 0x66, 0x67,
- 0x68, 0x6a, 0x6b, 0x6c, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x74, 0x75, 0x76,
- 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83,
- 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8d, 0x8e,
- 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x97, 0x98, 0x99,
- 0x9a, 0x9b, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3,
- 0xa3, 0xa4, 0xa5, 0xa6, 0xa6, 0xa7, 0xa8, 0xa9, 0xa9, 0xaa, 0xab, 0xac,
- 0xac, 0xad, 0xae, 0xaf, 0xaf, 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb4, 0xb4,
- 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbc,
- 0xbd, 0xbe, 0xbe, 0xbf, 0xc0, 0xc0, 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4,
- 0xc5, 0xc5, 0xc6, 0xc6, 0xc7, 0xc8, 0xc8, 0xc9, 0xc9, 0xca, 0xcb, 0xcb,
- 0xcc, 0xcc, 0xcd, 0xce, 0xce, 0xcf, 0xcf, 0xd0, 0xd1, 0xd1, 0xd2, 0xd2,
- 0xd3, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd6, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9,
- 0xda, 0xda, 0xdb, 0xdb, 0xdc, 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, 0xe0,
- 0xe0, 0xe1, 0xe1, 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 0xe4, 0xe5, 0xe5, 0xe6,
- 0xe6, 0xe7, 0xe7, 0xe8, 0xe8, 0xe9, 0xe9, 0xea, 0xea, 0xeb, 0xeb, 0xec,
- 0xec, 0xed, 0xed, 0xee, 0xee, 0xef, 0xef, 0xf0, 0xf0, 0xf1, 0xf1, 0xf2,
- 0xf2, 0xf3, 0xf3, 0xf4, 0xf4, 0xf5, 0xf5, 0xf6, 0xf6, 0xf7, 0xf7, 0xf8,
- 0xf8, 0xf9, 0xf9, 0xfa, 0xfa, 0xfa, 0xfb, 0xfb, 0xfc, 0xfc, 0xfd, 0xfd,
- 0xfe, 0xfe, 0xff, 0xff},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
+ 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
+ 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24,
+ 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
+ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c,
+ 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
+ 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54,
+ 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
+ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c,
+ 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
+ 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84,
+ 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90,
+ 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c,
+ 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
+ 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
+ 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0,
+ 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc,
+ 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,
+ 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4,
+ 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+ 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc,
+ 0xfd, 0xfe, 0xff},
/* number of buttons */
- 11,
+ 4,
/* button names */
- {"plus", "minus", "copy", "mail", "image-copy", "www", "scan", "power",
- "cancel", "options", "toggle-mode"},
+ {"scan", "copy", "mail", "custom"},
/* button titles */
- {"plus", "minus", "copy", "mail", "image copy", "www", "scan", "power",
- "cancel", "options", "toggle color/gray mode"},
+ {"scan", "copy", "mail", "custom"},
/* flags */
RTS8891_FLAG_EMULATED_GRAY_MODE
diff --git a/backend/rts8891_low.c b/backend/rts8891_low.c
index 1b95765..0eeab87 100644
--- a/backend/rts8891_low.c
+++ b/backend/rts8891_low.c
@@ -132,10 +132,16 @@ rts8891_write_all (SANE_Int devnum, SANE_Byte * regs, SANE_Int count)
buffer[1] = 0xb4;
buffer[2] = 0x00;
buffer[3] = size;
- for (i = 0; i < size; i++)
- buffer[i + 4] = regs[0xb4 + i];
+ j = 0;
+ for (i = 0; i < size; i++) {
+ buffer[i + 4 + j] = regs[0xb4 + i];
+ if (buffer[i + 4 + j] == 0xaa) {
+ j++;
+ buffer[i + 4 + j] = 0x00;
+ }
+ }
/* the USB block is size + 4 bytes of header long */
- size += 4;
+ size += 4 + j;
if (sanei_usb_write_bulk (devnum, buffer, &size) != SANE_STATUS_GOOD)
{
DBG (DBG_error,
@@ -368,6 +374,28 @@ rts8891_data_format (SANE_Int dpi, int sensor)
break;
}
}
+ if (sensor == SENSOR_TYPE_UMAX)
+ {
+ switch (dpi)
+ {
+ case 100: /* emulated */
+ case 200:
+ reg = 0x0b;
+ break;
+ case 150:
+ reg = 0x17;
+ break;
+ case 300:
+ reg = 0x17;
+ break;
+ case 600:
+ reg = 0x03;
+ break;
+ case 1200:
+ reg = 0x12;
+ break;
+ }
+ }
return reg;
}
@@ -423,7 +451,12 @@ rts8891_move (struct Rts8891_Device *device, SANE_Byte * regs,
/* prepare scan */
rts8891_set_default_regs (regs);
- if (device->sensor != SENSOR_TYPE_4400
+ if (device->sensor == SENSOR_TYPE_UMAX)
+ {
+ regs10 = 0x20;
+ regs11 = 0x3b;
+ }
+ else if (device->sensor != SENSOR_TYPE_4400
&& device->sensor != SENSOR_TYPE_4400_BARE)
{
regs10 = 0x20;
@@ -509,6 +542,29 @@ rts8891_move (struct Rts8891_Device *device, SANE_Byte * regs,
regs[0xe5] = 0xf3; /* 0xf9 */
regs[0xe6] = 0x01; /* 0x00 */
}
+ if (device->sensor == SENSOR_TYPE_UMAX)
+ {
+ regs[0x14] = 0xf0;
+ regs[0x16] = 0x0f;
+ regs[0x23] = 0x00;
+ regs[0x40] = 0xa0;
+ /* regs[0x7a] = 0x02; */
+ regs[0x80] = 0x83;
+ regs[0x81] = 0x01;
+ regs[0x82] = 0x84;
+ regs[0x83] = 0x01;
+ regs[0x85] = 0x10;
+ regs[0x86] = 0x14;
+ regs[0x87] = 0x20;
+ regs[0x88] = 0x22;
+ regs[0x89] = 0x85;
+ regs[0x8a] = 0x01;
+ regs[0x8d] = 0x4f;
+ regs[0xd9] = 0x2d;
+ regs[0xda] = 0x00;
+ regs[0xe5] = 0x1b;
+ regs[0xe6] = 0x01;
+ }
/* disable CCD */
regs[0] = 0xf5;
@@ -661,11 +717,13 @@ read_data (struct Rts8891_Session *session, SANE_Byte * dest, SANE_Int length)
/* come yet */
if (session->non_blocking && count == 0)
{
-
- dev->regs[LAMP_REG] = 0x8d;
- sanei_rts88xx_write_reg (dev->devnum, LAMP_REG,
+ if (dev->sensor != SENSOR_TYPE_UMAX)
+ {
+ dev->regs[LAMP_REG] = 0x8d;
+ sanei_rts88xx_write_reg (dev->devnum, LAMP_REG,
&(dev->regs[LAMP_REG]));
- DBG (DBG_io, "read_data: no data available\n");
+ }
+ DBG (DBG_io, "read_data: no data vailable\n");
DBG (DBG_proc, "read_data: end\n");
return SANE_STATUS_DEVICE_BUSY;
}
diff --git a/backend/rts8891_low.h b/backend/rts8891_low.h
index 453800c..a15b817 100644
--- a/backend/rts8891_low.h
+++ b/backend/rts8891_low.h
@@ -72,7 +72,8 @@
#define SENSOR_TYPE_XPA 1 /* sensor for hp4470 sold with XPA */
#define SENSOR_TYPE_4400 2 /* sensor for hp4400 */
#define SENSOR_TYPE_4400_BARE 3 /* sensor for hp4400 */
-#define SENSOR_TYPE_MAX 3 /* maximum sensor number value */
+#define SENSOR_TYPE_UMAX 4 /* sensor for Umax Astra 4400/4450 */
+#define SENSOR_TYPE_MAX 4 /* maximum sensor number value */
/* Forward typedefs */
typedef struct Rts8891_Device Rts8891_Device;
@@ -130,6 +131,8 @@ typedef struct Rts8891_Model
/* default sensor type */
SANE_Int sensor;
+ SANE_Int calibration_width;
+
/* default gamma table */
SANE_Word gamma[256];
SANE_Int buttons; /* number of buttons for the scanner */
@@ -173,6 +176,7 @@ struct Rts8891_Device
SANE_Bool initialized; /* true if device has been initialized */
SANE_Bool needs_warming; /* true if device needs warming up */
SANE_Bool parking; /* true if device is parking head */
+ SANE_Bool has_uta; /* true if UTA is connected */
/* values detected during find origin */
/* TODO these are currently unused after detection */
diff --git a/backend/sm3600.h b/backend/sm3600.h
index 2ecbeb2..5d8a8d8 100644
--- a/backend/sm3600.h
+++ b/backend/sm3600.h
@@ -77,7 +77,11 @@ Start: 2.4.2001
/* ====================================================================== */
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
typedef enum { false, true } TBool;
+#else
+typedef bool TBool;
+#endif /* GCC < 15 */
typedef SANE_Status TState;
diff --git a/backend/snapscan-usb.c b/backend/snapscan-usb.c
index 49cca1a..6e6751f 100644
--- a/backend/snapscan-usb.c
+++ b/backend/snapscan-usb.c
@@ -457,7 +457,7 @@ static int enqueue_bq(int fd,const void *src, size_t src_size)
return 0;
}
-static void dequeue_bq()
+static void dequeue_bq(void)
{
static const char me[] = "dequeue_bq";
struct usb_busy_queue *tbqe;
diff --git a/backend/test.c b/backend/test.c
index 4663a16..bb2b643 100644
--- a/backend/test.c
+++ b/backend/test.c
@@ -1255,7 +1255,7 @@ fail:
}
static void
-cleanup_initial_string_values ()
+cleanup_initial_string_values (void)
{
// Cleanup backing memory for initial values of string options.
free (init_mode);
diff --git a/backend/umax_pp_low.c b/backend/umax_pp_low.c
index d1f3c16..6d80d43 100644
--- a/backend/umax_pp_low.c
+++ b/backend/umax_pp_low.c
@@ -1496,7 +1496,7 @@ ECPFifoMode (void)
/* wait for ack bit */
/* return 1 on success, 0 on error */
static int
-waitAck ()
+waitAck (void)
{
unsigned char breg = 0;
int i = 0;
diff --git a/backend/umax_pp_mid.c b/backend/umax_pp_mid.c
index ef608ac..b5266b3 100644
--- a/backend/umax_pp_mid.c
+++ b/backend/umax_pp_mid.c
@@ -449,7 +449,7 @@ sanei_umax_pp_status (void)
}
int
-sanei_umax_pp_close ()
+sanei_umax_pp_close (void)
{
#ifdef HAVE_LINUX_PPDEV_H
int fd;
diff --git a/backend/xerox_mfp-usb.c b/backend/xerox_mfp-usb.c
index 519aba6..d083238 100644
--- a/backend/xerox_mfp-usb.c
+++ b/backend/xerox_mfp-usb.c
@@ -22,7 +22,7 @@
extern int sanei_debug_xerox_mfp;
static int
-xerox_need_clear_halt()
+xerox_need_clear_halt(void)
{
char *env;
int workaround = 0;
diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
index 0821754..48e1eca 100644
--- a/backend/xerox_mfp.c
+++ b/backend/xerox_mfp.c
@@ -212,6 +212,7 @@ static int isSupportedDevice(struct device __sane_unused__ *dev)
/* blacklist malfunctioning device(s) */
if (!strncmp (dev->sane.model, "SCX-4500W", 9)
|| !strncmp (dev->sane.model, "C460", 4)
+ || !!strstr(dev->sane.model, "SCX-472")
|| !!strstr (dev->sane.model, "WorkCentre 3225")
|| !!strstr (dev->sane.model, "CLX-3170")
|| !!strstr (dev->sane.model, "4x24")
@@ -502,7 +503,7 @@ static SANE_String_Const doc_sources[] = {
};
static int doc_source_to_code[] = {
- 0x40, 0x20, 0x80
+ DOC_FLATBED, DOC_ADF, DOC_AUTO
};
static SANE_String_Const scan_modes[] = {
@@ -702,6 +703,14 @@ static void set_parameters(struct device *dev)
}
}
+/* determine if document is to be sourced from ADF */
+static int sourcing_from_adf(struct device *dev)
+{
+ return (dev->doc_source == DOC_ADF ||
+ (dev->doc_source == DOC_AUTO && dev->doc_loaded));
+}
+
+
/* resolve all options related to scan window */
/* called after option changed and in set_window */
static int fix_window(struct device *dev)
@@ -731,11 +740,10 @@ static int fix_window(struct device *dev)
dev->doc_source = doc_source_to_code[string_match_index(doc_sources, dev->val[OPT_SOURCE].s)];
/* max window len is dependent of document source */
- if (dev->doc_source == DOC_FLATBED ||
- (dev->doc_source == DOC_AUTO && !dev->doc_loaded))
- dev->max_len = dev->max_len_fb;
- else
+ if (sourcing_from_adf(dev))
dev->max_len = dev->max_len_adf;
+ else
+ dev->max_len = dev->max_len_fb;
/* parameters */
dev->win_y_range.max = SANE_FIX((double)dev->max_len / PNT_PER_MM);
@@ -879,8 +887,9 @@ dev_inquiry(struct device *dev)
dev->res[0x3f];
dev->line_order = dev->res[0x31];
dev->compressionTypes = dev->res[0x32];
- dev->doc_loaded = (dev->res[0x35] == 0x02) &&
- (dev->res[0x26] & 0x03);
+ dev->has_adf = ((dev->res[0x26] & 0x03) != 0);
+ dev->doc_loaded = (dev->res[0x35] == 0x02)
+ && dev->has_adf;
init_options(dev);
reset_options(dev);
@@ -891,6 +900,25 @@ dev_inquiry(struct device *dev)
return SANE_STATUS_GOOD;
}
+
+static SANE_Status
+dev_inquiry_adf_status(struct device *dev)
+{
+ if (!dev_cmd(dev, CMD_INQUIRY))
+ return SANE_STATUS_IO_ERROR;
+
+ dev->has_adf = ((dev->res[0x26] & 0x03) != 0);
+ dev->doc_loaded = (dev->res[0x35] == 0x02)
+ && dev->has_adf;
+
+ DBG(3, "%s: ADF present: %s, loaded: %s\n", __func__,
+ (dev->has_adf ? "true" : "false"),
+ (dev->doc_loaded ? "true" : "false"));
+
+ return SANE_STATUS_GOOD;
+}
+
+
const SANE_Option_Descriptor *
sane_get_option_descriptor(SANE_Handle h, SANE_Int opt)
{
@@ -1361,7 +1389,10 @@ sane_read(SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *lenp)
remove(encTmpFileName);
}
/* that's all */
- dev_stop(dev);
+ /* finished receving the document; */
+ /* stop and release the unit, unless sourcing from ADF */
+ if (!sourcing_from_adf(dev))
+ dev_stop(dev);
return SANE_STATUS_EOF;
}
@@ -1465,7 +1496,6 @@ SANE_Status
sane_start(SANE_Handle h)
{
struct device *dev = h;
-
DBG(3, "%s: %p\n", __func__, h);
dev->cancel = 0;
@@ -1476,22 +1506,24 @@ sane_start(SANE_Handle h)
dev->blocks = 0;
if (!dev->reserved) {
+ if (dev->has_adf
+ && (dev->doc_source == DOC_AUTO || dev->doc_source == DOC_ADF)) {
+ if (dev_inquiry_adf_status(dev) != SANE_STATUS_GOOD)
+ return dev_stop(dev);
+ }
+
if (!dev_cmd_wait(dev, CMD_RESERVE_UNIT))
return dev->state;
dev->reserved++;
- }
- if (!dev_set_window(dev) ||
- (dev->state && dev->state != SANE_STATUS_DEVICE_BUSY))
- return dev_stop(dev);
+ if (!dev_set_window(dev) ||
+ (dev->state && dev->state != SANE_STATUS_DEVICE_BUSY))
+ return dev_stop(dev);
+ }
if (!dev_cmd_wait(dev, CMD_OBJECT_POSITION))
return dev_stop(dev);
- if (!dev_cmd(dev, CMD_READ) ||
- (dev->state && dev->state != SANE_STATUS_DEVICE_BUSY))
- return dev_stop(dev);
-
dev->scanning = 1;
dev->final_block = 0;
dev->blocklen = 0;
diff --git a/backend/xerox_mfp.conf.in b/backend/xerox_mfp.conf.in
index d9deecc..4d1d934 100644
--- a/backend/xerox_mfp.conf.in
+++ b/backend/xerox_mfp.conf.in
@@ -169,6 +169,10 @@ usb 0x04e8 0x3450
#Samsung SCX-472x Series, Samsung SCX-4729FD
usb 0x04e8 0x3453
+#Samsung SCX-4729FW, network mode
+# tcp HOST_NAME_OR_IP PORT
+#tcp scx4729fw 9400
+
#Samsung CLX-6260 Series
usb 0x04e8 0x3455
diff --git a/backend/xerox_mfp.h b/backend/xerox_mfp.h
index 6aa83a4..ebd1b56 100644
--- a/backend/xerox_mfp.h
+++ b/backend/xerox_mfp.h
@@ -64,6 +64,7 @@ struct device {
int state; /* current state */
int reserved; /* CMD_RESERVE_UNIT */
int reading; /* READ_IMAGE is sent */
+ int has_adf; /* ADF is present */
SANE_Byte *data; /* postprocessing cyclic buffer 64k */
int datalen; /* how data in buffer */
diff --git a/configure.ac b/configure.ac
index ddb52b9..6807c68 100644
--- a/configure.ac
+++ b/configure.ac
@@ -313,6 +313,7 @@ AC_FUNC_MMAP
AC_CHECK_FUNCS(atexit ioperm i386_set_ioperm \
mkdir strftime strstr strtod \
cfmakeraw tcsendbreak strcasecmp strncasecmp _portaccess \
+ pidfd_open \
getaddrinfo getnameinfo poll setitimer iopl getuid getpass)
dnl sys/io.h might provide ioperm but not inb,outb (like for
diff --git a/doc/descriptions/artec_eplus48u.desc b/doc/descriptions/artec_eplus48u.desc
index 674333a..17b8b21 100644
--- a/doc/descriptions/artec_eplus48u.desc
+++ b/doc/descriptions/artec_eplus48u.desc
@@ -15,13 +15,13 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4003"
-:comment "CIS scanner based on the GT6816 chip. Apparently all other devices are re-badged Artec scanners."
+:comment "CIS scanner based on the GT6816 chip. Apparently all other devices are re-badged Artec scanners. Needs firmware 'Artec48.usb'"
:model "E+ Pro"
:status :minimal
:interface "USB"
:usbid "0x05d8" "0x4004"
-:comment "Works up to 600dpi, but not 1200. Needs better calibration. See bug #310490"
+:comment "Works up to 600dpi, but not 1200. Needs better calibration. See bug #310490. Needs firmware '1200.usb'"
:mfg "Medion/Lifetec/Tevion/Cytron"
@@ -32,17 +32,19 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4003"
+:comment "Needs firmware 'Artec48.usb'"
:model "MD9705"
:status :good
:interface "USB"
:usbid "0x05d8" "0x4003"
+:comment "Needs firmware 'Artec48.usb'"
:model "MD4394"
:status :good
:interface "USB"
:usbid "0x05d8" "0x4003"
-:comment "Only scanners with product id 0x4003 will work; try the gt68xx backend, if your scanner has product id 0x4002 "
+:comment "Only scanners with product id 0x4003 will work; try the gt68xx backend, if your scanner has product id 0x4002 . Needs firmware 'Artec48.usb'"
:mfg "Trust"
@@ -52,12 +54,13 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4006"
+:comment "Needs firmware 'Artec48.usb'"
:model "240H Easy Webscan Gold"
:status :basic
:interface "USB"
:usbid "0x05d8" "0x4007"
-:comment "Works up to 600 dpi"
+:comment "Works up to 600 dpi. Needs firmware 'Artec48.usb'"
:mfg "Memorex"
@@ -67,6 +70,7 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4005"
+:comment "Needs firmware 'Artec48.usb'"
:mfg "Microstar"
@@ -76,6 +80,7 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4003"
+:comment "Needs firmware 'Artec48.usb'"
:mfg "UMAX"
@@ -90,11 +95,13 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4009"
+:comment "Needs firmware 'Artec48.usb'"
:model "AstraSlim 1200 SE"
:status :good
:interface "USB"
:usbid "0x05d8" "0x4010"
+:comment "Needs firmware '1200.usb'"
:mfg "Yakumo"
@@ -104,3 +111,4 @@
:status :good
:interface "USB"
:usbid "0x05d8" "0x4011"
+:comment "Needs firmware 'Artec48.usb'"
diff --git a/doc/descriptions/avision.desc b/doc/descriptions/avision.desc
index dc013bf..0938300 100644
--- a/doc/descriptions/avision.desc
+++ b/doc/descriptions/avision.desc
@@ -754,6 +754,12 @@
:mfg "Xerox"
+:model "Book Scanner 4167"
+:interface "USB"
+:usbid "0x262c" "0x2001"
+:comment "1 pass, 1200 dpi, A3 - duplex! - zero edge! (rebadged Avision FB6080E)"
+:status :complete
+
:model "DocuMate150"
:interface "USB"
:usbid "0x04a7" "0x049c"
diff --git a/doc/descriptions/epjitsu.desc b/doc/descriptions/epjitsu.desc
index e7b0ff6..50f3ca1 100644
--- a/doc/descriptions/epjitsu.desc
+++ b/doc/descriptions/epjitsu.desc
@@ -26,46 +26,46 @@
:interface "USB"
:status :good
:usbid "0x04c5" "0x10c7"
-:comment "A6-size flatbed. Hardware provides 150/200/300/400/600 dpi in color. Software creates other resolutions, plus grayscale and binary modes. Hardware grayscale mode is not used due to poor calibration."
+:comment "A6-size flatbed. Hardware provides 150/200/300/400/600 dpi in color. Software creates other resolutions, plus grayscale and binary modes. Hardware grayscale mode is not used due to poor calibration. Needs firmware '60f_0A00.nal'"
:model "ScanSnap S300"
:interface "USB"
:status :good
:usbid "0x04c5" "0x1156"
-:comment "Letter-size ADF. Hardware provides duplex, 150/225/300/600 dpi in color on AC or USB power. Software creates other resolutions, plus grayscale and binary modes. All buttons and sensors are exposed. Scanner always scans in _triplex_ color, fast USB required."
+:comment "Letter-size ADF. Hardware provides duplex, 150/225/300/600 dpi in color on AC or USB power. Software creates other resolutions, plus grayscale and binary modes. All buttons and sensors are exposed. Scanner always scans in _triplex_ color, fast USB required. Needs firmware '300_0C00.nal'"
:model "ScanSnap S300M"
:interface "USB"
:status :good
:usbid "0x04c5" "0x117f"
-:comment "Same as S300, with different usb id"
+:comment "Same as S300, with different usb id. Needs firmware '300M_0C00.nal'"
:model "fi-65F"
:interface "USB"
:status :good
:usbid "0x04c5" "0x11bd"
-:comment "Same as fi-60f, with different usb id. Button support untested."
+:comment "Same as fi-60f, with different usb id. Button support untested. Needs firmware '65f_0A01.nal'"
:model "ScanSnap S1300"
:interface "USB"
:status :good
:usbid "0x04c5" "0x11ed"
-:comment "Same as S300, with different usb id"
+:comment "Same as S300, with different usb id. Needs firmware '1300_0C26.nal'"
:model "ScanSnap S1100"
:interface "USB"
:status :good
:usbid "0x04c5" "0x1200"
-:comment "Letter-size ADF. Hardware provides simplex, 300/600 dpi in color on USB power. Software creates other resolutions, plus grayscale and binary modes. All buttons and sensors are exposed. Scanner always scans in _triplex_ color, fast USB required."
+:comment "Letter-size ADF. Hardware provides simplex, 300/600 dpi in color on USB power. Software creates other resolutions, plus grayscale and binary modes. All buttons and sensors are exposed. Scanner always scans in _triplex_ color, fast USB required. Needs firmware '1100_0B00.nal'"
:model "ScanSnap S1300i"
:interface "USB"
:status :good
:usbid "0x04c5" "0x128d"
-:comment "Same as S300, with different usb id"
+:comment "Same as S300, with different usb id. Needs firmware '1300i_0D12.nal'"
:model "ScanSnap S1100i"
:interface "USB"
:status :good
:usbid "0x04c5" "0x1447"
-:comment "Same as S1100, with different usb id"
+:comment "Same as S1100, with different usb id. Needs firmware '1100i_0A00.nal'"
diff --git a/doc/descriptions/escl.desc b/doc/descriptions/escl.desc
index e09c4b4..12f1ad9 100644
--- a/doc/descriptions/escl.desc
+++ b/doc/descriptions/escl.desc
@@ -23,6 +23,11 @@
:status :good
:comment "All resolutions supported."
+:model "MFC-J453DW"
+:interface "Ethernet WiFi"
+:status :good
+:comment "All resolutions supported, Flatbed and ADF supported."
+
:model "MFC-J985DW"
:interface "Ethernet WiFi"
:status :good
@@ -146,6 +151,16 @@
:status :good
:comment "All resolutions supported."
+:model "PIXMA TS5100"
+:interface "WiFi"
+:status :good
+:comment "All resolutions supported."
+
+:model "PIXMA TS5150"
+:interface "WiFi"
+:status :good
+:comment "All resolutions supported."
+
:model "PIXMA TS5350 Series"
:interface "WiFi"
:status :good
@@ -199,6 +214,11 @@
:status :good
:comment "All resolutions supported."
+:model "XP-4200 Series"
+:interface "WiFi"
+:status :good
+:comment "All resolutions supported, Flatbed only supported."
+
:model "XP-6100"
:interface "WiFi"
:status :good
diff --git a/doc/descriptions/genesys.desc b/doc/descriptions/genesys.desc
index 740c246..43b0736 100644
--- a/doc/descriptions/genesys.desc
+++ b/doc/descriptions/genesys.desc
@@ -71,6 +71,12 @@
:status :complete
:comment "900, 1800, 3600 and 7200 dpi resolutions are supported in both regular transparency and infrared modes"
+:model "OpticFilm 8200i"
+:interface "USB"
+:usbid "0x07b3" "0x1825"
+:status :unsupported
+:comment "GL128 based"
+
; -----------------------------------------------------------------------------
:mfg "Medion/Lifetec/Tevion/Cytron"
diff --git a/doc/descriptions/gt68xx.desc b/doc/descriptions/gt68xx.desc
index b911e98..15b258a 100644
--- a/doc/descriptions/gt68xx.desc
+++ b/doc/descriptions/gt68xx.desc
@@ -14,7 +14,7 @@
:interface "USB"
:usbid "0x05d8" "0x4002"
:status :good
-:comment "Works, only product id 0x4002 is supported"
+:comment "Works, only product id 0x4002 is supported. Needs firmware 'Gt680xfw.usb'"
:model "Ultima 2000 e+"
:interface "USB"
@@ -52,17 +52,19 @@
:interface "USB"
:usbid "0x0458" "0x201e"
:status :untested
-:comment "Untested but should work."
+:comment "Untested but should work. Needs firmware 'Cis3r5b1.fw'"
-:model "Colorpage SF600"
+:model "ColorPage SF600"
:interface "USB"
:usbid "0x0458" "0x2021"
:status :basic
+:comment "Needs firmware 'cism216.fw'"
:model "Colorpage Vivid3x"
:interface "USB"
:usbid "0x0458" "0x2011"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
:model "Colorpage Vivid3 V2"
:interface "USB"
@@ -74,35 +76,42 @@
:interface "USB"
:usbid "0x0458" "0x2017"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
-:model "Colorpage Vivid4"
+:model "ColorPage Vivid 4"
:usbid "0x0458" "0x2014"
:interface "USB"
:status :good
+:comment "Needs firmware 'ccd68861.fw'"
:model "Colorpage Vivid4x"
:usbid "0x0458" "0x201b"
:interface "USB"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
:model "Colorpage Vivid4xe"
:usbid "0x0458" "0x201a"
:interface "USB"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
:model "Colorpage Vivid 1200 X"
:interface "USB"
:usbid "0x0458" "0x201d"
:status :good
+:comment "Needs firmware 'ccd569.fw'"
:model "Colorpage Vivid 1200 XE"
:interface "USB"
:usbid "0x0458" "0x201f"
:status :good
+:comment "Needs firmware 'ccd569.fw'"
; -----------------------------------------------------------------------------
:mfg "Googlegear"
+
:model "2000"
:interface "USB"
:usbid "0x05d8" "0x4002"
@@ -123,7 +132,7 @@
:interface "USB"
:usbid "0x043d" "0x002d"
:status :good
-:comment "Works, some resolutions fail at 16 bit, same as X70"
+:comment "Works, some resolutions fail at 16 bit, same as X70. Needs firmware 'OSLO3071b2.usb'"
; -----------------------------------------------------------------------------
@@ -177,22 +186,25 @@
:interface "USB"
:usbid "0x05d8" "0x4002"
:status :good
+:comment "Needs firmware 'PS1fw.usb'"
-:model "BearPaw 1200 CU Plus"
+:model "Bearpaw 1200 CU Plus"
:interface "USB"
:usbid "0x055f" "0x021b"
:status :good
+:comment "Needs firmware 'PS1Gfw.usb'"
-:model "BearPaw 1200 CU Plus"
+:model "Bearpaw 1200 CU Plus"
:interface "USB"
:usbid "0x055f" "0x021c"
:status :good
+:comment "Needs firmware 'PS1Dfw.usb'"
:model "BearPaw 1200 TA"
:interface "USB"
:usbid "0x055f" "0x021e"
:status :good
-:comment "Transparency adapter supported"
+:comment "Transparency adapter supported. Needs firmware 'A1fw.usb'"
:model "BearPaw 1248 CU"
:interface "USB"
@@ -216,24 +228,25 @@
:interface "USB"
:usbid "0x05d8" "0x4002"
:status :basic
-:comment "Works, but is slow"
+:comment "Works, but is slow. Needs firmware 'PS2fw.usb'"
:model "BearPaw 2400 CU Plus"
:interface "USB"
:usbid "0x055f" "0x021d"
:status :good
+:comment "Needs firmware 'PS2Dfw.usb'"
:model "BearPaw 2400 TA"
:interface "USB"
:usbid "0x055f" "0x0218"
:status :good
-:comment "Transparency adapter supported"
+:comment "Transparency adapter supported. Needs firmware 'A2fw.usb'"
:model "BearPaw 2400 TA Plus"
:interface "USB"
:usbid "0x055f" "0x0219"
:status :good
-:comment "Transparency adapter supported"
+:comment "Transparency adapter supported. Needs firmware 'A2Dfw.usb'"
:model "BearPaw 2448 CS Plus"
:interface "USB"
@@ -245,7 +258,7 @@
:interface "USB"
:usbid "0x055f" "0x021a"
:status :basic
-:comment "Slow. Transparency adapter supported. Slow. Brightness depends on resolution?"
+:comment "Slow. Transparency adapter supported. Slow. Brightness depends on resolution?. Needs firmware 'A2Nfw.usb'"
:model "Plug-n-Scan 2400 MT"
:interface "USB"
@@ -263,23 +276,25 @@
:interface "USB"
:usbid "0x05d8" "0x4002"
:status :good
+:comment "Needs firmware 'SBfw.usb'"
:model "ScanExpress 1248 UB"
:interface "USB"
:usbid "0x055f" "0x021f"
:status :complete
+:comment "Needs firmware 'SBSfw.usb'"
:model "ScanExpress 2400 USB"
:interface "USB"
:usbid "0x05d8" "0x4002"
:status :minimal
-:comment "Should be detected but may need some more work in the code. Testers welcome. Please contact me if you own this scanner."
+:comment "Should be detected but may need some more work in the code. Testers welcome. Please contact me if you own this scanner. Needs firmware 'P9fw.usb'"
:model "ScanExpress A3 USB"
:interface "USB"
:usbid "0x055f" "0x0210"
:status :basic
-:comment "Still some vertical stripes."
+:comment "Still some vertical stripes. Needs firmware 'A32fw.usb'"
:model "ScanMagic 1200 UB Plus"
:interface "USB"
@@ -349,16 +364,19 @@
:interface "USB"
:usbid "0x07b3" "0x0400"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
:model "OpticPro 1248U"
:interface "USB"
:usbid "0x07b3" "0x0401"
:status :good
+:comment "Needs firmware 'ccd548.fw'"
:model "OpticPro U16B"
:interface "USB"
:usbid "0x07b3" "0x0402"
:status :good
+:comment "Needs firmware 'ccd68861.fw'"
:model "OpticPro U16B+"
:interface "USB"
@@ -375,13 +393,13 @@
:interface "USB"
:usbid "0x07b3" "0x040b"
:status :good
-:comment "Product ID 0x040b only."
+:comment "Product ID 0x040b only. Needs firmware 'ccd548.fw'"
:model "OpticPro S24"
:interface "USB"
:usbid "0x07b3" "0x040e"
:status :good
-:comment "Product ID 0x040e only. Is reported to work."
+:comment "Product ID 0x040e only. Is reported to work. Needs firmware 'ccd569.fw'"
:model "OpticPro ST12"
:interface "USB"
@@ -393,12 +411,13 @@
:interface "USB"
:usbid "0x07b3" "0x0413"
:status :good
+:comment "Needs firmware 'cism216.fw'"
:model "OpticSlim 2400"
:interface "USB"
:usbid "0x07b3" "0x0422"
:status :good
-:comment "Works up to 1200 dpi."
+:comment "Works up to 1200 dpi. Needs firmware 'cis3R5B1.fw'"
:model "OpticSlim 2400 plus"
:interface "USB"
@@ -406,24 +425,24 @@
:status :good
:comment "Same as OpticSlim 2400."
-:model "OpticSlim 500 plus"
+:model "OpticSlim 500 Plus"
:interface "USB"
:usbid "0x07b3" "0x046e"
:status :good
-:comment "Need firmware from windows driver. Image is upside down because hardware in this model is upside down. Buttons not tested."
+:comment "Image is upside down because hardware in this model is upside down. Buttons not tested. Needs firmware 'cis3R5B1.fw'"
:model "Iriscan Express 2"
:interface "USB"
:usbid "0x07b3" "0x045f"
:status :complete
-:comment "Works up to 1200 dpi. Calibration with external calibration sheet supported"
+:comment "Works up to 1200 dpi. Calibration with external calibration sheet supported. Needs firmware 'cism216.fw'"
; -----------------------------------------------------------------------------
:model "OpticSlim M12"
:interface "USB"
:usbid "0x07b3" "0x0412"
:status :complete
-:comment "Works up to 1200 dpi. Calibration with external calibration sheet supported"
+:comment "Works up to 1200 dpi. Calibration with external calibration sheet supported. Needs firmware 'cism216.fw'"
; -----------------------------------------------------------------------------
:mfg "RevScan"
@@ -473,6 +492,6 @@
:interface "USB"
:usbid "0x04a7" "0x0444"
:status :good
-:comment "Works up to 1200 dpi and 12 bits/color."
+:comment "Works up to 1200 dpi and 12 bits/color. Needs firmware 'Cis3r5b1.fw'"
; -----------------------------------------------------------------------------
diff --git a/doc/descriptions/magicolor.desc b/doc/descriptions/magicolor.desc
index f650c90..9195a9a 100644
--- a/doc/descriptions/magicolor.desc
+++ b/doc/descriptions/magicolor.desc
@@ -39,3 +39,13 @@
:usbid "ignore"
:status :unsupported
:comment "Uses a similar protocol as the magicolor 1690MF, according to Ilia Sotnikov."
+
+:mfg "Toshiba TEC"
+:url "https://toshibatec.com/"
+
+:model "e-STUDIO2323AM"
+:interface "Network"
+:usbid "0x08a6" "0x8056"
+:status :good
+:comment "Multi-function laser printer, scanner and network interface"
+:url "https://www.toshibatec.eu/products/multifunctional-systems-and-printers/e-studio2323am/"
diff --git a/doc/descriptions/mustek.desc b/doc/descriptions/mustek.desc
index 2ba44f1..3613768 100644
--- a/doc/descriptions/mustek.desc
+++ b/doc/descriptions/mustek.desc
@@ -123,10 +123,10 @@
:interface "SCSI"
:status :good
-:model "Paragon 1200 A3 Pro"
+:model "Paragon 1200 A3 Pro/1200 A3 Pro"
:interface "SCSI"
:status :complete
-:comment "ADF and TA untested. Please contact me if you own such equipment."
+:comment "ADF and TA untested. Both Paragon branded and not. Please contact me if you own such equipment."
:model "Paragon 600 II N"
:interface "Proprietary"
diff --git a/doc/descriptions/pixma.desc b/doc/descriptions/pixma.desc
index 07c4740..386d398 100644
--- a/doc/descriptions/pixma.desc
+++ b/doc/descriptions/pixma.desc
@@ -100,6 +100,12 @@
:status :untested
:comment "Testers needed!"
+:model "PIXMA E3600 Series"
+:interface "USB"
+:usbid "0x04a9" "0x1157"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXMA E4200 Series"
:interface "USB WiFi"
:usbid "0x04a9" "0x1855"
@@ -196,6 +202,18 @@
:status :untested
:comment "Testers needed!"
+:model "G3080 series"
+:interface "USB"
+:usbid "0x04a9" "0x114d"
+:status :untested
+:comment "Testers needed!"
+
+:model "G3090 series"
+:interface "USB"
+:usbid "0x04a9" "0x114c"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXMA G4000 Series"
:interface "USB WiFi"
:usbid "0x04a9" "0x181d"
@@ -214,6 +232,18 @@
:status :untested
:comment "Testers needed!"
+:model "G4070 series"
+:interface "USB"
+:usbid "0x04a9" "0x18f3"
+:status :untested
+:comment "Testers needed!"
+
+:model "G4090 series"
+:interface "USB"
+:usbid "0x04a9" "0x114b"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXMA G4511"
:interface "USB WiFi"
:usbid "0x04a9" "0x183d"
@@ -1139,6 +1169,18 @@
:status :untested
:comment "Testers needed!"
+:model "PIXMA TS3600 Series"
+:interface "USB"
+:usbid "0x04a9" "0x1156"
+:status :untested
+:comment "Testers needed!"
+
+:model "PIXMA TS3700 Series"
+:interface "USB"
+:usbid "0x04a9" "0x1158"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXMA TS5000 Series"
:interface "USB WiFi"
:usbid "0x04a9" "0x1802"
@@ -1146,7 +1188,13 @@
:comment "All resolutions supported (up to 1200DPI). WiFi not working."
:model "PIXMA TS5100 Series"
-:interface "USB WiFi"
+:interface "USB"
+:usbid "0x04a9" "0x1825"
+:status :good
+:comment "All resolutions supported (up to 1200DPI). WiFi not working."
+
+:model "PIXMA TS5150 Series"
+:interface "USB"
:usbid "0x04a9" "0x1825"
:status :good
:comment "All resolutions supported (up to 1200DPI). WiFi not working."
@@ -1391,6 +1439,12 @@
:status :untested
:comment "Testers needed!"
+:model "PIXMA TS8800 series"
+:interface "USB WiFi"
+:usbid "0x04a9" "0x1159"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXMA TS9000 Series"
:interface "USB WiFi"
:usbid "0x04a9" "0x179f"
@@ -1475,6 +1529,12 @@
:status :untested
:comment "Testers needed!"
+:model "PIXUS XK130 Series"
+:interface "USB WiFi"
+:usbid "0x04a9" "0x115a"
+:status :untested
+:comment "Testers needed!"
+
:model "PIXUS XK500 Series"
:interface "USB WiFi"
:usbid "0x04a9" "0x18df"
diff --git a/doc/sane-escl.man b/doc/sane-escl.man
index ee70d69..6f7c43e 100644
--- a/doc/sane-escl.man
+++ b/doc/sane-escl.man
@@ -15,7 +15,7 @@ BROTHER DCP-J772DW, DCP-L2530DW
.br
BROTHER HL-L2590DW
.br
-BROTHER MFC-J985DW, MFC-J1300DW
+BROTHER MFC-J4540DW, MFC-J985DW, MFC-J1300DW
.br
CANON IR C3520
.br
@@ -31,13 +31,13 @@ CANON PIXMA TS3100, TS3150, TS3151, TS3152, TS3300, TS3350
.br
CANON PIXMA TS3351, TS3352, TS3450, TS3451, TS3452, TS5350
.br
-CANON PIXMA TS5351, TS6150, TS8050, TS8350, TS9100
+CANON PIXMA TS5351, TS5150, TS6150, TS8050, TS8350, TS9100
.br
EPSON ET-2750, ET-3750, ET-4750
.br
EPSON EcoTank L3160
.br
-EPSON XP-6100
+EPSON XP-4200, XP-6100
.br
HP DESKJET 2710, DESKJET 2723, DESKJET 3760
.br
diff --git a/doc/sane-magicolor.man b/doc/sane-magicolor.man
index 19716e0..3766f50 100644
--- a/doc/sane-magicolor.man
+++ b/doc/sane-magicolor.man
@@ -1,11 +1,11 @@
.\" .IX sane-magicolor
.TH "sane-magicolor" "5" "10 Jan 2011" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.SH "NAME"
-sane\-magicolor \- SANE backend for KONICA MINOLTA magicolor scanners
+sane\-magicolor \- SANE backend for KONICA MINOLTA magicolor and Toshiba TEC e-STUDIO scanners
.SH "DESCRIPTION"
The
.B sane\-magicolor
-backend supports KONICA MINOLTA magicolor scanners connected via USB or LAN. Currently, only the magicolor 1690MF device is supported, no other devices with the same scanning protocol are known.
+backend supports KONICA MINOLTA magicolor and Toshiba TEC e-STUDIO scanners connected via USB or LAN.
.SH "SUPPORTED DEVICES"
The following scanner should work with this backend:
@@ -16,6 +16,10 @@ Device Details
Vendor: KONICA MINOLTA
.br
Model: magicolor 1690MF
+.br
+Vendor: Toshiba TEC
+.br
+Model: e-STUDIO2323AM
.SH "CONFIGURATION"
.PP
diff --git a/doc/sane-mustek.man b/doc/sane-mustek.man
index b269678..64ffa6c 100644
--- a/doc/sane-mustek.man
+++ b/doc/sane-mustek.man
@@ -35,7 +35,7 @@ ScanExpress A3 SP
.br
Paragon 1200 SP Pro
.br
-Paragon 1200 A3 Pro
+Paragon 1200 A3 Pro/1200 A3 Pro
.br
Paragon 600 II EP
.br
@@ -57,7 +57,7 @@ More details can be found on the Mustek SCSI backend homepage
.IR http://www.meier\-geinitz.de/sane/mustek\-backend/ .
.PP
Don't mix up MFS (Paragon), Pro and ScanExpress models! They're
-completely different. Check the exact model name!
+completely different. Check the exact model name! Note that we have encountered some Mustek models that are not specifically Paragon branded (e.g. "1200 A3 Pro"), but are also known to work.
.PP
Note that most of the above scanners come with a SCSI interface. The only
non-SCSI scanners that have some support at this point is the 600 II N and 600
diff --git a/doc/sane-pixma.man b/doc/sane-pixma.man
index ce2ce26..2cbb605 100644
--- a/doc/sane-pixma.man
+++ b/doc/sane-pixma.man
@@ -17,9 +17,11 @@ Currently, the following models work with this backend:
.PP
.RS
-PIXMA E410, E510, E4500
+PIXMA E410, E510, E3600, E4500
.br
-PIXMA G600, G2000, G2010, G2030, G2070, G2100, G3030, G3070, G4000, G4070, G4511
+PIXMA G600, G2000, G2010, G2030, G2070, G2100, G3030, G3070
+.br
+PIXMA G3080, G3090, G4000, G4070, G4080, G4511
.br
PIXMA GX1000, GX2000, GX3000, GX4000, GX6000, GX6500, GX7000
.br
@@ -61,9 +63,11 @@ PIXMA TR4500, TR4600, TR4700
.br
PIXMA TS2400, TS2600, TS3100, TS3300, TS3450, TS3451, TS3452
.br
-PIXMA TS3500, TS5000, TS5100, TS5350i, TS5400, TS6100, TS6200
+PIXMA TS3500, TS3600, TS3700, TS5000, TS5100, TS5150, TS5350i
+.br
+PIXMA TS5400, TS6100, TS6200, TS7530, TS7450i ,TS8000, TS8200
.br
-PIXMA TS7530, TS7450i ,TS8000, TS8200, TS8530, TS8630, TS8630
+PIXMA TS8530, TS8630, TS8800
.br
PIXUS MP10
.br
@@ -139,7 +143,9 @@ PIXMA TS8180, TS8230, TS8280, TS8300, TS8330, TS8380, TS8700, TS9000
.br
PIXMA TS9100, TS9180, TS9500, TS9580
.br
-PIXUS MP5, XK50, XK60, XK70, XK80, XK90, XK100, XK110, XK120, XK500
+PIXUS MP5, XK50, XK60, XK70, XK80, XK90, XK100, XK110, XK120, XK130
+.br
+PIXUS XK500
.br
imageCLASS MF720, MF810/820, MF5630, MF5650, MF5750, MF8170c
.br
diff --git a/doc/saned.man b/doc/saned.man
index 400ab6c..f7f6504 100644
--- a/doc/saned.man
+++ b/doc/saned.man
@@ -93,6 +93,18 @@ will request
to detach from the console and run in the background.
.TP
+.BR \-n ", " \-\-allow\-network
+allows
+.B saned
+to use network scanners. By default this is forbidden to prevent
+.B saned
+from contacting itself. When enabled, the configuration of the
+.BR sane-net (5)
+backend should not mention the address on which
+.B saned
+is listening.
+
+.TP
.BR \-o ", " \-\-once
requests that
.B saned
diff --git a/frontend/saned.c b/frontend/saned.c
index d71d428..5ca81cc 100644
--- a/frontend/saned.c
+++ b/frontend/saned.c
@@ -79,6 +79,9 @@
#include <arpa/inet.h>
#include <sys/wait.h>
+#ifdef HAVE_PIDFD_OPEN
+#include <sys/pidfd.h>
+#endif
#include <pwd.h>
#include <grp.h>
@@ -168,8 +171,6 @@ poll (struct pollfd *ufds, unsigned int nfds, int timeout)
# define SANED_SERVICE_DNS "_sane-port._tcp"
# define SANED_NAME "saned"
-pid_t avahi_pid = -1;
-
char *avahi_svc_name;
static AvahiClient *avahi_client = NULL;
@@ -222,13 +223,36 @@ static AvahiEntryGroup *avahi_group = NULL;
# define PATH_MAX 1024
#endif
+/* Linked list of child processes */
+enum saned_child_type {
+ SANED_CHILD_CLIENT,
+ SANED_CHILD_AVAHI,
+};
struct saned_child {
+ enum saned_child_type type;
pid_t pid;
+ int pidfd;
struct saned_child *next;
};
struct saned_child *children;
int numchildren;
+/* Linked list of fds to be polled */
+enum saned_fd_type {
+ SANED_FD_LISTENER,
+ SANED_FD_PROCESS,
+};
+struct saned_fd
+{
+ enum saned_fd_type type;
+ int fd;
+ short interesting_events;
+ struct saned_fd *next;
+};
+struct saned_fd *saned_fds;
+int num_saned_fds;
+
+
#define SANED_CONFIG_FILE "saned.conf"
#define SANED_PID_FILE "/var/run/saned.pid"
@@ -254,6 +278,7 @@ static int debug;
static int run_mode;
static int run_foreground;
static int run_once;
+static int allow_network;
static int data_connect_timeout = 4000;
static Handle *handle;
static char *bind_addr;
@@ -1869,7 +1894,7 @@ process_request (Wire * w)
reply.status =
sane_get_devices ((const SANE_Device ***) &reply.device_list,
- SANE_TRUE);
+ !allow_network);
sanei_w_reply (w, (WireCodecFunc) sanei_w_get_devices_reply, &reply);
}
break;
@@ -2294,67 +2319,103 @@ process_request (Wire * w)
return 0;
}
-
static int
-wait_child (pid_t pid, int *status, int options)
+add_fd (int fd, enum saned_fd_type type, short interesting_events)
{
- struct saned_child *c;
- struct saned_child *p = NULL;
- int ret;
-
- ret = waitpid(pid, status, options);
-
- if (ret <= 0)
- return ret;
+ struct saned_fd *f;
-#if WITH_AVAHI
- if ((avahi_pid > 0) && (ret == avahi_pid))
- {
- avahi_pid = -1;
- numchildren--;
- return ret;
- }
-#endif /* WITH_AVAHI */
+ f = (struct saned_fd *) malloc (sizeof(struct saned_fd));
+ if (f == NULL)
+ goto fail;
- for (c = children; (c != NULL) && (c->next != NULL); p = c, c = c->next)
- {
- if (c->pid == ret)
- {
- if (c == children)
- children = c->next;
- else if (p != NULL)
- p->next = c->next;
+ f->type = type;
+ f->fd = fd;
+ f->interesting_events = interesting_events;
+ f->next = saned_fds;
- free(c);
+ saned_fds = f;
+ num_saned_fds++;
- numchildren--;
+ return fd;
- break;
- }
- }
+fail:
+ DBG (DBG_ERR, "add_fd: cannot manage fd, %s\n", strerror(errno));
+ close(fd);
+ return -1;
+}
- return ret;
+static void
+close_fds(unsigned type_mask, int specific_fd)
+{
+ struct saned_fd *f, **nextp;
+
+ for (nextp = &saned_fds; (f = *nextp); /* */) {
+ if (type_mask & (1 << f->type) ||
+ specific_fd == f->fd) {
+ close(f->fd);
+ *nextp = f->next;
+ num_saned_fds--;
+ free(f);
+ } else
+ nextp = &f->next;
+ }
}
-static int
-add_child (pid_t pid)
+static void
+add_child (pid_t pid, enum saned_child_type type)
{
struct saned_child *c;
c = (struct saned_child *) malloc (sizeof(struct saned_child));
-
if (c == NULL)
- {
- DBG (DBG_ERR, "add_child: out of memory\n");
- return -1;
- }
+ goto fail;
+ c->type = type;
c->pid = pid;
+ c->pidfd = -1;
c->next = children;
+#ifdef HAVE_PIDFD_OPEN
+ c->pidfd = pidfd_open(pid, 0);
+ if (c->pidfd == -1)
+ DBG (DBG_DBG, "add_child: could not open pidfd for child process, %s\n", strerror(errno));
+ else
+ add_fd(c->pidfd, SANED_FD_PROCESS, POLLIN);
+#endif
+
children = c;
+ numchildren++;
+ return;
- return 0;
+fail:
+ /* If the child process cannot be managed, kill it now. */
+ DBG (DBG_ERR, "add_child: cannot manage child process, %s\n", strerror(errno));
+ kill(pid, SIGTERM);
+}
+
+
+static int
+wait_child (pid_t pid, int *status, int options)
+{
+ struct saned_child *c, **nextp;
+ int ret;
+
+ ret = waitpid(pid, status, options);
+
+ if (ret <= 0)
+ return ret;
+
+ for (nextp = &children; (c = *nextp); /* */) {
+ if (c->pid == ret) {
+ *nextp = c->next;
+ numchildren--;
+ close_fds(0, c->pidfd);
+ free(c);
+ break;
+ } else
+ nextp = &c->next;
+ }
+ return ret;
}
@@ -2383,7 +2444,7 @@ handle_connection (int fd)
p = getprotobyname ("tcp");
if (p == 0)
{
- DBG (DBG_WARN, "handle_connection: cannot look up `tcp' protocol number");
+ DBG (DBG_WARN, "handle_connection: cannot look up `tcp' protocol number\n");
}
else
level = p->p_proto;
@@ -2391,7 +2452,7 @@ handle_connection (int fd)
# endif /* SOL_TCP */
if (level == -1
|| setsockopt (wire.io.fd, level, TCP_NODELAY, &on, sizeof (on)))
- DBG (DBG_WARN, "handle_connection: failed to put socket in TCP_NODELAY mode (%s)",
+ DBG (DBG_WARN, "handle_connection: failed to put socket in TCP_NODELAY mode (%s)\n",
strerror (errno));
#endif /* !TCP_NODELAY */
@@ -2433,8 +2494,8 @@ handle_client (int fd)
else if (pid > 0)
{
/* parent */
- add_child (pid);
close(fd);
+ add_child (pid, SANED_CHILD_CLIENT);
}
else
{
@@ -2445,20 +2506,28 @@ handle_client (int fd)
}
static void
+kill_children(int sig)
+{
+ struct saned_child *c;
+
+ /* The only type of child we kill is Avahi. */
+ for (c = children; c; c = c->next)
+ if (c->type == SANED_CHILD_AVAHI)
+ kill(c->pid, sig);
+}
+
+static void
bail_out (int error)
{
DBG (DBG_ERR, "%sbailing out, waiting for children...\n", (error) ? "FATAL ERROR; " : "");
-#if WITH_AVAHI
- if (avahi_pid > 0)
- kill (avahi_pid, SIGTERM);
-#endif /* WITH_AVAHI */
-
+ kill_children(SIGTERM);
while (numchildren > 0)
wait_child (-1, NULL, 0);
DBG (DBG_ERR, "bail_out: all children exited\n");
+ close_fds(-1, -1);
exit ((error) ? 1 : 0);
}
@@ -2480,7 +2549,7 @@ sig_int_term_handler (int signum)
#if WITH_AVAHI
static void
-saned_avahi (struct pollfd *fds, int nfds);
+saned_avahi (void);
static void
saned_create_avahi_services (AvahiClient *c);
@@ -2493,16 +2562,16 @@ saned_avahi_group_callback (AvahiEntryGroup *g, AvahiEntryGroupState state, void
static void
-saned_avahi (struct pollfd *fds, int nfds)
+saned_avahi (void)
{
- struct pollfd *fdp = NULL;
+ int avahi_pid;
int error;
avahi_pid = fork ();
if (avahi_pid > 0)
{
- numchildren++;
+ add_child(avahi_pid, SANED_CHILD_AVAHI);
return;
}
else if (avahi_pid < 0)
@@ -2514,11 +2583,8 @@ saned_avahi (struct pollfd *fds, int nfds)
signal (SIGINT, NULL);
signal (SIGTERM, NULL);
- /* Close network fds */
- for (fdp = fds; nfds > 0; nfds--, fdp++)
- close (fdp->fd);
-
- free(fds);
+ /* Close parent fds */
+ close_fds(-1, -1);
avahi_svc_name = avahi_strdup(SANED_NAME);
@@ -2853,17 +2919,15 @@ read_config (void)
#ifdef SANED_USES_AF_INDEP
static void
-do_bindings_family (int family, int *nfds, struct pollfd **fds, struct addrinfo *res)
+do_bindings_family (int family, struct addrinfo *res)
{
struct addrinfo *resp;
- struct pollfd *fdp;
short sane_port;
int fd = -1;
int on = 1;
int i;
sane_port = bind_port;
- fdp = *fds;
for (resp = res, i = 0; resp != NULL; resp = resp->ai_next, i++)
{
@@ -2953,23 +3017,15 @@ do_bindings_family (int family, int *nfds, struct pollfd **fds, struct addrinfo
}
}
- fdp->fd = fd;
- fdp->events = POLLIN;
-
- (*nfds)++;
- fdp++;
+ add_fd(fd, SANED_FD_LISTENER, POLLIN);
}
-
- *fds = fdp;
}
static void
-do_bindings (int *nfds, struct pollfd **fds)
+do_bindings (void)
{
struct addrinfo *res;
- struct addrinfo *resp;
struct addrinfo hints;
- struct pollfd *fdp;
int err;
DBG (DBG_DBG, "do_bindings: trying to get port for service \"%s\" (getaddrinfo)\n", SANED_SERVICE_NAME);
@@ -2994,31 +3050,15 @@ do_bindings (int *nfds, struct pollfd **fds)
}
}
- for (resp = res, *nfds = 0; resp != NULL; resp = resp->ai_next, (*nfds)++)
- ;
-
- *fds = malloc (*nfds * sizeof (struct pollfd));
-
- if (fds == NULL)
- {
- DBG (DBG_ERR, "do_bindings: not enough memory for fds\n");
- freeaddrinfo (res);
- bail_out (1);
- }
-
- fdp = *fds;
- *nfds = 0;
-
/* bind IPv6 first, IPv4 second */
#ifdef ENABLE_IPV6
- do_bindings_family (AF_INET6, nfds, &fdp, res);
+ do_bindings_family (AF_INET6, res);
#endif
- do_bindings_family (AF_INET, nfds, &fdp, res);
+ do_bindings_family (AF_INET, res);
- resp = NULL;
freeaddrinfo (res);
- if (*nfds <= 0)
+ if (res == NULL)
{
DBG (DBG_ERR, "do_bindings: couldn't bind an address. Exiting.\n");
bail_out (1);
@@ -3028,7 +3068,7 @@ do_bindings (int *nfds, struct pollfd **fds)
#else /* !SANED_USES_AF_INDEP */
static void
-do_bindings (int *nfds, struct pollfd **fds)
+do_bindings (void)
{
struct sockaddr_in sin;
struct servent *serv;
@@ -3052,15 +3092,6 @@ do_bindings (int *nfds, struct pollfd **fds)
DBG (DBG_WARN, "do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.\n");
}
- *nfds = 1;
- *fds = malloc (*nfds * sizeof (struct pollfd));
-
- if (fds == NULL)
- {
- DBG (DBG_ERR, "do_bindings: not enough memory for fds\n");
- bail_out (1);
- }
-
memset (&sin, 0, sizeof (sin));
sin.sin_family = AF_INET;
@@ -3075,24 +3106,23 @@ do_bindings (int *nfds, struct pollfd **fds)
DBG (DBG_DBG, "do_bindings: setsockopt ()\n");
if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)))
- DBG (DBG_ERR, "do_bindings: failed to put socket in SO_REUSEADDR mode (%s)", strerror (errno));
+ DBG (DBG_ERR, "do_bindings: failed to put socket in SO_REUSEADDR mode (%s)\n", strerror (errno));
DBG (DBG_DBG, "do_bindings: bind ()\n");
if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0)
{
- DBG (DBG_ERR, "do_bindings: bind failed: %s", strerror (errno));
+ DBG (DBG_ERR, "do_bindings: bind failed: %s\n", strerror (errno));
bail_out (1);
}
DBG (DBG_DBG, "do_bindings: listen ()\n");
if (listen (fd, 1) < 0)
{
- DBG (DBG_ERR, "do_bindings: listen failed: %s", strerror (errno));
+ DBG (DBG_ERR, "do_bindings: listen failed: %s\n", strerror (errno));
bail_out (1);
}
- (*fds)->fd = fd;
- (*fds)->events = POLLIN;
+ add_fd(fd, SANED_FD_LISTENER, POLLIN);
}
#endif /* SANED_USES_AF_INDEP */
@@ -3209,16 +3239,16 @@ runas_user (char *user)
static void
run_standalone (char *user)
{
- struct pollfd *fds = NULL;
- struct pollfd *fdp = NULL;
- int nfds;
+ struct pollfd *poll_set = NULL;
+ int poll_set_valid = SANE_FALSE;
+ int running = SANE_TRUE;
int fd = -1;
int i;
int ret;
FILE *pidfile;
- do_bindings (&nfds, &fds);
+ do_bindings ();
if (run_foreground == SANE_FALSE)
{
@@ -3254,7 +3284,11 @@ run_standalone (char *user)
else
DBG (DBG_ERR, "Could not write PID file: %s\n", strerror (errno));
- chdir ("/");
+ if (chdir ("/") != 0)
+ {
+ DBG (DBG_ERR, "Could not change to root directory: %s\n", strerror (errno));
+ exit(1);
+ }
dup2 (fd, STDIN_FILENO);
dup2 (fd, STDOUT_FILENO);
@@ -3263,26 +3297,55 @@ run_standalone (char *user)
close (fd);
setsid ();
-
- signal(SIGINT, sig_int_term_handler);
- signal(SIGTERM, sig_int_term_handler);
}
+ signal(SIGINT, sig_int_term_handler);
+ signal(SIGTERM, sig_int_term_handler);
+
if (user)
runas_user(user);
#if WITH_AVAHI
DBG (DBG_INFO, "run_standalone: spawning Avahi process\n");
- saned_avahi (fds, nfds);
+ saned_avahi ();
/* NOT REACHED (Avahi process) */
#endif /* WITH_AVAHI */
DBG (DBG_MSG, "run_standalone: waiting for control connection\n");
- while (1)
+ while (running)
{
- ret = poll (fds, nfds, 500);
+ struct saned_child *child;
+ struct saned_fd *sfd;
+ int timeout_needed = SANE_FALSE;
+ int do_rebind = SANE_FALSE;
+ int do_reap;
+
+ for (child = children; child; child = child->next)
+ if (child->pidfd == -1)
+ timeout_needed = SANE_TRUE;
+ do_reap = timeout_needed;
+
+ if (!poll_set_valid)
+ {
+ void *new_poll_set = realloc(poll_set, num_saned_fds * sizeof *poll_set);
+ if (new_poll_set == NULL && num_saned_fds != 0)
+ {
+ DBG (DBG_ERR, "run_standalone: poll set allocation failed: %s\n", strerror (errno));
+ free(poll_set);
+ bail_out (1);
+ }
+ poll_set = (struct pollfd *) new_poll_set;
+ for (sfd = saned_fds, i = 0; sfd; sfd = sfd->next, i++) {
+ poll_set[i].fd = sfd->fd;
+ poll_set[i].events = sfd->interesting_events;
+ }
+ assert(i == num_saned_fds);
+ poll_set_valid = SANE_TRUE;
+ }
+
+ ret = poll (poll_set, num_saned_fds, timeout_needed ? 500 : -1);
if (ret < 0)
{
if (errno == EINTR)
@@ -3290,59 +3353,67 @@ run_standalone (char *user)
else
{
DBG (DBG_ERR, "run_standalone: poll failed: %s\n", strerror (errno));
- free (fds);
+ close_fds(-1, -1);
bail_out (1);
}
}
- /* Wait for children */
- while (wait_child (-1, NULL, WNOHANG) > 0)
- ;
-
- if (ret == 0)
- continue;
-
- for (i = 0, fdp = fds; i < nfds; i++, fdp++)
+ /* Do not allow fd list to change while iterating over poll events, otherwise
+ * we shall have to look them up each time. */
+ for (sfd = saned_fds, i = 0; ret != 0 && i < num_saned_fds; i++, sfd = sfd->next)
{
- /* Error on an fd */
- if (fdp->revents & (POLLERR | POLLHUP | POLLNVAL))
- {
- for (i = 0, fdp = fds; i < nfds; i++, fdp++)
- close (fdp->fd);
-
- free (fds);
-
- DBG (DBG_WARN, "run_standalone: invalid fd in set, attempting to re-bind\n");
+ struct pollfd *pfd = poll_set + i;
- /* Reopen sockets */
- do_bindings (&nfds, &fds);
+ assert(sfd);
+ assert(sfd->fd == pfd->fd);
- break;
- }
- else if (! (fdp->revents & POLLIN))
+ if (pfd->revents == 0)
continue;
+ else
+ ret--;
- fd = accept (fdp->fd, 0, 0);
- if (fd < 0)
- {
- DBG (DBG_ERR, "run_standalone: accept failed: %s", strerror (errno));
- continue;
+ switch (sfd->type) {
+ case SANED_FD_LISTENER:
+ if (pfd->revents & (POLLERR | POLLHUP | POLLNVAL))
+ do_rebind = SANE_TRUE;
+ else if (pfd->revents & POLLIN)
+ {
+ fd = accept (sfd->fd, 0, 0);
+ if (fd < 0 && errno != EAGAIN)
+ DBG (DBG_ERR, "run_standalone: accept failed: %s\n", strerror (errno));
+ else if (fd >= 0)
+ {
+ handle_client (fd);
+ if (run_once == SANE_TRUE)
+ running = SANE_FALSE; /* We have handled the only connection we're going to handle */
+ }
+ }
+ break;
+ case SANED_FD_PROCESS:
+ if (pfd->revents & POLLIN) {
+ do_reap = SANE_TRUE;
+ poll_set_valid = SANE_FALSE; /* We will expect to drop a pidfd */
}
+ }
+ }
- handle_client (fd);
-
- if (run_once == SANE_TRUE)
- break; /* We have handled the only connection we're going to handle */
+ if (do_rebind)
+ {
+ DBG (DBG_WARN, "run_standalone: invalid fd in set, attempting to re-bind\n");
+ close_fds(1 << SANED_FD_LISTENER, -1);
+ do_bindings ();
+ poll_set_valid = SANE_FALSE;
}
- if (run_once == SANE_TRUE)
- break;
+ if (do_reap)
+ while (wait_child (-1, NULL, WNOHANG) > 0);
}
- for (i = 0, fdp = fds; i < nfds; i++, fdp++)
- close (fdp->fd);
-
- free (fds);
+ free(poll_set);
+ close_fds(-1, -1);
+ kill_children(SIGTERM);
+ while (numchildren > 0)
+ wait_child (-1, NULL, 0);
}
@@ -3389,7 +3460,7 @@ run_inetd (char __sane_unused__ *sock)
if (fd == -1)
{
- DBG (DBG_ERR, "run_inetd: duplicating fd failed: %s", strerror (errno));
+ DBG (DBG_ERR, "run_inetd: duplicating fd failed: %s\n", strerror (errno));
return;
}
}
@@ -3399,7 +3470,7 @@ run_inetd (char __sane_unused__ *sock)
dave_null = open ("/dev/null", O_RDWR);
if (dave_null < 0)
{
- DBG (DBG_ERR, "run_inetd: could not open /dev/null: %s", strerror (errno));
+ DBG (DBG_ERR, "run_inetd: could not open /dev/null: %s\n", strerror (errno));
return;
}
@@ -3436,6 +3507,7 @@ static void usage(char *me, int err)
" -a, --alone[=user] equal to `-l -D -u user'\n"
" -l, --listen run in standalone mode (listen for connection)\n"
" -u, --user=user run as `user'\n"
+ " -n, --allow-network allow saned to use network scanners\n"
" -D, --daemonize run in background\n"
" -o, --once exit after first client disconnects\n"
" -d, --debug=level set debug level `level' (default is 2)\n"
@@ -3457,6 +3529,7 @@ static struct option long_options[] =
{"alone", optional_argument, 0, 'a'},
{"listen", no_argument, 0, 'l'},
{"user", required_argument, 0, 'u'},
+ {"allow-network", no_argument, 0, 'n'},
{"daemonize", no_argument, 0, 'D'},
{"once", no_argument, 0, 'o'},
{"debug", required_argument, 0, 'd'},
@@ -3488,8 +3561,9 @@ main (int argc, char *argv[])
run_mode = SANED_RUN_INETD;
run_foreground = SANE_TRUE;
run_once = SANE_FALSE;
+ allow_network = SANE_FALSE;
- while((c = getopt_long(argc, argv,"ha::lu:Dod:eb:p:B:", long_options, &long_index )) != -1)
+ while((c = getopt_long(argc, argv,"ha::lu:nDod:eb:p:B:", long_options, &long_index )) != -1)
{
switch(c) {
case 'a':
@@ -3504,6 +3578,9 @@ main (int argc, char *argv[])
case 'u':
user = optarg;
break;
+ case 'n':
+ allow_network = SANE_TRUE;
+ break;
case 'D':
run_foreground = SANE_FALSE;
break;
diff --git a/frontend/scanimage.c b/frontend/scanimage.c
index ff53157..d79052c 100644
--- a/frontend/scanimage.c
+++ b/frontend/scanimage.c
@@ -2372,7 +2372,7 @@ Parameters are separated by a blank from single-character options (e.g.\n\
%%n (newline)\n\
-b, --batch[=FORMAT] working in batch mode, FORMAT is `out%%d.pnm' `out%%d.tif'\n\
`out%%d.png' or `out%%d.jpg' by default depending on --format\n\
- This option is incompatible with --output-file.");
+ This option is incompatible with --output-file.\n");
printf ("\
--batch-start=# page number to start naming files with\n\
--batch-count=# how many pages to scan in batch mode\n\
diff --git a/include/sane/sanei_usb.h b/include/sane/sanei_usb.h
index 81032db..f6597c8 100644
--- a/include/sane/sanei_usb.h
+++ b/include/sane/sanei_usb.h
@@ -217,12 +217,12 @@ extern SANE_Status sanei_usb_testing_enable_record(SANE_String_Const path,
* Returns backend name for the file registered in sanei_usb_testing_enable.
* The caller is responsible for freeing it.
*/
-extern SANE_String sanei_usb_testing_get_backend();
+extern SANE_String sanei_usb_testing_get_backend(void);
/** Returns SANE_TRUE if replay testing mode is enabled, i.e. whether we are working with fake
* scan data.
*/
-extern SANE_Bool sanei_usb_is_replay_mode_enabled();
+extern SANE_Bool sanei_usb_is_replay_mode_enabled(void);
/** Clears currently recorded data.
@@ -235,7 +235,7 @@ extern SANE_Bool sanei_usb_is_replay_mode_enabled();
This function may only be called when no USB devices are open, otherwise the behavior is
unpredictable.
*/
-extern void sanei_usb_testing_record_clear();
+extern void sanei_usb_testing_record_clear(void);
/** Records a debug message in the captured USB data if testing mode is enabled. If testing mode
* is not enabled, this function does nothing.
diff --git a/po/LINGUAS b/po/LINGUAS
index dd7364c..47e87d9 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -25,5 +25,6 @@ pl
pt
ru
sv
+tr
uk
zh_CN
diff --git a/po/bg.po b/po/bg.po
index 623a4f3..f86a902 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.11\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-17 22:59+0100\n"
"Last-Translator: Pavel Constantinov <pavelconstantinov@bigfoot.com>\n"
"Language-Team: <>\n"
@@ -26,7 +26,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -42,7 +42,7 @@ msgid "Geometry"
msgstr "Геометрия"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -57,7 +57,7 @@ msgstr "Повишение"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1717,7 +1717,7 @@ msgstr "Избира кривата на коригираната гама"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1841,28 +1841,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Принт на опциите"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1887,14 +1887,14 @@ msgstr ""
"Използва неблокиращ IO порт за sane_read(), ако фронтенда го поддържа."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Симплексно"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Дуплексно"
@@ -1906,7 +1906,7 @@ msgid "Transparency Unit"
msgstr "Прозрачност"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2271,13 +2271,13 @@ msgid "Eject document after scanning"
msgstr "Извади документа след сканиране"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr ""
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3277,165 +3277,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Дуплексно"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, fuzzy, no-c-format
msgid "Extras"
msgstr "Екстра бързо"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Цветно Lineart"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Калибрация"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Дефинирай режима на калибрация"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Режим калибрация"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, fuzzy, no-c-format
msgid "Lamp off time"
msgstr "Изкл. лампа"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Груба калибрация"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Изчакай натискане на бутона"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Изчакай натискане на бутона"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Изчакай натискане на бутона"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Прозрачност"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Обнови опциите"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Обнови опциите"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Обнови опциите"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Обнови опциите"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Груба калибрация"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Задължителна калибрация преди сканиране"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr ""
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Калибриране"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Започване на калибрацията."
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Груба калибрация"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Режим калибрация"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Груба калибрация"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Офсет - зелено"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6113,27 +6113,27 @@ msgstr ""
"Накарай бекенда да върне статус-кода SANE_STATUS_ACCESS_DENIED след "
"повикване на sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Вкл. лампа"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Включи лампата на скенера"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Изкл. лампа"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Изключва лампата на скенера"
diff --git a/po/ca.po b/po/ca.po
index 4d82e42..3629c42 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.29\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2020-01-17 11:40+0100\n"
"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@@ -29,7 +29,7 @@ msgstr "Estàndard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -45,7 +45,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -60,7 +60,7 @@ msgstr "Millora"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1758,7 +1758,7 @@ msgstr ""
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1882,30 +1882,30 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "El percentatge per a saltar el blanc del programari"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Sol·licita al controlador que descarti les pàgines amb un percentatge "
"baix de píxels foscos"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Opcions per a la impressió"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Controls per a la unitat aprovadora"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1931,14 +1931,14 @@ msgstr ""
"frontal."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Una cara"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dues cares"
@@ -1950,7 +1950,7 @@ msgid "Transparency Unit"
msgstr "Unitat per a la transparència"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2316,13 +2316,13 @@ msgid "Eject document after scanning"
msgstr "Expulsa el document després de l'escaneig"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Mode ADF"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Seleccionar el mode de l'ADF (una cara/dues cares)"
@@ -3388,38 +3388,38 @@ msgstr "Marcador de la densitat"
msgid "Duplex switch"
msgstr "Commuta a doble cara"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extres"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Filtre de color"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Quan s'usa gris o art lineal, aquesta opció seleccionarà el color a usar."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Fitxer de calibratge"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Especifica el fitxer de calibratge a usar"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Temps de caducitat per a la memòria cau del calibratge"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3429,12 +3429,12 @@ msgstr ""
"memòria cau. Un valor de 0 indicarà que no s'usarà la memòria cau. Un "
"valor negatiu indicarà que la memòria cau no caducarà mai."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Temps per apagar la làmpada"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3443,118 +3443,118 @@ msgstr ""
"La llum s'apagarà després del temps determinat (en minuts). Un valor de "
"0 indicarà que no s'apagarà la làmpada."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Apaga la làmpada durant l'escaneig"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "La llum s'apagarà durant l'escaneig."
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Botó de fitxer"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Botó OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Botó d'encesa"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Botó extra"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Unitat per a la transparència"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Necessita calibratge"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "L'escàner necessita calibratge per als ajustaments actuals"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Botons"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibratge"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Comença el calibratge emprant un full especial"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Neteja el calibratge"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Neteja la memòria cau del calibratge"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Força el calibratge"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
"Força el calibratge ignorant-ho tot i qualsevol memòria cau del "
"calibratge"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ignora els desplaçaments interns"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6323,27 +6323,27 @@ msgstr ""
"Força el dorsal perquè retorni el codi d'estat "
"«SANE_STATUS_ACCESS_DENIED» després de cridar al «sane_read()»."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Aquesta opció reflecteix l'estat d'un botó de l'escàner."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Encén la làmpada"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Encén la llum de l'escàner"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Apaga la làmpada"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Apaga la llum de l'escàner"
diff --git a/po/ca@valencia.po b/po/ca@valencia.po
index 0a7c72e..d7c59c7 100644
--- a/po/ca@valencia.po
+++ b/po/ca@valencia.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.29\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2020-01-17 11:40+0100\n"
"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@@ -29,7 +29,7 @@ msgstr "Estàndard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -45,7 +45,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -60,7 +60,7 @@ msgstr "Millora"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1758,7 +1758,7 @@ msgstr ""
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1882,30 +1882,30 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "El percentatge per a saltar el blanc del programari"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Sol·licita al controlador que descarti les pàgines amb un percentatge "
"baix de píxels foscos"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Opcions per a la impressió"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Controls per a la unitat aprovadora"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1931,14 +1931,14 @@ msgstr ""
"frontal."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Una cara"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dues cares"
@@ -1950,7 +1950,7 @@ msgid "Transparency Unit"
msgstr "Unitat per a la transparència"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2316,13 +2316,13 @@ msgid "Eject document after scanning"
msgstr "Expulsa el document després de l'escaneig"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Mode ADF"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Seleccionar el mode de l'ADF (una cara/dues cares)"
@@ -3388,38 +3388,38 @@ msgstr "Marcador de la densitat"
msgid "Duplex switch"
msgstr "Commuta a doble cara"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extres"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Filtre de color"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Quan s'usa gris o art lineal, aquesta opció seleccionarà el color a usar."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Fitxer de calibratge"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Especifica el fitxer de calibratge a usar"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Temps de caducitat per a la memòria cau del calibratge"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3429,12 +3429,12 @@ msgstr ""
"memòria cau. Un valor de 0 indicarà que no s'usarà la memòria cau. Un "
"valor negatiu indicarà que la memòria cau no caducarà mai."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Temps per apagar la làmpada"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3443,118 +3443,118 @@ msgstr ""
"La llum s'apagarà després del temps determinat (en minuts). Un valor de "
"0 indicarà que no s'apagarà la làmpada."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Apaga la làmpada durant l'escaneig"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "La llum s'apagarà durant l'escaneig."
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Botó de fitxer"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Botó OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Botó d'encesa"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Botó extra"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Unitat per a la transparència"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Botó de PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Necessita calibratge"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "L'escàner necessita calibratge per als ajustaments actuals"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Botons"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibratge"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Comença el calibratge emprant un full especial"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Neteja el calibratge"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Neteja la memòria cau del calibratge"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Força el calibratge"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
"Força el calibratge ignorant-ho tot i qualsevol memòria cau del "
"calibratge"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ignora els desplaçaments interns"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6322,27 +6322,27 @@ msgstr ""
"Força el dorsal perquè retorne el codi d'estat "
"«SANE_STATUS_ACCESS_DENIED» després de cridar al «sane_read()»."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Aquesta opció reflecteix l'estat d'un botó de l'escàner."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Encén la làmpada"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Encén la llum de l'escàner"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Apaga la làmpada"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Apaga la llum de l'escàner"
diff --git a/po/cs.po b/po/cs.po
index e50b7a9..ee1adc2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends.cs\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-17 22:59+0100\n"
"Last-Translator: Josef <joeprusa@volny.cz>\n"
"Language-Team: \n"
@@ -27,7 +27,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -43,7 +43,7 @@ msgid "Geometry"
msgstr "Geometrie"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -58,7 +58,7 @@ msgstr "Vylepšení"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1717,7 +1717,7 @@ msgstr "Nastaví gama korekci přenosové křivky"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1841,28 +1841,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Tisk voleb"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1887,14 +1887,14 @@ msgstr ""
"Použít neblokující V/V pro sane_read(), pokud to frontend podporuje."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Jednostraně"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Oboustraně"
@@ -1906,7 +1906,7 @@ msgid "Transparency Unit"
msgstr "Prosvětlovací jednotka"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2270,13 +2270,13 @@ msgid "Eject document after scanning"
msgstr "Vysunout dokument po naskenování"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr ""
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3274,165 +3274,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Oboustraně"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, fuzzy, no-c-format
msgid "Extras"
msgstr "Velmi rychlý"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Barevná perokresba"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrace"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Definovat režim kalibrace"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Režim kalibrace"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, fuzzy, no-c-format
msgid "Lamp off time"
msgstr "Vypnout lampu"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Hrubá kalibrace"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Čekat na tlačítko"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Čekat na tlačítko"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Čekat na tlačítko"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Prosvětlovací jednotka"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Zvláštní volby"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Zvláštní volby"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Zvláštní volby"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Zvláštní volby"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Hrubá kalibrace"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Vynutit kalibraci skeneru před skenováním"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, fuzzy, no-c-format
msgid "Buttons"
msgstr "Stav tlačítek"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrovat"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Hrubá kalibrace"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Hrubá kalibrace"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Režim kalibrace"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Hrubá kalibrace"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Odstup zelené"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6099,27 +6099,27 @@ msgstr ""
"Přinutit backend, aby po volání sane_read() vrátil stavový kód "
"SANE_STATUS_ACCESS_DENIED."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Zapnout lampu"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Zapnout lampu skeneru"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Vypnout lampu"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Vypnout lampu skeneru"
diff --git a/po/da.po b/po/da.po
index 0f980f5..c1b6c2d 100644
--- a/po/da.po
+++ b/po/da.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.17\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-17 22:59+0100\n"
"Last-Translator: Mogens Jaeger <mogensjaeger@get2net.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
@@ -32,7 +32,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -48,7 +48,7 @@ msgid "Geometry"
msgstr "Skanområde"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -63,7 +63,7 @@ msgstr "Forbedring"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1721,7 +1721,7 @@ msgstr "Vælger gammakorrigeret overføringskurve"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1845,28 +1845,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Udskriv indstillinger"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1892,14 +1892,14 @@ msgstr ""
"forenden."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Enkeltsidet"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dobbeltsidet"
@@ -1911,7 +1911,7 @@ msgid "Transparency Unit"
msgstr "Filmenhed"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2275,13 +2275,13 @@ msgid "Eject document after scanning"
msgstr "Skub dokumentet ud efter skanning"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "ADF-tilstand"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Vælger ADF tilstand (enkeltsidet/dobbeltsidet)"
@@ -3282,49 +3282,49 @@ msgstr ""
msgid "Duplex switch"
msgstr "Duplex skan"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Ekstra"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Farve stregtegning"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Definer kalibreringstilstand"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kalibreringsdatacache"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Sluk-lampe tid"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3333,116 +3333,116 @@ msgstr ""
"Lampen bliver slukket efter den angivne tid (i minutter). Værdien 0 "
"bevirker, at lampen ikke bliver slukket."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Grovkalibrering"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Vent på knap"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Vent på knap"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Vent på knap"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Filmenhed"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Avancerede indstillinger"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Avancerede indstillinger"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Avancerede indstillinger"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Avancerede indstillinger"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Grovkalibrering"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Gennemtving kalibrering før skanning"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Knapper"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Begynd kalibreringsprocessen."
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Grovkalibrering"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Kalibreringsdatacache"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Grovkalibrering"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Grøn forskydning"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6122,27 +6122,27 @@ msgstr ""
"Tving bagenden til at returnere statuskoden SANE_STATUS_ACCESS_DENIED "
"efter sane_read() er blevet kaldt."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, fuzzy, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Denne indstilling reflekterer skannerknappernes status."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampe tændt"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Tænd for skannerlampen"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Sluk lampe"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Sluk for skannerens lampe"
diff --git a/po/de.po b/po/de.po
index f5511cd..197889e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.29\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2020-08-10 22:47+0200\n"
"Last-Translator: Rolf Bensch <rolf@bensch-online.de>\n"
"Language-Team: \n"
@@ -39,7 +39,7 @@ msgstr "Standard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -55,7 +55,7 @@ msgid "Geometry"
msgstr "Scanbereich"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -70,7 +70,7 @@ msgstr "Verbesserung"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1771,7 +1771,7 @@ msgstr "Wählt die korrigierte Gammakurve aus"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1895,28 +1895,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Schwellwert für Leerseitenerkennung"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "Seiten mit geringer Pixeldichte überspringen"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Gebe Optionen aus"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Einstellungen für Stempel"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1942,14 +1942,14 @@ msgstr ""
"Frontend unterstützt wird."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Einseitig"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Duplex"
@@ -1961,7 +1961,7 @@ msgid "Transparency Unit"
msgstr "Durchlichtaufsatz"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2325,13 +2325,13 @@ msgid "Eject document after scanning"
msgstr "Dokument nach dem Scannen auswerfen"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Dokumenteneinzug Modus"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Wählt den Duplex-Modus aus (einseitig/doppelseitig)"
@@ -3363,39 +3363,39 @@ msgstr "Dichte Einstellung"
msgid "Duplex switch"
msgstr "Duplexscan"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extras"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Farbfilter"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Diese Option wählt die verwendete Farbe für Strichzeichnungs- und "
"Graustufen-Scans."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Kalibrierungsdatei"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Kalibrierungsdatei auswählen"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Gültigkeitszeitraum für Kalibrierungszwischenspeicher"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3405,12 +3405,12 @@ msgstr ""
"Zwischenspeicher deaktiviert. Ein negativer Wert lässt die Gültigkeit "
"nie ablaufen."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Lampenausschaltzeit"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3419,117 +3419,117 @@ msgstr ""
"Die Lampe wird nach der angegebenen Zeit (in Minuten) ausgeschaltet. Ein "
"Wert von 0 bedeutet, dass die Lampe nich ausgeschaltet wird."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Während Scan Lampe ausschalten"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Die Lampe wird beim Scannen abgeschaltet. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Datei-Taste"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "OCR-Taste"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Einschalt-Taste"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Zusatztaste"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Durchlichtaufsatz"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "PDF-Taste"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "PDF-Taste"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "PDF-Taste"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "PDF-Taste"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Benötigt Kalibrierung"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr ""
"Der Scanner benötigt eine Kalibrierung für die momentanen Einstellungen"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Tasten"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrierung"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Starte den Kalibrierungsprozess mit einem Spezialblatt"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Kalibrierung zurücksetzen"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Kalibrierungszwischenspeicher löschen"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Kalibrierung erzwingen"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "Kalibrierung trotz Daten im Zwischenspeicher erzwingen"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Interne Offsets ignorieren"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6262,27 +6262,27 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den "
"Statuscode SANE_STATUS_ACCESS_DENIED zurückzuliefern."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Diese Option zeigt den Zustand einer Scannertaste an."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampe an"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Schalte Scannerlampe ein"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lampe aus"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Schalte Scannerlampe aus"
diff --git a/po/en_GB.po b/po/en_GB.po
index a5719cb..8ce864b 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.2.1\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2024-01-29 10:19-0800\n"
"Last-Translator: Ralph Little <skelband@gmail.com>\n"
"Language-Team: British English <kde-i18n-doc@kde.org>\n"
@@ -29,7 +29,7 @@ msgstr "Standard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -45,7 +45,7 @@ msgid "Geometry"
msgstr "Geometry"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -60,7 +60,7 @@ msgstr "Enhancement"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1738,7 +1738,7 @@ msgstr "Selects the gamma corrected transfer curve"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1862,28 +1862,28 @@ msgstr "Black-on-Image"
msgid "White-on-Black"
msgstr "White-on-Black"
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Software blank skip percentage"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "Request driver to discard pages with low percentage of dark pixels"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, no-c-format
msgid "Imprinter Options"
msgstr "Imprinter Options"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr "Controls for imprinter units"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1907,14 +1907,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr "Use non-blocking IO for sane_read() if supported by the frontend."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Simplex"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Duplex"
@@ -1926,7 +1926,7 @@ msgid "Transparency Unit"
msgstr "Transparency Unit"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2290,13 +2290,13 @@ msgid "Eject document after scanning"
msgstr "Eject document after scanning"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "ADF Mode"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Selects the ADF mode (simplex/duplex)"
@@ -3317,37 +3317,37 @@ msgstr "Density dial"
msgid "Duplex switch"
msgstr "Duplex switch"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extras"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Colour filter"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr "When using grey or lineart this option selects the used colour."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Calibration file"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Specify the calibration file to use"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Calibration cache expiration time"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3356,12 +3356,12 @@ msgstr ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Lamp off time"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3370,116 +3370,116 @@ msgstr ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Lamp off during scan"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "The lamp will be turned off during scan. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "File button"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "OCR button"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Power button"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Extra button"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, no-c-format
msgid "Transparency button"
msgstr "Transparency button"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, no-c-format
msgid "PDF function button 1"
msgstr "PDF function button 1"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, no-c-format
msgid "PDF function button 2"
msgstr "PDF function button 2"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, no-c-format
msgid "PDF function button 3"
msgstr "PDF function button 3"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, no-c-format
msgid "PDF function button 4"
msgstr "PDF function button 4"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Needs calibration"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "The scanner needs calibration for the current settings"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Buttons"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibrate"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Start calibration using special sheet"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Clear calibration"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Clear calibration cache"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Force calibration"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "Force calibration ignoring all and any calibration caches"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ignore internal offsets"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6193,27 +6193,27 @@ msgstr ""
"Force the backend to return the status code SANE_STATUS_ACCESS_DENIED "
"after sane_read() has been called."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "This option reflects the status of a scanner button."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lamp on"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Turn on scanner lamp"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lamp off"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Turn off scanner lamp"
diff --git a/po/eo.po b/po/eo.po
index ff50ae7..0d5efd6 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends.eo\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-08 13:28+0100\n"
"Last-Translator: A.C.Codazzi\n"
"Language-Team: <it@li.org>\n"
@@ -32,7 +32,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -48,7 +48,7 @@ msgid "Geometry"
msgstr "Geometrio"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -63,7 +63,7 @@ msgstr "Plibonigo"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1735,7 +1735,7 @@ msgstr "Ĝi elektas la kurbon de korektado de gama"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1859,28 +1859,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Presu la opciojn"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1905,14 +1905,14 @@ msgstr ""
"Ĝi uzas ne-blokantan eneligon por sane_read() se la fasado subtenas ĝin."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Unuopa"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Fronta-dorsa"
@@ -1924,7 +1924,7 @@ msgid "Transparency Unit"
msgstr "Reguligilo de Diafaneco"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2289,13 +2289,13 @@ msgid "Eject document after scanning"
msgstr "Ĝi elpelas la dokumento post la skanado"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Moduso por ADF"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Ĝi elektas la ADF-moduso (unuopa/fronta-dorsa)"
@@ -3294,50 +3294,50 @@ msgstr "Regilo de denseco"
msgid "Duplex switch"
msgstr "Fronta-dorsa skanado"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Ekstraĵoj"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Filtrilo de Koloro"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Kiam oni uzas grizan aŭ duuman kolorojn, tiu elektas uzatan koloron."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrigo"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Difinu moduson de kalibrigo"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kaŝmemoro por kalibrigo"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Ripozo de lampo"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3346,117 +3346,117 @@ msgstr ""
"La lampo estos elŝaltata post la fiksita tempo (en minutoj). La valoro "
"signifas ke la lampo neniam ripozos."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Elŝaltita lampo dum kalibrigo de nigro"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, fuzzy, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
"Nombro da minutoj pasantaj inter la skanado kaj la elŝalto de la lampo"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Atendu butonon"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Atendu butonon"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Atendu butonon"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Reguligilo de diafaneco"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Avanaj Opcioj"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Avanaj Opcioj"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Avanaj Opcioj"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Avanaj Opcioj"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Grajneca kalibrigo"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Ĝi devigas kalibrigon de skanilon antaŭ la skanado"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Butonoj"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrigu"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Startigu kalibrigadon."
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Grajneca kalibrigo"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Kaŝmemoro por kalibrigo"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Grajneca kalibrigo"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Deŝovo laŭ verdo"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6151,27 +6151,27 @@ msgstr ""
"Ĝi perfortas la internan interfacon revenigi la valoron pri stato "
"SANE_STATUS_ACCESS_DENIED post la alvoko de la funkcio sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, fuzzy, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Tiuj ĉi opcioj agas sur la stato de la butonoj de la skanilo."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Ŝaltu lampon"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Ĝi ŝaltas la lampon de la skanilo"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Elŝaltu lampon"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Ĝi elŝaltas la lampon de la skanilo"
diff --git a/po/es.po b/po/es.po
index 647a74c..5d47c93 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2009-06-25 10:22+0100\n"
"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
"Language-Team: GALPon MiniNo <minino@galpon.org>\n"
@@ -31,7 +31,7 @@ msgstr "Estándar"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -47,7 +47,7 @@ msgid "Geometry"
msgstr "Geometría"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -62,7 +62,7 @@ msgstr "Mejora"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1749,7 +1749,7 @@ msgstr "Selecciona la curva de transferencia de la corrección gamma"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1873,28 +1873,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Imprimir las opciones"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1919,14 +1919,14 @@ msgstr ""
"Usar una E/S no bloqueante para sane_red() si lo permite la interfaz."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Una cara"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dos caras"
@@ -1938,7 +1938,7 @@ msgid "Transparency Unit"
msgstr "Unidad de transparencias"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2304,13 +2304,13 @@ msgid "Eject document after scanning"
msgstr "Expulsar el documento después del escaneo"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Modo alimentador"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Seleccionar el modo del alimentador (una cara/dos caras)"
@@ -3313,50 +3313,50 @@ msgstr "Control de densidad"
msgid "Duplex switch"
msgstr "Escaneo a dos caras"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extras"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Filtro de color"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Cuando se usa gris o línea de arte esta opción selecciona el color usado."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Calibración"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Define el modo de calibración"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Caché de datos de calibración"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Tiempo de espera de la lámpara"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3365,116 +3365,116 @@ msgstr ""
"La lámpara será apagada después del tiempo dado (en minutos). Un valor "
"de 0 significa que la lámpara no será apagada"
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Apagar la lámpara durante la calibración de oscuridad"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, fuzzy, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Minutos que tardará la lámpara en apagarse tras el escaneo"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Botón de archivo"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Botón de OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Botón de energía"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Botón de correo-e"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Unidad de transparencias"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Limpiar la calibración"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Fuerza la calibración del escáner antes de realizar el escaneo"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Botones"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibrar"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Iniciar calibración usando una hoja especial"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Limpiar la calibración"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Limpiar la caché de datos de calibración"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Calibración tosca"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Desviación verde"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6185,27 +6185,27 @@ msgstr ""
"Forzar al motor a devolver el código de estado de "
"SANE_STATUS_ACCESS_DENIED después de haber sido llamado sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Esta opción refleja el estado de los botones del escáner"
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Encender lámpara"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Enciende la lámpara del escáner"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Apagar lámpara"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Apaga la lámpara del escáner"
diff --git a/po/fi.po b/po/fi.po
index dce5a57..12ec6b3 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.11\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-17 23:00+0100\n"
"Last-Translator: Harri Järvi <harri.jarvi@tut.fi>\n"
"Language-Team: Debian l10n Finnish <debian-l10n-finnish@lists.debian."
@@ -28,7 +28,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -44,7 +44,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -59,7 +59,7 @@ msgstr "Parannus"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1713,7 +1713,7 @@ msgstr "Valitsee gamma-korjauskäyrän"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1837,28 +1837,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Tulostusasetukset"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1882,14 +1882,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr "sane_read käyttää non-blocking IO:ta."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Yksipuolinen"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Kaksipuolinen"
@@ -1901,7 +1901,7 @@ msgid "Transparency Unit"
msgstr "Läpinäkyvyysyksikkö"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2265,13 +2265,13 @@ msgid "Eject document after scanning"
msgstr "Poista kohde kuvanluvun jälkeen"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Syötttapa"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Valitsee syöttötavan (yksi-/kaksipuolinen)"
@@ -3269,165 +3269,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Kaksipuolinen"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, fuzzy, no-c-format
msgid "Extras"
msgstr "Hyvin nopea"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Väriviivapiirros"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrointi"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Määrää kalibraatiotavan"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kalibrointitila"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, fuzzy, no-c-format
msgid "Lamp off time"
msgstr "Valo pois"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Raakakalibrointi"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Odota painiketta"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Odota painiketta"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Odota painiketta"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Läpinäkyvyysyksikkö"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Päivitä asetukset"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Päivitä asetukset"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Päivitä asetukset"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Päivitä asetukset"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Raakakalibrointi"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Pakottaa kalibroinnin ennen kuvanlukua."
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, fuzzy, no-c-format
msgid "Buttons"
msgstr "Painikkeen tila"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibroi"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Aloita kalibrointi."
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Raakakalibrointi"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Kalibrointitila"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Raakakalibrointi"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Vihreän siirtymä"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6101,27 +6101,27 @@ msgstr ""
"Pakota ajuri palauttamaan paluuarvo SANE_STATUS_ACCESS_DENIED, kun "
"sane_read() on kutsuttu."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Valo päälle"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Laittaa kuvanlukijan valon päälle"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Valo pois"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Sammuttaa kuvanlukijan valon"
diff --git a/po/fr.po b/po/fr.po
index 2148fc8..b5c111e 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -44,7 +44,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.31\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2023-07-24 10:22+0200\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2024-01-30 20:40+0000\n"
"Last-Translator: Thierry HUCHARD <thierryh@vivaldi.net>\n"
"Language-Team:\n"
@@ -66,7 +66,7 @@ msgstr "Général"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1975 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -74,7 +74,7 @@ msgstr "Général"
#: backend/mustek.c:4352 backend/mustek_usb.c:299 backend/mustek_usb2.c:463
#: backend/pixma/pixma_sane_options.c:161 backend/plustek.c:806
#: backend/plustek_pp.c:745 backend/sceptre.c:699
-#: backend/snapscan-options.c:550 backend/teco1.c:1092 backend/teco2.c:1907
+#: backend/snapscan-options.c:564 backend/teco1.c:1092 backend/teco2.c:1907
#: backend/teco3.c:917 backend/test.c:718 backend/u12.c:544
#: backend/umax.c:5174 backend/umax_pp.c:569
#, no-c-format
@@ -82,13 +82,13 @@ msgid "Geometry"
msgstr "Aire de numérisation"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
#: backend/mustek_usb2.c:429 backend/niash.c:751 backend/plustek.c:852
#: backend/plustek_pp.c:791 backend/sceptre.c:747
-#: backend/snapscan-options.c:617 backend/stv680.c:1064
+#: backend/snapscan-options.c:631 backend/stv680.c:1064
#: backend/teco1.c:1140 backend/teco2.c:1955 backend/teco3.c:965
#: backend/u12.c:590 backend/umax.c:5224 backend/umax_pp.c:618
#, no-c-format
@@ -97,7 +97,7 @@ msgstr "Réglages fins"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:923
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1127,7 +1127,7 @@ msgid "Background raster lines"
msgstr "Nombre de lignes de retour arrière"
#: backend/avision.h:79 backend/microtek2.h:624
-#: backend/snapscan-options.c:421
+#: backend/snapscan-options.c:435
#, no-c-format
msgid "Quality scan"
msgstr "Numérisation de qualité"
@@ -1783,11 +1783,11 @@ msgstr "Sélectionne la courbe de correction gamma"
#: backend/canon_dr.c:437 backend/epjitsu.c:241 backend/epson.c:499
#: backend/epson2-ops.c:101 backend/epson2.c:111 backend/epsonds-ops.c:31
-#: backend/epsonds.c:1323 backend/epsonds.h:65 backend/epsonds.h:69
+#: backend/epsonds.c:1326 backend/epsonds.h:65 backend/epsonds.h:69
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1796,7 +1796,7 @@ msgid "Flatbed"
msgstr "A plat"
#: backend/canon_dr.c:438 backend/epjitsu.c:242 backend/epsonds-ops.c:32
-#: backend/epsonds.c:1324 backend/epsonds.h:70 backend/fujitsu.c:691
+#: backend/epsonds.c:1327 backend/epsonds.h:70 backend/fujitsu.c:691
#: backend/kodak.c:138
#, no-c-format
msgid "ADF Front"
@@ -1809,7 +1809,7 @@ msgid "ADF Back"
msgstr "Chargeur automatique de documents, verso"
#: backend/canon_dr.c:440 backend/epjitsu.c:244 backend/epsonds-ops.c:33
-#: backend/epsonds.c:1325 backend/epsonds.h:71 backend/fujitsu.c:693
+#: backend/epsonds.c:1328 backend/epsonds.h:71 backend/fujitsu.c:693
#: backend/hp5590.c:92 backend/kodak.c:140 backend/pixma/pixma.c:1037
#, no-c-format
msgid "ADF Duplex"
@@ -1911,36 +1911,36 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Pourcentage logiciel du blanc ignoré"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Demande au pilote d'éliminer les pages ayant un faible pourcentage de "
"pixels foncés"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Liste des options"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Contrôles pour l'unité de validation"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
#: backend/mustek_usb.c:254 backend/mustek_usb2.c:342 backend/niash.c:731
#: backend/plustek.c:719 backend/plustek_pp.c:656 backend/sceptre.c:670
-#: backend/snapscan-options.c:354 backend/stv680.c:1027
+#: backend/snapscan-options.c:368 backend/stv680.c:1027
#: backend/teco2.c:1879 backend/test.c:377 backend/u12.c:471
#: backend/umax.c:5052
#, no-c-format
@@ -1960,14 +1960,14 @@ msgstr ""
"par l'application."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Recto"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Recto-verso"
@@ -1979,7 +1979,7 @@ msgid "Transparency Unit"
msgstr "Unité de Transparence"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2322,17 +2322,17 @@ msgstr "Définit le facteur de zoom utilisé par le scanner"
msgid "Quick format"
msgstr "Format rapide"
-#: backend/epson.c:3358 backend/epson2.c:1364 backend/epsonds.c:2025
+#: backend/epson.c:3358 backend/epson2.c:1364 backend/epsonds.c:2028
#, no-c-format
msgid "Optional equipment"
msgstr "Equipement optionnel"
-#: backend/epson.c:3429 backend/epson2.c:1401 backend/epsonds.c:2041
+#: backend/epson.c:3429 backend/epson2.c:1401 backend/epsonds.c:2044
#, no-c-format
msgid "Eject"
msgstr "Ejecter"
-#: backend/epson.c:3430 backend/epson2.c:1402 backend/epsonds.c:2042
+#: backend/epson.c:3430 backend/epson2.c:1402 backend/epsonds.c:2045
#, no-c-format
msgid "Eject the sheet in the ADF"
msgstr "Ejecter la feuille du chargeur automatique"
@@ -2348,13 +2348,13 @@ msgid "Eject document after scanning"
msgstr "Ejecte le document après la numérisation"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Mode du chargeur automatique de documents"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -2436,32 +2436,32 @@ msgstr "Profil de température de couleurs interne"
msgid "User defined CCT profile"
msgstr "Profil de température de couleurs utilsateur"
-#: backend/epsonds.c:2049
+#: backend/epsonds.c:2052
#, no-c-format
msgid "Load"
msgstr "Chargement"
-#: backend/epsonds.c:2050
+#: backend/epsonds.c:2053
#, no-c-format
msgid "Load a sheet in the ADF"
msgstr "Insérer un feuille dans le bach du chargeur automatique"
-#: backend/epsonds.c:2058
+#: backend/epsonds.c:2061
#, no-c-format
msgid "ADF Skew Correction"
msgstr "Correction des erreurs de l'ADF"
-#: backend/epsonds.c:2060
+#: backend/epsonds.c:2063
#, no-c-format
msgid "Enables ADF skew correction"
msgstr "Activer la correction des erreurs de l'ADF"
-#: backend/epsonds.c:2066
+#: backend/epsonds.c:2069
#, fuzzy, no-c-format
msgid "ADF CRP Correction"
msgstr "Correction des erreurs de l'ADF"
-#: backend/epsonds.c:2068
+#: backend/epsonds.c:2071
#, fuzzy, no-c-format
msgid "Enables ADF auto cropping"
msgstr "Activer la correction des erreurs de l'ADF"
@@ -3409,38 +3409,38 @@ msgstr "Cadran de densité"
msgid "Duplex switch"
msgstr "Commutateur recto-verso"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extras"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Filtre de couleur"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"En niveaux de gris ou en mode trait, sélectionne la couleur à utiliser."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Fichier de calibration"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Préciser le fichier de calibration à utiliser"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Délai d'expiration du cache de calibration"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3450,12 +3450,12 @@ msgstr ""
"valeur de 0 signifie que le cache n'est pas utilisé. Une valeur négative "
"signifie que le cache n'expire jamais."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Temps avant extinction de la lampe"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3464,117 +3464,117 @@ msgstr ""
"La lampe sera éteinte après ce laps de temps (en minutes). Entrer 0 pour "
"ne pas éteindre la lampe automatiquement."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Lampe éteinte pendant la numérisation"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "La lampe sera éteinte pendant la numérisation. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Bouton 'fichier'"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Bouton 'reconnaissance de caractères (OCR)'"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Bouton 'marche'"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Bouton 'Extra'"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Adaptateur pour transparents"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Bouton 'PDF'"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Bouton 'PDF'"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Bouton 'PDF'"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Bouton 'PDF'"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Calibration requise"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Le scanner a besoin d'être calibré avec les paramètres actuels"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Boutons"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibration"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Démarrer la calibration avec la feuille spéciale"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Effacer la calibration"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Efface le cache des données de calibration"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Forcer la Calibration"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
"Forcer la calibration en ignorant toutes les caches de calibration"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ignorer les offsets internes"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -5376,7 +5376,7 @@ msgstr "Utiliser l'adaptateur de diapositives"
msgid "This option turns off the lamp of the flatbed during a scan"
msgstr "Cette option éteint la lampe pendant la numérisation"
-#: backend/microtek2.h:625 backend/snapscan-options.c:422
+#: backend/microtek2.h:625 backend/snapscan-options.c:436
#, no-c-format
msgid "Highest quality but lower speed"
msgstr "Qualité maximale, mais vitesse réduite"
@@ -6328,27 +6328,27 @@ msgstr ""
"Oblige le pilote à renvoyer le code SANE_STATUS_ACCESS_DENIED (acces "
"refusé) après un appel à sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Cette option affiche l'état d'un bouton du scanner."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampe allumée"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Allume la lampe du scanner"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lampe éteinte"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Eteint la lampe du scanner"
@@ -6436,12 +6436,12 @@ msgstr ""
msgid "Focus point for scanning."
msgstr "Point de focalisation pour la numérisation"
-#: backend/snapscan-options.c:482
+#: backend/snapscan-options.c:496
#, no-c-format
msgid "Preview mode"
msgstr "Aperçu"
-#: backend/snapscan-options.c:484
+#: backend/snapscan-options.c:498
#, no-c-format
msgid ""
"Select the mode for previews. Greyscale previews usually give the best "
@@ -6450,12 +6450,12 @@ msgstr ""
"Sélectionne le mode de prévisualisation. Les aperçus en niveaux de gris "
"donnent habituellement le meilleur compromis entre vitesse et détails."
-#: backend/snapscan-options.c:601
+#: backend/snapscan-options.c:615
#, no-c-format
msgid "Predefined settings"
msgstr "Valeurs prédéfinies"
-#: backend/snapscan-options.c:603
+#: backend/snapscan-options.c:617
#, no-c-format
msgid ""
"Provides standard scanning areas for photographs, printed pages and the "
@@ -6464,42 +6464,42 @@ msgstr ""
"Fournit des emplacements standards pour la numérisation de photos, de "
"pages imprimées, etc..."
-#: backend/snapscan-options.c:884
+#: backend/snapscan-options.c:898
#, no-c-format
msgid "Frame"
msgstr "iCadre"
-#: backend/snapscan-options.c:885
+#: backend/snapscan-options.c:899
#, no-c-format
msgid "Frame to be scanned"
msgstr "Cadre à scanner"
-#: backend/snapscan-options.c:897
+#: backend/snapscan-options.c:911
#, no-c-format
msgid "Focus-mode"
msgstr "Mode Focus"
-#: backend/snapscan-options.c:898
+#: backend/snapscan-options.c:912
#, no-c-format
msgid "Auto or manual focus"
msgstr "Focus manuel ou automatique"
-#: backend/snapscan-options.c:911
+#: backend/snapscan-options.c:925
#, no-c-format
msgid "Focus-point"
msgstr "Point focal"
-#: backend/snapscan-options.c:912
+#: backend/snapscan-options.c:926
#, no-c-format
msgid "Focus point"
msgstr "Point focal"
-#: backend/snapscan-options.c:930
+#: backend/snapscan-options.c:944
#, no-c-format
msgid "Color lines per read"
msgstr "Nombre de lignes en couleurs par cycle de lecture"
-#: backend/snapscan-options.c:942
+#: backend/snapscan-options.c:956
#, no-c-format
msgid "Grayscale lines per read"
msgstr "Nombre de lignes en niveaux de gris par cycle de lecture"
diff --git a/po/gl.po b/po/gl.po
index 6ea1bd9..491c834 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2009-06-25 10:22+0100\n"
"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
@@ -32,7 +32,7 @@ msgstr "Estándar"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -48,7 +48,7 @@ msgid "Geometry"
msgstr "Xeometría"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -63,7 +63,7 @@ msgstr "Optimización"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1752,7 +1752,7 @@ msgstr "Selecciona a curva de transferencia da corrección gamma"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1876,28 +1876,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Imprimir as opcións"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1922,14 +1922,14 @@ msgstr ""
"Usar unha E/S non bloqueante para sane_red() se o permite a interface."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Unha cara"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Duas caras"
@@ -1941,7 +1941,7 @@ msgid "Transparency Unit"
msgstr "Unidade de transparencias"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2307,13 +2307,13 @@ msgid "Eject document after scanning"
msgstr "Expulsar o documento despois do escaneo"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Modo alimentador"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Escoller o modo do alimentador (unha cara/duas caras)"
@@ -3316,50 +3316,50 @@ msgstr "Control de densidade"
msgid "Duplex switch"
msgstr "Escaneo dúplex"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extras"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Filtro de cor"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Cando se usa gris ou liña de arte esta opción selecciona a cor a usar."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Calibración"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Definir o modo de calibración"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Caché de datos de calibración"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Tempo para apagado da lámpada"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3368,116 +3368,116 @@ msgstr ""
"A lámpada vai ser apagada despois do tempo indicado (en minutos). Un "
"valor de 0 significa que a lámpada no vai ser apagada."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Apagar a lámpada durante a calibración de escuridade"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, fuzzy, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Minutos que tardará a lámpada en apagarse despois do escaneo"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Botón de ficheiro"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Botón de OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Botón de enerxía"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Botón de correo-e"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Unidade de transparencias"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Botón de PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Limpar a calibración"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Forza a calibrar o escáner antes de facer o escaneo"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Botóns"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibrar"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Iniciar a calibración usando unha folla especial"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Limpar a calibración"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Limpar a caché de datos de calibración"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Calibración grosa"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Desviación verde"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6187,27 +6187,27 @@ msgstr ""
"Forzar o motor a devolver o código de estado de "
"SANE_STATUS_ACCESS_DENIED despois de ter sido chamado sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Esta opción reflicte o estado dos botóns do escáner"
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Acender lámpada"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Acende a lámpada do escáner"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Apagar lámpada"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Apaga a lámpada do escáner"
diff --git a/po/he.po b/po/he.po
index 5e2f6d1..8cb0c24 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.27git\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2018-09-16 22:30+0300\n"
"Last-Translator: Elishai Shkury <e1907@mm.st>\n"
"Language-Team: Hebrew\n"
@@ -29,7 +29,7 @@ msgstr "סטנדרט"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -45,7 +45,7 @@ msgid "Geometry"
msgstr "גיאומטריה"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -60,7 +60,7 @@ msgstr "הגדלה"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1708,7 +1708,7 @@ msgstr "בוחר את עקום ההעברה מתוקן הגמה"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1832,28 +1832,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "אחוז דילוג מקום ריק של תוכנה"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "בקש מהדרייבר לזנוח עמודים עם אחוז נמוך של פיקסלים כהים"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "הדפס אפשרויות"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "שולט על יחידת התמיכה"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1877,14 +1877,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr "השתמש בקלט פלט לא חוסם עבור sane_read() אם נתמך על ידי הממשק."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "חד צדדי"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "דו צדדי"
@@ -1896,7 +1896,7 @@ msgid "Transparency Unit"
msgstr "יחידת שקיפות"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2260,13 +2260,13 @@ msgid "Eject document after scanning"
msgstr "הוצא מסמך לאחר סריקה"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "מצב מזין מסמכים אוטומטי"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "בוחר את מצב מזין המסמכים האוטומטי (חד צדדי/דו צדדי)"
@@ -3280,37 +3280,37 @@ msgstr "לוח צפיפות"
msgid "Duplex switch"
msgstr "החלפה דו צדדית"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "תוספות"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "מסנן צבע"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr "כאשר משתמשים באפור או בסגנון קווי אפשרות זו בוחרת את הצבע בשימוש."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "קובץ כיול"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "פרט את קובץ הכיול לשימוש"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "זמן תפוגה מטמון כיול"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3319,12 +3319,12 @@ msgstr ""
"זמן (בדקות) לפני שכיול מוטמן פג. ערך של 0 אומר שמטמון אינו בשימוש. ערך "
"שלילי אומר שמטמון לעולם לא פג."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "זמן כיבוי מנורה"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3332,116 +3332,116 @@ msgid ""
msgstr ""
"המנורה תיכבה לאחר הזמן הנתון (בדקות). ערך של 0 אומר, שהמנורה לא תיכבה."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "מנורה כבויה במהלך סריקה"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "המנורה תיכבה במהלך סריקה. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "כפתור קובץ"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "כפתור OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "כפתור הדלקה"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "כפתור אקסטרה"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "יחידת שקיפות"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "כפתור PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "כפתור PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "כפתור PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "כפתור PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "דרוש כיול"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "הסורק דורש כיול עבור ההגדרות הנוכחיות"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "כפתורים"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "כייל"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "התחל כיול בעזרת דף מיוחד"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "נקה כיול"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "נקה מטמון כיול"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "כיול גס"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "אופסט ירוק"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6130,27 +6130,27 @@ msgstr ""
"אלץ את ה-backend להחזיר את קוד הסטטוס SANE_STATUS_ACCESS_DENIED לאחר "
"ש-sane_read() נקראה."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "אפשרות זו משקפת את הסטטוס של כפתור בסורק."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "מנורה דולקת"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "הדלק מנורת סורק"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "מנורה כבויה"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "כבה מנורת סורק"
diff --git a/po/hu.po b/po/hu.po
index fea9c15..1b638cc 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2011-04-06 19:50+0200\n"
"Last-Translator: Németh Tamás <ntomasz@uhuklub.hu>\n"
"Language-Team: Hungarian <NONE>\n"
@@ -28,7 +28,7 @@ msgstr "Általános"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -44,7 +44,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -59,7 +59,7 @@ msgstr "Haladó"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1689,7 +1689,7 @@ msgstr ""
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1813,28 +1813,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Nyomtatási beállítások"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1858,14 +1858,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr ""
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr ""
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr ""
@@ -1877,7 +1877,7 @@ msgid "Transparency Unit"
msgstr ""
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2241,13 +2241,13 @@ msgid "Eject document after scanning"
msgstr ""
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr ""
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3241,165 +3241,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Teljes szkennelés"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, fuzzy, no-c-format
msgid "Extras"
msgstr "Extra gyors"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Színmátrix"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibráció"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Precíz beállítás"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kalibráció"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr ""
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Finom beállítás"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Fájl gomb"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "OCR gomb"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr ""
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Email gomb"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Átlátszó"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "PDF gomb"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "PDF gomb"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "PDF gomb"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "PDF gomb"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Finom beállítás"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr ""
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Gombok"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrálás"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Kalibrálási folyamat indítása."
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Finom beállítás"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Finom beállítás"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Finom beállítás"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr ""
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6023,27 +6023,27 @@ msgid ""
"after sane_read() has been called."
msgstr ""
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr ""
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr ""
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr ""
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr ""
diff --git a/po/it.po b/po/it.po
index d82d119..9d7cc72 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.18\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2022-12-03 16:17-0500\n"
"Last-Translator: Vincenzo Reale <smart2128@baslug.org>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
@@ -30,7 +30,7 @@ msgstr "Standard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -46,7 +46,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -61,7 +61,7 @@ msgstr "Miglioramento"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1755,7 +1755,7 @@ msgstr "Seleziona la curva di correzione gamma"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1879,30 +1879,30 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Percentuale di salto del vuoto del software"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Richiedi al driver di eliminare le pagine con una bassa percentuale di "
"pixel scuri"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Stampa le opzioni"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Controlli per l'unità di validazione"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1928,14 +1928,14 @@ msgstr ""
"supporta."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Solo fronte"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Fronte e retro"
@@ -1947,7 +1947,7 @@ msgid "Transparency Unit"
msgstr "Adattatore per trasparenze"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2313,13 +2313,13 @@ msgid "Eject document after scanning"
msgstr "Espelli il documento dopo la scansione"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Modalità ADF"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Seleziona la modalità ADF (solo fronte/fronte-retro)"
@@ -3377,39 +3377,39 @@ msgstr "Quadrante di densità"
msgid "Duplex switch"
msgstr "Interruttore duplex"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extra"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Filtro di colore"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Quando si usano i grigi o il binario questa opzione seleziona il colore "
"usato."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "File di calibrazione"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Specifica il file di calibrazione da utilizzare"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Tempo di scadenza della cache di calibrazione"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3419,12 +3419,12 @@ msgstr ""
"nella cache. Un valore di 0 significa che la cache non viene utilizzata. "
"Un valore negativo significa che la cache non scade mai."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Durata spegnimento lampada"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3433,116 +3433,116 @@ msgstr ""
"La lampada sarà spenta allo scadere del tempo impostato (in minuti). Il "
"valore 0 indica che la lampada non deve mai essere spenta."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Lampada spenta durante la scansione"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "La lampada sarà spenta durante la scansione. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Pulsante File"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Pulsante OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Pulsante Accensione"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Pulsante supplementare"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Adattatore per trasparenze"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Pulsante PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Pulsante PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Pulsante PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Pulsante PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Richiede la calibrazione"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Lo scanner richiede la calibrazione per le impostazioni attuali."
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Pulsanti"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Calibrazione"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Avvia la calibrazione utilizzando un foglio speciale"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Cancella la calibrazione"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Cancella la cache di calibrazione"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Forza la calibrazione"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "Forza la calibrazione ignorando tutte le cache di calibrazione"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ignora gli scostamenti interni"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6301,27 +6301,27 @@ msgstr ""
"SANE_STATUS_ACCESS_DENIED dopo che sia stata chiamata la funzione "
"sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Questa opzione riflette lo stato dei pulsanti dello scanner."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampada accesa"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Accendere la lampada"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lampada spenta"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Spegnere la lampada"
diff --git a/po/ja.po b/po/ja.po
index 9e0660c..3ab9726 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.20\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2009-10-31 10:30+0900\n"
"Last-Translator: Hiroshi Miura <miurahr@linux.com>\n"
"Language-Team: Japanese <japanese@li.org>\n"
@@ -31,7 +31,7 @@ msgstr "標準"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -47,7 +47,7 @@ msgid "Geometry"
msgstr "配置"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -62,7 +62,7 @@ msgstr "増強"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1700,7 +1700,7 @@ msgstr "ガンマ補正された変換カーブを選択"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1824,28 +1824,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "オプション表示"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1871,14 +1871,14 @@ msgstr ""
"う。"
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "片面"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "両面"
@@ -1890,7 +1890,7 @@ msgid "Transparency Unit"
msgstr "透過ユニット"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2254,13 +2254,13 @@ msgid "Eject document after scanning"
msgstr "走査後、書類を排出"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "ADFモード"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "ADFモードの選択(片面、両面)"
@@ -3256,49 +3256,49 @@ msgstr "濃度制御"
msgid "Duplex switch"
msgstr "両面スキャン"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "追加"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "カラーフィルタ"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "校正"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "較正を「すぐに」実行します"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "較正データのキャッシュ"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "ランプをオフにする時間"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3307,116 +3307,116 @@ msgstr ""
"ランプは指定された時間(分)が経過したらオフにされます。値が0のときは、"
"この機能は働きません。"
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "ダーク補正時にランプをオフにする"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, fuzzy, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "走査した後、ランプがオフになるまでの時間(分)"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "ファイルボタン"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "OCRボタン"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "電源ボタン"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "電子メールボタン"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "透過ユニット"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "PDFボタン"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "PDFボタン"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "PDFボタン"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "PDFボタン"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "較正のクリア"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "走査前にスキャナの校正を強制する"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "ボタン"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "較正"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "特殊シートを用いた補正を開始"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "較正のクリア"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "校正キャッシュを消去する"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "粗校正"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "緑オフセット"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6069,27 +6069,27 @@ msgid ""
"after sane_read() has been called."
msgstr ""
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "このオプションは、スキャナーボタンの状態を反映します。"
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "ランプをオン"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "スキャナーのランプをオンにする。"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "ランプオフ"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "スキャナーのランプをオフにする。"
diff --git a/po/ka.po b/po/ka.po
index 5420951..12ba31c 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.1.1.335-436c5\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2023-02-09 13:08+0100\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian\n"
@@ -30,7 +30,7 @@ msgstr "სტანდარტული"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -46,7 +46,7 @@ msgid "Geometry"
msgstr "გეომეტრია"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -61,7 +61,7 @@ msgstr "გაფართოება"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1728,7 +1728,7 @@ msgstr "აირჩიეთ გამის კორექციის მრ
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1852,28 +1852,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "ცარიელი გვერდების პროცენტულობა პროგრამული გამოტოვებისთვის"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "დრაივერის მოთხოვნა, ცარიელი გვერდები მოაცილოს"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "ბეჭდვის მორგება"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "ჩაბეჭდვის მოდულის მართვა"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1897,14 +1897,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr ""
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "ცალ მხარეს"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "დუპლექსი"
@@ -1916,7 +1916,7 @@ msgid "Transparency Unit"
msgstr "სლაიდების მოდული"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2281,13 +2281,13 @@ msgid "Eject document after scanning"
msgstr "სკანრების შემდეგ დოკუმენტის გამოღება"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "დამ-ის რეჟიმი"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "დააყენებს დამ-ის რეჟიმს (ცალი მხარე/ორივე მხარე)"
@@ -3295,166 +3295,166 @@ msgstr "სიმკვრივის რეგულატორი"
msgid "Duplex switch"
msgstr "ორმხირივი სკანირების გადართვა"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "დამატებით"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "ფერის ფილტრი"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "კალიბრაციის ფაილი"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "მიუთითეთ გამოსაყენებელი კალიბრაციის ფაილი"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "კალიბრაციის კეშის ვადა"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "ნათურის გამორთვის დრო"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "ნათურის გამორთვა სკანირებისას"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "ნათურა გამოირთვება შუა სკანირებისას. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "ღილაკი „ფაილი“"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "სიმბოლოების ოპტიკური ამოცნობის ღილაკი"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "კვების ღილაკი"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "დამატებითი ღილაკი"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, no-c-format
msgid "Transparency button"
msgstr "გამჭვირვალობის ღილაკი"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, no-c-format
msgid "PDF function button 1"
msgstr "PDF-ის ფუნქციის ღილაკი 1"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, no-c-format
msgid "PDF function button 2"
msgstr "PDF-ის ფუნქციის ღილაკი 2"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, no-c-format
msgid "PDF function button 3"
msgstr "PDF-ის ფუნქციის ღილაკი 3"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, no-c-format
msgid "PDF function button 4"
msgstr "PDF-ის ფუნქციის ღილაკი 4"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "ესაჭიროება კალიბრაცია"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "მიმდინარე პარამეტრების გამოსაყენებლად სკანერს კალიბრაცია სჭირდება"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "ღილაკები"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "კალიბრაცია"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "კალიბრაციის დაწყება სპეციალური გვერდით"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "კალიბრაციის გასუფთავება"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "კალიბრაციის კეშის გასუფთავება"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "ნაძალადევი კალიბრაცია"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
"კალიბრაცია ძალით, ყველა და ნებისმიერი კალიბრაციის იგნორირების ხარჯზე"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "შიდა წანაცვლებების გამოტოვება"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6112,27 +6112,27 @@ msgstr ""
"უკანაბოლოს იძულება, sane_read()-ის გამოძახების შემდეგ სტატუსის კოდი "
"SANE_STATUS_ACCESS_DENIED დააბრუნოს."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "ეს პარამეტრი სკანერის ღილაკის მდგომარებას გამოხატავს."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "ნათურის ჩართვა"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "სკანერის ნათურის ჩართვა"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "ნათურის გამორთვა"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "სკანერის ნათურის გამორთვა"
diff --git a/po/nb.po b/po/nb.po
index 533d1e2..d9b5705 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.12\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-12-17 23:01+0100\n"
"Last-Translator: Sigurd Stordal <polarbear42@phreaker.net>\n"
"Language-Team: \n"
@@ -26,7 +26,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -42,7 +42,7 @@ msgid "Geometry"
msgstr "Geometri"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -57,7 +57,7 @@ msgstr "Forbedring"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1687,7 +1687,7 @@ msgstr "Velger den gamma korrigerte overførsels kurven"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1811,28 +1811,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Spesielle valg"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1856,14 +1856,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr ""
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr ""
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr ""
@@ -1875,7 +1875,7 @@ msgid "Transparency Unit"
msgstr ""
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2239,13 +2239,13 @@ msgid "Eject document after scanning"
msgstr "Løs ut dokoment etter skanning"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr ""
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3241,165 +3241,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Full skan"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr ""
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Fargestrektegning"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Kvalitets kalibrering"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, fuzzy, no-c-format
msgid "Lamp off time"
msgstr "Lampe av"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Grov kalibrering"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, fuzzy, no-c-format
msgid "File button"
msgstr "Vent på knappen"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, fuzzy, no-c-format
msgid "Power button"
msgstr "Vent på knappen"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Vent på knappen"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Farge korreksjon"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Spesielle valg"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Spesielle valg"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Spesielle valg"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Spesielle valg"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Grov kalibrering"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Grov kalibrering kun for første skan"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, fuzzy, no-c-format
msgid "Buttons"
msgstr "Knappstatus"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, fuzzy, no-c-format
msgid "Calibrate"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Grov kalibrering"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Grov kalibrering"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Grov kalibrering"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Lampe av"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6026,27 +6026,27 @@ msgid ""
"after sane_read() has been called."
msgstr ""
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampe på"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Slå på skanner lampen"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lampe av"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Slå av skanner lampen"
diff --git a/po/nl.po b/po/nl.po
index f8a8728..bea06df 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends.nl\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2019-07-26 13:38+0900\n"
"Last-Translator: Olaf Meeuwissen <paddy-hack@member.fsf.org>\n"
"Language-Team:\n"
@@ -31,7 +31,7 @@ msgstr "Standaard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -47,7 +47,7 @@ msgid "Geometry"
msgstr "Geometrie"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -62,7 +62,7 @@ msgstr "Kleurverbetering"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1741,7 +1741,7 @@ msgstr "Kiest de gamma gecorrigeerde overdrachtscurve"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1865,28 +1865,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Softwarematig over te slaan percentage lege pagina's"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "Verzoek het stuurprogramma pagina's met weinig dekking te negeren"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Druk opties af"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Stuurt de Endorser eenheid aan"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1912,14 +1912,14 @@ msgstr ""
"ondersteunt."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "enkelzijdig"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dubbelzijdig"
@@ -1931,7 +1931,7 @@ msgid "Transparency Unit"
msgstr "Filmeenheid"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2295,13 +2295,13 @@ msgid "Eject document after scanning"
msgstr "Werp het document uit na het scannen"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Automatische documentinvoer Modus"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3347,39 +3347,39 @@ msgstr "Dichtheid schaal"
msgid "Duplex switch"
msgstr "Duplex schakelaar"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Extra's"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Kleurenfilter"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"Wanneer grijs of lijntekening wordt gebruikt, selecteert deze optie de "
"huidige actieve kleur."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Kalibratiebestand"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Specificeer het te gebruiken kalibratiebestand"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Vervaltijd van de kalibratie cache"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3389,12 +3389,12 @@ msgstr ""
"van 0 betekent dat geen cache wordt gebruikt. Een negatieve waarde "
"betekent dat de cache nooit verloopt."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Lamp-uit tijd"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3403,116 +3403,116 @@ msgstr ""
"De lamp wordt uitgeschakeld na de opgegeven tijd (in minuten). Een "
"waarde van 0 betekent, dat de lamp niet wordt uitgeschakeld."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Lamp uit tijdens het scannen"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "De lamp wordt uitgeschakeld tijdens het scannen"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Bestand-knop"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "OCR-knop"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Aan/Uit-knop"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Extra-knop"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Transparanteneenheid"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "PDF-knop"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "PDF-knop"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "PDF-knop"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "PDF-knop"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Kalibratie nodig"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "De scanner moet worden gekalibreerd voor de huidige instellingen"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Knoppen"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibreren"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Begin kalibreerproces met een speciale transparant"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Reset kalibratie"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Reset kalibratiecache"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Dwing kalibratie"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "Dwing kalibratie en negeer alle kalibratie caches"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Groen compensatie"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6252,27 +6252,27 @@ msgstr ""
"Dwing de \"backend\", na een aanroep van sane_read() het statusbericht "
"SANE_STATUS_ACCESS_DENIED terug te geven."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Deze optie geeft de status weer van een scannerknop."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lamp aan"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Schakel scannerlamp aan"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lamp uit"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Schakel de scannerlamp uit"
diff --git a/po/pl.po b/po/pl.po
index 5a28a18..37e4280 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.21\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2010-11-06 19:33+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -27,7 +27,7 @@ msgstr "Standardowe"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -43,7 +43,7 @@ msgid "Geometry"
msgstr "Krawędzie obszaru skanowania"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -58,7 +58,7 @@ msgstr "Ulepszanie"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1736,7 +1736,7 @@ msgstr "Wybiera poprawioną krzywą przejścia"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1860,28 +1860,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr ""
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Opcje drukowania"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1907,14 +1907,14 @@ msgstr ""
"frontend."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Jednostronny"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dwustronny"
@@ -1926,7 +1926,7 @@ msgid "Transparency Unit"
msgstr "Moduł do skanowania przezroczy"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2291,13 +2291,13 @@ msgid "Eject document after scanning"
msgstr "Wysuń dokument po zeskanowaniu"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Tryb ADF"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Wybiera tryb ADF (jedno/dwustronny)"
@@ -3295,49 +3295,49 @@ msgstr "Kontrola gęstości"
msgid "Duplex switch"
msgstr "Skanowanie dwustronne"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Dodatki"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Filtr kolorów"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr "W trybie szarości lub kreski ta opcja wybiera używany kolor."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibracja"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Zdefiniuj tryb kalibracji"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Pamięć podręczna danych kalibracji"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Czas wyłączania lampy"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3346,116 +3346,116 @@ msgstr ""
"Lampa zostanie wyłączona po podanym czasie (w minutach). Wartość 0 "
"oznacza, że lampa nie będzie wyłączana."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Wyłącz lampę podczas kalibracji ciemności"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, fuzzy, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Liczba minut do wyłączenia lampy po skanowaniu"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Przycisk pliku"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Przycisk OCR"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Przycisk zasilania"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Przycisk E-maila"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Moduł do skanowania przezroczy"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Przycisk PDF"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Przycisk PDF"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Przycisk PDF"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Przycisk PDF"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Wymaga kalibracji"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Skaner wymaga kalibracji dla obecnych ustawień"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Przyciski"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibracja"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Rozpocznij kalibrację przy użyciu specjalnej kartki"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Wyczyść kalibrację"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Wyczyść pamięć podręczną kalibracji"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Kalibracja ziarnistości"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Offset zieleni"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6164,27 +6164,27 @@ msgstr ""
"Zmuś sterownik by zwrócił kod SANE_STATUS_ACCESS_DENIED po tym jak "
"została wywołana funkcja sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Opcja ta odzwierciedla stan przycisku skanera."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Włącz lampę"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Włącza lampę skanera"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Wyłącz lampę"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Wyłącza lampę skanera"
diff --git a/po/pt.po b/po/pt.po
index 83aca63..2637c1b 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.10\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2007-05-08 13:31+0200\n"
"Last-Translator: Pedro Morais <morais@inocam.com>\n"
"Language-Team: pt <morais@inocam.com>\n"
@@ -26,7 +26,7 @@ msgstr ""
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -42,7 +42,7 @@ msgid "Geometry"
msgstr "Geometria"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -57,7 +57,7 @@ msgstr "Melhorias"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1690,7 +1690,7 @@ msgstr ""
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1814,30 +1814,30 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Desconsiderar porcentagem branco"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, fuzzy, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Solicita ao driver para eliminar páginas com baixo número de pixels "
"escuros"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Imprimir opções"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1861,14 +1861,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr ""
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr ""
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr ""
@@ -1880,7 +1880,7 @@ msgid "Transparency Unit"
msgstr "Unidade de Transparências"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2244,13 +2244,13 @@ msgid "Eject document after scanning"
msgstr ""
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr ""
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3245,165 +3245,165 @@ msgstr ""
msgid "Duplex switch"
msgstr "Digitalização completa"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr ""
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Linhas em cor"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Calibração"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Definine o modo de calibração"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Modo de calibração"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, fuzzy, no-c-format
msgid "Lamp off time"
msgstr "Lâmpada acesa"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
"of 0 means, that the lamp won't be turned off."
msgstr ""
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, fuzzy, no-c-format
msgid "Lamp off during scan"
msgstr "Calibração rudimentar"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr ""
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr ""
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr ""
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr ""
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "Origem da digitalização"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Unidade de Transparências"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Imprimir opções"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Imprimir opções"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Imprimir opções"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Imprimir opções"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Calibração rudimentar"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, fuzzy, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Calibração rudimentar apenas na primeira digitalização"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, fuzzy, no-c-format
msgid "Buttons"
msgstr "Estado do botão"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, fuzzy, no-c-format
msgid "Calibrate"
msgstr "Calibração"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, fuzzy, no-c-format
msgid "Start calibration using special sheet"
msgstr "Calibração rudimentar"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, fuzzy, no-c-format
msgid "Clear calibration"
msgstr "Calibração rudimentar"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, fuzzy, no-c-format
msgid "Clear calibration cache"
msgstr "Modo de calibração"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Calibração rudimentar"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Deslocamento do verde"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6044,27 +6044,27 @@ msgid ""
"after sane_read() has been called."
msgstr ""
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr ""
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lâmpada acesa"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr ""
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr ""
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr ""
diff --git a/po/ru.po b/po/ru.po
index 87d50cc..5b3cdc7 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2022-12-28 08:49+0300\n"
"Last-Translator: Мария Шикунова <translation-team@basealt.ru>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@@ -33,7 +33,7 @@ msgstr "Стандартно"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -49,7 +49,7 @@ msgid "Geometry"
msgstr "Расположение"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -64,7 +64,7 @@ msgstr "Повышение"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1762,7 +1762,7 @@ msgstr "Выберите кривую гамма-коррекции"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1886,29 +1886,29 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Процент пустых страниц для программного пропуска"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Запросить драйвер удалить страницы с низким процентом тёмных пикселов"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Напечатать параметры"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, fuzzy, no-c-format
msgid "Controls for imprinter units"
msgstr "Управление модулем впечатывания"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1934,14 +1934,14 @@ msgstr ""
"поддерживается графической оболочкой."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Односторонний"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Двухсторонний"
@@ -1953,7 +1953,7 @@ msgid "Transparency Unit"
msgstr "Модуль для слайдов"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2321,13 +2321,13 @@ msgid "Eject document after scanning"
msgstr "Извлечь документ после сканирования"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Режим автоподачи"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Выбирает режим автоподачи (односторонний/двухсторонний)"
@@ -3379,39 +3379,39 @@ msgstr "Регулятор плотности"
msgid "Duplex switch"
msgstr "Переключатель двухстороннего сканирования"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Дополнительно"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Фильтр цвета"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"При использовании серого или линейного изображения этот параметр "
"выбирает используемый цвет."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Файл калибровки"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Задать файл калибровки для использования"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Время истечения срока действия кэша калибровки"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3421,12 +3421,12 @@ msgstr ""
"Значение 0 означает, что кэш не используется. Отрицательное значение "
"говорит о том, что срок действия данных кэша никогда не истечёт."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Время выключения лампы"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3435,116 +3435,116 @@ msgstr ""
"Лампа будет выключена через указанное время (в минутах). Значение 0 "
"означает, что лампа выключаться не будет."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Выключение лампы во время сканирования"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Лампа будет выключена во время сканирования."
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Кнопка «Файл»"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Кнопка оптического распознавания символов"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Кнопка питания"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Дополнительная кнопка"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Модуль слайдов"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "Кнопка «PDF»"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "Кнопка «PDF»"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "Кнопка «PDF»"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "Кнопка «PDF»"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Необходима калибровка"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Сканеру необходима калибровка для использования текущих параметров"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Кнопки"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Калибровка"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Начать процесс калибровки с помощью специального листа"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Очистить данные калибровки"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Очистить кэш калибровочных данных"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Грубая калибровка"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "Грубая калибровка, игнорирующая весь кэш калибровки"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Игнорировать внутреннее смещение"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6314,27 +6314,27 @@ msgstr ""
"Указать серверу возвращать код состояния SANE_STATUS_ACCESS_DENIED после "
"вызова sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Этот пункт соответствует состоянию кнопки сканера."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Включить лампу"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Включить лампу сканера"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Выключить лампу"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Выключить лампу сканера"
diff --git a/po/sv.po b/po/sv.po
index 25126da..6c83afb 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.18\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2012-10-22 11:17+0200\n"
"Last-Translator: Mattias Ellert <mattias.ellert@fysast.uu.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
@@ -32,7 +32,7 @@ msgstr "Standard"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -48,7 +48,7 @@ msgid "Geometry"
msgstr "Geometri"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -63,7 +63,7 @@ msgstr "Förbättring"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -1723,7 +1723,7 @@ msgstr "Väljer gammakorrigerad överföringskurva"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1847,28 +1847,28 @@ msgstr ""
msgid "White-on-Black"
msgstr ""
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Procentsats för hoppa över blanka sidor"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, fuzzy, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "Begär att drivrutinen hoppar över sidor med få mörka pixlar"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, fuzzy, no-c-format
msgid "Imprinter Options"
msgstr "Skriv ut inställningar"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr ""
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1893,14 +1893,14 @@ msgstr ""
"Använd icke-blockerande IO för sane_read() om det stöds av framplanet."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Enkelsidigt"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Dubbelsidigt"
@@ -1912,7 +1912,7 @@ msgid "Transparency Unit"
msgstr "Genomlysningsenhet"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2276,13 +2276,13 @@ msgid "Eject document after scanning"
msgstr "Mata ut dokument efter inläsning"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Dokumentmatarläge"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr ""
@@ -3287,51 +3287,51 @@ msgstr "Densitetsinställning"
msgid "Duplex switch"
msgstr "Dubbelsidig inläsning"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Övrigt"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, fuzzy, no-c-format
msgid "Color filter"
msgstr "Färgfilter"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"När gråskala eller streckteckning används väljer denna inställning den "
"använda färgen."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, fuzzy, no-c-format
msgid "Calibration file"
msgstr "Kalibrering"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, fuzzy, no-c-format
msgid "Specify the calibration file to use"
msgstr "Definiera kalibreringsläge"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, fuzzy, no-c-format
msgid "Calibration cache expiration time"
msgstr "Kalibreringsdatacache"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
"means cache is not used. A negative value means cache never expires."
msgstr ""
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Lampavstängningstid"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3340,116 +3340,116 @@ msgstr ""
"Lampan kommer att stängas av efter den angivna tiden (i minuter). Värdet "
"0 betyder att lampan inte kommer att stängas av."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Stäng av lampan under inläsning"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Lampan kommer att stängas av under inläsningen."
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Filknapp"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Optisk teckenigenkännings-knapp"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Påslagningsknapp"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, fuzzy, no-c-format
msgid "Extra button"
msgstr "E-postknapp"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, fuzzy, no-c-format
msgid "Transparency button"
msgstr "Genomlysningsenhet"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, fuzzy, no-c-format
msgid "PDF function button 1"
msgstr "PDF-knapp"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, fuzzy, no-c-format
msgid "PDF function button 2"
msgstr "PDF-knapp"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, fuzzy, no-c-format
msgid "PDF function button 3"
msgstr "PDF-knapp"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, fuzzy, no-c-format
msgid "PDF function button 4"
msgstr "PDF-knapp"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, fuzzy, no-c-format
msgid "Needs calibration"
msgstr "Behöver kalibrering"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Bildläsaren behöver kalibrering för nuvarande inställningar"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Knappar"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Kalibrera"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Påbörja kalibrering med specialark"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Rensa kalibrering"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Rensa kalibreringsdatacache"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, fuzzy, no-c-format
msgid "Force calibration"
msgstr "Grovkalibrering"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, fuzzy, no-c-format
msgid "Ignore internal offsets"
msgstr "Grön offset"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -6159,27 +6159,27 @@ msgstr ""
"Tvinga bakplanet att returnera statuskoden SANE_STATUS_ACCESS_DENIED "
"efter det att sane_read() har anropats."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Denna inställing avspeglar status på en av bildläsarens knappar."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Lampa på"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Slå på bildläsarlampan"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Lampa av"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Slå av bildläsarlampan"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..6d85dd9
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,6983 @@
+# Copyright (C) YEAR The SANE developers
+# This file is distributed under the same license as the sane-backends package.
+#
+# SPDX-FileCopyrightText: 2025 Emir SARI <emir_sari@icloud.com>
+msgid ""
+msgstr ""
+"Project-Id-Version: sane-backends 1.3.1.86-9a695-dirty\n"
+"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
+"PO-Revision-Date: 2025-03-23 18:07+0300\n"
+"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
+"Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 25.07.70\n"
+
+#: include/sane/saneopts.h:157
+#, no-c-format
+msgid "Number of options"
+msgstr "Seçeneklerin sayısı"
+
+#: include/sane/saneopts.h:159
+#, no-c-format
+msgid "Standard"
+msgstr "Standart"
+
+#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
+#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
+#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
+#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
+#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
+#: backend/ma1509.c:549 backend/matsushita.c:1132 backend/microtek2.h:597
+#: backend/mustek.c:4352 backend/mustek_usb.c:299 backend/mustek_usb2.c:463
+#: backend/pixma/pixma_sane_options.c:161 backend/plustek.c:806
+#: backend/plustek_pp.c:745 backend/sceptre.c:699
+#: backend/snapscan-options.c:564 backend/teco1.c:1092 backend/teco2.c:1907
+#: backend/teco3.c:917 backend/test.c:718 backend/u12.c:544
+#: backend/umax.c:5174 backend/umax_pp.c:569
+#, no-c-format
+msgid "Geometry"
+msgstr "Geometri"
+
+#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
+#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
+#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
+#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
+#: backend/mustek_usb2.c:429 backend/niash.c:751 backend/plustek.c:852
+#: backend/plustek_pp.c:791 backend/sceptre.c:747
+#: backend/snapscan-options.c:631 backend/stv680.c:1064
+#: backend/teco1.c:1140 backend/teco2.c:1955 backend/teco3.c:965
+#: backend/u12.c:590 backend/umax.c:5224 backend/umax_pp.c:618
+#, no-c-format
+msgid "Enhancement"
+msgstr "İyileştirme"
+
+#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
+#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
+#: backend/umax.c:5563
+#, no-c-format
+msgid "Advanced"
+msgstr "İyileştirme"
+
+#: include/sane/saneopts.h:163
+#, no-c-format
+msgid "Sensors"
+msgstr "Algılayıcılar"
+
+#: include/sane/saneopts.h:165
+#, no-c-format
+msgid "Preview"
+msgstr "Önizleme"
+
+#: include/sane/saneopts.h:166
+#, no-c-format
+msgid "Force monochrome preview"
+msgstr "Siyah–beyaz önizlemeyi zorla"
+
+#: include/sane/saneopts.h:167
+#, no-c-format
+msgid "Bit depth"
+msgstr "Bit derinliği"
+
+#: include/sane/saneopts.h:168 backend/canon.c:1154 backend/leo.c:778
+#: backend/pixma/pixma_sane_options.c:48
+#, no-c-format
+msgid "Scan mode"
+msgstr "Tarama kipi"
+
+#: include/sane/saneopts.h:169
+#, no-c-format
+msgid "Scan speed"
+msgstr "Tarama hızı"
+
+#: include/sane/saneopts.h:170
+#, no-c-format
+msgid "Scan source"
+msgstr "Tarama kaynağı"
+
+#: include/sane/saneopts.h:171
+#, no-c-format
+msgid "Force backtracking"
+msgstr "Geri izlemeyi zorla"
+
+#: include/sane/saneopts.h:172
+#, no-c-format
+msgid "Top-left x"
+msgstr "Sol üst X"
+
+#: include/sane/saneopts.h:173
+#, no-c-format
+msgid "Top-left y"
+msgstr "Sol üst Y"
+
+#: include/sane/saneopts.h:174
+#, no-c-format
+msgid "Bottom-right x"
+msgstr "Sağ alt X"
+
+#: include/sane/saneopts.h:175
+#, no-c-format
+msgid "Bottom-right y"
+msgstr "Sağ alt Y"
+
+#: include/sane/saneopts.h:176 backend/canon.c:1230
+#: backend/pixma/pixma_sane_options.c:301
+#, no-c-format
+msgid "Scan resolution"
+msgstr "Tarama çözünürlüğü"
+
+#: include/sane/saneopts.h:177
+#, no-c-format
+msgid "X-resolution"
+msgstr "X çözünürlüğü"
+
+#: include/sane/saneopts.h:178
+#, no-c-format
+msgid "Y-resolution"
+msgstr "Y çözünürlüğü"
+
+#: include/sane/saneopts.h:179
+#, no-c-format
+msgid "Page width"
+msgstr "Sayfa genişliği"
+
+#: include/sane/saneopts.h:180
+#, no-c-format
+msgid "Page height"
+msgstr "Sayfa yüksekliği"
+
+#: include/sane/saneopts.h:181
+#, no-c-format
+msgid "Use custom gamma table"
+msgstr "Özel gama tablosu kullan"
+
+#: include/sane/saneopts.h:182
+#, no-c-format
+msgid "Image intensity"
+msgstr "Görsel yoğunluğu"
+
+#: include/sane/saneopts.h:183
+#, no-c-format
+msgid "Red intensity"
+msgstr "Kırmızı yoğunluğu"
+
+#: include/sane/saneopts.h:184
+#, no-c-format
+msgid "Green intensity"
+msgstr "Yeşil yoğunluğu"
+
+#: include/sane/saneopts.h:185
+#, no-c-format
+msgid "Blue intensity"
+msgstr "Mavi yoğunluğu"
+
+#: include/sane/saneopts.h:186
+#, no-c-format
+msgid "Brightness"
+msgstr "Parlaklık"
+
+#: include/sane/saneopts.h:187
+#, no-c-format
+msgid "Contrast"
+msgstr "Karşıtlık"
+
+#: include/sane/saneopts.h:188
+#, no-c-format
+msgid "Grain size"
+msgstr "Tanecik boyutu"
+
+#: include/sane/saneopts.h:189
+#, no-c-format
+msgid "Halftoning"
+msgstr "Yarım tonlama"
+
+#: include/sane/saneopts.h:190
+#, no-c-format
+msgid "Black level"
+msgstr "Siyah düzeyi"
+
+#: include/sane/saneopts.h:191
+#, no-c-format
+msgid "White level"
+msgstr "Beyaz düzeyi"
+
+#: include/sane/saneopts.h:192
+#, no-c-format
+msgid "White level for red"
+msgstr "Kırmızı için beyaz düzeyi"
+
+#: include/sane/saneopts.h:193
+#, no-c-format
+msgid "White level for green"
+msgstr "Yeşil için beyaz düzeyi"
+
+#: include/sane/saneopts.h:194
+#, no-c-format
+msgid "White level for blue"
+msgstr "Mavi için beyaz düzeyi"
+
+#: include/sane/saneopts.h:195
+#, no-c-format
+msgid "Shadow"
+msgstr "Gölge"
+
+#: include/sane/saneopts.h:196
+#, no-c-format
+msgid "Shadow for red"
+msgstr "Kırmızı için gölge"
+
+#: include/sane/saneopts.h:197
+#, no-c-format
+msgid "Shadow for green"
+msgstr "Yeşil için gölge"
+
+#: include/sane/saneopts.h:198
+#, no-c-format
+msgid "Shadow for blue"
+msgstr "Mavi için gölge"
+
+#: include/sane/saneopts.h:199
+#, no-c-format
+msgid "Highlight"
+msgstr "Vurgu"
+
+#: include/sane/saneopts.h:200
+#, no-c-format
+msgid "Highlight for red"
+msgstr "Kırmızı için vurgu"
+
+#: include/sane/saneopts.h:201
+#, no-c-format
+msgid "Highlight for green"
+msgstr "Yeşil için vurgu"
+
+#: include/sane/saneopts.h:202
+#, no-c-format
+msgid "Highlight for blue"
+msgstr "Mavi için vurgu"
+
+#: include/sane/saneopts.h:203
+#, no-c-format
+msgid "Hue"
+msgstr "Ton"
+
+#: include/sane/saneopts.h:204
+#, no-c-format
+msgid "Saturation"
+msgstr "Doygunluk"
+
+#: include/sane/saneopts.h:205
+#, no-c-format
+msgid "Filename"
+msgstr "Dosya adı"
+
+#: include/sane/saneopts.h:206
+#, no-c-format
+msgid "Halftone pattern size"
+msgstr "Yarım ton deseni boyutu"
+
+#: include/sane/saneopts.h:207 backend/fujitsu.c:3264
+#, no-c-format
+msgid "Halftone pattern"
+msgstr "Yarım ton deseni"
+
+#: include/sane/saneopts.h:208
+#, no-c-format
+msgid "Bind X and Y resolution"
+msgstr "X ve Y çözünürlüğünü bağıntıla"
+
+#: include/sane/saneopts.h:209 backend/hp-option.c:3233
+#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1020
+#: backend/hp3900_sane.c:1420 backend/mustek_usb2.c:119
+#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155
+#, no-c-format
+msgid "Negative"
+msgstr "Negatif"
+
+#: include/sane/saneopts.h:210
+#, no-c-format
+msgid "Quality calibration"
+msgstr "Kalite kalibrasyonu"
+
+#: include/sane/saneopts.h:211
+#, no-c-format
+msgid "Double Optical Resolution"
+msgstr "Çifte optik çözünürlük"
+
+#: include/sane/saneopts.h:212
+#, no-c-format
+msgid "Bind RGB"
+msgstr "RGB’yi bağıntıla"
+
+#: include/sane/saneopts.h:213 backend/sm3840.c:769
+#, no-c-format
+msgid "Threshold"
+msgstr "Eşik"
+
+#: include/sane/saneopts.h:214
+#, no-c-format
+msgid "Analog gamma correction"
+msgstr "Analog gama düzeltmesi"
+
+#: include/sane/saneopts.h:215
+#, no-c-format
+msgid "Analog gamma red"
+msgstr "Analog gama kırmızısı"
+
+#: include/sane/saneopts.h:216
+#, no-c-format
+msgid "Analog gamma green"
+msgstr "Analog gama yeşili"
+
+#: include/sane/saneopts.h:217
+#, no-c-format
+msgid "Analog gamma blue"
+msgstr "Analog gama mavisi"
+
+#: include/sane/saneopts.h:218
+#, no-c-format
+msgid "Bind analog gamma"
+msgstr "Analog gamayı bağıntıla"
+
+#: include/sane/saneopts.h:219
+#, no-c-format
+msgid "Warmup lamp"
+msgstr "Lambayı ısıt"
+
+#: include/sane/saneopts.h:220
+#, no-c-format
+msgid "Cal. exposure-time"
+msgstr "Kalibrasyon pozlama süresi"
+
+#: include/sane/saneopts.h:221
+#, no-c-format
+msgid "Cal. exposure-time for red"
+msgstr "Kırmızı için kalibrasyon pozlama süresi"
+
+#: include/sane/saneopts.h:222
+#, no-c-format
+msgid "Cal. exposure-time for green"
+msgstr "Yeşil için kalibrasyon pozlama süresi"
+
+#: include/sane/saneopts.h:224
+#, no-c-format
+msgid "Cal. exposure-time for blue"
+msgstr "Mavi için kalibrasyon pozlama süresi"
+
+#: include/sane/saneopts.h:225
+#, no-c-format
+msgid "Scan exposure-time"
+msgstr "Tarama pozlama süresi"
+
+#: include/sane/saneopts.h:226
+#, no-c-format
+msgid "Scan exposure-time for red"
+msgstr "Kırmızı için tarama pozlama süresi"
+
+#: include/sane/saneopts.h:227
+#, no-c-format
+msgid "Scan exposure-time for green"
+msgstr "Yeşil için tarama pozlama süresi"
+
+#: include/sane/saneopts.h:229
+#, no-c-format
+msgid "Scan exposure-time for blue"
+msgstr "Mavi için tarama pozlama süresi"
+
+#: include/sane/saneopts.h:230
+#, no-c-format
+msgid "Set exposure-time"
+msgstr "Pozlama süresini ayarla"
+
+#: include/sane/saneopts.h:231
+#, no-c-format
+msgid "Cal. lamp density"
+msgstr "Kalibrasyon lamba yoğunluğu"
+
+#: include/sane/saneopts.h:232
+#, no-c-format
+msgid "Scan lamp density"
+msgstr "Tarama lamba yoğunluğu"
+
+#: include/sane/saneopts.h:233
+#, no-c-format
+msgid "Set lamp density"
+msgstr "Lamba yoğunluğunu ayarla"
+
+#: include/sane/saneopts.h:234 backend/umax.c:5827
+#, no-c-format
+msgid "Lamp off at exit"
+msgstr "Çıkışta lambayı kapat"
+
+#: include/sane/saneopts.h:235
+#, no-c-format
+msgid "Focus position"
+msgstr "Odak konumu"
+
+#: include/sane/saneopts.h:236
+#, no-c-format
+msgid "Autofocus"
+msgstr "Kendiliğinden odak"
+
+#: include/sane/saneopts.h:237
+#, no-c-format
+msgid "Infrared scan"
+msgstr "Kızılötesi tarama"
+
+#: include/sane/saneopts.h:252
+#, no-c-format
+msgid ""
+"Read-only option that specifies how many options a specific device "
+"supports."
+msgstr ""
+"Belirli bir aygıtın kaç seçeneği desteklediğini belirten saltokunur "
+"seçenek."
+
+#: include/sane/saneopts.h:255
+#, no-c-format
+msgid "Source, mode and resolution options"
+msgstr "Kaynak, kip ve çözünürlük seçenekleri"
+
+#: include/sane/saneopts.h:256
+#, no-c-format
+msgid "Scan area and media size options"
+msgstr "Tarama alanı ve ortam boyutu seçenekleri"
+
+#: include/sane/saneopts.h:257
+#, no-c-format
+msgid "Image modification options"
+msgstr "Görsel değişiklik seçenekleri"
+
+#: include/sane/saneopts.h:258
+#, no-c-format
+msgid "Hardware specific options"
+msgstr "Donanıma özel seçenekler"
+
+#: include/sane/saneopts.h:259
+#, no-c-format
+msgid "Scanner sensors and buttons"
+msgstr "Tarama algılayıcıları ve düğmeleri"
+
+#: include/sane/saneopts.h:262
+#, no-c-format
+msgid "Request a preview-quality scan."
+msgstr "Önizleme kalitesinde bir tarama isteyin."
+
+#: include/sane/saneopts.h:265
+#, no-c-format
+msgid ""
+"Request that all previews are done in monochrome mode. On a three-pass "
+"scanner this cuts down the number of passes to one and on a one-pass "
+"scanner, it reduces the memory requirements and scan-time of the preview."
+msgstr ""
+"Tüm önizlemelerin siyah–beyaz kipte yapılmasını isteyin. Üç geçişli bir "
+"tarayıcıda bu, geçiş sayısını bire düşürür ve tek geçişli bir tarayıcıda "
+"önizlemenin bellek gereksinimlerini ve tarama süresini azaltır."
+
+#: include/sane/saneopts.h:271
+#, no-c-format
+msgid ""
+"Number of bits per sample, typical values are 1 for \"line-art\" and 8 "
+"for multibit scans."
+msgstr ""
+"Örnek başına bit sayısı, tipik değerler “çizgi sanatı” için 1 ve çok "
+"bitli taramalar için 8’dir."
+
+#: include/sane/saneopts.h:275
+#, no-c-format
+msgid "Selects the scan mode (e.g., lineart, monochrome, or color)."
+msgstr ""
+"Tarama kipini seçer (örneğin çizgi sanatı, siyah–beyaz veya renkli)"
+
+#: include/sane/saneopts.h:278
+#, no-c-format
+msgid "Determines the speed at which the scan proceeds."
+msgstr "Taramanın ilerleyeceği hızı belirler."
+
+#: include/sane/saneopts.h:281
+#, no-c-format
+msgid "Selects the scan source (such as a document-feeder)."
+msgstr "Tarama kaynağını seçer (örneğin bir belge besleyicisi gibi)."
+
+#: include/sane/saneopts.h:284
+#, no-c-format
+msgid "Controls whether backtracking is forced."
+msgstr "Geri izlemenin zorlanıp zorlanmadığını denetler."
+
+#: include/sane/saneopts.h:287
+#, no-c-format
+msgid "Top-left x position of scan area."
+msgstr "Tarama alanının sol üst X konumu."
+
+#: include/sane/saneopts.h:290
+#, no-c-format
+msgid "Top-left y position of scan area."
+msgstr "Tarama alanının sol üst Y konumu."
+
+#: include/sane/saneopts.h:293
+#, no-c-format
+msgid "Bottom-right x position of scan area."
+msgstr "Tarama alanının sağ alt X konumu."
+
+#: include/sane/saneopts.h:296
+#, no-c-format
+msgid "Bottom-right y position of scan area."
+msgstr "Tarama alanının sağ alt Y konumu."
+
+#: include/sane/saneopts.h:299
+#, no-c-format
+msgid "Sets the resolution of the scanned image."
+msgstr "Taranan görselin çözünürlüğünü ayarlar."
+
+#: include/sane/saneopts.h:302
+#, no-c-format
+msgid "Sets the horizontal resolution of the scanned image."
+msgstr "Taranan görselin yatay çözünürlüğünü ayarlar."
+
+#: include/sane/saneopts.h:305
+#, no-c-format
+msgid "Sets the vertical resolution of the scanned image."
+msgstr "Taranan görselin dikey çözünürlüğünü ayarlar."
+
+#: include/sane/saneopts.h:308
+#, no-c-format
+msgid ""
+"Specifies the width of the media. Required for automatic centering of "
+"sheet-fed scans."
+msgstr ""
+"Ortamın genişliğini belirtir. Kendiliğinden ortalamalı veya sayfa "
+"beslemeli taramalar için zorunludur."
+
+#: include/sane/saneopts.h:312
+#, no-c-format
+msgid "Specifies the height of the media."
+msgstr "Ortamın yükseliğini belirtir."
+
+#: include/sane/saneopts.h:315
+#, no-c-format
+msgid ""
+"Determines whether a builtin or a custom gamma-table should be used."
+msgstr ""
+"Yerleşik veya özel bir gama tablosunun kullanılıp kullanılmaması "
+"gerektiğini belirler."
+
+#: include/sane/saneopts.h:319
+#, no-c-format
+msgid ""
+"Gamma-correction table. In color mode this option equally affects the "
+"red, green, and blue channels simultaneously (i.e., it is an intensity "
+"gamma table)."
+msgstr ""
+"Gama düzeltme tablosu. Renkli kipte bu seçenek kırmızı, yeşil ve mavi "
+"kanalları aynı anda eşit şekilde etkiler (yani, bir yoğunluk gama "
+"tablosudur)."
+
+#: include/sane/saneopts.h:324
+#, no-c-format
+msgid "Gamma-correction table for the red band."
+msgstr "Kırmızı bant için gama düzeltme tablosu."
+
+#: include/sane/saneopts.h:327
+#, no-c-format
+msgid "Gamma-correction table for the green band."
+msgstr "Yeşil bant için gama düzeltme tablosu."
+
+#: include/sane/saneopts.h:330
+#, no-c-format
+msgid "Gamma-correction table for the blue band."
+msgstr "Mavi bant için gama düzeltme tablosu."
+
+#: include/sane/saneopts.h:333
+#, no-c-format
+msgid "Controls the brightness of the acquired image."
+msgstr "Alınan görselin parlaklığını denetler."
+
+#: include/sane/saneopts.h:336
+#, no-c-format
+msgid "Controls the contrast of the acquired image."
+msgstr "Alınan görselin karşıtlığını denetler."
+
+#: include/sane/saneopts.h:339
+#, no-c-format
+msgid ""
+"Selects the \"graininess\" of the acquired image. Smaller values result "
+"in sharper images."
+msgstr ""
+"Alınan görselin “tanecikliğini” denetler. Daha küçük değerler, daha "
+"keskin görsellere neden olur."
+
+#: include/sane/saneopts.h:343
+#, no-c-format
+msgid "Selects whether the acquired image should be halftoned (dithered)."
+msgstr ""
+"Alınan görselin yarım tonlu (titrek) olup olmaması gerektiğini denetler."
+
+#: include/sane/saneopts.h:346 include/sane/saneopts.h:361
+#, no-c-format
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "Hangi parlaklık düzeyinin “siyah” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:349 include/sane/saneopts.h:370
+#, no-c-format
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Hangi parlaklık düzeyinin “beyaz” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:352
+#, no-c-format
+msgid "Selects what red radiance level should be considered \"white\"."
+msgstr ""
+"Hangi kırmızı parlaklık düzeyinin “beyaz” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:355
+#, no-c-format
+msgid "Selects what green radiance level should be considered \"white\"."
+msgstr ""
+"Hangi yeşil parlaklık düzeyinin “beyaz” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:358
+#, no-c-format
+msgid "Selects what blue radiance level should be considered \"white\"."
+msgstr ""
+"Hangi mavi parlaklık düzeyinin “beyaz” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:363
+#, no-c-format
+msgid "Selects what red radiance level should be considered \"black\"."
+msgstr ""
+"Hangi kırmızı parlaklık düzeyinin “siyah” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:365
+#, no-c-format
+msgid "Selects what green radiance level should be considered \"black\"."
+msgstr ""
+"Hangi yeşil parlaklık düzeyinin “siyah” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:367
+#, no-c-format
+msgid "Selects what blue radiance level should be considered \"black\"."
+msgstr ""
+"Hangi mavi parlaklık düzeyinin “siyah” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:372
+#, no-c-format
+msgid "Selects what red radiance level should be considered \"full red\"."
+msgstr ""
+"Hangi kırmızı parlaklık düzeyinin “tam kırmızı” olarak kabul edileceğini "
+"seçer."
+
+#: include/sane/saneopts.h:374
+#, no-c-format
+msgid ""
+"Selects what green radiance level should be considered \"full green\"."
+msgstr ""
+"Hangi yeşil parlaklık düzeyinin “tam yeşil” olarak kabul edileceğini "
+"seçer."
+
+#: include/sane/saneopts.h:377
+#, no-c-format
+msgid ""
+"Selects what blue radiance level should be considered \"full blue\"."
+msgstr ""
+"Hangi mavi parlaklık düzeyinin “tam mavi” olarak kabul edileceğini seçer."
+
+#: include/sane/saneopts.h:381
+#, no-c-format
+msgid "Controls the \"hue\" (blue-level) of the acquired image."
+msgstr "Alınan görselin “tonunu” (mavi düzeyini) denetler."
+
+#: include/sane/saneopts.h:384
+#, no-c-format
+msgid ""
+"The saturation level controls the amount of \"blooming\" that occurs "
+"when acquiring an image with a camera. Larger values cause more blooming."
+msgstr ""
+"Doygunluk düzeyi, bir kamerayla görsel elde edilirken oluşan “ışık "
+"saçılması” miktarını denetler. Daha büyük değerler daha fazla ışık "
+"saçılmasına neden olur."
+
+#: include/sane/saneopts.h:389
+#, no-c-format
+msgid "The filename of the image to be loaded."
+msgstr "Yüklenecek görselin dosya adı."
+
+#: include/sane/saneopts.h:392
+#, no-c-format
+msgid ""
+"Sets the size of the halftoning (dithering) pattern used when scanning "
+"halftoned images."
+msgstr ""
+"Yarı tonlu görselleri tararken kullanılan yarı tonlama (titreme) "
+"deseninin boyutunu ayarlar."
+
+#: include/sane/saneopts.h:396
+#, no-c-format
+msgid ""
+"Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgstr ""
+"Yarı tonlu görselleri taramak için olan yarı tonlama (titreme) desenini "
+"tanımlar."
+
+#: include/sane/saneopts.h:400
+#, no-c-format
+msgid "Use same values for X and Y resolution"
+msgstr "X ve Y çözünürlüğü için aynı değerleri kullan"
+
+#: include/sane/saneopts.h:402
+#, no-c-format
+msgid "Swap black and white"
+msgstr "Siyah ve beyazı kendi arasında değiştir"
+
+#: include/sane/saneopts.h:404
+#, no-c-format
+msgid "Do a quality white-calibration"
+msgstr "Kaliteli bir beyaz kalibrasyonu yap"
+
+#: include/sane/saneopts.h:406
+#, no-c-format
+msgid "Use lens that doubles optical resolution"
+msgstr "Optik çözünürlüğü iki katına çıkaran mercek kullan"
+
+#: include/sane/saneopts.h:408 include/sane/saneopts.h:420
+#, no-c-format
+msgid "In RGB-mode use same values for each color"
+msgstr "RGB kipinde her bir renk için aynı değerleri kullan"
+
+#: include/sane/saneopts.h:410
+#, no-c-format
+msgid "Select minimum-brightness to get a white point"
+msgstr "Bir beyaz nokta almak için en düşük parlaklığı seç"
+
+#: include/sane/saneopts.h:412
+#, no-c-format
+msgid "Analog gamma-correction"
+msgstr "Analog gama düzeltmesi"
+
+#: include/sane/saneopts.h:414
+#, no-c-format
+msgid "Analog gamma-correction for red"
+msgstr "Kırmızı için analog gama düzeltmesi"
+
+#: include/sane/saneopts.h:416
+#, no-c-format
+msgid "Analog gamma-correction for green"
+msgstr "Yeşil için analog gama düzeltmesi"
+
+#: include/sane/saneopts.h:418
+#, no-c-format
+msgid "Analog gamma-correction for blue"
+msgstr "Mavi için analog gama düzeltmesi"
+
+#: include/sane/saneopts.h:422
+#, no-c-format
+msgid "Warm up lamp before scanning"
+msgstr "Tarama öncesi lambayı ısıt"
+
+#: include/sane/saneopts.h:424
+#, no-c-format
+msgid "Define exposure-time for calibration"
+msgstr "Kalibrasyon için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:426
+#, no-c-format
+msgid "Define exposure-time for red calibration"
+msgstr "Kırmızı kalibrasyonu için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:428
+#, no-c-format
+msgid "Define exposure-time for green calibration"
+msgstr "Yeşil kalibrasyonu için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:430
+#, no-c-format
+msgid "Define exposure-time for blue calibration"
+msgstr "Mavi kalibrasyonu için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:432
+#, no-c-format
+msgid "Define exposure-time for scan"
+msgstr "Tarama için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:434
+#, no-c-format
+msgid "Define exposure-time for red scan"
+msgstr "Kırmızı taraması için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:436
+#, no-c-format
+msgid "Define exposure-time for green scan"
+msgstr "Yeşil taraması için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:438
+#, no-c-format
+msgid "Define exposure-time for blue scan"
+msgstr "Mavi taraması için pozlama süresini tanımla"
+
+#: include/sane/saneopts.h:440
+#, no-c-format
+msgid "Enable selection of exposure-time"
+msgstr "Pozlama süresinin seçimini etkinleştir"
+
+#: include/sane/saneopts.h:442
+#, no-c-format
+msgid "Define lamp density for calibration"
+msgstr "Kalibrasyon için lamba yoğunluğunu tanımla"
+
+#: include/sane/saneopts.h:444
+#, no-c-format
+msgid "Define lamp density for scan"
+msgstr "Tarama için lamba yoğunluğunu tanımla"
+
+#: include/sane/saneopts.h:446
+#, no-c-format
+msgid "Enable selection of lamp density"
+msgstr "Lamba yoğunluğunu seçmeye izin ver"
+
+#: include/sane/saneopts.h:448 backend/umax.c:5828
+#, no-c-format
+msgid "Turn off lamp when program exits"
+msgstr "Program çıktığında lambayı kapat"
+
+#: include/sane/saneopts.h:450
+#, no-c-format
+msgid "Focus position for manual focus"
+msgstr "Elle odak için odak konumu"
+
+#: include/sane/saneopts.h:452
+#, no-c-format
+msgid "Perform autofocus before scan"
+msgstr "Tarama öncesi kendiliğinden odakla"
+
+#: include/sane/saneopts.h:454
+#, no-c-format
+msgid "Perform infrared scan"
+msgstr "Kızılötesi tarama gerçekleştir"
+
+#: include/sane/saneopts.h:458
+#, no-c-format
+msgid "Scan button"
+msgstr "Tarama düğmesi"
+
+#: include/sane/saneopts.h:459
+#, no-c-format
+msgid "Email button"
+msgstr "E-posta düğmesi"
+
+#: include/sane/saneopts.h:460
+#, no-c-format
+msgid "Fax button"
+msgstr "Faks düğmesi"
+
+#: include/sane/saneopts.h:461
+#, no-c-format
+msgid "Copy button"
+msgstr "Kopyala düğmesi"
+
+#: include/sane/saneopts.h:462
+#, no-c-format
+msgid "PDF button"
+msgstr "PDF düğmesi"
+
+#: include/sane/saneopts.h:463
+#, no-c-format
+msgid "Cancel button"
+msgstr "İptal düğmesi"
+
+#: include/sane/saneopts.h:464
+#, no-c-format
+msgid "Page loaded"
+msgstr "Sayfa yüklendi"
+
+#: include/sane/saneopts.h:465
+#, no-c-format
+msgid "Cover open"
+msgstr "Kapak açık"
+
+#: include/sane/saneopts.h:468
+#, no-c-format
+msgid "Color"
+msgstr "Renk"
+
+#: include/sane/saneopts.h:469
+#, no-c-format
+msgid "Color Lineart"
+msgstr "Renkli çizgi sanatı"
+
+#: include/sane/saneopts.h:470
+#, no-c-format
+msgid "Color Halftone"
+msgstr "Renkli yarı ton"
+
+#: include/sane/saneopts.h:471
+#, no-c-format
+msgid "Gray"
+msgstr "Gri"
+
+#: include/sane/saneopts.h:472
+#, no-c-format
+msgid "Halftone"
+msgstr "Yarı ton"
+
+#: include/sane/saneopts.h:473
+#, no-c-format
+msgid "Lineart"
+msgstr "Çizgi sanatı"
+
+#: backend/sane_strstatus.c:57
+#, no-c-format
+msgid "Success"
+msgstr "Başarılı"
+
+#: backend/sane_strstatus.c:60
+#, no-c-format
+msgid "Operation not supported"
+msgstr "İşlem desteklenmiyor"
+
+#: backend/sane_strstatus.c:63
+#, no-c-format
+msgid "Operation was canceled"
+msgstr "İşlem iptal edildi"
+
+#: backend/sane_strstatus.c:66
+#, no-c-format
+msgid "Device busy"
+msgstr "Aygıt meşgul"
+
+#: backend/sane_strstatus.c:69
+#, no-c-format
+msgid "Invalid argument"
+msgstr "Geçersiz argüman"
+
+#: backend/sane_strstatus.c:72
+#, no-c-format
+msgid "End of file reached"
+msgstr "Dosyanın sonuna erişildi"
+
+#: backend/sane_strstatus.c:75
+#, no-c-format
+msgid "Document feeder jammed"
+msgstr "Belge besleyicisinde sıkışma"
+
+#: backend/sane_strstatus.c:78
+#, no-c-format
+msgid "Document feeder out of documents"
+msgstr "Belge besleyicisinde belge kalmadı"
+
+#: backend/sane_strstatus.c:81
+#, no-c-format
+msgid "Scanner cover is open"
+msgstr "Tarayıcı kapağı açık"
+
+#: backend/sane_strstatus.c:84
+#, no-c-format
+msgid "Error during device I/O"
+msgstr "Aygıt G/Ç sırasında hata"
+
+#: backend/sane_strstatus.c:87
+#, no-c-format
+msgid "Out of memory"
+msgstr "Bellek yetersiz"
+
+#: backend/sane_strstatus.c:90
+#, no-c-format
+msgid "Access to resource has been denied"
+msgstr "Özkaynağa erişim reddedildi"
+
+#: backend/sane_strstatus.c:94
+#, no-c-format
+msgid "Lamp not ready, please retry"
+msgstr "Lamba hazır değil, lütfen yeniden deneyin"
+
+#: backend/sane_strstatus.c:99
+#, no-c-format
+msgid "Scanner mechanism locked for transport"
+msgstr "Tarayıcı mekanizması taşıma için kilitli"
+
+#: backend/artec_eplus48u.c:2863 backend/pnm.c:280
+#, no-c-format
+msgid "Defaults"
+msgstr "Öntanımlılar"
+
+#: backend/artec_eplus48u.c:2865
+#, no-c-format
+msgid "Set default values for enhancement controls."
+msgstr "İyileştirme denetimleri için öntanımlı değerleri ayarlayın."
+
+#: backend/artec_eplus48u.c:2921 backend/canon.c:1625
+#: backend/pixma/pixma_sane_options.c:406
+#, no-c-format
+msgid "Calibration"
+msgstr "Kalibrasyon"
+
+#: backend/artec_eplus48u.c:2930
+#, no-c-format
+msgid "Calibrate before next scan"
+msgstr "Sonraki tarama öncesi kalibre et"
+
+#: backend/artec_eplus48u.c:2932
+#, no-c-format
+msgid ""
+"If enabled, the device will be calibrated before the next scan. "
+"Otherwise, calibration is performed only before the first start."
+msgstr ""
+"Etkinleştirilirse aygıt bir sonraki tarama öncesinde kalibre "
+"edilecektir. Aksi takdirde, kalibrasyon yalnızca ilk başlatmadan önce "
+"gerçekleştirilir."
+
+#: backend/artec_eplus48u.c:2943
+#, no-c-format
+msgid "Only perform shading-correction"
+msgstr "Yalnızca gölge düzeltmesi uygula"
+
+#: backend/artec_eplus48u.c:2945
+#, no-c-format
+msgid ""
+"If enabled, only the shading correction is performed during calibration. "
+"The default values for gain, offset and exposure time, either built-in "
+"or from the configuration file, are used."
+msgstr ""
+"Etkinleştirilirse kalibrasyon sırasında yalnızca gölgelendirme "
+"düzeltmesi gerçekleştirilir. Kazanç, ofset ve pozlama süresi için "
+"yerleşik veya yapılandırma dosyasından gelen öntanımlı değerler "
+"kullanılır."
+
+#: backend/artec_eplus48u.c:2956
+#, no-c-format
+msgid "Button state"
+msgstr "Düğme durumu"
+
+#: backend/avision.h:73 backend/hp5400_sane.c:518 backend/niash.c:706
+#, no-c-format
+msgid "Miscellaneous"
+msgstr "Çeşitli"
+
+#: backend/avision.h:74
+#, no-c-format
+msgid "Installed options"
+msgstr "Kurulu seçenekler"
+
+#: backend/avision.h:76
+#, no-c-format
+msgid "Overscan top"
+msgstr "Üstten fazla tara"
+
+#: backend/avision.h:77
+#, no-c-format
+msgid "Overscan bottom"
+msgstr "Alttan fazla tara"
+
+#: backend/avision.h:78
+#, no-c-format
+msgid "Background raster lines"
+msgstr "Arka plan raster çizgiler"
+
+#: backend/avision.h:79 backend/microtek2.h:624
+#: backend/snapscan-options.c:435
+#, no-c-format
+msgid "Quality scan"
+msgstr "Kaliteli tarama"
+
+#: backend/avision.h:80
+#, no-c-format
+msgid "Exposure"
+msgstr "Pozlama"
+
+#: backend/avision.h:81
+#, no-c-format
+msgid "Multi-sample"
+msgstr "Çoklu örnek"
+
+#: backend/avision.h:82
+#, no-c-format
+msgid "Power save timer control"
+msgstr "Güç tasarrufu zamanlayıcısı denetimi"
+
+#: backend/avision.h:83
+#, no-c-format
+msgid "Message text from the scanner"
+msgstr "Tarayıcıdan gelen ileti metni"
+
+#: backend/avision.h:84
+#, no-c-format
+msgid "Obtain NVRAM values"
+msgstr "NVRAM değerlerini al"
+
+#: backend/avision.h:85
+#, no-c-format
+msgid "Use paper length"
+msgstr "Kâğıt uzunluğunu kullan"
+
+#: backend/avision.h:86
+#, no-c-format
+msgid "Flip document after duplex scanning"
+msgstr "Çift yönlü tarama sonrası belgeyi ters çevir"
+
+#: backend/avision.h:87
+#, no-c-format
+msgid "ADF installed"
+msgstr "KBB kurulu"
+
+#: backend/avision.h:88
+#, no-c-format
+msgid "Lightbox installed"
+msgstr "Lightbox kurulu"
+
+#: backend/avision.h:91
+#, no-c-format
+msgid ""
+"The top overscan controls the additional area to scan before the paper "
+"is detected."
+msgstr "Üst tarama, kağıt algılanmadan önce taranacak ek alanı denetler."
+
+#: backend/avision.h:94
+#, no-c-format
+msgid ""
+"The bottom overscan controls the additional area to scan after the paper "
+"end is detected."
+msgstr "Alt tarama, kağıt algılanmadan önce taranacak ek alanı denetler."
+
+#: backend/avision.h:97
+#, no-c-format
+msgid ""
+"The background raster controls the additional background lines to scan "
+"before the paper is feed through the scanner."
+msgstr ""
+"Arka plan rasteri, kâğıt tarayıcıya beslenmeden önce taranacak ek arka "
+"plan satırlarını denetler."
+
+#: backend/avision.h:100
+#, no-c-format
+msgid "Turn on quality scanning (slower but better)."
+msgstr "Kaliteli taramayı açar (daha yavaş; ancak daha iyi)."
+
+#: backend/avision.h:102
+#, no-c-format
+msgid "Manual exposure adjustment."
+msgstr "Elle pozlama düzeltmesi."
+
+#: backend/avision.h:104
+#, no-c-format
+msgid "Enable multi-sample scan mode."
+msgstr "Çoklu örnek tarama kipini etkinleştirin."
+
+#: backend/avision.h:106
+#, no-c-format
+msgid ""
+"Allows control of the scanner's power save timer, dimming or turning off "
+"the light."
+msgstr ""
+"Tarayıcının güç tasarrufu zamanlayıcısını denetlemenizi, ışığı kısmanızı "
+"veya kapatmanızı sağlar."
+
+#: backend/avision.h:109
+#, no-c-format
+msgid ""
+"This text contains device specific options controlled by the user on the "
+"scanner hardware."
+msgstr ""
+"Bu metin, tarayıcı donanımında kullanıcı tarafından denetlenen aygıta "
+"özgü seçenekleri içerir."
+
+#: backend/avision.h:112
+#, no-c-format
+msgid ""
+"Allows access obtaining the scanner's NVRAM values as pretty printed "
+"text."
+msgstr ""
+"Tarayıcının NVRAM değerlerinin güzel yazdırılmış metin olarak elde "
+"edilmesine erişim sağlar."
+
+#: backend/avision.h:115
+#, no-c-format
+msgid ""
+"Newer scanners can utilize this paper length to detect double feeds. "
+"However some others (DM152) can get confused during media flush if it is "
+"set."
+msgstr ""
+"Daha yeni tarayıcılar, çift beslemeleri algılamak için bu kâğıt "
+"uzunluğunu kullanabilir. Ancak bazıları (DM152) ayarlandığında ortam "
+"yıkaması sırasında karışabilir."
+
+#: backend/avision.h:118
+#, no-c-format
+msgid ""
+"Tells page-flipping document scanners to flip the paper back to its "
+"original orientation before dropping it in the output tray. Turning "
+"this off might make scanning a little faster if you don't care about "
+"manually flipping the pages afterwards."
+msgstr ""
+"Sayfa çevirmeli belge tarayıcılarına, kâğıdı çıkış tepsisine bırakmadan "
+"önce özgün yönüne geri çevirmelerini söyler. Bunu kapatmak, daha sonra "
+"sayfaları elle çevirmekle ilgilenmiyorsanız taramayı biraz daha hızlı "
+"hale getirebilir."
+
+#: backend/avision.h:123
+#, no-c-format
+msgid "ADF option is detected as installed."
+msgstr "KBB seçeneğinin kurulu olduğu algılandı."
+
+#: backend/avision.h:125
+#, no-c-format
+msgid "Lightbox option is detected as installed."
+msgstr "Lightbox seçeneğinin kurulu olduğu algılandı."
+
+#: backend/avision.h:897
+#, no-c-format
+msgid "Number of the frame to scan"
+msgstr "Taranacak kare sayısı"
+
+#: backend/avision.h:898
+#, no-c-format
+msgid "Selects the number of the frame to scan"
+msgstr "Taranacak karelerin sayısını seçer"
+
+#: backend/avision.h:901
+#, no-c-format
+msgid "Duplex scan"
+msgstr "Çift yönlü tarama"
+
+#: backend/avision.h:902
+#, no-c-format
+msgid ""
+"Duplex scan provides a scan of the front and back side of the document"
+msgstr ""
+"Çift yönlü tarama, belgenin ön ve arka tarafının taranmasını sağlar"
+
+#: backend/canon-sane.c:674 backend/canon.c:169
+#, no-c-format
+msgid "Correction according to transparency ratio"
+msgstr "Saydamlık oranına göre düzeltme"
+
+#: backend/canon-sane.c:680 backend/canon.c:168
+#, no-c-format
+msgid "Correction according to film type"
+msgstr "Film türüne göre düzeltme"
+
+#: backend/canon-sane.c:732 backend/canon-sane.c:940
+#: backend/canon-sane.c:1076 backend/canon-sane.c:1293
+#: backend/canon-sane.c:1473 backend/canon-sane.c:1622 backend/canon.c:155
+#, no-c-format
+msgid "Fine color"
+msgstr "İnce renk"
+
+#: backend/canon-sane.c:776 backend/canon.c:174
+#, no-c-format
+msgid "Negatives"
+msgstr "Negatifler"
+
+#: backend/canon-sane.c:1297 backend/canon.c:147
+#, no-c-format
+msgid "Raw"
+msgstr "Ham"
+
+#: backend/canon.c:167
+#, no-c-format
+msgid "No transparency correction"
+msgstr "Saydamlık düzeltmesi yok"
+
+#: backend/canon.c:174
+#, no-c-format
+msgid "Slides"
+msgstr "Slaytlar"
+
+#: backend/canon.c:184 backend/kvs1025_opt.c:180 backend/kvs40xx_opt.c:268
+#: backend/matsushita.c:175
+#, no-c-format
+msgid "Automatic"
+msgstr "Kendiliğinden"
+
+#: backend/canon.c:184
+#, no-c-format
+msgid "Normal speed"
+msgstr "Normal hız"
+
+#: backend/canon.c:185
+#, no-c-format
+msgid "1/2 normal speed"
+msgstr "Normal hızın ½’si"
+
+#: backend/canon.c:185
+#, no-c-format
+msgid "1/3 normal speed"
+msgstr "Normal hızın ⅓’ü"
+
+#: backend/canon.c:358
+#, no-c-format
+msgid "rounded parameter"
+msgstr "Yuvarlanmış parametre"
+
+#: backend/canon.c:361 backend/canon.c:377 backend/canon.c:412
+#: backend/canon.c:462 backend/canon.c:480 backend/canon.c:523
+#, no-c-format
+msgid "unknown"
+msgstr "Bilinmiyor"
+
+#: backend/canon.c:371
+#, no-c-format
+msgid "ADF jam"
+msgstr "KBB sıkışması"
+
+#: backend/canon.c:374
+#, no-c-format
+msgid "ADF cover open"
+msgstr "KBB kapağı açık"
+
+#: backend/canon.c:387
+#, no-c-format
+msgid "lamp failure"
+msgstr "Lamba hatası"
+
+#: backend/canon.c:390
+#, no-c-format
+msgid "scan head positioning error"
+msgstr "Tarama kafası konumlandırma hatası"
+
+#: backend/canon.c:393
+#, no-c-format
+msgid "CPU check error"
+msgstr "CPU denetimi hatası"
+
+#: backend/canon.c:396
+#, no-c-format
+msgid "RAM check error"
+msgstr "RAM denetleme hatası"
+
+#: backend/canon.c:399
+#, no-c-format
+msgid "ROM check error"
+msgstr "ROM denetleme hatası"
+
+#: backend/canon.c:402
+#, no-c-format
+msgid "hardware check error"
+msgstr "Donanım denetleme hatası"
+
+#: backend/canon.c:405
+#, no-c-format
+msgid "transparency unit lamp failure"
+msgstr "Saydam birim lambası hatası"
+
+#: backend/canon.c:408
+#, no-c-format
+msgid "transparency unit scan head positioning failure"
+msgstr "Saydamlık birimi tarama kafası konumlandırma hatası"
+
+#: backend/canon.c:422
+#, no-c-format
+msgid "parameter list length error"
+msgstr "Parametre listesi uzunluğu hatası"
+
+#: backend/canon.c:426
+#, no-c-format
+msgid "invalid command operation code"
+msgstr "Geçersiz komut işlemi kodu"
+
+#: backend/canon.c:430
+#, no-c-format
+msgid "invalid field in CDB"
+msgstr "CDB’de geçersiz alan"
+
+#: backend/canon.c:434
+#, no-c-format
+msgid "unsupported LUN"
+msgstr "Desteklenmeyen LUN"
+
+#: backend/canon.c:438
+#, no-c-format
+msgid "invalid field in parameter list"
+msgstr "Parametre listesinde geçersiz alan"
+
+#: backend/canon.c:442
+#, no-c-format
+msgid "command sequence error"
+msgstr "Komut dizisi hatası"
+
+#: backend/canon.c:446
+#, no-c-format
+msgid "too many windows specified"
+msgstr "Pek fazla pencere belirtildi"
+
+#: backend/canon.c:450
+#, no-c-format
+msgid "medium not present"
+msgstr "Ortam yok"
+
+#: backend/canon.c:454
+#, no-c-format
+msgid "invalid bit IDENTIFY message"
+msgstr "Geçersiz bit IDENTIFY iletisi"
+
+#: backend/canon.c:458
+#, no-c-format
+msgid "option not correct"
+msgstr "Seçenek doğru değil"
+
+#: backend/canon.c:472
+#, no-c-format
+msgid "power on reset / bus device reset"
+msgstr "Güç açıkken sıfırla/veri yolu aygıtını sıfırla"
+
+#: backend/canon.c:476
+#, no-c-format
+msgid "parameter changed by another initiator"
+msgstr "Parametre başka bir başlatıcı tarafından değiştirildi"
+
+#: backend/canon.c:490
+#, no-c-format
+msgid "no additional sense information"
+msgstr "Başka bir duyu bilgisi yok"
+
+#: backend/canon.c:494
+#, no-c-format
+msgid "reselect failure"
+msgstr "Yeniden seçim başarısız"
+
+#: backend/canon.c:498
+#, no-c-format
+msgid "SCSI parity error"
+msgstr "SCSI parite hatası"
+
+#: backend/canon.c:502
+#, no-c-format
+msgid "initiator detected error message received"
+msgstr "“Başlatıcı algılandı” hata iletisi alındı"
+
+#: backend/canon.c:507
+#, no-c-format
+msgid "invalid message error"
+msgstr "Geçersiz ileti hatası"
+
+#: backend/canon.c:511
+#, no-c-format
+msgid "timeout error"
+msgstr "Zaman aşımı hatası"
+
+#: backend/canon.c:515
+#, no-c-format
+msgid "transparency unit shading error"
+msgstr "Saydamlık birimi gölgelendirme hatası"
+
+#: backend/canon.c:519
+#, no-c-format
+msgid "lamp not stabilized"
+msgstr "Lamba stabilize değil"
+
+#: backend/canon.c:844 backend/canon.c:860
+#, no-c-format
+msgid "film scanner"
+msgstr "Film tarayıcısı"
+
+#: backend/canon.c:876 backend/canon.c:892 backend/canon.c:907
+#: backend/canon.c:922 backend/hp3900_sane.c:1682 backend/plustek.c:1333
+#: backend/plustek_pp.c:1012 backend/sceptre.c:590 backend/teco2.c:1829
+#: backend/u12.c:849
+#, no-c-format
+msgid "flatbed scanner"
+msgstr "Düz yatak tarayıcı"
+
+#: backend/canon.c:1192 backend/epson.c:3384 backend/epson2.c:1388
+#, no-c-format
+msgid "Film type"
+msgstr "Film türü"
+
+#: backend/canon.c:1193
+#, no-c-format
+msgid "Selects the film type, i.e. negatives or slides"
+msgstr "Film türünü seçer; örneğin, negatifler veya slaytlar"
+
+#: backend/canon.c:1205
+#, no-c-format
+msgid "Negative film type"
+msgstr "Negatif film türü"
+
+#: backend/canon.c:1206
+#, no-c-format
+msgid "Selects the negative film type"
+msgstr "Negatif film türünü seçer"
+
+#: backend/canon.c:1245
+#, no-c-format
+msgid "Hardware resolution"
+msgstr "Donanım çözünürlüğü"
+
+#: backend/canon.c:1246
+#, no-c-format
+msgid "Use only hardware resolutions"
+msgstr "Yalnızca donanım çözünürlüklerini kullan"
+
+#: backend/canon.c:1327 backend/epson2.c:1331
+#, no-c-format
+msgid "Focus"
+msgstr "Odak"
+
+#: backend/canon.c:1337
+#, no-c-format
+msgid "Auto focus"
+msgstr "Kendiliğinden odak"
+
+#: backend/canon.c:1338
+#, no-c-format
+msgid "Enable/disable auto focus"
+msgstr "Kendiliğinden odağı etkinleştir/devre dışı bırak"
+
+#: backend/canon.c:1345
+#, no-c-format
+msgid "Auto focus only once"
+msgstr "Yalnızca bir kez kendiliğinden odakla"
+
+#: backend/canon.c:1346
+#, no-c-format
+msgid "Do auto focus only once between ejects"
+msgstr "Çıkarmalar arasında yalnızca bir kez kendiliğinden odaklanma"
+
+#: backend/canon.c:1354
+#, no-c-format
+msgid "Manual focus position"
+msgstr "Elle odak konumu"
+
+#: backend/canon.c:1355
+#, no-c-format
+msgid "Set the optical system's focus position by hand (default: 128)."
+msgstr "Optik sistemin odak konumunu elle ayarlayın (Öntanımlı: 128)."
+
+#: backend/canon.c:1365
+#, no-c-format
+msgid "Scan margins"
+msgstr "Tarama kenar boşlukları"
+
+#: backend/canon.c:1412
+#, no-c-format
+msgid "Extra color adjustments"
+msgstr "Ek renk ayarlamaları"
+
+#: backend/canon.c:1547 backend/epson.c:3203 backend/epson2.c:1245
+#: backend/kvs1025.h:55 backend/kvs40xx_opt.c:821
+#, no-c-format
+msgid "Mirror image"
+msgstr "Görseli yansıt"
+
+#: backend/canon.c:1548
+#, no-c-format
+msgid "Mirror the image horizontally"
+msgstr "Görseli yatay olarak yansıt"
+
+#: backend/canon.c:1617
+#, no-c-format
+msgid "Auto exposure"
+msgstr "Kendiliğinden pozlama"
+
+#: backend/canon.c:1618
+#, no-c-format
+msgid "Enable/disable the auto exposure feature"
+msgstr "Kendiliğinden pozlama özelliğini etkinleştir/devre dışı bırak"
+
+#: backend/canon.c:1634
+#, no-c-format
+msgid "Calibration now"
+msgstr "Şimdi kalibre et"
+
+#: backend/canon.c:1635
+#, no-c-format
+msgid "Execute calibration *now*"
+msgstr "Kalibrasyonu *şimdi* yürüt"
+
+#: backend/canon.c:1645
+#, no-c-format
+msgid "Self diagnosis"
+msgstr "Öz tanı"
+
+#: backend/canon.c:1646
+#, no-c-format
+msgid "Perform scanner self diagnosis"
+msgstr "Tarayıcıda öz tanılama gerçekleştir"
+
+#: backend/canon.c:1657
+#, no-c-format
+msgid "Reset scanner"
+msgstr "Tarayıcıyı sıfırla"
+
+#: backend/canon.c:1658
+#, no-c-format
+msgid "Reset the scanner"
+msgstr "Tarayıcıyı sıfırla"
+
+#: backend/canon.c:1668
+#, no-c-format
+msgid "Medium handling"
+msgstr "Ortam işlemesi"
+
+#: backend/canon.c:1677
+#, no-c-format
+msgid "Eject film after each scan"
+msgstr "Her bir taramadan sonra filmi çıkar"
+
+#: backend/canon.c:1678
+#, no-c-format
+msgid "Automatically eject the film from the device after each scan"
+msgstr "Her bir taramadan sonra aygıttan filmi çıkar"
+
+#: backend/canon.c:1689
+#, no-c-format
+msgid "Eject film before exit"
+msgstr "Çıkmadan önce filmi çıkar"
+
+#: backend/canon.c:1690
+#, no-c-format
+msgid ""
+"Automatically eject the film from the device before exiting the program"
+msgstr "Programdan çıkmadan önce aygıttan filmi kendiliğinden çıkar"
+
+#: backend/canon.c:1699
+#, no-c-format
+msgid "Eject film now"
+msgstr "Filmi şimdi çıkar"
+
+#: backend/canon.c:1700
+#, no-c-format
+msgid "Eject the film *now*"
+msgstr "Filmi *şimdi* çıkar"
+
+#: backend/canon.c:1709
+#, no-c-format
+msgid "Document feeder extras"
+msgstr "Belge besleyicisi ekstraları"
+
+#: backend/canon.c:1716
+#, no-c-format
+msgid "Flatbed only"
+msgstr "Yalnızca düz yatak"
+
+#: backend/canon.c:1717
+#, no-c-format
+msgid "Disable auto document feeder and use flatbed only"
+msgstr ""
+"Kendiliğinden belge beslemeyi devre dışı bırak ve yalnızca düz yatağı "
+"kullan"
+
+#: backend/canon.c:1727 backend/canon.c:1737
+#, no-c-format
+msgid "Transparency unit"
+msgstr "Saydamlık birimi"
+
+#: backend/canon.c:1738
+#, no-c-format
+msgid "Switch on/off the transparency unit (FAU, film adapter unit)"
+msgstr "Saydamlık birimini aç/kapat (FAU, film bağdaştırıcısı birimi)"
+
+#: backend/canon.c:1748
+#, no-c-format
+msgid "Negative film"
+msgstr "Negatif film"
+
+#: backend/canon.c:1749
+#, no-c-format
+msgid "Positive or negative film"
+msgstr "Pozitif veya negatif film"
+
+#: backend/canon.c:1758
+#, no-c-format
+msgid "Density control"
+msgstr "Yoğunluk denetimi"
+
+#: backend/canon.c:1759
+#, no-c-format
+msgid "Set density control mode"
+msgstr "Yoğunluk denetim kipini ayarlayın."
+
+#: backend/canon.c:1770
+#, no-c-format
+msgid "Transparency ratio"
+msgstr "Saydamlık oranı"
+
+#: backend/canon.c:1784
+#, no-c-format
+msgid "Select film type"
+msgstr "Film türünü seç"
+
+#: backend/canon.c:1785
+#, no-c-format
+msgid "Select the film type"
+msgstr "Film türünü seçin."
+
+#: backend/canon630u.c:157
+#, no-c-format
+msgid "Calibrate Scanner"
+msgstr "Tarayıcıyı kalibre et"
+
+#: backend/canon630u.c:158
+#, no-c-format
+msgid "Force scanner calibration before scan"
+msgstr "Tarama öncesinde tarayıcı kalibrasyonunu zorlayın."
+
+#: backend/canon630u.c:257 backend/umax1220u.c:206
+#, no-c-format
+msgid "Grayscale scan"
+msgstr "Gri tonlu tarama"
+
+#: backend/canon630u.c:258 backend/umax1220u.c:207
+#, no-c-format
+msgid "Do a grayscale rather than color scan"
+msgstr "Renkli tarama yerine gri tonlu tarama yapın."
+
+#: backend/canon630u.c:304
+#, no-c-format
+msgid "Analog Gain"
+msgstr "Analog kazanç"
+
+#: backend/canon630u.c:305
+#, no-c-format
+msgid "Increase or decrease the analog gain of the CCD array"
+msgstr "CCD dizilişinin analog kazancını artırın veya azaltın."
+
+#: backend/canon630u.c:345 backend/epson.h:66 backend/epson2.h:70
+#, no-c-format
+msgid "Gamma Correction"
+msgstr "Gama düzeltmesi"
+
+#: backend/canon630u.c:346
+#, no-c-format
+msgid "Selects the gamma corrected transfer curve"
+msgstr "Gaması düzeltilmiş aktarım eğrisini seçer."
+
+#: backend/canon_dr.c:437 backend/epjitsu.c:241 backend/epson.c:499
+#: backend/epson2-ops.c:101 backend/epson2.c:111 backend/epsonds-ops.c:31
+#: backend/epsonds.c:1326 backend/epsonds.h:65 backend/epsonds.h:69
+#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
+#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
+#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
+#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
+#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
+#: backend/test.c:232 backend/umax.c:179
+#, no-c-format
+msgid "Flatbed"
+msgstr "Düz yatak"
+
+#: backend/canon_dr.c:438 backend/epjitsu.c:242 backend/epsonds-ops.c:32
+#: backend/epsonds.c:1327 backend/epsonds.h:70 backend/fujitsu.c:691
+#: backend/kodak.c:138
+#, no-c-format
+msgid "ADF Front"
+msgstr "KBB ön"
+
+#: backend/canon_dr.c:439 backend/epjitsu.c:243 backend/fujitsu.c:692
+#: backend/kodak.c:139
+#, no-c-format
+msgid "ADF Back"
+msgstr "KBB arka"
+
+#: backend/canon_dr.c:440 backend/epjitsu.c:244 backend/epsonds-ops.c:33
+#: backend/epsonds.c:1328 backend/epsonds.h:71 backend/fujitsu.c:693
+#: backend/hp5590.c:92 backend/kodak.c:140 backend/pixma/pixma.c:1037
+#, no-c-format
+msgid "ADF Duplex"
+msgstr "KBB çift yönlü"
+
+#: backend/canon_dr.c:441 backend/fujitsu.c:694
+#, no-c-format
+msgid "Card Front"
+msgstr "Kart ön"
+
+#: backend/canon_dr.c:442 backend/fujitsu.c:695
+#, no-c-format
+msgid "Card Back"
+msgstr "Kart arka"
+
+#: backend/canon_dr.c:443 backend/fujitsu.c:696
+#, no-c-format
+msgid "Card Duplex"
+msgstr "Kart çift yönlü"
+
+#: backend/canon_dr.c:450 backend/epson.c:597 backend/epson.c:3094
+#: backend/epson2.c:191 backend/fujitsu.c:713
+#: backend/genesys/genesys.cpp:96 backend/genesys/genesys.cpp:103
+#: backend/gt68xx_low.h:134 backend/hp-option.c:3091
+#, no-c-format
+msgid "Red"
+msgstr "Kırmızı"
+
+#: backend/canon_dr.c:451 backend/epson.c:598 backend/epson.c:3090
+#: backend/epson2.c:192 backend/fujitsu.c:714
+#: backend/genesys/genesys.cpp:97 backend/genesys/genesys.cpp:104
+#: backend/gt68xx_low.h:135 backend/hp-option.c:3092
+#, no-c-format
+msgid "Green"
+msgstr "Yeşil"
+
+#: backend/canon_dr.c:452 backend/epson.c:599 backend/epson.c:3098
+#: backend/epson2.c:193 backend/fujitsu.c:715
+#: backend/genesys/genesys.cpp:98 backend/genesys/genesys.cpp:105
+#: backend/gt68xx_low.h:136 backend/hp-option.c:3093
+#, no-c-format
+msgid "Blue"
+msgstr "Mavi"
+
+#: backend/canon_dr.c:453
+#, no-c-format
+msgid "Enhance Red"
+msgstr "Kırmızıyı iyileştir"
+
+#: backend/canon_dr.c:454
+#, no-c-format
+msgid "Enhance Green"
+msgstr "Yeşili iyileştir"
+
+#: backend/canon_dr.c:455
+#, no-c-format
+msgid "Enhance Blue"
+msgstr "Maviyi iyileştir"
+
+#: backend/canon_dr.c:457 backend/epson.c:554 backend/epson.c:562
+#: backend/epson.c:574 backend/epson.c:596 backend/epson2.c:155
+#: backend/epson2.c:163 backend/epson2.c:175 backend/epson2.c:190
+#: backend/epson2.c:204 backend/fujitsu.c:719
+#: backend/genesys/genesys.cpp:106 backend/leo.c:106
+#: backend/matsushita.c:135 backend/matsushita.c:156
+#: backend/matsushita.c:188 backend/matsushita.c:210
+#: backend/snapscan-options.c:91
+#, no-c-format
+msgid "None"
+msgstr "Yok"
+
+#: backend/canon_dr.c:458 backend/fujitsu.c:720
+#, no-c-format
+msgid "JPEG"
+msgstr "JPEG"
+
+#: backend/canon_dr.c:460
+#, no-c-format
+msgid "8x12"
+msgstr "8 × 12"
+
+#: backend/canon_dr.c:461
+#, no-c-format
+msgid "12x12"
+msgstr "12 × 12"
+
+#: backend/canon_dr.c:463
+#, no-c-format
+msgid "Black-on-White"
+msgstr "Beyaz üstüne siyah"
+
+#: backend/canon_dr.c:464
+#, no-c-format
+msgid "Black-on-Image"
+msgstr "Görsel üzerine siyah"
+
+#: backend/canon_dr.c:465
+#, no-c-format
+msgid "White-on-Black"
+msgstr "Siyah üzerine beyaz"
+
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#, no-c-format
+msgid "Software blank skip percentage"
+msgstr "Yazılım boş atlama yüzdesi"
+
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
+#, no-c-format
+msgid "Request driver to discard pages with low percentage of dark pixels"
+msgstr ""
+"Sürücüden düşük oranda koyu piksel içeren sayfaları atmasını isteyin."
+
+#: backend/canon_dr.c:2910
+#, no-c-format
+msgid "Imprinter Options"
+msgstr "Baskıcı seçenekleri"
+
+#: backend/canon_dr.c:2911
+#, no-c-format
+msgid "Controls for imprinter units"
+msgstr "Baskıcı birimleri için denetimler"
+
+#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
+#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
+#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
+#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
+#: backend/mustek_usb.c:254 backend/mustek_usb2.c:342 backend/niash.c:731
+#: backend/plustek.c:719 backend/plustek_pp.c:656 backend/sceptre.c:670
+#: backend/snapscan-options.c:368 backend/stv680.c:1027
+#: backend/teco2.c:1879 backend/test.c:377 backend/u12.c:471
+#: backend/umax.c:5052
+#, no-c-format
+msgid "Scan Mode"
+msgstr "Tarama kipi"
+
+#: backend/canon_lide70.c:402 backend/test.c:662
+#, no-c-format
+msgid "Use non-blocking IO"
+msgstr "Engellemeyen G/Ç kullan"
+
+#: backend/canon_lide70.c:403 backend/test.c:663
+#, no-c-format
+msgid "Use non-blocking IO for sane_read() if supported by the frontend."
+msgstr ""
+"Ön uç tarafından destekleniyorsa sane_read() için engellemeyen G/Ç "
+"kullanın."
+
+#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
+#: backend/magicolor.c:189
+#, no-c-format
+msgid "Simplex"
+msgstr "Simplex"
+
+#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
+#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
+#: backend/magicolor.c:190 backend/matsushita.h:212
+#, no-c-format
+msgid "Duplex"
+msgstr "Duplex"
+
+#: backend/epson.c:500 backend/epson2-ops.c:102 backend/epson2.c:112
+#: backend/epsonds.h:66 backend/pixma/pixma.c:1043
+#, no-c-format
+msgid "Transparency Unit"
+msgstr "Saydamlık birimi"
+
+#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
+#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
+#: backend/umax.c:181
+#, no-c-format
+msgid "Automatic Document Feeder"
+msgstr "Kendiliğinden belge besleyicisi"
+
+#: backend/epson.c:521 backend/epson2.c:130
+#, no-c-format
+msgid "Positive Film"
+msgstr "Pozitif film"
+
+#: backend/epson.c:522 backend/epson2.c:131
+#, no-c-format
+msgid "Negative Film"
+msgstr "Negatif film"
+
+#: backend/epson.c:527
+#, no-c-format
+msgid "Focus on glass"
+msgstr "Cama odaklan"
+
+#: backend/epson.c:528
+#, no-c-format
+msgid "Focus 2.5mm above glass"
+msgstr "Camın 2,5 mm üzerine odaklan"
+
+#: backend/epson.c:555 backend/epson.c:563 backend/epson.c:575
+#: backend/epson2.c:156 backend/epson2.c:164 backend/epson2.c:176
+#, no-c-format
+msgid "Halftone A (Hard Tone)"
+msgstr "Yarı ton A (Sert ton)"
+
+#: backend/epson.c:556 backend/epson.c:564 backend/epson.c:576
+#: backend/epson2.c:157 backend/epson2.c:165 backend/epson2.c:177
+#, no-c-format
+msgid "Halftone B (Soft Tone)"
+msgstr "Yarı ton B (Yumuşak ton)"
+
+#: backend/epson.c:557 backend/epson.c:565 backend/epson.c:577
+#: backend/epson2.c:158 backend/epson2.c:166 backend/epson2.c:178
+#, no-c-format
+msgid "Halftone C (Net Screen)"
+msgstr "Yarı ton C (Net ekran)"
+
+#: backend/epson.c:566 backend/epson.c:578 backend/epson2.c:167
+#: backend/epson2.c:179
+#, no-c-format
+msgid "Dither A (4x4 Bayer)"
+msgstr "Titreme A (4 × 4 Bayer)"
+
+#: backend/epson.c:567 backend/epson.c:579 backend/epson2.c:168
+#: backend/epson2.c:180
+#, no-c-format
+msgid "Dither B (4x4 Spiral)"
+msgstr "Titreme B (4 × 4 Spiral)"
+
+#: backend/epson.c:568 backend/epson.c:580 backend/epson2.c:169
+#: backend/epson2.c:181
+#, no-c-format
+msgid "Dither C (4x4 Net Screen)"
+msgstr "Titreme C (4 × 4 Net ekran)"
+
+#: backend/epson.c:569 backend/epson.c:581 backend/epson2.c:170
+#: backend/epson2.c:182
+#, no-c-format
+msgid "Dither D (8x4 Net Screen)"
+msgstr "Titreme D (8 × 4 Net ekran)"
+
+#: backend/epson.c:582 backend/epson2.c:183
+#, no-c-format
+msgid "Text Enhanced Technology"
+msgstr "Metin iyileştirilmiş teknoloji"
+
+#: backend/epson.c:583 backend/epson2.c:184
+#, no-c-format
+msgid "Download pattern A"
+msgstr "A desenini indir"
+
+#: backend/epson.c:584 backend/epson2.c:185
+#, no-c-format
+msgid "Download pattern B"
+msgstr "B desenini indir"
+
+#: backend/epson.c:629
+#, no-c-format
+msgid "No Correction"
+msgstr "Düzeltme yok"
+
+#: backend/epson.c:630 backend/epson.c:655 backend/epson2.c:245
+#, no-c-format
+msgid "User defined"
+msgstr "Kullanıcı tanımlı"
+
+#: backend/epson.c:631
+#, no-c-format
+msgid "Impact-dot printers"
+msgstr "Nokta vuruşlu yazıcı"
+
+#: backend/epson.c:632
+#, no-c-format
+msgid "Thermal printers"
+msgstr "Termal yazıcılar"
+
+#: backend/epson.c:633
+#, no-c-format
+msgid "Ink-jet printers"
+msgstr "Mürekkep püskürtmeli yazıcılar"
+
+#: backend/epson.c:634
+#, no-c-format
+msgid "CRT monitors"
+msgstr "CRT monitörler"
+
+#: backend/epson.c:654 backend/epson2.c:244 backend/fujitsu.c:703
+#: backend/hp-option.c:3224 backend/test.c:147
+#, no-c-format
+msgid "Default"
+msgstr "Öntanımlı"
+
+#: backend/epson.c:656 backend/epson2.c:246
+#, no-c-format
+msgid "High density printing"
+msgstr "Yüksek yoğunluklu yazdırma"
+
+#: backend/epson.c:657 backend/epson2.c:247
+#, no-c-format
+msgid "Low density printing"
+msgstr "Düşük yoğunluklu yazdırma"
+
+#: backend/epson.c:658 backend/epson2.c:248
+#, no-c-format
+msgid "High contrast printing"
+msgstr "Yüksek karşıtlıklı yazdırma"
+
+#: backend/epson.c:676 backend/epson2.c:266
+#, no-c-format
+msgid "User defined (Gamma=1.0)"
+msgstr "Kullanıcı tanımlı (Gama = 1,0)"
+
+#: backend/epson.c:677 backend/epson2.c:267
+#, no-c-format
+msgid "User defined (Gamma=1.8)"
+msgstr "Kullanıcı tanımlı (Gama = 1,8)"
+
+#: backend/epson.c:755
+#, no-c-format
+msgid "CD"
+msgstr "CD"
+
+#: backend/epson.c:756
+#, no-c-format
+msgid "A5 portrait"
+msgstr "A5 dikey"
+
+#: backend/epson.c:757
+#, no-c-format
+msgid "A5 landscape"
+msgstr "A5 yatay"
+
+#: backend/epson.c:758 backend/kvs1025_opt.c:103 backend/kvs20xx_opt.c:77
+#: backend/kvs40xx_opt.c:126 backend/kvs40xx_opt.c:143
+#, no-c-format
+msgid "Letter"
+msgstr "Mektup"
+
+#: backend/epson.c:759 backend/kvs1025_opt.c:100 backend/kvs20xx_opt.c:74
+#: backend/kvs20xx_opt.c:302 backend/kvs40xx_opt.c:123
+#: backend/kvs40xx_opt.c:140 backend/kvs40xx_opt.c:521
+#, no-c-format
+msgid "A4"
+msgstr "A4"
+
+#: backend/epson.c:760
+#, no-c-format
+msgid "Max"
+msgstr "En büyük"
+
+#: backend/epson.c:2843 backend/epson2.c:1002
+#, no-c-format
+msgid "Selects the halftone."
+msgstr "Yarı tonu seçer."
+
+#: backend/epson.c:2865 backend/epson2.c:1023
+#, no-c-format
+msgid "Dropout"
+msgstr "Düşme"
+
+#: backend/epson.c:2866 backend/epson2.c:1024
+#, no-c-format
+msgid "Selects the dropout."
+msgstr "Düşmeyi seçer."
+
+#: backend/epson.c:2878 backend/epson2.c:1036
+#, no-c-format
+msgid "Selects the brightness."
+msgstr "Parlaklığı seçer."
+
+#: backend/epson.c:2893 backend/epson2.c:1049
+#, no-c-format
+msgid "Sharpness"
+msgstr "Keskinlik"
+
+#: backend/epson.c:3029 backend/epson2.c:1165 backend/epson2.c:1212
+#, no-c-format
+msgid "Color correction"
+msgstr "Renk düzeltme"
+
+#: backend/epson.c:3032 backend/epson2.c:1167
+#, no-c-format
+msgid "Sets the color correction table for the selected output device."
+msgstr "Seçili çıktı aygıtı için renk düzeltme tablosunu seçer."
+
+#: backend/epson.c:3073
+#, no-c-format
+msgid "Color correction coefficients"
+msgstr "Renk düzeltme katsayıları"
+
+#: backend/epson.c:3074
+#, no-c-format
+msgid "Matrix multiplication of RGB"
+msgstr "RGB’nin matris çarpımı"
+
+#: backend/epson.c:3091
+#, no-c-format
+msgid "Shift green to red"
+msgstr "Yeşili kırmızıya kaydır"
+
+#: backend/epson.c:3092
+#, no-c-format
+msgid "Shift green to blue"
+msgstr "Yeşili maviye kaydır"
+
+#: backend/epson.c:3093
+#, no-c-format
+msgid "Shift red to green"
+msgstr "Kırmızıyı yeşile kaydır"
+
+#: backend/epson.c:3095
+#, no-c-format
+msgid "Shift red to blue"
+msgstr "Kırmızıyı maviye kaydır"
+
+#: backend/epson.c:3096
+#, no-c-format
+msgid "Shift blue to green"
+msgstr "Maviyi yeşile kaydır"
+
+#: backend/epson.c:3097
+#, no-c-format
+msgid "Shift blue to red"
+msgstr "Maviyi kırmızıya kaydır"
+
+#: backend/epson.c:3100
+#, no-c-format
+msgid "Controls green level"
+msgstr "Yeşil düzeyini denetler"
+
+#: backend/epson.c:3101
+#, no-c-format
+msgid "Adds to red based on green level"
+msgstr "Yeşil düzeyi tabanlı olarak kırmızıya ekler"
+
+#: backend/epson.c:3102
+#, no-c-format
+msgid "Adds to blue based on green level"
+msgstr "Yeşil düzeyi tabanlı olarak maviye ekler"
+
+#: backend/epson.c:3103
+#, no-c-format
+msgid "Adds to green based on red level"
+msgstr "Kırmızı düzeyi tabanlı olarak yeşile ekler"
+
+#: backend/epson.c:3104
+#, no-c-format
+msgid "Controls red level"
+msgstr "Kırmızı düzeyini denetler"
+
+#: backend/epson.c:3105
+#, no-c-format
+msgid "Adds to blue based on red level"
+msgstr "Kırmızı düzeyi tabanlı olarak maviye ekler"
+
+#: backend/epson.c:3106
+#, no-c-format
+msgid "Adds to green based on blue level"
+msgstr "Mavi düzeyi tabanlı olarak yeşile ekler"
+
+#: backend/epson.c:3107
+#, no-c-format
+msgid "Adds to red based on blue level"
+msgstr "Mavi düzeyi tabanlı olarak kırmızıya ekler"
+
+#: backend/epson.c:3108
+#, no-c-format
+msgid "Controls blue level"
+msgstr "Mavi düzeyini denetler"
+
+#: backend/epson.c:3204 backend/epson2.c:1246
+#, no-c-format
+msgid "Mirror the image."
+msgstr "Görseli yansıtın."
+
+#: backend/epson.c:3230 backend/mustek.c:4323
+#, no-c-format
+msgid "Fast preview"
+msgstr "Hızlı önizleme"
+
+#: backend/epson.c:3243 backend/epson2.c:1256
+#, no-c-format
+msgid "Auto area segmentation"
+msgstr "Kendiliğinden alan bölütlemesi"
+
+#: backend/epson.c:3256
+#, no-c-format
+msgid "Short resolution list"
+msgstr "Kısa çözünürlük listesi"
+
+#: backend/epson.c:3258
+#, no-c-format
+msgid "Display short resolution list"
+msgstr "Kısa çözünürlük listesini görüntüle"
+
+#: backend/epson.c:3265
+#, no-c-format
+msgid "Zoom"
+msgstr "Yakınlaştır"
+
+#: backend/epson.c:3267
+#, no-c-format
+msgid "Defines the zoom factor the scanner will use"
+msgstr "Tarayıcının kullanacağı yakınlaştırma çarpanını tanımlar"
+
+#: backend/epson.c:3347
+#, no-c-format
+msgid "Quick format"
+msgstr "Hızlı biçim"
+
+#: backend/epson.c:3358 backend/epson2.c:1364 backend/epsonds.c:2028
+#, no-c-format
+msgid "Optional equipment"
+msgstr "İsteğe bağlı ekipman"
+
+#: backend/epson.c:3429 backend/epson2.c:1401 backend/epsonds.c:2044
+#, no-c-format
+msgid "Eject"
+msgstr "Çıkar"
+
+#: backend/epson.c:3430 backend/epson2.c:1402 backend/epsonds.c:2045
+#, no-c-format
+msgid "Eject the sheet in the ADF"
+msgstr "KBB’deki sayfayı çıkar"
+
+#: backend/epson.c:3442 backend/epson2.c:1412
+#, no-c-format
+msgid "Auto eject"
+msgstr "Kendiliğinden çıkar"
+
+#: backend/epson.c:3443 backend/epson2.c:1414
+#, no-c-format
+msgid "Eject document after scanning"
+msgstr "Taramadan sonra belgeyi kendiliğinden çıkar"
+
+#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
+#: backend/magicolor.c:2497
+#, no-c-format
+msgid "ADF Mode"
+msgstr "KBB kipi"
+
+#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
+#: backend/magicolor.c:2499
+#, no-c-format
+msgid "Selects the ADF mode (simplex/duplex)"
+msgstr "KBB kipini seçer (tek/çift yönlü)"
+
+#: backend/epson.c:3471 backend/epson2.c:1438
+#, no-c-format
+msgid "Bay"
+msgstr "Bölme"
+
+#: backend/epson.c:3472 backend/epson2.c:1439
+#, no-c-format
+msgid "Select bay to scan"
+msgstr "Taranacak bölmeyi seç"
+
+#: backend/epson.h:67 backend/epson2.h:71
+#, no-c-format
+msgid ""
+"Selects the gamma correction value from a list of pre-defined devices or "
+"the user defined table, which can be downloaded to the scanner"
+msgstr ""
+"Tarayıcıya indirilebilen önceden tanımlanmış aygıtlar listesinden veya "
+"kullanıcı tarafından tanımlanan tablodan gama düzeltme değerini seçer"
+
+#: backend/epson.h:70 backend/epson2.h:74
+#, no-c-format
+msgid "Focus Position"
+msgstr "Odak konumu"
+
+#: backend/epson.h:71 backend/epson2.h:75
+#, no-c-format
+msgid ""
+"Sets the focus position to either the glass or 2.5mm above the glass"
+msgstr "Odak konumunu ya cama ya da camın 2,5 mm üzerine ayarlar"
+
+#: backend/epson.h:73 backend/epson2.h:77
+#, no-c-format
+msgid "Wait for Button"
+msgstr "Düğmeyi bekle"
+
+#: backend/epson.h:74 backend/epson2.h:78
+#, no-c-format
+msgid ""
+"After sending the scan command, wait until the button on the scanner is "
+"pressed to actually start the scan process."
+msgstr ""
+"Tarama komutunu gönderdikten sonra, asıl tarama işlemini başlatmak için "
+"tarayıcıdaki düğme basılana kadar bekle"
+
+#: backend/epson2-ops.c:103 backend/epson2.c:113
+#, no-c-format
+msgid "TPU8x10"
+msgstr "TPU 8 × 10"
+
+#: backend/epson2.c:98 backend/pixma/pixma.c:414
+#, no-c-format
+msgid "Infrared"
+msgstr "Kızılötesi"
+
+#: backend/epson2.c:132
+#, no-c-format
+msgid "Positive Slide"
+msgstr "Pozitif slayt"
+
+#: backend/epson2.c:133
+#, no-c-format
+msgid "Negative Slide"
+msgstr "Negatif slayt"
+
+#: backend/epson2.c:205
+#, no-c-format
+msgid "Built in CCT profile"
+msgstr "Yerleşik CCT profili"
+
+#: backend/epson2.c:206
+#, no-c-format
+msgid "User defined CCT profile"
+msgstr "Kullanıcı tanımlı CCT profili"
+
+#: backend/epsonds.c:2052
+#, no-c-format
+msgid "Load"
+msgstr "Yükle"
+
+#: backend/epsonds.c:2053
+#, no-c-format
+msgid "Load a sheet in the ADF"
+msgstr "KBB’ye bir sayfa yükle"
+
+#: backend/epsonds.c:2061
+#, no-c-format
+msgid "ADF Skew Correction"
+msgstr "KBB çevirme düzeltmesi"
+
+#: backend/epsonds.c:2063
+#, no-c-format
+msgid "Enables ADF skew correction"
+msgstr "KBB çevirme düzeltmesini etkinleştirir"
+
+#: backend/epsonds.c:2069
+#, no-c-format
+msgid "ADF CRP Correction"
+msgstr "KBB kırpma düzeltmesi"
+
+#: backend/epsonds.c:2071
+#, no-c-format
+msgid "Enables ADF auto cropping"
+msgstr "KBB kendiliğinden kırpma düzeltmesini etkinleştirir"
+
+#: backend/fujitsu.c:704 backend/hp-option.c:3325 backend/hp-option.c:3338
+#, no-c-format
+msgid "On"
+msgstr "Açık"
+
+#: backend/fujitsu.c:705 backend/hp-option.c:3157 backend/hp-option.c:3324
+#: backend/hp-option.c:3337
+#, no-c-format
+msgid "Off"
+msgstr "Kapalı4"
+
+#: backend/fujitsu.c:707
+#, no-c-format
+msgid "DTC"
+msgstr "DTC"
+
+#: backend/fujitsu.c:708
+#, no-c-format
+msgid "SDTC"
+msgstr "SDTC"
+
+#: backend/fujitsu.c:710 backend/teco1.c:1149 backend/teco1.c:1150
+#: backend/teco2.c:1964 backend/teco2.c:1965 backend/teco3.c:974
+#: backend/teco3.c:975
+#, no-c-format
+msgid "Dither"
+msgstr "Titreme"
+
+#: backend/fujitsu.c:711
+#, no-c-format
+msgid "Diffusion"
+msgstr "Yayılma"
+
+#: backend/fujitsu.c:716
+#, no-c-format
+msgid "White"
+msgstr "Beyaz"
+
+#: backend/fujitsu.c:717
+#, no-c-format
+msgid "Black"
+msgstr "Siyah"
+
+#: backend/fujitsu.c:722
+#, no-c-format
+msgid "Continue"
+msgstr "Sürdür"
+
+#: backend/fujitsu.c:723
+#, no-c-format
+msgid "Stop"
+msgstr "Durdur"
+
+#: backend/fujitsu.c:725
+#, no-c-format
+msgid "10mm"
+msgstr "10 mm"
+
+#: backend/fujitsu.c:726
+#, no-c-format
+msgid "15mm"
+msgstr "15 mm"
+
+#: backend/fujitsu.c:727
+#, no-c-format
+msgid "20mm"
+msgstr "20 mm"
+
+#: backend/fujitsu.c:729 backend/hp-option.c:3043
+#, no-c-format
+msgid "Horizontal"
+msgstr "Yatay"
+
+#: backend/fujitsu.c:730
+#, no-c-format
+msgid "Horizontal bold"
+msgstr "Yatay kalın"
+
+#: backend/fujitsu.c:731
+#, no-c-format
+msgid "Horizontal narrow"
+msgstr "Yatay dar"
+
+#: backend/fujitsu.c:732 backend/hp-option.c:3042
+#, no-c-format
+msgid "Vertical"
+msgstr "Dikey"
+
+#: backend/fujitsu.c:733
+#, no-c-format
+msgid "Vertical bold"
+msgstr "Dikey kalın"
+
+#: backend/fujitsu.c:735
+#, no-c-format
+msgid "Top to bottom"
+msgstr "Üstten alta"
+
+#: backend/fujitsu.c:736
+#, no-c-format
+msgid "Bottom to top"
+msgstr "Alttan üste"
+
+#: backend/fujitsu.c:738
+#, no-c-format
+msgid "Front"
+msgstr "Ön"
+
+#: backend/fujitsu.c:739
+#, no-c-format
+msgid "Back"
+msgstr "Arka"
+
+#: backend/fujitsu.c:3175 backend/pixma/pixma_sane_options.c:146
+#, no-c-format
+msgid "Gamma function exponent"
+msgstr "Gama işlevi üssü"
+
+#: backend/fujitsu.c:3176 backend/pixma/pixma_sane_options.c:147
+#, no-c-format
+msgid "Changes intensity of midtones"
+msgstr "Orta tonların yoğunluğunu değiştirir"
+
+#: backend/fujitsu.c:3225
+#, no-c-format
+msgid "RIF"
+msgstr "RIF"
+
+#: backend/fujitsu.c:3226
+#, no-c-format
+msgid "Reverse image format"
+msgstr "Ters görsel biçimi"
+
+#: backend/fujitsu.c:3243
+#, no-c-format
+msgid "Halftone type"
+msgstr "Yarı ton türü"
+
+#: backend/fujitsu.c:3244
+#, no-c-format
+msgid "Control type of halftone filter"
+msgstr "Yarı ton süzgecinin türünü denetler"
+
+#: backend/fujitsu.c:3265
+#, no-c-format
+msgid "Control pattern of halftone filter"
+msgstr "Yarı ton süzgecinin desenini denetler"
+
+#: backend/fujitsu.c:3287
+#, no-c-format
+msgid "Outline"
+msgstr "Ana hat"
+
+#: backend/fujitsu.c:3288
+#, no-c-format
+msgid "Perform outline extraction"
+msgstr "Ana hat çıkarması gerçekleştir"
+
+#: backend/fujitsu.c:3299
+#, no-c-format
+msgid "Emphasis"
+msgstr "Vurgu"
+
+#: backend/fujitsu.c:3300
+#, no-c-format
+msgid "Negative to smooth or positive to sharpen image"
+msgstr ""
+"Görseli pürüzsüzleştirmek için negatif, keskinleştirmek için pozitif"
+
+#: backend/fujitsu.c:3318
+#, no-c-format
+msgid "Separation"
+msgstr "Ayırma"
+
+#: backend/fujitsu.c:3319
+#, no-c-format
+msgid "Enable automatic separation of image and text"
+msgstr "Görselin ve metnin kendiliğinden ayrılmasını etkinleştir"
+
+#: backend/fujitsu.c:3330
+#, no-c-format
+msgid "Mirroring"
+msgstr "Yansıtma"
+
+#: backend/fujitsu.c:3331
+#, no-c-format
+msgid "Reflect output image horizontally"
+msgstr "Çıktı görselini yatay olarak yansıt"
+
+#: backend/fujitsu.c:3348
+#, no-c-format
+msgid "White level follower"
+msgstr "Beyaz düzeyi takipçisi"
+
+#: backend/fujitsu.c:3349
+#, no-c-format
+msgid "Control white level follower"
+msgstr "Beyaz düzeyi takipçisini denetle"
+
+#: backend/fujitsu.c:3367
+#, no-c-format
+msgid "BP filter"
+msgstr "Tükenmez kalem süzgeci"
+
+#: backend/fujitsu.c:3368
+#, no-c-format
+msgid "Improves quality of high resolution ball-point pen text"
+msgstr "Yüksek çözünürlüklü tükenmez kalem metninin kalitesini iyileştir"
+
+#: backend/fujitsu.c:3384 backend/hp-option.h:68
+#, no-c-format
+msgid "Smoothing"
+msgstr "Pürüzsüzleştirme"
+
+#: backend/fujitsu.c:3385
+#, no-c-format
+msgid "Enable smoothing for improved OCR"
+msgstr "Geliştirilmiş OCT için pürüzsüzleştirmeyi etkinleştir"
+
+#: backend/fujitsu.c:3401
+#, no-c-format
+msgid "Gamma curve"
+msgstr "Gama eğrisi"
+
+#: backend/fujitsu.c:3402
+#, no-c-format
+msgid "Gamma curve, from light to dark, but upper two may not work"
+msgstr "Açıktan koyuya gama eğrisi; ancak üst ikisi çalışmayabilir"
+
+#: backend/fujitsu.c:3424 backend/pixma/pixma_sane_options.c:378
+#, no-c-format
+msgid "Threshold curve"
+msgstr "Eşik eğrisi"
+
+#: backend/fujitsu.c:3425
+#, no-c-format
+msgid ""
+"Threshold curve, from light to dark, but upper two may not be linear"
+msgstr "Açıktan koyuya eşik eğrisi; ancak üst ikisi doğrusal olmayabilir"
+
+#: backend/fujitsu.c:3447
+#, no-c-format
+msgid "Threshold white"
+msgstr "Eşik beyazı"
+
+#: backend/fujitsu.c:3448
+#, no-c-format
+msgid "Set pixels equal to threshold to white instead of black"
+msgstr "Eşik değerine eşit pikselleri siyah yerine beyaza ayarla"
+
+#: backend/fujitsu.c:3464 backend/fujitsu.c:3465
+#, no-c-format
+msgid "Noise removal"
+msgstr "Gürültü kaldırma"
+
+#: backend/fujitsu.c:3481
+#, no-c-format
+msgid "Matrix 5x5"
+msgstr "5 × 5 matris"
+
+#: backend/fujitsu.c:3482
+#, no-c-format
+msgid "Remove 5 pixel square noise"
+msgstr "5 piksellik kare gürültüsünü kaldır"
+
+#: backend/fujitsu.c:3498
+#, no-c-format
+msgid "Matrix 4x4"
+msgstr "4 × 4 matris"
+
+#: backend/fujitsu.c:3499
+#, no-c-format
+msgid "Remove 4 pixel square noise"
+msgstr "4 piksellik kare gürültüsünü kaldır"
+
+#: backend/fujitsu.c:3515
+#, no-c-format
+msgid "Matrix 3x3"
+msgstr "3 × 3 matris"
+
+#: backend/fujitsu.c:3516
+#, no-c-format
+msgid "Remove 3 pixel square noise"
+msgstr "3 piksellik kare gürültüsünü kaldır"
+
+#: backend/fujitsu.c:3532
+#, no-c-format
+msgid "Matrix 2x2"
+msgstr "2 × 2 matris"
+
+#: backend/fujitsu.c:3533
+#, no-c-format
+msgid "Remove 2 pixel square noise"
+msgstr "2 piksellik kare gürültüsünü kaldır"
+
+#: backend/fujitsu.c:3552
+#, no-c-format
+msgid "Variance"
+msgstr "Varyans"
+
+#: backend/fujitsu.c:3553
+#, no-c-format
+msgid "Set SDTC variance rate (sensitivity), 0 equals 127"
+msgstr ""
+"SDTC varyans oranını (duyarlılığını) ayarla; 0, 127 değerine eşittir"
+
+#: backend/fujitsu.c:3586
+#, no-c-format
+msgid "Auto width detection"
+msgstr "Kendiliğinden genişlik algılama"
+
+#: backend/fujitsu.c:3587
+#, no-c-format
+msgid "Scanner detects paper sides. May reduce scanning speed."
+msgstr "Tarayıcı kağıt yüzlerini algılar. Tarama hızını düşürebilir."
+
+#: backend/fujitsu.c:3604
+#, no-c-format
+msgid "Auto length detection"
+msgstr "Kendiliğinden uzunluk algılama"
+
+#: backend/fujitsu.c:3605
+#, no-c-format
+msgid "Scanner detects paper lower edge. May confuse some frontends."
+msgstr ""
+"Tarayıcı kağıdın alt kenarını algılar. Kimi ön uçların kafasını "
+"karıştırabilir."
+
+#: backend/fujitsu.c:3631
+#, no-c-format
+msgid "Compression"
+msgstr "Sıkıştırma"
+
+#: backend/fujitsu.c:3632
+#, no-c-format
+msgid "Enable compressed data. May crash your front-end program"
+msgstr ""
+"Sıkıştırılmış veriyi etkinleştirin. Ön uç programınızı çökertebilir."
+
+#: backend/fujitsu.c:3652
+#, no-c-format
+msgid "Compression argument"
+msgstr "Sıkıştırma argümanı"
+
+#: backend/fujitsu.c:3653
+#, no-c-format
+msgid ""
+"Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) "
+"is same as 4"
+msgstr ""
+"JPEG sıkıştırmasının düzeyi. 1 küçük, 7 ise büyük dosya demektir. 0 "
+"(öntanımlı), 4 ile aynıdır."
+
+#: backend/fujitsu.c:3683
+#, no-c-format
+msgid "DF action"
+msgstr "ÇB eylemi"
+
+#: backend/fujitsu.c:3684
+#, no-c-format
+msgid "Action following double feed error"
+msgstr "Çifte besleme hatasından sonraki eylem"
+
+#: backend/fujitsu.c:3700
+#, no-c-format
+msgid "DF skew"
+msgstr "ÇB çevirme"
+
+#: backend/fujitsu.c:3701
+#, no-c-format
+msgid "Enable double feed error due to skew"
+msgstr "Çevirmeden dolayı oluşan çifte besleme hatasını etkinleştir"
+
+#: backend/fujitsu.c:3719
+#, no-c-format
+msgid "DF thickness"
+msgstr "ÇB kalınlığı"
+
+#: backend/fujitsu.c:3720
+#, no-c-format
+msgid "Enable double feed error due to paper thickness"
+msgstr ""
+"Kâğıt kalınlığından dolayı oluşan çifte besleme hatasını etkinleştir"
+
+#: backend/fujitsu.c:3738
+#, no-c-format
+msgid "DF length"
+msgstr "ÇB uzunluğu"
+
+#: backend/fujitsu.c:3739
+#, no-c-format
+msgid "Enable double feed error due to paper length"
+msgstr ""
+"Kâğıt uzunluğundan dolayı oluşan çifte besleme hatasını etkinleştir"
+
+#: backend/fujitsu.c:3762
+#, no-c-format
+msgid "DF length difference"
+msgstr "ÇB uzunluğu farkı"
+
+#: backend/fujitsu.c:3763
+#, no-c-format
+msgid "Difference in page length to trigger double feed error"
+msgstr "Çifte besleme hatasını tetikleyecek kâğıt uzunluğu farkı"
+
+#: backend/fujitsu.c:3786
+#, no-c-format
+msgid "DF recovery mode"
+msgstr "ÇB kurtarma kipi"
+
+#: backend/fujitsu.c:3787
+#, no-c-format
+msgid "Request scanner to reverse feed on paper jam"
+msgstr "Kâğıt sıkışmasında tarayıcının beslemeyi tersine çevirmesini iste"
+
+#: backend/fujitsu.c:3806
+#, no-c-format
+msgid "Paper protection"
+msgstr "Kâğıt koruma"
+
+#: backend/fujitsu.c:3807
+#, no-c-format
+msgid "Request scanner to predict jams in the ADF"
+msgstr "Tarayıcının KBB’deki sıkışmaları öngörmesini iste"
+
+#: backend/fujitsu.c:3826
+#, no-c-format
+msgid "Advanced paper protection"
+msgstr "Gelişmiş kâğıt koruma"
+
+#: backend/fujitsu.c:3827
+#, no-c-format
+msgid "Request scanner to predict jams in the ADF using improved sensors"
+msgstr ""
+"Gelişmiş algılayıcılar kullanarak KBB’nin sıkışmaları öngörmesini iste"
+
+#: backend/fujitsu.c:3846
+#, no-c-format
+msgid "Staple detection"
+msgstr "Zımba algılama"
+
+#: backend/fujitsu.c:3847
+#, no-c-format
+msgid "Request scanner to detect jams in the ADF caused by staples"
+msgstr ""
+"Tarayıcının zımba teli tarafından meydana gelen sıkışmaları algılamasını "
+"iste"
+
+#: backend/fujitsu.c:3866
+#, no-c-format
+msgid "Background color"
+msgstr "Arka plan rengi"
+
+#: backend/fujitsu.c:3867
+#, no-c-format
+msgid ""
+"Set color of background for scans. May conflict with overscan option"
+msgstr ""
+"Tarama arka planının rengini ayarlayın. Fazla tarama seçeneğiyle "
+"çakışabilir."
+
+#: backend/fujitsu.c:3887
+#, no-c-format
+msgid "Dropout color"
+msgstr "Düşme rengi"
+
+#: backend/fujitsu.c:3888
+#, no-c-format
+msgid ""
+"One-pass scanners use only one color during gray or binary scanning, "
+"useful for colored paper or ink"
+msgstr ""
+"Tek geçişli tarayıcılar, gri veya ikili tarama sırasında yalnızca tek "
+"bir renk kullanırlar; renkli sayfa veya mürekkep için yararlıdır."
+
+#: backend/fujitsu.c:3911
+#, no-c-format
+msgid "Buffer mode"
+msgstr "Arabellek kipi"
+
+#: backend/fujitsu.c:3912
+#, no-c-format
+msgid "Request scanner to read pages quickly from ADF into internal memory"
+msgstr "Tarayıcının KBB’den iç belleğe tez okumasını iste"
+
+#: backend/fujitsu.c:3931
+#, no-c-format
+msgid "Prepick"
+msgstr "Önden seç"
+
+#: backend/fujitsu.c:3932
+#, no-c-format
+msgid "Request scanner to grab next page from ADF"
+msgstr "Tarayıcının sonraki sayfayı KBB’den almasını iste"
+
+#: backend/fujitsu.c:3951
+#, no-c-format
+msgid "Overscan"
+msgstr "Fazla tarama"
+
+#: backend/fujitsu.c:3952
+#, no-c-format
+msgid ""
+"Collect a few mm of background on top side of scan, before paper enters "
+"ADF, and increase maximum scan area beyond paper size, to allow "
+"collection on remaining sides. May conflict with bgcolor option"
+msgstr ""
+"Kâğıt KBB’ye girmeden önce, taramanın üst tarafında birkaç mm arka plan "
+"toplayın ve kalan kenarlarda toplamaya izin vermek için en büyük tarama "
+"alanını kağıt boyutunun ötesine çıkarın. bgcolor seçeneğiyle çakışabilir."
+
+#: backend/fujitsu.c:3970
+#, no-c-format
+msgid "Sleep timer"
+msgstr "Uyku zamanlayıcısı"
+
+#: backend/fujitsu.c:3971
+#, no-c-format
+msgid ""
+"Time in minutes until the internal power supply switches to sleep mode"
+msgstr "İç güç kaynağı uyku kipine geçene kadar kalan dakika türünden süre"
+
+#: backend/fujitsu.c:3989
+#, no-c-format
+msgid "Off timer"
+msgstr "Kapanma zamanlayıcısı"
+
+#: backend/fujitsu.c:3990
+#, no-c-format
+msgid ""
+"Time in minutes until the internal power supply switches the scanner "
+"off. Will be rounded to nearest 15 minutes. Zero means never power off."
+msgstr ""
+"İç güç kaynağı tarayıcıyı kapatana kadar kalan dakika türünden süre. En "
+"yakın 15. dakikaya yuvarlanacaktır. 0, hiçbir zaman kapatılmayacağı "
+"anlamına gelir."
+
+#: backend/fujitsu.c:4008
+#, no-c-format
+msgid "Duplex offset"
+msgstr "Çift yön ofseti"
+
+#: backend/fujitsu.c:4009
+#, no-c-format
+msgid "Adjust front/back offset"
+msgstr "Ön/arka ofseti ayarla"
+
+#: backend/fujitsu.c:4026 backend/plustek.c:1023 backend/umax_pp.c:793
+#, no-c-format
+msgid "Green offset"
+msgstr "Yeşil ofseti"
+
+#: backend/fujitsu.c:4027
+#, no-c-format
+msgid "Adjust green/red offset"
+msgstr "Yeşil/kırmızı ofsetini ayarla"
+
+#: backend/fujitsu.c:4044 backend/plustek.c:1039 backend/umax_pp.c:805
+#, no-c-format
+msgid "Blue offset"
+msgstr "Mavi ofseti"
+
+#: backend/fujitsu.c:4045
+#, no-c-format
+msgid "Adjust blue/red offset"
+msgstr "Mavi/kırmızı ofsetini ayarla"
+
+#: backend/fujitsu.c:4058
+#, no-c-format
+msgid "Low Memory"
+msgstr "Düşük Bellek"
+
+#: backend/fujitsu.c:4059
+#, no-c-format
+msgid ""
+"Limit driver memory usage for use in embedded systems. Causes some "
+"duplex transfers to alternate sides on each call to sane_read. Value of "
+"option 'side' can be used to determine correct image. This option should "
+"only be used with custom front-end software."
+msgstr ""
+"Gömülü sistemlerde kullanım için sürücü belleği kullanımını sınırlayın. "
+"Her sane_read çağrısında bazı çift yönlü aktarımların alternatif "
+"taraflara gitmesine neden olur. “side” seçeneğinin değeri doğru görseli "
+"belirlemek için kullanılabilir. Bu seçenek yalnızca özel ön uç "
+"yazılımlarıyla kullanılmalıdır."
+
+#: backend/fujitsu.c:4074
+#, no-c-format
+msgid "Duplex side"
+msgstr "Çift yön tarafı"
+
+#: backend/fujitsu.c:4075
+#, no-c-format
+msgid ""
+"Tells which side (0=front, 1=back) of a duplex scan the next call to "
+"sane_read will return."
+msgstr ""
+"sane_read’e yapılan bir sonraki çağrının, bir çift yön taramasının hangi "
+"tarafını (0=ön, 1=arka) döndüreceğini söyler."
+
+#: backend/fujitsu.c:4086
+#, no-c-format
+msgid "Hardware deskew and crop"
+msgstr "Donanım eğrilik düzeltme ve kırpma"
+
+#: backend/fujitsu.c:4087
+#, no-c-format
+msgid "Request scanner to rotate and crop pages digitally."
+msgstr ""
+"Tarayıcının sayfaları sayısal olarak döndürmesini ve kırpmasını isteyin."
+
+#: backend/fujitsu.c:4098 backend/kvs1025_opt.c:871
+#, no-c-format
+msgid "Software deskew"
+msgstr "Yazılım eğrilik düzeltme"
+
+#: backend/fujitsu.c:4099
+#, no-c-format
+msgid "Request driver to rotate skewed pages digitally."
+msgstr "Sürücünün eğrilen sayfaları sayısal olarak döndürmesini isteyin."
+
+#: backend/fujitsu.c:4111 backend/kvs1025_opt.c:880
+#, no-c-format
+msgid "Software despeckle diameter"
+msgstr "Yazılım toz giderme çapı"
+
+#: backend/fujitsu.c:4112
+#, no-c-format
+msgid "Maximum diameter of lone dots to remove from scan."
+msgstr "Taramadan kaldırılacak toz/nokta en büyük çapı."
+
+#: backend/fujitsu.c:4131
+#, no-c-format
+msgid "Software crop"
+msgstr "Yazılım kırpma"
+
+#: backend/fujitsu.c:4132
+#, no-c-format
+msgid "Request driver to remove border from pages digitally."
+msgstr ""
+"Sürücünün sayfalardan kenarlıkları sayısal olarak kaldırmasını isteyin."
+
+#: backend/fujitsu.c:4161
+#, no-c-format
+msgid "Halt on Cancel"
+msgstr "İptalde durdur"
+
+#: backend/fujitsu.c:4162
+#, no-c-format
+msgid ""
+"Request driver to halt the paper feed instead of eject during a cancel."
+msgstr ""
+"Bir iptal sırasında sürücünün çıkarma yerine kâğıt beslemesini "
+"durdurmasını isteyin."
+
+#: backend/fujitsu.c:4173
+#, no-c-format
+msgid "Endorser Options"
+msgstr "Damgalayıcı Seçenekleri"
+
+#: backend/fujitsu.c:4174
+#, no-c-format
+msgid "Controls for endorser unit"
+msgstr "Damgalayıcı birimi için denetimler"
+
+#: backend/fujitsu.c:4185
+#, no-c-format
+msgid "Endorser"
+msgstr "Damgalayıcı"
+
+#: backend/fujitsu.c:4186
+#, no-c-format
+msgid "Enable endorser unit"
+msgstr "Damgalayıcı birimini etkinleştir"
+
+#: backend/fujitsu.c:4201
+#, no-c-format
+msgid "Endorser bits"
+msgstr "Damgalayıcı bitleri"
+
+#: backend/fujitsu.c:4202
+#, no-c-format
+msgid "Determines maximum endorser counter value."
+msgstr "En büyük damgalayıcı sayaç değerini belirler."
+
+#: backend/fujitsu.c:4227
+#, no-c-format
+msgid "Endorser value"
+msgstr "Damgalayıcı değeri"
+
+#: backend/fujitsu.c:4228
+#, no-c-format
+msgid "Initial endorser counter value."
+msgstr "Başlangıç damgalayıcı sayaç değeri."
+
+#: backend/fujitsu.c:4251
+#, no-c-format
+msgid "Endorser step"
+msgstr "Damgalayıcı adımı"
+
+#: backend/fujitsu.c:4252
+#, no-c-format
+msgid "Change endorser counter value by this much for each page."
+msgstr "Her bir sayfa için damgalayıcı sayaç değerini bu kadar artırın."
+
+#: backend/fujitsu.c:4275
+#, no-c-format
+msgid "Endorser Y"
+msgstr "Y damgalayıcısı"
+
+#: backend/fujitsu.c:4276
+#, no-c-format
+msgid "Endorser print offset from top of paper."
+msgstr "Kâğıdın üstünden olan damgalayıcı yazdırma ofseti"
+
+#: backend/fujitsu.c:4301
+#, no-c-format
+msgid "Endorser font"
+msgstr "Damgalayıcı yazıtipi"
+
+#: backend/fujitsu.c:4302
+#, no-c-format
+msgid "Endorser printing font."
+msgstr "Damgalayıcı yazdırma yazıtipi."
+
+#: backend/fujitsu.c:4331
+#, no-c-format
+msgid "Endorser direction"
+msgstr "Damgalayıcı yönü"
+
+#: backend/fujitsu.c:4332
+#, no-c-format
+msgid "Endorser printing direction."
+msgstr "Damgalayıcı yazdırma yönü."
+
+#: backend/fujitsu.c:4356
+#, no-c-format
+msgid "Endorser side"
+msgstr "Damgalayıcı yanı"
+
+#: backend/fujitsu.c:4357
+#, no-c-format
+msgid "Endorser printing side, requires hardware support to change"
+msgstr ""
+"Damgalayıcı yazdırma yanı, değişiklik için donanım desteği gerekir."
+
+#: backend/fujitsu.c:4382
+#, no-c-format
+msgid "Endorser string"
+msgstr "Damgalayıcı dizisi"
+
+#: backend/fujitsu.c:4383
+#, no-c-format
+msgid ""
+"Endorser alphanumeric print format. %05ud or %08ud at the end will be "
+"replaced by counter value."
+msgstr ""
+"Damgalayıcı alfanümerik yazdırma biçimi. Sondaki %05ud veya %08ud, sayaç "
+"değeriyle değiştirilir."
+
+#: backend/fujitsu.c:4410
+#, no-c-format
+msgid "Top edge"
+msgstr "Üst kenar"
+
+#: backend/fujitsu.c:4411
+#, no-c-format
+msgid "Paper is pulled partly into ADF"
+msgstr "Kâğıt kısımsal olarak KBB’ye çekilir"
+
+#: backend/fujitsu.c:4422
+#, no-c-format
+msgid "A3 paper"
+msgstr "A3 kâğıt"
+
+#: backend/fujitsu.c:4423
+#, no-c-format
+msgid "A3 paper detected"
+msgstr "A3 kâğıt algılandı"
+
+#: backend/fujitsu.c:4434
+#, no-c-format
+msgid "B4 paper"
+msgstr "B4 kâğıt"
+
+#: backend/fujitsu.c:4435
+#, no-c-format
+msgid "B4 paper detected"
+msgstr "B4 kâğıt algılandı"
+
+#: backend/fujitsu.c:4446
+#, no-c-format
+msgid "A4 paper"
+msgstr "A4 kâğıt"
+
+#: backend/fujitsu.c:4447
+#, no-c-format
+msgid "A4 paper detected"
+msgstr "A4 kâğıt algılandı"
+
+#: backend/fujitsu.c:4458
+#, no-c-format
+msgid "B5 paper"
+msgstr "B5 kâğıt"
+
+#: backend/fujitsu.c:4459
+#, no-c-format
+msgid "B5 paper detected"
+msgstr "B5 kâğıt algılandı"
+
+#: backend/fujitsu.c:4482
+#, no-c-format
+msgid "OMR or DF"
+msgstr "OMR veya DF"
+
+#: backend/fujitsu.c:4483
+#, no-c-format
+msgid "OMR or double feed detected"
+msgstr "OMR veya çifte besleme algılandı"
+
+#: backend/fujitsu.c:4506
+#, no-c-format
+msgid "Card loaded"
+msgstr "Kart yüklendi"
+
+#: backend/fujitsu.c:4507
+#, no-c-format
+msgid "Card slot contains paper"
+msgstr "Kart yuvası kâğıt içeriyor"
+
+#: backend/fujitsu.c:4518
+#, no-c-format
+msgid "Power saving"
+msgstr "Güç tasarrufu"
+
+#: backend/fujitsu.c:4519
+#, no-c-format
+msgid "Scanner in power saving mode"
+msgstr "Tarayıcı güç tasarrufu kipinde"
+
+#: backend/fujitsu.c:4542
+#, no-c-format
+msgid "Manual feed"
+msgstr "Elle besleme"
+
+#: backend/fujitsu.c:4543
+#, no-c-format
+msgid "Manual feed selected"
+msgstr "Elle besleme seçili"
+
+#: backend/fujitsu.c:4566
+#, no-c-format
+msgid "Function"
+msgstr "İşlev"
+
+#: backend/fujitsu.c:4567
+#, no-c-format
+msgid "Function character on screen"
+msgstr "Ekrandaki işlev karakteri"
+
+#: backend/fujitsu.c:4578
+#, no-c-format
+msgid "Ink low"
+msgstr "Mürekkep az"
+
+#: backend/fujitsu.c:4579
+#, no-c-format
+msgid "Imprinter ink running low"
+msgstr "Baskıcı mürekkebi azaldı"
+
+#: backend/fujitsu.c:4590
+#, no-c-format
+msgid "Double feed"
+msgstr "Çifte besleme"
+
+#: backend/fujitsu.c:4591
+#, no-c-format
+msgid "Double feed detected"
+msgstr "Çifte besleme algılandı"
+
+#: backend/fujitsu.c:4602
+#, no-c-format
+msgid "Error code"
+msgstr "Hata kodu"
+
+#: backend/fujitsu.c:4603
+#, no-c-format
+msgid "Hardware error code"
+msgstr "Donanım hatası kodu"
+
+#: backend/fujitsu.c:4614
+#, no-c-format
+msgid "Skew angle"
+msgstr "Çevirme açısı"
+
+#: backend/fujitsu.c:4615
+#, no-c-format
+msgid "Requires black background for scanning"
+msgstr "Tarama için siyah arka plan gerektirir"
+
+#: backend/fujitsu.c:4626
+#, no-c-format
+msgid "Ink remaining"
+msgstr "Kalan mürekkep"
+
+#: backend/fujitsu.c:4627
+#, no-c-format
+msgid "Imprinter ink level"
+msgstr "Baskıcı mürekkebi düzeyi"
+
+#: backend/fujitsu.c:4638
+#, no-c-format
+msgid "Density"
+msgstr "Yoğunluk"
+
+#: backend/fujitsu.c:4639
+#, no-c-format
+msgid "Density dial"
+msgstr "Yoğunluk çevirgeci"
+
+#: backend/fujitsu.c:4650 backend/fujitsu.c:4651
+#, no-c-format
+msgid "Duplex switch"
+msgstr "Çift yön anahtarı"
+
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
+#, no-c-format
+msgid "Extras"
+msgstr "Ekstralar"
+
+#: backend/genesys/genesys.cpp:4723
+#, no-c-format
+msgid "Color filter"
+msgstr "Renk süzgeci"
+
+#: backend/genesys/genesys.cpp:4726
+#, no-c-format
+msgid "When using gray or lineart this option selects the used color."
+msgstr ""
+"Gri veya çizgi sanatı kullanırken bu seçenek kullanılan rengi seçer."
+
+#: backend/genesys/genesys.cpp:4750
+#, no-c-format
+msgid "Calibration file"
+msgstr "Kalibrasyon dosyası"
+
+#: backend/genesys/genesys.cpp:4751
+#, no-c-format
+msgid "Specify the calibration file to use"
+msgstr "Kullanılacak kalibrasyon dosyasını belirt"
+
+#: backend/genesys/genesys.cpp:4768
+#, no-c-format
+msgid "Calibration cache expiration time"
+msgstr "Kalibrasyon önbelleği son kullanım tarihi"
+
+#: backend/genesys/genesys.cpp:4769
+#, no-c-format
+msgid ""
+"Time (in minutes) before a cached calibration expires. A value of 0 "
+"means cache is not used. A negative value means cache never expires."
+msgstr ""
+"Önbelleğe alınmış bir kalibrasyonun süresi dolmadan önceki süre (dakika "
+"türünden). 0 değeri önbelleğin kullanılmadığı anlamına gelir. Negatif "
+"değer önbelleğin asla süresinin dolmadığı anlamına gelir."
+
+#: backend/genesys/genesys.cpp:4779
+#, no-c-format
+msgid "Lamp off time"
+msgstr "Lamba kapalı"
+
+#: backend/genesys/genesys.cpp:4782
+#, no-c-format
+msgid ""
+"The lamp will be turned off after the given time (in minutes). A value "
+"of 0 means, that the lamp won't be turned off."
+msgstr ""
+"Lamba, belirtilen süreden (dakika türünden) sonra kapatılacaktır. 0 "
+"değeri, lambanın kapatılmayacağı anlamına gelir."
+
+#: backend/genesys/genesys.cpp:4792
+#, no-c-format
+msgid "Lamp off during scan"
+msgstr "Tarama sırasında lamba kapalı"
+
+#: backend/genesys/genesys.cpp:4793
+#, no-c-format
+msgid "The lamp will be turned off during scan. "
+msgstr "Lamba, tarama süresince kapalı kalacaktır."
+
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
+#, no-c-format
+msgid "File button"
+msgstr "Dosya düğmesi"
+
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
+#, no-c-format
+msgid "OCR button"
+msgstr "OCR düğmesi"
+
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
+#, no-c-format
+msgid "Power button"
+msgstr "Güç düğmesi"
+
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
+#, no-c-format
+msgid "Extra button"
+msgstr "Ekstra düğme"
+
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
+#, no-c-format
+msgid "Transparency button"
+msgstr "Saydamlık düğmes,"
+
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
+#, no-c-format
+msgid "PDF function button 1"
+msgstr "PDF işlevi düğmesi 1"
+
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
+#, no-c-format
+msgid "PDF function button 2"
+msgstr "PDF işlevi düğmesi 2"
+
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
+#, no-c-format
+msgid "PDF function button 3"
+msgstr "PDF işlevi düğmesi 3"
+
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
+#, no-c-format
+msgid "PDF function button 4"
+msgstr "PDF işlevi düğmesi 4"
+
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
+#, no-c-format
+msgid "Needs calibration"
+msgstr "Kalibrasyon gerekiyor"
+
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
+#, no-c-format
+msgid "The scanner needs calibration for the current settings"
+msgstr "Tarayıcının geçerli ayarlar için kalibre edilmesi gerekiyor"
+
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
+#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
+#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
+#, no-c-format
+msgid "Buttons"
+msgstr "Düğmeler"
+
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
+#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
+#: backend/p5.c:1945 backend/plustek.c:939
+#, no-c-format
+msgid "Calibrate"
+msgstr "Kalibre Et"
+
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
+#, no-c-format
+msgid "Start calibration using special sheet"
+msgstr "Özel sayfa kullanarak kalibrasyonu başlat"
+
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
+#, no-c-format
+msgid "Clear calibration"
+msgstr "Kalibrasyonu temizle"
+
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
+#, no-c-format
+msgid "Clear calibration cache"
+msgstr "Kalibrasyon önbelleğini temizle"
+
+#: backend/genesys/genesys.cpp:5007
+#, no-c-format
+msgid "Force calibration"
+msgstr "Kalibrasyonu zorla"
+
+#: backend/genesys/genesys.cpp:5008
+#, no-c-format
+msgid "Force calibration ignoring all and any calibration caches"
+msgstr ""
+"Tüm ve herhangi bir kalibrasyon önbelleğini yok sayarak kalibrasyonu "
+"zorla"
+
+#: backend/genesys/genesys.cpp:5018
+#, no-c-format
+msgid "Ignore internal offsets"
+msgstr "İç ofsetleri yok say"
+
+#: backend/genesys/genesys.cpp:5020
+#, no-c-format
+msgid ""
+"Acquires the image including the internal calibration areas of the "
+"scanner"
+msgstr ""
+"Tarayıcının içsel kalibrasyon alanları içerilmek üzere görseli alır"
+
+#: backend/genesys/genesys.h:56 backend/gt68xx.c:147 backend/ma1509.c:106
+#: backend/mustek.c:162 backend/snapscan-options.c:87 backend/umax.c:180
+#, no-c-format
+msgid "Transparency Adapter"
+msgstr "Saydamlık bağdaştırıcısı"
+
+#: backend/genesys/genesys.h:57
+#, no-c-format
+msgid "Transparency Adapter Infrared"
+msgstr "Kızılötesi saydamlık bağdaştırıcısı"
+
+#: backend/gt68xx.c:468
+#, no-c-format
+msgid "Gray mode color"
+msgstr "Gri kipi rengi"
+
+#: backend/gt68xx.c:470
+#, no-c-format
+msgid "Selects which scan color is used gray mode (default: green)."
+msgstr ""
+"Gri kipi için hangi tarama renginin kullanılacağını seçer (öntanımlı: "
+"yeşil)."
+
+#: backend/gt68xx.c:551 backend/hp3900_sane.c:1391
+#: backend/mustek_usb2.c:408
+#, no-c-format
+msgid "Debugging Options"
+msgstr "Hata Ayıklama Seçenekleri"
+
+#: backend/gt68xx.c:562 backend/mustek_usb2.c:417
+#, no-c-format
+msgid "Automatic warmup"
+msgstr "Kendiliğinden ısınma"
+
+#: backend/gt68xx.c:564
+#, no-c-format
+msgid ""
+"Warm-up until the lamp's brightness is constant instead of insisting on "
+"60 seconds warm-up time."
+msgstr ""
+"60 saniyelik ısınma süresinde ısrar etmek yerine, lambanın parlaklığı "
+"sabit oluncaya kadar ısıtmaya çalışın."
+
+#: backend/gt68xx.c:576
+#, no-c-format
+msgid "Full scan"
+msgstr "Tam tarama"
+
+#: backend/gt68xx.c:578
+#, no-c-format
+msgid ""
+"Scan the complete scanning area including calibration strip. Be careful. "
+"Don't select the full height. For testing only."
+msgstr ""
+"Kalibrasyon şeridi de içerilmek üzere tüm tarama alanını tarayın. "
+"Dikkatli olun; bütün yüksekliği seçmeyin. Yalnızca sınama amaçlıdır."
+
+#: backend/gt68xx.c:589
+#, no-c-format
+msgid "Coarse calibration"
+msgstr "Kaba kalibrasyon"
+
+#: backend/gt68xx.c:591
+#, no-c-format
+msgid ""
+"Setup gain and offset for scanning automatically. If this option is "
+"disabled, options for setting the analog frontend parameters manually "
+"are provided. This option is enabled by default. For testing only."
+msgstr ""
+"Tarama için kazancı ve ofseti kendiliğinden ayarlayın. Bu seçenek devre "
+"dışı bırakılırsa analog ön uç parametrelerini elle ayarlama seçenekleri "
+"sağlanır. Bu seçenek öntanımlı olarak etkindir. Yalnızca sınama "
+"amaçlıdır."
+
+#: backend/gt68xx.c:610
+#, no-c-format
+msgid "Coarse calibration for first scan only"
+msgstr "Yalnızca ilk tarama için kaba kalibrasyon"
+
+#: backend/gt68xx.c:612
+#, no-c-format
+msgid ""
+"Coarse calibration is only done for the first scan. Works with most "
+"scanners and can save scanning time. If the image brightness is "
+"different with each scan, disable this option. For testing only."
+msgstr ""
+"Kaba kalibrasyon yalnızca ilk tarama için yapılır. Çoğu tarayıcıyla "
+"çalışır ve tarama süresinden tasarruf sağlayabilir. Görsel parlaklığı "
+"her taramada farklıysa bu seçeneği devre dışı bırakın. Yalnızca sınama "
+"amaçlıdır."
+
+#: backend/gt68xx.c:645
+#, no-c-format
+msgid "Backtrack lines"
+msgstr "Çizgileri geriden izle"
+
+#: backend/gt68xx.c:647
+#, no-c-format
+msgid ""
+"Number of lines the scan slider moves back when backtracking occurs. "
+"That happens when the scanner scans faster than the computer can receive "
+"the data. Low values cause faster scans but increase the risk of "
+"omitting lines."
+msgstr ""
+"Geri izleme gerçekleştiğinde tarama sürgüsünün geri hareket ettiği satır "
+"sayısı. Bu, tarayıcının bilgisayarın veriyi alabileceğinden daha hızlı "
+"taradığı zaman olur. Düşük değerler daha hızlı taramalara neden olur; "
+"ancak satırların atlanma riskini artırır."
+
+#: backend/gt68xx.c:672 backend/mustek_usb2.c:450
+#, no-c-format
+msgid "Gamma value"
+msgstr "Gama değeri"
+
+#: backend/gt68xx.c:674 backend/mustek_usb2.c:452
+#, no-c-format
+msgid "Sets the gamma value of all channels."
+msgstr "Tüm kanalların gama değerini ayarlar."
+
+#: backend/hp-option.c:2982
+#, no-c-format
+msgid "Advanced Options"
+msgstr "Gelişmiş Seçenekler"
+
+#: backend/hp-option.c:3039
+#, no-c-format
+msgid "Coarse"
+msgstr "Kaba"
+
+#: backend/hp-option.c:3040
+#, no-c-format
+msgid "Fine"
+msgstr "İnce"
+
+#: backend/hp-option.c:3041
+#, no-c-format
+msgid "Bayer"
+msgstr "Bayer"
+
+#: backend/hp-option.c:3044 backend/hp-option.c:3095
+#, no-c-format
+msgid "Custom"
+msgstr "Özel"
+
+#: backend/hp-option.c:3085 backend/hp-option.c:3141
+#: backend/hp-option.c:3156
+#, no-c-format
+msgid "Auto"
+msgstr "Kendiliğinden"
+
+#: backend/hp-option.c:3086
+#, no-c-format
+msgid "NTSC RGB"
+msgstr "NTSC RGB"
+
+#: backend/hp-option.c:3087
+#, no-c-format
+msgid "XPA RGB"
+msgstr "XPA RGB"
+
+#: backend/hp-option.c:3088
+#, no-c-format
+msgid "Pass-through"
+msgstr "İçinden geçişli"
+
+#: backend/hp-option.c:3089
+#, no-c-format
+msgid "NTSC Gray"
+msgstr "NTSC grisi"
+
+#: backend/hp-option.c:3090
+#, no-c-format
+msgid "XPA Gray"
+msgstr "XPA grisi"
+
+#: backend/hp-option.c:3142
+#, no-c-format
+msgid "Slow"
+msgstr "Yavaş"
+
+#: backend/hp-option.c:3143 backend/hp-option.c:3250
+#: backend/kvs40xx_opt.c:225 backend/matsushita.c:241 backend/mustek.c:147
+#: backend/plustek.c:232 backend/plustek_pp.c:201 backend/u12.c:153
+#, no-c-format
+msgid "Normal"
+msgstr "Normal"
+
+#: backend/hp-option.c:3144
+#, no-c-format
+msgid "Fast"
+msgstr "Hızlı"
+
+#: backend/hp-option.c:3145
+#, no-c-format
+msgid "Extra Fast"
+msgstr "Ekstra hızlı"
+
+#: backend/hp-option.c:3158
+#, no-c-format
+msgid "2-pixel"
+msgstr "2 pikselli"
+
+#: backend/hp-option.c:3159
+#, no-c-format
+msgid "4-pixel"
+msgstr "4 pikselli"
+
+#: backend/hp-option.c:3160
+#, no-c-format
+msgid "8-pixel"
+msgstr "8 pikselli"
+
+#: backend/hp-option.c:3171
+#, no-c-format
+msgid "Print"
+msgstr "Yazdır"
+
+#: backend/hp-option.c:3172 backend/hp3900_sane.c:426
+#: backend/hp3900_sane.c:1018
+#, no-c-format
+msgid "Slide"
+msgstr "Slayt"
+
+#: backend/hp-option.c:3173
+#, no-c-format
+msgid "Film-strip"
+msgstr "Film şeridi"
+
+#: backend/hp-option.c:3251 backend/hp5590.c:91
+#, no-c-format
+msgid "ADF"
+msgstr "KBB"
+
+#: backend/hp-option.c:3252
+#, no-c-format
+msgid "XPA"
+msgstr "XPA"
+
+#: backend/hp-option.c:3326 backend/hp-option.c:3339
+#, no-c-format
+msgid "Conditional"
+msgstr "Koşullu"
+
+#: backend/hp-option.c:3412
+#, no-c-format
+msgid "Experiment"
+msgstr "Deney"
+
+#: backend/hp-option.h:55
+#, no-c-format
+msgid "Sharpening"
+msgstr "Keskinleştirme"
+
+#: backend/hp-option.h:56
+#, no-c-format
+msgid "Set sharpening value."
+msgstr "Keskinleştirme değerini ayarlayın."
+
+#: backend/hp-option.h:61
+#, no-c-format
+msgid "Auto Threshold"
+msgstr "Kendiliğinden eşikli"
+
+#: backend/hp-option.h:63
+#, no-c-format
+msgid "Enable automatic determination of threshold for line-art scans."
+msgstr ""
+"Çizgi sanatı taramaları için eşiğin kendiliğinden algılanmasını "
+"etkinleştirin."
+
+#: backend/hp-option.h:69
+#, no-c-format
+msgid "Select smoothing filter."
+msgstr "Pürüzsüzleştirme süzgecini seçin."
+
+#: backend/hp-option.h:74
+#, no-c-format
+msgid "Unload media after scan"
+msgstr "Tarama sonrası ortamı indir"
+
+#: backend/hp-option.h:75
+#, no-c-format
+msgid "Unloads the media after a scan."
+msgstr "Bir taramadan sonra ortamı indirir."
+
+#: backend/hp-option.h:80
+#, no-c-format
+msgid "Change document"
+msgstr "Belgeyi değiştir"
+
+#: backend/hp-option.h:81
+#, no-c-format
+msgid "Change Document."
+msgstr "Belgeyi değiştirin."
+
+#: backend/hp-option.h:86
+#, no-c-format
+msgid "Unload"
+msgstr "İndir"
+
+#: backend/hp-option.h:87
+#, no-c-format
+msgid "Unload Document."
+msgstr "Belgeyi indirin."
+
+#: backend/hp-option.h:93
+#, no-c-format
+msgid "Start calibration process."
+msgstr "Kalibrasyon sürecini başlatın."
+
+#: backend/hp-option.h:98
+#, no-c-format
+msgid "Media"
+msgstr "Ortam"
+
+#: backend/hp-option.h:99
+#, no-c-format
+msgid "Set type of media."
+msgstr "Ortamın türünü seçin."
+
+#: backend/hp-option.h:104
+#, no-c-format
+msgid "Exposure time"
+msgstr "Pozlama süresi"
+
+#: backend/hp-option.h:106
+#, no-c-format
+msgid ""
+"A longer exposure time lets the scanner collect more light. Suggested "
+"use is 175% for prints, 150% for normal slides and \"Negative\" for "
+"negative film. For dark (underexposed) images you can increase this "
+"value."
+msgstr ""
+"Daha uzun pozlama süresi tarayıcının daha fazla ışık toplamasını sağlar. "
+"Önerilen kullanım baskılar için %175, normal slaytlar için %150 ve "
+"negatif film için “Negatif”tir. Koyu (az pozlanmış) görseller için bu "
+"değeri artırabilirsiniz."
+
+#: backend/hp-option.h:114 backend/hp-option.h:121
+#, no-c-format
+msgid "Color Matrix"
+msgstr "Renk matrisi"
+
+#: backend/hp-option.h:116
+#, no-c-format
+msgid "Set the scanner's color matrix."
+msgstr "Tarayıcının renk matrisini ayarlayın."
+
+#: backend/hp-option.h:122
+#, no-c-format
+msgid "Custom color matrix."
+msgstr "Özel renk matrisi"
+
+#: backend/hp-option.h:127
+#, no-c-format
+msgid "Mono Color Matrix"
+msgstr "Tek renkli renk matrisi"
+
+#: backend/hp-option.h:128
+#, no-c-format
+msgid "Custom color matrix for grayscale scans."
+msgstr "Gri tonlu taramalar için özel renk matrisi"
+
+#: backend/hp-option.h:133
+#, no-c-format
+msgid "Mirror horizontal"
+msgstr "Yatay olarak yansıt"
+
+#: backend/hp-option.h:134
+#, no-c-format
+msgid "Mirror image horizontally."
+msgstr "Görseli yatay olarak yansıtın."
+
+#: backend/hp-option.h:139
+#, no-c-format
+msgid "Mirror vertical"
+msgstr "Dikey olarak yansıt"
+
+#: backend/hp-option.h:140
+#, no-c-format
+msgid "Mirror image vertically."
+msgstr "Görseli dikey olarak yansıtın."
+
+#: backend/hp-option.h:145
+#, no-c-format
+msgid "Update options"
+msgstr "Güncelleme seçenekleri"
+
+#: backend/hp-option.h:146
+#, no-c-format
+msgid "Update options."
+msgstr "Güncelleme seçenekleri"
+
+#: backend/hp-option.h:151
+#, no-c-format
+msgid "8 bit output"
+msgstr "8 bit çıktı"
+
+#: backend/hp-option.h:153
+#, no-c-format
+msgid "Use bit depth greater eight internally, but output only eight bits."
+msgstr ""
+"Bit derinliğini içsel olarak sekizden büyük kullanın; ancak yalnızca "
+"sekiz bit çıktılayın."
+
+#: backend/hp-option.h:159
+#, no-c-format
+msgid "Front button wait"
+msgstr "Ön düğmeyi bekle"
+
+#: backend/hp-option.h:160
+#, no-c-format
+msgid "Wait to scan for front-panel button push."
+msgstr "Taramak için ön panel düğmesine basılmasını bekle"
+
+#: backend/hp-option.h:167
+#, no-c-format
+msgid "Shut off lamp"
+msgstr "Lambayı kapat"
+
+#: backend/hp-option.h:168
+#, no-c-format
+msgid "Shut off scanner lamp."
+msgstr "Tarayıcı lambasını kapatın."
+
+#: backend/hp3500.c:1018
+#, no-c-format
+msgid "Geometry Group"
+msgstr "Geometri Grubu"
+
+#: backend/hp3500.c:1071 backend/hp3500.c:1072
+#, no-c-format
+msgid "Scan Mode Group"
+msgstr "Tarama Kipi Grubu"
+
+#: backend/hp3900_sane.c:1404
+#, no-c-format
+msgid "Scanner model"
+msgstr "Tarayıcı modeli"
+
+#: backend/hp3900_sane.c:1407
+#, no-c-format
+msgid "Allows one to test device behavior with other supported models"
+msgstr ""
+"Diğer desteklenen modellerle aygıt davranışını sınamaya izin verir."
+
+#: backend/hp3900_sane.c:1421
+#, no-c-format
+msgid "Image colors will be inverted"
+msgstr "Görsel renkleri ters çevrilir"
+
+#: backend/hp3900_sane.c:1435
+#, no-c-format
+msgid "Disable gamma correction"
+msgstr "Gama düzeltmesini devre dışı bırak"
+
+#: backend/hp3900_sane.c:1436
+#, no-c-format
+msgid "Gamma correction will be disabled"
+msgstr "Gama düzeltmesi devre dışı bırakılacaktır."
+
+#: backend/hp3900_sane.c:1450
+#, no-c-format
+msgid "Disable white shading correction"
+msgstr "Beyaz gölgeleme düzeltmesini devre dışı bırak"
+
+#: backend/hp3900_sane.c:1452
+#, no-c-format
+msgid "White shading correction will be disabled"
+msgstr "Beyaz gölgeleme düzeltmesi devre dışı bırakılacaktır."
+
+#: backend/hp3900_sane.c:1466
+#, no-c-format
+msgid "Skip warmup process"
+msgstr "Isınma sürecini atla"
+
+#: backend/hp3900_sane.c:1467
+#, no-c-format
+msgid "Warmup process will be disabled"
+msgstr "Isınma süreci devre dışı bırakılacaktır."
+
+#: backend/hp3900_sane.c:1481
+#, no-c-format
+msgid "Force real depth"
+msgstr "Gerçek derinliği zorla"
+
+#: backend/hp3900_sane.c:1484
+#, no-c-format
+msgid ""
+"If gamma is enabled, scans are always made in 16 bits depth to improve "
+"image quality and then converted to the selected depth. This option "
+"avoids depth emulation."
+msgstr ""
+"Gama etkinleştirilirse görsel kalitesini iyileştirmek için taramalar her "
+"zaman 16 bit derinlikte yapılır ve ardından seçilen derinliğe "
+"dönüştürülür. Bu seçenek, derinlik öykünmesini önler."
+
+#: backend/hp3900_sane.c:1498
+#, no-c-format
+msgid "Emulate Grayscale"
+msgstr "Gri tonluya öykün"
+
+#: backend/hp3900_sane.c:1501
+#, no-c-format
+msgid ""
+"If enabled, image will be scanned in color mode and then converted to "
+"grayscale by software. This may improve image quality in some "
+"circumstances."
+msgstr ""
+"Etkinleştirilirse, görsel renkli kipte taranır ve ardından yazılım "
+"tarafından gri tonluya dönüştürülür. Bu, bazı durumlarda görsel "
+"kalitesini iyileştirebilir."
+
+#: backend/hp3900_sane.c:1515
+#, no-c-format
+msgid "Save debugging images"
+msgstr "Hata ayıklama görsellerini kaydet"
+
+#: backend/hp3900_sane.c:1518
+#, no-c-format
+msgid ""
+"If enabled, some images involved in scanner processing are saved to "
+"analyze them."
+msgstr ""
+"Etkinleştirilirse tarama işlemesinde kullanılan kimi görseller, onları "
+"çözümlemek için kaydedilir."
+
+#: backend/hp3900_sane.c:1532
+#, no-c-format
+msgid "Reset chipset"
+msgstr "Yonga kümesini sıfırla"
+
+#: backend/hp3900_sane.c:1533
+#, no-c-format
+msgid "Resets chipset data"
+msgstr "Yonga kümesinin verisini sıfırlar."
+
+#: backend/hp3900_sane.c:1546
+#, no-c-format
+msgid "Information"
+msgstr "Bilgi"
+
+#: backend/hp3900_sane.c:1559
+#, no-c-format
+msgid "Chipset name"
+msgstr "Yonga kümesi adı"
+
+#: backend/hp3900_sane.c:1560
+#, no-c-format
+msgid "Shows chipset name used in device."
+msgstr "Aygıtta kullanılan yonga kümesinin adını gösterir."
+
+#: backend/hp3900_sane.c:1564
+#, no-c-format
+msgid "Unknown"
+msgstr "Bilinmeyen"
+
+#: backend/hp3900_sane.c:1570
+#, no-c-format
+msgid "Chipset ID"
+msgstr "Yonga kümesi kimliği"
+
+#: backend/hp3900_sane.c:1571
+#, no-c-format
+msgid "Shows the chipset ID"
+msgstr "Yonga kümesi kimliğini gösterir."
+
+#: backend/hp3900_sane.c:1581
+#, no-c-format
+msgid "Scan counter"
+msgstr "Tarama sayacı"
+
+#: backend/hp3900_sane.c:1583
+#, no-c-format
+msgid "Shows the number of scans made by scanner"
+msgstr "Tarayıcı tarafından yapılan taramaların sayısını gösterir."
+
+#: backend/hp3900_sane.c:1593
+#, no-c-format
+msgid "Update information"
+msgstr "Bilgiyi Güncelle"
+
+#: backend/hp3900_sane.c:1594
+#, no-c-format
+msgid "Updates information about device"
+msgstr "Aygıt hakkındaki bilgiyi günceller"
+
+#: backend/hp3900_sane.c:1634
+#, no-c-format
+msgid "This option reflects a front panel scanner button"
+msgstr "Bu seçenek, tarayıcının ön panelindeki bir düğmeyi yansıtır"
+
+#: backend/hp5400_sane.c:417
+#, no-c-format
+msgid "web"
+msgstr "web"
+
+#: backend/hp5400_sane.c:418
+#, no-c-format
+msgid "Share-To-Web button"
+msgstr "Web’e Paylaş düğmesini göster"
+
+#: backend/hp5400_sane.c:419
+#, no-c-format
+msgid "Scan an image and send it on the web"
+msgstr "Görsel tara ve web’e gönder"
+
+#: backend/hp5400_sane.c:425
+#, no-c-format
+msgid "reprint"
+msgstr "reprint"
+
+#: backend/hp5400_sane.c:426
+#, no-c-format
+msgid "Reprint Photos button"
+msgstr "Fotoğrafları Yeniden Yazdır düğmesi"
+
+#: backend/hp5400_sane.c:427
+#, no-c-format
+msgid "Button for reprinting photos"
+msgstr "Fotoğrafları yeniden yazdır düğmesi"
+
+#: backend/hp5400_sane.c:449
+#, no-c-format
+msgid "more-options"
+msgstr "Daha Çok Seçenek"
+
+#: backend/hp5400_sane.c:450
+#, no-c-format
+msgid "More Options button"
+msgstr "Daha Çok Seçenekler düğmesi"
+
+#: backend/hp5400_sane.c:451
+#, no-c-format
+msgid "Button for additional options/configuration"
+msgstr "Ek seçenekler/yapılandırmalar düğmesi"
+
+#: backend/hp5400_sane.c:465
+#, no-c-format
+msgid "power-save"
+msgstr "power-save"
+
+#: backend/hp5400_sane.c:466
+#, no-c-format
+msgid "Power Save button"
+msgstr "Güç Tasarrufu düğmesi"
+
+#: backend/hp5400_sane.c:467
+#, no-c-format
+msgid "Puts the scanner in an energy-conservation mode"
+msgstr "Tarayıcıyı enerji tasarrufu kipine sokar"
+
+#: backend/hp5400_sane.c:473
+#, no-c-format
+msgid "copies-up"
+msgstr "copies-up"
+
+#: backend/hp5400_sane.c:474
+#, no-c-format
+msgid "Increase Copies button"
+msgstr "Kopyaları Artır düğmesi"
+
+#: backend/hp5400_sane.c:475
+#, no-c-format
+msgid "Increase the number of copies"
+msgstr "Kopyaların sayısını artır düğmesi"
+
+#: backend/hp5400_sane.c:481
+#, no-c-format
+msgid "copies-down"
+msgstr "copies-down"
+
+#: backend/hp5400_sane.c:482
+#, no-c-format
+msgid "Decrease Copies button"
+msgstr "Kopyaların sayısını azalt düğmesi"
+
+#: backend/hp5400_sane.c:483
+#, no-c-format
+msgid "Decrease the number of copies"
+msgstr "Kopyaların sayısını azalt"
+
+#: backend/hp5400_sane.c:489
+#, no-c-format
+msgid "color-bw"
+msgstr "color-bw"
+
+#: backend/hp5400_sane.c:490
+#, no-c-format
+msgid "Select color/BW button"
+msgstr "Renkli/SB düğmesini seç"
+
+#: backend/hp5400_sane.c:491
+#, no-c-format
+msgid "Alternates between color and black/white scanning"
+msgstr "Renkli ve siyah–beyaz tarama arasında geçiş yapar"
+
+#: backend/hp5400_sane.c:497
+#, no-c-format
+msgid "color-bw-state"
+msgstr "color-bw-state"
+
+#: backend/hp5400_sane.c:498
+#, no-c-format
+msgid "Read color/BW button state"
+msgstr "Renkli/SB düğmesi durumunu oku"
+
+#: backend/hp5400_sane.c:499
+#, no-c-format
+msgid "Reads state of BW/colour panel setting"
+msgstr "Renkli/SB paneli ayarının durumunu okur"
+
+#: backend/hp5400_sane.c:507
+#, no-c-format
+msgid "copies-count"
+msgstr "copies-count"
+
+#: backend/hp5400_sane.c:508
+#, no-c-format
+msgid "Read copy count value"
+msgstr "Kopya sayısı değerini oku"
+
+#: backend/hp5400_sane.c:509
+#, no-c-format
+msgid "Reads state of copy count panel setting"
+msgstr "Kopya sayısı paneli ayarının durumunu okur"
+
+#: backend/hp5400_sane.c:525 backend/niash.c:713
+#, no-c-format
+msgid "Lamp status"
+msgstr "Lamba durumu"
+
+#: backend/hp5400_sane.c:526 backend/niash.c:714
+#, no-c-format
+msgid "Switches the lamp on or off."
+msgstr "Lambayı açar veya kapatır."
+
+#: backend/hp5400_sane.c:536 backend/niash.c:724
+#, no-c-format
+msgid "Calibrates for black and white level."
+msgstr "Siyah ve beyaz düzeyi için kalibre eder"
+
+#: backend/hp5590.c:93
+#, no-c-format
+msgid "TMA Slides"
+msgstr "TMA slaytları"
+
+#: backend/hp5590.c:94
+#, no-c-format
+msgid "TMA Negatives"
+msgstr "TMA negatifleri"
+
+#: backend/hp5590.c:106
+#, no-c-format
+msgid "Color (48 bits)"
+msgstr "Renkli (48 bit)"
+
+#: backend/hp5590.c:110
+#, no-c-format
+msgid "Extend lamp timeout"
+msgstr "Lamba zaman aşımını uzat"
+
+#: backend/hp5590.c:111
+#, no-c-format
+msgid "Extends lamp timeout (from 15 minutes to 1 hour)"
+msgstr "Lamba zaman aşımını uzatır (15 dakikadan 1 saate kadar)"
+
+#: backend/hp5590.c:113
+#, no-c-format
+msgid "Wait for button"
+msgstr "Düğmeyi bekle"
+
+#: backend/hp5590.c:114
+#, no-c-format
+msgid "Waits for button before scanning"
+msgstr "Taramadan önce düğmeyi bekler"
+
+#: backend/hp5590.c:116
+#, no-c-format
+msgid "Last button pressed"
+msgstr "Son basılan düğme"
+
+#: backend/hp5590.c:117
+#, no-c-format
+msgid "Get ID of last button pressed (read only)"
+msgstr "Son basılan düğmenin kimliğini al (saltokunur)"
+
+#: backend/hp5590.c:119
+#, no-c-format
+msgid "LCD counter"
+msgstr "LCD sayaç"
+
+#: backend/hp5590.c:120
+#, no-c-format
+msgid "Get value of LCD counter (read only)"
+msgstr "LCD sayacın değerini al (saltokunur)"
+
+#: backend/hp5590.c:122
+#, no-c-format
+msgid "Color LED indicator"
+msgstr "Renkli LED gösterge"
+
+#: backend/hp5590.c:123
+#, no-c-format
+msgid "Get value of LED indicator (read only)"
+msgstr "LED göstergenin değerini al (saltokunur)"
+
+#: backend/hp5590.c:125
+#, no-c-format
+msgid "Document available in ADF"
+msgstr "KBB’deki kullanılabilir belge"
+
+#: backend/hp5590.c:126
+#, no-c-format
+msgid "Get state of document-available indicator in ADF (read only)"
+msgstr ""
+"KBB’deki kullanılabilir belge göstergesinin durumunu al (saltokunur)"
+
+#: backend/hp5590.c:128
+#, no-c-format
+msgid "Hide end-of-page pixel"
+msgstr "Sayfa sonu pikselini gizle"
+
+#: backend/hp5590.c:129
+#, no-c-format
+msgid ""
+"Hide end-of-page indicator pixels and overwrite with neighbor pixels"
+msgstr ""
+"Sayfa sonu göstergesi pikselini gizle ve komşu piksellerle üzerine yaz"
+
+#: backend/hp5590.c:131
+#, no-c-format
+msgid "Filling mode of trailing lines after scan data (ADF)"
+msgstr "Tarama verisi sonrası sondaki çizgileri doldurma kipi (KBB)"
+
+#: backend/hp5590.c:132
+#, no-c-format
+msgid ""
+"raw = raw scan data, last = repeat last scan line, raster = b/w raster, "
+"white = white color, black = black color, color = RGB or gray color value"
+msgstr ""
+"raw = ham tarama verisi, last = son tarama çizgisini yinele, raster = s–"
+"b raster, white = beyaz renk, black = siyah renk, color = RGB veya gri "
+"renk değeri"
+
+#: backend/hp5590.c:135
+#, no-c-format
+msgid "RGB or gray color value for filling mode 'color'"
+msgstr "“color” doldurma kipi için RGB veya gri renk değeri"
+
+#: backend/hp5590.c:136
+#, no-c-format
+msgid ""
+"Color value for trailing lines filling mode 'color'. RGB color as "
+"r*65536+256*g+b or gray value (default=violet or gray)"
+msgstr ""
+"“color” sonraki çizgileri doldurma kipi için renk değeri. "
+"r*65536+256*g+b olarak RGB değeri veya gri değeri (default=mor veya gri)"
+
+#: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:511
+#: backend/matsushita.h:213
+#, no-c-format
+msgid "Paper size"
+msgstr "Kâğıt boyutu"
+
+#: backend/kvs1025.h:52 backend/kvs1025.h:67 backend/matsushita.h:214
+#: backend/matsushita.h:221
+#, no-c-format
+msgid "Automatic separation"
+msgstr "Kendiliğinden ayırma"
+
+#: backend/kvs1025.h:53 backend/kvs20xx_opt.c:307 backend/kvs40xx_opt.c:526
+#, no-c-format
+msgid "Landscape"
+msgstr "Yatay"
+
+#: backend/kvs1025.h:54 backend/kvs40xx_opt.c:688
+#, no-c-format
+msgid "Inverse Image"
+msgstr "Görseli ters çevir"
+
+#: backend/kvs1025.h:56 backend/kvs40xx_opt.c:399
+#, no-c-format
+msgid "Long paper mode"
+msgstr "Uzun kâğıt kipi"
+
+#: backend/kvs1025.h:57 backend/kvs20xx_opt.c:230 backend/kvs40xx_opt.c:388
+#, no-c-format
+msgid "Length control mode"
+msgstr "Uzunluk denetim kipi"
+
+#: backend/kvs1025.h:58 backend/kvs20xx_opt.c:242 backend/kvs40xx_opt.c:411
+#, no-c-format
+msgid "Manual feed mode"
+msgstr "Elle besleme kipi"
+
+#: backend/kvs1025.h:59 backend/kvs20xx_opt.c:254 backend/kvs40xx_opt.c:423
+#, no-c-format
+msgid "Manual feed timeout"
+msgstr "Elle besleme zaman aşımı"
+
+#: backend/kvs1025.h:60 backend/kvs20xx_opt.c:267 backend/kvs40xx_opt.c:436
+#, no-c-format
+msgid "Double feed detection"
+msgstr "Çifte besleme algılama"
+
+#: backend/kvs1025.h:63 backend/kvs20xx_opt.c:205 backend/kvs40xx_opt.c:349
+#: backend/matsushita.h:217
+#, no-c-format
+msgid "Enable Duplex (Dual-Sided) Scanning"
+msgstr "Çift yönlü taramayı etkinleştir"
+
+#: backend/kvs1025.h:65 backend/kvs20xx_opt.c:296 backend/kvs40xx_opt.c:512
+#: backend/matsushita.h:219
+#, no-c-format
+msgid "Physical size of the paper in the ADF"
+msgstr "KBB’deki kâğıdın fiziksel boyutu"
+
+#: backend/kvs1025_opt.c:39
+#, no-c-format
+msgid "bw"
+msgstr "bw"
+
+#: backend/kvs1025_opt.c:40
+#, no-c-format
+msgid "halftone"
+msgstr "halftone"
+
+#: backend/kvs1025_opt.c:41
+#, no-c-format
+msgid "gray"
+msgstr "gray"
+
+#: backend/kvs1025_opt.c:42
+#, no-c-format
+msgid "color"
+msgstr "color"
+
+#: backend/kvs1025_opt.c:61 backend/kvs40xx_opt.c:103
+#: backend/kvs40xx_opt.c:1042
+#, no-c-format
+msgid "adf"
+msgstr "adf"
+
+#: backend/kvs1025_opt.c:62 backend/kvs40xx_opt.c:45
+#: backend/kvs40xx_opt.c:104
+#, no-c-format
+msgid "fb"
+msgstr "fb"
+
+#: backend/kvs1025_opt.c:72 backend/kvs20xx_opt.c:55
+#: backend/kvs40xx_opt.c:96
+#, no-c-format
+msgid "single"
+msgstr "single"
+
+#: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56
+#: backend/kvs40xx.c:700 backend/kvs40xx.c:718 backend/kvs40xx_opt.c:97
+#: backend/kvs40xx_opt.c:1082
+#, no-c-format
+msgid "continuous"
+msgstr "continuous"
+
+#: backend/kvs1025_opt.c:83 backend/kvs20xx_opt.c:62
+#: backend/kvs40xx_opt.c:110
+#, no-c-format
+msgid "off"
+msgstr "off"
+
+#: backend/kvs1025_opt.c:84 backend/kvs20xx_opt.c:63
+#: backend/kvs40xx_opt.c:111
+#, no-c-format
+msgid "wait_doc"
+msgstr "wait_doc"
+
+#: backend/kvs1025_opt.c:85 backend/kvs20xx_opt.c:64
+#: backend/kvs40xx_opt.c:113
+#, no-c-format
+msgid "wait_key"
+msgstr "wait_key"
+
+#: backend/kvs1025_opt.c:96 backend/kvs20xx_opt.c:70
+#: backend/kvs40xx_opt.c:119 backend/kvs40xx_opt.c:136
+#, no-c-format
+msgid "user_def"
+msgstr "user_def"
+
+#: backend/kvs1025_opt.c:97 backend/kvs20xx_opt.c:71
+#: backend/kvs40xx_opt.c:120 backend/kvs40xx_opt.c:137
+#, no-c-format
+msgid "business_card"
+msgstr "business_card"
+
+#: backend/kvs1025_opt.c:98 backend/kvs40xx_opt.c:121
+#: backend/kvs40xx_opt.c:138
+#, no-c-format
+msgid "Check"
+msgstr "Çek"
+
+#: backend/kvs1025_opt.c:101 backend/kvs20xx_opt.c:75
+#: backend/kvs40xx_opt.c:124 backend/kvs40xx_opt.c:141
+#, no-c-format
+msgid "A5"
+msgstr "A5"
+
+#: backend/kvs1025_opt.c:102 backend/kvs20xx_opt.c:76
+#: backend/kvs40xx_opt.c:125 backend/kvs40xx_opt.c:142
+#, no-c-format
+msgid "A6"
+msgstr "A6"
+
+#: backend/kvs1025_opt.c:106 backend/kvs20xx_opt.c:80
+#: backend/kvs40xx_opt.c:129 backend/kvs40xx_opt.c:146
+#, no-c-format
+msgid "B5"
+msgstr "B5"
+
+#: backend/kvs1025_opt.c:107 backend/kvs20xx_opt.c:81
+#: backend/kvs40xx_opt.c:130 backend/kvs40xx_opt.c:147
+#, no-c-format
+msgid "B6"
+msgstr "B6"
+
+#: backend/kvs1025_opt.c:108 backend/kvs20xx_opt.c:82
+#: backend/kvs40xx_opt.c:131 backend/kvs40xx_opt.c:148
+#, no-c-format
+msgid "Legal"
+msgstr "Yasal"
+
+#: backend/kvs1025_opt.c:148 backend/kvs40xx_opt.c:234
+#, no-c-format
+msgid "bayer_64"
+msgstr "bayer_64"
+
+#: backend/kvs1025_opt.c:149 backend/kvs40xx_opt.c:235
+#, no-c-format
+msgid "bayer_16"
+msgstr "bayer_16"
+
+#: backend/kvs1025_opt.c:150 backend/kvs40xx_opt.c:236
+#, no-c-format
+msgid "halftone_32"
+msgstr "halftone_32"
+
+#: backend/kvs1025_opt.c:151 backend/kvs40xx_opt.c:237
+#, no-c-format
+msgid "halftone_64"
+msgstr "halftone_64"
+
+#: backend/kvs1025_opt.c:152
+#, no-c-format
+msgid "diffusion"
+msgstr "yayılma"
+
+#: backend/kvs1025_opt.c:165 backend/kvs1025_opt.c:227
+#: backend/kvs1025_opt.c:240 backend/kvs20xx_opt.c:129
+#: backend/kvs20xx_opt.c:137 backend/kvs40xx_opt.c:210
+#: backend/kvs40xx_opt.c:218 backend/kvs40xx_opt.c:253
+#, no-c-format
+msgid "normal"
+msgstr "normal"
+
+#: backend/kvs1025_opt.c:166 backend/kvs40xx_opt.c:254
+#, no-c-format
+msgid "light"
+msgstr "açık"
+
+#: backend/kvs1025_opt.c:167 backend/kvs40xx_opt.c:255
+#, no-c-format
+msgid "dark"
+msgstr "koyu"
+
+#: backend/kvs1025_opt.c:178 backend/kvs40xx_opt.c:266
+#, no-c-format
+msgid "From scanner"
+msgstr "Tarayıcıdan"
+
+#: backend/kvs1025_opt.c:179 backend/kvs40xx_opt.c:267
+#: backend/matsushita.c:174
+#, no-c-format
+msgid "From paper"
+msgstr "Kâğıttan"
+
+#: backend/kvs1025_opt.c:191 backend/kvs40xx_opt.c:279
+#, no-c-format
+msgid "default"
+msgstr "öntanımlı"
+
+#: backend/kvs1025_opt.c:210 backend/kvs20xx_opt.c:123
+#: backend/kvs40xx_opt.c:204
+#, no-c-format
+msgid "smooth"
+msgstr "pürüzsüz"
+
+#: backend/kvs1025_opt.c:211 backend/kvs20xx_opt.c:119
+#: backend/kvs40xx_opt.c:200
+#, no-c-format
+msgid "none"
+msgstr "yok"
+
+#: backend/kvs1025_opt.c:212 backend/kvs20xx_opt.c:120
+#: backend/kvs40xx_opt.c:201
+#, no-c-format
+msgid "low"
+msgstr "düşük"
+
+#: backend/kvs1025_opt.c:213 backend/kvs1025_opt.c:803
+#: backend/kvs20xx_opt.c:121 backend/kvs40xx_opt.c:202
+#, no-c-format
+msgid "medium"
+msgstr "orta"
+
+#: backend/kvs1025_opt.c:214 backend/kvs20xx_opt.c:122
+#: backend/kvs40xx_opt.c:203
+#, no-c-format
+msgid "high"
+msgstr "yüksek"
+
+#: backend/kvs1025_opt.c:228 backend/kvs20xx_opt.c:130
+#: backend/kvs40xx_opt.c:211
+#, no-c-format
+msgid "crt"
+msgstr "crt"
+
+#: backend/kvs1025_opt.c:229
+#, no-c-format
+msgid "linear"
+msgstr "doğrusal"
+
+#: backend/kvs1025_opt.c:241 backend/kvs20xx_opt.c:138
+#: backend/kvs40xx_opt.c:219
+#, no-c-format
+msgid "red"
+msgstr "kırmızı"
+
+#: backend/kvs1025_opt.c:242 backend/kvs20xx_opt.c:139
+#: backend/kvs40xx_opt.c:220
+#, no-c-format
+msgid "green"
+msgstr "yeşil"
+
+#: backend/kvs1025_opt.c:243 backend/kvs20xx_opt.c:140
+#: backend/kvs40xx_opt.c:221
+#, no-c-format
+msgid "blue"
+msgstr "mavi"
+
+#: backend/kvs1025_opt.c:561
+#, no-c-format
+msgid "Sets the scan source"
+msgstr ""
+
+#: backend/kvs1025_opt.c:572 backend/kvs20xx_opt.c:218
+#: backend/kvs40xx_opt.c:362 backend/matsushita.c:1123
+#, no-c-format
+msgid "Feeder mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:573 backend/kvs20xx_opt.c:219
+#: backend/kvs40xx_opt.c:363 backend/matsushita.c:1124
+#, no-c-format
+msgid "Sets the feeding mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:583
+#, no-c-format
+msgid "Enable/Disable long paper mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:592
+#, no-c-format
+msgid "Enable/Disable length control mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:600 backend/kvs20xx_opt.c:243
+#: backend/kvs40xx_opt.c:412
+#, no-c-format
+msgid "Sets the manual feed mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:611 backend/kvs20xx_opt.c:255
+#: backend/kvs40xx_opt.c:424
+#, no-c-format
+msgid "Sets the manual feed timeout in seconds"
+msgstr ""
+
+#: backend/kvs1025_opt.c:624 backend/kvs20xx_opt.c:268
+#: backend/kvs40xx_opt.c:437
+#, no-c-format
+msgid "Enable/Disable double feed detection"
+msgstr ""
+
+#: backend/kvs1025_opt.c:630 backend/kvs20xx_opt.c:276
+#: backend/kvs40xx_opt.c:492
+#, no-c-format
+msgid "fit-to-page"
+msgstr ""
+
+#: backend/kvs1025_opt.c:631 backend/kvs20xx_opt.c:277
+#: backend/kvs40xx_opt.c:493
+#, no-c-format
+msgid "Fit to page"
+msgstr ""
+
+#: backend/kvs1025_opt.c:633 backend/kvs20xx_opt.c:278
+#: backend/kvs40xx_opt.c:494
+#, no-c-format
+msgid "Scanner shrinks image to fit scanned page"
+msgstr ""
+
+#: backend/kvs1025_opt.c:660 backend/kvs20xx_opt.c:309
+#: backend/kvs40xx_opt.c:528
+#, no-c-format
+msgid "Set paper position : true for landscape, false for portrait"
+msgstr ""
+
+#: backend/kvs1025_opt.c:734 backend/matsushita.c:1221
+#, no-c-format
+msgid "Automatic threshold"
+msgstr ""
+
+#: backend/kvs1025_opt.c:737 backend/matsushita.c:1224
+#, no-c-format
+msgid ""
+"Automatically sets brightness, contrast, white level, gamma, noise "
+"reduction and image emphasis"
+msgstr ""
+
+#: backend/kvs1025_opt.c:782 backend/kvs40xx_opt.c:759
+#: backend/matsushita.c:1272
+#, no-c-format
+msgid "Noise reduction"
+msgstr ""
+
+#: backend/kvs1025_opt.c:784 backend/kvs40xx_opt.c:760
+#: backend/matsushita.c:1274
+#, no-c-format
+msgid "Reduce the isolated dot noise"
+msgstr ""
+
+#: backend/kvs1025_opt.c:795 backend/kvs20xx_opt.c:412
+#: backend/kvs40xx_opt.c:650 backend/matsushita.c:1285
+#, no-c-format
+msgid "Image emphasis"
+msgstr ""
+
+#: backend/kvs1025_opt.c:796 backend/kvs20xx_opt.c:413
+#: backend/kvs40xx_opt.c:651 backend/matsushita.c:1286
+#, no-c-format
+msgid "Sets the image emphasis"
+msgstr ""
+
+#: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808
+#: backend/matsushita.c:1297 backend/matsushita.c:1298
+#: backend/pixma/pixma_sane_options.c:113
+#, no-c-format
+msgid "Gamma"
+msgstr ""
+
+#: backend/kvs1025_opt.c:817 backend/kvs20xx_opt.c:436
+#: backend/kvs40xx_opt.c:676
+#, no-c-format
+msgid "Lamp color"
+msgstr "Lamba rengi"
+
+#: backend/kvs1025_opt.c:818 backend/kvs20xx_opt.c:437
+#: backend/kvs40xx_opt.c:677
+#, no-c-format
+msgid "Sets the lamp color (color dropout)"
+msgstr "Lamba rengini ayarlar"
+
+#: backend/kvs1025_opt.c:831
+#, no-c-format
+msgid "Inverse image in B/W or halftone mode"
+msgstr ""
+
+#: backend/kvs1025_opt.c:839
+#, no-c-format
+msgid "Mirror image (left/right flip)"
+msgstr ""
+
+#: backend/kvs1025_opt.c:846
+#, no-c-format
+msgid "jpeg compression"
+msgstr ""
+
+#: backend/kvs1025_opt.c:849
+#, no-c-format
+msgid "JPEG Image Compression with Q parameter, '0' - no compression"
+msgstr ""
+
+#: backend/kvs1025_opt.c:859
+#, no-c-format
+msgid "Rotate image clockwise"
+msgstr ""
+
+#: backend/kvs1025_opt.c:861
+#, no-c-format
+msgid "Request driver to rotate pages by a fixed amount"
+msgstr ""
+
+#: backend/kvs1025_opt.c:873
+#, no-c-format
+msgid "Request driver to rotate skewed pages digitally"
+msgstr ""
+
+#: backend/kvs1025_opt.c:882
+#, no-c-format
+msgid "Maximum diameter of lone dots to remove from scan"
+msgstr ""
+
+#: backend/kvs1025_opt.c:892
+#, no-c-format
+msgid "Software derotate"
+msgstr ""
+
+#: backend/kvs1025_opt.c:894
+#, no-c-format
+msgid "Request driver to detect and correct 90 degree image rotation"
+msgstr ""
+
+#: backend/kvs1025_opt.c:901
+#, no-c-format
+msgid "Software automatic cropping"
+msgstr ""
+
+#: backend/kvs1025_opt.c:903
+#, no-c-format
+msgid "Request driver to remove border from pages digitally"
+msgstr ""
+
+#: backend/kvs1025_opt.c:912
+#, no-c-format
+msgid "Request driver to discard pages with low numbers of dark pixels"
+msgstr ""
+
+#: backend/kvs20xx_opt.c:233
+#, no-c-format
+msgid ""
+"Length Control Mode causes the scanner to read the shorter of either the "
+"length of the actual paper or logical document length."
+msgstr ""
+
+#: backend/kvs20xx_opt.c:424 backend/kvs20xx_opt.c:425
+#: backend/kvs40xx_opt.c:663 backend/kvs40xx_opt.c:664
+#: backend/microtek2.h:638
+#, no-c-format
+msgid "Gamma correction"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:112
+#, no-c-format
+msgid "wait_doc_hopper_up"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:122
+#, no-c-format
+msgid "A3"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:127
+#, no-c-format
+msgid "Double letter 11x17 in"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:128
+#, no-c-format
+msgid "B4"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:226
+#, no-c-format
+msgid "High sensitivity"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:227
+#, no-c-format
+msgid "Low sensitivity"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:238
+#, no-c-format
+msgid "err_diffusion"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:244
+#, no-c-format
+msgid "No detection"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:245
+#, no-c-format
+msgid "Normal mode"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:246
+#, no-c-format
+msgid "Enhanced mode"
+msgstr "İyileştirme kipi"
+
+#: backend/kvs40xx_opt.c:391
+#, no-c-format
+msgid ""
+"Length Control Mode causes the scanner to read the shorter of either the "
+"length of the actual paper or logical document length"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:400
+#, no-c-format
+msgid ""
+"Long Paper Mode is a mode that the scanner reads the image after it "
+"divides long paper by the length which is set in Document Size option."
+msgstr ""
+
+#: backend/kvs40xx_opt.c:444
+#, no-c-format
+msgid "Double feed detector sensitivity"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:445
+#, no-c-format
+msgid "Set the double feed detector sensitivity"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:456 backend/kvs40xx_opt.c:457
+#, no-c-format
+msgid "Do not stop after double feed detection"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:465 backend/kvs40xx_opt.c:466
+#, no-c-format
+msgid "Ignore left double feed sensor"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:474 backend/kvs40xx_opt.c:475
+#, no-c-format
+msgid "Ignore center double feed sensor"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:483 backend/kvs40xx_opt.c:484
+#, no-c-format
+msgid "Ignore right double feed sensor"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:637
+#, no-c-format
+msgid "Automatic threshold mode"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:638
+#, no-c-format
+msgid "Sets the automatic threshold mode"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:689
+#, no-c-format
+msgid "Inverse image in B/W mode"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:710
+#, no-c-format
+msgid "JPEG compression"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:713
+#, no-c-format
+msgid "JPEG compression (your application must be able to uncompress)"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:732 backend/kvs40xx_opt.c:733
+#, no-c-format
+msgid "Detect stapled document"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:771
+#, no-c-format
+msgid "chroma of red"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:772
+#, no-c-format
+msgid "Set chroma of red"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:782
+#, no-c-format
+msgid "chroma of blue"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:783
+#, no-c-format
+msgid "Set chroma of blue"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:793 backend/kvs40xx_opt.c:794
+#, no-c-format
+msgid "Skew adjustment"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:803
+#, no-c-format
+msgid "Stop scanner if a sheet is skewed"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:804
+#, no-c-format
+msgid "Scanner will stop if a sheet is skewed"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:811
+#, no-c-format
+msgid "Crop actual image area"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:812
+#, no-c-format
+msgid "Scanner will automatically detect image area and crop to it"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:822
+#, no-c-format
+msgid "Left/right mirror image"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:829 backend/kvs40xx_opt.c:830
+#, no-c-format
+msgid "Addition of space in top position"
+msgstr ""
+
+#: backend/kvs40xx_opt.c:837 backend/kvs40xx_opt.c:838
+#, no-c-format
+msgid "Addition of space in bottom position"
+msgstr ""
+
+#: backend/leo.c:107
+#, no-c-format
+msgid "Diamond"
+msgstr ""
+
+#: backend/leo.c:108
+#, no-c-format
+msgid "8x8 Coarse Fatting"
+msgstr ""
+
+#: backend/leo.c:109
+#, no-c-format
+msgid "8x8 Fine Fatting"
+msgstr ""
+
+#: backend/leo.c:110
+#, no-c-format
+msgid "8x8 Bayer"
+msgstr ""
+
+#: backend/leo.c:111
+#, no-c-format
+msgid "8x8 Vertical Line"
+msgstr ""
+
+#: backend/lexmark.c:271 backend/umax_pp.c:704
+#, no-c-format
+msgid "Gain"
+msgstr ""
+
+#: backend/lexmark.c:272 backend/umax_pp.c:705
+#, no-c-format
+msgid "Color channels gain settings"
+msgstr ""
+
+#: backend/lexmark.c:281 backend/umax_pp.c:712
+#, no-c-format
+msgid "Gray gain"
+msgstr ""
+
+#: backend/lexmark.c:282 backend/umax_pp.c:713
+#, no-c-format
+msgid "Sets gray channel gain"
+msgstr ""
+
+#: backend/lexmark.c:295 backend/plustek.c:999 backend/umax_pp.c:724
+#, no-c-format
+msgid "Red gain"
+msgstr ""
+
+#: backend/lexmark.c:296 backend/umax_pp.c:725
+#, no-c-format
+msgid "Sets red channel gain"
+msgstr ""
+
+#: backend/lexmark.c:309 backend/plustek.c:1015 backend/umax_pp.c:736
+#, no-c-format
+msgid "Green gain"
+msgstr ""
+
+#: backend/lexmark.c:310 backend/umax_pp.c:737
+#, no-c-format
+msgid "Sets green channel gain"
+msgstr ""
+
+#: backend/lexmark.c:323 backend/plustek.c:1031 backend/umax_pp.c:748
+#, no-c-format
+msgid "Blue gain"
+msgstr ""
+
+#: backend/lexmark.c:324 backend/umax_pp.c:749
+#, no-c-format
+msgid "Sets blue channel gain"
+msgstr ""
+
+#: backend/matsushita.c:136
+#, no-c-format
+msgid "Bayer Dither 16"
+msgstr ""
+
+#: backend/matsushita.c:137
+#, no-c-format
+msgid "Bayer Dither 64"
+msgstr ""
+
+#: backend/matsushita.c:138
+#, no-c-format
+msgid "Halftone Dot 32"
+msgstr ""
+
+#: backend/matsushita.c:139
+#, no-c-format
+msgid "Halftone Dot 64"
+msgstr ""
+
+#: backend/matsushita.c:140
+#, no-c-format
+msgid "Error Diffusion"
+msgstr ""
+
+#: backend/matsushita.c:157
+#, no-c-format
+msgid "Mode 1"
+msgstr ""
+
+#: backend/matsushita.c:158
+#, no-c-format
+msgid "Mode 2"
+msgstr ""
+
+#: backend/matsushita.c:159
+#, no-c-format
+msgid "Mode 3"
+msgstr ""
+
+#: backend/matsushita.c:173
+#, no-c-format
+msgid "From white stick"
+msgstr ""
+
+#: backend/matsushita.c:209
+#, no-c-format
+msgid "Smooth"
+msgstr ""
+
+#: backend/matsushita.c:211 backend/matsushita.c:226
+#, no-c-format
+msgid "Low"
+msgstr ""
+
+#: backend/matsushita.c:212 backend/matsushita.c:227
+#: backend/matsushita.c:1293
+#, no-c-format
+msgid "Medium"
+msgstr ""
+
+#: backend/matsushita.c:213 backend/matsushita.c:228
+#, no-c-format
+msgid "High"
+msgstr ""
+
+#: backend/matsushita.c:242
+#, no-c-format
+msgid "CRT"
+msgstr ""
+
+#: backend/matsushita.c:254
+#, no-c-format
+msgid "One page"
+msgstr ""
+
+#: backend/matsushita.c:255
+#, no-c-format
+msgid "All pages"
+msgstr ""
+
+#: backend/matsushita.c:1031 backend/p5_device.c:8 backend/plustek.c:1331
+#, no-c-format
+msgid "sheetfed scanner"
+msgstr ""
+
+#: backend/matsushita.h:203
+#, no-c-format
+msgid "Grayscale 4 bits"
+msgstr ""
+
+#: backend/matsushita.h:204
+#, no-c-format
+msgid "Grayscale 8 bits"
+msgstr ""
+
+#: backend/microtek2.h:599
+#, no-c-format
+msgid "Shadow, midtone, highlight, exposure time"
+msgstr ""
+
+#: backend/microtek2.h:601
+#, no-c-format
+msgid "Special options"
+msgstr ""
+
+#: backend/microtek2.h:602
+#, no-c-format
+msgid "Color balance"
+msgstr ""
+
+#: backend/microtek2.h:605
+#, no-c-format
+msgid "Disable backtracking"
+msgstr ""
+
+#: backend/microtek2.h:606
+#, no-c-format
+msgid "If checked the scanner does not perform backtracking"
+msgstr ""
+
+#: backend/microtek2.h:610
+#, no-c-format
+msgid "Toggle lamp of flatbed"
+msgstr "Düz yatağın lambasını aç/kapat"
+
+#: backend/microtek2.h:611
+#, no-c-format
+msgid "Toggles the lamp of the flatbed"
+msgstr "Düz yatağın lambasını açar/kapatır"
+
+#: backend/microtek2.h:614
+#, no-c-format
+msgid "Calibration by backend"
+msgstr ""
+
+#: backend/microtek2.h:615
+#, no-c-format
+msgid ""
+"If checked the color calibration before a scan is done by the backend"
+msgstr ""
+
+#: backend/microtek2.h:619
+#, no-c-format
+msgid "Use the lightlid-35mm adapter"
+msgstr ""
+
+#: backend/microtek2.h:620
+#, no-c-format
+msgid "This option turns off the lamp of the flatbed during a scan"
+msgstr "Bu seçenek, düz yatağın lambasını bir tarama sırasında kapatır"
+
+#: backend/microtek2.h:625 backend/snapscan-options.c:436
+#, no-c-format
+msgid "Highest quality but lower speed"
+msgstr ""
+
+#: backend/microtek2.h:628
+#, no-c-format
+msgid "Fast scan"
+msgstr ""
+
+#: backend/microtek2.h:629
+#, no-c-format
+msgid "Highest speed but lower quality"
+msgstr ""
+
+#: backend/microtek2.h:632
+#, no-c-format
+msgid "Automatic adjustment of threshold"
+msgstr ""
+
+#: backend/microtek2.h:633
+#, no-c-format
+msgid ""
+"If checked the backend automatically tries to determine an optimal value "
+"for the threshold."
+msgstr ""
+
+#: backend/microtek2.h:639
+#, no-c-format
+msgid "Selects the gamma correction mode."
+msgstr ""
+
+#: backend/microtek2.h:642
+#, no-c-format
+msgid "Bind gamma"
+msgstr ""
+
+#: backend/microtek2.h:643
+#, no-c-format
+msgid "Use same gamma values for all colour channels."
+msgstr ""
+
+#: backend/microtek2.h:647
+#, no-c-format
+msgid "Scalar gamma"
+msgstr ""
+
+#: backend/microtek2.h:648
+#, no-c-format
+msgid "Selects a value for scalar gamma correction."
+msgstr ""
+
+#: backend/microtek2.h:652
+#, no-c-format
+msgid "Scalar gamma red"
+msgstr ""
+
+#: backend/microtek2.h:653
+#, no-c-format
+msgid "Selects a value for scalar gamma correction (red channel)"
+msgstr ""
+
+#: backend/microtek2.h:657
+#, no-c-format
+msgid "Scalar gamma green"
+msgstr ""
+
+#: backend/microtek2.h:658
+#, no-c-format
+msgid "Selects a value for scalar gamma correction (green channel)"
+msgstr ""
+
+#: backend/microtek2.h:662
+#, no-c-format
+msgid "Scalar gamma blue"
+msgstr ""
+
+#: backend/microtek2.h:663
+#, no-c-format
+msgid "Selects a value for scalar gamma correction (blue channel)"
+msgstr ""
+
+#: backend/microtek2.h:667
+#, no-c-format
+msgid "Channel"
+msgstr ""
+
+#: backend/microtek2.h:668
+#, no-c-format
+msgid ""
+"Selects the colour band, \"Master\" means that all colours are affected."
+msgstr ""
+
+#: backend/microtek2.h:672
+#, no-c-format
+msgid "Midtone"
+msgstr ""
+
+#: backend/microtek2.h:673
+#, no-c-format
+msgid "Selects which radiance level should be considered \"50 % gray\"."
+msgstr ""
+
+#: backend/microtek2.h:677
+#, no-c-format
+msgid "Midtone for red"
+msgstr ""
+
+#: backend/microtek2.h:678
+#, no-c-format
+msgid "Selects which radiance level should be considered \"50 % red\"."
+msgstr ""
+
+#: backend/microtek2.h:682
+#, no-c-format
+msgid "Midtone for green"
+msgstr ""
+
+#: backend/microtek2.h:683
+#, no-c-format
+msgid "Selects which radiance level should be considered \"50 % green\"."
+msgstr ""
+
+#: backend/microtek2.h:687
+#, no-c-format
+msgid "Midtone for blue"
+msgstr ""
+
+#: backend/microtek2.h:688
+#, no-c-format
+msgid "Selects which radiance level should be considered \"50 % blue\"."
+msgstr ""
+
+#: backend/microtek2.h:692
+#, no-c-format
+msgid "Red balance"
+msgstr ""
+
+#: backend/microtek2.h:693
+#, no-c-format
+msgid "Balance factor for red. A value of 100% means no correction."
+msgstr ""
+
+#: backend/microtek2.h:697
+#, no-c-format
+msgid "Green balance"
+msgstr ""
+
+#: backend/microtek2.h:698
+#, no-c-format
+msgid "Balance factor for green. A value of 100% means no correction."
+msgstr ""
+
+#: backend/microtek2.h:702
+#, no-c-format
+msgid "Blue balance"
+msgstr ""
+
+#: backend/microtek2.h:703
+#, no-c-format
+msgid "Balance factor for blue. A value of 100% means no correction."
+msgstr ""
+
+#: backend/microtek2.h:707
+#, no-c-format
+msgid "Firmware balance"
+msgstr ""
+
+#: backend/microtek2.h:708
+#, no-c-format
+msgid "Sets the color balance values to the firmware provided values."
+msgstr ""
+
+#: backend/mustek.c:147
+#, no-c-format
+msgid "Slowest"
+msgstr ""
+
+#: backend/mustek.c:147
+#, no-c-format
+msgid "Slower"
+msgstr ""
+
+#: backend/mustek.c:148
+#, no-c-format
+msgid "Faster"
+msgstr ""
+
+#: backend/mustek.c:148
+#, no-c-format
+msgid "Fastest"
+msgstr ""
+
+#: backend/mustek.c:175
+#, no-c-format
+msgid "8x8 coarse"
+msgstr ""
+
+#: backend/mustek.c:175
+#, no-c-format
+msgid "8x8 normal"
+msgstr ""
+
+#: backend/mustek.c:175
+#, no-c-format
+msgid "8x8 fine"
+msgstr ""
+
+#: backend/mustek.c:176
+#, no-c-format
+msgid "8x8 very fine"
+msgstr ""
+
+#: backend/mustek.c:176
+#, no-c-format
+msgid "6x6 normal"
+msgstr ""
+
+#: backend/mustek.c:177
+#, no-c-format
+msgid "5x5 coarse"
+msgstr ""
+
+#: backend/mustek.c:177
+#, no-c-format
+msgid "5x5 fine"
+msgstr ""
+
+#: backend/mustek.c:177
+#, no-c-format
+msgid "4x4 coarse"
+msgstr ""
+
+#: backend/mustek.c:178
+#, no-c-format
+msgid "4x4 normal"
+msgstr ""
+
+#: backend/mustek.c:178
+#, no-c-format
+msgid "4x4 fine"
+msgstr ""
+
+#: backend/mustek.c:178
+#, no-c-format
+msgid "3x3 normal"
+msgstr ""
+
+#: backend/mustek.c:179
+#, no-c-format
+msgid "2x2 normal"
+msgstr ""
+
+#: backend/mustek.c:179
+#, no-c-format
+msgid "8x8 custom"
+msgstr ""
+
+#: backend/mustek.c:180
+#, no-c-format
+msgid "6x6 custom"
+msgstr ""
+
+#: backend/mustek.c:181
+#, no-c-format
+msgid "5x5 custom"
+msgstr ""
+
+#: backend/mustek.c:181
+#, no-c-format
+msgid "4x4 custom"
+msgstr ""
+
+#: backend/mustek.c:182
+#, no-c-format
+msgid "3x3 custom"
+msgstr ""
+
+#: backend/mustek.c:183
+#, no-c-format
+msgid "2x2 custom"
+msgstr ""
+
+#: backend/mustek.c:4226
+#, no-c-format
+msgid "Fast gray mode"
+msgstr ""
+
+#: backend/mustek.c:4227
+#, no-c-format
+msgid "Scan in fast gray mode (lower quality)."
+msgstr ""
+
+#: backend/mustek.c:4324
+#, no-c-format
+msgid ""
+"Request that all previews are done in the fastest (low-quality) mode. "
+"This may be a non-color mode or a low resolution mode."
+msgstr ""
+
+#: backend/mustek.c:4332
+#, no-c-format
+msgid "Lamp off time (minutes)"
+msgstr "Lamba kapalı süresi (dakika)"
+
+#: backend/mustek.c:4333
+#, no-c-format
+msgid "Set the time (in minutes) after which the lamp is shut off."
+msgstr ""
+"Lambanın ne kadar süre sonra kapanacağını (dakika olarak) ayarlayın."
+
+#: backend/mustek.c:4344
+#, no-c-format
+msgid "Turn lamp off"
+msgstr "Lambayı kapat"
+
+#: backend/mustek.c:4345
+#, no-c-format
+msgid "Turns the lamp off immediately."
+msgstr "Lambayı hemen kapatır."
+
+#: backend/mustek.c:4422
+#, no-c-format
+msgid "Red brightness"
+msgstr ""
+
+#: backend/mustek.c:4423
+#, no-c-format
+msgid "Controls the brightness of the red channel of the acquired image."
+msgstr ""
+
+#: backend/mustek.c:4435
+#, no-c-format
+msgid "Green brightness"
+msgstr ""
+
+#: backend/mustek.c:4436
+#, no-c-format
+msgid "Controls the brightness of the green channel of the acquired image."
+msgstr ""
+
+#: backend/mustek.c:4448
+#, no-c-format
+msgid "Blue brightness"
+msgstr ""
+
+#: backend/mustek.c:4449
+#, no-c-format
+msgid "Controls the brightness of the blue channel of the acquired image."
+msgstr ""
+
+#: backend/mustek.c:4474
+#, no-c-format
+msgid "Contrast red channel"
+msgstr ""
+
+#: backend/mustek.c:4475
+#, no-c-format
+msgid "Controls the contrast of the red channel of the acquired image."
+msgstr ""
+
+#: backend/mustek.c:4487
+#, no-c-format
+msgid "Contrast green channel"
+msgstr ""
+
+#: backend/mustek.c:4488
+#, no-c-format
+msgid "Controls the contrast of the green channel of the acquired image."
+msgstr ""
+
+#: backend/mustek.c:4500
+#, no-c-format
+msgid "Contrast blue channel"
+msgstr ""
+
+#: backend/mustek.c:4501
+#, no-c-format
+msgid "Controls the contrast of the blue channel of the acquired image."
+msgstr ""
+
+#: backend/mustek_usb2.c:103
+#, no-c-format
+msgid "Color48"
+msgstr ""
+
+#: backend/mustek_usb2.c:104 backend/mustek_usb2.c:112
+#, no-c-format
+msgid "Color24"
+msgstr ""
+
+#: backend/mustek_usb2.c:105
+#, no-c-format
+msgid "Gray16"
+msgstr ""
+
+#: backend/mustek_usb2.c:106
+#, no-c-format
+msgid "Gray8"
+msgstr ""
+
+#: backend/mustek_usb2.c:117
+#, no-c-format
+msgid "Reflective"
+msgstr ""
+
+#: backend/mustek_usb2.c:118
+#, no-c-format
+msgid "Positive"
+msgstr ""
+
+#: backend/mustek_usb2.c:419
+#, no-c-format
+msgid ""
+"Warm-up until the lamp's brightness is constant instead of insisting on "
+"40 seconds warm-up time."
+msgstr ""
+"40 saniyelik ısınma süresinde ısrar etmek yerine, lambanın parlaklığı "
+"sabit oluncaya kadar ısıtmaya çalışın."
+
+#: backend/niash.c:675
+#, no-c-format
+msgid "Image"
+msgstr ""
+
+#: backend/p5.c:1926
+#, no-c-format
+msgid "Need calibration"
+msgstr ""
+
+#: backend/pixma/pixma.c:402
+#, no-c-format
+msgid "Negative color"
+msgstr ""
+
+#: backend/pixma/pixma.c:407
+#, no-c-format
+msgid "Negative gray"
+msgstr ""
+
+#: backend/pixma/pixma.c:420
+#, no-c-format
+msgid "48 bits color"
+msgstr ""
+
+#: backend/pixma/pixma.c:425
+#, no-c-format
+msgid "16 bits gray"
+msgstr ""
+
+#: backend/pixma/pixma.c:513 backend/pixma/pixma_sane_options.c:415
+#, no-c-format
+msgid "Once"
+msgstr ""
+
+#: backend/pixma/pixma.c:516
+#, no-c-format
+msgid "Always"
+msgstr ""
+
+#: backend/pixma/pixma.c:519
+#, no-c-format
+msgid "Never"
+msgstr ""
+
+#: backend/pixma/pixma.c:1061
+#, no-c-format
+msgid ""
+"Gamma-correction table with 4096 entries. In color mode this option "
+"equally affects the red, green, and blue channels simultaneously (i.e., "
+"it is an intensity gamma table)."
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:85
+#, no-c-format
+msgid ""
+"Selects the scan source (such as a document-feeder). Set source before "
+"mode and resolution. Resets mode and resolution to auto values."
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:99
+#, no-c-format
+msgid "Button-controlled scan"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:100
+#, no-c-format
+msgid ""
+"When enabled, scan process will not start immediately. To proceed, press "
+"\"SCAN\" button (for MP150) or \"COLOR\" button (for other models). To "
+"cancel, press \"GRAY\" button."
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:134
+#, no-c-format
+msgid ""
+"Gamma-correction table with 1024 entries. In color mode this option "
+"equally affects the red, green, and blue channels simultaneously (i.e., "
+"it is an intensity gamma table)."
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:233
+#, no-c-format
+msgid "Update button state"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:245
+#, no-c-format
+msgid "Button 1"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:259
+#, no-c-format
+msgid "Button 2"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:273
+#, no-c-format
+msgid "Type of original to scan"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:287
+#, no-c-format
+msgid "Target operation type"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:315
+#, no-c-format
+msgid "Document type"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:329
+#, no-c-format
+msgid "ADF status"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:343
+#, no-c-format
+msgid "ADF orientation"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:379
+#, no-c-format
+msgid "Dynamic threshold curve, from light to dark, normally 50-65"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:391
+#, no-c-format
+msgid "ADF Waiting Time"
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:392
+#, no-c-format
+msgid ""
+"When set, the scanner waits up to the specified time in seconds for a "
+"new document inserted into the automatic document feeder."
+msgstr ""
+
+#: backend/pixma/pixma_sane_options.c:407
+#, no-c-format
+msgid ""
+"When to perform scanner calibration. If you choose \"Once\" it will be "
+"performed a single time per driver init for single page scans, and for "
+"the first page for each ADF scan."
+msgstr ""
+
+#: backend/plustek.c:233 backend/plustek_pp.c:202 backend/u12.c:154
+#, no-c-format
+msgid "Transparency"
+msgstr ""
+
+#: backend/plustek.c:911
+#, no-c-format
+msgid "Device-Settings"
+msgstr ""
+
+#: backend/plustek.c:918
+#, no-c-format
+msgid "Lampswitch"
+msgstr "Lamba düğmesi"
+
+#: backend/plustek.c:919
+#, no-c-format
+msgid "Manually switching the lamp(s)."
+msgstr "Lambayı elle kapatın."
+
+#: backend/plustek.c:924
+#, no-c-format
+msgid "Lamp off during dark calibration"
+msgstr "Karanlık kalibrasyonu sırasında lamba kapalı"
+
+#: backend/plustek.c:925
+#, no-c-format
+msgid "Always switches lamp off when doing dark calibration."
+msgstr "Karanlık kalibrasyonu yaparken lambayı her zaman kapatır."
+
+#: backend/plustek.c:933
+#, no-c-format
+msgid "Calibration data cache"
+msgstr ""
+
+#: backend/plustek.c:934
+#, no-c-format
+msgid "Enables or disables calibration data cache."
+msgstr ""
+
+#: backend/plustek.c:940
+#, no-c-format
+msgid "Performs calibration"
+msgstr ""
+
+#: backend/plustek.c:957
+#, no-c-format
+msgid "Speedup sensor"
+msgstr ""
+
+#: backend/plustek.c:958
+#, no-c-format
+msgid "Enables or disables speeding up sensor movement."
+msgstr ""
+
+#: backend/plustek.c:972
+#, no-c-format
+msgid "Warmup-time"
+msgstr ""
+
+#: backend/plustek.c:973
+#, no-c-format
+msgid "Warmup-time in seconds."
+msgstr ""
+
+#: backend/plustek.c:985
+#, no-c-format
+msgid "Lampoff-time"
+msgstr "Lamba kapanma zamanı"
+
+#: backend/plustek.c:986
+#, no-c-format
+msgid "Lampoff-time in seconds."
+msgstr "Lambanın saniye olarak kapanma süresi."
+
+#: backend/plustek.c:993
+#, no-c-format
+msgid "Analog frontend"
+msgstr ""
+
+#: backend/plustek.c:1000
+#, no-c-format
+msgid "Red gain value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1007 backend/umax_pp.c:781
+#, no-c-format
+msgid "Red offset"
+msgstr ""
+
+#: backend/plustek.c:1008
+#, no-c-format
+msgid "Red offset value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1016
+#, no-c-format
+msgid "Green gain value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1024
+#, no-c-format
+msgid "Green offset value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1032
+#, no-c-format
+msgid "Blue gain value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1040
+#, no-c-format
+msgid "Blue offset value of the AFE"
+msgstr ""
+
+#: backend/plustek.c:1047
+#, no-c-format
+msgid "Red lamp off"
+msgstr "Kırmızı lamba kapalı"
+
+#: backend/plustek.c:1048
+#, no-c-format
+msgid "Defines red lamp off parameter"
+msgstr "Kırmızı lamba kapalı parametresini tanımlar"
+
+#: backend/plustek.c:1055
+#, no-c-format
+msgid "Green lamp off"
+msgstr "Yeşil lamba kapalı"
+
+#: backend/plustek.c:1056
+#, no-c-format
+msgid "Defines green lamp off parameter"
+msgstr "Yeşil lamba kapalı parametresini tanımlar"
+
+#: backend/plustek.c:1063
+#, no-c-format
+msgid "Blue lamp off"
+msgstr "Mavi lamba kapalı"
+
+#: backend/plustek.c:1064
+#, no-c-format
+msgid "Defines blue lamp off parameter"
+msgstr "Mavi lamba kapalı parametresini tanımlar"
+
+#: backend/plustek.c:1094
+#, no-c-format
+msgid "This option reflects the status of the scanner buttons."
+msgstr ""
+
+#: backend/plustek_pp.c:195
+#, no-c-format
+msgid "Color36"
+msgstr ""
+
+#: backend/plustek_pp.c:209
+#, no-c-format
+msgid "Dithermap 1"
+msgstr ""
+
+#: backend/plustek_pp.c:210
+#, no-c-format
+msgid "Dithermap 2"
+msgstr ""
+
+#: backend/plustek_pp.c:211
+#, no-c-format
+msgid "Randomize"
+msgstr ""
+
+#: backend/pnm.c:166
+#, no-c-format
+msgid "Source Selection"
+msgstr ""
+
+#: backend/pnm.c:203
+#, no-c-format
+msgid "Image Enhancement"
+msgstr "Görsel iyileştirme"
+
+#: backend/pnm.c:239
+#, no-c-format
+msgid "Grayify"
+msgstr ""
+
+#: backend/pnm.c:240
+#, no-c-format
+msgid "Load the image as grayscale."
+msgstr ""
+
+#: backend/pnm.c:251
+#, no-c-format
+msgid "Three-Pass Simulation"
+msgstr ""
+
+#: backend/pnm.c:253
+#, no-c-format
+msgid ""
+"Simulate a three-pass scanner by returning 3 separate frames. For "
+"kicks, it returns green, then blue, then red."
+msgstr ""
+
+#: backend/pnm.c:265
+#, no-c-format
+msgid "Hand-Scanner Simulation"
+msgstr ""
+
+#: backend/pnm.c:266
+#, no-c-format
+msgid ""
+"Simulate a hand-scanner. Hand-scanners often do not know the image "
+"height a priori. Instead, they return a height of -1. Setting this "
+"option allows one to test whether a frontend can handle this correctly."
+msgstr ""
+
+#: backend/pnm.c:281
+#, no-c-format
+msgid ""
+"Set default values for enhancement controls (brightness & contrast)."
+msgstr ""
+"İyileştirme denetimleri için öntanımlı değerleri ayarlayın (parlaklık ve "
+"karşıtlık)."
+
+#: backend/pnm.c:293
+#, no-c-format
+msgid "Read only test-option"
+msgstr ""
+
+#: backend/pnm.c:294
+#, no-c-format
+msgid "Let's see whether frontends can treat this right"
+msgstr ""
+
+#: backend/pnm.c:305
+#, no-c-format
+msgid "Gamma Tables"
+msgstr ""
+
+#: backend/pnm.c:377
+#, no-c-format
+msgid "Status Code Simulation"
+msgstr ""
+
+#: backend/pnm.c:389
+#, no-c-format
+msgid "Do not force status code"
+msgstr ""
+
+#: backend/pnm.c:390
+#, no-c-format
+msgid "Do not force the backend to return a status code."
+msgstr ""
+
+#: backend/pnm.c:401
+#, no-c-format
+msgid "Return SANE_STATUS_EOF"
+msgstr ""
+
+#: backend/pnm.c:402
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_EOF after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:414
+#, no-c-format
+msgid "Return SANE_STATUS_JAMMED"
+msgstr ""
+
+#: backend/pnm.c:416
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_JAMMED after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:428
+#, no-c-format
+msgid "Return SANE_STATUS_NO_DOCS"
+msgstr ""
+
+#: backend/pnm.c:429
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_NO_DOCS after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:441
+#, no-c-format
+msgid "Return SANE_STATUS_COVER_OPEN"
+msgstr ""
+
+#: backend/pnm.c:442
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:454
+#, no-c-format
+msgid "Return SANE_STATUS_IO_ERROR"
+msgstr ""
+
+#: backend/pnm.c:455
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_IO_ERROR after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:467
+#, no-c-format
+msgid "Return SANE_STATUS_NO_MEM"
+msgstr ""
+
+#: backend/pnm.c:469
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_NO_MEM after "
+"sane_read() has been called."
+msgstr ""
+
+#: backend/pnm.c:481
+#, no-c-format
+msgid "Return SANE_STATUS_ACCESS_DENIED"
+msgstr ""
+
+#: backend/pnm.c:482
+#, no-c-format
+msgid ""
+"Force the backend to return the status code SANE_STATUS_ACCESS_DENIED "
+"after sane_read() has been called."
+msgstr ""
+
+#: backend/rts8891.c:2835
+#, no-c-format
+msgid "This option reflects the status of a scanner button."
+msgstr ""
+
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
+#, no-c-format
+msgid "Lamp on"
+msgstr "Lamba açık"
+
+#: backend/rts8891.c:2867 backend/umax.c:5794
+#, no-c-format
+msgid "Turn on scanner lamp"
+msgstr "Tarayıcı lambasını aç"
+
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
+#, no-c-format
+msgid "Lamp off"
+msgstr "Lamba kapalı"
+
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
+#, no-c-format
+msgid "Turn off scanner lamp"
+msgstr "Tarayıcı lambasını kapat"
+
+#: backend/sm3840.c:759
+#, no-c-format
+msgid "Lamp timeout"
+msgstr "Lamba zaman aşımı"
+
+#: backend/sm3840.c:761
+#, no-c-format
+msgid "Minutes until lamp is turned off after scan"
+msgstr "Tarama sonrası lambanın kapatılacağı dakika süresi"
+
+#: backend/sm3840.c:771
+#, no-c-format
+msgid "Threshold value for lineart mode"
+msgstr ""
+
+#: backend/snapscan-options.c:88
+#, no-c-format
+msgid "Document Feeder"
+msgstr ""
+
+#: backend/snapscan-options.c:92
+#, no-c-format
+msgid "6x4 (inch)"
+msgstr ""
+
+#: backend/snapscan-options.c:93
+#, no-c-format
+msgid "8x10 (inch)"
+msgstr ""
+
+#: backend/snapscan-options.c:94
+#, no-c-format
+msgid "8.5x11 (inch)"
+msgstr ""
+
+#: backend/snapscan-options.c:97
+#, no-c-format
+msgid "Halftoning Unsupported"
+msgstr ""
+
+#: backend/snapscan-options.c:98
+#, no-c-format
+msgid "DispersedDot8x8"
+msgstr ""
+
+#: backend/snapscan-options.c:99
+#, no-c-format
+msgid "DispersedDot16x16"
+msgstr ""
+
+#: backend/snapscan-options.c:103
+#, no-c-format
+msgid ""
+"Number of scan lines to request in a SCSI read. Changing this parameter "
+"allows you to tune the speed at which data is read from the scanner "
+"during scans. If this is set too low, the scanner will have to stop "
+"periodically in the middle of a scan; if it's set too high, X-based "
+"frontends may stop responding to X events and your system could bog down."
+msgstr ""
+
+#: backend/snapscan-options.c:111
+#, no-c-format
+msgid "Frame number of media holder that should be scanned."
+msgstr ""
+
+#: backend/snapscan-options.c:114
+#, no-c-format
+msgid "Use manual or automatic selection of focus point."
+msgstr ""
+
+#: backend/snapscan-options.c:117
+#, no-c-format
+msgid "Focus point for scanning."
+msgstr ""
+
+#: backend/snapscan-options.c:496
+#, no-c-format
+msgid "Preview mode"
+msgstr ""
+
+#: backend/snapscan-options.c:498
+#, no-c-format
+msgid ""
+"Select the mode for previews. Greyscale previews usually give the best "
+"combination of speed and detail."
+msgstr ""
+
+#: backend/snapscan-options.c:615
+#, no-c-format
+msgid "Predefined settings"
+msgstr ""
+
+#: backend/snapscan-options.c:617
+#, no-c-format
+msgid ""
+"Provides standard scanning areas for photographs, printed pages and the "
+"like."
+msgstr ""
+
+#: backend/snapscan-options.c:898
+#, no-c-format
+msgid "Frame"
+msgstr ""
+
+#: backend/snapscan-options.c:899
+#, no-c-format
+msgid "Frame to be scanned"
+msgstr ""
+
+#: backend/snapscan-options.c:911
+#, no-c-format
+msgid "Focus-mode"
+msgstr ""
+
+#: backend/snapscan-options.c:912
+#, no-c-format
+msgid "Auto or manual focus"
+msgstr ""
+
+#: backend/snapscan-options.c:925
+#, no-c-format
+msgid "Focus-point"
+msgstr ""
+
+#: backend/snapscan-options.c:926
+#, no-c-format
+msgid "Focus point"
+msgstr ""
+
+#: backend/snapscan-options.c:944
+#, no-c-format
+msgid "Color lines per read"
+msgstr ""
+
+#: backend/snapscan-options.c:956
+#, no-c-format
+msgid "Grayscale lines per read"
+msgstr ""
+
+#: backend/stv680.c:971
+#, no-c-format
+msgid "webcam"
+msgstr ""
+
+#: backend/stv680.h:109
+#, no-c-format
+msgid "Color RAW"
+msgstr ""
+
+#: backend/stv680.h:110
+#, no-c-format
+msgid "Color RGB"
+msgstr ""
+
+#: backend/stv680.h:111
+#, no-c-format
+msgid "Color RGB TEXT"
+msgstr ""
+
+#: backend/test.c:141
+#, no-c-format
+msgid "Solid black"
+msgstr ""
+
+#: backend/test.c:141
+#, no-c-format
+msgid "Solid white"
+msgstr ""
+
+#: backend/test.c:142
+#, no-c-format
+msgid "Color pattern"
+msgstr ""
+
+#: backend/test.c:142
+#, no-c-format
+msgid "Grid"
+msgstr ""
+
+#: backend/test.c:167 backend/test.c:175
+#, no-c-format
+msgid "First entry"
+msgstr ""
+
+#: backend/test.c:167 backend/test.c:175
+#, no-c-format
+msgid "Second entry"
+msgstr ""
+
+#: backend/test.c:169
+#, no-c-format
+msgid ""
+"This is the very long third entry. Maybe the frontend has an idea how to "
+"display it"
+msgstr ""
+
+#: backend/test.c:419
+#, no-c-format
+msgid "Hand-scanner simulation"
+msgstr ""
+
+#: backend/test.c:420
+#, no-c-format
+msgid ""
+"Simulate a hand-scanner. Hand-scanners do not know the image height a "
+"priori. Instead, they return a height of -1. Setting this option "
+"allows one to test whether a frontend can handle this correctly. This "
+"option also enables a fixed width of 11 cm."
+msgstr ""
+
+#: backend/test.c:437
+#, no-c-format
+msgid "Three-pass simulation"
+msgstr ""
+
+#: backend/test.c:438
+#, no-c-format
+msgid ""
+"Simulate a three-pass scanner. In color mode, three frames are "
+"transmitted."
+msgstr ""
+
+#: backend/test.c:453
+#, no-c-format
+msgid "Set the order of frames"
+msgstr ""
+
+#: backend/test.c:454
+#, no-c-format
+msgid "Set the order of frames in three-pass color mode."
+msgstr ""
+
+#: backend/test.c:487
+#, no-c-format
+msgid ""
+"If Automatic Document Feeder is selected, the feeder will be 'empty' "
+"after 10 scans."
+msgstr ""
+
+#: backend/test.c:502
+#, no-c-format
+msgid "Special Options"
+msgstr ""
+
+#: backend/test.c:515
+#, no-c-format
+msgid "Select the test picture"
+msgstr ""
+
+#: backend/test.c:517
+#, no-c-format
+msgid ""
+"Select the kind of test picture. Available options:\n"
+"Solid black: fills the whole scan with black.\n"
+"Solid white: fills the whole scan with white.\n"
+"Color pattern: draws various color test patterns depending on the mode.\n"
+"Grid: draws a black/white grid with a width and height of 10 mm per "
+"square."
+msgstr ""
+
+#: backend/test.c:538
+#, no-c-format
+msgid "Invert endianness"
+msgstr ""
+
+#: backend/test.c:539
+#, no-c-format
+msgid ""
+"Exchange upper and lower byte of image data in 16 bit modes. This option "
+"can be used to test the 16 bit modes of frontends, e.g. if the frontend "
+"uses the correct endianness."
+msgstr ""
+
+#: backend/test.c:555
+#, no-c-format
+msgid "Read limit"
+msgstr ""
+
+#: backend/test.c:556
+#, no-c-format
+msgid "Limit the amount of data transferred with each call to sane_read()."
+msgstr ""
+
+#: backend/test.c:569
+#, no-c-format
+msgid "Size of read-limit"
+msgstr ""
+
+#: backend/test.c:570
+#, no-c-format
+msgid ""
+"The (maximum) amount of data transferred with each call to sane_read()."
+msgstr ""
+
+#: backend/test.c:585
+#, no-c-format
+msgid "Read delay"
+msgstr ""
+
+#: backend/test.c:586
+#, no-c-format
+msgid "Delay the transfer of data to the pipe."
+msgstr ""
+
+#: backend/test.c:598
+#, no-c-format
+msgid "Duration of read-delay"
+msgstr ""
+
+#: backend/test.c:599
+#, no-c-format
+msgid ""
+"How long to wait after transferring each buffer of data through the pipe."
+msgstr ""
+
+#: backend/test.c:614
+#, no-c-format
+msgid "Return-value of sane_read"
+msgstr ""
+
+#: backend/test.c:616
+#, no-c-format
+msgid ""
+"Select the return-value of sane_read(). \"Default\" is the normal "
+"handling for scanning. All other status codes are for testing how the "
+"frontend handles them."
+msgstr ""
+
+#: backend/test.c:633
+#, no-c-format
+msgid "Loss of pixels per line"
+msgstr ""
+
+#: backend/test.c:635
+#, no-c-format
+msgid "The number of pixels that are wasted at the end of each line."
+msgstr ""
+
+#: backend/test.c:648
+#, no-c-format
+msgid "Fuzzy parameters"
+msgstr ""
+
+#: backend/test.c:649
+#, no-c-format
+msgid ""
+"Return fuzzy lines and bytes per line when sane_parameters() is called "
+"before sane_start()."
+msgstr ""
+
+#: backend/test.c:676
+#, no-c-format
+msgid "Offer select file descriptor"
+msgstr ""
+
+#: backend/test.c:677
+#, no-c-format
+msgid ""
+"Offer a select filedescriptor for detecting if sane_read() will return "
+"data."
+msgstr ""
+
+#: backend/test.c:690
+#, no-c-format
+msgid "Enable test options"
+msgstr ""
+
+#: backend/test.c:691
+#, no-c-format
+msgid ""
+"Enable various test options. This is for testing the ability of "
+"frontends to view and modify all the different SANE option types."
+msgstr ""
+
+#: backend/test.c:705
+#, no-c-format
+msgid "Print options"
+msgstr ""
+
+#: backend/test.c:706
+#, no-c-format
+msgid "Print a list of all options."
+msgstr ""
+
+#: backend/test.c:783
+#, no-c-format
+msgid "Bool test options"
+msgstr ""
+
+#: backend/test.c:796
+#, no-c-format
+msgid "(1/6) Bool soft select soft detect"
+msgstr ""
+
+#: backend/test.c:798
+#, no-c-format
+msgid ""
+"(1/6) Bool test option that has soft select and soft detect (and "
+"advanced) capabilities. That's just a normal bool option."
+msgstr ""
+
+#: backend/test.c:814
+#, no-c-format
+msgid "(2/6) Bool hard select soft detect"
+msgstr ""
+
+#: backend/test.c:816
+#, no-c-format
+msgid ""
+"(2/6) Bool test option that has hard select and soft detect (and "
+"advanced) capabilities. That means the option can't be set by the "
+"frontend but by the user (e.g. by pressing a button at the device)."
+msgstr ""
+
+#: backend/test.c:833
+#, no-c-format
+msgid "(3/6) Bool hard select"
+msgstr ""
+
+#: backend/test.c:834
+#, no-c-format
+msgid ""
+"(3/6) Bool test option that has hard select (and advanced) capabilities. "
+"That means the option can't be set by the frontend but by the user (e.g. "
+"by pressing a button at the device) and can't be read by the frontend."
+msgstr ""
+
+#: backend/test.c:852
+#, no-c-format
+msgid "(4/6) Bool soft detect"
+msgstr ""
+
+#: backend/test.c:853
+#, no-c-format
+msgid ""
+"(4/6) Bool test option that has soft detect (and advanced) capabilities. "
+"That means the option is read-only."
+msgstr ""
+
+#: backend/test.c:869
+#, no-c-format
+msgid "(5/6) Bool soft select soft detect emulated"
+msgstr ""
+
+#: backend/test.c:870
+#, no-c-format
+msgid ""
+"(5/6) Bool test option that has soft select, soft detect, and emulated "
+"(and advanced) capabilities."
+msgstr ""
+
+#: backend/test.c:886
+#, no-c-format
+msgid "(6/6) Bool soft select soft detect auto"
+msgstr ""
+
+#: backend/test.c:887
+#, no-c-format
+msgid ""
+"(6/6) Bool test option that has soft select, soft detect, and automatic "
+"(and advanced) capabilities. This option can be automatically set by the "
+"backend."
+msgstr ""
+
+#: backend/test.c:904
+#, no-c-format
+msgid "Int test options"
+msgstr ""
+
+#: backend/test.c:917
+#, no-c-format
+msgid "(1/7) Int"
+msgstr ""
+
+#: backend/test.c:918
+#, no-c-format
+msgid "(1/7) Int test option with no unit and no constraint set."
+msgstr ""
+
+#: backend/test.c:933
+#, no-c-format
+msgid "(2/7) Int constraint range"
+msgstr ""
+
+#: backend/test.c:934
+#, no-c-format
+msgid ""
+"(2/7) Int test option with unit pixel and constraint range set. Minimum "
+"is 4, maximum 192, and quant is 2."
+msgstr ""
+
+#: backend/test.c:950
+#, no-c-format
+msgid "(3/7) Int constraint word list"
+msgstr ""
+
+#: backend/test.c:951
+#, no-c-format
+msgid "(3/7) Int test option with unit bits and constraint word list set."
+msgstr ""
+
+#: backend/test.c:966
+#, no-c-format
+msgid "(4/7) Int array"
+msgstr ""
+
+#: backend/test.c:967
+#, no-c-format
+msgid ""
+"(4/7) Int test option with unit mm and using an array without "
+"constraints."
+msgstr ""
+
+#: backend/test.c:982
+#, no-c-format
+msgid "(5/7) Int array constraint range"
+msgstr ""
+
+#: backend/test.c:983
+#, no-c-format
+msgid ""
+"(5/7) Int test option with unit dpi and using an array with a range "
+"constraint. Minimum is 4, maximum 192, and quant is 2."
+msgstr ""
+
+#: backend/test.c:1000
+#, no-c-format
+msgid "(6/7) Int array constraint word list"
+msgstr ""
+
+#: backend/test.c:1001
+#, no-c-format
+msgid ""
+"(6/7) Int test option with unit percent and using an array with a word "
+"list constraint."
+msgstr ""
+
+#: backend/test.c:1017
+#, no-c-format
+msgid "(7/7) Int inexact"
+msgstr ""
+
+#: backend/test.c:1018
+#, no-c-format
+msgid ""
+"(7/7) Int test option that modifies the value and returns "
+"SANE_INFO_INEXACT."
+msgstr ""
+
+#: backend/test.c:1091
+#, no-c-format
+msgid "Fixed test options"
+msgstr ""
+
+#: backend/test.c:1104
+#, no-c-format
+msgid "(1/3) Fixed"
+msgstr ""
+
+#: backend/test.c:1105
+#, no-c-format
+msgid "(1/3) Fixed test option with no unit and no constraint set."
+msgstr ""
+
+#: backend/test.c:1120
+#, no-c-format
+msgid "(2/3) Fixed constraint range"
+msgstr ""
+
+#: backend/test.c:1121
+#, no-c-format
+msgid ""
+"(2/3) Fixed test option with unit microsecond and constraint range set. "
+"Minimum is -42.17, maximum 32767.9999, and quant is 2.0."
+msgstr ""
+
+#: backend/test.c:1137
+#, no-c-format
+msgid "(3/3) Fixed constraint word list"
+msgstr ""
+
+#: backend/test.c:1138
+#, no-c-format
+msgid "(3/3) Fixed test option with no unit and constraint word list set."
+msgstr ""
+
+#: backend/test.c:1153
+#, no-c-format
+msgid "String test options"
+msgstr ""
+
+#: backend/test.c:1166
+#, no-c-format
+msgid "(1/3) String"
+msgstr ""
+
+#: backend/test.c:1167
+#, no-c-format
+msgid "(1/3) String test option without constraint."
+msgstr ""
+
+#: backend/test.c:1184
+#, no-c-format
+msgid "(2/3) String constraint string list"
+msgstr ""
+
+#: backend/test.c:1185
+#, no-c-format
+msgid "(2/3) String test option with string list constraint."
+msgstr ""
+
+#: backend/test.c:1204
+#, no-c-format
+msgid "(3/3) String constraint long string list"
+msgstr ""
+
+#: backend/test.c:1205
+#, no-c-format
+msgid ""
+"(3/3) String test option with string list constraint. Contains some more "
+"entries..."
+msgstr ""
+
+#: backend/test.c:1225
+#, no-c-format
+msgid "Button test options"
+msgstr ""
+
+#: backend/test.c:1238
+#, no-c-format
+msgid "(1/1) Button"
+msgstr ""
+
+#: backend/test.c:1239
+#, no-c-format
+msgid "(1/1) Button test option. Prints some text..."
+msgstr ""
+
+#: backend/u12.c:147
+#, no-c-format
+msgid "Color 36"
+msgstr ""
+
+#: backend/umax.c:233
+#, no-c-format
+msgid "Use Image Composition"
+msgstr ""
+
+#: backend/umax.c:234
+#, no-c-format
+msgid "Bi-level black and white (lineart mode)"
+msgstr ""
+
+#: backend/umax.c:235
+#, no-c-format
+msgid "Dithered/halftone black & white (halftone mode)"
+msgstr ""
+
+#: backend/umax.c:236
+#, no-c-format
+msgid "Multi-level black & white (grayscale mode)"
+msgstr ""
+
+#: backend/umax.c:237
+#, no-c-format
+msgid "Multi-level RGB color (one pass color)"
+msgstr ""
+
+#: backend/umax.c:238
+#, no-c-format
+msgid "Ignore calibration"
+msgstr ""
+
+#: backend/umax.c:5731
+#, no-c-format
+msgid "Disable pre focus"
+msgstr ""
+
+#: backend/umax.c:5732
+#, no-c-format
+msgid "Do not calibrate focus"
+msgstr ""
+
+#: backend/umax.c:5743
+#, no-c-format
+msgid "Manual pre focus"
+msgstr ""
+
+#: backend/umax.c:5755
+#, no-c-format
+msgid "Fix focus position"
+msgstr ""
+
+#: backend/umax.c:5767
+#, no-c-format
+msgid "Lens calibration in doc position"
+msgstr ""
+
+#: backend/umax.c:5768
+#, no-c-format
+msgid "Calibrate lens focus in document position"
+msgstr ""
+
+#: backend/umax.c:5779
+#, no-c-format
+msgid "Holder focus position 0mm"
+msgstr ""
+
+#: backend/umax.c:5780
+#, no-c-format
+msgid "Use 0mm holder focus position instead of 0.6mm"
+msgstr ""
+
+#: backend/umax.c:5883
+#, no-c-format
+msgid "Calibration mode"
+msgstr ""
+
+#: backend/umax.c:5884
+#, no-c-format
+msgid "Define calibration mode"
+msgstr ""
+
+#: backend/umax_pp.c:629
+#, no-c-format
+msgid "Sets lamp on/off"
+msgstr "Lambayı açar/kapatır"
+
+#: backend/umax_pp.c:638
+#, no-c-format
+msgid "UTA on"
+msgstr ""
+
+#: backend/umax_pp.c:639
+#, no-c-format
+msgid "Sets UTA on/off"
+msgstr ""
+
+#: backend/umax_pp.c:760
+#, no-c-format
+msgid "Offset"
+msgstr ""
+
+#: backend/umax_pp.c:762
+#, no-c-format
+msgid "Color channels offset settings"
+msgstr ""
+
+#: backend/umax_pp.c:769
+#, no-c-format
+msgid "Gray offset"
+msgstr ""
+
+#: backend/umax_pp.c:770
+#, no-c-format
+msgid "Sets gray channel offset"
+msgstr ""
+
+#: backend/umax_pp.c:782
+#, no-c-format
+msgid "Sets red channel offset"
+msgstr ""
+
+#: backend/umax_pp.c:794
+#, no-c-format
+msgid "Sets green channel offset"
+msgstr ""
+
+#: backend/umax_pp.c:806
+#, no-c-format
+msgid "Sets blue channel offset"
+msgstr ""
diff --git a/po/uk.po b/po/uk.po
index 51be614..88c0cfe 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.32\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 21:48+0200\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2024-01-29 22:20+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 23.04.1\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: include/sane/saneopts.h:157
#, no-c-format
@@ -30,7 +30,7 @@ msgstr "Типово"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -46,7 +46,7 @@ msgid "Geometry"
msgstr "Позиція і розміри"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -61,7 +61,7 @@ msgstr "Покращення"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -542,7 +542,8 @@ msgstr "Визначає роздільну здатність сканован
#: include/sane/saneopts.h:302
#, no-c-format
msgid "Sets the horizontal resolution of the scanned image."
-msgstr "Визначає горизонтальну роздільну здатність засканованого зображення."
+msgstr ""
+"Визначає горизонтальну роздільну здатність засканованого зображення."
#: include/sane/saneopts.h:305
#, no-c-format
@@ -565,7 +566,8 @@ msgstr "Визначає висоту носія."
#: include/sane/saneopts.h:315
#, no-c-format
-msgid "Determines whether a builtin or a custom gamma-table should be used."
+msgid ""
+"Determines whether a builtin or a custom gamma-table should be used."
msgstr "Визначає буде використано вбудовану чи нетипову таблицю гами."
#: include/sane/saneopts.h:319
@@ -667,14 +669,17 @@ msgstr ""
#: include/sane/saneopts.h:374
#, no-c-format
-msgid "Selects what green radiance level should be considered \"full green\"."
+msgid ""
+"Selects what green radiance level should be considered \"full green\"."
msgstr ""
"Визначає рівень світності зеленого, який слід вважати «цілком зеленим»."
#: include/sane/saneopts.h:377
#, no-c-format
-msgid "Selects what blue radiance level should be considered \"full blue\"."
-msgstr "Визначає рівень світності синього, який слід вважати «цілком синім»."
+msgid ""
+"Selects what blue radiance level should be considered \"full blue\"."
+msgstr ""
+"Визначає рівень світності синього, який слід вважати «цілком синім»."
#: include/sane/saneopts.h:381
#, no-c-format
@@ -716,7 +721,8 @@ msgstr ""
#: include/sane/saneopts.h:400
#, no-c-format
msgid "Use same values for X and Y resolution"
-msgstr "Використовувати однакові значення для роздільних здатностей за X та Y"
+msgstr ""
+"Використовувати однакові значення для роздільних здатностей за X та Y"
#: include/sane/saneopts.h:402
#, no-c-format
@@ -1123,8 +1129,8 @@ msgid ""
"The top overscan controls the additional area to scan before the paper "
"is detected."
msgstr ""
-"Пересканування вгорі визначає додаткову область сканування перед виявлення"
-" початку паперу."
+"Пересканування вгорі визначає додаткову область сканування перед "
+"виявлення початку паперу."
#: backend/avision.h:94
#, no-c-format
@@ -1132,8 +1138,8 @@ msgid ""
"The bottom overscan controls the additional area to scan after the paper "
"end is detected."
msgstr ""
-"Пересканування внизу визначає додаткову область сканування після виявлення"
-" кінця паперу."
+"Пересканування внизу визначає додаткову область сканування після "
+"виявлення кінця паперу."
#: backend/avision.h:97
#, no-c-format
@@ -1141,8 +1147,8 @@ msgid ""
"The background raster controls the additional background lines to scan "
"before the paper is feed through the scanner."
msgstr ""
-"Фоновий растр визначає додаткові фонові лінії, які слід сканувати до того,"
-" як папір буде подано до сканера."
+"Фоновий растр визначає додаткові фонові лінії, які слід сканувати до "
+"того, як папір буде подано до сканера."
#: backend/avision.h:100
#, no-c-format
@@ -1165,8 +1171,8 @@ msgid ""
"Allows control of the scanner's power save timer, dimming or turning off "
"the light."
msgstr ""
-"Надає змогу керувати таймером заощадження енергії сканера, притлумленням або"
-" вимиканням лампи."
+"Надає змогу керувати таймером заощадження енергії сканера, притлумленням "
+"або вимиканням лампи."
#: backend/avision.h:109
#, no-c-format
@@ -1174,8 +1180,8 @@ msgid ""
"This text contains device specific options controlled by the user on the "
"scanner hardware."
msgstr ""
-"Цей текст містить специфічні для пристрою параметри керування обладнанням"
-" сканера, якими керує користувач."
+"Цей текст містить специфічні для пристрою параметри керування "
+"обладнанням сканера, якими керує користувач."
#: backend/avision.h:112
#, no-c-format
@@ -1183,8 +1189,8 @@ msgid ""
"Allows access obtaining the scanner's NVRAM values as pretty printed "
"text."
msgstr ""
-"Уможливлює доступ до отримання значень NVRAM сканера у вигляді форматованого"
-" тексту."
+"Уможливлює доступ до отримання значень NVRAM сканера у вигляді "
+"форматованого тексту."
#: backend/avision.h:115
#, no-c-format
@@ -1193,9 +1199,9 @@ msgid ""
"However some others (DM152) can get confused during media flush if it is "
"set."
msgstr ""
-"Новіші сканери здатні використовувати цю довжину паперу для виявлення подачі"
-" двох аркушів. Втім, деякі інші сканери (DM152) можуть неправильно сприйняти"
-" значення цього параметра, якщо його встановлено."
+"Новіші сканери здатні використовувати цю довжину паперу для виявлення "
+"подачі двох аркушів. Втім, деякі інші сканери (DM152) можуть неправильно "
+"сприйняти значення цього параметра, якщо його встановлено."
#: backend/avision.h:118
#, no-c-format
@@ -1205,10 +1211,11 @@ msgid ""
"this off might make scanning a little faster if you don't care about "
"manually flipping the pages afterwards."
msgstr ""
-"Наказує сканерам із перевертанням сторінок документа повернути папір до"
-" початкової орієнтації до викидання його до лотка опрацьованих документів."
-" Вимикання такого перевертання може дещо пришвидшити сканування, якщо ви"
-" повертаєте аркуші документа до початкового стану вручну."
+"Наказує сканерам із перевертанням сторінок документа повернути папір до "
+"початкової орієнтації до викидання його до лотка опрацьованих "
+"документів. Вимикання такого перевертання може дещо пришвидшити "
+"сканування, якщо ви повертаєте аркуші документа до початкового стану "
+"вручну."
#: backend/avision.h:123
#, no-c-format
@@ -1237,7 +1244,8 @@ msgstr "Двобічне сканування"
#: backend/avision.h:902
#, no-c-format
-msgid "Duplex scan provides a scan of the front and back side of the document"
+msgid ""
+"Duplex scan provides a scan of the front and back side of the document"
msgstr ""
"За використання двобічного сканування ви отримаєте одразу зображення "
"лицьового та зворотного боків документа"
@@ -1439,7 +1447,8 @@ msgstr "Помилка парності SCSI"
#: backend/canon.c:502
#, no-c-format
msgid "initiator detected error message received"
-msgstr "Отримано повідомлення про помилку виявлення інструменту ініціалізації"
+msgstr ""
+"Отримано повідомлення про помилку виявлення інструменту ініціалізації"
#: backend/canon.c:507
#, no-c-format
@@ -1615,7 +1624,8 @@ msgstr "Виштовхувати плівку після кожного скан
#: backend/canon.c:1678
#, no-c-format
msgid "Automatically eject the film from the device after each scan"
-msgstr "Автоматично виштовхувати плівку з пристрою після кожного сканування"
+msgstr ""
+"Автоматично виштовхувати плівку з пристрою після кожного сканування"
#: backend/canon.c:1689
#, no-c-format
@@ -1653,7 +1663,8 @@ msgstr "Лише планшетний"
#: backend/canon.c:1717
#, no-c-format
msgid "Disable auto document feeder and use flatbed only"
-msgstr "Вимкнути автоматичну подачу, використовувати лише планшетний механізм"
+msgstr ""
+"Вимкнути автоматичну подачу, використовувати лише планшетний механізм"
#: backend/canon.c:1727 backend/canon.c:1737
#, no-c-format
@@ -1746,7 +1757,7 @@ msgstr "Визначити криву виправлення гами"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1870,30 +1881,30 @@ msgstr "Чорне на зображенні"
msgid "White-on-Black"
msgstr "Біле на чорному"
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "Порогове значення порожніх сторінок для програмного відкидання"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr ""
"Вимагати від драйвера відкидання сторінок з надто низькою питомою "
"кількістю темних пікселів"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, no-c-format
msgid "Imprinter Options"
msgstr "Параметри наддруку"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr "Керування одиницям наддруку"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1919,14 +1930,14 @@ msgstr ""
"підтримується оболонкою."
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "Однобічна"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "Двобічна"
@@ -1938,7 +1949,7 @@ msgid "Transparency Unit"
msgstr "Модуль для слайдів"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2304,13 +2315,13 @@ msgid "Eject document after scanning"
msgstr "Виштовхнути документ після сканування"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "Режим протяжного пристрою"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "Визначає режим протяжного пристрою (однобічний/двобічний)"
@@ -2342,7 +2353,8 @@ msgstr "Позиція фокусування"
#: backend/epson.h:71 backend/epson2.h:75
#, no-c-format
-msgid "Sets the focus position to either the glass or 2.5mm above the glass"
+msgid ""
+"Sets the focus position to either the glass or 2.5mm above the glass"
msgstr ""
"Визначає позицію фокусування на рівень від поверхні скла до висоти 2,5 "
"мм над склом"
@@ -2658,7 +2670,8 @@ msgstr "Порогова крива"
#: backend/fujitsu.c:3425
#, no-c-format
-msgid "Threshold curve, from light to dark, but upper two may not be linear"
+msgid ""
+"Threshold curve, from light to dark, but upper two may not be linear"
msgstr ""
"Порогова крива, від світлого до темного, але верхні дві не можуть бути "
"лінійними"
@@ -2878,7 +2891,8 @@ msgstr "Колір тла"
#: backend/fujitsu.c:3867
#, no-c-format
-msgid "Set color of background for scans. May conflict with overscan option"
+msgid ""
+"Set color of background for scans. May conflict with overscan option"
msgstr ""
"Встановити колір для тла сканованих зображень. Може конфліктувати із "
"параметром полів."
@@ -2945,7 +2959,8 @@ msgstr "Таймер присипляння"
#: backend/fujitsu.c:3971
#, no-c-format
-msgid "Time in minutes until the internal power supply switches to sleep mode"
+msgid ""
+"Time in minutes until the internal power supply switches to sleep mode"
msgstr ""
"Час у хвилинах, по завершенню якого внутрішнє живлення буде переведено у "
"режим сну"
@@ -3360,39 +3375,39 @@ msgstr "Набирач щільності"
msgid "Duplex switch"
msgstr "Перемикач двобічного"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "Додаткові"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "Фільтр кольору"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr ""
"За використання друку у півтонах або штрихового друку за допомогою цього "
"пункту можна обрати колір друку."
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "Файл калібрування"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "Вкажіть файл даних калібрування, які буде використано"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "Строк дії кешу калібрування"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3403,12 +3418,12 @@ msgstr ""
"Від’ємні значення означають, що обмежень на строк дії кешу не "
"накладатиметься."
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "Час вимикання лампи"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3417,117 +3432,117 @@ msgstr ""
"Лампу буде вимкнено, коли спливе вказаний час (у хвилинах). Значення "
"рівне 0 означатиме, що лампа не вимикатиметься."
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "Вимикання лампи під час сканування"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "Лампу буде вимкнено під час сканування. "
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "Кнопка «File»"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "Кнопка «OCR»"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "Кнопка «Power»"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "Додаткова кнопка"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, no-c-format
msgid "Transparency button"
msgstr "Кнопка прозорості"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, no-c-format
msgid "PDF function button 1"
msgstr "Функціональна кнопка PDF 1"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, no-c-format
msgid "PDF function button 2"
msgstr "Функціональна кнопка PDF 2"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, no-c-format
msgid "PDF function button 3"
msgstr "Функціональна кнопка PDF 3"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, no-c-format
msgid "PDF function button 4"
msgstr "Функціональна кнопка PDF 4"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "Потребує калібрування"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "Для застосування поточних параметрів потрібне калібрування"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "Кнопки"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "Відкалібрувати"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "Почати калібрування за допомогою спеціального аркуша"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "Спорожнити дані калібрування"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "Спорожнити кеш калібрування"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "Примусове калібрування"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr ""
"Примусове калібрування з ігноруванням усіх кешованих даних калібрування"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "Ігнорувати внутрішні відступи"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -4354,7 +4369,8 @@ msgstr "Документ доступний у АПД"
#: backend/hp5590.c:126
#, no-c-format
msgid "Get state of document-available indicator in ADF (read only)"
-msgstr "Отримати стан індикатора доступності документа у АПД (лише читання)"
+msgstr ""
+"Отримати стан індикатора доступності документа у АПД (лише читання)"
#: backend/hp5590.c:128
#, no-c-format
@@ -4363,7 +4379,8 @@ msgstr "Приховувати кінцевий піксель сторінки"
#: backend/hp5590.c:129
#, no-c-format
-msgid "Hide end-of-page indicator pixels and overwrite with neighbor pixels"
+msgid ""
+"Hide end-of-page indicator pixels and overwrite with neighbor pixels"
msgstr ""
"Приховувати пікселі-індикатори кінця сторінки і перезаписувати їх "
"сусідніми пікселями"
@@ -4386,7 +4403,8 @@ msgstr ""
#: backend/hp5590.c:135
#, no-c-format
msgid "RGB or gray color value for filling mode 'color'"
-msgstr "Значення кольору у RGB або тонах сірого для режиму заповнення «color»"
+msgstr ""
+"Значення кольору у RGB або тонах сірого для режиму заповнення «color»"
#: backend/hp5590.c:136
#, no-c-format
@@ -4840,7 +4858,8 @@ msgstr "Обернути зображення за год. стрілкою"
#: backend/kvs1025_opt.c:861
#, no-c-format
msgid "Request driver to rotate pages by a fixed amount"
-msgstr "Вимагати від драйвера обертання сторінок на фіксований вказаний кут"
+msgstr ""
+"Вимагати від драйвера обертання сторінок на фіксований вказаний кут"
#: backend/kvs1025_opt.c:873
#, no-c-format
@@ -5304,7 +5323,8 @@ msgstr "Калібрування програмою обробки"
#: backend/microtek2.h:615
#, no-c-format
-msgid "If checked the color calibration before a scan is done by the backend"
+msgid ""
+"If checked the color calibration before a scan is done by the backend"
msgstr ""
"Якщо позначено цей пункт, калібрування кольорів перед скануванням "
"виконується програмою обробки"
@@ -5383,7 +5403,8 @@ msgstr "Скалярна гама червоного"
#: backend/microtek2.h:653
#, no-c-format
msgid "Selects a value for scalar gamma correction (red channel)"
-msgstr "Визначає значення для скалярного виправлення гами (канал червоного)."
+msgstr ""
+"Визначає значення для скалярного виправлення гами (канал червоного)."
#: backend/microtek2.h:657
#, no-c-format
@@ -5393,7 +5414,8 @@ msgstr "Скалярна гама зеленого"
#: backend/microtek2.h:658
#, no-c-format
msgid "Selects a value for scalar gamma correction (green channel)"
-msgstr "Визначає значення для скалярного виправлення гами (канал зеленого)."
+msgstr ""
+"Визначає значення для скалярного виправлення гами (канал зеленого)."
#: backend/microtek2.h:662
#, no-c-format
@@ -5414,7 +5436,8 @@ msgstr "Канал"
#, no-c-format
msgid ""
"Selects the colour band, \"Master\" means that all colours are affected."
-msgstr "Визначає зв’язок кольорів. «Основний» визначає зв’язок всіх кольорів."
+msgstr ""
+"Визначає зв’язок кольорів. «Основний» визначає зв’язок всіх кольорів."
#: backend/microtek2.h:672
#, no-c-format
@@ -5906,11 +5929,11 @@ msgstr ""
"автоматичної подачі документів, протягом вказаної кількості секунд."
#: backend/pixma/pixma_sane_options.c:407
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"When to perform scanner calibration. If you choose \"Once\" it will be "
"performed a single time per driver init for single page scans, and for "
-"the first page for each ADF scans."
+"the first page for each ADF scan."
msgstr ""
"Визначає, коли слід виконувати калібрування сканера. Якщо ви виберете "
"«Лише раз», його буде виконано один раз під час ініціалізації сканера "
@@ -6140,7 +6163,8 @@ msgstr ""
#: backend/pnm.c:281
#, no-c-format
-msgid "Set default values for enhancement controls (brightness & contrast)."
+msgid ""
+"Set default values for enhancement controls (brightness & contrast)."
msgstr ""
"Встановити типові значення керування покращенням (яскравістю і "
"контрастністю)."
@@ -6273,27 +6297,27 @@ msgstr ""
"Наказати серверу повертати код стану SANE_STATUS_ACCESS_DENIED після "
"виклику sane_read()."
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "Цей пункт відповідає стану кнопки сканування."
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "Увімкнути лампу"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "Увімкнути лампу сканера"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "Вимкнути лампу"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "Вимкнути лампу сканера"
@@ -6503,7 +6527,8 @@ msgstr "Другий запис"
msgid ""
"This is the very long third entry. Maybe the frontend has an idea how to "
"display it"
-msgstr "Третій запис є затримується. Можливо, оболонка не може його показати."
+msgstr ""
+"Третій запис є затримується. Можливо, оболонка не може його показати."
#: backend/test.c:419
#, no-c-format
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 74386ac..1206d5d 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sane-backends 1.0.32.60-2b0e4\n"
"Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n"
-"POT-Creation-Date: 2024-01-29 10:10-0800\n"
+"POT-Creation-Date: 2025-04-28 10:20-0700\n"
"PO-Revision-Date: 2024-02-01 11:19+0800\n"
"Last-Translator: Tyson Tan <tds00@qq.com>\n"
"Language-Team: Chinese <kde-i18n-doc@kde.org>\n"
@@ -29,7 +29,7 @@ msgstr "标准"
#: include/sane/saneopts.h:160 backend/artec_eplus48u.c:2873
#: backend/canon_lide70.c:416 backend/epson.c:3296 backend/epson2.c:1281
-#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4593
+#: backend/epsonds.c:1978 backend/genesys/genesys.cpp:4594
#: backend/gt68xx.c:694 backend/hp-option.c:3295 backend/hp3500.c:1017
#: backend/kvs1025_opt.c:639 backend/kvs20xx_opt.c:285
#: backend/kvs40xx_opt.c:501 backend/leo.c:820 backend/lexmark.c:197
@@ -45,7 +45,7 @@ msgid "Geometry"
msgstr "尺寸"
#: include/sane/saneopts.h:161 backend/artec_eplus48u.c:2794
-#: backend/canon.c:1507 backend/genesys/genesys.cpp:4636
+#: backend/canon.c:1507 backend/genesys/genesys.cpp:4637
#: backend/gt68xx.c:663 backend/hp-option.c:2951 backend/kvs1025_opt.c:703
#: backend/leo.c:868 backend/ma1509.c:597 backend/matsushita.c:1186
#: backend/microtek2.h:598 backend/mustek.c:4400 backend/mustek_usb.c:347
@@ -60,7 +60,7 @@ msgstr "增强"
#: include/sane/saneopts.h:162 backend/epson.c:3195 backend/epson2.c:1206
#: backend/kvs20xx_opt.c:366 backend/kvs40xx_opt.c:592
-#: backend/rts8891.c:2831 backend/snapscan-options.c:937
+#: backend/rts8891.c:2857 backend/snapscan-options.c:937
#: backend/umax.c:5563
#, no-c-format
msgid "Advanced"
@@ -485,8 +485,8 @@ msgid ""
"Number of bits per sample, typical values are 1 for \"line-art\" and 8 "
"for multibit scans."
msgstr ""
-"每个采样像素的色彩位深。 "
-"“线稿”模式的典型数值为 1,多位扫描的典型数值为 8。"
+"每个采样像素的色彩位深。 “线稿”模式的典型数值为 1,多位扫描的典型数值为 "
+"8。"
#: include/sane/saneopts.h:275
#, no-c-format
@@ -557,7 +557,8 @@ msgstr "指定媒介的高度。"
#: include/sane/saneopts.h:315
#, no-c-format
-msgid "Determines whether a builtin or a custom gamma-table should be used."
+msgid ""
+"Determines whether a builtin or a custom gamma-table should be used."
msgstr "决定使用内建还是自定义伽玛值表。"
#: include/sane/saneopts.h:319
@@ -654,12 +655,14 @@ msgstr "选择被视作纯红的红通道亮度级别。"
#: include/sane/saneopts.h:374
#, no-c-format
-msgid "Selects what green radiance level should be considered \"full green\"."
+msgid ""
+"Selects what green radiance level should be considered \"full green\"."
msgstr "选择被视作纯绿的绿通道亮度级别。"
#: include/sane/saneopts.h:377
#, no-c-format
-msgid "Selects what blue radiance level should be considered \"full blue\"."
+msgid ""
+"Selects what blue radiance level should be considered \"full blue\"."
msgstr "选择被视作纯蓝的蓝通道亮度级别。"
#: include/sane/saneopts.h:381
@@ -672,7 +675,8 @@ msgstr "控制捕获图像的色相 (蓝度)。"
msgid ""
"The saturation level controls the amount of \"blooming\" that occurs "
"when acquiring an image with a camera. Larger values cause more blooming."
-msgstr "饱和度级别控制使用相机捕获图像时的颜色鲜艳程度。数值越大,颜色越鲜艳。"
+msgstr ""
+"饱和度级别控制使用相机捕获图像时的颜色鲜艳程度。数值越大,颜色越鲜艳。"
#: include/sane/saneopts.h:389
#, no-c-format
@@ -1157,8 +1161,8 @@ msgid ""
"However some others (DM152) can get confused during media flush if it is "
"set."
msgstr ""
-"较新款的扫描仪可以使用此纸张长度来检测双张进纸。 "
-"但某些其他扫描仪 (DM152) 在设置此选项后可能会在媒体清除时出错。 "
+"较新款的扫描仪可以使用此纸张长度来检测双张进纸。 但某些其他扫描仪 "
+"(DM152) 在设置此选项后可能会在媒体清除时出错。 "
#: backend/avision.h:118
#, no-c-format
@@ -1168,9 +1172,8 @@ msgid ""
"this off might make scanning a little faster if you don't care about "
"manually flipping the pages afterwards."
msgstr ""
-"让页面翻转文稿扫描仪在排出纸张之前先将它翻转回原始朝向。 "
-"如果您不介意在扫描后人工把纸张翻转回来, "
-"关闭此选项可能会让扫描速度略微加快。"
+"让页面翻转文稿扫描仪在排出纸张之前先将它翻转回原始朝向。 如果您不介意在扫"
+"描后人工把纸张翻转回来, 关闭此选项可能会让扫描速度略微加快。"
#: backend/avision.h:123
#, no-c-format
@@ -1199,7 +1202,8 @@ msgstr "双向扫描"
#: backend/avision.h:902
#, no-c-format
-msgid "Duplex scan provides a scan of the front and back side of the document"
+msgid ""
+"Duplex scan provides a scan of the front and back side of the document"
msgstr "双向扫描将同时扫描文稿的正反两面"
#: backend/canon-sane.c:674 backend/canon.c:169
@@ -1582,7 +1586,8 @@ msgstr "退出程序前退出胶片"
#: backend/canon.c:1690
#, no-c-format
-msgid "Automatically eject the film from the device before exiting the program"
+msgid ""
+"Automatically eject the film from the device before exiting the program"
msgstr "退出程序前自动从设备中退出胶片"
#: backend/canon.c:1699
@@ -1701,7 +1706,7 @@ msgstr "选择伽玛值校正转移曲线"
#: backend/fujitsu.c:690 backend/genesys/genesys.h:55 backend/gt68xx.c:146
#: backend/hp3900_sane.c:417 backend/hp3900_sane.c:426
#: backend/hp3900_sane.c:1016 backend/hp5590.c:90 backend/kodakaio.c:617
-#: backend/ma1509.c:106 backend/magicolor.c:181 backend/mustek.c:154
+#: backend/ma1509.c:106 backend/magicolor.c:196 backend/mustek.c:154
#: backend/mustek.c:158 backend/mustek.c:162 backend/pixma/pixma.c:1026
#: backend/pixma/pixma_sane_options.c:93 backend/snapscan-options.c:86
#: backend/test.c:232 backend/umax.c:179
@@ -1825,28 +1830,28 @@ msgstr "图像黑字"
msgid "White-on-Black"
msgstr "黑底白字"
-#: backend/canon_dr.c:2788 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
+#: backend/canon_dr.c:2790 backend/fujitsu.c:4144 backend/kvs1025_opt.c:910
#, no-c-format
msgid "Software blank skip percentage"
msgstr "软件空白页跳过百分比"
-#: backend/canon_dr.c:2789 backend/fujitsu.c:4145
+#: backend/canon_dr.c:2791 backend/fujitsu.c:4145
#, no-c-format
msgid "Request driver to discard pages with low percentage of dark pixels"
msgstr "请求驱动程序丢弃暗色比例较低的页面"
-#: backend/canon_dr.c:2908
+#: backend/canon_dr.c:2910
#, no-c-format
msgid "Imprinter Options"
msgstr "压印机选项"
-#: backend/canon_dr.c:2909
+#: backend/canon_dr.c:2911
#, no-c-format
msgid "Controls for imprinter units"
msgstr "控制压印机单元的功能"
#: backend/canon_lide70.c:342 backend/epson.c:2811 backend/epson2.c:967
-#: backend/genesys/genesys.cpp:4524 backend/gt68xx.c:449
+#: backend/genesys/genesys.cpp:4525 backend/gt68xx.c:449
#: backend/hp-option.c:2912 backend/kvs1025_opt.c:521
#: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:315 backend/ma1509.c:499
#: backend/matsushita.c:1081 backend/microtek2.h:596 backend/mustek.c:4194
@@ -1870,14 +1875,14 @@ msgid "Use non-blocking IO for sane_read() if supported by the frontend."
msgstr "如果前端程序支持,为 sane_read() 使用非块状传输。"
#: backend/epson.c:489 backend/epson2.c:104 backend/kodakaio.c:611
-#: backend/magicolor.c:174
+#: backend/magicolor.c:189
#, no-c-format
msgid "Simplex"
msgstr "单工"
#: backend/epson.c:490 backend/epson2.c:105 backend/kodakaio.c:612
#: backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:348
-#: backend/magicolor.c:175 backend/matsushita.h:212
+#: backend/magicolor.c:190 backend/matsushita.h:212
#, no-c-format
msgid "Duplex"
msgstr "双工"
@@ -1889,7 +1894,7 @@ msgid "Transparency Unit"
msgstr "透扫器"
#: backend/epson.c:501 backend/epson2-ops.c:104 backend/epson2.c:114
-#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:182
+#: backend/epsonds.h:67 backend/kodakaio.c:618 backend/magicolor.c:197
#: backend/mustek.c:158 backend/pixma/pixma.c:1031 backend/test.c:232
#: backend/umax.c:181
#, no-c-format
@@ -2253,13 +2258,13 @@ msgid "Eject document after scanning"
msgstr "扫描后退出文稿"
#: backend/epson.c:3455 backend/epson2.c:1424 backend/kodakaio.c:2857
-#: backend/magicolor.c:2454
+#: backend/magicolor.c:2497
#, no-c-format
msgid "ADF Mode"
msgstr "自动输稿器模式"
#: backend/epson.c:3457 backend/epson2.c:1426 backend/kodakaio.c:2859
-#: backend/magicolor.c:2456
+#: backend/magicolor.c:2499
#, no-c-format
msgid "Selects the ADF mode (simplex/duplex)"
msgstr "选择自动输稿器模式 (单向/双向)"
@@ -2290,7 +2295,8 @@ msgstr "对焦位置"
#: backend/epson.h:71 backend/epson2.h:75
#, no-c-format
-msgid "Sets the focus position to either the glass or 2.5mm above the glass"
+msgid ""
+"Sets the focus position to either the glass or 2.5mm above the glass"
msgstr "设置对焦位置为玻璃表面还是玻璃表面上方 2.5mm"
#: backend/epson.h:73 backend/epson2.h:77
@@ -2600,7 +2606,8 @@ msgstr "阈值曲线"
#: backend/fujitsu.c:3425
#, no-c-format
-msgid "Threshold curve, from light to dark, but upper two may not be linear"
+msgid ""
+"Threshold curve, from light to dark, but upper two may not be linear"
msgstr "阈值曲线,由亮到暗,但最上面的两项可能不是线性"
#: backend/fujitsu.c:3447
@@ -2807,7 +2814,8 @@ msgstr "背景色"
#: backend/fujitsu.c:3867
#, no-c-format
-msgid "Set color of background for scans. May conflict with overscan option"
+msgid ""
+"Set color of background for scans. May conflict with overscan option"
msgstr "设置扫描图像的背景色。可能与过扫描选项冲突"
#: backend/fujitsu.c:3887
@@ -2864,7 +2872,8 @@ msgstr "睡眠计时器"
#: backend/fujitsu.c:3971
#, no-c-format
-msgid "Time in minutes until the internal power supply switches to sleep mode"
+msgid ""
+"Time in minutes until the internal power supply switches to sleep mode"
msgstr "扫描仪内部电源切换为睡眠模式的计时器,单位为分钟"
#: backend/fujitsu.c:3989
@@ -2987,7 +2996,8 @@ msgstr "取消时挂起"
#: backend/fujitsu.c:4162
#, no-c-format
-msgid "Request driver to halt the paper feed instead of eject during a cancel."
+msgid ""
+"Request driver to halt the paper feed instead of eject during a cancel."
msgstr "请求驱动程序在取消时挂起送纸操作而不是退纸。"
#: backend/fujitsu.c:4173
@@ -3090,7 +3100,8 @@ msgstr "背书器字串"
msgid ""
"Endorser alphanumeric print format. %05ud or %08ud at the end will be "
"replaced by counter value."
-msgstr "背书器英文数字打印格式。位于末尾的 %05ud 或 %08ud 将被替换为计数器数值。"
+msgstr ""
+"背书器英文数字打印格式。位于末尾的 %05ud 或 %08ud 将被替换为计数器数值。"
#: backend/fujitsu.c:4410
#, no-c-format
@@ -3257,37 +3268,37 @@ msgstr "密度旋钮"
msgid "Duplex switch"
msgstr "双工开关"
-#: backend/genesys/genesys.cpp:4713 backend/pixma/pixma_sane_options.c:357
+#: backend/genesys/genesys.cpp:4714 backend/pixma/pixma_sane_options.c:357
#, no-c-format
msgid "Extras"
msgstr "额外设置"
-#: backend/genesys/genesys.cpp:4722
+#: backend/genesys/genesys.cpp:4723
#, no-c-format
msgid "Color filter"
msgstr "颜色滤镜"
-#: backend/genesys/genesys.cpp:4725
+#: backend/genesys/genesys.cpp:4726
#, no-c-format
msgid "When using gray or lineart this option selects the used color."
msgstr "此选项选择灰阶或线稿模式使用的颜色。"
-#: backend/genesys/genesys.cpp:4749
+#: backend/genesys/genesys.cpp:4750
#, no-c-format
msgid "Calibration file"
msgstr "校准文件"
-#: backend/genesys/genesys.cpp:4750
+#: backend/genesys/genesys.cpp:4751
#, no-c-format
msgid "Specify the calibration file to use"
msgstr "指定要使用的校准文件"
-#: backend/genesys/genesys.cpp:4767
+#: backend/genesys/genesys.cpp:4768
#, no-c-format
msgid "Calibration cache expiration time"
msgstr "校准缓存过期时间"
-#: backend/genesys/genesys.cpp:4768
+#: backend/genesys/genesys.cpp:4769
#, no-c-format
msgid ""
"Time (in minutes) before a cached calibration expires. A value of 0 "
@@ -3296,12 +3307,12 @@ msgstr ""
"已缓存校准的过期时间 (单位为分钟)。数值为 0 意味着不使用缓存。数值为负值"
"意味着缓存永不过期。"
-#: backend/genesys/genesys.cpp:4778
+#: backend/genesys/genesys.cpp:4779
#, no-c-format
msgid "Lamp off time"
msgstr "背光灯关闭时间"
-#: backend/genesys/genesys.cpp:4781
+#: backend/genesys/genesys.cpp:4782
#, no-c-format
msgid ""
"The lamp will be turned off after the given time (in minutes). A value "
@@ -3310,116 +3321,116 @@ msgstr ""
"背光灯将在经过指定的时间 (单位为分钟) 后关闭。数值为 0 时背光灯将永不关"
"闭。"
-#: backend/genesys/genesys.cpp:4791
+#: backend/genesys/genesys.cpp:4792
#, no-c-format
msgid "Lamp off during scan"
msgstr "扫描时关闭背光灯"
-#: backend/genesys/genesys.cpp:4792
+#: backend/genesys/genesys.cpp:4793
#, no-c-format
msgid "The lamp will be turned off during scan. "
msgstr "扫描时背光灯将被关闭。"
-#: backend/genesys/genesys.cpp:4819 backend/genesys/genesys.cpp:4820
+#: backend/genesys/genesys.cpp:4820 backend/genesys/genesys.cpp:4821
#, no-c-format
msgid "File button"
msgstr "文件按钮"
-#: backend/genesys/genesys.cpp:4864 backend/genesys/genesys.cpp:4865
+#: backend/genesys/genesys.cpp:4865 backend/genesys/genesys.cpp:4866
#, no-c-format
msgid "OCR button"
msgstr "光学识别按钮"
-#: backend/genesys/genesys.cpp:4876 backend/genesys/genesys.cpp:4877
+#: backend/genesys/genesys.cpp:4877 backend/genesys/genesys.cpp:4878
#, no-c-format
msgid "Power button"
msgstr "电源按钮"
-#: backend/genesys/genesys.cpp:4888 backend/genesys/genesys.cpp:4889
+#: backend/genesys/genesys.cpp:4889 backend/genesys/genesys.cpp:4890
#, no-c-format
msgid "Extra button"
msgstr "额外功能按钮"
-#: backend/genesys/genesys.cpp:4900 backend/genesys/genesys.cpp:4901
+#: backend/genesys/genesys.cpp:4901 backend/genesys/genesys.cpp:4902
#, no-c-format
msgid "Transparency button"
msgstr "透扫器按钮"
-#: backend/genesys/genesys.cpp:4912 backend/genesys/genesys.cpp:4913
+#: backend/genesys/genesys.cpp:4913 backend/genesys/genesys.cpp:4914
#, no-c-format
msgid "PDF function button 1"
msgstr "PDF 功能按钮 1"
-#: backend/genesys/genesys.cpp:4924 backend/genesys/genesys.cpp:4925
+#: backend/genesys/genesys.cpp:4925 backend/genesys/genesys.cpp:4926
#, no-c-format
msgid "PDF function button 2"
msgstr "PDF 功能按钮 2"
-#: backend/genesys/genesys.cpp:4936 backend/genesys/genesys.cpp:4937
+#: backend/genesys/genesys.cpp:4937 backend/genesys/genesys.cpp:4938
#, no-c-format
msgid "PDF function button 3"
msgstr "PDF 功能按钮 3"
-#: backend/genesys/genesys.cpp:4948 backend/genesys/genesys.cpp:4949
+#: backend/genesys/genesys.cpp:4949 backend/genesys/genesys.cpp:4950
#, no-c-format
msgid "PDF function button 4"
msgstr "PDF 功能按钮 4"
-#: backend/genesys/genesys.cpp:4960 backend/gt68xx.c:753
+#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:753
#, no-c-format
msgid "Needs calibration"
msgstr "需要校准"
-#: backend/genesys/genesys.cpp:4961 backend/gt68xx.c:754 backend/p5.c:1928
+#: backend/genesys/genesys.cpp:4962 backend/gt68xx.c:754 backend/p5.c:1928
#, no-c-format
msgid "The scanner needs calibration for the current settings"
msgstr "扫描仪需要为当前设置进行校准"
-#: backend/genesys/genesys.cpp:4972 backend/gt68xx.c:778
+#: backend/genesys/genesys.cpp:4973 backend/gt68xx.c:778
#: backend/gt68xx.c:779 backend/p5.c:1937 backend/p5.c:1938
#: backend/pixma/pixma_sane_options.c:227 backend/plustek.c:1078
#, no-c-format
msgid "Buttons"
msgstr "按钮"
-#: backend/genesys/genesys.cpp:4981 backend/gt68xx.c:785
+#: backend/genesys/genesys.cpp:4982 backend/gt68xx.c:785
#: backend/hp-option.h:92 backend/hp5400_sane.c:535 backend/niash.c:723
#: backend/p5.c:1945 backend/plustek.c:939
#, no-c-format
msgid "Calibrate"
msgstr "校准"
-#: backend/genesys/genesys.cpp:4983 backend/gt68xx.c:787 backend/p5.c:1947
+#: backend/genesys/genesys.cpp:4984 backend/gt68xx.c:787 backend/p5.c:1947
#, no-c-format
msgid "Start calibration using special sheet"
msgstr "使用特殊纸张开始校准"
-#: backend/genesys/genesys.cpp:4995 backend/gt68xx.c:800 backend/p5.c:1958
+#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:800 backend/p5.c:1958
#, no-c-format
msgid "Clear calibration"
msgstr "清除校准"
-#: backend/genesys/genesys.cpp:4996 backend/gt68xx.c:801 backend/p5.c:1960
+#: backend/genesys/genesys.cpp:4997 backend/gt68xx.c:801 backend/p5.c:1960
#, no-c-format
msgid "Clear calibration cache"
msgstr "清除校准缓存"
-#: backend/genesys/genesys.cpp:5006
+#: backend/genesys/genesys.cpp:5007
#, no-c-format
msgid "Force calibration"
msgstr "强制校准"
-#: backend/genesys/genesys.cpp:5007
+#: backend/genesys/genesys.cpp:5008
#, no-c-format
msgid "Force calibration ignoring all and any calibration caches"
msgstr "强制校准并忽略所有校准缓存"
-#: backend/genesys/genesys.cpp:5017
+#: backend/genesys/genesys.cpp:5018
#, no-c-format
msgid "Ignore internal offsets"
msgstr "忽略内部偏移"
-#: backend/genesys/genesys.cpp:5019
+#: backend/genesys/genesys.cpp:5020
#, no-c-format
msgid ""
"Acquires the image including the internal calibration areas of the "
@@ -4229,7 +4240,8 @@ msgstr "隐藏页面末尾像素"
#: backend/hp5590.c:129
#, no-c-format
-msgid "Hide end-of-page indicator pixels and overwrite with neighbor pixels"
+msgid ""
+"Hide end-of-page indicator pixels and overwrite with neighbor pixels"
msgstr "隐藏页面末尾指示像素,用相邻的相符覆盖它"
#: backend/hp5590.c:131
@@ -5148,7 +5160,8 @@ msgstr "由后端程序进行校准"
#: backend/microtek2.h:615
#, no-c-format
-msgid "If checked the color calibration before a scan is done by the backend"
+msgid ""
+"If checked the color calibration before a scan is done by the backend"
msgstr "勾选后将在每次扫描前由后端程序进行色彩校准"
#: backend/microtek2.h:619
@@ -5459,7 +5472,8 @@ msgstr "使用快速灰阶模式扫描 (低品质)。"
msgid ""
"Request that all previews are done in the fastest (low-quality) mode. "
"This may be a non-color mode or a low resolution mode."
-msgstr "请求所有预览均在最快模式 (低品质) 扫描。它可以是单色模式或低分辨率模式。"
+msgstr ""
+"请求所有预览均在最快模式 (低品质) 扫描。它可以是单色模式或低分辨率模式。"
#: backend/mustek.c:4332
#, no-c-format
@@ -5722,7 +5736,8 @@ msgstr "自动输稿器等待时间"
msgid ""
"When set, the scanner waits up to the specified time in seconds for a "
"new document inserted into the automatic document feeder."
-msgstr "设置后,扫描仪将等待指定的时间 (单位为秒)以便新文稿能够装入自动输稿器。"
+msgstr ""
+"设置后,扫描仪将等待指定的时间 (单位为秒)以便新文稿能够装入自动输稿器。"
#: backend/pixma/pixma_sane_options.c:407
#, no-c-format
@@ -5731,9 +5746,8 @@ msgid ""
"performed a single time per driver init for single page scans, and for "
"the first page for each ADF scan."
msgstr ""
-"设置扫描仪在何时进行校准。如果设置为“一次”, 扫描仪将在 "
-"每次单页扫描或者自动输稿器扫描第一页之前的驱动程序初始化阶段 "
-"进行校准。"
+"设置扫描仪在何时进行校准。如果设置为“一次”, 扫描仪将在 每次单页扫描或者"
+"自动输稿器扫描第一页之前的驱动程序初始化阶段 进行校准。"
#: backend/plustek.c:233 backend/plustek_pp.c:202 backend/u12.c:154
#, no-c-format
@@ -5935,7 +5949,8 @@ msgstr "三遍扫描模拟"
msgid ""
"Simulate a three-pass scanner by returning 3 separate frames. For "
"kicks, it returns green, then blue, then red."
-msgstr "通过返回三个独立扫描帧来模拟三遍式扫描仪。例如按顺序返回绿、蓝、红三帧。"
+msgstr ""
+"通过返回三个独立扫描帧来模拟三遍式扫描仪。例如按顺序返回绿、蓝、红三帧。"
#: backend/pnm.c:265
#, no-c-format
@@ -5954,7 +5969,8 @@ msgstr ""
#: backend/pnm.c:281
#, no-c-format
-msgid "Set default values for enhancement controls (brightness & contrast)."
+msgid ""
+"Set default values for enhancement controls (brightness & contrast)."
msgstr "设置增强控制默认值 (亮度/对比度)。"
#: backend/pnm.c:293
@@ -6009,7 +6025,8 @@ msgstr "返回 SANE_STATUS_JAMMED"
msgid ""
"Force the backend to return the status code SANE_STATUS_JAMMED after "
"sane_read() has been called."
-msgstr "在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_JAMMED。"
+msgstr ""
+"在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_JAMMED。"
#: backend/pnm.c:428
#, no-c-format
@@ -6021,7 +6038,8 @@ msgstr "返回 SANE_STATUS_NO_DOCS"
msgid ""
"Force the backend to return the status code SANE_STATUS_NO_DOCS after "
"sane_read() has been called."
-msgstr "在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_NO_DOCS。"
+msgstr ""
+"在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_NO_DOCS。"
#: backend/pnm.c:441
#, no-c-format
@@ -6033,7 +6051,8 @@ msgstr "返回 SANE_STATUS_COVER_OPEN"
msgid ""
"Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
"sane_read() has been called."
-msgstr "在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_COVER_OPEN。"
+msgstr ""
+"在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_COVER_OPEN。"
#: backend/pnm.c:454
#, no-c-format
@@ -6045,7 +6064,8 @@ msgstr "返回 SANE_STATUS_IO_ERROR"
msgid ""
"Force the backend to return the status code SANE_STATUS_IO_ERROR after "
"sane_read() has been called."
-msgstr "在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_IO_ERROR。"
+msgstr ""
+"在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_IO_ERROR。"
#: backend/pnm.c:467
#, no-c-format
@@ -6057,7 +6077,8 @@ msgstr "返回 SANE_STATUS_NO_MEM"
msgid ""
"Force the backend to return the status code SANE_STATUS_NO_MEM after "
"sane_read() has been called."
-msgstr "在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_NO_MEM。"
+msgstr ""
+"在调用sane_read() 之后强制后端程序返回状态代码 SANE_STATUS_NO_MEM。"
#: backend/pnm.c:481
#, no-c-format
@@ -6073,27 +6094,27 @@ msgstr ""
"在调用sane_read() 之后强制后端程序返回状态代码 "
"SANE_STATUS_ACCESS_DENIED。"
-#: backend/rts8891.c:2809
+#: backend/rts8891.c:2835
#, no-c-format
msgid "This option reflects the status of a scanner button."
msgstr "此选项反映扫描仪按钮的状态。"
-#: backend/rts8891.c:2840 backend/umax.c:5793 backend/umax_pp.c:628
+#: backend/rts8891.c:2866 backend/umax.c:5793 backend/umax_pp.c:628
#, no-c-format
msgid "Lamp on"
msgstr "背光灯开"
-#: backend/rts8891.c:2841 backend/umax.c:5794
+#: backend/rts8891.c:2867 backend/umax.c:5794
#, no-c-format
msgid "Turn on scanner lamp"
msgstr "打开扫描仪背光灯"
-#: backend/rts8891.c:2851 backend/umax.c:5810 backend/umax1220u.c:246
+#: backend/rts8891.c:2877 backend/umax.c:5810 backend/umax1220u.c:246
#, no-c-format
msgid "Lamp off"
msgstr "背光灯关"
-#: backend/rts8891.c:2852 backend/umax.c:5811 backend/umax1220u.c:247
+#: backend/rts8891.c:2878 backend/umax.c:5811 backend/umax1220u.c:247
#, no-c-format
msgid "Turn off scanner lamp"
msgstr "关闭扫描仪背光灯"
@@ -6402,7 +6423,8 @@ msgstr "读取限制大小"
#: backend/test.c:570
#, no-c-format
-msgid "The (maximum) amount of data transferred with each call to sane_read()."
+msgid ""
+"The (maximum) amount of data transferred with each call to sane_read()."
msgstr "每次调用 sane_read() 时传输的最大数据量。"
#: backend/test.c:585
@@ -6461,7 +6483,8 @@ msgstr "模糊参数"
msgid ""
"Return fuzzy lines and bytes per line when sane_parameters() is called "
"before sane_start()."
-msgstr "当在 sane_start() 之前调用 sane_parameters() 时返回模糊线数和每线字节数。"
+msgstr ""
+"当在 sane_start() 之前调用 sane_parameters() 时返回模糊线数和每线字节数。"
#: backend/test.c:676
#, no-c-format
@@ -6485,7 +6508,8 @@ msgstr "启用测试选项"
msgid ""
"Enable various test options. This is for testing the ability of "
"frontends to view and modify all the different SANE option types."
-msgstr "启用各种测试选项。用于测试前端程序的查看和调整不同 SANE 选项类型的能力。"
+msgstr ""
+"启用各种测试选项。用于测试前端程序的查看和调整不同 SANE 选项类型的能力。"
#: backend/test.c:705
#, no-c-format
@@ -6557,7 +6581,8 @@ msgstr "(4/6) 布尔软件检测"
msgid ""
"(4/6) Bool test option that has soft detect (and advanced) capabilities. "
"That means the option is read-only."
-msgstr "(4/6) 具备软件检测 (和高级) 功能的布尔测试选项。这意味着该选项为只读。"
+msgstr ""
+"(4/6) 具备软件检测 (和高级) 功能的布尔测试选项。这意味着该选项为只读。"
#: backend/test.c:869
#, no-c-format
@@ -6612,8 +6637,8 @@ msgid ""
"(2/7) Int test option with unit pixel and constraint range set. Minimum "
"is 4, maximum 192, and quant is 2."
msgstr ""
-"(2/7) 整数测试选项,带有单位像素,设有约束范围。 "
-"最小值为 4,最大值为 192,数量为 2。"
+"(2/7) 整数测试选项,带有单位像素,设有约束范围。 最小值为 4,最大值为 "
+"192,数量为 2。"
#: backend/test.c:950
#, no-c-format
@@ -6648,8 +6673,8 @@ msgid ""
"(5/7) Int test option with unit dpi and using an array with a range "
"constraint. Minimum is 4, maximum 192, and quant is 2."
msgstr ""
-"(5/7) 整数测试选项,带有单位 DPI,使用设有范围约束的数组。 "
-"最小值为 4,最大值为 192,数量为 2。"
+"(5/7) 整数测试选项,带有单位 DPI,使用设有范围约束的数组。 最小值为 4,最"
+"大值为 192,数量为 2。"
#: backend/test.c:1000
#, no-c-format
@@ -6673,9 +6698,7 @@ msgstr "(7/7) 整数不确切"
msgid ""
"(7/7) Int test option that modifies the value and returns "
"SANE_INFO_INEXACT."
-msgstr ""
-"(7/7) 整数测试选项 "
-"用于修改值并返回 SANE_INFO_INEXACT。"
+msgstr "(7/7) 整数测试选项 用于修改值并返回 SANE_INFO_INEXACT。"
#: backend/test.c:1091
#, no-c-format
diff --git a/sanei/sanei_config.c b/sanei/sanei_config.c
index 45f3803..fc883ee 100644
--- a/sanei/sanei_config.c
+++ b/sanei/sanei_config.c
@@ -74,7 +74,7 @@
static char *dir_list;
const char *
-sanei_config_get_paths ()
+sanei_config_get_paths (void)
{
#ifdef __BEOS__
char result[PATH_MAX];
diff --git a/sanei/sanei_pa4s2.c b/sanei/sanei_pa4s2.c
index 92fcf7f..7de0aa6 100644
--- a/sanei/sanei_pa4s2.c
+++ b/sanei/sanei_pa4s2.c
@@ -876,7 +876,7 @@ pa4s2_close (int fd, SANE_Status * status)
}
const char **
-sanei_pa4s2_devices()
+sanei_pa4s2_devices(void)
{
SANE_Status status;
diff --git a/sanei/sanei_scsi.c b/sanei/sanei_scsi.c
index 6eef998..d0aa167 100644
--- a/sanei/sanei_scsi.c
+++ b/sanei/sanei_scsi.c
@@ -2053,7 +2053,7 @@ issue (struct req *req)
fdp->sane_qhead = fdp->sane_qtail = 0;
}
- void sanei_scsi_req_flush_all ()
+ void sanei_scsi_req_flush_all (void)
{
int fd, i, j = 0;
diff --git a/sanei/sanei_usb.c b/sanei/sanei_usb.c
index 850c3b3..f91cb79 100644
--- a/sanei/sanei_usb.c
+++ b/sanei/sanei_usb.c
@@ -529,7 +529,7 @@ SANE_Status sanei_usb_testing_enable_replay(SANE_String_Const path,
fail_test(); \
} while (0)
-void fail_test()
+static void fail_test(void)
{
}
@@ -671,12 +671,12 @@ static int sanei_xml_is_known_commands_end(xmlNode* node)
return xmlStrcmp(node->name, (const xmlChar*)"known_commands_end") == 0;
}
-static xmlNode* sanei_xml_peek_next_tx_node()
+static xmlNode* sanei_xml_peek_next_tx_node(void)
{
return testing_xml_next_tx_node;
}
-static xmlNode* sanei_xml_get_next_tx_node()
+static xmlNode* sanei_xml_get_next_tx_node(void)
{
xmlNode* next = testing_xml_next_tx_node;
@@ -906,7 +906,7 @@ static void sanei_xml_record_seq(xmlNode* node)
testing_last_known_seq = seq;
}
-static void sanei_xml_break()
+static void sanei_xml_break(void)
{
}
@@ -1030,7 +1030,7 @@ static int sanei_usb_check_data_equal(xmlNode* node,
return 0;
}
-SANE_String sanei_usb_testing_get_backend()
+SANE_String sanei_usb_testing_get_backend(void)
{
if (testing_xml_doc == NULL)
return NULL;
@@ -1054,7 +1054,7 @@ SANE_String sanei_usb_testing_get_backend()
return ret;
}
-SANE_Bool sanei_usb_is_replay_mode_enabled()
+SANE_Bool sanei_usb_is_replay_mode_enabled(void)
{
if (testing_mode == sanei_usb_testing_mode_replay)
return SANE_TRUE;
@@ -1123,7 +1123,7 @@ static void sanei_usb_replay_debug_msg(SANE_String_Const message)
}
}
-extern void sanei_usb_testing_record_clear()
+extern void sanei_usb_testing_record_clear(void)
{
if (testing_mode != sanei_usb_testing_mode_record)
return;
@@ -1153,7 +1153,7 @@ static void sanei_usb_add_endpoint(device_list_type* device,
SANE_Int ep_address,
SANE_Int ep_direction);
-static SANE_Status sanei_usb_testing_init()
+static SANE_Status sanei_usb_testing_init(void)
{
DBG_INIT();
@@ -1311,7 +1311,7 @@ static SANE_Status sanei_usb_testing_init()
return SANE_STATUS_GOOD;
}
-static void sanei_usb_testing_exit()
+static void sanei_usb_testing_exit(void)
{
if (testing_development_mode || testing_mode == sanei_usb_testing_mode_record)
{
diff --git a/tools/create-release.sh b/tools/create-release.sh
index 7b0ed2d..99ef3a5 100755
--- a/tools/create-release.sh
+++ b/tools/create-release.sh
@@ -4,9 +4,7 @@
#
# License: GPL-3.0+
-GROUP=sane-project
-PROJECT=backends
-PROJECT_ID=$GROUP%2F$PROJECT
+PROJECT_ID=$CI_PROJECT_ID
API_ENDPOINT=https://gitlab.com/api/v4
@@ -18,17 +16,16 @@ upload () {
--request POST \
$API_ENDPOINT/projects/$PROJECT_ID/uploads \
| jq --raw-output .url \
- | sed "s|^|https://gitlab.com/$GROUP/$PROJECT|"
+ | sed "s|^|https://gitlab.com/-/project/$PROJECT_ID|"
}
cat << EOF > release.json
{
"name": "SANE Backends $CI_COMMIT_TAG",
"tag_name": "$CI_COMMIT_TAG",
- "description": "$(sed '1,3d; / /{s/.*//; q}' NEWS \
+ "description": $(sed '1,9d;/\x0c/,$d' NEWS \
| git stripspace \
- | sed 's/"/\\"/g; s/$/\\n/g' \
- | tr -d '\n')",
+ | jq -Rs),
"assets": {
"links": [
EOF
diff --git a/tools/sane-find-scanner.c b/tools/sane-find-scanner.c
index b4608c3..f8f3df5 100644
--- a/tools/sane-find-scanner.c
+++ b/tools/sane-find-scanner.c
@@ -109,7 +109,7 @@ static scsiblk inquiry = {
static void
usage (char *msg)
{
- fprintf (stderr, "Usage: %s [-hvqf] [devname ...]\n", prog_name);
+ fprintf (stderr, "Usage: %s [-hvqfp] [devname ...]\n", prog_name);
fprintf (stderr, "\t-h: print this help message\n");
fprintf (stderr, "\t-v: be more verbose (can be used multiple times)\n");
fprintf (stderr, "\t-q: be quiet (print only devices, no comments)\n");