From 129ed4b29e21fdb8bda3bee89c3e5d8cca6ba749 Mon Sep 17 00:00:00 2001 From: Mattia Rizzolo Date: Fri, 3 Oct 2014 14:05:31 +0000 Subject: Imported Upstream version 0.993 --- ICM.TODO | 7 + configure | 100 +- configure.in | 20 +- doc/sane-xsane-advanced-doc.html | 4 + doc/sane-xsane-batch-scan-doc.html | 4 + doc/sane-xsane-color-correction-doc.html | 4 + doc/sane-xsane-color-management-doc.html | 253 ++ doc/sane-xsane-copy-doc.html | 4 + doc/sane-xsane-doc.html | 6 +- doc/sane-xsane-email-doc.html | 4 + doc/sane-xsane-empty-doc.html | 6 + doc/sane-xsane-fax-doc.html | 4 + doc/sane-xsane-gimp-doc.html | 4 + doc/sane-xsane-guide-doc.html | 4 + doc/sane-xsane-histogram-doc.html | 7 + doc/sane-xsane-medium-definition-doc.html | 4 + doc/sane-xsane-multipage-doc.html | 4 + doc/sane-xsane-preview-doc.html | 4 + doc/sane-xsane-save-doc.html | 4 + doc/sane-xsane-scan-options-doc.html | 5 +- doc/sane-xsane-setup-color-management-doc.html | 198 + doc/sane-xsane-setup-copy-doc.html | 4 + doc/sane-xsane-setup-display-doc.html | 4 + doc/sane-xsane-setup-email-doc.html | 4 + doc/sane-xsane-setup-enhancement-doc.html | 6 +- doc/sane-xsane-setup-fax-doc.html | 4 + doc/sane-xsane-setup-filetype-doc.html | 4 + doc/sane-xsane-setup-save-doc.html | 4 + doc/sane-xsane-standard-doc.html | 4 + doc/sane-xsane-viewer-doc.html | 4 + doc/xsane-cms-function.jpg | Bin 0 -> 3483 bytes doc/xsane-color-management-main-window.jpg | Bin 0 -> 28489 bytes doc/xsane-enable-color-management.jpg | Bin 0 -> 19072 bytes doc/xsane-setup-color-management.jpg | Bin 0 -> 57041 bytes doc/xsane-setup-copy.jpg | Bin 47557 -> 71150 bytes doc/xsane-setup-display.jpg | Bin 36430 -> 48509 bytes doc/xsane-setup-email.jpg | Bin 34748 -> 45869 bytes doc/xsane-setup-enhancement.jpg | Bin 36740 -> 46692 bytes doc/xsane-setup-fax.jpg | Bin 40439 -> 51648 bytes doc/xsane-setup-filetype.jpg | Bin 44064 -> 52790 bytes doc/xsane-setup-ocr.jpg | Bin 28882 -> 35888 bytes doc/xsane-setup-save.jpg | Bin 34461 -> 44576 bytes include/config.h | 11 +- include/config.h.in | 3 + intl/po2tbl.sed | 60 + intl/po2tbl.sed.in | 102 + po/ca.gmo | Bin 0 -> 57831 bytes po/ca.po | 3352 ++++++++++++++ po/cs.gmo | Bin 56989 -> 54581 bytes po/cs.po | 511 ++- po/da.gmo | Bin 55340 -> 52998 bytes po/da.po | 508 ++- po/de.gmo | Bin 56612 -> 61661 bytes po/de.po | 405 +- po/de.po~ | 3244 +++++++++++++ po/es.gmo | Bin 49704 -> 48288 bytes po/es.po | 506 ++- po/fr.gmo | Bin 48987 -> 47561 bytes po/fr.po | 506 ++- po/hu.gmo | Bin 56759 -> 54425 bytes po/hu.po | 508 ++- po/it.gmo | Bin 59505 -> 57023 bytes po/it.po | 505 ++- po/ja.gmo | Bin 51593 -> 50094 bytes po/ja.po | 505 ++- po/nl.gmo | Bin 53588 -> 51255 bytes po/nl.po | 507 ++- po/pl.gmo | Bin 56700 -> 54298 bytes po/pl.po | 511 ++- po/pt.gmo | Bin 48268 -> 46875 bytes po/pt.po | 507 ++- po/pt_BR.gmo | Bin 48284 -> 46891 bytes po/pt_BR.po | 507 ++- po/ro.gmo | Bin 49186 -> 47757 bytes po/ro.po | 507 ++- po/ru.gmo | Bin 75865 -> 72680 bytes po/ru.po | 508 ++- po/sk.gmo | Bin 49080 -> 47731 bytes po/sk.po | 507 ++- po/sl.gmo | Bin 55736 -> 53406 bytes po/sl.po | 508 ++- po/sr.gmo | Bin 35623 -> 34409 bytes po/sr.po | 506 ++- po/sv.gmo | Bin 44519 -> 43191 bytes po/sv.po | 507 ++- po/tr.gmo | Bin 55479 -> 52997 bytes po/tr.po | 511 ++- po/vi.gmo | Bin 50663 -> 49291 bytes po/vi.po | 507 ++- po/xsane.pot | 373 +- po/zh.gmo | Bin 25207 -> 24167 bytes po/zh.po | 524 ++- po/zh_CN.gmo | Bin 0 -> 27816 bytes po/zh_CN.po | 3203 +++++++++++++ src/Makefile.in | 3 +- src/xsane-back-gtk.c | 616 ++- src/xsane-back-gtk.h | 31 +- src/xsane-batch-scan.c | 24 +- src/xsane-batch-scan.h | 2 +- src/xsane-device-preferences.c | 26 +- src/xsane-device-preferences.h | 2 +- src/xsane-email-project.c | 91 +- src/xsane-email-project.h | 2 +- src/xsane-fax-project.c | 93 +- src/xsane-fax-project.h | 2 +- src/xsane-fixedtext.h | 2 +- src/xsane-front-gtk.c | 90 +- src/xsane-front-gtk.h | 8 +- src/xsane-gamma.c | 23 +- src/xsane-gamma.h | 2 +- src/xsane-gimp-1_0-compat.h | 2 +- src/xsane-gtk-1_x-compat.h | 4 +- src/xsane-icons.c | 38 +- src/xsane-icons.h | 3 +- src/xsane-multipage-project.c | 101 +- src/xsane-multipage-project.h | 2 +- src/xsane-preferences.c | 29 +- src/xsane-preferences.h | 21 +- src/xsane-preview.c | 266 +- src/xsane-preview.h | 11 +- src/xsane-rc-io.c | 28 +- src/xsane-rc-io.h | 4 +- src/xsane-save.c | 2516 ++++++++-- src/xsane-save.c.orig | 5801 ------------------------ src/xsane-save.h | 40 +- src/xsane-scan.c | 64 +- src/xsane-scan.h | 2 +- src/xsane-setup.c | 715 ++- src/xsane-setup.h | 2 +- src/xsane-text.h | 769 ++-- src/xsane-viewer.c | 1394 +++++- src/xsane-viewer.h | 19 +- src/xsane.c | 333 +- src/xsane.h | 95 +- src/xsaneopts.h | 2 +- xsane.ACCELKEYS | 27 +- xsane.BACKENDS | 42 - xsane.BUGS | 7 - xsane.CHANGES | 81 +- xsane.TODO | 8 +- xsane.spec | 2 +- 141 files changed, 26625 insertions(+), 8427 deletions(-) create mode 100644 ICM.TODO create mode 100644 doc/sane-xsane-color-management-doc.html create mode 100644 doc/sane-xsane-setup-color-management-doc.html create mode 100644 doc/xsane-cms-function.jpg create mode 100644 doc/xsane-color-management-main-window.jpg create mode 100644 doc/xsane-enable-color-management.jpg create mode 100644 doc/xsane-setup-color-management.jpg create mode 100644 intl/po2tbl.sed.in create mode 100644 po/ca.gmo create mode 100644 po/ca.po create mode 100644 po/de.po~ create mode 100644 po/zh_CN.gmo create mode 100644 po/zh_CN.po delete mode 100644 src/xsane-save.c.orig delete mode 100644 xsane.BACKENDS diff --git a/ICM.TODO b/ICM.TODO new file mode 100644 index 0000000..70b4c6d --- /dev/null +++ b/ICM.TODO @@ -0,0 +1,7 @@ +- convert image to sRGB and other colorspaces while saving: email, multipage +- append ICC/ICM profile to email, multipage +- add CMS preview options to preview or xsane main window for preview image +- add support for 16bits/sample PDF files +- reduce to 8 bits/sample after color conversion for all image formats +- add support for grayscale postscript files + diff --git a/configure b/configure index ee646f7..88b872b 100755 --- a/configure +++ b/configure @@ -846,6 +846,7 @@ Optional Features: --disable-jpeg do not include JPEG support --disable-png do not include PNG support --disable-tiff do not include TIFF support + --disable-lcms do not include LCMS support --disable-nls do not use Native Language Support --disable-sanetest Do not try to compile and run a test SANE program --disable-gimptest do not try to compile and run a test GIMP program @@ -1321,14 +1322,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # version code: V_MAJOR=0 -V_MINOR=991 +V_MINOR=993 PACKAGE=xsane BINPROGS="xsane" # languages -ALL_LINGUAS="cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv vi tr zh" +ALL_LINGUAS="ca cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv vi tr zh zh_CN" SANE_V_MAJOR=1 VERSION=${V_MAJOR}.${V_MINOR} @@ -1433,6 +1434,18 @@ fi; echo "$as_me:$LINENO: result: $USE_TIFF" >&5 echo "${ECHO_T}$USE_TIFF" >&6 +echo "$as_me:$LINENO: checking whether LCMS (color management) support is requested" >&5 +echo $ECHO_N "checking whether LCMS (color management) support is requested... $ECHO_C" >&6 +# Check whether --enable-lcms or --disable-lcms was given. +if test "${enable_lcms+set}" = set; then + enableval="$enable_lcms" + USE_LCMS=$enableval +else + USE_LCMS=yes +fi; +echo "$as_me:$LINENO: result: $USE_LCMS" >&5 +echo "${ECHO_T}$USE_LCMS" >&6 + echo "" echo "**************************************************************************" echo "" @@ -5790,6 +5803,83 @@ fi fi +if test "${USE_LCMS}" = "yes"; then + +echo "$as_me:$LINENO: checking for cmsOpenProfileFromFile in -llcms" >&5 +echo $ECHO_N "checking for cmsOpenProfileFromFile in -llcms... $ECHO_C" >&6 +if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llcms $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char cmsOpenProfileFromFile (); +int +main () +{ +cmsOpenProfileFromFile (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_lcms_cmsOpenProfileFromFile=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_lcms_cmsOpenProfileFromFile=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_lcms_cmsOpenProfileFromFile" >&5 +echo "${ECHO_T}$ac_cv_lib_lcms_cmsOpenProfileFromFile" >&6 +if test $ac_cv_lib_lcms_cmsOpenProfileFromFile = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLCMS 1 +_ACEOF + + LIBS="-llcms $LIBS" + +fi + +fi + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo "$as_me:$LINENO: checking for working alloca.h" >&5 @@ -12507,6 +12597,12 @@ else echo "* - PNG support deactivated *" fi +if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile}" = "yes"; then + echo "* - LCMS (color management) support activated *" +else + echo "* - LCMS (color management) support deactivated *" +fi + echo "* *" echo "****************************************************************" echo "* *" diff --git a/configure.in b/configure.in index f942795..622cc70 100644 --- a/configure.in +++ b/configure.in @@ -6,14 +6,14 @@ AC_CONFIG_HEADER(include/config.h) # version code: V_MAJOR=0 -V_MINOR=991 +V_MINOR=993 PACKAGE=xsane BINPROGS="xsane" # languages -ALL_LINGUAS="cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv vi tr zh" +ALL_LINGUAS="ca cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv vi tr zh zh_CN" SANE_V_MAJOR=1 VERSION=${V_MAJOR}.${V_MINOR} @@ -68,6 +68,12 @@ dnl Default is enabled TIFF AC_ARG_ENABLE(tiff, [ --disable-tiff do not include TIFF support], USE_TIFF=$enableval, USE_TIFF=yes) AC_MSG_RESULT($USE_TIFF) +dnl Check for lcms support +AC_MSG_CHECKING([whether LCMS (color management) support is requested]) +dnl Default is enabled LCMS +AC_ARG_ENABLE(lcms, [ --disable-lcms do not include LCMS support], USE_LCMS=$enableval, USE_LCMS=yes) +AC_MSG_RESULT($USE_LCMS) + echo "" echo "**************************************************************************" echo "" @@ -123,6 +129,10 @@ if test "${USE_TIFF}" = "yes"; then AC_CHECK_LIB(tiff, TIFFOpen) fi +if test "${USE_LCMS}" = "yes"; then + AC_CHECK_LIB(lcms, cmsOpenProfileFromFile) +fi + dnl Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_MMAP @@ -284,6 +294,12 @@ else echo "* - PNG support deactivated *" fi +if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile}" = "yes"; then + echo "* - LCMS (color management) support activated *" +else + echo "* - LCMS (color management) support deactivated *" +fi + echo "* *" echo "****************************************************************" echo "* *" diff --git a/doc/sane-xsane-advanced-doc.html b/doc/sane-xsane-advanced-doc.html index 3d5d56e..9a48bdd 100644 --- a/doc/sane-xsane-advanced-doc.html +++ b/doc/sane-xsane-advanced-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-batch-scan-doc.html b/doc/sane-xsane-batch-scan-doc.html index eedd528..50490be 100644 --- a/doc/sane-xsane-batch-scan-doc.html +++ b/doc/sane-xsane-batch-scan-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-color-correction-doc.html b/doc/sane-xsane-color-correction-doc.html index dca9144..f5b7567 100644 --- a/doc/sane-xsane-color-correction-doc.html +++ b/doc/sane-xsane-color-correction-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-color-management-doc.html b/doc/sane-xsane-color-management-doc.html new file mode 100644 index 0000000..c18f61a --- /dev/null +++ b/doc/sane-xsane-color-management-doc.html @@ -0,0 +1,253 @@ + + + + + + + + XSane - Color management + + + + + + + + + +
+XSane-logo + +
+

Color management

+
+
+ + +
+ + + + + + + + + +
+
+Index +
+
+XSane mode: +xsane-target + +
+Scan options +
+
+Medium selection +
+
+Color management +
+
+Color correction: + +
+Standard options window +
+
+Advanced options window +
+
+Preview: + +
+Batch scan: + +
+Setup: + +
+
+
XSane-main-window-with-color-management
+
+
+
+When you scan an image with color management disabled then you often get an image that does not look very good. +The colors do not look natural, the contrast is bad, the image is too dark etc. + +The reason for this is that each device interprets a color e.g. represented by a red, green and blue value in +its own way. +

+When you want a display or a printer to produce an image with the colors of a photo that you want to scan with a scanner +then you need to tell your system how each device interprets colors. This is done with ICC/ICM profiles. +When you have at least an ICC/ICM profile for your scanner and for your display then you can enable the color management of XSane. +Please make sure that you filled out the +color management setup +correct before you enable it, otherwise you will get a lot of error messages. +
+
+
+Enable color management:
+   +enable-color-management + +

+To enable the color management activate it in the Preferences menu. +When you do this then the gamma, contrast and brightness options are disabled. +
+ +Color management function:
+   +cms-function +
+There are three different functions available when color management is enabled: +
    +
  • + Embed scanner ICM profile +
    + The image is saved with the original image data, no color transformation is + done. The ICM profile is embedded to the image file. Programs that support + color management know how to correct the colors. +
    + Advantages: +
      +
    • no loss of information
    • +
    + Disadvantages: +
      +
    • a lot of programs are not able to handle embedded profiles
    • +
    + Usage: +
      +
    • image archieve, image manipulation with all color corrections, + professional printing
    • +
    +
    + When the selected file format does not support the embedded profiles then + the image is tranformed to sRGB. +

    +

  • + +
  • + Convert to sRGB +
    + The image is converted to sRGB, no ICM profile is embedded. +
    + Advantages: +
      +
    • all programs can handle the color corrected image
    • +
    + Disadvantages: +
      +
    • sRGB does not cover all visible colors
    • +
    • when you do any further color correction then you lose color + information that can result in visible color steps
    • +
    + Usage: +
      +
    • web publication, office documents, image manipulation only when no color + correction is done, home and office printing
    • +
    +

    +

  • + +
  • + Convert to working color space +
    + The image is converted to the working color space you selected in the color + management setup. The ICM profile of the working color space is embedded + to the image file. +
    + Advantages: +
      +
    • There are color spaces that do cover the visible colors better than sRGB + does
    • +
    + Disadvantages: +
      +
    • when you do any further color correction then you lose color + information that can result in visible color steps
    • +
    + Usage: +
      +
    • image archieve, image manipulation with (may be limited) color correction, + professional printing
    • +
    +

    +

  • +
+
+ +
+
+ +
+ +
+Author: Oliver Rauch +
+ + + + diff --git a/doc/sane-xsane-copy-doc.html b/doc/sane-xsane-copy-doc.html index 97b98e9..af79ee8 100644 --- a/doc/sane-xsane-copy-doc.html +++ b/doc/sane-xsane-copy-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-doc.html b/doc/sane-xsane-doc.html index dd9f481..89b5d46 100644 --- a/doc/sane-xsane-doc.html +++ b/doc/sane-xsane-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-email-doc.html b/doc/sane-xsane-email-doc.html index 2441548..ccbb0fd 100644 --- a/doc/sane-xsane-email-doc.html +++ b/doc/sane-xsane-email-doc.html @@ -51,6 +51,9 @@ Medium selection

+Color management +
+
Color correction: diff --git a/doc/sane-xsane-empty-doc.html b/doc/sane-xsane-empty-doc.html index f651ba2..346c071 100644 --- a/doc/sane-xsane-empty-doc.html +++ b/doc/sane-xsane-empty-doc.html @@ -40,9 +40,14 @@
  • Gimp plugin

  • +Scan options +
    +
    Medium selection

    +Color management +

    Color correction: diff --git a/doc/sane-xsane-fax-doc.html b/doc/sane-xsane-fax-doc.html index b91b85f..09d61af 100644 --- a/doc/sane-xsane-fax-doc.html +++ b/doc/sane-xsane-fax-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-gimp-doc.html b/doc/sane-xsane-gimp-doc.html index babc3ac..aea7421 100644 --- a/doc/sane-xsane-gimp-doc.html +++ b/doc/sane-xsane-gimp-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-guide-doc.html b/doc/sane-xsane-guide-doc.html index 3f20c1c..cabc04c 100644 --- a/doc/sane-xsane-guide-doc.html +++ b/doc/sane-xsane-guide-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-histogram-doc.html b/doc/sane-xsane-histogram-doc.html index de0a333..556cd90 100644 --- a/doc/sane-xsane-histogram-doc.html +++ b/doc/sane-xsane-histogram-doc.html @@ -40,9 +40,15 @@
  • Gimp plugin

  • +Scan options +
    +
    Medium selection

    +Color management +
    +

    Color correction: diff --git a/doc/sane-xsane-medium-definition-doc.html b/doc/sane-xsane-medium-definition-doc.html index 2938169..62bc49b 100644 --- a/doc/sane-xsane-medium-definition-doc.html +++ b/doc/sane-xsane-medium-definition-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-multipage-doc.html b/doc/sane-xsane-multipage-doc.html index 7cca205..774b597 100644 --- a/doc/sane-xsane-multipage-doc.html +++ b/doc/sane-xsane-multipage-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-preview-doc.html b/doc/sane-xsane-preview-doc.html index 17dea20..e258208 100644 --- a/doc/sane-xsane-preview-doc.html +++ b/doc/sane-xsane-preview-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-save-doc.html b/doc/sane-xsane-save-doc.html index 6673e25..661bb5e 100644 --- a/doc/sane-xsane-save-doc.html +++ b/doc/sane-xsane-save-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-scan-options-doc.html b/doc/sane-xsane-scan-options-doc.html index 5858870..a8415f8 100644 --- a/doc/sane-xsane-scan-options-doc.html +++ b/doc/sane-xsane-scan-options-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: @@ -183,7 +187,6 @@ and use the cursor keys to change the value in small steps, if you press ctrl and a cursor key the resolution is changed in larger steps. - diff --git a/doc/sane-xsane-setup-color-management-doc.html b/doc/sane-xsane-setup-color-management-doc.html new file mode 100644 index 0000000..81549fc --- /dev/null +++ b/doc/sane-xsane-setup-color-management-doc.html @@ -0,0 +1,198 @@ + + + + + + + XSane - Color management setup + + + + + + + + + +
    +XSane-logo + +
    +

    Color management setup

    +
    +
    + + +
    + + + + + + + + + +
    +
    +Index +
    +
    +XSane mode: +xsane-target + +
    +Scan options +
    +
    +Medium selection +
    +
    +Color management +
    +
    +Color correction: + +
    +Standard options window +
    +
    +Advanced options window +
    +
    +Preview: + +
    +Batch scan: + +
    +Setup: + +
    +
    +
    +You open the setup window via the menu preferences/setup in the +main window of xsane. +
    +
    +
    +


    XSane-setup-color-management-window

    +
    +
    +
    +

    Black point compensation:

    +
    +Do black point compensation when color transformation is done. +
    +
    + +

    Rendering intent:

    +
    +Select rendering intent for preview and saving. This selection is also used as default +for the viewer. +
    +
    + +

    Scanner reflektive ICM profile:

    +
    +Select scanner color ICM profile. This is the most important profile because this is the one that is generally used. +
    +
    + +

    Scanner reflektive gray ICM profile:

    +
    +Select scanner grayscale ICM profile. +
    +
    + +

    Display ICM profile:

    +
    +Select display ICM profile. This profile is important for the preview and the viewer. When you do not have +a profile for your display then you can select sRGB what should produce usable output. +
    +
    + +

    Custom proofing ICM profile:

    +
    +When you want to do proofing for an output device that is not defined as printer in the printer setup +then you can select the ICM profile of this device here. +
    +
    + +

    Working color space ICM profile:

    +
    +When you want to work in a different color space than sRGB then you can select the ICM profile of your +prefered color space. +
    +
    + + +
    +
    + +
    + +
    +Author: Oliver Rauch +
    + + + + diff --git a/doc/sane-xsane-setup-copy-doc.html b/doc/sane-xsane-setup-copy-doc.html index 2371a6f..9d5f1e1 100644 --- a/doc/sane-xsane-setup-copy-doc.html +++ b/doc/sane-xsane-setup-copy-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-setup-display-doc.html b/doc/sane-xsane-setup-display-doc.html index 2d07e40..154b876 100644 --- a/doc/sane-xsane-setup-display-doc.html +++ b/doc/sane-xsane-setup-display-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-setup-email-doc.html b/doc/sane-xsane-setup-email-doc.html index e74cfc5..da6e080 100644 --- a/doc/sane-xsane-setup-email-doc.html +++ b/doc/sane-xsane-setup-email-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-setup-enhancement-doc.html b/doc/sane-xsane-setup-enhancement-doc.html index c363dab..2309dec 100644 --- a/doc/sane-xsane-setup-enhancement-doc.html +++ b/doc/sane-xsane-setup-enhancement-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: @@ -199,6 +203,7 @@ main window).
    The name should be something like Gray. + @@ -209,7 +214,6 @@ The name should be something like Gray.
    Author: Oliver Rauch
    - diff --git a/doc/sane-xsane-setup-fax-doc.html b/doc/sane-xsane-setup-fax-doc.html index bd2bb00..eb3e96d 100644 --- a/doc/sane-xsane-setup-fax-doc.html +++ b/doc/sane-xsane-setup-fax-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-setup-filetype-doc.html b/doc/sane-xsane-setup-filetype-doc.html index 76bc981..d14abe1 100644 --- a/doc/sane-xsane-setup-filetype-doc.html +++ b/doc/sane-xsane-setup-filetype-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-setup-save-doc.html b/doc/sane-xsane-setup-save-doc.html index 20b7a36..88c4096 100644 --- a/doc/sane-xsane-setup-save-doc.html +++ b/doc/sane-xsane-setup-save-doc.html @@ -50,6 +50,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-standard-doc.html b/doc/sane-xsane-standard-doc.html index fa66c9c..326a748 100644 --- a/doc/sane-xsane-standard-doc.html +++ b/doc/sane-xsane-standard-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/sane-xsane-viewer-doc.html b/doc/sane-xsane-viewer-doc.html index 1b222cf..0a02ad6 100644 --- a/doc/sane-xsane-viewer-doc.html +++ b/doc/sane-xsane-viewer-doc.html @@ -51,6 +51,9 @@ Medium selection

    +Color management +
    +
    Color correction: diff --git a/doc/xsane-cms-function.jpg b/doc/xsane-cms-function.jpg new file mode 100644 index 0000000..82fac05 Binary files /dev/null and b/doc/xsane-cms-function.jpg differ diff --git a/doc/xsane-color-management-main-window.jpg b/doc/xsane-color-management-main-window.jpg new file mode 100644 index 0000000..8decc7c Binary files /dev/null and b/doc/xsane-color-management-main-window.jpg differ diff --git a/doc/xsane-enable-color-management.jpg b/doc/xsane-enable-color-management.jpg new file mode 100644 index 0000000..cebd521 Binary files /dev/null and b/doc/xsane-enable-color-management.jpg differ diff --git a/doc/xsane-setup-color-management.jpg b/doc/xsane-setup-color-management.jpg new file mode 100644 index 0000000..01757a9 Binary files /dev/null and b/doc/xsane-setup-color-management.jpg differ diff --git a/doc/xsane-setup-copy.jpg b/doc/xsane-setup-copy.jpg index c097868..28e551a 100644 Binary files a/doc/xsane-setup-copy.jpg and b/doc/xsane-setup-copy.jpg differ diff --git a/doc/xsane-setup-display.jpg b/doc/xsane-setup-display.jpg index ae372f6..cc0199f 100644 Binary files a/doc/xsane-setup-display.jpg and b/doc/xsane-setup-display.jpg differ diff --git a/doc/xsane-setup-email.jpg b/doc/xsane-setup-email.jpg index dbc876f..1a5515b 100644 Binary files a/doc/xsane-setup-email.jpg and b/doc/xsane-setup-email.jpg differ diff --git a/doc/xsane-setup-enhancement.jpg b/doc/xsane-setup-enhancement.jpg index ade9c2f..5819b49 100644 Binary files a/doc/xsane-setup-enhancement.jpg and b/doc/xsane-setup-enhancement.jpg differ diff --git a/doc/xsane-setup-fax.jpg b/doc/xsane-setup-fax.jpg index 984f629..ea2dfa5 100644 Binary files a/doc/xsane-setup-fax.jpg and b/doc/xsane-setup-fax.jpg differ diff --git a/doc/xsane-setup-filetype.jpg b/doc/xsane-setup-filetype.jpg index c5bf70e..cdc8de6 100644 Binary files a/doc/xsane-setup-filetype.jpg and b/doc/xsane-setup-filetype.jpg differ diff --git a/doc/xsane-setup-ocr.jpg b/doc/xsane-setup-ocr.jpg index df64bcc..ff20752 100644 Binary files a/doc/xsane-setup-ocr.jpg and b/doc/xsane-setup-ocr.jpg differ diff --git a/doc/xsane-setup-save.jpg b/doc/xsane-setup-save.jpg index a9dcf4b..69470c6 100644 Binary files a/doc/xsane-setup-save.jpg and b/doc/xsane-setup-save.jpg differ diff --git a/include/config.h b/include/config.h index 43f2485..a5f9313 100644 --- a/include/config.h +++ b/include/config.h @@ -99,10 +99,10 @@ #define PACKAGE "xsane" /* Define to the version of the distribution. */ -#define VERSION "0.991" +#define VERSION "0.993" /* The concatenation of the strings PACKAGE, "-", and VERSION. */ -#define XSANE_PACKAGE_VERSION "xsane-0.991" +#define XSANE_PACKAGE_VERSION "xsane-0.993" /* Define if you have the __argz_count function. */ #define HAVE___ARGZ_COUNT 1 @@ -274,10 +274,10 @@ #define HAVE_ANY_GIMP 1 /* Define if you have GIMP-2.0 installed. */ -/* #undef HAVE_GIMP_2 */ +#define HAVE_GIMP_2 1 /* Define if you have the GIMPfeatures header file. */ -#define HAVE_LIBGIMP_GIMPFEATURES_H 1 +/* #undef HAVE_LIBGIMP_GIMPFEATURES_H */ /* Define if you have libjpeg. */ #define HAVE_LIBJPEG 1 @@ -291,6 +291,9 @@ /* Define if you have libtiff. */ #define HAVE_LIBTIFF 1 +/* Define if you have liblcms. */ +#define HAVE_LIBLCMS 1 + #ifndef HAVE_STRNCASECMP /* OS/2 needs this */ # define strncasecmp(a, b, c) strnicmp(a, b, c) diff --git a/include/config.h.in b/include/config.h.in index e056158..ecc9637 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -290,6 +290,9 @@ /* Define if you have libtiff. */ #undef HAVE_LIBTIFF +/* Define if you have liblcms. */ +#undef HAVE_LIBLCMS + #ifndef HAVE_STRNCASECMP /* OS/2 needs this */ # define strncasecmp(a, b, c) strnicmp(a, b, c) diff --git a/intl/po2tbl.sed b/intl/po2tbl.sed index e69de29..93c0435 100644 --- a/intl/po2tbl.sed +++ b/intl/po2tbl.sed @@ -0,0 +1,60 @@ +1 { + i\ +/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ +\ +#if HAVE_CONFIG_H\ +# include \ +#endif\ +\ +#include "libgettext.h"\ +\ +const struct _msg_ent _msg_tbl[] = { + h + s/.*/0/ + x +} +/^msgid/ { + s/msgid[ ]*\(".*"\)/ {\1/ + tb + :b + N + s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ + ta + s/\(.*\)\n.*/\1/ + bc + :a + s/\(.*\)\(\n.*\)/\1\\\2/ + P + s/.*\n\(.*\)/\1/ + tb + :c + x + td + :d + s/9\(_*\)$/_\1/ + td + s/^\(_*\)$/0\1/ + s/8\(_*\)$/9\1/ + s/7\(_*\)$/8\1/ + s/6\(_*\)$/7\1/ + s/5\(_*\)$/6\1/ + s/4\(_*\)$/5\1/ + s/3\(_*\)$/4\1/ + s/2\(_*\)$/3\1/ + s/1\(_*\)$/2\1/ + s/0\(_*\)$/1\1/ + s/_/0/g + x + G + s/\(.*\)\n\([0-9]*\)/\1, \2},/ + s/\(.*\)"$/\1/ + p +} +$ { + i\ +};\ + + g + s/0*\(.*\)/int _msg_tbl_length = \1;/p +} +d diff --git a/intl/po2tbl.sed.in b/intl/po2tbl.sed.in new file mode 100644 index 0000000..b3bcca4 --- /dev/null +++ b/intl/po2tbl.sed.in @@ -0,0 +1,102 @@ +# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets +# Copyright (C) 1995 Free Software Foundation, Inc. +# Ulrich Drepper , 1995. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +1 { + i\ +/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ +\ +#if HAVE_CONFIG_H\ +# include \ +#endif\ +\ +#include "libgettext.h"\ +\ +const struct _msg_ent _msg_tbl[] = { + h + s/.*/0/ + x +} +# +# Write msgid entries in C array form. +# +/^msgid/ { + s/msgid[ ]*\(".*"\)/ {\1/ + tb +# Append the next line + :b + N +# Look whether second part is continuation line. + s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ +# Yes, then branch. + ta +# Because we assume that the input file correctly formed the line +# just read cannot be again be a msgid line. So it's safe to ignore +# it. + s/\(.*\)\n.*/\1/ + bc +# We found a continuation line. But before printing insert '\'. + :a + s/\(.*\)\(\n.*\)/\1\\\2/ + P +# We cannot use D here. + s/.*\n\(.*\)/\1/ +# Some buggy seds do not clear the `successful substitution since last ``t''' +# flag on `N', so we do a `t' here to clear it. + tb +# Not reached + :c + x +# The following nice solution is by +# Bruno + td +# Increment a decimal number in pattern space. +# First hide trailing `9' digits. + :d + s/9\(_*\)$/_\1/ + td +# Assure at least one digit is available. + s/^\(_*\)$/0\1/ +# Increment the last digit. + s/8\(_*\)$/9\1/ + s/7\(_*\)$/8\1/ + s/6\(_*\)$/7\1/ + s/5\(_*\)$/6\1/ + s/4\(_*\)$/5\1/ + s/3\(_*\)$/4\1/ + s/2\(_*\)$/3\1/ + s/1\(_*\)$/2\1/ + s/0\(_*\)$/1\1/ +# Convert the hidden `9' digits to `0's. + s/_/0/g + x + G + s/\(.*\)\n\([0-9]*\)/\1, \2},/ + s/\(.*\)"$/\1/ + p +} +# +# Last line. +# +$ { + i\ +};\ + + g + s/0*\(.*\)/int _msg_tbl_length = \1;/p +} +d diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 0000000..e52c693 Binary files /dev/null and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..d01ac9a --- /dev/null +++ b/po/ca.po @@ -0,0 +1,3352 @@ +# Catalan translation for XSane. +# Copyright (C) 2006 Free Software Foundation, Inc. +# Raül Cambeiro , 2006, XSane 0.991 +# +msgid "" +msgstr "" +"Project-Id-Version: XSane 0.991\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" +"PO-Revision-Date: 2006-03-02 03:35+0100\n" +"Last-Translator: Raül Cambeiro \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Please translate this to the correct directory name (eg. german=>de) +#. XSANE_LANGUAGE_DIR +msgid "language_dir" +msgstr "ca" + +#. XSANE_COPYRIGHT_SIGN +msgid "(c)" +msgstr "©" + +#. can be translated with \251 +#. FILENAME_PREFIX_CLONE_OF +msgid "clone-of-" +msgstr "clon-de-" + +#. WINDOW_ABOUT_XSANE +msgid "About" +msgstr "Quant a" + +#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION +msgid "About translation" +msgstr "Quant a la traducció" + +#. WINDOW_AUTHORIZE +msgid "authorization" +msgstr "Autorització" + +#. WINDOW_GPL +msgid "GPL - the license" +msgstr "Llicència GPL" + +#. WINDOW_EULA +msgid "End User License Agreement" +msgstr "Contracte de llicència per a l'usuari final" + +#. WINDOW_INFO +msgid "info" +msgstr "Informació" + +#. WINDOW_LOAD_BATCH_LIST +msgid "load batch list" +msgstr "Carrega un lot d'escaneig" + +#. WINDOW_SAVE_BATCH_LIST +msgid "save batch list" +msgstr "Desa el lot d'escaneig" + +#. WINDOW_BATCH_SCAN +msgid "batch scan" +msgstr "Escaneig per lots" + +#. WINDOW_BATCH_RENAME +msgid "rename batch area" +msgstr "Reanomena l'element del lot" + +#. WINDOW_FAX_PROJECT +msgid "fax project" +msgstr "Projecte de fax" + +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Introduïu el nom del projecte de fax" + +#. WINDOW_FAX_RENAME +msgid "rename fax page" +msgstr "Reanomena la pàgina de fax" + +#. WINDOW_FAX_INSERT +msgid "insert ps-file into fax" +msgstr "Inseriu un fitxer PS al fax" + +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "Projecte de correu electrònic" + +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Introduïu el nom del projecte de correu electrònic" + +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "Reanomena la imatge del correu" + +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "Inseriu un fitxer al correu" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "Projecte multipàgina" + +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Projecte multipàgina" + +#. WINDOW_PRESET_AREA_RENAME +msgid "rename preset area" +msgstr "Reanomena l'àrea prefixada" + +#. WINDOW_PRESET_AREA_ADD +msgid "add preset area" +msgstr "Afegeix una àrea prefixada" + +#. WINDOW_MEDIUM_RENAME +msgid "rename medium" +msgstr "Reanomena el mitjà" + +#. WINDOW_MEDIUM_ADD +msgid "add new medium" +msgstr "Afegeix un nou mitjà" + +#. WINDOW_SETUP +msgid "setup" +msgstr "Configuració" + +#. WINDOW_HISTOGRAM +msgid "Histogram" +msgstr "Histograma" + +#. WINDOW_GAMMA +msgid "Gamma curve" +msgstr "Corba gamma" + +#. WINDOW_STANDARD_OPTIONS +msgid "Standard options" +msgstr "Opcions bàsiques" + +#. WINDOW_ADVANCED_OPTIONS +msgid "Advanced options" +msgstr "Opcions avançades" + +#. WINDOW_DEVICE_SELECTION +msgid "device selection" +msgstr "Selecció de dispositiu" + +#. WINDOW_PREVIEW +msgid "Preview" +msgstr "Previsualització" + +#. WINDOW_VIEWER +#. MENU_ITEM_VIEWER +msgid "Viewer" +msgstr "Visualitzador" + +#. WINDOW_VIEWER_OUTPUT_FILENAME +msgid "Viewer: select output filename" +msgstr "Visualitzador: Seleccioneu el nom del fitxer de sortida" + +#. WINDOW_OCR_OUTPUT_FILENAME +msgid "Select output filename for OCR text file" +msgstr "Seleccioneu el nom del fitxer de text OCR" + +#. WINDOW_OUTPUT_FILENAME +msgid "select output filename" +msgstr "Seleccioneu el nom del fitxer de sortida" + +#. WINDOW_SAVE_SETTINGS +msgid "save device settings" +msgstr "Desa la configuració del dispositiu" + +#. WINDOW_LOAD_SETTINGS +msgid "load device settings" +msgstr "Carrega la configuració del dispositiu" + +#. WINDOW_CHANGE_WORKING_DIR +msgid "change working directory" +msgstr "Canvia el directori de treball" + +#. WINDOW_TMP_PATH +msgid "select temporary directory" +msgstr "Selecciona el directori temporal" + +#. WINDOW_SCALE +#. DESC_VIEWER_SCALE +msgid "Scale image" +msgstr "Escala la imatge" + +#. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE +msgid "Despeckle image" +msgstr "Elimina els esquitxos de la imatge" + +#. WINDOW_BLUR +#. DESC_VIEWER_BLUR +msgid "Blur image" +msgstr "Difumina la imatge" + +#. WINDOW_STORE_MEDIUM +msgid "Store medium definition" +msgstr "Emmagatzema la definició del mitjà" + +#. WINDOW_NO_DEVICES +msgid "No devices available" +msgstr "No hi ha dispositius disponibles" + +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Elimina la impressora" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Elimina la impressora" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "Seleccioneu el nom del fitxer de sortida" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Elimina la impressora" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Elimina la impressora" + +#. MENU_FILE +msgid "File" +msgstr "Fitxer" + +#. MENU_PREFERENCES +msgid "Preferences" +msgstr "Preferències" + +#. MENU_VIEW +msgid "View" +msgstr "Visualitza" + +#. MENU_WINDOW +msgid "Window" +msgstr "Finestra" + +#. MENU_HELP +#. BUTTON_HELP +msgid "Help" +msgstr "Ajuda" + +#. MENU_EDIT +msgid "Edit" +msgstr "Edita" + +#. MENU_FILTERS +msgid "Filters" +msgstr "Filtres" + +#. MENU_GEOMETRY +msgid "Geometry" +msgstr "Geometria" + +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + +#. MENU_ITEM_ABOUT_XSANE +msgid "About XSane" +msgstr "Quant a l'XSane" + +#. MENU_ITEM_INFO +msgid "Info" +msgstr "Informació" + +#. MENU_ITEM_QUIT +msgid "Quit" +msgstr "Surt" + +#. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE +msgid "Save image" +msgstr "Desa la imatge" + +#. MENU_ITEM_OCR +msgid "OCR - save as text" +msgstr "OCR: Desa com a text" + +#. MENU_ITEM_CLONE +msgid "Clone" +msgstr "Clona" + +#. MENU_ITEM_SCALE +msgid "Scale" +msgstr "Escala" + +#. MENU_ITEM_CLOSE +#. BUTTON_CLOSE +msgid "Close" +msgstr "Tanca" + +#. MENU_ITEM_UNDO +msgid "Undo" +msgstr "Desfés" + +#. MENU_ITEM_DESPECKLE +msgid "Despeckle" +msgstr "Elimina els esquitxos" + +#. MENU_ITEM_BLUR +msgid "Blur" +msgstr "Difumina" + +#. MENU_ITEM_ROTATE90 +msgid "Rotate 90" +msgstr "Rota 90º" + +#. MENU_ITEM_ROTATE180 +msgid "Rotate 180" +msgstr "Rota 180º" + +#. MENU_ITEM_ROTATE270 +msgid "Rotate 270" +msgstr "Rota 270º" + +#. MENU_ITEM_MIRROR_X +msgid "Mirror |" +msgstr "Mirall |" + +#. MENU_ITEM_MIRROR_Y +msgid "Mirror -" +msgstr "Mirall -" + +#. FRAME_RAW_IMAGE +msgid "Raw image" +msgstr "Imatge en cru" + +#. FRAME_ENHANCED_IMAGE +msgid "Enhanced image" +msgstr "Imatge millorada" + +#. BUTTON_SCAN +msgid "Scan" +msgstr "Escaneja" + +#. BUTTON_OK +msgid "Ok" +msgstr "D'acord" + +#. BUTTON_ACCEPT +msgid "Accept" +msgstr "Accepta" + +#. BUTTON_NOT_ACCEPT +msgid "Not accept" +msgstr "No acceptis" + +#. BUTTON_APPLY +msgid "Apply" +msgstr "Aplica" + +#. BUTTON_CANCEL +msgid "Cancel" +msgstr "Cancel·la" + +#. BUTTON_REDUCE +msgid "Reduce" +msgstr "Redueix" + +#. BUTTON_CONT_AT_OWN_RISK +msgid "Continue at your own risk" +msgstr "Continueu al vostre risc" + +#. BUTTON_BROWSE +msgid "Browse" +msgstr "Navega" + +#. BUTTON_OVERWRITE +msgid "Overwrite" +msgstr "Sobreescriu" + +#. BUTTON_BATCH_LIST_SCAN +msgid "Scan batch list" +msgstr "Escaneja el lot d'escaneig" + +#. BUTTON_BATCH_AREA_SCAN +msgid "Scan selected area" +msgstr "Escaneja l'àrea seleccionada" + +#. BUTTON_PAGE_DELETE +msgid "Delete page" +msgstr "Elimina la pàgina" + +#. BUTTON_PAGE_SHOW +msgid "Show page" +msgstr "Mostra la pàgina" + +#. BUTTON_PAGE_RENAME +msgid "Rename page" +msgstr "Reanomena la pàgina" + +#. BUTTON_IMAGE_DELETE +msgid "Delete image" +msgstr "Elimina la imatge" + +#. BUTTON_IMAGE_SHOW +msgid "Show image" +msgstr "Mostra la imatge" + +#. BUTTON_IMAGE_EDIT +msgid "Edit image" +msgstr "Edita la imatge" + +#. BUTTON_IMAGE_RENAME +msgid "Rename image" +msgstr "Reanomena la imatge" + +#. BUTTON_FILE_INSERT +msgid "Insert file" +msgstr "Insereix un fitxer" + +#. BUTTON_CREATE_PROJECT +msgid "Create project" +msgstr "Crea un projecte" + +#. BUTTON_SEND_PROJECT +msgid "Send project" +msgstr "Envia el projecte" + +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Desa el fitxer multipàgina" + +#. BUTTON_DELETE_PROJECT +msgid "Delete project" +msgstr "Elimina el projecte" + +#. BUTTON_ADD_PRINTER +msgid "Add printer" +msgstr "Afegeix una impressora" + +#. BUTTON_DELETE_PRINTER +msgid "Delete printer" +msgstr "Elimina la impressora" + +#. BUTTON_PREVIEW_ACQUIRE +msgid "Acquire preview" +msgstr "Adquireix una previsualització" + +#. BUTTON_PREVIEW_CANCEL +msgid "Cancel preview" +msgstr "Cancel·la la previsualització" + +#. BUTTON_DISCARD_IMAGE +msgid "Discard image" +msgstr "Descarta la imatge" + +#. BUTTON_DISCARD_ALL_IMAGES +msgid "Discard all images" +msgstr "Descarta totes les imatges" + +#. BUTTON_DO_NOT_CLOSE +msgid "Do not close" +msgstr "No tanquis" + +#. BUTTON_SCALE_BIND +msgid "Bind scale" +msgstr "Fixa l'escala" + +#. RADIO_BUTTON_FINE_MODE +msgid "Fine mode" +msgstr "Mode detallat" + +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "Correu HTML" + +#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT +msgid "Save device preferences at exit" +msgstr "Desa la configuració del dispositiu en sortir" + +#. RADIO_BUTTON_OVERWRITE_WARNING +msgid "Overwrite warning" +msgstr "Avisa en sobreescriure" + +#. RADIO_BUTTON_SKIP_EXISTING_NRS +msgid "Skip existing filenames" +msgstr "Omet els noms de fitxer existents" + +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Desa en PostScript comprimit amb zlib (PS nivell 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED +msgid "Save PDF zlib compressed" +msgstr "Desa en PDF comprimit amb zlib" + +#. RADIO_BUTTON_SAVE_PNM16_AS_ASCII +msgid "Save 16bit pnm in ascii format" +msgstr "Desa en format ASCII els PNM de 16 bits" + +#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT +msgid "Reduce 16 bit image to 8 bit" +msgstr "Redueix les imatges de 16 bits a 8 bits" + +#. RADIO_BUTTON_WINDOW_FIXED +msgid "Main window size fixed" +msgstr "Finestra principal de mida fixa" + +#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA +#, fuzzy +msgid "Disable GIMP preview gamma" +msgstr "Inhabilita la previsualització de gamma d'El Gimp" + +#. RADIO_BUTTON_PRIVATE_COLORMAP +msgid "Use private colormap" +msgstr "Usa un mapa de colors personal" + +#. RADIO_BUTTON_AUTOENHANCE_GAMMA +msgid "Autoenhance gamma" +msgstr "Millora la gamma automàticament" + +#. RADIO_BUTTON_PRESELECT_SCANAREA +msgid "Preselect scanarea" +msgstr "Preselecciona l'àrea d'escaneig" + +#. RADIO_BUTTON_AUTOCORRECT_COLORS +msgid "Autocorrect colors" +msgstr "Corregeix els colors automàticament" + +#. RADIO_BUTTON_OCR_USE_GUI_PIPE +msgid "Use GUI progress pipe" +msgstr "Usa el conducte de progrés de la interfície gràfica" + +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + +#. TEXT_SCANNING_DEVICES +msgid "scanning for devices" +msgstr "S'estan cercant els dispositius" + +#. TEXT_AVAILABLE_DEVICES +msgid "Available devices:" +msgstr "Dispositius disponibles:" + +#. TEXT_XSANE_OPTIONS +msgid "XSane options" +msgstr "Opcions de l'XSane" + +#. TEXT_FILETYPE +msgid "Type" +msgstr "Tipus" + +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Tots els colors" + +#. TEXT_SCANNER_BACKEND +msgid "Scanner and backend:" +msgstr "Escàner i controlador:" + +#. TEXT_VENDOR +msgid "Vendor:" +msgstr "Proveïdor:" + +#. TEXT_MODEL +msgid "Model:" +msgstr "Model:" + +#. TEXT_TYPE +msgid "Type:" +msgstr "Tipus:" + +#. TEXT_DEVICE +msgid "Device:" +msgstr "Dispositiu:" + +#. TEXT_LOADED_BACKEND +msgid "Loaded backend:" +msgstr "Controlador carregat:" + +#. TEXT_SANE_VERSION +msgid "Sane version:" +msgstr "Versió del Sane:" + +#. TEXT_RECENT_VALUES +msgid "Recent values:" +msgstr "Valors recents:" + +#. TEXT_GAMMA_CORR_BY +msgid "Gamma correction by:" +msgstr "Correcció de gamma per:" + +#. TEXT_SCANNER +msgid "scanner" +msgstr "Escàner" + +#. TEXT_SOFTWARE_XSANE +msgid "software (XSane)" +msgstr "Programari (XSane)" + +#. TEXT_NONE +msgid "none" +msgstr "Cap" + +#. TEXT_GAMMA_INPUT_DEPTH +msgid "Gamma input depth:" +msgstr "Profunditat de la gamma d'entrada:" + +#. TEXT_GAMMA_OUTPUT_DEPTH +msgid "Gamma output depth:" +msgstr "Profunditat de la gamma de sortida:" + +#. TEXT_SCANNER_OUTPUT_DEPTH +msgid "Scanner output depth:" +msgstr "Profunditat de sortida de l'escàner:" + +#. TEXT_OUTPUT_FORMATS +msgid "XSane output formats:" +msgstr "Formats de sortida de l'XSane:" + +#. TEXT_8BIT_FORMATS +msgid "8 bit output formats:" +msgstr "Formats de sortida de 8 bits:" + +#. TEXT_16BIT_FORMATS +msgid "16 bit output formats:" +msgstr "Formats de sortida de 16 bits:" + +#. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy +msgid "" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" +msgstr "" +"La profunditat de 16 bits per color no és permesa per a aquest format de " +"sortida.\n" +"Voleu reduir la profunditat de color a 8 bits?" + +#. TEXT_AUTHORIZATION_REQ +msgid "Authorization required for" +msgstr "Autorització requerida per a" + +#. TEXT_AUTHORIZATION_SECURE +msgid "Password transmission is secure" +msgstr "La transmissió de la contrasenya és segura" + +#. TEXT_AUTHORIZATION_INSECURE +msgid "Backend requests plain-text password" +msgstr "El controlador demana la contrasenya en text" + +#. TEXT_USERNAME +msgid "Username :" +msgstr "Nom d'usuari:" + +#. TEXT_PASSWORD +msgid "Password :" +msgstr "Contrasenya:" + +#. TEXT_INVALID_PARAMS +msgid "Invalid parameters." +msgstr "Paràmetres invàlids." + +#. TEXT_VERSION +msgid "version:" +msgstr "Versió:" + +#. TEXT_PACKAGE +msgid "package" +msgstr "Paquet:" + +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Tots els colors" + +#. TEXT_WITH_GIMP_SUPPORT +msgid "with GIMP support" +msgstr "Funciona amb El Gimp" + +#. TEXT_WITHOUT_GIMP_SUPPORT +msgid "without GIMP support" +msgstr "No funciona amb El Gimp" + +#. TEXT_GTK_VERSION +msgid "compiled with GTK-" +msgstr "Compilat amb GTK-" + +#. TEXT_GIMP_VERSION +msgid "compiled with GIMP-" +msgstr "compilat amb El Gimp-" + +#. TEXT_UNKNOWN +msgid "unknown" +msgstr "desconegut" + +#. TEXT_EULA +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +"Should the program prove defective, you assume the cost of all\n" +"necessary servicing, repair or correction. To use this program you\n" +"have to read, understand and accept the following\n" +"\"NO WARRANTY\" agreement.\n" +msgstr "" +"L'XSane es distribueix sota els termes de la Llicència Pública General de " +"GNU\n" +"tal com l'ha publicada la Free Software Foundation, ja sigui la versió 2\n" +"de la Llicència o, si ho preferiu, qualsevol versió posterior.\n" +"\n" +"Aquest programa es distribueix amb l'esperança que serà útil, però\n" +"SENSE CAP GARANTIA, ni tan sols les garanties implícites de\n" +"COMERCIABILITAT o d'ADEQUACIÓ A UN PROPÒSIT PARTICULAR.\n" +"Si el programa tingués algun error, assumireu el cost de totes les " +"revisions,\n" +"reparacions o correccions necessàries. Per a usar aquest programa,\n" +"heu de llegir, entendre i acceptar el següent acord de \"NO GARANTIA\".\n" + +#. TEXT_GPL +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +msgstr "" +"L'XSane es distribueix sota els termes de la Llicència Pública General de " +"GNU\n" +"tal com l'ha publicada la Free Software Foundation, ja sigui la versió 2\n" +"de la Llicència o, si ho preferiu, qualsevol versió posterior.\n" +"\n" +"Aquest programa es distribueix amb l'esperança que serà útil, però\n" +"SENSE CAP GARANTIA, ni tan sols les garanties implícites\n" +"de COMERCIABILITAT o d'ADEQUACIÓ A UN PROPÒSIT PARTICULAR.\n" + +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "Adreça electrònica:" + +#. TEXT_HOMEPAGE +msgid "Homepage:" +msgstr "Pàgina d'inici:" + +#. TEXT_FILE +msgid "File:" +msgstr "Fitxer:" + +#. TEXT_TRANSLATION +msgid "Translation:" +msgstr "Traducció:" + +#. Please translate this to something like +#. translation to YOUR LANGUAGE\n +#. by YOUR NAME\n +#. E-mail: your.name@yourdomain.com\n +#. TEXT_TRANSLATION_INFO +msgid "" +"untranslated original english text\n" +"by Oliver Rauch\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" +msgstr "" +"Traducció al català\n" +"de Raül Cambeiro\n" +"raulcambeiro@ambtu.bcn.es\n" + +#. TEXT_INFO_BOX +msgid "0x0: 0KB" +msgstr "0x0: 0 KB" + +#. TEXT_ADF_PAGES_SCANNED +msgid "Scanned pages: " +msgstr "Pàgines escanejades:" + +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "Text del missatge:" + +#. TEXT_ATTACHMENTS +msgid "Attachments:" +msgstr "Adjuncions:" + +#. TEXT_EMAIL_STATUS +msgid "Project status:" +msgstr "Estat del projecte:" + +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "Tipus de fitxer de la imatge de correu electrònic:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Pàgines:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Tipus de fitxer del document multipàgina:" + +#. TEXT_MEDIUM_DEFINITION_NAME +msgid "Medium Name:" +msgstr "Nom del mitjà:" + +#. TEXT_VIEWER_IMAGE_INFO +#, fuzzy, c-format +msgid "" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" +msgstr "" +"Mida %d x %d píxels, %d bits/color, %d colors, %1.0f ppp x %1.0f ppp, %1.1f %" +"s" + +#. TEXT_DESPECKLE_RADIUS +msgid "Despeckle radius:" +msgstr "Radi de l'eliminació d'esquitxos:" + +#. TEXT_BLUR_RADIUS +msgid "Blur radius:" +msgstr "Radi de difuminació:" + +#. TEXT_BATCH_AREA_DEFAULT_NAME +msgid "(no name)" +msgstr "(sense nom)" + +#. TEXT_BATCH_LIST_AREANAME +msgid "Area name:" +msgstr "Nom de l'àrea:" + +#. TEXT_BATCH_LIST_SCANMODE +msgid "Scanmode:" +msgstr "Mode d'escaneig:" + +#. TEXT_BATCH_LIST_GEOMETRY_TL +msgid "Top left:" +msgstr "Superior esquerre:" + +#. TEXT_BATCH_LIST_GEOMETRY_SIZE +msgid "Size:" +msgstr "Mida:" + +#. TEXT_BATCH_LIST_RESOLUTION +msgid "Resolution:" +msgstr "Resolució:" + +#. TEXT_BATCH_LIST_BIT_DEPTH +msgid "Bit depth:" +msgstr "Profunditat de color:" + +#. TEXT_BATCH_LIST_BY_GUI +msgid "as selected" +msgstr "com s'ha seleccionat" + +#. TEXT_SETUP_PRINTER_SEL +msgid "Printer selection:" +msgstr "Selecció d'impressora:" + +#. TEXT_SETUP_PRINTER_NAME +msgid "Name:" +msgstr "Nom:" + +#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND +msgid "Command:" +msgstr "Ordre:" + +#. TEXT_SETUP_COPY_NR_OPT +msgid "Copy number option:" +msgstr "Opció del nombre de còpies:" + +#. TEXT_SETUP_PRINTER_LINEART_RES +msgid "Lineart resolution (dpi):" +msgstr "Resolució en mode línia (ppp):" + +#. TEXT_SETUP_PRINTER_GRAYSCALE_RES +msgid "Grayscale resolution (dpi):" +msgstr "Resolució en escala de grisos (ppp):" + +#. TEXT_SETUP_PRINTER_COLOR_RES +msgid "Color resolution (dpi):" +msgstr "Resolució en color (ppp):" + +#. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH +msgid "Width" +msgstr "Amplada" + +#. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT +msgid "Height" +msgstr "Alçària" + +#. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT +msgid "Left offset" +msgstr "Marge esquerre" + +#. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM +msgid "Bottom offset" +msgstr "Marge inferior" + +#. TEXT_SETUP_PRINTER_GAMMA +msgid "Printer gamma value:" +msgstr "Valor gamma de la impressora:" + +#. TEXT_SETUP_PRINTER_GAMMA_RED +msgid "Printer gamma red:" +msgstr "Gamma per al vermell de la impressora:" + +#. TEXT_SETUP_PRINTER_GAMMA_GREEN +msgid "Printer gamma green:" +msgstr "Gamma per al verd de la impressora:" + +#. TEXT_SETUP_PRINTER_GAMMA_BLUE +msgid "Printer gamma blue:" +msgstr "Gamma per al blau de la impressora:" + +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Elimina la impressora" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Elimina la impressora" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" +"Crea una imatge PostScript comprimida amb zlib (PS nivell 3) per a imprimir" + +#. TEXT_SETUP_TMP_PATH +msgid "Temporary directory" +msgstr "Directori temporal" + +#. TEXT_SETUP_IMAGE_PERMISSION +msgid "Image-file permissions" +msgstr "Permisos del fitxer d'imatge" + +#. TEXT_SETUP_DIR_PERMISSION +msgid "Directory permissions" +msgstr "Permisos del directori" + +#. TEXT_SETUP_JPEG_QUALITY +msgid "JPEG image quality" +msgstr "Qualitat d'imatge JPEG" + +#. TEXT_SETUP_PNG_COMPRESSION +msgid "PNG image compression" +msgstr "Compressió d'imatge PNG" + +#. TEXT_SETUP_FILENAME_COUNTER_LEN +msgid "Filename counter length" +msgstr "Llargada del comptador per a noms de fitxer consecutius" + +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "Taxa de compressió zip per als TIFF" + +#. TEXT_SETUP_TIFF_COMPRESSION_16 +msgid "TIFF 16 bit image compression" +msgstr "Compressió de les imatges TIFF de 16 bits" + +#. TEXT_SETUP_TIFF_COMPRESSION_8 +msgid "TIFF 8 bit image compression" +msgstr "Compressió de les imatges TIFF de 8 bits" + +#. TEXT_SETUP_TIFF_COMPRESSION_1 +msgid "TIFF lineart image compression" +msgstr "Compressió de les imatges TIFF en mode linia (binari)" + +#. TEXT_SETUP_SHOW_RANGE_MODE +msgid "Show range as:" +msgstr "Presenta els intervals amb:" + +#. TEXT_SETUP_PREVIEW_OVERSAMPLING +msgid "Preview oversampling:" +msgstr "Sobremostreig de la previsualització:" + +#. TEXT_SETUP_PREVIEW_GAMMA +msgid "Preview gamma:" +msgstr "Gamma de la previsualització:" + +#. TEXT_SETUP_PREVIEW_GAMMA_RED +msgid "Preview gamma red:" +msgstr "Gamma del vermell de la previsualització:" + +#. TEXT_SETUP_PREVIEW_GAMMA_GREEN +msgid "Preview gamma green:" +msgstr "Gamma del verd de la previsualització:" + +#. TEXT_SETUP_PREVIEW_GAMMA_BLUE +msgid "Preview gamma blue:" +msgstr "Gamma del blau de la previsualització:" + +#. TEXT_SETUP_LINEART_MODE +msgid "Threshold option:" +msgstr "Opció de llindar:" + +#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE +msgid "Preview pipette range" +msgstr "Marge de la pipeta de la previsualització" + +#. TEXT_SETUP_THRESHOLD_MIN +msgid "Threshold minimum:" +msgstr "Llindar inferior:" + +#. TEXT_SETUP_THRESHOLD_MAX +msgid "Threshold maximum:" +msgstr "Llindar superior:" + +#. TEXT_SETUP_THRESHOLD_MUL +msgid "Threshold multiplier:" +msgstr "Multiplicador del llindar:" + +#. TEXT_SETUP_THRESHOLD_OFF +msgid "Threshold offset:" +msgstr "Desplaçament del llindar:" + +#. TEXT_SETUP_GRAYSCALE_SCANMODE +msgid "Name of grayscale scanmode:" +msgstr "Nom del mode d'escaneig en escala de grisos:" + +#. TEXT_SETUP_HELPFILE_VIEWER +msgid "Helpfile viewer (HTML):" +msgstr "Visualitzador de l'ajuda (HTML):" + +#. TEXT_SETUP_FAX_RECEIVER_OPTION +msgid "Receiver option:" +msgstr "Opció per al receptor:" + +#. TEXT_SETUP_FAX_POSTSCRIPT_OPT +msgid "Postscriptfile option:" +msgstr "Opció per a fitxers PostScript:" + +#. TEXT_SETUP_FAX_NORMAL_MODE_OPT +msgid "Normal mode option:" +msgstr "Opció per al mode normal:" + +#. TEXT_SETUP_FAX_FINE_MODE_OPT +msgid "Fine mode option:" +msgstr "Opció per al mode detallat:" + +#. TEXT_SETUP_FAX_PROGRAM_DEFAULTS +msgid "Set program defaults for:" +msgstr "Estableix els valors per defecte per a:" + +#. TEXT_SETUP_FAX_VIEWER +msgid "Viewer (Postscript):" +msgstr "Visualitzador (PostScript)" + +#. TEXT_SETUP_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" +"Crea una imatge PostScript comprimida amb zlib (PS nivell 3) per als faxos" + +#. TEXT_SETUP_SMTP_SERVER +msgid "SMTP server:" +msgstr "Servidor SMTP:" + +#. TEXT_SETUP_SMTP_PORT +msgid "SMTP port:" +msgstr "Port SMTP:" + +#. TEXT_SETUP_EMAIL_FROM +msgid "From:" +msgstr "De:" + +#. TEXT_SETUP_EMAIL_REPLY_TO +msgid "Reply to:" +msgstr "Respon a:" + +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "Autenticació de correu" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "Usuari:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "Contrasenya:" + +#. TEXT_SETUP_POP3_SERVER +msgid "POP3 server:" +msgstr "Servidor POP3:" + +#. TEXT_SETUP_POP3_PORT +msgid "POP3 port:" +msgstr "Port POP3:" + +#. TEXT_SETUP_OCR_COMMAND +msgid "OCR Command:" +msgstr "Ordre OCR:" + +#. TEXT_SETUP_OCR_INPUTFILE_OPT +msgid "Inputfile option:" +msgstr "Opció per al fitxer d'entrada:" + +#. TEXT_SETUP_OCR_OUTPUTFILE_OPT +msgid "Outputfile option:" +msgstr "Opció per al fitxer de sortida:" + +#. TEXT_SETUP_OCR_USE_GUI_PIPE_OPT +msgid "Use GUI progress pipe:" +msgstr "Usa el conducte de progrés de la interfície gràfica:" + +#. TEXT_SETUP_OCR_OUTFD_OPT +msgid "GUI output-fd option:" +msgstr "Opció per al descriptor de fitxer de sortida de la interfície:" + +#. TEXT_SETUP_OCR_PROGRESS_KEYWORD +msgid "Progress keyword:" +msgstr "Paraula clau de progrés:" + +#. TEXT_SETUP_PERMISSION_USER +msgid "user" +msgstr "Usuari" + +#. TEXT_SETUP_PERMISSION_GROUP +msgid "group" +msgstr "Grup" + +#. TEXT_SETUP_PERMISSION_ALL +msgid "all" +msgstr "Tothom" + +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Elimina la impressora" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Elimina la impressora" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Elimina la impressora" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + +msgid "new media" +msgstr "Nou suport" + +#. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE +msgid "Save" +msgstr "Desament" + +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Tipus de fitxer" + +#. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY +msgid "Copy" +msgstr "Còpia" + +#. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX +msgid "Fax" +msgstr "Fax" + +#. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL +msgid "E-mail" +msgstr "Correu electrònic" + +#. NOTEBOOK_OCR_OPTIONS +msgid "OCR" +msgstr "OCR" + +#. NOTEBOOK_DISPLAY_OPTIONS +msgid "Display" +msgstr "Pantalla" + +#. NOTEBOOK_ENHANCE_OPTIONS +msgid "Enhancement" +msgstr "Realçament" + +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Multipàgina" + +#. MENU_ITEM_SHOW_TOOLTIPS +msgid "Show tooltips" +msgstr "Mostra els indicadors de funció" + +#. MENU_ITEM_SHOW_PREVIEW +msgid "Show preview" +msgstr "Mostra la previsualització" + +#. MENU_ITEM_SHOW_HISTOGRAM +msgid "Show histogram" +msgstr "Mostra l'histograma" + +#. MENU_ITEM_SHOW_GAMMA +msgid "Show gamma curve" +msgstr "Mostra la corba gamma" + +#. MENU_ITEM_SHOW_BATCH_SCAN +msgid "Show batch scan" +msgstr "Mostra l'escaneig per lots" + +#. MENU_ITEM_SHOW_STANDARDOPTIONS +msgid "Show standard options" +msgstr "Mostra les opcions bàsiques" + +#. MENU_ITEM_SHOW_ADVANCEDOPTIONS +msgid "Show advanced options" +msgstr "Mostra les opcions avançades" + +#. MENU_ITEM_SETUP +msgid "Setup" +msgstr "Configuració" + +#. MENU_ITEM_LENGTH_UNIT +msgid "Length unit" +msgstr "Unitats de longitud" + +#. SUBMENU_ITEM_LENGTH_MILLIMETERS +msgid "millimeters" +msgstr "Mil·límetres" + +#. SUBMENU_ITEM_LENGTH_CENTIMETERS +msgid "centimeters" +msgstr "Centímetres" + +#. SUBMENU_ITEM_LENGTH_INCHES +msgid "inches" +msgstr "Polzades" + +#. MENU_ITEM_UPDATE_POLICY +msgid "Update policy" +msgstr "Política d'actualització" + +#. SUBMENU_ITEM_POLICY_CONTINUOUS +msgid "continuous" +msgstr "Contínua" + +#. SUBMENU_ITEM_POLICY_DISCONTINU +msgid "discontinuous" +msgstr "Discontínua" + +#. SUBMENU_ITEM_POLICY_DELAYED +msgid "delayed" +msgstr "Endarrerida" + +#. MENU_ITEM_SHOW_RESOLUTIONLIST +msgid "Show resolution list" +msgstr "Mostra la llista de resolucions" + +#. MENU_ITEM_PAGE_ROTATE +msgid "Rotate postscript" +msgstr "Rota el PostScript" + +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Tots els colors" + +#. MENU_ITEM_EDIT_MEDIUM_DEF +msgid "Edit medium definition" +msgstr "Edita la definició del mitjà" + +#. MENU_ITEM_SAVE_DEVICE_SETTINGS +msgid "Save device settings" +msgstr "Desa la configuració del dispositiu" + +#. MENU_ITEM_LOAD_DEVICE_SETTINGS +msgid "Load device settings" +msgstr "Carrega una configuració de dispositiu" + +#. MENU_ITEM_CHANGE_WORKING_DIR +msgid "Change directory" +msgstr "Canvia el directori" + +#. MENU_ITEM_XSANE_EULA +msgid "Show EULA" +msgstr "Mostra l'acord de llicència" + +#. MENU_ITEM_XSANE_GPL +msgid "Show license (GPL)" +msgstr "Mostra la llicència (GPL)" + +#. MENU_ITEM_XSANE_DOC +msgid "XSane doc" +msgstr "Documentació de l'XSane" + +#. MENU_ITEM_BACKEND_DOC +msgid "Backend doc" +msgstr "Documentació del controlador" + +#. MENU_ITEM_AVAILABLE_BACKENDS +msgid "Available backends" +msgstr "Controladors disponibles" + +#. MENU_ITEM_SCANTIPS +msgid "Scantips" +msgstr "Consells per a escanejar" + +#. MENU_ITEM_PROBLEMS +msgid "Problems?" +msgstr "Problemes?" + +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Afegeix una impressora" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Afegeix una impressora" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Afegeix una impressora" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Afegeix una impressora" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Autorització" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "escriptura" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Redueix" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Difumina" + +#. MENU_ITEM_COUNTER_LEN_INACTIVE +msgid "inactive" +msgstr "inactiu" + +#. MENU_ITEM_TIFF_COMP_NONE +msgid "no compression" +msgstr "Sense compressió" + +#. MENU_ITEM_TIFF_COMP_CCITTRLE +msgid "CCITT 1D Huffman compression" +msgstr "Compressió CCITT 1D Huffman" + +#. MENU_ITEM_TIFF_COMP_CCITFAX3 +msgid "CCITT Group 3 Fax compression" +msgstr "Compressió CCITT Fax Grup 3" + +#. MENU_ITEM_TIFF_COMP_CCITFAX4 +msgid "CCITT Group 4 Fax compression" +msgstr "Compressió CCITT Fax Grup 4" + +#. MENU_ITEM_TIFF_COMP_JPEG +msgid "JPEG DCT compression" +msgstr "Compressió JPEG DCT" + +#. MENU_ITEM_TIFF_COMP_PACKBITS +msgid "pack bits" +msgstr "Empaqueta els bits" + +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "Desinfla" + +#. MENU_ITEM_RANGE_SCALE +msgid "Slider (Scale)" +msgstr "Lliscador (escala)" + +#. MENU_ITEM_RANGE_SCROLLBAR +msgid "Slider (Scrollbar)" +msgstr "Lliscador (barra de desplaçament)" + +#. MENU_ITEM_RANGE_SPINBUTTON +msgid "Spinbutton" +msgstr "Botó giratori" + +#. MENU_ITEM_RANGE_SCALE_SPIN +msgid "Scale and Spinbutton" +msgstr "Escala i botó giratori" + +#. MENU_ITEM_RANGE_SCROLL_SPIN +msgid "Scrollbar and Spinbutton" +msgstr "Barra de desplaçament i botó giratori" + +#. MENU_ITEM_LINEART_MODE_STANDARD +msgid "Standard options window (lineart)" +msgstr "Finestra d'opcions bàsiques (mode línia)" + +#. MENU_ITEM_LINEART_MODE_XSANE +msgid "XSane main window (lineart)" +msgstr "Finestra principal de l'XSane (mode línia)" + +#. MENU_ITEM_LINEART_MODE_GRAY +msgid "XSane main window (grayscale->lineart)" +msgstr "Finestra principal de l'XSane (escala de grisos a mode línia)" + +#. MENU_ITEM_SELECTION_NONE +msgid "(none)" +msgstr "(cap)" + +#. MENU_ITEM_FILETYPE_BY_EXT +msgid "by ext" +msgstr "Per extensió" + +#. MENU_ITEM_PRESET_AREA_ADD_SEL +msgid "Add selection to list" +msgstr "Afegeix la selecció a la llista" + +#. MENU_ITEM_MEDIUM_ADD +msgid "Add medium definition" +msgstr "Afegeix una definició de mitjà" + +#. MENU_ITEM_RENAME +msgid "Rename item" +msgstr "Reanomena l'element" + +#. MENU_ITEM_DELETE +msgid "Delete item" +msgstr "Elimina l'element" + +#. MENU_ITEM_MOVE_UP +msgid "Move item up" +msgstr "Puja l'element" + +#. MENU_ITEM_MOVE_DWN +msgid "Move item down" +msgstr "Baixa l'element" + +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "Sense autenticació" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 abans d'SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP senzill" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP amb identificació" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Elimina la impressora" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Corregeix els colors automàticament" + +#. PROGRESS_SCANNING +msgid "Scanning" +msgstr "S'està escanejant" + +#. PROGRESS_RECEIVING_FRAME_DATA +#, c-format +msgid "Receiving %s data" +msgstr "S'estan rebent dades %s" + +#. PROGRESS_PAGE +msgid "page" +msgstr "pàgina" + +#. PROGRESS_TRANSFERING_DATA +msgid "Transfering image" +msgstr "S'està transferint la imatge" + +#. PROGRESS_ROTATING_DATA +msgid "Rotating image" +msgstr "S'està rotant la imatge" + +#. PROGRESS_MIRRORING_DATA +msgid "Mirroring image" +msgstr "S'està reflectint la imatge" + +#. PROGRESS_PACKING_DATA +msgid "Packing image" +msgstr "S'està empaquetant la imatge" + +#. PROGRESS_CONVERTING_DATA +msgid "Converting image" +msgstr "S'està convertint la imatge" + +#. PROGRESS_SAVING_DATA +msgid "Saving image" +msgstr "S'està desant la imatge" + +#. PROGRESS_CLONING_DATA +msgid "Cloning image" +msgstr "S'està clonant la imatge" + +#. PROGRESS_SCALING_DATA +msgid "Scaling image" +msgstr "S'està escalant la imatge" + +#. PROGRESS_DESPECKLING_DATA +msgid "Despeckling image" +msgstr "S'estan eliminant els esquitxos de la imatge" + +#. PROGRESS_BLURING_DATA +msgid "Bluring image" +msgstr "S'està difuminant la imatge" + +#. PROGRESS_OCR +msgid "OCR in progress" +msgstr "OCR en progrés" + +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Corregeix els colors automàticament" + +#. DESC_SCAN_START +msgid "Start scan " +msgstr "Inicia l'escaneig " + +#. DESC_SCAN_CANCEL +msgid "Cancel scan " +msgstr "Cancel·la l'escaneig " + +#. DESC_PREVIEW_ACQUIRE +msgid "Acquire preview scan " +msgstr "Adquireix un escaneig de previsualització " + +#. DESC_PREVIEW_CANCEL +msgid "Cancel preview scan " +msgstr "Cancel·la l'escaneig de previsualització " + +#. DESC_XSANE_MODE +msgid "" +"viewer-, save-, photocopy-, multipage-, fax-" +" or e-mail-" +msgstr "" +"Visualitzador , Desament , Fotocòpia , Multipàgina " +", Fax o Correu electrònic " + +#. DESC_XSANE_MEDIUM +msgid "" +"Select source medium type.\n" +"To rename, reorder or delete an entry use context menu (right mouse " +"button).\n" +"To create a medium enable the option edit medium definition in preferences " +"menu." +msgstr "" +"Seleccioneu el tipus de mitjà d'origen.\n" +"Per a reanomenar, reordenar o eliminar una entrada empreu el menú contextual " +"(botó dret del ratolí).\n" +"Per a crear un mitjà, habiliteu l'opció \"Edita la definició del mitjà\" al " +"menú Preferències." + +#. DESC_FILENAME_COUNTER_STEP +msgid "Value that is added to filenamecounter after scan" +msgstr "" +"Valor que s'afegeix al comptador dels noms de fitxers consecutius després " +"d'escanejar" + +#. DESC_BROWSE_FILENAME +msgid "Browse for image filename" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_FILENAME +msgid "Filename for scanned image" +msgstr "Nom de fitxer per a la imatge escanejada" + +#. DESC_FILETYPE +msgid "" +"Type of image format, the suitable filename extension is automatically added " +"to the filename" +msgstr "" +"Tipus de format d'imatge; l'extensió de tipus de fitxer apropiada s'afegirà " +"automàticament al nom del fitxer" + +#. DESC_FAXPROJECT +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_FAXPAGENAME +msgid "Enter new name for faxpage" +msgstr "Introduïu un nou nom per a la pàgina de fax" + +#. DESC_FAXRECEIVER +msgid "Enter receiver phone number or address" +msgstr "Introduïu el número de telèfon o l'adreça del receptor" + +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "Introduïu un nou nom per a la imatge de correu electrònic" + +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "Introduïu una adreça electrònica" + +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "Introduïu l'assumpte del missatge" + +#. DESC_EMAIL_FILETYPE +msgid "Select filetype for image attachments" +msgstr "Seleccioneu el tipus de fitxer per a les imatges adjuntes" + +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Seleccioneu el tipus del fitxer multipàgina" + +#. DESC_PRESET_AREA_RENAME +msgid "Enter new name for preset area" +msgstr "Introduïu un nou nom per a l'àrea prefixada" + +#. DESC_PRESET_AREA_ADD +msgid "Enter name for new preset area" +msgstr "Introduïu el nom de la nova àrea prefixada" + +#. DESC_MEDIUM_RENAME +msgid "Enter new name for medium definition" +msgstr "Introduïu un nou nom per a la definició del mitjà" + +#. DESC_MEDIUM_ADD +msgid "Enter name for new medium definition" +msgstr "Introduïu el nom de la nova definició de mitjà" + +#. DESC_PRINTER_SELECT +msgid "Select printerdefinition " +msgstr "Seleccioneu la definició d'impressora " + +#. DESC_RESOLUTION +msgid "Set scan resolution" +msgstr "Especifiqueu la resolució de l'escaneig" + +#. DESC_RESOLUTION_X +msgid "Set scan resolution for x direction" +msgstr "Especifiqueu la resolució horitzontal de l'escaneig" + +#. DESC_RESOLUTION_Y +msgid "Set scan resolution for y direction" +msgstr "Especifiqueu la resolució vertical de l'escaneig" + +#. DESC_ZOOM +msgid "Set zoomfactor" +msgstr "Especifiqueu el factor d'ampliació" + +#. DESC_ZOOM_X +msgid "Set zoomfactor for x direction" +msgstr "Especifiqueu el factor d'ampliació horitzontal" + +#. DESC_ZOOM_Y +msgid "Set zoomfactor for y direction" +msgstr "Especifiqueu el factor d'ampliació vertical" + +#. DESC_COPY_NUMBER +msgid "Set number of copies" +msgstr "Especifiqueu el nombre de còpies" + +#. DESC_NEGATIVE +msgid "Negative: Invert colors for scanning negatives " +msgstr "Negatiu: inverteix els colors per a escanejar negatius " + +#. DESC_GAMMA +msgid "Set gamma value" +msgstr "Especifiqueu el valor de correcció gamma" + +#. DESC_GAMMA_R +msgid "Set gamma value for red component" +msgstr "Especifiqueu el valor de gamma de la component vermella" + +#. DESC_GAMMA_G +msgid "Set gamma value for green component" +msgstr "Especifiqueu el valor de gamma de la component verda" + +#. DESC_GAMMA_B +msgid "Set gamma value for blue component" +msgstr "Especifiqueu el valor de gamma de la component blava" + +#. DESC_BRIGHTNESS +msgid "Set brightness" +msgstr "Especifiqueu la lluminositat" + +#. DESC_BRIGHTNESS_R +msgid "Set brightness for red component" +msgstr "Especifiqueu la lluminositat de la component vermella" + +#. DESC_BRIGHTNESS_G +msgid "Set brightness for green component" +msgstr "Especifiqueu la lluminositat de la component verda" + +#. DESC_BRIGHTNESS_B +msgid "Set brightness for blue component" +msgstr "Especifiqueu la lluminositat de la component blava" + +#. DESC_CONTRAST +msgid "Set contrast" +msgstr "Especifiqueu el contrast" + +#. DESC_CONTRAST_R +msgid "Set contrast for red component" +msgstr "Especifiqueu el contrast de la component vermella" + +#. DESC_CONTRAST_G +msgid "Set contrast for green component" +msgstr "Especifiqueu el contrast de la component verda" + +#. DESC_CONTRAST_B +msgid "Set contrast for blue component" +msgstr "Especifiqueu el contrast de la component blava" + +#. DESC_THRESHOLD +msgid "Set threshold" +msgstr "Especifiqueu el llindar" + +#. DESC_RGB_DEFAULT +msgid "" +"RGB default: Set enhancement values for red, green and blue to default " +"values :\n" +" gamma = 1.0\n" +" brightness = 0\n" +" contrast = 0" +msgstr "" +"RGB predeterminat: estableix el realçament de vermell, verd i blau als " +"valors per defecte :\n" +" Gamma = 1,0\n" +" Lluminositat = 0\n" +" Contrast = 0" + +#. DESC_ENH_AUTO +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " +msgstr "Ajusta automàticament la gamma, la lluminositat i el contrast " + +#. DESC_ENH_DEFAULT +msgid "" +"Set default enhancement values :\n" +"gamma = 1.0\n" +"brightness = 0\n" +"contrast = 0" +msgstr "" +"Estableix els valors de realçament per defecte :\n" +" Gamma = 1,0\n" +" Lluminositat = 0\n" +" Contrast = 0" + +#. DESC_ENH_RESTORE +msgid "Restore enhancement values from preferences " +msgstr "Recupera els valors de realçament de les preferències " + +#. DESC_ENH_STORE +msgid "Store active enhancement values to preferences " +msgstr "" +"Emmagatzema a les preferències els valors de realçament actius " + +#. DESC_HIST_INTENSITY +msgid "Show histogram of intensity/gray " +msgstr "Mostra l'histograma d'intensitat o de grisos " + +#. DESC_HIST_RED +msgid "Show histogram of red component " +msgstr "Mostra l'histograma de la component vermella " + +#. DESC_HIST_GREEN +msgid "Show histogram of green component " +msgstr "Mostra l'histograma de la component verda " + +#. DESC_HIST_BLUE +msgid "Show histogram of blue component " +msgstr "Mostra l'histograma de la component blava " + +#. DESC_HIST_PIXEL +msgid "Display mode: show histogram with lines instead of pixels " +msgstr "" +"Mode de presentació: mostra l'histograma amb línies en comptes d'àrees " + +#. DESC_HIST_LOG +msgid "Show logarithm of pixelcount " +msgstr "Mostra el logaritme de la quantitat de píxels (eix vertical) " + +#. DESC_PRINTER_SETUP +msgid "Select definition to change" +msgstr "Seleccioneu la definició que voleu canviar" + +#. DESC_PRINTER_NAME +msgid "Define a name for the selection of this definition" +msgstr "Definiu un nom per a la selecció d'aquesta definició" + +#. DESC_PRINTER_COMMAND +msgid "Enter command to be executed in copy mode (e.g. \"lpr\")" +msgstr "Introduïu l'ordre que s'executarà en mode de còpia (p.ex.: \"lpr\")" + +#. DESC_COPY_NUMBER_OPTION +msgid "Enter option for copy numbers" +msgstr "Introduïu l'opció per al nombre de còpies" + +#. DESC_PRINTER_LINEART_RESOLUTION +msgid "" +"Resolution with which lineart images are printed and saved in postscript" +msgstr "" +"Resolució a la qual s'imprimeixen i es desen en PostScript les imatges en " +"blanc i negre (mode línia)" + +#. DESC_PRINTER_GRAYSCALE_RESOLUTION +msgid "" +"Resolution with which grayscale images are printed and saved in postscript" +msgstr "" +"Resolució a la qual s'imprimeixen i es desen en PostScript les imatges en " +"escala de grisos" + +#. DESC_PRINTER_COLOR_RESOLUTION +msgid "Resolution with which color images are printed and saved in postscript" +msgstr "" +"Resolució a la qual s'imprimeixen i es desen en PostScript les imatges en " +"color" + +#. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH +msgid "Width of printable area" +msgstr "Amplada de l'àrea imprimible" + +#. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT +msgid "Height of printable area" +msgstr "Alçària de l'àrea imprimible" + +#. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET +msgid "Left offset from the edge of the paper to the printable area" +msgstr "Distància entre el marge esquerre del paper i l'àrea imprimible" + +#. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET +msgid "Bottom offset from the edge of the paper to the printable area" +msgstr "Distància entre el marge inferior del paper i l'àrea imprimible" + +#. DESC_PRINTER_GAMMA +msgid "Additional gamma value for photocopy" +msgstr "Valor gamma addicional per a les fotocòpies" + +#. DESC_PRINTER_GAMMA_RED +msgid "Additional gamma value for red component for photocopy" +msgstr "Valor gamma addicional de la component vermella per a les fotocòpies" + +#. DESC_PRINTER_GAMMA_GREEN +msgid "Additional gamma value for green component for photocopy" +msgstr "Valor gamma addicional de la component verda per a les fotocòpies" + +#. DESC_PRINTER_GAMMA_BLUE +msgid "Additional gamma value for blue component for photocopy" +msgstr "Valor gamma addicional de la component blava per a les fotocòpies" + +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy +msgid "" +"Create zlib compressed postscript image for printer (flatedecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Crea una imatge PostScript comprimida amb zlib per a la impressora " +"(compressió FlatDecode).\n" +"Cal que la impressora permeti l'ús de PostScript nivell 3." + +#. DESC_TMP_PATH +msgid "Path to temp directory" +msgstr "Camí al directori temporal" + +#. DESC_BUTTON_TMP_PATH_BROWSE +msgid "Browse for temporary directory" +msgstr "Navega per a trobar el directoi temporal" + +#. DESC_JPEG_QUALITY +msgid "" +"Quality in percent if image is saved as jpeg or tiff with jpeg compression" +msgstr "" +"Qualitat, en percentatge, si deseu la imatge en JPEG o en TIFF amb " +"compressió JPEG" + +#. DESC_PNG_COMPRESSION +msgid "Compression if image is saved as png" +msgstr "Compressió si deseu la imatge en format PNG" + +#. DESC_FILENAME_COUNTER_LEN +msgid "Minimum length of counter in filename" +msgstr "" +"Nombre mínim de xifres per al comptador en els noms de fitxers consecutius" + +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Grau de compressió per als TIFF comprimits amb zip (algoritme Deflate)" + +#. DESC_TIFF_COMPRESSION_16 +msgid "Compression type if 16 bit image is saved as tiff" +msgstr "Tipus de compressió si deseu en TIFF una imatge de 16 bits" + +#. DESC_TIFF_COMPRESSION_8 +msgid "Compression type if 8 bit image is saved as tiff" +msgstr "Tipus de compressió si deseu en TIFF una imatge de 8 bits" + +#. DESC_TIFF_COMPRESSION_1 +msgid "Compression type if lineart image is saved as tiff" +msgstr "" +"Tipus de compressió si deseu en TIFF una imatge amb profunditat binària " +"(mode línia)" + +#. DESC_SAVE_DEVPREFS_AT_EXIT +msgid "Save device dependant preferences in default file at exit of xsane" +msgstr "" +"En sortir de l'XSane, desa les preferències que depenen del dispositiu en el " +"fitxer per defecte" + +#. DESC_OVERWRITE_WARNING +msgid "Warn before overwriting an existing file" +msgstr "Avisa abans de sobreescriure un fitxer existent" + +#. DESC_SKIP_EXISTING +msgid "" +"If filename counter is automatically increased, used numbers are skipped" +msgstr "" +"Si el comptador en el nom de fitxer s'incrementa automàticament, s'ometen " +"els números ja usats" + +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy +msgid "" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" +msgstr "" +"Comprimeix les imatges PostScript amb l'algoritme FlatDecode de zlib. Per a " +"poder imprimir un fitxer d'aquest tipus, la impressora ha d'entendre el " +"format PostScript nivell 3" + +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." +msgstr "Comprimeix les imatges PDF amb l'algoritme FlatDecode de zlib" + +#. DESC_SAVE_PNM16_AS_ASCII +msgid "" +"When a 16 bit image shall be saved in pnm format then use ascii format " +"instead of binary format. The binary format is a new format that is not " +"supported by all programs. The ascii format is supported by more programs " +"but it produces really huge files!!!" +msgstr "" +"Quan hagueu de desar una imatge de 16 bits en format PNM, empreu el format " +"ASCII en comptes del binari. El format PNM binari és un format nou que no " +"accepten tots els programes. El format PNM ASCII es pot fer servir amb més " +"programes, però produeix fitxers molt grans." + +#. DESC_REDUCE_16BIT_TO_8BIT +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" +msgstr "" +"Si l'escàner envia la imatge amb 16 bits per color, desa-la amb 8 bits per " +"color" + +#. DESC_PSFILE_WIDTH +msgid "Width of paper for postscript files" +msgstr "Amplada del paper per als fitxers PostScript" + +#. DESC_PSFILE_HEIGHT +msgid "Height of paper for postscript files" +msgstr "Alçària del paper per als fitxers PostScript" + +#. DESC_PSFILE_LEFTOFFSET +msgid "" +"Left offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Distància entre el marge esquerre del paper i l'àrea usable, per als fitxers " +"PostScript" + +#. DESC_PSFILE_BOTTOMOFFSET +msgid "" +"Bottom offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Distància entre el marge inferior del paper i l'àrea usable, per als fitxers " +"PostScript" + +#. DESC_MAIN_WINDOW_FIXED +msgid "Use fixed main window size or scrolled, resizable main window" +msgstr "" +"Usa una finestra principal de mida fixa o bé una de redimensionable, amb " +"barra de desplaçament" + +#. DESC_DISABLE_GIMP_PREVIEW_GAMMA +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" +msgstr "" +"Inhabilita la previsualització de la correcció gamma quan l'XSane funciona " +"com a connector d'El Gimp" + +#. DESC_PREVIEW_COLORMAP +msgid "Use an own colormap for preview if display depth is 8 bpp" +msgstr "" +"Usa un mapa de colors propi per a la previsualització si la profunditat de " +"la pantalla és de 8 bpp" + +#. DESC_SHOW_RANGE_MODE +msgid "Select how a range is displayed" +msgstr "Seleccioneu com es mostren els intervals de valors" + +#. DESC_PREVIEW_OVERSAMPLING +msgid "Value with that the calculated preview resolution is multiplied" +msgstr "" +"Valor amb què es multiplica la resolució de previsualització calculada " +"prèviament" + +#. DESC_PREVIEW_GAMMA +msgid "Set gamma correction value for preview image" +msgstr "" +"Especifiqueu el valor de correcció gamma per a la imatge de previsualització" + +#. DESC_PREVIEW_GAMMA_RED +msgid "Set gamma correction value for red component of preview image" +msgstr "" +"Especifiqueu el valor de correcció gamma de la component vermella per a la " +"imatge de previsualització" + +#. DESC_PREVIEW_GAMMA_GREEN +msgid "Set gamma correction value for green component of preview image" +msgstr "" +"Especifiqueu el valor de correcció gamma de la component verda per a la " +"imatge de previsualització" + +#. DESC_PREVIEW_GAMMA_BLUE +msgid "Set gamma correction value for blue component of preview image" +msgstr "" +"Especifiqueu el valor de correcció gamma de la component blava per a la " +"imatge de previsualització" + +#. DESC_LINEART_MODE +msgid "Define the way XSane shall handle the threshold option" +msgstr "Definiu la manera en què l'XSane ha de gestionar l'opció de llindar" + +#. DESC_GRAYSCALE_SCANMODE +msgid "" +"Select grayscale scanmode. This scanmode is used for lineart preview scan " +"when transformation from grayscale to lineart is enabled" +msgstr "" +"Selecciona el mode d'escaneig en escala de grisos. Aquest mode es fa sevir " +"per a la previsualització d'imatges en blanc i negre quan la transformació " +"d'escala de grisos a mode línia està habilitada" + +#. DESC_PREVIEW_THRESHOLD_MIN +#, no-c-format +msgid "The scanner's minimum threshold level in %" +msgstr "El llindar inferior de l'escàner en percentatge" + +#. DESC_PREVIEW_THRESHOLD_MAX +#, no-c-format +msgid "The scanner's maximum threshold level in %" +msgstr "El llindar superior de l'escàner en percentatge" + +#. DESC_PREVIEW_THRESHOLD_MUL +msgid "" +"Multiplier to make XSane threshold range and scanner threshold range the same" +msgstr "" +"Multiplicador per a igualar els llindars de l'XSane amb els de l'escàner" + +#. DESC_PREVIEW_THRESHOLD_OFF +msgid "" +"Offset to make XSane threshold range and scanner threshold range the same" +msgstr "" +"Desplaçament per a igualar els llindars de l'XSane amb els de l'escàner" + +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Nombre de pàgines a escanejar" + +#. DESC_PREVIEW_PIPETTE_RANGE +msgid "dimension of square that is used to average color for pipette function" +msgstr "" +"Dimensió del quadrat que s'usa amb la pipeta per a fer la mitjana del color" + +#. DESC_DOC_VIEWER +msgid "" +"Enter command to be executed to display helpfiles, must be a html-viewer!" +msgstr "" +"Introduïu l'ordre a executar per a mostrar els fitxers d'ajuda. Ha de ser un " +"visualitzador d'HTML." + +#. DESC_AUTOENHANCE_GAMMA +msgid "Change gamma value when autoenhancement button is pressed" +msgstr "Canvia el valor de la gamma en prémer el botó de realçament automàtic" + +#. DESC_PRESELECT_SCANAREA +msgid "Select scanarea after preview scan has finished" +msgstr "Selecciona l'àrea d'escaneig quan l'escaneig de previsualització acabi" + +#. DESC_AUTOCORRECT_COLORS +msgid "Do color correction after preview scan has finished" +msgstr "Corregeix el color quan l'escaneig de previsualització acabi" + +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Selecciona l'àrea d'escaneig quan l'escaneig de previsualització acabi" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + +#. DESC_FAX_COMMAND +msgid "Enter command to be executed in fax mode" +msgstr "Introduïu l'ordre que s'executarà en mode fax" + +#. DESC_FAX_RECEIVER_OPT +msgid "Enter option to specify receiver" +msgstr "Introduïu l'opció per a especificar el receptor" + +#. DESC_FAX_POSTSCRIPT_OPT +msgid "Enter option to specify postscript files following" +msgstr "" +"Introduïu l'opció per a especificar els fitxers PostScript a continuació" + +#. DESC_FAX_NORMAL_OPT +msgid "Enter option to specify normal mode (low resolution)" +msgstr "Introduïu l'opció per a especificar el mode normal (baixa resolució)" + +#. DESC_FAX_FINE_OPT +msgid "Enter option to specify fine mode (high resolution)" +msgstr "Introduïu l'opció per a especificar el mode detallat (alta resolució)" + +#. DESC_FAX_VIEWER +msgid "Enter command to be executed to view a fax" +msgstr "Introduïu l'ordre a executar per a veure un fax" + +#. DESC_FAX_FINE_MODE +msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" +msgstr "" +"Envia el fax amb resolució vertical alta (196 lpi per comptes de 98 lpi)" + +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" +msgstr "" +"Crea imatges PostScript comprimides amb zlib per als faxos (algoritme " +"FlatDecode)" + +#. DESC_SMTP_SERVER +msgid "IP Address or Domain name of SMTP server" +msgstr "Adreça IP o nom de domini del servidor SMTP" + +#. DESC_SMTP_PORT +msgid "port to connect to SMTP server" +msgstr "Port per a connectar al servidor SMTP" + +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "Introduïu la vostra adreça electrònica" + +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "Introduïu l'adreça electrònica a on voleu que us responguin" + +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Tipus d'autenticació abans d'enviar el correu" + +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "Nom d'usuari per al servidor de correu" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "Contrasenya per al servidor de correu" + +#. DESC_POP3_SERVER +msgid "IP Address or Domain name of POP3 server" +msgstr "Adreça IP o nom de domini del servidor POP3" + +#. DESC_POP3_PORT +msgid "port to connect to POP3 server" +msgstr "Port per a connectar al servidor POP3" + +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: " +msgstr "El missatge s'enviarà en HTML; podeu incorporar-hi imatges amb " + +#. DESC_OCR_COMMAND +msgid "Enter command to start ocr program" +msgstr "Introduïu l'ordre per a iniciar el programa d'OCR" + +#. DESC_OCR_INPUTFILE_OPT +msgid "Enter option of the ocr program to define input file" +msgstr "Introduïu l'opció del programa d'OCR per a definir el fitxer d'entrada" + +#. DESC_OCR_OUTPUTFILE_OPT +msgid "Enter option of the ocr program to define output file" +msgstr "" +"Introduïu l'opció del programa d'OCR per a definir el fitxer de sortida" + +#. DESC_OCR_USE_GUI_PIPE_OPT +msgid "Define if the ocr program supports gui progress pipe" +msgstr "" +"Especifiqueu si el programa d'OCR permet l'ús d'un conducte de progrés a la " +"interfície gràfica" + +#. DESC_OCR_OUTFD_OPT +msgid "" +"Enter option of the ocr program to define output filedescripor in GUI mode" +msgstr "" +"Introduïu l'opció del programa d'OCR per a definir el descriptor del fitxer " +"de sortida en mode gràfic" + +#. DESC_OCR_PROGRESS_KEYWORD +msgid "Define Keyword that is used to mark progress information" +msgstr "" +"Especifiqueu la paraula clau que s'usa per a marcar la informació de progrés" + +#. DESC_PERMISSION_READ +msgid "read" +msgstr "lectura" + +#. DESC_PERMISSION_WRITE +msgid "write" +msgstr "escriptura" + +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "Usuari" + +#. DESC_ADD_BATCH +msgid "Add selection for batch scan" +msgstr "Afegeix la selecció al lot d'escaneig" + +#. DESC_PIPETTE_WHITE +msgid "Pick white point" +msgstr "Tria un punt blanc" + +#. DESC_PIPETTE_GRAY +msgid "Pick gray point" +msgstr "Tria un punt gris" + +#. DESC_PIPETTE_BLACK +msgid "Pick black point" +msgstr "Tria un punt negre" + +#. DESC_ZOOM_FULL +msgid "Use full scanarea" +msgstr "Usa tota l'àrea d'escaneig" + +#. DESC_ZOOM_OUT +#, no-c-format +msgid "Zoom 20% out" +msgstr "Redueix l'ampliació un 20%" + +#. DESC_ZOOM_IN +msgid "Click at position to zoom to" +msgstr "Feu clic a la posició on vulgueu ampliar" + +#. DESC_ZOOM_AREA +msgid "Zoom into selected area" +msgstr "Amplia l'àrea seleccionada" + +#. DESC_ZOOM_UNDO +msgid "Undo last zoom" +msgstr "Desfés l'última ampliació" + +#. DESC_FULL_PREVIEW_AREA +msgid "Select visible area" +msgstr "Seleccioneu l'àrea visible" + +#. DESC_AUTOSELECT_SCANAREA +msgid "Autoselect scanarea" +msgstr "Selecciona automàticament l'àrea d'escaneig" + +#. DESC_AUTORAISE_SCANAREA +msgid "Autoraise scanarea" +msgstr "Posa davant automàticament l'àrea d'escaneig" + +#. DESC_DELETE_IMAGES +msgid "Delete preview image cache" +msgstr "Buida la memòria cau de la imatge de previsualització" + +#. DESC_PRESET_AREA +msgid "" +"Preset area:\n" +"To add new area or edit an existing area use contect menu (right mouse " +"button)." +msgstr "" +"Àrea prefixada:\n" +"Per a afegir una àrea nova o editar-ne una d'existent, useu el menú " +"contextual (botó dret del ratolí)" + +#. DESC_ROTATION +msgid "Rotate preview and scan" +msgstr "Rota la previsualització i l'escaneig" + +#. DESC_RATIO +msgid "Aspect ratio of selection" +msgstr "Relació d'aspecte de la selecció" + +#. DESC_PAPER_ORIENTATION +msgid "Define image position for printing" +msgstr "Especifiqueu la posició de la imatge per a la impressió" + +#. DESC_VIEWER_OCR +msgid "Optical Character Recognition" +msgstr "Reconeixement Òptic de Caràcters (OCR)" + +#. DESC_VIEWER_UNDO +msgid "Undo last change" +msgstr "Desfés l'últim canvi" + +#. DESC_VIEWER_CLONE +msgid "Clone image" +msgstr "Clona la imatge" + +#. DESC_ROTATE90 +msgid "Rotate image 90 degree" +msgstr "Rota la imatge 90 graus" + +#. DESC_ROTATE180 +msgid "Rotate image 180 degree" +msgstr "Rota la imatge 180 graus" + +#. DESC_ROTATE270 +msgid "Rotate image 270 degree" +msgstr "Rota la imatge 270 graus" + +#. DESC_MIRROR_X +msgid "Mirror image at vertical axis" +msgstr "Reflecteix la imatge en l'eix vertical" + +#. DESC_MIRROR_Y +msgid "Mirror image at horizontal axis" +msgstr "Reflecteix la imatge en l'eix horitzontal" + +#. DESC_VIEWER_ZOOM +msgid "Zoom image" +msgstr "Amplia la imatge" + +#. DESC_STORE_MEDIUM +msgid "Store medium" +msgstr "Emmagatzema el mitjà" + +#. DESC_DELETE_MEDIUM +msgid "Delete active medium" +msgstr "Elimina el mitjà actiu" + +#. DESC_SCALE_FACTOR +msgid "Scale factor" +msgstr "Factor d'escala" + +#. DESC_X_SCALE_FACTOR +msgid "X-Scale factor" +msgstr "Factor d'escala en X" + +#. DESC_Y_SCALE_FACTOR +msgid "Y-Scale factor" +msgstr "Factor d'escala en Y" + +#. DESC_SCALE_WIDTH +msgid "Scale image to width [in pixel]" +msgstr "Escala la imatge a l'amplada especificada (en píxels)" + +#. DESC_SCALE_HEIGHT +msgid "Scale image to height [in pixel]" +msgstr "Escala la imatge a l'alçària especificada (en píxels)" + +#. DESC_BATCH_LIST_EMPTY +msgid "Empty batch list" +msgstr "Buida el lot d'escaneig" + +#. DESC_BATCH_LIST_SAVE +msgid "Save batch list" +msgstr "Desa el lot d'escaneig" + +#. DESC_BATCH_LIST_LOAD +msgid "Load batch list" +msgstr "Carrega un lot d'escaneig" + +#. DESC_BATCH_RENAME +msgid "Rename area" +msgstr "Reanomena l'àrea" + +#. DESC_BATCH_ADD +msgid "Add selected preview area to batch list" +msgstr "Afegeix l'àrea seleccionada de la previsualització al lot d'escaneig" + +#. DESC_BATCH_DEL +msgid "Delete selected area from batch list" +msgstr "Elimina l'àrea seleccionada del lot d'escaneig" + +#. DESC_AUTOMATIC +msgid "Turns on automatic mode" +msgstr "Activa el mode automàtic" + +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. ERR_HOME_DIR +msgid "Failed to determine home directory:" +msgstr "No s'ha pogut determinar el directori d'usuari:" + +#. ERR_CHANGE_WORKING_DIR +msgid "Failed to change working directory to" +msgstr "No s'ha pogut canviar el directori de treball a" + +#. ERR_FILENAME_TOO_LONG +msgid "Filename too long" +msgstr "Nom de fitxer massa llarg" + +#. ERR_CREATE_TEMP_FILE +msgid "" +"Could not create temporary file.\n" +"Open Menue Preferences->Setup Tab Save and\n" +"select a temporary directory where you have\n" +"write permissions." +msgstr "" +"No s'ha pogut crear el fitxer temporal.\n" +"Obriu el menú Preferències -> Configuració, pestanya Desament\n" +"i seleccioneu un directori temporal en el qual tingueu permisos." + +#. ERR_SET_OPTION +msgid "Failed to set value of option" +msgstr "No s'ha pogut establir el valor de l'opció" + +#. ERR_GET_OPTION +msgid "Failed to obtain value of option" +msgstr "No s'ha pogut obtenir el valor de l'opció" + +#. ERR_OPTION_COUNT +msgid "Error obtaining option count" +msgstr "S'ha produït un error en obtenir el comptador d'opcions" + +#. ERR_DEVICE_OPEN_FAILED +msgid "Failed to open device" +msgstr "No s'ha pogut obrir el dispositiu" + +#. ERR_NO_DEVICES +msgid "no devices available" +msgstr "No hi ha cap dispositiu disponible" + +#. ERR_DURING_READ +msgid "Error during read:" +msgstr "S'ha produït un error en llegir:" + +#. ERR_DURING_SAVE +msgid "Error during save:" +msgstr "S'ha produït un error en desar:" + +#. ERR_BAD_DEPTH +msgid "Can't handle depth" +msgstr "No es pot gestionar aquesta profunditat" + +#. ERR_UNKNOWN_SAVING_FORMAT +msgid "Unknown file format for saving" +msgstr "Format de fitxer desconegut per a desar" + +#. ERR_OPEN_FAILED +msgid "Failed to open" +msgstr "No s'ha pogut obrir" + +#. ERR_CREATE_SECURE_FILE +msgid "Could not create secure file (may be a link does exist):" +msgstr "No s'ha pogut crear un fitxer segur (potser hi ha un enllaç):" + +#. ERR_FAILED_PRINTER_PIPE +msgid "Failed to open pipe for executing printercommand" +msgstr "No s'ha pogut obrir el conducte per a executar l'ordre d'impressió" + +#. ERR_FAILED_EXEC_PRINTER_CMD +msgid "Failed to execute printercommand:" +msgstr "No s'ha pogut executar l'ordre d'impressió:" + +#. ERR_FAILED_START_SCANNER +msgid "Failed to start scanner:" +msgstr "No s'ha pogut inicialitzar l'escàner:" + +#. ERR_FAILED_GET_PARAMS +msgid "Failed to get parameters:" +msgstr "No s'ha pogut obtenir els paràmetres:" + +#. ERR_NO_OUTPUT_FORMAT +msgid "No output format given" +msgstr "No heu proporcionat cap format de sortida" + +#. ERR_NO_MEM +msgid "out of memory" +msgstr "Sense memòria" + +#. ERR_TOO_MUCH_DATA +msgid "Backend sends more image data than it defined in parameters" +msgstr "" +"El controlador envia més dades d'imatge de les que estan definides a la " +"configuració" + +#. ERR_LIBTIFF +msgid "LIBTIFF reports error" +msgstr "LIBTIFF informa d'un error" + +#. ERR_LIBPNG +msgid "LIBPNG reports error" +msgstr "LIBPNG informa d'un error" + +#. ERR_LIBJPEG +msgid "LIBJPEG reports error" +msgstr "LIBJPEG informa d'un error" + +#. ERR_ZLIB +msgid "ZLIB error or memory allocation problem" +msgstr "" +"S'ha produït un error de la ZLIB o bé un problema d'assignació de memòria" + +#. ERR_UNKNOWN_TYPE +msgid "unknown type" +msgstr "Tipus desconegut" + +#. ERR_UNKNOWN_CONSTRAINT_TYPE +msgid "unknown constraint type" +msgstr "Tipus de restricció desconegut" + +#. ERR_OPTION_NAME_NULL +msgid "Option has empty name (NULL)." +msgstr "L'opció té el nom buit (NULL)." + +#. ERR_BACKEND_BUG +msgid "This is a backend bug. Please inform the author of the backend!" +msgstr "" +"Això és un problema del controlador. Si us plau, informeu l'autor d'aquest " +"controlador." + +#. ERR_FAILED_EXEC_DOC_VIEWER +msgid "Failed to execute documentation viewer:" +msgstr "No s'ha pogut executar el visualitzador de documentació:" + +#. ERR_FAILED_EXEC_FAX_VIEWER +msgid "Failed to execute fax viewer:" +msgstr "No s'ha pogut executar el visualitzador de fax:" + +#. ERR_FAILED_EXEC_FAX_CMD +msgid "Failed to execute fax command:" +msgstr "No s'ha pogut executar l'ordre de fax:" + +#. ERR_FAILED_EXEC_OCR_CMD +msgid "Failed to execute ocr command:" +msgstr "No s'ha pogut executar l'ordre d'OCR:" + +#. ERR_BAD_FRAME_FORMAT +msgid "bad frame format" +msgstr "Format del quadre inadequat" + +#. ERR_FAILED_SET_RESOLUTION +msgid "unable to set resolution" +msgstr "No s'ha pogut establir la resolució" + +#. ERR_PASSWORD_FILE_INSECURE +#, c-format +msgid "Password file (%s) is insecure, use permission x00\n" +msgstr "El fitxer de contrasenyes (%s) no és segur; useu els permisos x00\n" + +#. ERR_ERROR +msgid "error" +msgstr "S'ha produït un error" + +#. ERR_MAJOR_VERSION_NR_CONFLICT +msgid "Sane major version number mismatch!" +msgstr "La versió del Sane no és compatible." + +#. ERR_XSANE_MAJOR_VERSION +msgid "XSane major version =" +msgstr "Versió de l'XSane:" + +#. ERR_BACKEND_MAJOR_VERSION +msgid "backend major version =" +msgstr "Versió del controlador:" + +#. ERR_PROGRAM_ABORTED +msgid "*** PROGRAM ABORTED ***" +msgstr "*** S'HA AVORTAT EL PROGRAMA ***" + +#. ERR_FAILED_ALLOCATE_IMAGE +msgid "Failed to allocate image memory:" +msgstr "No s'ha pogut assignar memòria per a la imatge:" + +#. ERR_PREVIEW_BAD_DEPTH +msgid "Preview cannot handle bit depth" +msgstr "La previsualització no pot gestionar aquesta profunditat" + +#. ERR_GIMP_SUPPORT_MISSING +msgid "GIMP support missing" +msgstr "Manca el connector per a El Gimp" + +#. ERR_CREATE_FAX_PROJECT +msgid "Could not create faxproject" +msgstr "No s'ha pogut crear el projecte de fax" + +#. WARN_COUNTER_UNDERRUN +msgid "Filename counter underrun" +msgstr "Desbordament inferior del comptador dels noms de fitxers consecutius" + +#. WARN_NO_VALUE_CONSTRAINT +msgid "warning: option has no value constraint" +msgstr "Avís: aquesta opció no té cap restricció en els valors" + +#. WARN_XSANE_AS_ROOT +msgid "" +"You try to run XSane as ROOT, that really is DANGEROUS!\n" +"\n" +"Do not send any bug reports when you\n" +"have any problem while running XSane as root:\n" +"YOU ARE ALONE!" +msgstr "" +"Esteu provant d'executar l'XSane com a usuari root. Això és MOLT PERILLÓS.\n" +"\n" +"No envieu cap informe d'errors si, mentre executeu l'XSane com a root,\n" +"us trobeu cap probema:\n" +"ÉS RESPONSABILITAT VOSTRA." + +#. ERR_HEADER_ERROR +msgid "Error" +msgstr "Error" + +#. ERR_HEADER_WARNING +msgid "Warning" +msgstr "Avís" + +#. ERR_HEADER_INFO +msgid "Information" +msgstr "Informació" + +#. ERR_HEADER_CHILD_PROCESS_ERROR +msgid "Child process error" +msgstr "Error en el procés fill" + +#. ERR_FAILED_CREATE_FILE +msgid "Failed to create file:" +msgstr "No s'ha pogut crear el fitxer:" + +#. ERR_LOAD_DEVICE_SETTINGS +msgid "Error while loading device settings:" +msgstr "S'ha produït un error en carregar la configuració del dispositiu:" + +#. ERR_NO_DRC_FILE +msgid "is not a device-rc-file !!!" +msgstr "no és un fitxer de dispositiu." + +#. ERR_NETSCAPE_EXECUTE_FAIL +msgid "Failed to execute netscape!" +msgstr "No s'ha pogut executar el Netscape." + +#. ERR_SENDFAX_RECEIVER_MISSING +msgid "Send fax: no receiver defined" +msgstr "Enviament de fax: no s'ha definit cap receptor" + +#. ERR_CREATED_FOR_DEVICE +msgid "has been created for device" +msgstr "s'ha creat per al dispositiu" + +#. ERR_USED_FOR_DEVICE +msgid "you want to use it for device" +msgstr "voleu usar-ho per al dispositiu" + +#. ERR_MAY_CAUSE_PROBLEMS +msgid "this may cause problems!" +msgstr "això pot provocar problemes" + +#. WARN_UNSAVED_IMAGES +#, c-format +msgid "There are %d unsaved images" +msgstr "Hi ha %d imatges sense desar" + +#. WARN_FILE_EXISTS +#, c-format +msgid "File %s already exists" +msgstr "El fitxer %s ja existeix" + +#. ERR_FILE_NOT_EXISTS +#, c-format +msgid "File %s does not exist" +msgstr "El fitxer %s no existeix" + +#. ERR_FILE_NOT_POSTSCRIPT +#, c-format +msgid "File %s is not a postscript file" +msgstr "El fitxer %s no és un fitxer PostScript" + +#. ERR_UNSUPPORTED_OUTPUT_FORMAT +#, c-format +msgid "Unsupported %d-bit output format: %s" +msgstr "Format de sortida de %d bits no permés: %s" + +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "S'ha produït un error en desar:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "No s'ha pogut obrir" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Elimina la impressora" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Elimina la impressora" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "No s'ha pogut crear el projecte de fax" + +#. WARN_VIEWER_IMAGE_NOT_SAVED +msgid "viewer image is not saved" +msgstr "La imatge del visualitzador no s'ha desat" + +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Pàgines:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Desa el lot d'escaneig" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Desa la configuració del dispositiu en sortir" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferències" + +#. TEXT_USAGE +msgid "Usage:" +msgstr "Sintaxi:" + +#. TEXT_USAGE_OPTIONS +msgid "[OPTION]... [DEVICE]" +msgstr "[OPCIÓ]... [DISPOSITIU]" + +#. TEXT_HELP +msgid "" +"Start up graphical user interface to access SANE (Scanner Access Now Easy) " +"devices.\n" +"\n" +"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n" +"[OPTION]... can be a combination of the following items:\n" +" -h, --help display this help message and exit\n" +" -v, --version print version information\n" +" -l, --license print license information\n" +"\n" +" -d, --device-settings file load device settings from file (without \".drc" +"\")\n" +"\n" +" -V, --viewer start with viewer-mode active (default)\n" +" -s, --save start with save-mode active\n" +" -c, --copy start with copy-mode active\n" +" -m, --multipage start with multipage-mode active\n" +" -f, --fax start with fax-mode active\n" +" -e, --email start with e-mail-mode active\n" +" -n, --no-mode-selection disable menu for XSane mode selection\n" +"\n" +" -F, --Fixed fixed main window size (overwrite preferences " +"value)\n" +" -R, --Resizeable resizable, scrolled main window (overwrite " +"preferences value)\n" +"\n" +" -p, --print-filenames print image filenames created by XSane\n" +" -N, --force-filename name force filename and disable user filename " +"selection\n" +"\n" +" --display X11-display redirect output to X11-display\n" +" --no-xshm do not use shared memory images\n" +" --sync request a synchronous connection with the X11 " +"server" +msgstr "" +"Inicia la interfície gràfica d'usuari per a accedir als dispositius SANE " +"(Scanner Access Now Easy).\n" +"\n" +"El format de [DISPOSITIU] és nomdelcontrolador:fitxerdedispositiu (p.ex.: " +"umax:/dev/scanner).\n" +"[OPCIÓ]... pot ser una combinació dels següents elements:\n" +" -h, --help mostra aquest missatge d'ajuda i surt\n" +" -v, --version imprimeix informació de la versió\n" +" -l, --license imprimeix informació de la llicència\n" +"\n" +" -d, --device-settings file carrega una configuració de dispositiu d'un " +"fitxer (sense \".drc\")\n" +"\n" +" -V, --viewer inicia amb el mode de visualització actiu " +"(predeterminat)\n" +" -s, --save inicia amb el mode de desament actiu\n" +" -c, --copy inicia amb el mode de còpia actiu\n" +" -m, --multipage inicia amb el mode de multipàgina actiu\n" +" -f, --fax inicia amb el mode de fax actiu\n" +" -e, --email inicia amb el mode de correu electrònic actiu\n" +" -n, --no-mode-selection inhabilita el menú per a la selecció de mode " +"de l'XSane\n" +"\n" +" -F, --Fixed finestra principal de mida fixa (sobreescriu " +"el valor de les preferències)\n" +" -R, --Resizeable finestra principal redimensionable i amb barra " +"de desplaçament (sobreescriu el valor de les preferències)\n" +"\n" +" -p, --print-filenames imprimeix els noms de fitxer d'imatge creats " +"per l'XSane\n" +" -N, --force-filename name força un nom de fitxer i inhabilita la " +"selecció de nom de fitxer per a l'usuari\n" +"\n" +" --display X11-display redirecciona la sortida a la pantalla X11\n" +" --no-xshm no usis imatges de memòria compartida\n" +" --sync demana una connexió síncrona amb el servidor " +"X11" + +#. strings for gimp plugin +#. XSANE_GIMP_INSTALL_BLURB +msgid "Front-end to the SANE interface" +msgstr "Frontal gràfic per a la interfície SANE" + +#. XSANE_GIMP_INSTALL_HELP +msgid "" +"This function provides access to scanners and other image acquisition " +"devices through the SANE (Scanner Access Now Easy) interface." +msgstr "" +"Aquesta funció proporciona accés a escàners i altres dispositius " +"d'adquisició d'imatge mitjançant la interfície SANE (Scanner Access Now " +"Easy: Accés a escàners fet facil)." + +#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" +#. XSANE_GIMP_MENU_DIALOG +msgid "/File/Acquire/XSane: Device dialog..." +msgstr "/File/Acquire/XSane: Diàleg de dispositiu..." + +#. XSANE_GIMP_MENU +msgid "/File/Acquire/XSane: " +msgstr "/File/Acquire/XSane: " + +#. XSANE_GIMP_MENU_DIALOG_OLD +msgid "/Xtns/XSane/Device dialog..." +msgstr "/Xtns/XSane/Diàleg de dispositiu..." + +#. XSANE_GIMP_MENU_OLD +msgid "/Xtns/XSane/" +msgstr "/Xtns/XSane/" + +#. HELP_NO_DEVICES +msgid "" +"Possible reasons:\n" +"1) There really is no device that is supported by SANE\n" +"2) Supported devices are busy\n" +"3) The permissions for the device file do not allow you to use it - try as " +"root\n" +"4) The backend is not loaded by SANE (man sane-dll)\n" +"5) The backend is not configured correct (man sane-\"backendname\")\n" +"6) Possibly there is more than one SANE version installed" +msgstr "" +"Possibles motius:\n" +"1) Realment no hi ha cap dispositiu reconegut pel SANE\n" +"2) Els dispositius reconeguts estan ocupats\n" +"3) Els permisos del fitxer de dispositiu no permeten que l'useu. Proveu com " +"a root\n" +"4) El SANE no ha carregat el controlador (man sane-dll)\n" +"5) El controlador no s'ha configurat correctament (man sane-" +"\"nomdelcontrolador\")\n" +"6) Probablement hi hagi més d'una versió del SANE instal·lada" + +#. strings that are used in structures, so it is not allowed to use _()/gettext() here +#. gettext_noop does mark these texts but does not change the string +#. MENU_ITEM_SURFACE_FULL_SIZE +msgid "full size" +msgstr "Mida completa" + +#. MENU_ITEM_SURFACE_DIN_A3P +msgid "DIN A3 port." +msgstr "DIN A3 vertical" + +#. MENU_ITEM_SURFACE_DIN_A3L +msgid "DIN A3 land." +msgstr "DIN A3 horitzontal" + +#. MENU_ITEM_SURFACE_DIN_A4P +msgid "DIN A4 port." +msgstr "DIN A4 vertical" + +#. MENU_ITEM_SURFACE_DIN_A4L +msgid "DIN A4 land." +msgstr "DIN A4 horitzontal" + +#. MENU_ITEM_SURFACE_DIN_A5P +msgid "DIN A5 port." +msgstr "DIN A5 vertical" + +#. MENU_ITEM_SURFACE_DIN_A5L +msgid "DIN A5 land." +msgstr "DIN A5 horitzontal" + +#. MENU_ITEM_SURFACE_13cmx18cm +msgid "13cm x 18cm" +msgstr "13 cm x 18 cm" + +#. MENU_ITEM_SURFACE_18cmx13cm +msgid "18cm x 13cm" +msgstr "18 cm x 13 cm" + +#. MENU_ITEM_SURFACE_10cmx15cm +msgid "10cm x 15cm" +msgstr "10 cm x 15 cm" + +#. MENU_ITEM_SURFACE_15cmx10cm +msgid "15cm x 10cm" +msgstr "15 cm x 10 cm" + +#. MENU_ITEM_SURFACE_9cmx13cm +msgid "9cm x 13cm" +msgstr "9 cm x 13 cm" + +#. MENU_ITEM_SURFACE_13cmx9cm +msgid "13cm x 9cm" +msgstr "13 cm x 9 cm" + +#. MENU_ITEM_SURFACE_legal_P +msgid "legal port." +msgstr "Legal vertical" + +#. MENU_ITEM_SURFACE_legal_L +msgid "legal land." +msgstr "Legal horitzontal" + +#. MENU_ITEM_SURFACE_letter_P +msgid "letter port." +msgstr "Carta vertical" + +#. MENU_ITEM_SURFACE_letter_L +msgid "letter land." +msgstr "Carta horitzontal" + +#. MENU_ITEM_MEDIUM_FULL_COLOR_RANGE +msgid "Full color range" +msgstr "Tots els colors" + +#. MENU_ITEM_MEDIUM_SLIDE +msgid "Slide" +msgstr "Diapositiva" + +#. MENU_ITEM_MEDIUM_STANDARD_NEG +msgid "Standard negative" +msgstr "Negatiu estàndard" + +#. MENU_ITEM_MEDIUM_AGFA_NEG +msgid "Agfa negative" +msgstr "Negatiu Agfa" + +#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4 +msgid "Agfa negative XRG 200-4" +msgstr "Negatiu Agfa XRG 200-4" + +#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100 +msgid "Agfa negative HDC 100" +msgstr "Negatiu Agfa HDC 100" + +#. MENU_ITEM_MEDIUM_FUJI_NEG +msgid "Fuji negative" +msgstr "Negatiu Fuji" + +#. MENU_ITEM_MEDIUM_KODAK_NEG +msgid "Kodak negative" +msgstr "Negatiu Kodak" + +#. MENU_ITEM_MEDIUM_KONICA_NEG +msgid "Konica negative" +msgstr "Negatiu Konica" + +#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 +msgid "Konica negative VX 100" +msgstr "Negatiu Konica VX 100" + +#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 +msgid "Rossmann negative HR 100" +msgstr "Negatiu Rossmann HR 100" + +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "No s'ha creat cap projecte" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "S'ha creat el projecte" + +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "S'ha modificat el projecte" + +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "S'ha produït un error en llegir el projecte" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "S'ha produït un error en desar el fitxer" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "S'està desant el fitxer" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "S'ha avortat el desament del fitxer" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "S'ha desat el fitxer" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED +msgid "POP3 connection failed" +msgstr "Ha fallat la connexió POP3" + +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED +msgid "POP3 login failed" +msgstr "Ha fallat la identificació POP3" + +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "Ha fallat l'autenticació ASMTP" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED +msgid "SMTP connection failed" +msgstr "Ha fallat la connexió SMTP" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM +msgid "From entry not accepted" +msgstr "No s'ha acceptat el camp \"De:\"" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT +msgid "Receiver entry not accepted" +msgstr "No s'ha acceptat el camp del receptor" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "No s'ha acceptat el cos del missatge" + +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "S'està enviant el missatge" + +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "S'ha enviat el missatge" + +#. TEXT_FAX_STATUS_QUEUEING_FAX +msgid "Queueing Fax" +msgstr "S'està posant el fax a la cua" + +#. TEXT_FAX_STATUS_FAX_QUEUED +msgid "Fax is queued" +msgstr "El fax és a la cua" + +#. Sane backend messages +msgid "flatbed scanner" +msgstr "Escàner de sobretaula" + +msgid "frame grabber" +msgstr "Capturador de quadres" + +msgid "handheld scanner" +msgstr "Escàner manual" + +msgid "still camera" +msgstr "Càmera fotogràfica" + +msgid "video camera" +msgstr "Càmera de vídeo" + +msgid "virtual device" +msgstr "Dispositiu virtual" + +msgid "Success" +msgstr "Operació completada amb èxit" + +msgid "Operation not supported" +msgstr "Operació no permesa" + +msgid "Operation was cancelled" +msgstr "S'ha cancel·lat l'operació" + +msgid "Device busy" +msgstr "Dispositiu ocupat" + +msgid "Invalid argument" +msgstr "Argument invàild" + +msgid "End of file reached" +msgstr "S'ha arribat al final del fitxer" + +msgid "Document feeder jammed" +msgstr "L'alimentador de documents s'ha encallat" + +msgid "Document feeder out of documents" +msgstr "L'alimentador de documents és buit" + +msgid "Scanner cover is open" +msgstr "La tapa de l'escàner és oberta" + +msgid "Error during device I/O" +msgstr "S'ha produït un error d'E/S en el dispositiu" + +msgid "Out of memory" +msgstr "Sense memòria" + +msgid "Access to resource has been denied" +msgstr "S'ha denegat l'accés al recurs" + +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Navegueu per a trobar el nom de fitxer de la imatge" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "El Gimp no pot gestionar una profunditat de %d bits/color" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Elimina la impressora" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Elimina la impressora" + +#~ msgid "Enter name of fax project" +#~ msgstr "Introduïu el nom del projecte de fax" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Introduïu el nom del projecte de correu electrònic" + +#~ msgid "Enter name of multipage project" +#~ msgstr "Introduïu el nom del projecte de multipàgina" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "El Gimp no permet l'ús de 16 bits per color.\n" +#~ "Voleu reduir la profunditat a 8 bits per color?" diff --git a/po/cs.gmo b/po/cs.gmo index c95e343..760b8ea 100644 Binary files a/po/cs.gmo and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po index f2f6a8f..b402dda 100644 --- a/po/cs.po +++ b/po/cs.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.99\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-31 16:09+0100\n" "Last-Translator: Stanislav Brabec \n" "Language-Team: Czech \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "O programu" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "O překladu" @@ -71,6 +73,11 @@ msgstr "přejmenovat dávkovou oblast" msgid "fax project" msgstr "faxový projekt" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Zadání jména faxového projektu" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "přejmenovat faxovou stránku" @@ -83,6 +90,11 @@ msgstr "zadat ps-soubor pro fax" msgid "E-mail project" msgstr "Poštovní projekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Zadejte jméno poštovního projektu" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "přejmenovat obrázek do pošty" @@ -95,6 +107,11 @@ msgstr "vložit soubor do pošty" msgid "multipage project" msgstr "vícestránkový projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "vícestránkový projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "přejmenovat předvolenou oblast" @@ -140,6 +157,7 @@ msgid "Preview" msgstr "Náhled" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Prohlížeč" @@ -172,14 +190,17 @@ msgid "select temporary directory" msgstr "výběr pomocného adresáře" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Změna velikosti obrázku" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Vyčistit obrázek" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Rozostřit obrázek" @@ -191,6 +212,35 @@ msgstr "Uložit definici média" msgid "No devices available" msgstr "Nejsou k dispozici žádná zařízení" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Odebrat tiskárnu" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Odebrat tiskárnu" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "výběr jména výstupního souboru" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Odebrat tiskárnu" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Odebrat tiskárnu" + #. MENU_FILE msgid "File" msgstr "Soubor" @@ -208,6 +258,7 @@ msgid "Window" msgstr "Okno" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Nápověda" @@ -223,6 +274,11 @@ msgstr "Filtry" msgid "Geometry" msgstr "Geometrie" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "O XSane" @@ -236,6 +292,7 @@ msgid "Quit" msgstr "Konec" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Zápis obrázku" @@ -252,6 +309,7 @@ msgid "Scale" msgstr "Změna velikosti" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Zavřít" @@ -443,11 +501,11 @@ msgstr "Varování o přepsání" msgid "Skip existing filenames" msgstr "Přeskočit existující jména souborů" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Zapsat zlib komprimovaný postscript (ps level 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Zapsat zlib komprimovaný PDF" @@ -464,7 +522,8 @@ msgid "Main window size fixed" msgstr "Pevná velikost hlavního okna" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Zakázat pro gimp gama náhledu" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -487,6 +546,11 @@ msgstr "Automatická korekce barev" msgid "Use GUI progress pipe" msgstr "Použít GUI rouru průběhu" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "procházejí se zařízení" @@ -503,6 +567,12 @@ msgstr "Předvolby XSane" msgid "Type" msgstr "Typ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Plný rozsah barev" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skener a ovladač:" @@ -575,18 +645,11 @@ msgstr "8bitové výstupní formáty:" msgid "16 bit output formats:" msgstr "16bitové výstupní formáty:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMP nepodporuje hloubku 16 bitů/barvu.\n" -"Chcete redukovat hloubku na 8 bitů/barvu?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Tento výstupní formát nepodporuje hloubku 16 bitů/barvu.\n" "Chcete redukovat hloubku na 8 bitů/barvu?<" @@ -623,6 +686,11 @@ msgstr "verze:" msgid "package" msgstr "balík" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Plný rozsah barev" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "s podporou programu GIMP" @@ -754,9 +822,10 @@ msgid "Medium Name:" msgstr "Název média:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Velikost v pixelech: %d × %d, bitů/barvu: %d, barev: %d, %1.0f dpi × %1.0f " "dpi, %1.1f %s" @@ -810,6 +879,7 @@ msgid "Name:" msgstr "Jméno:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Příkaz:" @@ -830,18 +900,22 @@ msgid "Color resolution (dpi):" msgstr "Rozlišení v barvě (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Šířka" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Výška" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Levý posun" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Spodní posun" @@ -861,7 +935,17 @@ msgstr "Zelená gama tiskárny:" msgid "Printer gamma blue:" msgstr "Modrá gama tiskárny:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Odebrat tiskárnu" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Odebrat tiskárnu" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Vytvořit zlib komprimovaný postscript (ps level 3) pro tisk" @@ -985,7 +1069,7 @@ msgstr "Nastavit implicitní program pro:" msgid "Viewer (Postscript):" msgstr "Prohlížeč (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Vytvořit zlib komprimovaný postscript (ps level 3) pro fax" @@ -1061,10 +1145,45 @@ msgstr "skupina" msgid "all" msgstr "všichni" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Odebrat tiskárnu" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Odebrat tiskárnu" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Odebrat tiskárnu" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nové médium" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Zápis" @@ -1073,14 +1192,17 @@ msgid "Filetype" msgstr "Typ souboru" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopírování" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faxování" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-mail" @@ -1172,6 +1294,12 @@ msgstr "Zobrazovat seznam rozlišení" msgid "Rotate postscript" msgstr "Rotovat postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Plný rozsah barev" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Upravit definici média" @@ -1216,6 +1344,86 @@ msgstr "Skenovací tipy" msgid "Problems?" msgstr "Problémy?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Přidat tiskárnu" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Přidat tiskárnu" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Přidat tiskárnu" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Přidat tiskárnu" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorizace" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "zápis" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Redukovat" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Rozostření" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "neaktivní" @@ -1332,6 +1540,20 @@ msgstr "ASMTP přihlášení" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Odebrat tiskárnu" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Automatická korekce barev" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skenuje se" @@ -1389,6 +1611,11 @@ msgstr "Obrázek se rozostřuje" msgid "OCR in progress" msgstr "Probíhá OCR" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Automatická korekce barev" + #. DESC_SCAN_START msgid "Start scan " msgstr "Zahájit skenování " @@ -1446,8 +1673,9 @@ msgstr "" "Typ formátu obrázku, vhodná koncovka je ke jménu souboru doplněná automaticky" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Zadání jména faxového projektu" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Vyhledat pomocný adresář" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1457,9 +1685,15 @@ msgstr "Zadání jména faxové strany" msgid "Enter receiver phone number or address" msgstr "Zadání telefonního čísla nebo adresy příjemce" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Vyhledat pomocný adresář" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Zadejte jméno poštovního projektu" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Vyhledat pomocný adresář" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1469,6 +1703,11 @@ msgstr "Zadejte nové jméno obrázku do pošty" msgid "Enter e-mail address" msgstr "Zadejte e-mailovou adresu" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Vyhledat pomocný adresář" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Zadejte předmět zprávy" @@ -1478,8 +1717,14 @@ msgid "Select filetype for image attachments" msgstr "Zvolte typ souboru pro obrázkové přílohy" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Zadejte jméno vícestránkového projektu" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Vyhledat pomocný adresář" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Vyhledat pomocný adresář" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1604,7 +1849,8 @@ msgstr "" " kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Automatické nastavení gamy, jasu a kontrastu " #. DESC_ENH_DEFAULT @@ -1688,18 +1934,22 @@ msgstr "" "postscriptu" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Šířka tisknutelné plochy" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Výška tisknutelné plochy" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Posun od levého okraje papíru do tisknutelné plochy" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Posun od spodního okraje papíru do tisknutelné plochy" @@ -1719,9 +1969,18 @@ msgstr "Dodatečná gama hodnota pro zelenou komponentu pro kopírování" msgid "Additional gamma value for blue component for photocopy" msgstr "Dodatečná gama hodnota pro modrou komponentu pro kopírování" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Vytvořit zlib komprimovaný postscript obrázek pro tisk (flat dekódování).\n" @@ -1781,16 +2040,18 @@ msgid "" msgstr "" "Je-li čítač souborů automaticky zvětšován, použitá čísla jsou přeskočena" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "komprimovat postscript obrázek algoritmem zlib (flat dekódování). Chcete-li " "takový obrázek tisknout, tiskárna musí podporovat postscript level 3" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "komprimovat PDF obrázek algoritmem zlib (flat dekódování)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1806,7 +2067,9 @@ msgstr "" "soubory!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Pošle-li skener obrázek s 16 bity/barvu, zapsat obrázek v 8 bitech/barvu" @@ -1840,7 +2103,8 @@ msgstr "" "velikostí" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Zakázat gama náhledu, běží-li XSane jako gimp modul" #. DESC_PREVIEW_COLORMAP @@ -1906,7 +2170,7 @@ msgstr "Posun, který nastaví shodný rozsah prahů XSane a rozsah prahů skene #. DESC_ADF_PAGES_MAX msgid "Number of pages to scan" -msgstr "Počest stránek k oskenování" +msgstr "Počet stránek k oskenování" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1931,6 +2195,15 @@ msgstr "Po naskenování náhledu vybere skenovací oblast" msgid "Do color correction after preview scan has finished" msgstr "Po naskenování náhledu provede barevnou korekci" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Po naskenování náhledu vybere skenovací oblast" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Nastavení příkazu prováděného ve faxovém režimu" @@ -1960,8 +2233,9 @@ msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" "Užití vysokého svislého rozlišení při odesílání faxu (196 dpi namísto 98 dpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Vytvořit zlib komprimovaný postscript pro fax (flat dekódování)" #. DESC_SMTP_SERVER @@ -2038,9 +2312,10 @@ msgstr "čtení" msgid "write" msgstr "zápis" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "spuštění" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "uživatel" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2209,6 +2484,36 @@ msgstr "Přidat vybranou oblast ze seznamu dávek" msgid "Turns on automatic mode" msgstr "Zapne automatický režim" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Vyhledat jméno souboru" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Vyhledat jméno souboru" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Selhalo určení domovského adresáře:" @@ -2261,11 +2566,6 @@ msgstr "Chyba během zápisu:" msgid "Can't handle depth" msgstr "Nelze zpracovat hloubku" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP nepodporuje hloubku %d bitů/barvu" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Neznámý formát souboru pro zápis" @@ -2498,10 +2798,68 @@ msgstr "Soubor %s není postscriptový soubor" msgid "Unsupported %d-bit output format: %s" msgstr "Nepodporované %dbitové výstupní formáty: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Chyba během zápisu:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Otevření selhalo" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Odebrat tiskárnu" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Vyhledat jméno souboru" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Odebrat tiskárnu" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Nelze vytvořit dočasný soubor" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "obrázek z prohlížeče není zapsán" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Obrázek" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Zapsat seznam dávek" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Při skončení zapsat předvolby zařízení" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Nastavení" + #. TEXT_USAGE msgid "Usage:" msgstr "Užití:" @@ -2876,8 +3234,64 @@ msgstr "Nedostatek paměti" msgid "Access to resource has been denied" msgstr "Přístup ke zdroji byl odmítnut" -#~ msgid "Could not create temporary file" -#~ msgstr "Nelze vytvořit dočasný soubor" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Vyhledat jméno souboru" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Vyhledat jméno souboru" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP nepodporuje hloubku %d bitů/barvu" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Odebrat tiskárnu" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Odebrat tiskárnu" + +#~ msgid "Enter name of fax project" +#~ msgstr "Zadání jména faxového projektu" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Zadejte jméno poštovního projektu" + +#~ msgid "Enter name of multipage project" +#~ msgstr "Zadejte jméno vícestránkového projektu" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "GIMP nepodporuje hloubku 16 bitů/barvu.\n" +#~ "Chcete redukovat hloubku na 8 bitů/barvu?" #~ msgid "Could not create temporary preview files" #~ msgstr "Nelze vytvořit pracovní náhledové soubory" @@ -2940,9 +3354,6 @@ msgstr "Přístup ke zdroji byl odmítnut" #~ msgid "Multipage saving aborted" #~ msgstr "Poštovní projekt byl vytvořen" -#~ msgid "Image" -#~ msgstr "Obrázek" - #~ msgid "Viewer (png):" #~ msgstr "Prohlížeč (png):" diff --git a/po/da.gmo b/po/da.gmo index 79ae18a..a7aa714 100644 Binary files a/po/da.gmo and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index f96fde0..a6543e1 100644 --- a/po/da.po +++ b/po/da.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.99\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-31 04:36+0100\n" "Last-Translator: Mogens Jaeger \n" "Language-Team: Danish \n" @@ -34,6 +35,7 @@ msgid "About" msgstr "Om" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Om oversættelse" @@ -73,6 +75,11 @@ msgstr "omdøb batchområde" msgid "fax project" msgstr "fax projekt" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Angiv navn på fax projekt" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "omdøb fax side" @@ -85,6 +92,11 @@ msgstr "indsæt ps-fil i fax" msgid "E-mail project" msgstr "E-post projekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Angiv navn på e-post projekt" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "omdøb e-post billede" @@ -97,6 +109,11 @@ msgstr "indsæt fil i e-post" msgid "multipage project" msgstr "flerside projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "flerside projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "omdøb forvalgt område" @@ -142,6 +159,7 @@ msgid "Preview" msgstr "Forhåndsvisning" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Viser" @@ -174,14 +192,17 @@ msgid "select temporary directory" msgstr "vælg midlertidigt bibliotek" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Skalér billede" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Fjern kornstøj fra billede" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Slør billede" @@ -193,6 +214,35 @@ msgstr "Gem medie definition" msgid "No devices available" msgstr "Ingen enheder til rådighed" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Slet printer" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Slet printer" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "vælg uddatafilnavn" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Slet printer" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Slet printer" + #. MENU_FILE msgid "File" msgstr "Fil" @@ -210,6 +260,7 @@ msgid "Window" msgstr "Vindue" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Hjælp" @@ -225,6 +276,11 @@ msgstr "Filtre" msgid "Geometry" msgstr "Geometri" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Om XSane" @@ -238,6 +294,7 @@ msgid "Quit" msgstr "Afslut" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Gem billede" @@ -254,6 +311,7 @@ msgid "Scale" msgstr "Skalér" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Luk" @@ -445,11 +503,11 @@ msgstr "Overskriv advarsel" msgid "Skip existing filenames" msgstr "Drop eksisterende filnavne" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Gem postscript zlib-komprimeret (ps level 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Gem PDF zlib-komprimeret" @@ -466,7 +524,8 @@ msgid "Main window size fixed" msgstr "Hoved-vinduesstørrelse er fast" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Deaktivér GIMP forhåndsvisnings gamma" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -489,6 +548,11 @@ msgstr "Autooptimér farver" msgid "Use GUI progress pipe" msgstr "Brug GUI fremskridtsrør" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Skanner efter enheder" @@ -505,6 +569,12 @@ msgstr "XSane indstillinger" msgid "Type" msgstr "Type" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Fuldt farveområde" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skanner og bagende:" @@ -577,18 +647,11 @@ msgstr "8 bit uddataformater:" msgid "16 bit output formats:" msgstr "16 bit uddataformater:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMP understøtter ikke 16 bit/farve.\n" -"Ønsker du at reducere til 8 bit/farve?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "16 bit/farve er ikke understøttet for dette uddataformat.\n" "Ønsker du at reducere til 8 bit/farve?" @@ -625,6 +688,11 @@ msgstr "version:" msgid "package" msgstr "pakke" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Fuldt farveområde" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "med GIMP understøttelse" @@ -757,9 +825,10 @@ msgid "Medium Name:" msgstr "Medienavn:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Størrelse %d x %d pixel, %d bit/farve, %d farver, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -813,6 +882,7 @@ msgid "Name:" msgstr "Navn:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Kommando:" @@ -833,18 +903,22 @@ msgid "Color resolution (dpi):" msgstr "Farve opløsning (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Bredde" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Højde" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Venstre margen" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Bund margen" @@ -864,7 +938,17 @@ msgstr "Printers gammaværdi i grøn:" msgid "Printer gamma blue:" msgstr "Printers gammaværdi i blå:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Slet printer" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Slet printer" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Dan zlib-komprimeret postscript-billede (ps level 3) til udskrivning" @@ -988,7 +1072,7 @@ msgstr "Sæt program standardværdier for:" msgid "Viewer (Postscript):" msgstr "Viser (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Dan zlib-komprimeret postscript-billede (ps level 3) til fax" @@ -1064,10 +1148,45 @@ msgstr "gruppe" msgid "all" msgstr "alle" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Slet printer" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Slet printer" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Slet printer" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Søg efter billed filnavn" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nyt medie" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Gem" @@ -1076,14 +1195,17 @@ msgid "Filetype" msgstr "Filtype" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopi" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-post" @@ -1175,6 +1297,12 @@ msgstr "Vis liste med opløsninger" msgid "Rotate postscript" msgstr "Rotér postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Fuldt farveområde" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Ret mediedefinition" @@ -1219,6 +1347,86 @@ msgstr "Skannertips" msgid "Problems?" msgstr "Problemer?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Tilføj printer" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Tilføj printer" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Tilføj printer" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Tilføj printer" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorisation" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "skriv" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reducér" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Slør" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "Ikke aktiv" @@ -1335,6 +1543,20 @@ msgstr "ASMTP logind" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Slet printer" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Autooptimér farver" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skanning" @@ -1392,6 +1614,11 @@ msgstr "Slører billede" msgid "OCR in progress" msgstr "Tekstgenkendelse" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Autooptimér farver" + #. DESC_SCAN_START msgid "Start scan " msgstr "Start skanning " @@ -1451,8 +1678,9 @@ msgstr "" "filnavnet." #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Angiv navn på fax projekt" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Find sti til midlertidigt bibliotek" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1462,9 +1690,15 @@ msgstr "Angiv nyt navn for fax side" msgid "Enter receiver phone number or address" msgstr "Angiv modtager telefonnummer eller adresse" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Find sti til midlertidigt bibliotek" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Angiv navn på e-post projekt" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Find sti til midlertidigt bibliotek" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1474,6 +1708,11 @@ msgstr "Angiv nyt navn på e-post billede" msgid "Enter e-mail address" msgstr "Angiv e-post adresse" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Find sti til midlertidigt bibliotek" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Angiv subjekt for e-post" @@ -1483,8 +1722,14 @@ msgid "Select filetype for image attachments" msgstr "Vælg filtype for billed vedhæftninger" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Angiv navn på flerside projekt" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Find sti til midlertidigt bibliotek" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Find sti til midlertidigt bibliotek" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1609,7 +1854,8 @@ msgstr "" " kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Autojuster gamma, lyshed og kontrast " #. DESC_ENH_DEFAULT @@ -1690,18 +1936,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Opløsning for printning og gemning i postscript for farve billeder" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Bredde af printbart område" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Højde af printbart område" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Venstre margen fra kant af papir, til det printbare område" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Bund margen fra kant af papir, til det printbare område" @@ -1721,9 +1971,18 @@ msgstr "Supplerende gammaværdi for fotokopiering, grøn farvedel" msgid "Additional gamma value for blue component for photocopy" msgstr "Supplerende gammaværdi for fotokopiering, blå farvedel" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Dan zlib-komprimeret postscript billede til printer (flatdecode).\n" @@ -1781,16 +2040,18 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "Hvis filnavntæller øges automatisk, bliver brugte numre forbigået" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "komprimér postscript-billede med zlib-algoritme (flatdecode). Når en fil af " "denne type skal udskrives, skal printeren kunne forstå postscript level 3" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "komprimér PDF-billede med zlib-algoritme (flatdecode)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1806,7 +2067,9 @@ msgstr "" "programmer, men det producerer ret store filer!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Hvis skanner sender billede med 16 bit/farve gemmes billedet med 8 bit/farve" @@ -1837,7 +2100,8 @@ msgstr "" "hovedvinduesstørrelse" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Deaktiver forhåndsvisningsgamma, når XSane kører som et GIMP plugin" #. DESC_PREVIEW_COLORMAP @@ -1935,6 +2199,15 @@ msgstr "Vælg skanområde, når forhåndsvisning er gennemført" msgid "Do color correction after preview scan has finished" msgstr "Udfør farvekorrektion, når forhåndsvisning er gennemført" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Vælg skanområde, når forhåndsvisning er gennemført" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Komando der skal udføres i fax tilstand" @@ -1964,8 +2237,9 @@ msgstr "Komando der skal udføres, for at vise en fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Send fax med høj lodret opløsning (196 lpi i stedet for 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Dan zlib-komprimeret postscript billede til fax (flatdecode)" #. DESC_SMTP_SERVER @@ -2045,9 +2319,10 @@ msgstr "læs" msgid "write" msgstr "skriv" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "udfør" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "bruger" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2216,6 +2491,36 @@ msgstr "Slet valgt forhåndsvisningsområde fra batchliste" msgid "Turns on automatic mode" msgstr "Tænder for automatisk tilstand" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Søg efter billed filnavn" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Søg efter billed filnavn" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Søg efter billed filnavn" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Søg efter billed filnavn" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Søg efter billed filnavn" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Søg efter billed filnavn" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Kunne ikke bestemme hjem-bibliotek:" @@ -2268,11 +2573,6 @@ msgstr "Fejl under skrivning:" msgid "Can't handle depth" msgstr "Ikke understøttet bit-dybde" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP understøtter ikke %d bit/farve dybde" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Ukendt filformat til gemning" @@ -2504,10 +2804,68 @@ msgstr "Fil %s er ikke en postscript fil" msgid "Unsupported %d-bit output format: %s" msgstr "Ikke understøttet %d-bit uddataformat: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Fejl under skrivning:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Kunne ikke åbne" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Slet printer" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Søg efter billed filnavn" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Slet printer" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Kunne ikke skabe midlertidig fil" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "viser-billede er ikke gemt" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Sider:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Gem batchliste" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Gem enhedsindstillinger ved afslutning" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Indstillinger" + #. TEXT_USAGE msgid "Usage:" msgstr "Brug:" @@ -2879,11 +3237,61 @@ msgstr "Ikke mere ram" msgid "Access to resource has been denied" msgstr "Adgang til ressource nægtet" -#~ msgid "Could not create temporary file" -#~ msgstr "Kunne ikke skabe midlertidig fil" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Søg efter billed filnavn" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Søg efter billed filnavn" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP understøtter ikke %d bit/farve dybde" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Slet printer" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Slet printer" + +#~ msgid "Enter name of fax project" +#~ msgstr "Angiv navn på fax projekt" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Angiv navn på e-post projekt" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Kunne ikke danne midlertidig forhåndsvisningsfiler" +#~ msgid "Enter name of multipage project" +#~ msgstr "Angiv navn på flerside projekt" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Kunne ikke danne filnavne til forhåndsvisningsfiler" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "GIMP understøtter ikke 16 bit/farve.\n" +#~ "Ønsker du at reducere til 8 bit/farve?" diff --git a/po/de.gmo b/po/de.gmo index 0eaec78..dc045f7 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 97820fe..ab36370 100644 --- a/po/de.po +++ b/po/de.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.99\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2000-01-21 15:51+01:00\n" "Last-Translator: Oliver Rauch \n" "Language-Team: German \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "Über" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Über Übersetzung" @@ -71,6 +73,10 @@ msgstr "Stapelscan Bereich umbenennen" msgid "fax project" msgstr "Faxprojekt" +#. WINDOW_FAX_PROJECT_BROWSE +msgid "browse for fax project" +msgstr "Nach Faxprojekt suchen" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "Faxseite umbenennen" @@ -83,6 +89,10 @@ msgstr "ps-Datei einfügen in Fax" msgid "E-mail project" msgstr "E-Mail Projekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +msgid "browse for email project" +msgstr "Nach E-Mailprojekt suchen" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "E-Mail Bild umbenennen" @@ -95,6 +105,10 @@ msgstr "Bild in E-Mail einfügen" msgid "multipage project" msgstr "Mehrseiten-Projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +msgid "browse for multipage project" +msgstr "Nach Mehrseiten-Projekt suchen" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Bereichsvoreinstellung umbenennen" @@ -140,6 +154,7 @@ msgid "Preview" msgstr "Vorschau" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Betrachter" @@ -172,14 +187,17 @@ msgid "select temporary directory" msgstr "temporäres Verzeichnis auswählen" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Bild skalieren" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Flecken entfernen" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Bild weichzeichnen" @@ -191,6 +209,30 @@ msgstr "Mediumdefinition speichern" msgid "No devices available" msgstr "Keine Geräte erreichbar" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +msgid "select scanner default color ICM-profile" +msgstr "standard Farb-ICM-Profil für Scanner auswählen" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +msgid "select scanner default gray ICM-profile" +msgstr "standard Graustufen-ICM-Profil für Scanner auswählen" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "ICM-Profil für Bildschirm auswählen" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +msgid "select custom proofing ICM-profile" +msgstr "Benutzerdefiniertes Proofing ICM Profil auswählen" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "select working color space ICM-profile" +msgstr "ICM-Profil für Arbeitsfarbraum auswählen" + +#. WINDOW_PRINTER_ICM_PROFILE +msgid "select printer ICM-profile" +msgstr "ICM Profil für Drucker auswählen" + #. MENU_FILE msgid "File" msgstr "Datei" @@ -208,6 +250,7 @@ msgid "Window" msgstr "Fenster" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Hilfe" @@ -223,6 +266,11 @@ msgstr "Filter" msgid "Geometry" msgstr "Geometrie" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "Farbmanagement" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Über XSane" @@ -236,6 +284,7 @@ msgid "Quit" msgstr "Beenden" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Bild speichern" @@ -252,6 +301,7 @@ msgid "Scale" msgstr "Skalieren" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Schließen" @@ -443,11 +493,11 @@ msgstr "Überschreibwarnung" msgid "Skip existing filenames" msgstr "Existierende Dateinamen überspringen" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Speichere Postscript zlib-komprimiert (ps level 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Speichere PDF zlib-komprimiert" @@ -464,8 +514,8 @@ msgid "Main window size fixed" msgstr "Feste Hauptfenstergröße" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" -msgstr "Vorschau-Gamma für Gimp deaktivieren" +msgid "Disable GIMP preview gamma" +msgstr "Vorschau-Gamma für GIMP deaktivieren" #. RADIO_BUTTON_PRIVATE_COLORMAP msgid "Use private colormap" @@ -487,6 +537,11 @@ msgstr "Automatische Farbkorrektur" msgid "Use GUI progress pipe" msgstr "Benutze GUI Fortschritts Pipe" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "Schwarzpunkt kompensieren" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Suche nach Geräten" @@ -503,6 +558,11 @@ msgstr "XSane Optionen" msgid "Type" msgstr "Typ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +msgid "Color management function" +msgstr "Farbmanagement-Funktion" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scanner und Backends" @@ -575,21 +635,13 @@ msgstr "8 Bit Ausgabeformate:" msgid "16 bit output formats:" msgstr "16 Bit Ausgabeformate:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp unterstützt die Bittiefe 16Bits/Farbe nicht.\n" -"Möchten Sie die Bittiefe auf 8 Bits/Farbe reduzieren?" - #. TEXT_REDUCE_16BIT_TO_8BIT msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" -"Die Bittiefe 16Bits/Farbe wird von diesem Ausgabeformat nicht unterstützt.\n" -"Möchten Sie die Bittiefe auf 8 Bits/Farbe reduzieren?" +"Die Bittiefe 16Bits/Kanal wird von diesem Ausgabeformat nicht unterstützt.\n" +"Möchten Sie die Bittiefe auf 8 Bits/Kanal reduzieren?" #. TEXT_AUTHORIZATION_REQ msgid "Authorization required for" @@ -623,6 +675,10 @@ msgstr "Version:" msgid "package" msgstr "Paket" +#. TEXT_WITH_CMS_FUNCTION +msgid "with color management function" +msgstr "mit Farbmanagement-Funktion" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "mit GIMP-Unterstützung" @@ -756,11 +812,11 @@ msgid "Medium Name:" msgstr "Medium Name:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" -"Größe %d x %d Punkte, %d Bit/Farbe, %d Farben, %1.0f dpi x %1.0f dpi, %1.1f %" +"Größe %d x %d Punkte, %d Bit/Kanal, %d Kanäle, %1.0f dpi x %1.0f dpi, %1.1f %" "s" #. TEXT_DESPECKLE_RADIUS @@ -812,6 +868,7 @@ msgid "Name:" msgstr "Name:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Befehl:" @@ -832,18 +889,22 @@ msgid "Color resolution (dpi):" msgstr "Farb-Auflösung (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Breite" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Höhe" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Linker Rand" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Unterer Rand" @@ -863,7 +924,15 @@ msgstr "Drucker Gammawert grün:" msgid "Printer gamma blue:" msgstr "Drucker Gammawert blau:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +msgid "Embed scanner ICM profile as CSA" +msgstr "Scanner/Quell-ICM-Profil als CSA einbinden" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +msgid "Embed printer ICM profile as CRD" +msgstr "ICM Profil für Drucker als CRD einbinden" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Erzeuge zlib-komprimiertes Posctscript Bild (ps level 3) zum Drucken" @@ -987,7 +1056,7 @@ msgstr "Setze Standardwerte für folgendes Programm" msgid "Viewer (Postscript):" msgstr "Betrachter (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Erzeuge zlib-komprimiertes Postscript-Bild (ps level 3) zum Faxen" @@ -1063,10 +1132,41 @@ msgstr "Gruppe" msgid "all" msgstr "Alle" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +msgid "Scanner default color ICM-profile" +msgstr "Standard Scanner Farb-ICM-Profil" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +msgid "Scanner default gray ICM-profile" +msgstr "Standard Scanner Graustufen ICM-Profil" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "Bildschirm ICM-Profil" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +msgid "Custom proofing ICM-profile" +msgstr "Benutzerdefiniertes Proofing ICM-Profil" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "Working color space ICM-profile" +msgstr "Arbeitsfarbraum ICM-Profil" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "Drucker ICM-Profil" + msgid "new media" msgstr "neues Medium" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Speichern" @@ -1075,14 +1175,17 @@ msgid "Filetype" msgstr "Dateityp" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Fotokopie" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-Mail" @@ -1174,6 +1277,11 @@ msgstr "Zeige Auflösungsliste" msgid "Rotate postscript" msgstr "Drehe Postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +msgid "Enable color management" +msgstr "aktiviere Farbmanagement" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Mediumdefinition ändern" @@ -1218,6 +1326,78 @@ msgstr "Scantipps" msgid "Problems?" msgstr "Probleme?" +#. MENU_ITEM_CMS_PROOFING +msgid "Proofing" +msgstr "Proofing" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "keine Nachbildung (Bildschirm)" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +msgid "Proof printer" +msgstr "Nachbildung Drucker" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "Nachbildung Benutzerdefinierte Ausgabe" + +#. MENU_ITEM_CMS_RENDERING_INTENT +msgid "Rendering intent" +msgstr "" + +#. MENU_ITEM_CMS_PROOFING_INTENT +msgid "Proofing rendering intent" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "Wahrnehmungsorientiert" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "Relativ farbmetrisch" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "Absolut farbmetrisch" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +msgid "Saturation" +msgstr "Sättigung" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "Gamut prüfen" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "Gamut Alarmfarbe" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "Schwarz" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "Grau" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +msgid "White" +msgstr "Weiss" + +#. SUBMENU_ITEM_CMS_COLOR_RED +msgid "Red" +msgstr "Rot" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "Grün" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +msgid "Blue" +msgstr "Blau" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "nicht aktiv" @@ -1334,6 +1514,18 @@ msgstr "ASMTP Login" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +msgid "Embed scanner ICM profile" +msgstr "Scanner ICM-Profil einbinden" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "Nach sRGB konvertieren" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +msgid "Convert to working color space" +msgstr "In Arbeitsfarbraum konvertieren" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Scanne" @@ -1391,6 +1583,10 @@ msgstr "Bild weichzeichnen" msgid "OCR in progress" msgstr "Texterkennung" +#. PROGRESS_ICM_CONVERSION +msgid "converting colors" +msgstr "konvertiere Farben" + #. DESC_SCAN_START msgid "Start scan " msgstr "Scan starten " @@ -1450,8 +1646,8 @@ msgstr "" "Dateinamen angehängt" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Name des Faxprojekts" +msgid "Enter fax project directory name" +msgstr "Faxprojekt-Verzeichnis Namen eingeben" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1461,9 +1657,13 @@ msgstr "Name der Faxseite eingeben" msgid "Enter receiver phone number or address" msgstr "Telefonnummer des Empfängers eingeben" +#. DESC_FAX_PROJECT_BROWSE +msgid "Browse for fax project directory" +msgstr "Nach Faxprojekt-Verzeichnis suchen" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Name des E-Mailprojekts" +msgid "Enter e-mail project directory name" +msgstr "Email-Projekt-Verzeichnis Namen eingeben" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1473,6 +1673,10 @@ msgstr "neuen Name für E-Mail Bild eingeben" msgid "Enter e-mail address" msgstr "E-Mail Adresse eingeben" +#. DESC_EMAIL_PROJECT_BROWSE +msgid "Browse for email project directory" +msgstr "Nach Email-Projekt-Verzeichnis suchen" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Betreff der E-Mail eingeben" @@ -1482,8 +1686,12 @@ msgid "Select filetype for image attachments" msgstr "Dateityp für E-Mailanhang auswählen" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Name des mehrseitigen Projekts eingeben" +msgid "Enter multipage project directory name" +msgstr "Mehrseiten-Projekt-Verzeichnis Namen eingeben" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +msgid "Browse for multipage project directory" +msgstr "Nach Mehrseiten-Projekt-Verzeichnis suchen" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1608,8 +1816,8 @@ msgstr "" "Kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " -msgstr "Automatische Einstellung von Gamma, Helligkeit und Kontrast " +msgid "Autoadjust gamma, brightness and contrast " +msgstr "Automatische Einstellung von Gamma, Helligkeit und Kontrast " #. DESC_ENH_DEFAULT msgid "" @@ -1693,18 +1901,22 @@ msgstr "" "werden" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Breite des druckbaren Bereichs" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Höhe des druckbaren Bereichs" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs" @@ -1724,9 +1936,17 @@ msgstr "Zusätzlicher Gammawert für grüne Komponente beim Fotokopieren" msgid "Additional gamma value for blue component for photocopy" msgstr "Zusätzlicher Gammawert für blaue Komponente beim Fotokopieren" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "Erzeugt eine Postscriptdatei die das ICM-Profil des Scammers enthält" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "Erzeugt eine Postscriptdatei die das ICM-Profil des Druckers enthält" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Erzeuge zlib-komprimiertes Postscript Bild zum Drucken (flatdecode).\n" @@ -1789,17 +2009,17 @@ msgstr "" "Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte " "Dateinummern übersprungen" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -"komprimiere Postscript Bild mit zlib Algorithmus (flatdecode). Wenn die " +"komprimiere Postscript Bild mit zlib Algorithmus (flatedecode). Wenn die " "Datei gedruckt werden soll muss der Drucker Postscript level 3 verstehen" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." -msgstr "komprimiere PDF Bild mit zlib Algorithmus (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." +msgstr "komprimiere PDF Bild mit zlib Algorithmus (flatedecode)." #. DESC_SAVE_PNM16_AS_ASCII msgid "" @@ -1814,10 +2034,11 @@ msgstr "" "aber die Dateien werden sehr groß!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" -"Wenn der Scanner das Bild mit 16 Bits/Farbe liefert wird das Bild mit 8 Bits/" -"Farbe gespeichert" +"Wenn der Scanner das Bild mit 16 Bits/Kanal liefert wird das Bild mit 8 Bits/" +"Kanal gespeichert" #. DESC_PSFILE_WIDTH msgid "Width of paper for postscript files" @@ -1848,7 +2069,7 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Verwende feste oder veränderbare Hauptfenstergröße" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Preview Gamma deaktivieren wenn XSane als Gimp-Plugin gestartet wird" #. DESC_PREVIEW_COLORMAP @@ -1949,6 +2170,14 @@ msgstr "Scanbereich nach Vorschauscan automatisch auswählen" msgid "Do color correction after preview scan has finished" msgstr "Farbkorrektur nach Vorschauscan ausführen" +#. DESC_RENDERING_INTENT +msgid "Select rendering intent for preview and saving" +msgstr "Rendering Intent für Vorschau und zum Speichern auswählen" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "Scharzpunkt-Kompensation bei Farbtransformation anwenden" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Befehl, der zum Senden eines Faxprojekts ausgeführt werden soll" @@ -1980,9 +2209,9 @@ msgstr "" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Sende Fax mit hoher vertikaler Auflösung (196 lpi anstatt 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" -msgstr "" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" +msgstr "Erzeuge zlib-komprimiertes Postscript-Bild (ps level 3) zum Faxen" #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" @@ -2062,9 +2291,9 @@ msgstr "lesen" msgid "write" msgstr "schreiben" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "ausführen" +#. DESC_PERMISSION_SEARCH +msgid "search" +msgstr "durchsuchen" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2233,6 +2462,30 @@ msgstr "Ausgewählten Bereich aus Stapelliste löschen" msgid "Turns on automatic mode" msgstr "Schaltet automatische Einstellung ein" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +msgid "Browse for scanner default color ICM-profile" +msgstr "Suche nach standard Scanner Farb-ICM-Profil" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +msgid "Browse for scanner default gray ICM-profile" +msgstr "Suche nach standard Scanner Graustufen-ICM-Profil" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +msgid "Browse for display ICM-profile" +msgstr "Suche nach Bildschirm ICM-Profil" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +msgid "Browse for printer ICM-profile" +msgstr "Suche nach Durcker ICM-Profil" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +msgid "Browse for custom proofing ICM-profile" +msgstr "Suche nach Benutzerdefiniertem Proofing ICM-Profil" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +msgid "Browse for working color space ICM-profile" +msgstr "Suche nach ICM-Profil für den Arbeitsfarbraum" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Konnte Heimatverzeichnis nicht bestimmen" @@ -2289,11 +2542,6 @@ msgstr "Fehler beim Speichern:" msgid "Can't handle depth" msgstr "Nicht unterstützte Bittiefe" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP unterstützt Bittiefe %d Bits/Farbe nicht" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Unbekanntes Ausgabedateiformat" @@ -2529,10 +2777,58 @@ msgstr "Datei %s is keine Postscript-Datei" msgid "Unsupported %d-bit output format: %s" msgstr "Nicht unterstütztes %d-bit Ausgabeformat: %s" +#. ERR_CMS_CONVERSION +msgid "Error during CMS conversion:" +msgstr "Fehler bei Farbkonvertierung:" + +#. ERR_CMS_OPEN_ICM_FILE +msgid "Could not open" +msgstr "Fehler beim Öffnen von" + +#. CMS_SCANNER_ICM +msgid "scanner ICM profile" +msgstr "Scanner ICM-Profil" + +#. CMS_DISPLAY_ICM +msgid "display ICM profile" +msgstr "Bildschirm ICM-Profil" + +#. CMS_PROOF_ICM +msgid "proofing ICM profile" +msgstr "Proofing ICM-Profil" + +#. ERR_CMS_CREATE_TRANSFORM +msgid "Could not create transform" +msgstr "Konnte Transformation nicht erstellen" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Betrachter-Bild ist nicht gespeichert" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "Alle Dateien" + +#. FILE_FILTER_IMAGES +msgid "Images" +msgstr "Bilder" + +#. FILE_FILTER_XBL +msgid "XSane batch list" +msgstr "Stapellisten" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "ICC/ICM Profile" + +#. FILE_FILTER_DRC +msgid "XSane device preferences" +msgstr "Geräteeinstellungen" + +#. FILE_FILTER_RC +msgid "XSane preferences" +msgstr "Einstellungen" + #. TEXT_USAGE msgid "Usage:" msgstr "Gebrauch:" @@ -2900,3 +3196,4 @@ msgstr "Kein Speicher" msgid "Access to resource has been denied" msgstr "Zugang zum Gerät wurde verweigert" + diff --git a/po/de.po~ b/po/de.po~ new file mode 100644 index 0000000..5071eb4 --- /dev/null +++ b/po/de.po~ @@ -0,0 +1,3244 @@ +# German translation for XSane. +# Copyright (C) 1999-2002 Oliver Rauch +# Oliver Rauch +# +msgid "" +msgstr "" +"Project-Id-Version: XSANE 0.99\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" +"PO-Revision-Date: 2000-01-21 15:51+01:00\n" +"Last-Translator: Oliver Rauch \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Please translate this to the correct directory name (eg. german=>de) +#. XSANE_LANGUAGE_DIR +msgid "language_dir" +msgstr "de" + +#. XSANE_COPYRIGHT_SIGN +msgid "(c)" +msgstr "©" + +#. can be translated with \251 +#. FILENAME_PREFIX_CLONE_OF +msgid "clone-of-" +msgstr "Duplikat-von-" + +#. WINDOW_ABOUT_XSANE +msgid "About" +msgstr "Über" + +#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION +msgid "About translation" +msgstr "Über Übersetzung" + +#. WINDOW_AUTHORIZE +msgid "authorization" +msgstr "Autorisation" + +#. WINDOW_GPL +msgid "GPL - the license" +msgstr "GPL - die Lizenz" + +#. WINDOW_EULA +msgid "End User License Agreement" +msgstr "Endbenutzervereinbarung (EULA)" + +#. WINDOW_INFO +msgid "info" +msgstr "Informationen" + +#. WINDOW_LOAD_BATCH_LIST +msgid "load batch list" +msgstr "Stapelliste laden" + +#. WINDOW_SAVE_BATCH_LIST +msgid "save batch list" +msgstr "Stapelliste speichern" + +#. WINDOW_BATCH_SCAN +msgid "batch scan" +msgstr "Stapel Scan" + +#. WINDOW_BATCH_RENAME +msgid "rename batch area" +msgstr "Stapelscan Bereich umbenennen" + +#. WINDOW_FAX_PROJECT +msgid "fax project" +msgstr "Faxprojekt" + +#. WINDOW_FAX_PROJECT_BROWSE +msgid "browse for fax project" +msgstr "Nach Faxprojekt suchen" + +#. WINDOW_FAX_RENAME +msgid "rename fax page" +msgstr "Faxseite umbenennen" + +#. WINDOW_FAX_INSERT +msgid "insert ps-file into fax" +msgstr "ps-Datei einfügen in Fax" + +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-Mail Projekt" + +#. WINDOW_EMAIL_PROJECT_BROWSE +msgid "browse for email project" +msgstr "Nach E-Mailprojekt suchen" + +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "E-Mail Bild umbenennen" + +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "Bild in E-Mail einfügen" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "Mehrseiten-Projekt" + +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +msgid "browse for multipage project" +msgstr "Nach Mehrseiten-Projekt suchen" + +#. WINDOW_PRESET_AREA_RENAME +msgid "rename preset area" +msgstr "Bereichsvoreinstellung umbenennen" + +#. WINDOW_PRESET_AREA_ADD +msgid "add preset area" +msgstr "Bereichsvoreinstellung hinzufügen" + +#. WINDOW_MEDIUM_RENAME +msgid "rename medium" +msgstr "Medium umbenennen" + +#. WINDOW_MEDIUM_ADD +msgid "add new medium" +msgstr "Medium hinzufügen" + +#. WINDOW_SETUP +msgid "setup" +msgstr "Konfiguration" + +#. WINDOW_HISTOGRAM +msgid "Histogram" +msgstr "Histogramm" + +#. WINDOW_GAMMA +msgid "Gamma curve" +msgstr "Gamma Kurve" + +#. WINDOW_STANDARD_OPTIONS +msgid "Standard options" +msgstr "Standard Optionen" + +#. WINDOW_ADVANCED_OPTIONS +msgid "Advanced options" +msgstr "Erweiterte Optionen" + +#. WINDOW_DEVICE_SELECTION +msgid "device selection" +msgstr "Geräteauswahl" + +#. WINDOW_PREVIEW +msgid "Preview" +msgstr "Vorschau" + +#. WINDOW_VIEWER +#. MENU_ITEM_VIEWER +msgid "Viewer" +msgstr "Betrachter" + +#. WINDOW_VIEWER_OUTPUT_FILENAME +msgid "Viewer: select output filename" +msgstr "Betrachter: Ausgabedatei auswählen" + +#. WINDOW_OCR_OUTPUT_FILENAME +msgid "Select output filename for OCR text file" +msgstr "Dateinamen für OCR Text auswählen" + +#. WINDOW_OUTPUT_FILENAME +msgid "select output filename" +msgstr "Ausgabedatei auswählen" + +#. WINDOW_SAVE_SETTINGS +msgid "save device settings" +msgstr "Speichere Geräteeinstellungen" + +#. WINDOW_LOAD_SETTINGS +msgid "load device settings" +msgstr "Lade Geräteeinstellungen" + +#. WINDOW_CHANGE_WORKING_DIR +msgid "change working directory" +msgstr "Arbeitsverzeichnis wechseln" + +#. WINDOW_TMP_PATH +msgid "select temporary directory" +msgstr "temporäres Verzeichnis auswählen" + +#. WINDOW_SCALE +#. DESC_VIEWER_SCALE +msgid "Scale image" +msgstr "Bild skalieren" + +#. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE +msgid "Despeckle image" +msgstr "Flecken entfernen" + +#. WINDOW_BLUR +#. DESC_VIEWER_BLUR +msgid "Blur image" +msgstr "Bild weichzeichnen" + +#. WINDOW_STORE_MEDIUM +msgid "Store medium definition" +msgstr "Mediumdefinition speichern" + +#. WINDOW_NO_DEVICES +msgid "No devices available" +msgstr "Keine Geräte erreichbar" + +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "reflektives ICM-Profil für Scanner auswählen" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "reflektives Graustufen ICM-Profil für Scanner auswählen" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "ICM-Profil für Bildschirm auswählen" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +msgid "select custom proofing ICM-profile" +msgstr "Benutzerdefiniertes Proofing ICM Profil auswählen" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "select working color space ICM-profile" +msgstr "ICM-Profil für Arbeitsfarbraum auswählen" + +#. WINDOW_PRINTER_ICM_PROFILE +msgid "select printer ICM-profile" +msgstr "ICM Profil für Drucker auswählen" + +#. MENU_FILE +msgid "File" +msgstr "Datei" + +#. MENU_PREFERENCES +msgid "Preferences" +msgstr "Einstellungen" + +#. MENU_VIEW +msgid "View" +msgstr "Ansicht" + +#. MENU_WINDOW +msgid "Window" +msgstr "Fenster" + +#. MENU_HELP +#. BUTTON_HELP +msgid "Help" +msgstr "Hilfe" + +#. MENU_EDIT +msgid "Edit" +msgstr "Bearbeiten" + +#. MENU_FILTERS +msgid "Filters" +msgstr "Filter" + +#. MENU_GEOMETRY +msgid "Geometry" +msgstr "Geometrie" + +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "Farbmanagement" + +#. MENU_ITEM_ABOUT_XSANE +msgid "About XSane" +msgstr "Über XSane" + +#. MENU_ITEM_INFO +msgid "Info" +msgstr "Informationen" + +#. MENU_ITEM_QUIT +msgid "Quit" +msgstr "Beenden" + +#. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE +msgid "Save image" +msgstr "Bild speichern" + +#. MENU_ITEM_OCR +msgid "OCR - save as text" +msgstr "OCR - als Text speichern" + +#. MENU_ITEM_CLONE +msgid "Clone" +msgstr "Klonen" + +#. MENU_ITEM_SCALE +msgid "Scale" +msgstr "Skalieren" + +#. MENU_ITEM_CLOSE +#. BUTTON_CLOSE +msgid "Close" +msgstr "Schließen" + +#. MENU_ITEM_UNDO +msgid "Undo" +msgstr "Rückgängig" + +#. MENU_ITEM_DESPECKLE +msgid "Despeckle" +msgstr "Entflecken" + +#. MENU_ITEM_BLUR +msgid "Blur" +msgstr "Weichzeichnen" + +#. MENU_ITEM_ROTATE90 +msgid "Rotate 90" +msgstr "Drehen 90°" + +#. MENU_ITEM_ROTATE180 +msgid "Rotate 180" +msgstr "Drehen 180°" + +#. MENU_ITEM_ROTATE270 +msgid "Rotate 270" +msgstr "Drehen 270°" + +#. MENU_ITEM_MIRROR_X +msgid "Mirror |" +msgstr "Spiegeln |" + +#. MENU_ITEM_MIRROR_Y +msgid "Mirror -" +msgstr "Spiegeln -" + +#. FRAME_RAW_IMAGE +msgid "Raw image" +msgstr "Rohbild" + +#. FRAME_ENHANCED_IMAGE +msgid "Enhanced image" +msgstr "Verbessertes Bild" + +#. BUTTON_SCAN +msgid "Scan" +msgstr "Scannen" + +#. BUTTON_OK +msgid "Ok" +msgstr "OK" + +#. BUTTON_ACCEPT +msgid "Accept" +msgstr "Akzeptieren" + +#. BUTTON_NOT_ACCEPT +msgid "Not accept" +msgstr "Nicht akzeptieren" + +#. BUTTON_APPLY +msgid "Apply" +msgstr "Anwenden" + +#. BUTTON_CANCEL +msgid "Cancel" +msgstr "Abbrechen" + +#. BUTTON_REDUCE +msgid "Reduce" +msgstr "Reduzieren" + +#. BUTTON_CONT_AT_OWN_RISK +msgid "Continue at your own risk" +msgstr "Auf eigenes Risiko fortfahren" + +#. BUTTON_BROWSE +msgid "Browse" +msgstr "Durchsuchen" + +#. BUTTON_OVERWRITE +msgid "Overwrite" +msgstr "Überschreiben" + +#. BUTTON_BATCH_LIST_SCAN +msgid "Scan batch list" +msgstr "Stapelliste scannen" + +#. BUTTON_BATCH_AREA_SCAN +msgid "Scan selected area" +msgstr "Auswahl scannen" + +#. BUTTON_PAGE_DELETE +msgid "Delete page" +msgstr "Seite löschen" + +#. BUTTON_PAGE_SHOW +msgid "Show page" +msgstr "Seite anzeigen" + +#. BUTTON_PAGE_RENAME +msgid "Rename page" +msgstr "Seite umbenennen" + +#. BUTTON_IMAGE_DELETE +msgid "Delete image" +msgstr "Bild löschen" + +#. BUTTON_IMAGE_SHOW +msgid "Show image" +msgstr "Bild anzeigen" + +#. BUTTON_IMAGE_EDIT +msgid "Edit image" +msgstr "Bild ändern" + +#. BUTTON_IMAGE_RENAME +msgid "Rename image" +msgstr "Bild umbenennen" + +#. BUTTON_FILE_INSERT +msgid "Insert file" +msgstr "Datei einfügen" + +#. BUTTON_CREATE_PROJECT +msgid "Create project" +msgstr "Projekt erstellen" + +#. BUTTON_SEND_PROJECT +msgid "Send project" +msgstr "Projekt senden" + +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Mehrseitige Datei speichern" + +#. BUTTON_DELETE_PROJECT +msgid "Delete project" +msgstr "Projekt löschen" + +#. BUTTON_ADD_PRINTER +msgid "Add printer" +msgstr "Drucker hinzufügen" + +#. BUTTON_DELETE_PRINTER +msgid "Delete printer" +msgstr "Drucker löschen" + +#. BUTTON_PREVIEW_ACQUIRE +msgid "Acquire preview" +msgstr "Vorschauscan" + +#. BUTTON_PREVIEW_CANCEL +msgid "Cancel preview" +msgstr "Vorschauscan abbrechen" + +#. BUTTON_DISCARD_IMAGE +msgid "Discard image" +msgstr "Bild verwerfen" + +#. BUTTON_DISCARD_ALL_IMAGES +msgid "Discard all images" +msgstr "alle Bilder verwerfen" + +#. BUTTON_DO_NOT_CLOSE +msgid "Do not close" +msgstr "nicht schließen" + +#. BUTTON_SCALE_BIND +msgid "Bind scale" +msgstr "Verbinde Skalierung" + +#. RADIO_BUTTON_FINE_MODE +msgid "Fine mode" +msgstr "Fein-Modus" + +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML E-Mail" + +#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT +msgid "Save device preferences at exit" +msgstr "Geräteeinstellungen beim Verlassen speichern" + +#. RADIO_BUTTON_OVERWRITE_WARNING +msgid "Overwrite warning" +msgstr "Überschreibwarnung" + +#. RADIO_BUTTON_SKIP_EXISTING_NRS +msgid "Skip existing filenames" +msgstr "Existierende Dateinamen überspringen" + +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Speichere Postscript zlib-komprimiert (ps level 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED +msgid "Save PDF zlib compressed" +msgstr "Speichere PDF zlib-komprimiert" + +#. RADIO_BUTTON_SAVE_PNM16_AS_ASCII +msgid "Save 16bit pnm in ascii format" +msgstr "Speichere 16bit pnm im ASCII-Format" + +#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT +msgid "Reduce 16 bit image to 8 bit" +msgstr "Reduziere 16 Bit Bild auf 8 Bit" + +#. RADIO_BUTTON_WINDOW_FIXED +msgid "Main window size fixed" +msgstr "Feste Hauptfenstergröße" + +#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA +msgid "Disable GIMP preview gamma" +msgstr "Vorschau-Gamma für GIMP deaktivieren" + +#. RADIO_BUTTON_PRIVATE_COLORMAP +msgid "Use private colormap" +msgstr "Benutze eigene Farbpalette" + +#. RADIO_BUTTON_AUTOENHANCE_GAMMA +msgid "Autoenhance gamma" +msgstr "Automatische Gammakorrektur" + +#. RADIO_BUTTON_PRESELECT_SCANAREA +msgid "Preselect scanarea" +msgstr "Scanbereich automatisch wählen" + +#. RADIO_BUTTON_AUTOCORRECT_COLORS +msgid "Autocorrect colors" +msgstr "Automatische Farbkorrektur" + +#. RADIO_BUTTON_OCR_USE_GUI_PIPE +msgid "Use GUI progress pipe" +msgstr "Benutze GUI Fortschritts Pipe" + +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "Schwarzpunkt kompensieren" + +#. TEXT_SCANNING_DEVICES +msgid "scanning for devices" +msgstr "Suche nach Geräten" + +#. TEXT_AVAILABLE_DEVICES +msgid "Available devices:" +msgstr "Erreichbare Geräte:" + +#. TEXT_XSANE_OPTIONS +msgid "XSane options" +msgstr "XSane Optionen" + +#. TEXT_FILETYPE +msgid "Type" +msgstr "Typ" + +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +msgid "Color management function" +msgstr "Farbmanagement-Funktion" + +#. TEXT_SCANNER_BACKEND +msgid "Scanner and backend:" +msgstr "Scanner und Backends" + +#. TEXT_VENDOR +msgid "Vendor:" +msgstr "Hersteller:" + +#. TEXT_MODEL +msgid "Model:" +msgstr "Modell:" + +#. TEXT_TYPE +msgid "Type:" +msgstr "Typ:" + +#. TEXT_DEVICE +msgid "Device:" +msgstr "Gerät:" + +#. TEXT_LOADED_BACKEND +msgid "Loaded backend:" +msgstr "Geladenes Backend:" + +#. TEXT_SANE_VERSION +msgid "Sane version:" +msgstr "sane Version:" + +#. TEXT_RECENT_VALUES +msgid "Recent values:" +msgstr "Aktuelle Werte:" + +#. TEXT_GAMMA_CORR_BY +msgid "Gamma correction by:" +msgstr "Gammakorrektur durch:" + +#. TEXT_SCANNER +msgid "scanner" +msgstr "Scanner" + +#. TEXT_SOFTWARE_XSANE +msgid "software (XSane)" +msgstr "Software (XSane)" + +#. TEXT_NONE +msgid "none" +msgstr "keine" + +#. TEXT_GAMMA_INPUT_DEPTH +msgid "Gamma input depth:" +msgstr "Bittiefe Gammaeingabe:" + +#. TEXT_GAMMA_OUTPUT_DEPTH +msgid "Gamma output depth:" +msgstr "Bittiefe Gammaausgabe:" + +#. TEXT_SCANNER_OUTPUT_DEPTH +msgid "Scanner output depth:" +msgstr "Bittiefe Scannerausgabe:" + +#. TEXT_OUTPUT_FORMATS +msgid "XSane output formats:" +msgstr "XSane Ausgabeformate:" + +#. TEXT_8BIT_FORMATS +msgid "8 bit output formats:" +msgstr "8 Bit Ausgabeformate:" + +#. TEXT_16BIT_FORMATS +msgid "16 bit output formats:" +msgstr "16 Bit Ausgabeformate:" + +#. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy +msgid "" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" +msgstr "" +"Die Bittiefe 16Bits/Farbe wird von diesem Ausgabeformat nicht unterstützt.\n" +"Möchten Sie die Bittiefe auf 8 Bits/Farbe reduzieren?" + +#. TEXT_AUTHORIZATION_REQ +msgid "Authorization required for" +msgstr "Autorisation benötigt für" + +#. TEXT_AUTHORIZATION_SECURE +msgid "Password transmission is secure" +msgstr "Passwortübertragung ist sicher" + +#. TEXT_AUTHORIZATION_INSECURE +msgid "Backend requests plain-text password" +msgstr "Backend erbittet unverschlüsseltes Passwort" + +#. TEXT_USERNAME +msgid "Username :" +msgstr "Benutzername:" + +#. TEXT_PASSWORD +msgid "Password :" +msgstr "Passwort:" + +#. TEXT_INVALID_PARAMS +msgid "Invalid parameters." +msgstr "Ungültige Parameter" + +#. TEXT_VERSION +msgid "version:" +msgstr "Version:" + +#. TEXT_PACKAGE +msgid "package" +msgstr "Paket" + +#. TEXT_WITH_CMS_FUNCTION +msgid "with color management function" +msgstr "mit Farbmanagement-Funktion" + +#. TEXT_WITH_GIMP_SUPPORT +msgid "with GIMP support" +msgstr "mit GIMP-Unterstützung" + +#. TEXT_WITHOUT_GIMP_SUPPORT +msgid "without GIMP support" +msgstr "ohne GIMP-Unterstützung" + +#. TEXT_GTK_VERSION +msgid "compiled with GTK-" +msgstr "übersetzt mit GTK-" + +#. TEXT_GIMP_VERSION +msgid "compiled with GIMP-" +msgstr "übersetzt mit GIMP-" + +#. TEXT_UNKNOWN +msgid "unknown" +msgstr "unbekannt" + +#. TEXT_EULA +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +"Should the program prove defective, you assume the cost of all\n" +"necessary servicing, repair or correction. To use this program you\n" +"have to read, understand and accept the following\n" +"\"NO WARRANTY\" agreement.\n" +msgstr "" +"XSane wird unter den Bedingungen der GNU General Public Licence, wie\n" +"von der Free Software Foundation veröffentlicht, herausgegeben, entweder\n" +"Version 2 der Lizenz, oder (wenn Sie wünschen) jeder späteren Version.\n" +"\n" +"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es\n" +"Ihnen von Nutzen sein wird, aber OHNE JEDE GEWÄHRLEISTUNG\n" +"- sogar ohne die implizite Gewährleistung der MARKTREIFE oder der\n" +"EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Sollte das Programm einen\n" +"Schaden verursachen, dann tragen Sie - der Benutzer - die Kosten\n" +"für alle notwendigen Dienstleistungen, Reparaturen oder Korrekturen.\n" +"Um dieses Programm zu benutzen, haben Sie die folgende Vereinbarung\n" +"über den Haftungsausschluß zu lesen, zu verstehen und zu akzeptieren.\n" + +#. TEXT_GPL +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +msgstr "" +"XSane wird unter den Bedingungen der GNU General Public Licence, wie\n" +"von der Free Software Foundation veröffentlicht, herausgegeben, entweder\n" +"Version 2 der Lizenz, oder (wenn Sie wünschen) jeder späteren Version.\n" +"\n" +"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es\n" +"Ihnen von Nutzen sein wird, aber OHNE JEDE GEWÄHRLEISTUNG\n" +"- sogar ohne die implizite Gewährleistung der MARKTREIFE oder der\n" +"EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\n" + +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "E-Mail:" + +#. TEXT_HOMEPAGE +msgid "Homepage:" +msgstr "Homepage:" + +#. TEXT_FILE +msgid "File:" +msgstr "Datei:" + +#. TEXT_TRANSLATION +msgid "Translation:" +msgstr "Übersetzung:" + +#. Please translate this to something like +#. translation to YOUR LANGUAGE\n +#. by YOUR NAME\n +#. E-mail: your.name@yourdomain.com\n +#. TEXT_TRANSLATION_INFO +msgid "" +"untranslated original english text\n" +"by Oliver Rauch\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" +msgstr "" +"Übersetzung ins Deutsche\n" +"von Oliver Rauch\n" +"E-Mail: Oliver.Rauch@rauch-domain.de\n" + +#. TEXT_INFO_BOX +msgid "0x0: 0KB" +msgstr "0x0: 0KB" + +#. TEXT_ADF_PAGES_SCANNED +msgid "Scanned pages: " +msgstr "gescannte Seiten: " + +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "E-Mail Text:" + +#. TEXT_ATTACHMENTS +msgid "Attachments:" +msgstr "Anhang:" + +#. TEXT_EMAIL_STATUS +msgid "Project status:" +msgstr "Projekt Status:" + +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "Dateityp für E-Mail:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Seiten:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Dateityp mehrseitiges Dokument:" + +#. TEXT_MEDIUM_DEFINITION_NAME +msgid "Medium Name:" +msgstr "Medium Name:" + +#. TEXT_VIEWER_IMAGE_INFO +#, fuzzy, c-format +msgid "" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" +msgstr "" +"Größe %d x %d Punkte, %d Bit/Farbe, %d Farben, %1.0f dpi x %1.0f dpi, %1.1f %" +"s" + +#. TEXT_DESPECKLE_RADIUS +msgid "Despeckle radius:" +msgstr "Entflecken Radius:" + +#. TEXT_BLUR_RADIUS +msgid "Blur radius:" +msgstr "Weichzeichnen Radius:" + +#. TEXT_BATCH_AREA_DEFAULT_NAME +msgid "(no name)" +msgstr "(kein Name)" + +#. TEXT_BATCH_LIST_AREANAME +msgid "Area name:" +msgstr "Bereichsname:" + +#. TEXT_BATCH_LIST_SCANMODE +msgid "Scanmode:" +msgstr "Scanmodus:" + +#. TEXT_BATCH_LIST_GEOMETRY_TL +msgid "Top left:" +msgstr "Oben links:" + +#. TEXT_BATCH_LIST_GEOMETRY_SIZE +msgid "Size:" +msgstr "Größe:" + +#. TEXT_BATCH_LIST_RESOLUTION +msgid "Resolution:" +msgstr "Auflösung:" + +#. TEXT_BATCH_LIST_BIT_DEPTH +msgid "Bit depth:" +msgstr "Bittiefe:" + +#. TEXT_BATCH_LIST_BY_GUI +msgid "as selected" +msgstr "wie ausgewählt" + +#. TEXT_SETUP_PRINTER_SEL +msgid "Printer selection:" +msgstr "Druckerauswahl:" + +#. TEXT_SETUP_PRINTER_NAME +msgid "Name:" +msgstr "Name:" + +#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND +msgid "Command:" +msgstr "Befehl:" + +#. TEXT_SETUP_COPY_NR_OPT +msgid "Copy number option:" +msgstr "Option for Anzahl der Kopien:" + +#. TEXT_SETUP_PRINTER_LINEART_RES +msgid "Lineart resolution (dpi):" +msgstr "Lineart Auflösung (dpi):" + +#. TEXT_SETUP_PRINTER_GRAYSCALE_RES +msgid "Grayscale resolution (dpi):" +msgstr "Graustufen Auflösung (dpi):" + +#. TEXT_SETUP_PRINTER_COLOR_RES +msgid "Color resolution (dpi):" +msgstr "Farb-Auflösung (dpi):" + +#. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH +msgid "Width" +msgstr "Breite" + +#. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT +msgid "Height" +msgstr "Höhe" + +#. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT +msgid "Left offset" +msgstr "Linker Rand" + +#. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM +msgid "Bottom offset" +msgstr "Unterer Rand" + +#. TEXT_SETUP_PRINTER_GAMMA +msgid "Printer gamma value:" +msgstr "Drucker Gammawert:" + +#. TEXT_SETUP_PRINTER_GAMMA_RED +msgid "Printer gamma red:" +msgstr "Drucker Gammawert rot:" + +#. TEXT_SETUP_PRINTER_GAMMA_GREEN +msgid "Printer gamma green:" +msgstr "Drucker Gammawert grün:" + +#. TEXT_SETUP_PRINTER_GAMMA_BLUE +msgid "Printer gamma blue:" +msgstr "Drucker Gammawert blau:" + +#. TEXT_SETUP_PRINTER_EMBED_CSA +msgid "Embed scanner ICM profile as CSA" +msgstr "Scanner/Quell-ICM-Profil als CSA einbinden" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +msgid "Embed printer ICM profile as CRD" +msgstr "ICM Profil für Drucker als CRD einbinden" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "Erzeuge zlib-komprimiertes Posctscript Bild (ps level 3) zum Drucken" + +#. TEXT_SETUP_TMP_PATH +msgid "Temporary directory" +msgstr "Temporäres Verzeichnis" + +#. TEXT_SETUP_IMAGE_PERMISSION +msgid "Image-file permissions" +msgstr "Bilddatei-Rechte" + +#. TEXT_SETUP_DIR_PERMISSION +msgid "Directory permissions" +msgstr "Verzeichnisrechte" + +#. TEXT_SETUP_JPEG_QUALITY +msgid "JPEG image quality" +msgstr "JPEG Bildqualität" + +#. TEXT_SETUP_PNG_COMPRESSION +msgid "PNG image compression" +msgstr "PNG Bildkompression" + +#. TEXT_SETUP_FILENAME_COUNTER_LEN +msgid "Filename counter length" +msgstr "Dateinamenzähler Länge" + +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip Kompressionsrate" + +#. TEXT_SETUP_TIFF_COMPRESSION_16 +msgid "TIFF 16 bit image compression" +msgstr "TIFF 16 bit Bildkompression" + +#. TEXT_SETUP_TIFF_COMPRESSION_8 +msgid "TIFF 8 bit image compression" +msgstr "TIFF 8 bit Bildkompression" + +#. TEXT_SETUP_TIFF_COMPRESSION_1 +msgid "TIFF lineart image compression" +msgstr "TIFF lineart Bildkompression" + +#. TEXT_SETUP_SHOW_RANGE_MODE +msgid "Show range as:" +msgstr "Zeige Bereich als:" + +#. TEXT_SETUP_PREVIEW_OVERSAMPLING +msgid "Preview oversampling:" +msgstr "Vorschau Oversampling:" + +#. TEXT_SETUP_PREVIEW_GAMMA +msgid "Preview gamma:" +msgstr "Vorschau Gamma:" + +#. TEXT_SETUP_PREVIEW_GAMMA_RED +msgid "Preview gamma red:" +msgstr "Vorschau Gamma rot:" + +#. TEXT_SETUP_PREVIEW_GAMMA_GREEN +msgid "Preview gamma green:" +msgstr "Vorschau Gamma grün:" + +#. TEXT_SETUP_PREVIEW_GAMMA_BLUE +msgid "Preview gamma blue:" +msgstr "Vorschau Gamma blau:" + +#. TEXT_SETUP_LINEART_MODE +msgid "Threshold option:" +msgstr "Schwellwert Option:" + +#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE +msgid "Preview pipette range" +msgstr "Vorschau Bereich Pipette" + +#. TEXT_SETUP_THRESHOLD_MIN +msgid "Threshold minimum:" +msgstr "Schwellwert Minimum:" + +#. TEXT_SETUP_THRESHOLD_MAX +msgid "Threshold maximum:" +msgstr "Schwellwert Maximum:" + +#. TEXT_SETUP_THRESHOLD_MUL +msgid "Threshold multiplier:" +msgstr "Schwellwert Multiplikator:" + +#. TEXT_SETUP_THRESHOLD_OFF +msgid "Threshold offset:" +msgstr "Schwellwert Verschiebung:" + +#. TEXT_SETUP_GRAYSCALE_SCANMODE +msgid "Name of grayscale scanmode:" +msgstr "Name des Scanodus \"Graustufen\":" + +#. TEXT_SETUP_HELPFILE_VIEWER +msgid "Helpfile viewer (HTML):" +msgstr "Hilfedatei Betrachter (HTML):" + +#. TEXT_SETUP_FAX_RECEIVER_OPTION +msgid "Receiver option:" +msgstr "Option für Empfängernummer" + +#. TEXT_SETUP_FAX_POSTSCRIPT_OPT +msgid "Postscriptfile option:" +msgstr "Option für Postscriptdatei:" + +#. TEXT_SETUP_FAX_NORMAL_MODE_OPT +msgid "Normal mode option:" +msgstr "Option für Normalmodus:" + +#. TEXT_SETUP_FAX_FINE_MODE_OPT +msgid "Fine mode option:" +msgstr "Option für Feinmodus:" + +#. TEXT_SETUP_FAX_PROGRAM_DEFAULTS +msgid "Set program defaults for:" +msgstr "Setze Standardwerte für folgendes Programm" + +#. TEXT_SETUP_FAX_VIEWER +msgid "Viewer (Postscript):" +msgstr "Betrachter (Postscript):" + +#. TEXT_SETUP_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "Erzeuge zlib-komprimiertes Postscript-Bild (ps level 3) zum Faxen" + +#. TEXT_SETUP_SMTP_SERVER +msgid "SMTP server:" +msgstr "SMTP Server:" + +#. TEXT_SETUP_SMTP_PORT +msgid "SMTP port:" +msgstr "SMTP Port:" + +#. TEXT_SETUP_EMAIL_FROM +msgid "From:" +msgstr "Von:" + +#. TEXT_SETUP_EMAIL_REPLY_TO +msgid "Reply to:" +msgstr "Antwort an:" + +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "E-Mail Authentifizierung" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "Benutzer:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "Passwort:" + +#. TEXT_SETUP_POP3_SERVER +msgid "POP3 server:" +msgstr "POP3-Server:" + +#. TEXT_SETUP_POP3_PORT +msgid "POP3 port:" +msgstr "POP3-Port:" + +#. TEXT_SETUP_OCR_COMMAND +msgid "OCR Command:" +msgstr "OCR Befehl:" + +#. TEXT_SETUP_OCR_INPUTFILE_OPT +msgid "Inputfile option:" +msgstr "Option für Eingabedatei:" + +#. TEXT_SETUP_OCR_OUTPUTFILE_OPT +msgid "Outputfile option:" +msgstr "Option für Ausgabedatei:" + +#. TEXT_SETUP_OCR_USE_GUI_PIPE_OPT +msgid "Use GUI progress pipe:" +msgstr "Benutze GUI Fortschritts-Pipe" + +#. TEXT_SETUP_OCR_OUTFD_OPT +msgid "GUI output-fd option:" +msgstr "GUI Ausgabe-fd Option:" + +#. TEXT_SETUP_OCR_PROGRESS_KEYWORD +msgid "Progress keyword:" +msgstr "Fortschritts-Schluesselwort:" + +#. TEXT_SETUP_PERMISSION_USER +msgid "user" +msgstr "Benutzer" + +#. TEXT_SETUP_PERMISSION_GROUP +msgid "group" +msgstr "Gruppe" + +#. TEXT_SETUP_PERMISSION_ALL +msgid "all" +msgstr "Alle" + +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Scanner reflektives Graustufen ICM-Profil" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Scanner reflektives Graustufen ICM-Profil" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "Bildschirm ICM-Profil" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +msgid "Custom proofing ICM-profile" +msgstr "Benutzerdefiniertes Proofing ICM-Profil" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "Working color space ICM-profile" +msgstr "Arbeitsfarbraum ICM-Profil" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "Drucker ICM-Profil" + +msgid "new media" +msgstr "neues Medium" + +#. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE +msgid "Save" +msgstr "Speichern" + +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Dateityp" + +#. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY +msgid "Copy" +msgstr "Fotokopie" + +#. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX +msgid "Fax" +msgstr "Fax" + +#. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL +msgid "E-mail" +msgstr "E-Mail" + +#. NOTEBOOK_OCR_OPTIONS +msgid "OCR" +msgstr "Texterkennung" + +#. NOTEBOOK_DISPLAY_OPTIONS +msgid "Display" +msgstr "Darstellung" + +#. NOTEBOOK_ENHANCE_OPTIONS +msgid "Enhancement" +msgstr "Verbesserungen" + +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Mehrseitig" + +#. MENU_ITEM_SHOW_TOOLTIPS +msgid "Show tooltips" +msgstr "Zeige Tipps" + +#. MENU_ITEM_SHOW_PREVIEW +msgid "Show preview" +msgstr "Zeige Vorschau" + +#. MENU_ITEM_SHOW_HISTOGRAM +msgid "Show histogram" +msgstr "Zeige Histogramm" + +#. MENU_ITEM_SHOW_GAMMA +msgid "Show gamma curve" +msgstr "Zeige Gammakurve" + +#. MENU_ITEM_SHOW_BATCH_SCAN +msgid "Show batch scan" +msgstr "Zeige Stapelliste" + +#. MENU_ITEM_SHOW_STANDARDOPTIONS +msgid "Show standard options" +msgstr "Zeige Standardoptionen" + +#. MENU_ITEM_SHOW_ADVANCEDOPTIONS +msgid "Show advanced options" +msgstr "Zeige erweiterte Optionen" + +#. MENU_ITEM_SETUP +msgid "Setup" +msgstr "Konfiguration" + +#. MENU_ITEM_LENGTH_UNIT +msgid "Length unit" +msgstr "Längeneinheit" + +#. SUBMENU_ITEM_LENGTH_MILLIMETERS +msgid "millimeters" +msgstr "Millimeter" + +#. SUBMENU_ITEM_LENGTH_CENTIMETERS +msgid "centimeters" +msgstr "Zentimeter" + +#. SUBMENU_ITEM_LENGTH_INCHES +msgid "inches" +msgstr "Zoll" + +#. MENU_ITEM_UPDATE_POLICY +msgid "Update policy" +msgstr "Aktualisierung" + +#. SUBMENU_ITEM_POLICY_CONTINUOUS +msgid "continuous" +msgstr "kontinuierlich" + +#. SUBMENU_ITEM_POLICY_DISCONTINU +msgid "discontinuous" +msgstr "diskontinuierlich" + +#. SUBMENU_ITEM_POLICY_DELAYED +msgid "delayed" +msgstr "verzögert" + +#. MENU_ITEM_SHOW_RESOLUTIONLIST +msgid "Show resolution list" +msgstr "Zeige Auflösungsliste" + +#. MENU_ITEM_PAGE_ROTATE +msgid "Rotate postscript" +msgstr "Drehe Postscript" + +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +msgid "Enable color management" +msgstr "aktiviere Farbmanagement" + +#. MENU_ITEM_EDIT_MEDIUM_DEF +msgid "Edit medium definition" +msgstr "Mediumdefinition ändern" + +#. MENU_ITEM_SAVE_DEVICE_SETTINGS +msgid "Save device settings" +msgstr "Speichere Geräteeinstellungen" + +#. MENU_ITEM_LOAD_DEVICE_SETTINGS +msgid "Load device settings" +msgstr "Lade Geräteeinstellungen" + +#. MENU_ITEM_CHANGE_WORKING_DIR +msgid "Change directory" +msgstr "Arbeitsverzeichnis ändern" + +#. MENU_ITEM_XSANE_EULA +msgid "Show EULA" +msgstr "Zeige Endbenutzervereinbarung" + +#. MENU_ITEM_XSANE_GPL +msgid "Show license (GPL)" +msgstr "Zeige Lizenz (GPL)" + +#. MENU_ITEM_XSANE_DOC +msgid "XSane doc" +msgstr "XSane Anleitung" + +#. MENU_ITEM_BACKEND_DOC +msgid "Backend doc" +msgstr "Backend Anleitung" + +#. MENU_ITEM_AVAILABLE_BACKENDS +msgid "Available backends" +msgstr "Erreichbare Backends" + +#. MENU_ITEM_SCANTIPS +msgid "Scantips" +msgstr "Scantipps" + +#. MENU_ITEM_PROBLEMS +msgid "Problems?" +msgstr "Probleme?" + +#. MENU_ITEM_CMS_PROOFING +msgid "Proofing" +msgstr "Proofing" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "keine Nachbildung (Bildschirm)" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +msgid "Proof printer" +msgstr "Nachbildung Drucker" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "Nachbildung Benutzerdefinierte Ausgabe" + +#. MENU_ITEM_CMS_RENDERING_INTENT +msgid "Rendering intent" +msgstr "" + +#. MENU_ITEM_CMS_PROOFING_INTENT +msgid "Proofing rendering intent" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "Wahrnehmungsorientiert" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "Relativ farbmetrisch" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "Absolut farbmetrisch" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +msgid "Saturation" +msgstr "Sättigung" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "Gamut prüfen" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "Gamut Alarmfarbe" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "Schwarz" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "Grau" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +msgid "White" +msgstr "Weiss" + +#. SUBMENU_ITEM_CMS_COLOR_RED +msgid "Red" +msgstr "Rot" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "Grün" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +msgid "Blue" +msgstr "Blau" + +#. MENU_ITEM_COUNTER_LEN_INACTIVE +msgid "inactive" +msgstr "nicht aktiv" + +#. MENU_ITEM_TIFF_COMP_NONE +msgid "no compression" +msgstr "keine Kompression" + +#. MENU_ITEM_TIFF_COMP_CCITTRLE +msgid "CCITT 1D Huffman compression" +msgstr "CCITT 1D Huffman Kompression" + +#. MENU_ITEM_TIFF_COMP_CCITFAX3 +msgid "CCITT Group 3 Fax compression" +msgstr "CCITT Gruppe 3 Fax Kompression" + +#. MENU_ITEM_TIFF_COMP_CCITFAX4 +msgid "CCITT Group 4 Fax compression" +msgstr "CCITT Gruppe 4 Fax Kompression" + +#. MENU_ITEM_TIFF_COMP_JPEG +msgid "JPEG DCT compression" +msgstr "JPEG DCT Kompression" + +#. MENU_ITEM_TIFF_COMP_PACKBITS +msgid "pack bits" +msgstr "gepackte Bits" + +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "komprimiert" + +#. MENU_ITEM_RANGE_SCALE +msgid "Slider (Scale)" +msgstr "Schieber (Scale)" + +#. MENU_ITEM_RANGE_SCROLLBAR +msgid "Slider (Scrollbar)" +msgstr "Schieber (Scrollbalken)" + +#. MENU_ITEM_RANGE_SPINBUTTON +msgid "Spinbutton" +msgstr "Drehknopf" + +#. MENU_ITEM_RANGE_SCALE_SPIN +msgid "Scale and Spinbutton" +msgstr "Scale und Drehknopf" + +#. MENU_ITEM_RANGE_SCROLL_SPIN +msgid "Scrollbar and Spinbutton" +msgstr "Scrollbalken und Drehknopf" + +#. MENU_ITEM_LINEART_MODE_STANDARD +msgid "Standard options window (lineart)" +msgstr "Standard Optionen Fenster (b/w)" + +#. MENU_ITEM_LINEART_MODE_XSANE +msgid "XSane main window (lineart)" +msgstr "XSane Hauptfenster (b/w)" + +#. MENU_ITEM_LINEART_MODE_GRAY +msgid "XSane main window (grayscale->lineart)" +msgstr "XSane Hauptfenster (grau->b/w)" + +#. MENU_ITEM_SELECTION_NONE +msgid "(none)" +msgstr "(nichts)" + +#. MENU_ITEM_FILETYPE_BY_EXT +msgid "by ext" +msgstr "nach Erw" + +#. MENU_ITEM_PRESET_AREA_ADD_SEL +msgid "Add selection to list" +msgstr "Auswahl zur Liste hinzufügen" + +#. MENU_ITEM_MEDIUM_ADD +msgid "Add medium definition" +msgstr "Mediumdefinition hinzufügen" + +#. MENU_ITEM_RENAME +msgid "Rename item" +msgstr "Eintrag umbenennen" + +#. MENU_ITEM_DELETE +msgid "Delete item" +msgstr "Eintrag löschen" + +#. MENU_ITEM_MOVE_UP +msgid "Move item up" +msgstr "Eintrag nach oben schieben" + +#. MENU_ITEM_MOVE_DWN +msgid "Move item down" +msgstr "Eintrag nach unten schieben" + +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "keine Authentifizierung" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 bevor SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP Plain" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP Login" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +msgid "Embed scanner ICM profile" +msgstr "Scanner ICM-Profil einbinden" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "Nach sRGB konvertieren" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +msgid "Convert to working color space" +msgstr "In Arbeitsfarbraum konvertieren" + +#. PROGRESS_SCANNING +msgid "Scanning" +msgstr "Scanne" + +#. PROGRESS_RECEIVING_FRAME_DATA +#, c-format +msgid "Receiving %s data" +msgstr "Empfange %s Daten" + +#. PROGRESS_PAGE +msgid "page" +msgstr "Seite" + +#. PROGRESS_TRANSFERING_DATA +msgid "Transfering image" +msgstr "Bild übertragen" + +#. PROGRESS_ROTATING_DATA +msgid "Rotating image" +msgstr "Bild drehen" + +#. PROGRESS_MIRRORING_DATA +msgid "Mirroring image" +msgstr "Bild spiegeln" + +#. PROGRESS_PACKING_DATA +msgid "Packing image" +msgstr "Bild packen" + +#. PROGRESS_CONVERTING_DATA +msgid "Converting image" +msgstr "Bild konvertieren" + +#. PROGRESS_SAVING_DATA +msgid "Saving image" +msgstr "Bild speichern" + +#. PROGRESS_CLONING_DATA +msgid "Cloning image" +msgstr "Bild clonen" + +#. PROGRESS_SCALING_DATA +msgid "Scaling image" +msgstr "Bild skalieren" + +#. PROGRESS_DESPECKLING_DATA +msgid "Despeckling image" +msgstr "Flecken entfernen" + +#. PROGRESS_BLURING_DATA +msgid "Bluring image" +msgstr "Bild weichzeichnen" + +#. PROGRESS_OCR +msgid "OCR in progress" +msgstr "Texterkennung" + +#. PROGRESS_ICM_CONVERSION +msgid "converting colors" +msgstr "konvertiere Farben" + +#. DESC_SCAN_START +msgid "Start scan " +msgstr "Scan starten " + +#. DESC_SCAN_CANCEL +msgid "Cancel scan " +msgstr "Scan abbrechen " + +#. DESC_PREVIEW_ACQUIRE +msgid "Acquire preview scan " +msgstr "Vorschauscan " + +#. DESC_PREVIEW_CANCEL +msgid "Cancel preview scan " +msgstr "Vorschauscan abbrechen " + +#. DESC_XSANE_MODE +msgid "" +"viewer-, save-, photocopy-, multipage-, fax-" +" or e-mail-" +msgstr "" +"Betrachter-, speichern- kopieren-, Mehrseiten-, Fax- oder E-Mail-" + +#. DESC_XSANE_MEDIUM +msgid "" +"Select source medium type.\n" +"To rename, reorder or delete an entry use context menu (right mouse " +"button).\n" +"To create a medium enable the option edit medium definition in preferences " +"menu." +msgstr "" +"Quellmedium auswählen.\n" +"Zum Umbenennen, Umsortieren oder Löschen eines Eintrags das Kontextmenü " +"benutzen (rechter Mausknopf).\n" +"Um ein neues Medium zu erzeugen, Option Medium ändern im Einstellungsmenü " +"aktivieren." + +#. DESC_FILENAME_COUNTER_STEP +msgid "Value that is added to filenamecounter after scan" +msgstr "Wert, der nach einem Scan zum Dateinamenzähler addiert wird" + +#. DESC_BROWSE_FILENAME +msgid "Browse for image filename" +msgstr "Suche nach Bild-Dateinamen" + +#. DESC_FILENAME +msgid "Filename for scanned image" +msgstr "Dateiname für gescanntes Bild" + +#. DESC_FILETYPE +msgid "" +"Type of image format, the suitable filename extension is automatically added " +"to the filename" +msgstr "" +"Dateiformat, die passende Dateinamen-Erweiterung wird automatisch an den " +"Dateinamen angehängt" + +#. DESC_FAXPROJECT +msgid "Enter fax project directory name" +msgstr "Faxprojekt-Verzeichnis Namen eingeben" + +#. DESC_FAXPAGENAME +msgid "Enter new name for faxpage" +msgstr "Name der Faxseite eingeben" + +#. DESC_FAXRECEIVER +msgid "Enter receiver phone number or address" +msgstr "Telefonnummer des Empfängers eingeben" + +#. DESC_FAX_PROJECT_BROWSE +msgid "Browse for fax project directory" +msgstr "Nach Faxprojekt-Verzeichnis suchen" + +#. DESC_EMAIL_PROJECT +msgid "Enter e-mail project directory name" +msgstr "Email-Projekt-Verzeichnis Namen eingeben" + +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "neuen Name für E-Mail Bild eingeben" + +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "E-Mail Adresse eingeben" + +#. DESC_EMAIL_PROJECT_BROWSE +msgid "Browse for email project directory" +msgstr "Nach Email-Projekt-Verzeichnis suchen" + +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "Betreff der E-Mail eingeben" + +#. DESC_EMAIL_FILETYPE +msgid "Select filetype for image attachments" +msgstr "Dateityp für E-Mailanhang auswählen" + +#. DESC_MULTIPAGE_PROJECT +msgid "Enter multipage project directory name" +msgstr "Mehrseiten-Projekt-Verzeichnis Namen eingeben" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +msgid "Browse for multipage project directory" +msgstr "Nach Mehrseiten-Projekt-Verzeichnis suchen" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Dateityp für mehrseitiges Projekt auswählen" + +#. DESC_PRESET_AREA_RENAME +msgid "Enter new name for preset area" +msgstr "Name der Gebietsvoreinstellung eingeben" + +#. DESC_PRESET_AREA_ADD +msgid "Enter name for new preset area" +msgstr "Namen für Gebietsvoreinstellung eingeben" + +#. DESC_MEDIUM_RENAME +msgid "Enter new name for medium definition" +msgstr "Namen für Mediendefinition eingeben" + +#. DESC_MEDIUM_ADD +msgid "Enter name for new medium definition" +msgstr "Namen für Mediendefinition eingeben" + +#. DESC_PRINTER_SELECT +msgid "Select printerdefinition " +msgstr "Wähle Druckerdefinition " + +#. DESC_RESOLUTION +msgid "Set scan resolution" +msgstr "Bestimmt die Scanauflösung" + +#. DESC_RESOLUTION_X +msgid "Set scan resolution for x direction" +msgstr "Bestimmt die Scanauflösung in X-Richtung" + +#. DESC_RESOLUTION_Y +msgid "Set scan resolution for y direction" +msgstr "Bestimmt die Scanauflösung in Y-Richtung" + +#. DESC_ZOOM +msgid "Set zoomfactor" +msgstr "Bestimmt den Vergrößerungsfaktor" + +#. DESC_ZOOM_X +msgid "Set zoomfactor for x direction" +msgstr "Bestimmt den Vergrößerungsfaktor in X-Richtung" + +#. DESC_ZOOM_Y +msgid "Set zoomfactor for y direction" +msgstr "Bestimmt den Vergrößerungsfaktor in Y-Richtung" + +#. DESC_COPY_NUMBER +msgid "Set number of copies" +msgstr "Bestimmt die Anzahl der Kopien" + +#. DESC_NEGATIVE +msgid "Negative: Invert colors for scanning negatives " +msgstr "Negativ: Invertiere Farben, zum Scannen von Negativen " + +#. DESC_GAMMA +msgid "Set gamma value" +msgstr "Bestimmt Gammawert" + +#. DESC_GAMMA_R +msgid "Set gamma value for red component" +msgstr "Bestimmt Gammawert für rote Komponente" + +#. DESC_GAMMA_G +msgid "Set gamma value for green component" +msgstr "Bestimmt Gammawert für grüne Komponente" + +#. DESC_GAMMA_B +msgid "Set gamma value for blue component" +msgstr "Bestimmt Gammawert für blaue Komponente" + +#. DESC_BRIGHTNESS +msgid "Set brightness" +msgstr "Bestimmt Helligkeit" + +#. DESC_BRIGHTNESS_R +msgid "Set brightness for red component" +msgstr "Bestimmt Helligkeit für rote Komponente" + +#. DESC_BRIGHTNESS_G +msgid "Set brightness for green component" +msgstr "Bestimmt Helligkeit für grüne Komponente" + +#. DESC_BRIGHTNESS_B +msgid "Set brightness for blue component" +msgstr "Bestimmt Helligkeit für blaue Komponente" + +#. DESC_CONTRAST +msgid "Set contrast" +msgstr "Bestimmt Kontrast" + +#. DESC_CONTRAST_R +msgid "Set contrast for red component" +msgstr "Bestimmt Kontrast für rote Komponente" + +#. DESC_CONTRAST_G +msgid "Set contrast for green component" +msgstr "Bestimmt Kontrast für grüne Komponente" + +#. DESC_CONTRAST_B +msgid "Set contrast for blue component" +msgstr "Bestimmt Kontrast für blaue Komponente" + +#. DESC_THRESHOLD +msgid "Set threshold" +msgstr "Schwellwert setzen" + +#. DESC_RGB_DEFAULT +msgid "" +"RGB default: Set enhancement values for red, green and blue to default " +"values :\n" +" gamma = 1.0\n" +" brightness = 0\n" +" contrast = 0" +msgstr "" +"RGB Standard: Setzt Farbverbesserungswerte für rot, grün und blau auf " +"Standardwerte :\n" +"Gamma = 1.0\n" +"Helligkeit = 0\n" +"Kontrast = 0" + +#. DESC_ENH_AUTO +msgid "Autoadjust gamma, brightness and contrast " +msgstr "Automatische Einstellung von Gamma, Helligkeit und Kontrast " + +#. DESC_ENH_DEFAULT +msgid "" +"Set default enhancement values :\n" +"gamma = 1.0\n" +"brightness = 0\n" +"contrast = 0" +msgstr "" +"Setze Standardwerte für Farbverbesserung :\n" +"Gamma = 1.0\n" +"Helligkeit = 0\n" +"Kontrast = 0" + +#. DESC_ENH_RESTORE +msgid "Restore enhancement values from preferences " +msgstr "Lade Farbverbesserungswerte aus Einstellungen " + +#. DESC_ENH_STORE +msgid "Store active enhancement values to preferences " +msgstr "Speichere Farbverbesserungswerte in Einstellungen " + +#. DESC_HIST_INTENSITY +msgid "Show histogram of intensity/gray " +msgstr "Zeige Histogramm für Intensität/grau " + +#. DESC_HIST_RED +msgid "Show histogram of red component " +msgstr "Zeige Histogramm für rote Komponente " + +#. DESC_HIST_GREEN +msgid "Show histogram of green component " +msgstr "Zeige Histogramm für grüne Komponente " + +#. DESC_HIST_BLUE +msgid "Show histogram of blue component " +msgstr "Zeige Histogramm für blaue Komponente " + +#. DESC_HIST_PIXEL +msgid "Display mode: show histogram with lines instead of pixels " +msgstr "Zeichne Histogramm mit Linien anstatt mit Punkten " + +#. DESC_HIST_LOG +msgid "Show logarithm of pixelcount " +msgstr "Benutze Logarithmus der Pixelzahlen " + +#. DESC_PRINTER_SETUP +msgid "Select definition to change" +msgstr "Auswahl der zu ändernden Definition" + +#. DESC_PRINTER_NAME +msgid "Define a name for the selection of this definition" +msgstr "Namen der Definition" + +#. DESC_PRINTER_COMMAND +msgid "Enter command to be executed in copy mode (e.g. \"lpr\")" +msgstr "" +"Befehl der im Kopiermodus zum Drucken ausgeführt werden soll (z.B. \"lpr\")" + +#. DESC_COPY_NUMBER_OPTION +msgid "Enter option for copy numbers" +msgstr "Option, mit der die Anzahl der Kopien angegeben wird" + +#. DESC_PRINTER_LINEART_RESOLUTION +msgid "" +"Resolution with which lineart images are printed and saved in postscript" +msgstr "" +"Auflösung, mit der Lineart-Bilder gedruckt und im Postscriptformat " +"gespeichert werden" + +#. DESC_PRINTER_GRAYSCALE_RESOLUTION +msgid "" +"Resolution with which grayscale images are printed and saved in postscript" +msgstr "" +"Auflösung, mit der Graustufen-Bilder gedruckt und im Postscriptformat " +"gespeichert werden" + +#. DESC_PRINTER_COLOR_RESOLUTION +msgid "Resolution with which color images are printed and saved in postscript" +msgstr "" +"Auflösung, mit der Farb-Bilder gedruckt und im Postscriptformat gespeichert " +"werden" + +#. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH +msgid "Width of printable area" +msgstr "Breite des druckbaren Bereichs" + +#. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT +msgid "Height of printable area" +msgstr "Höhe des druckbaren Bereichs" + +#. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET +msgid "Left offset from the edge of the paper to the printable area" +msgstr "Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs" + +#. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET +msgid "Bottom offset from the edge of the paper to the printable area" +msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs" + +#. DESC_PRINTER_GAMMA +msgid "Additional gamma value for photocopy" +msgstr "Zusätzlicher Gammawert beim Fotokopieren" + +#. DESC_PRINTER_GAMMA_RED +msgid "Additional gamma value for red component for photocopy" +msgstr "Zusätzlicher Gammawert für rote Komponente beim Fotokopieren" + +#. DESC_PRINTER_GAMMA_GREEN +msgid "Additional gamma value for green component for photocopy" +msgstr "Zusätzlicher Gammawert für grüne Komponente beim Fotokopieren" + +#. DESC_PRINTER_GAMMA_BLUE +msgid "Additional gamma value for blue component for photocopy" +msgstr "Zusätzlicher Gammawert für blaue Komponente beim Fotokopieren" + +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "Erzeugt eine Postscriptdatei die das ICM-Profil des Scammers enthält" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "Erzeugt eine Postscriptdatei die das ICM-Profil des Druckers enthält" + +#. DESC_PRINTER_PS_FLATEDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatedecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Erzeuge zlib-komprimiertes Postscript Bild zum Drucken (flatdecode).\n" +"Der Drucker muss Postscript level 3 verstehen!" + +#. DESC_TMP_PATH +msgid "Path to temp directory" +msgstr "Pfad zum temporären Verzeichnis" + +#. DESC_BUTTON_TMP_PATH_BROWSE +msgid "Browse for temporary directory" +msgstr "Nach temporärem Verzeichnis suchen" + +#. DESC_JPEG_QUALITY +msgid "" +"Quality in percent if image is saved as jpeg or tiff with jpeg compression" +msgstr "" +"Qualität in Prozent wenn Bild als JPEG oder als TIFF mit JPEG-Kompression " +"gespeichert wird" + +#. DESC_PNG_COMPRESSION +msgid "Compression if image is saved as png" +msgstr "Kompression wenn Bild im PNG-Format gespeichert wird" + +#. DESC_FILENAME_COUNTER_LEN +msgid "Minimum length of counter in filename" +msgstr "Minimale Länge des Zählers im Dateinamen" + +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "" +"ZIP-Kompressionsrate wenn Bild im komprimierten TIFF-Format gespeichert wird" + +#. DESC_TIFF_COMPRESSION_16 +msgid "Compression type if 16 bit image is saved as tiff" +msgstr "Kompression wenn 16 bit Bild im TIFF-Format gespeichert wird" + +#. DESC_TIFF_COMPRESSION_8 +msgid "Compression type if 8 bit image is saved as tiff" +msgstr "Kompression wenn 8 bit Bild im TIFF-Format gespeichert wird" + +#. DESC_TIFF_COMPRESSION_1 +msgid "Compression type if lineart image is saved as tiff" +msgstr "Kompression wenn lineart Bild im TIFF-Format gespeichert wird" + +#. DESC_SAVE_DEVPREFS_AT_EXIT +msgid "Save device dependant preferences in default file at exit of xsane" +msgstr "" +"Geräteabhängige Einstellungen werden in der Default-Datei beim Beenden von " +"xsane gespeichert" + +#. DESC_OVERWRITE_WARNING +msgid "Warn before overwriting an existing file" +msgstr "Warne vorm Überschreiben existierender Dateien" + +#. DESC_SKIP_EXISTING +msgid "" +"If filename counter is automatically increased, used numbers are skipped" +msgstr "" +"Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte " +"Dateinummern übersprungen" + +#. DESC_SAVE_PS_FLATEDECODED +msgid "" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" +msgstr "" +"komprimiere Postscript Bild mit zlib Algorithmus (flatedecode). Wenn die " +"Datei gedruckt werden soll muss der Drucker Postscript level 3 verstehen" + +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." +msgstr "komprimiere PDF Bild mit zlib Algorithmus (flatedecode)." + +#. DESC_SAVE_PNM16_AS_ASCII +msgid "" +"When a 16 bit image shall be saved in pnm format then use ascii format " +"instead of binary format. The binary format is a new format that is not " +"supported by all programs. The ascii format is supported by more programs " +"but it produces really huge files!!!" +msgstr "" +"Speicher 16 Bit PNM-Bilder im ASCII Format anstatt im Binär Format. Das " +"Binär Format ist ein neues Format, das nicht von allen Programmen " +"unterstützt wird. Das ASCII Format wird von mehr Programmen unterstützt, " +"aber die Dateien werden sehr groß!!!" + +#. DESC_REDUCE_16BIT_TO_8BIT +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" +msgstr "" +"Wenn der Scanner das Bild mit 16 Bits/Farbe liefert wird das Bild mit 8 Bits/" +"Farbe gespeichert" + +#. DESC_PSFILE_WIDTH +msgid "Width of paper for postscript files" +msgstr "Breite des druckbaren Bereichs für Postscript" + +#. DESC_PSFILE_HEIGHT +msgid "Height of paper for postscript files" +msgstr "Höhe des druckbaren Bereichs für Postscript" + +#. DESC_PSFILE_LEFTOFFSET +msgid "" +"Left offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs für " +"Postsciptdateien" + +#. DESC_PSFILE_BOTTOMOFFSET +msgid "" +"Bottom offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs für " +"Postsciptdateien" + +#. DESC_MAIN_WINDOW_FIXED +msgid "Use fixed main window size or scrolled, resizable main window" +msgstr "Verwende feste oder veränderbare Hauptfenstergröße" + +#. DESC_DISABLE_GIMP_PREVIEW_GAMMA +msgid "Disable preview gamma when XSane runs as GIMP plugin" +msgstr "Preview Gamma deaktivieren wenn XSane als Gimp-Plugin gestartet wird" + +#. DESC_PREVIEW_COLORMAP +msgid "Use an own colormap for preview if display depth is 8 bpp" +msgstr "" +"Benutze eigene Farbpalette für Vorschaubild, wenn die Bildschirmfarbtiefe 8 " +"Bit beträgt" + +#. DESC_SHOW_RANGE_MODE +msgid "Select how a range is displayed" +msgstr "Bestimmen Sie, wie die Auswahle eines Bereichs dargestellt wird" + +#. DESC_PREVIEW_OVERSAMPLING +msgid "Value with that the calculated preview resolution is multiplied" +msgstr "Wert, mit dem die berechnete Vorschauauflösung multipliziert wird" + +#. DESC_PREVIEW_GAMMA +msgid "Set gamma correction value for preview image" +msgstr "Bestimme Gammwert für Vorschaubild" + +#. DESC_PREVIEW_GAMMA_RED +msgid "Set gamma correction value for red component of preview image" +msgstr "Bestimme Gammwert der roten Komponente für Vorschaubild" + +#. DESC_PREVIEW_GAMMA_GREEN +msgid "Set gamma correction value for green component of preview image" +msgstr "Bestimme Gammwert der grünen Komponente für Vorschaubild" + +#. DESC_PREVIEW_GAMMA_BLUE +msgid "Set gamma correction value for blue component of preview image" +msgstr "Bestimme Gammwert der blauen Komponente für Vorschaubild" + +#. DESC_LINEART_MODE +msgid "Define the way XSane shall handle the threshold option" +msgstr "Definiert die Art, wie XSane die Schwellwert-Option behandeln soll" + +#. DESC_GRAYSCALE_SCANMODE +msgid "" +"Select grayscale scanmode. This scanmode is used for lineart preview scan " +"when transformation from grayscale to lineart is enabled" +msgstr "" +"Name des Graustufen-Scanmodus auswählen. Dieser Scanmodus wird beim Schwarz-" +"Weiß Vorschauscan verwendet, wenn Umwandlung von Graustufen in Schwarz/Weiß " +"aktiviert ist." + +#. DESC_PREVIEW_THRESHOLD_MIN +#, no-c-format +msgid "The scanner's minimum threshold level in %" +msgstr "Minimaler Schwellwert des Scanners in %" + +#. DESC_PREVIEW_THRESHOLD_MAX +#, no-c-format +msgid "The scanner's maximum threshold level in %" +msgstr "Maximaler Schwellwert des Scanners in %" + +#. DESC_PREVIEW_THRESHOLD_MUL +msgid "" +"Multiplier to make XSane threshold range and scanner threshold range the same" +msgstr "" +"Multiplikator um XSane's Schwellwertbereich und den Schwellwertbereich des " +"Scanners aufeinander abzustimmen" + +#. DESC_PREVIEW_THRESHOLD_OFF +msgid "" +"Offset to make XSane threshold range and scanner threshold range the same" +msgstr "" +"Schwellwertverschiebung um XSane's Schwellwertbereich und den " +"Schwellwertbereich des Scanners aufeinander abzustimmen" + +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Anzahl der zu scannenden Seiten" + +#. DESC_PREVIEW_PIPETTE_RANGE +msgid "dimension of square that is used to average color for pipette function" +msgstr "" +"Größe des Quadrats, das zum Mitteln der Farbe für die Pipette Funktion " +"benutzt wird" + +#. DESC_DOC_VIEWER +msgid "" +"Enter command to be executed to display helpfiles, must be a html-viewer!" +msgstr "" +"Befehl, der ausgeführt werden soll, um Hilfedateien anzuzeigen, muß ein HTML-" +"Betrachter sein!" + +#. DESC_AUTOENHANCE_GAMMA +msgid "Change gamma value when autoenhancement button is pressed" +msgstr "" +"Gamma Wert wird angepasst wenn Knopf für automatische Verbesserung gedrückt " +"wird" + +#. DESC_PRESELECT_SCANAREA +msgid "Select scanarea after preview scan has finished" +msgstr "Scanbereich nach Vorschauscan automatisch auswählen" + +#. DESC_AUTOCORRECT_COLORS +msgid "Do color correction after preview scan has finished" +msgstr "Farbkorrektur nach Vorschauscan ausführen" + +#. DESC_RENDERING_INTENT +msgid "Select rendering intent for preview and saving" +msgstr "Rendering Intent für Vorschau und zum Speichern auswählen" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "Scharzpunkt-Kompensation bei Farbtransformation anwenden" + +#. DESC_FAX_COMMAND +msgid "Enter command to be executed in fax mode" +msgstr "Befehl, der zum Senden eines Faxprojekts ausgeführt werden soll" + +#. DESC_FAX_RECEIVER_OPT +msgid "Enter option to specify receiver" +msgstr "Option, mit der die Empfängertelefonnummer angegeben wird" + +#. DESC_FAX_POSTSCRIPT_OPT +msgid "Enter option to specify postscript files following" +msgstr "" +"Option, mit der angegeben wird, dass der Dateiname einer Postscriptdatei " +"folgt" + +#. DESC_FAX_NORMAL_OPT +msgid "Enter option to specify normal mode (low resolution)" +msgstr "Option, mit der die vertikale Auflösung auf 98 lpi gestellt wird" + +#. DESC_FAX_FINE_OPT +msgid "Enter option to specify fine mode (high resolution)" +msgstr "Option, mit der die vertikale Auflösung auf 196 lpi gestellt wird" + +#. DESC_FAX_VIEWER +msgid "Enter command to be executed to view a fax" +msgstr "" +"Befehl, der ausgeführt werden soll, um Faxseiten(Postscript) anzuzeigen" + +#. DESC_FAX_FINE_MODE +msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" +msgstr "Sende Fax mit hoher vertikaler Auflösung (196 lpi anstatt 98 lpi)" + +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" +msgstr "Erzeuge zlib-komprimiertes Postscript-Bild (ps level 3) zum Faxen" + +#. DESC_SMTP_SERVER +msgid "IP Address or Domain name of SMTP server" +msgstr "IP Adresse oder Domain Name des SMTP Servers" + +#. DESC_SMTP_PORT +msgid "port to connect to SMTP server" +msgstr "Port, auf dem zum SMTP Server verbunden werden soll" + +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "Geben Sie Ihre E-Mail Adresse ein" + +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "Geben Sie die E-Mail Adresse für Antworten auf diese E-Mail ein" + +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Art der Authentifizierung bevor E-Mail gesendet wird" + +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "Benutername für den E-Mail-Server" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "Passwort für den E-Mail-Server" + +#. DESC_POP3_SERVER +msgid "IP Address or Domain name of POP3 server" +msgstr "IP Adresse oder Domain Name des POP3-Servers" + +#. DESC_POP3_PORT +msgid "port to connect to POP3 server" +msgstr "Port, auf dem zum POP3-Server verbunden werden soll" + +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: " +msgstr "E-Mail wird im hmtl Modus gesandt, Bild platzieren mit: " + +#. DESC_OCR_COMMAND +msgid "Enter command to start ocr program" +msgstr "OCR Befehl eingeben" + +#. DESC_OCR_INPUTFILE_OPT +msgid "Enter option of the ocr program to define input file" +msgstr "Eingabe-Datei-Option für OCR Programm eingeben" + +#. DESC_OCR_OUTPUTFILE_OPT +msgid "Enter option of the ocr program to define output file" +msgstr "Ausgabe-Datei-Option für OCR Programm eingeben" + +#. DESC_OCR_USE_GUI_PIPE_OPT +msgid "Define if the ocr program supports gui progress pipe" +msgstr "" +"Definieren Sie, ob das OCR Programm eine GUI-Fortschritts-Pipe unterstützt" + +#. DESC_OCR_OUTFD_OPT +msgid "" +"Enter option of the ocr program to define output filedescripor in GUI mode" +msgstr "" +"Geben Sie die Option des OCR Programms ein, mit der der Ausgabefildeskriptor " +"im GUI Mode übergeben wird" + +#. DESC_OCR_PROGRESS_KEYWORD +msgid "Define Keyword that is used to mark progress information" +msgstr "" +"Definieren Sie das Schlüsselwort, das benutzt wird, um Fortschritssangaben " +"zu kennzeichenen" + +#. DESC_PERMISSION_READ +msgid "read" +msgstr "lesen" + +#. DESC_PERMISSION_WRITE +msgid "write" +msgstr "schreiben" + +#. DESC_PERMISSION_SEARCH +msgid "search" +msgstr "durchsuchen" + +#. DESC_ADD_BATCH +msgid "Add selection for batch scan" +msgstr "Auswahl zur Stapelliste hinzufügen" + +#. DESC_PIPETTE_WHITE +msgid "Pick white point" +msgstr "Wähle weißen Punkt" + +#. DESC_PIPETTE_GRAY +msgid "Pick gray point" +msgstr "Wähle grauen Punkt" + +#. DESC_PIPETTE_BLACK +msgid "Pick black point" +msgstr "Wähle schwarzen Punkt" + +#. DESC_ZOOM_FULL +msgid "Use full scanarea" +msgstr "Zoomt auf kompletten Scanbereich" + +#. DESC_ZOOM_OUT +#, no-c-format +msgid "Zoom 20% out" +msgstr "Zoomt um 20% heraus" + +#. DESC_ZOOM_IN +msgid "Click at position to zoom to" +msgstr "In gewünschten Bereich zum Zoomen klicken" + +#. DESC_ZOOM_AREA +msgid "Zoom into selected area" +msgstr "Zoomt in den gewählten Bereich hinein" + +#. DESC_ZOOM_UNDO +msgid "Undo last zoom" +msgstr "letzten Zoom rückgängig machen" + +#. DESC_FULL_PREVIEW_AREA +msgid "Select visible area" +msgstr "Sichtbaren Bereich auswählen" + +#. DESC_AUTOSELECT_SCANAREA +msgid "Autoselect scanarea" +msgstr "Scanbereich automatisch wählen" + +#. DESC_AUTORAISE_SCANAREA +msgid "Autoraise scanarea" +msgstr "Scanbereich automatisch aufziehen" + +#. DESC_DELETE_IMAGES +msgid "Delete preview image cache" +msgstr "Vorschau Speicher löschen" + +#. DESC_PRESET_AREA +msgid "" +"Preset area:\n" +"To add new area or edit an existing area use contect menu (right mouse " +"button)." +msgstr "" +"Bereichsvoreinstellung:\n" +"Um einen neuen Bereich hinzuzufügen oder existierende Voreinstellungen zu " +"ändern verwenden Sie das Kontextmenü (rechter Mausknopf)." + +#. DESC_ROTATION +msgid "Rotate preview and scan" +msgstr "Drehe Vorschau und Scan" + +#. DESC_RATIO +msgid "Aspect ratio of selection" +msgstr "Seitenverhältnis der Auswahl" + +#. DESC_PAPER_ORIENTATION +msgid "Define image position for printing" +msgstr "Bildposition beim Drucken definieren" + +#. DESC_VIEWER_OCR +msgid "Optical Character Recognition" +msgstr "Optische Zeichenerkennung (OCR)" + +#. DESC_VIEWER_UNDO +msgid "Undo last change" +msgstr "Letzte Änderung rückgängig machen" + +#. DESC_VIEWER_CLONE +msgid "Clone image" +msgstr "Bild clonen" + +#. DESC_ROTATE90 +msgid "Rotate image 90 degree" +msgstr "Drehe Bild um 90 Grad" + +#. DESC_ROTATE180 +msgid "Rotate image 180 degree" +msgstr "Drehe Bild um 180 Grad" + +#. DESC_ROTATE270 +msgid "Rotate image 270 degree" +msgstr "Drehe Bild um 270 Grad" + +#. DESC_MIRROR_X +msgid "Mirror image at vertical axis" +msgstr "Bild an vertikaler Achse spiegeln" + +#. DESC_MIRROR_Y +msgid "Mirror image at horizontal axis" +msgstr "Bild an horizontaler Achse spiegeln" + +#. DESC_VIEWER_ZOOM +msgid "Zoom image" +msgstr "Bild zoomen" + +#. DESC_STORE_MEDIUM +msgid "Store medium" +msgstr "Medium speichern" + +#. DESC_DELETE_MEDIUM +msgid "Delete active medium" +msgstr "Medium löschen" + +#. DESC_SCALE_FACTOR +msgid "Scale factor" +msgstr "Vergrößerungsfaktor" + +#. DESC_X_SCALE_FACTOR +msgid "X-Scale factor" +msgstr "Vergrößerungsfaktor X" + +#. DESC_Y_SCALE_FACTOR +msgid "Y-Scale factor" +msgstr "Vergrößerungsfaktor Y" + +#. DESC_SCALE_WIDTH +msgid "Scale image to width [in pixel]" +msgstr "Bild auf Breite [in Pixeln] skalieren" + +#. DESC_SCALE_HEIGHT +msgid "Scale image to height [in pixel]" +msgstr "Bild auf Höhe [in Pixeln] skalieren" + +#. DESC_BATCH_LIST_EMPTY +msgid "Empty batch list" +msgstr "Stapelliste leeren" + +#. DESC_BATCH_LIST_SAVE +msgid "Save batch list" +msgstr "Stapelliste speichern" + +#. DESC_BATCH_LIST_LOAD +msgid "Load batch list" +msgstr "Stapelliste laden" + +#. DESC_BATCH_RENAME +msgid "Rename area" +msgstr "Bereich umbenennen" + +#. DESC_BATCH_ADD +msgid "Add selected preview area to batch list" +msgstr "Vorschau-Auswahl zur Stapelliste hinzufügen" + +#. DESC_BATCH_DEL +msgid "Delete selected area from batch list" +msgstr "Ausgewählten Bereich aus Stapelliste löschen" + +#. DESC_AUTOMATIC +msgid "Turns on automatic mode" +msgstr "Schaltet automatische Einstellung ein" + +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Suche nach Scanner reflektivem ICM-Profil" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Suche nach Scanner reflektivem Graustufen ICM-Profil" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +msgid "Browse for display ICM-profile" +msgstr "Suche nach Bildschirm ICM-Profil" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +msgid "Browse for printer ICM-profile" +msgstr "Suche nach Durcker ICM-Profil" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +msgid "Browse for custom proofing ICM-profile" +msgstr "Suche nach Benutzerdefiniertem Proofing ICM-Profil" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +msgid "Browse for working color space ICM-profile" +msgstr "Suche nach ICM-Profil für den Arbeitsfarbraum" + +#. ERR_HOME_DIR +msgid "Failed to determine home directory:" +msgstr "Konnte Heimatverzeichnis nicht bestimmen" + +#. ERR_CHANGE_WORKING_DIR +msgid "Failed to change working directory to" +msgstr "Konnte Verzeichnis nicht wechseln" + +#. ERR_FILENAME_TOO_LONG +msgid "Filename too long" +msgstr "Dateiname zu lang" + +#. ERR_CREATE_TEMP_FILE +msgid "" +"Could not create temporary file.\n" +"Open Menue Preferences->Setup Tab Save and\n" +"select a temporary directory where you have\n" +"write permissions." +msgstr "" +"Konnte temporäre Datei nicht erzeugen.\n" +"Wählen Sie unter Menü Einstellungen->Konfiguration\n" +"Bereich Speichern ein temporäres Verzeichnis aus,\n" +"in dem Sie Schreibrechte besitzen." + +#. ERR_SET_OPTION +msgid "Failed to set value of option" +msgstr "Fehler beim Ändern der Option" + +#. ERR_GET_OPTION +msgid "Failed to obtain value of option" +msgstr "Fehler beim Lesen der Option" + +#. ERR_OPTION_COUNT +msgid "Error obtaining option count" +msgstr "Konnte Anzahl der Optionen nicht bestimmen" + +#. ERR_DEVICE_OPEN_FAILED +msgid "Failed to open device" +msgstr "Fehler beim Öffnen des Geräts" + +#. ERR_NO_DEVICES +msgid "no devices available" +msgstr "Keine Geräte erreichbar" + +#. ERR_DURING_READ +msgid "Error during read:" +msgstr "Fehler beim Lesen:" + +#. ERR_DURING_SAVE +msgid "Error during save:" +msgstr "Fehler beim Speichern:" + +#. ERR_BAD_DEPTH +msgid "Can't handle depth" +msgstr "Nicht unterstützte Bittiefe" + +#. ERR_UNKNOWN_SAVING_FORMAT +msgid "Unknown file format for saving" +msgstr "Unbekanntes Ausgabedateiformat" + +#. ERR_OPEN_FAILED +msgid "Failed to open" +msgstr "Fehler beim Öffnen von" + +#. ERR_CREATE_SECURE_FILE +msgid "Could not create secure file (may be a link does exist):" +msgstr "" +"Konnte keine sichere Datei erzeugen (möglicherweise existiert ein Link):" + +#. ERR_FAILED_PRINTER_PIPE +msgid "Failed to open pipe for executing printercommand" +msgstr "Konnte Pipe für Druckbefehl nicht öffnen" + +#. ERR_FAILED_EXEC_PRINTER_CMD +msgid "Failed to execute printercommand:" +msgstr "Konnte Druckbefehl nicht ausführen" + +#. ERR_FAILED_START_SCANNER +msgid "Failed to start scanner:" +msgstr "Konnte Scanner nicht starten" + +#. ERR_FAILED_GET_PARAMS +msgid "Failed to get parameters:" +msgstr "Konnte Parameter nicht lesen" + +#. ERR_NO_OUTPUT_FORMAT +msgid "No output format given" +msgstr "Kein Ausgabedateiformat angegeben" + +#. ERR_NO_MEM +msgid "out of memory" +msgstr "Kein Speicher" + +#. ERR_TOO_MUCH_DATA +msgid "Backend sends more image data than it defined in parameters" +msgstr "Backend sendet mehr Bilddaten als es in Parametern definiert hat" + +#. ERR_LIBTIFF +msgid "LIBTIFF reports error" +msgstr "LIBTIFF meldet Fehler" + +#. ERR_LIBPNG +msgid "LIBPNG reports error" +msgstr "LIBPNG meldet Fehler" + +#. ERR_LIBJPEG +msgid "LIBJPEG reports error" +msgstr "LIBJPEG meldet Fehler" + +#. ERR_ZLIB +msgid "ZLIB error or memory allocation problem" +msgstr "ZLIB Fehler oder zu wenig Speicher" + +#. ERR_UNKNOWN_TYPE +msgid "unknown type" +msgstr "unbekannter Typ" + +#. ERR_UNKNOWN_CONSTRAINT_TYPE +msgid "unknown constraint type" +msgstr "unbekannter verpflichtender Typ" + +#. ERR_OPTION_NAME_NULL +msgid "Option has empty name (NULL)." +msgstr "Option hat leeren Namen (NULL)." + +#. ERR_BACKEND_BUG +msgid "This is a backend bug. Please inform the author of the backend!" +msgstr "" +"Das ist ein Backend-Fehler. Bitte informieren Sie den Autor des Backends!" + +#. ERR_FAILED_EXEC_DOC_VIEWER +msgid "Failed to execute documentation viewer:" +msgstr "Konnte Hilfedateibetrachter nicht ausführen:" + +#. ERR_FAILED_EXEC_FAX_VIEWER +msgid "Failed to execute fax viewer:" +msgstr "Konnte Faxbetrachter nicht ausführen:" + +#. ERR_FAILED_EXEC_FAX_CMD +msgid "Failed to execute fax command:" +msgstr "Konnte Faxbefehl nicht ausführen:" + +#. ERR_FAILED_EXEC_OCR_CMD +msgid "Failed to execute ocr command:" +msgstr "Konnte OCR-Befehl nicht ausführen:" + +#. ERR_BAD_FRAME_FORMAT +msgid "bad frame format" +msgstr "unerwartetes FRAME-Format" + +#. ERR_FAILED_SET_RESOLUTION +msgid "unable to set resolution" +msgstr "konnte Auflösung nicht definieren" + +#. ERR_PASSWORD_FILE_INSECURE +#, c-format +msgid "Password file (%s) is insecure, use permission x00\n" +msgstr "Passwortdatei (%s) ist unsicher, benutze Rechte x00\n" + +#. ERR_ERROR +msgid "error" +msgstr "Fehler" + +#. ERR_MAJOR_VERSION_NR_CONFLICT +msgid "Sane major version number mismatch!" +msgstr "Sane Hauptversionsnummern-Konflikt!" + +#. ERR_XSANE_MAJOR_VERSION +msgid "XSane major version =" +msgstr "XSane Hauptversionsnummer =" + +#. ERR_BACKEND_MAJOR_VERSION +msgid "backend major version =" +msgstr "backend Hauptversionsnummer =" + +#. ERR_PROGRAM_ABORTED +msgid "*** PROGRAM ABORTED ***" +msgstr "*** PROGRAMM ABGEBROCHEN ***" + +#. ERR_FAILED_ALLOCATE_IMAGE +msgid "Failed to allocate image memory:" +msgstr "Konnte Bildspeicher nicht allozieren:" + +#. ERR_PREVIEW_BAD_DEPTH +msgid "Preview cannot handle bit depth" +msgstr "Vorschau kann Bittiefe nicht handhaben:" + +#. ERR_GIMP_SUPPORT_MISSING +msgid "GIMP support missing" +msgstr "GIMP Unterstützung fehlt" + +#. ERR_CREATE_FAX_PROJECT +msgid "Could not create faxproject" +msgstr "Konnte Faxprojekt nicht erstellen" + +#. WARN_COUNTER_UNDERRUN +msgid "Filename counter underrun" +msgstr "Dateinamenzähler Unterlauf" + +#. WARN_NO_VALUE_CONSTRAINT +msgid "warning: option has no value constraint" +msgstr "Warnung: Option hat keinen vorgeschriebenen Wert" + +#. WARN_XSANE_AS_ROOT +msgid "" +"You try to run XSane as ROOT, that really is DANGEROUS!\n" +"\n" +"Do not send any bug reports when you\n" +"have any problem while running XSane as root:\n" +"YOU ARE ALONE!" +msgstr "" +"Sie versuchen XSane als ROOT auszuführen,\n" +"das ist wirklich GEFÄHRLICH!\n" +"\n" +"Senden Sie keine Fehlermeldungen wenn Sie Probleme\n" +"haben während Sie xsane als root ausführen:\n" +"Sie sind alleine!" + +#. ERR_HEADER_ERROR +msgid "Error" +msgstr "Fehler" + +#. ERR_HEADER_WARNING +msgid "Warning" +msgstr "Warnung" + +#. ERR_HEADER_INFO +msgid "Information" +msgstr "Information" + +#. ERR_HEADER_CHILD_PROCESS_ERROR +msgid "Child process error" +msgstr "Kindprozess-Fehler" + +#. ERR_FAILED_CREATE_FILE +msgid "Failed to create file:" +msgstr "Fehler beim Erstellen der Datei:" + +#. ERR_LOAD_DEVICE_SETTINGS +msgid "Error while loading device settings:" +msgstr "Fehler beim Laden der Geräteeinstellungen" + +#. ERR_NO_DRC_FILE +msgid "is not a device-rc-file !!!" +msgstr "ist keine Geräteeinstellungs-Datei !!!" + +#. ERR_NETSCAPE_EXECUTE_FAIL +msgid "Failed to execute netscape!" +msgstr "Konnte Netscape nicht aufrufen" + +#. ERR_SENDFAX_RECEIVER_MISSING +msgid "Send fax: no receiver defined" +msgstr "Fax senden: kein Empfänger angegeben" + +#. ERR_CREATED_FOR_DEVICE +msgid "has been created for device" +msgstr "wurde erstellt für das Gerät" + +#. ERR_USED_FOR_DEVICE +msgid "you want to use it for device" +msgstr "wird benutzt für das Gerät" + +#. ERR_MAY_CAUSE_PROBLEMS +msgid "this may cause problems!" +msgstr "das kann zu Problemen führen!" + +#. WARN_UNSAVED_IMAGES +#, c-format +msgid "There are %d unsaved images" +msgstr "Es gibt %d nicht gespeicherte Bilder" + +#. WARN_FILE_EXISTS +#, c-format +msgid "File %s already exists" +msgstr "Datei %s existiert bereits" + +#. ERR_FILE_NOT_EXISTS +#, c-format +msgid "File %s does not exist" +msgstr "Datei %s existiert nicht" + +#. ERR_FILE_NOT_POSTSCRIPT +#, c-format +msgid "File %s is not a postscript file" +msgstr "Datei %s is keine Postscript-Datei" + +#. ERR_UNSUPPORTED_OUTPUT_FORMAT +#, c-format +msgid "Unsupported %d-bit output format: %s" +msgstr "Nicht unterstütztes %d-bit Ausgabeformat: %s" + +#. ERR_CMS_CONVERSION +msgid "Error during CMS conversion:" +msgstr "Fehler bei Farbkonvertierung:" + +#. ERR_CMS_OPEN_ICM_FILE +msgid "Could not open" +msgstr "Fehler beim Öffnen von" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Scanner ICM-Profil einbinden" + +#. CMS_DISPLAY_ICM +msgid "display ICM profile" +msgstr "Bildschirm ICM-Profil" + +#. CMS_PROOF_ICM +msgid "proofing ICM profile" +msgstr "Proofing ICM-Profil" + +#. ERR_CMS_CREATE_TRANSFORM +msgid "Could not create transform" +msgstr "Konnte Transformation nicht erstellen" + +#. WARN_VIEWER_IMAGE_NOT_SAVED +msgid "viewer image is not saved" +msgstr "Betrachter-Bild ist nicht gespeichert" + +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "Alle Dateien" + +#. FILE_FILTER_IMAGES +msgid "Images" +msgstr "Bilder" + +#. FILE_FILTER_XBL +msgid "XSane batch list" +msgstr "Stapellisten" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "ICC/ICM Profile" + +#. FILE_FILTER_DRC +msgid "XSane device preferences" +msgstr "Geräteeinstellungen" + +#. FILE_FILTER_RC +msgid "XSane preferences" +msgstr "Einstellungen" + +#. TEXT_USAGE +msgid "Usage:" +msgstr "Gebrauch:" + +#. TEXT_USAGE_OPTIONS +msgid "[OPTION]... [DEVICE]" +msgstr "[OPTION]... [GERÄT]" + +#. TEXT_HELP +msgid "" +"Start up graphical user interface to access SANE (Scanner Access Now Easy) " +"devices.\n" +"\n" +"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n" +"[OPTION]... can be a combination of the following items:\n" +" -h, --help display this help message and exit\n" +" -v, --version print version information\n" +" -l, --license print license information\n" +"\n" +" -d, --device-settings file load device settings from file (without \".drc" +"\")\n" +"\n" +" -V, --viewer start with viewer-mode active (default)\n" +" -s, --save start with save-mode active\n" +" -c, --copy start with copy-mode active\n" +" -m, --multipage start with multipage-mode active\n" +" -f, --fax start with fax-mode active\n" +" -e, --email start with e-mail-mode active\n" +" -n, --no-mode-selection disable menu for XSane mode selection\n" +"\n" +" -F, --Fixed fixed main window size (overwrite preferences " +"value)\n" +" -R, --Resizeable resizable, scrolled main window (overwrite " +"preferences value)\n" +"\n" +" -p, --print-filenames print image filenames created by XSane\n" +" -N, --force-filename name force filename and disable user filename " +"selection\n" +"\n" +" --display X11-display redirect output to X11-display\n" +" --no-xshm do not use shared memory images\n" +" --sync request a synchronous connection with the X11 " +"server" +msgstr "" +"Startet graphisches Benutzerinterface für SANE (Scanner Access Now Easy)\n" +"\n" +"Das Format von [GERÄT] ist Backendname:Gerätedatei (z.B. umax:/dev/scanner)\n" +"[OPTION]... kann eine Kombination aus den folgenden Elementen sein:\n" +" -h, --help zeigt diesen Hilfetext\n" +" -v, --version gibt Versionsinformationen aus\n" +" -l, --license gibt Lizenzinformationen aus\n" +"\n" +" -d, --device-settings datei lädt Geräteeinstellungen von datei\n" +"\n" +" -V, --viewer starte im Betrachtermodus (default)\n" +" -s, --save starte im Speichernmodus\n" +" -c, --copy starte im Kopiermodus\n" +" -m, --multipage starte im Mehrseitenmodus\n" +" -f, --fax starte im Faxmodus\n" +" -e, --email starte im E-Mailmodus\n" +" -n, --no-mode-selection deaktiviere Modusauswahl\n" +"\n" +" -F, --Fixed Hauptfenstergröße ist fest\n" +" -R, --Resizeable Hauptfenstergröße ist veränderbar\n" +"\n" +" -p, --print-filenames gibt Dateinamen erzeugter Bilder aus\n" +" -N, --force-filename name benutze name als Dateinamen,\n" +" deaktiviere Auswahl für Dateinamen\n" +"\n" +" --display X11-display lenkt X-Ausgabe auf X11-Display um\n" +" --no-xshm keine shared memory Bilder benutzen\n" +" --sync fordert synchrone Verbindung zum X-Server an" + +#. strings for gimp plugin +#. XSANE_GIMP_INSTALL_BLURB +msgid "Front-end to the SANE interface" +msgstr "Frontend zum SANE-Interface" + +#. XSANE_GIMP_INSTALL_HELP +msgid "" +"This function provides access to scanners and other image acquisition " +"devices through the SANE (Scanner Access Now Easy) interface." +msgstr "" +"Diese Funktion gibt Zugang zu Scannern und anderen bilderzeugenden Geräten " +"durch das SANE (Scanner Access Now Easy) Interface" + +#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" +#. XSANE_GIMP_MENU_DIALOG +msgid "/File/Acquire/XSane: Device dialog..." +msgstr "/File/Acquire/XSane: Geräteauswahl" + +#. XSANE_GIMP_MENU +msgid "/File/Acquire/XSane: " +msgstr "/File/Acquire/XSane: " + +#. XSANE_GIMP_MENU_DIALOG_OLD +msgid "/Xtns/XSane/Device dialog..." +msgstr "/Xtns/XSane/Geräteauswahl" + +#. XSANE_GIMP_MENU_OLD +msgid "/Xtns/XSane/" +msgstr "/Xtns/XSane/" + +#. HELP_NO_DEVICES +msgid "" +"Possible reasons:\n" +"1) There really is no device that is supported by SANE\n" +"2) Supported devices are busy\n" +"3) The permissions for the device file do not allow you to use it - try as " +"root\n" +"4) The backend is not loaded by SANE (man sane-dll)\n" +"5) The backend is not configured correct (man sane-\"backendname\")\n" +"6) Possibly there is more than one SANE version installed" +msgstr "" +"Mögliche Gründe:\n" +"1) Es ist wirklich kein von SANE unterstützes Gerät vorhanden\n" +"2) Unterstützte Geräte sind belegt\n" +"3) Die Rechte für die Gerätedatei erlauben Ihnen keinen Zugriff - Versuchen " +"Sie es als root\n" +"4) Das Backend wurde von SANE nicht geladen (man sane-dll)\n" +"5) Das Backend wurde nicht richtig konfiguriert (man sane-\"backendname\")\n" +"6) Möglicherweise sind mehrere SANE Versionen installiert" + +#. strings that are used in structures, so it is not allowed to use _()/gettext() here +#. gettext_noop does mark these texts but does not change the string +#. MENU_ITEM_SURFACE_FULL_SIZE +msgid "full size" +msgstr "volle Größe" + +#. MENU_ITEM_SURFACE_DIN_A3P +msgid "DIN A3 port." +msgstr "DIN A3 hoch" + +#. MENU_ITEM_SURFACE_DIN_A3L +msgid "DIN A3 land." +msgstr "DIN A3 quer" + +#. MENU_ITEM_SURFACE_DIN_A4P +msgid "DIN A4 port." +msgstr "DIN A4 hoch" + +#. MENU_ITEM_SURFACE_DIN_A4L +msgid "DIN A4 land." +msgstr "DIN A4 quer" + +#. MENU_ITEM_SURFACE_DIN_A5P +msgid "DIN A5 port." +msgstr "DIN A5 hoch" + +#. MENU_ITEM_SURFACE_DIN_A5L +msgid "DIN A5 land." +msgstr "DIN A5 quer" + +#. MENU_ITEM_SURFACE_13cmx18cm +msgid "13cm x 18cm" +msgstr "13cm x 18cm" + +#. MENU_ITEM_SURFACE_18cmx13cm +msgid "18cm x 13cm" +msgstr "18cm x 13cm" + +#. MENU_ITEM_SURFACE_10cmx15cm +msgid "10cm x 15cm" +msgstr "10cm x 15cm" + +#. MENU_ITEM_SURFACE_15cmx10cm +msgid "15cm x 10cm" +msgstr "15cm x 10cm" + +#. MENU_ITEM_SURFACE_9cmx13cm +msgid "9cm x 13cm" +msgstr "9cm x 13cm" + +#. MENU_ITEM_SURFACE_13cmx9cm +msgid "13cm x 9cm" +msgstr "13cm x 9cm" + +#. MENU_ITEM_SURFACE_legal_P +msgid "legal port." +msgstr "legal hoch" + +#. MENU_ITEM_SURFACE_legal_L +msgid "legal land." +msgstr "legal quer" + +#. MENU_ITEM_SURFACE_letter_P +msgid "letter port." +msgstr "letter hoch" + +#. MENU_ITEM_SURFACE_letter_L +msgid "letter land." +msgstr "letter quer" + +#. MENU_ITEM_MEDIUM_FULL_COLOR_RANGE +msgid "Full color range" +msgstr "Voller Farbumfang" + +#. MENU_ITEM_MEDIUM_SLIDE +msgid "Slide" +msgstr "Dia" + +#. MENU_ITEM_MEDIUM_STANDARD_NEG +msgid "Standard negative" +msgstr "Standard Negativ" + +#. MENU_ITEM_MEDIUM_AGFA_NEG +msgid "Agfa negative" +msgstr "Agfa Negativ" + +#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4 +msgid "Agfa negative XRG 200-4" +msgstr "Agfa Negativ XRG 200-4" + +#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100 +msgid "Agfa negative HDC 100" +msgstr "Agfa Negativ HDC 100" + +#. MENU_ITEM_MEDIUM_FUJI_NEG +msgid "Fuji negative" +msgstr "Fuji Negativ" + +#. MENU_ITEM_MEDIUM_KODAK_NEG +msgid "Kodak negative" +msgstr "Kodak Negativ" + +#. MENU_ITEM_MEDIUM_KONICA_NEG +msgid "Konica negative" +msgstr "Konica Negativ" + +#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 +msgid "Konica negative VX 100" +msgstr "Konica Negativ VX 100" + +#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 +msgid "Rossmann negative HR 100" +msgstr "Rossmann Negativ HR 100" + +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt nicht erstellt" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt erstellt" + +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt geändert" + +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Fehler beim Lesen des Projekts" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Fehler beim Speichern" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Datei wird gespeichert" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Datei speichern abgebrochen" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Datei wurde gespeichert" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED +msgid "POP3 connection failed" +msgstr "POP3-Verbindung fehlgeschlagen" + +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED +msgid "POP3 login failed" +msgstr "POP3-Login fehlgeschlagen" + +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP Authentifizierung fehlgeschlagen" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED +msgid "SMTP connection failed" +msgstr "SMTP Verbindung fehlgeschlagen" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM +msgid "From entry not accepted" +msgstr "Absender Eintrag nicht akzeptiert" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT +msgid "Receiver entry not accepted" +msgstr "Empfänger Eintrag nicht akzeptiert" + +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "E-Mail Daten nicht akzeptiert" + +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "E-Mail wird gesendet" + +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "E-Mail wurde gesendet" + +#. TEXT_FAX_STATUS_QUEUEING_FAX +msgid "Queueing Fax" +msgstr "Fax zum Senden einreihen" + +#. TEXT_FAX_STATUS_FAX_QUEUED +msgid "Fax is queued" +msgstr "Fax ist zum Senden eingereiht" + +#. Sane backend messages +msgid "flatbed scanner" +msgstr "Flachbettscanner" + +msgid "frame grabber" +msgstr "Framegrabber" + +msgid "handheld scanner" +msgstr "Handscanner" + +msgid "still camera" +msgstr "Fotokamera" + +msgid "video camera" +msgstr "Videokamera" + +msgid "virtual device" +msgstr "virtuelles Gerät" + +msgid "Success" +msgstr "Erfolg" + +msgid "Operation not supported" +msgstr "Operation nicht unterstützt" + +msgid "Operation was cancelled" +msgstr "Operation abgebrochen" + +msgid "Device busy" +msgstr "Gerät besetzt" + +msgid "Invalid argument" +msgstr "Ungültiges Argument" + +msgid "End of file reached" +msgstr "Dateiende erreicht" + +msgid "Document feeder jammed" +msgstr "Dokumenteneinzug blockiert" + +msgid "Document feeder out of documents" +msgstr "Dokumenteneinzug ohne Papier" + +msgid "Scanner cover is open" +msgstr "Scannerdeckel ist offen" + +msgid "Error during device I/O" +msgstr "Fehler während Geräte I/O" + +msgid "Out of memory" +msgstr "Kein Speicher" + +msgid "Access to resource has been denied" +msgstr "Zugang zum Gerät wurde verweigert" + +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Durchsicht-ICM-Profil für Scanner auswählen" + +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Durchsicht Graustufen ICM-Profil für Scanner auswählen" + +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Scanner reflektives ICM-Profil" + +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Scanner reflektives Graustufen ICM-Profil" + +#~ msgid "Scanner transmissive ICM-profile" +#~ msgstr "Scanner Durchsicht ICM-Profil" + +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Scanner Durchsicht Graustufen ICM-Profil" + +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Scanner reflektives ICM-Profil" + +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Suche nach Scanner Durchsicht-ICM-Profil" + +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Suche nach Scanner Durchsicht Graustufen ICM-Profil" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP unterstützt Bittiefe %d Bits/Farbe nicht" + +#~ msgid "scanner transmissive ICM profile" +#~ msgstr "Scanner Durchsicht-ICM-Profil" + +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Scanner reflektives ICM-Profil" diff --git a/po/es.gmo b/po/es.gmo index 721476c..442ae5a 100644 Binary files a/po/es.gmo and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po index ee2997b..7271165 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-08-22 19:15GMT\n" "Last-Translator: Gustavo D. Vranjes \n" "Language-Team: Castellano \n" @@ -35,6 +36,7 @@ msgid "About" msgstr "Acerca..." #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Acerca de la traducción..." @@ -74,6 +76,11 @@ msgstr "renombrar area de proceso por lotes" msgid "fax project" msgstr "proyecto de fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Ingresar nombre del proyecto de fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "renombrar página de fax" @@ -87,6 +94,11 @@ msgstr "insertar archivo-ps dentro de fax" msgid "E-mail project" msgstr "proyecto de correo electrónico" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Ingresar nombre del proyecto de correo electrónico" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -102,6 +114,11 @@ msgstr "insertar archivo dentro de correo electrónico" msgid "multipage project" msgstr "Borrar proyecto" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Borrar proyecto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renombrar area de preset" @@ -147,6 +164,7 @@ msgid "Preview" msgstr "Vista previa" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visor interno" @@ -179,14 +197,17 @@ msgid "select temporary directory" msgstr "seleccionar directorio temporal" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Redimensionar imagen" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Desparasitar imagen" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Desenfocar imagen" @@ -198,6 +219,35 @@ msgstr "Guardar definición de medio" msgid "No devices available" msgstr "No hay dispositivos obtenibles" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Borrar impresora" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Borrar impresora" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "seleccionar archivo de salida" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Borrar impresora" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Borrar impresora" + #. MENU_FILE msgid "File" msgstr "Archivo" @@ -215,6 +265,7 @@ msgid "Window" msgstr "Ventana" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Ayuda" @@ -230,6 +281,11 @@ msgstr "Filtros" msgid "Geometry" msgstr "Geometría" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Acerca de XSane..." @@ -243,6 +299,7 @@ msgid "Quit" msgstr "Salir" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Guardar imagen" @@ -259,6 +316,7 @@ msgid "Scale" msgstr "Redimensionar" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Cerrar" @@ -452,11 +510,11 @@ msgstr "Advertencia de sobreescritura" msgid "Skip existing filenames" msgstr "Omitir nombres de archivos existentes" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -473,7 +531,8 @@ msgid "Main window size fixed" msgstr "Tamaño de ventana principal fijo" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Deshabilitar vista previa de gamma de gimp" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -496,6 +555,11 @@ msgstr "Autocorregir colores" msgid "Use GUI progress pipe" msgstr "Usar progreso de tubería GUI " +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Escaneando dispositivos" @@ -512,6 +576,12 @@ msgstr "Opciones de XSane" msgid "Type" msgstr "Tipo" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Rango de color completo" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Escáner y backend:" @@ -584,18 +654,11 @@ msgstr "Formatos de salida de 8 bits:" msgid "16 bit output formats:" msgstr "Formatos de salida de 16 bits:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp no soporta profundidad de 16 bits/color.\n" -"¿Quire reducir la profundidad a 8 bits/color?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "La profundidad de 16 bits/color no está soportada en éste formato de " "salida.\n" @@ -633,6 +696,11 @@ msgstr "versión:" msgid "package" msgstr "paquete" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Rango de color completo" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "Con soporte de GIMP" @@ -771,9 +839,10 @@ msgid "Medium Name:" msgstr "Nombre del medio:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Tamaño %d x %d pixel, %d bit/color, %d colores, %1.0f dpi x %1.0f ppp, %1.1f " "%s" @@ -827,6 +896,7 @@ msgid "Name:" msgstr "Nombre:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Comando:" @@ -847,18 +917,22 @@ msgid "Color resolution (dpi):" msgstr "Resolución de color (ppp):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Anchura" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Altura" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Desplazamiento a izquierda" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Desplazamiento hacia abajo" @@ -878,7 +952,17 @@ msgstr "Gamma verde de impresora:" msgid "Printer gamma blue:" msgstr "Gamma azul de impresora:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Borrar impresora" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Borrar impresora" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1003,7 +1087,7 @@ msgstr "Establecer por defecto para:" msgid "Viewer (Postscript):" msgstr "Visor (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1082,10 +1166,45 @@ msgstr "grupo" msgid "all" msgstr "todo" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Borrar impresora" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Borrar impresora" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Borrar impresora" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "medio nuevo" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Guarda imagen" @@ -1095,14 +1214,17 @@ msgid "Filetype" msgstr "Archivo" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copia a impresora" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "Correo electrónico" @@ -1195,6 +1317,12 @@ msgstr "Mostrar lista de resoluciones" msgid "Rotate postscript" msgstr "Rotar postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Rango de color completo" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Editar definición de medio" @@ -1239,6 +1367,86 @@ msgstr "Tips de escaneo" msgid "Problems?" msgstr "¿Problemas?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Añadir impresora" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Añadir impresora" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Añadir impresora" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Añadir impresora" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorización" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "escribir" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reducir" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Desenfoque" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inactivo" @@ -1357,6 +1565,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Borrar impresora" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Autocorregir colores" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Escaneando" @@ -1415,6 +1637,11 @@ msgstr "Desenfocando imagen" msgid "OCR in progress" msgstr "OCR en progreso" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Autocorregir colores" + #. DESC_SCAN_START msgid "Start scan " msgstr "Comenzar escaneo " @@ -1476,8 +1703,9 @@ msgstr "" "automáticamente al nombre de archivo" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Ingresar nombre del proyecto de fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Explorar para directorio temporal" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1487,10 +1715,15 @@ msgstr "Ingrese nuevo nombre para la página de fax" msgid "Enter receiver phone number or address" msgstr "Ingrese número de teléfono del receptor ó dirección" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Explorar para directorio temporal" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Ingresar nombre del proyecto de correo electrónico" +msgid "Enter e-mail project directory name" +msgstr "Explorar para directorio temporal" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1502,6 +1735,11 @@ msgstr "Ingresar nuevo nombre para la imagen de correo electrónico" msgid "Enter e-mail address" msgstr "Ingresar dirección de correo electrónico" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Explorar para directorio temporal" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1513,8 +1751,13 @@ msgstr "Seleccionar tipo de archivo para imagen adjunta" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Ingresar nombre del proyecto de correo electrónico" +msgid "Enter multipage project directory name" +msgstr "Explorar para directorio temporal" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Explorar para directorio temporal" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1640,7 +1883,8 @@ msgstr "" "contraste = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Autoajustar gamma, brillo y contraste " #. DESC_ENH_DEFAULT @@ -1725,19 +1969,23 @@ msgstr "" "postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Anchura de area imprimible" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Altura de area imprimible" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "" "Deplazamiento a la izquierda desde el borde del papel al área imprimible" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Deplazamiento hacia abajo desde el borde del papel al área imprimible" @@ -1757,9 +2005,17 @@ msgstr "Valor de gamma adicional del valor verde para fotocopia" msgid "Additional gamma value for blue component for photocopy" msgstr "Valor de gamma adicional del valor azul para fotocopia" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1820,14 +2076,14 @@ msgstr "" "Si el contador de nombre archivo se incrementa automáticamente, los números " "presentes son salteados" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1844,7 +2100,9 @@ msgstr "" "enormes!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Si el escáner envía imágenes de 16 bits/color guardar imágenes con 8 bits/" "color" @@ -1879,7 +2137,8 @@ msgstr "" "Usar tamaño de ventana principal fijo ó uno de tamaño variable con scroll" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" "Deshabilitar el gamma de previsualización cuando XSane funciona como una " "extensión de GIMP" @@ -1988,6 +2247,16 @@ msgid "Do color correction after preview scan has finished" msgstr "" "Hacer corrección de color después de que la previsualización ha concluído" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "" +"Seleccionar área de escaneo después de que la previsualización ha concluído" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Ingresar comando a ser ejecutado en modo de fax" @@ -2016,8 +2285,8 @@ msgstr "Ingresar comando a ser ejecutado para ver un fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Enviar fax con resolución vertical alta (196 lpp en vez de 98 lpp)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2105,9 +2374,10 @@ msgstr "leer" msgid "write" msgstr "escribir" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "ejecutar" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "usuario" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2276,6 +2546,36 @@ msgstr "Borrar area seleccionada de la lista de proceso por lotes" msgid "Turns on automatic mode" msgstr "Enciende modo automático" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Explorar nombre de archivo de imagen" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Falló al determinar el directorio home:" @@ -2328,11 +2628,6 @@ msgstr "Error durante guardado:" msgid "Can't handle depth" msgstr "No puede manejar la profundidad" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP no puede manejar la profundidad de %d bits/color" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Formato de archivo desconocido para guardar" @@ -2566,10 +2861,68 @@ msgstr "El archivo %s no es un archivo postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Formato de salida de %d-bit no soportado: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Error durante guardado:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Falló al abrir" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Borrar impresora" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Explorar nombre de archivo de imagen" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Borrar impresora" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "No se puede crear archivos temporales" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "La imagen del visor no se guardó" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Imagen" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Guardar lista de proceso por lotes" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Guardar preferencias de dispositivo al salir" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferencias" + #. TEXT_USAGE msgid "Usage:" msgstr "Uso:" @@ -2960,8 +3313,66 @@ msgstr "Sin memoria" msgid "Access to resource has been denied" msgstr "Acceso al recurso fue prohibido" -#~ msgid "Could not create temporary file" -#~ msgstr "No se puede crear archivos temporales" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Explorar nombre de archivo de imagen" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Explorar nombre de archivo de imagen" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP no puede manejar la profundidad de %d bits/color" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Borrar impresora" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Borrar impresora" + +#~ msgid "Enter name of fax project" +#~ msgstr "Ingresar nombre del proyecto de fax" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Ingresar nombre del proyecto de correo electrónico" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Ingresar nombre del proyecto de correo electrónico" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp no soporta profundidad de 16 bits/color.\n" +#~ "¿Quire reducir la profundidad a 8 bits/color?" #~ msgid "Could not create temporary preview files" #~ msgstr "No se puede crear archivos temporales de previsualización" @@ -3030,9 +3441,6 @@ msgstr "Acceso al recurso fue prohibido" #~ msgid "Multipage saving aborted" #~ msgstr "Proyecto de correo electrónico creado" -#~ msgid "Image" -#~ msgstr "Imagen" - #~ msgid "Viewer (png):" #~ msgstr "Visor (png):" diff --git a/po/fr.gmo b/po/fr.gmo index c81ecee..9731c9a 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 043e34b..a6b46bb 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2000-02-09 21:00+01:00\n" "Last-Translator: Laurent Grawet \n" "Language-Team: French \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "A propos" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Concernant la traduction" @@ -71,6 +73,11 @@ msgstr "Renommer l'aire de numérisation" msgid "fax project" msgstr "Projet fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Entrez le nom du projet fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "Renommer la page de fax" @@ -84,6 +91,11 @@ msgstr "Importer un fichier ps dans un fax" msgid "E-mail project" msgstr "Projet e-mail" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Entrez le nom du projet e-mail" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "Insérer un fichier dans le message" msgid "multipage project" msgstr "Effacer un projet" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Effacer un projet" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Renommer l'aire de présélection" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "Aperçu" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visionneuse" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "Choisissez un répertoire temporaire" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Redimensionner l'image" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Déparasiter l'image" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Adoucir l'image" @@ -195,6 +216,35 @@ msgstr "Enregister la définition du support" msgid "No devices available" msgstr "Aucun périphérique disponible" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Enlever une imprimante" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Enlever une imprimante" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "Choisissez le nom du fichier de sortie" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Enlever une imprimante" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Enlever une imprimante" + #. MENU_FILE msgid "File" msgstr "Fichier" @@ -212,6 +262,7 @@ msgid "Window" msgstr "Fenêtre" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Aide" @@ -227,6 +278,11 @@ msgstr "Filtres" msgid "Geometry" msgstr "Géométrie" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "A propos de XSane" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "Quitter" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Sauver l'image" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "Redimensioner" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Fermer" @@ -449,11 +507,11 @@ msgstr "Avertissement en cas d'écrasement" msgid "Skip existing filenames" msgstr "Sauter les noms de fichiers existants" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -470,7 +528,8 @@ msgid "Main window size fixed" msgstr "Taille de la fenêtre principale fixe" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Désactive l'aperçu gamma de Gimp" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -493,6 +552,11 @@ msgstr "Correction automatique des couleurs" msgid "Use GUI progress pipe" msgstr "Utilise le \"pipe\" de progression GUI" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Recherche de périphériques..." @@ -509,6 +573,12 @@ msgstr "Options de XSane" msgid "Type" msgstr "Type" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Pleine échelle couleur" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scanner et backend:" @@ -581,18 +651,11 @@ msgstr "Formats de sortie 8 bits:" msgid "16 bit output formats:" msgstr "Formats de sortie 16 bits:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp ne supporte pas la définition 16 bits/couleur.\n" -"Voulez-vous réduire la définition à 8 bits/couleur ?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "La définition 16 bits/couleur n'est pas supportée par ce format de sortie.\n" "Voulez-vous réduire la définition à 8 bits/couleur ?" @@ -629,6 +692,11 @@ msgstr "version" msgid "package" msgstr "paquetage" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Pleine échelle couleur" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "avec support GIMP" @@ -767,9 +835,10 @@ msgid "Medium Name:" msgstr "Nom du support:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Taille %d x %d points, %d bit/couleur, %d couleurs, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -823,6 +892,7 @@ msgid "Name:" msgstr "Nom:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Commande:" @@ -843,18 +913,22 @@ msgid "Color resolution (dpi):" msgstr "Résolution en mode couleur (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Largeur" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Longueur" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Marge gauche" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Marge inférieure" @@ -874,7 +948,17 @@ msgstr "Gamma vert de l'imprimante:" msgid "Printer gamma blue:" msgstr "Gamma bleu de l'imprimante:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Enlever une imprimante" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Enlever une imprimante" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -999,7 +1083,7 @@ msgstr "Options par défaut pour:" msgid "Viewer (Postscript):" msgstr "Visionneuse (PostScript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1078,10 +1162,45 @@ msgstr "groupe" msgid "all" msgstr "tous" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Enlever une imprimante" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Enlever une imprimante" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Enlever une imprimante" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nouveau support" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Enregistrer" @@ -1091,14 +1210,17 @@ msgid "Filetype" msgstr "Fichier" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copier" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faxer" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "e-mail" @@ -1191,6 +1313,12 @@ msgstr "Afficher la liste des résolutions" msgid "Rotate postscript" msgstr "Rotation PostScript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Pleine échelle couleur" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Editer la définition du support" @@ -1235,6 +1363,86 @@ msgstr "Conseils de numérisation" msgid "Problems?" msgstr "Problèmes?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Ajouter une imprimante" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Ajouter une imprimante" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Ajouter une imprimante" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Ajouter une imprimante" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Autorisation" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "écriture" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Réduire" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Flou" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inactif" @@ -1353,6 +1561,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Enlever une imprimante" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Correction automatique des couleurs" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Numérisation..." @@ -1411,6 +1633,11 @@ msgstr "Flou de l'image..." msgid "OCR in progress" msgstr "OCR en cours..." +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Correction automatique des couleurs" + #. DESC_SCAN_START msgid "Start scan " msgstr "Numériser " @@ -1471,8 +1698,9 @@ msgstr "" "automatiquement ajoutée" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Entrez le nom du projet fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Parcourir pour un répertoire temporaire" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1482,10 +1710,15 @@ msgstr "Entrez le nouveau nom pour la page de fax" msgid "Enter receiver phone number or address" msgstr "Entrez le numéro de tél. ou l'adresse du destinataire" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Parcourir pour un répertoire temporaire" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Entrez le nom du projet e-mail" +msgid "Enter e-mail project directory name" +msgstr "Parcourir pour un répertoire temporaire" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1497,6 +1730,11 @@ msgstr "Entrez le nouveau nom pour l'image du message" msgid "Enter e-mail address" msgstr "Entrez l'adresse e-mail" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Parcourir pour un répertoire temporaire" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1508,8 +1746,13 @@ msgstr "Sélectionnez le type de fichier pour les attachements" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Entrez le nom du projet e-mail" +msgid "Enter multipage project directory name" +msgstr "Parcourir pour un répertoire temporaire" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Parcourir pour un répertoire temporaire" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1636,7 +1879,8 @@ msgstr "" " contraste = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Ajuste automatiquement gamma, luminosité et contraste " #. DESC_ENH_DEFAULT @@ -1720,18 +1964,22 @@ msgstr "" "imprimées en PostScript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Largeur de la zone imprimable" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Longueur de la zone imprimable" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Marge entre le bord gauche du papier et l'aire imprimable" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Marge entre le bord inférieur du papier et l'aire imprimable en mm" @@ -1751,9 +1999,17 @@ msgstr "Gamma additionnel pour la composante verte pour la photocopie" msgid "Additional gamma value for blue component for photocopy" msgstr "Gamma additionnel pour la composante bleue pour la photocopie" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1814,14 +2070,14 @@ msgstr "" "Si un compteur de noms de fichiers est utilisé, les nombres déjà utilisés " "sont évités" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1837,7 +2093,9 @@ msgstr "" "supporté par plus de programmes mais produit de très gros fichiers !!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Si le scanner envoie une image en 16 bits/couleur, sauver l'image en 8 bits/" "couleur" @@ -1873,7 +2131,8 @@ msgstr "" "principale redimensionable" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Désactive l'aperçu gamma quand XSane fonctionne comme un plugin Gimp" #. DESC_PREVIEW_COLORMAP @@ -1977,6 +2236,16 @@ msgstr "" msgid "Do color correction after preview scan has finished" msgstr "Corrige les couleurs une fois la prévisualisation terminée" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "" +"Sélectionne l'aire de numérisation une fois la prévisualisation terminée" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Entrez la commande à exécuter en mode fax" @@ -2007,8 +2276,8 @@ msgstr "" "Envoie un fax avec une résolution verticale élevée (196 lpi à la place de 98 " "lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2093,9 +2362,10 @@ msgstr "lecture" msgid "write" msgstr "écriture" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "exécution" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "utilisateur" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2264,6 +2534,36 @@ msgstr "Supprime l'aire sélectionnée de la liste" msgid "Turns on automatic mode" msgstr "Actionne le mode automatique" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Parcourir pour un nom d'image" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Parcourir pour un nom d'image" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Impossible de déterminer le répertoire personnel:" @@ -2316,11 +2616,6 @@ msgstr "Erreur pendant la sauvegarde" msgid "Can't handle depth" msgstr "Ne supporte pas le mode" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP ne supporte pas la profondeur %d bits/color" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Format de sauvegarde inconnu" @@ -2555,10 +2850,68 @@ msgstr "Le fichier %s n'est pas un fichier PostScript" msgid "Unsupported %d-bit output format: %s" msgstr "Format de sortie %d-bit non supporté: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Erreur pendant la sauvegarde" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Echec de l'ouverture" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Enlever une imprimante" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Parcourir pour un nom d'image" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Enlever une imprimante" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Ne peut créer de fichier temporaire" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "L'image de la visionneuse n'est pas sauvegardée" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Image" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Sauve la liste" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Sauver les paramètres du périphérique en quittant" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Préférences" + #. TEXT_USAGE msgid "Usage:" msgstr "Usage:" @@ -2948,8 +3301,66 @@ msgstr "Dépassement de mémoire" msgid "Access to resource has been denied" msgstr "Accès à la ressource refusé" -#~ msgid "Could not create temporary file" -#~ msgstr "Ne peut créer de fichier temporaire" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Parcourir pour un nom d'image" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Parcourir pour un nom d'image" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP ne supporte pas la profondeur %d bits/color" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Enlever une imprimante" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Enlever une imprimante" + +#~ msgid "Enter name of fax project" +#~ msgstr "Entrez le nom du projet fax" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Entrez le nom du projet e-mail" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Entrez le nom du projet e-mail" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp ne supporte pas la définition 16 bits/couleur.\n" +#~ "Voulez-vous réduire la définition à 8 bits/couleur ?" #~ msgid "Could not create temporary preview files" #~ msgstr "Ne peut pas créer de fichiers temporaires de prévisualisation" @@ -3019,9 +3430,6 @@ msgstr "Accès à la ressource refusé" #~ msgid "Multipage saving aborted" #~ msgstr "Projet d'e-mail créé" -#~ msgid "Image" -#~ msgstr "Image" - #~ msgid "Viewer (png):" #~ msgstr "Visionneuse (png):" diff --git a/po/hu.gmo b/po/hu.gmo index 15d2d77..2e4f737 100644 Binary files a/po/hu.gmo and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index 9cb952c..6b6bf7c 100644 --- a/po/hu.po +++ b/po/hu.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: hu\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-31 10:34+0100\n" "Last-Translator: Aron Novak \n" "Language-Team: Hungarian\n" @@ -33,6 +34,7 @@ msgid "About" msgstr "Névjegy" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Fordítás névjegye" @@ -72,6 +74,11 @@ msgstr "kötegelt terület átnevezése" msgid "fax project" msgstr "faxterv" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Add meg a terv nevét" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "faxoldal átnevezése" @@ -84,6 +91,11 @@ msgstr "ps fájl beszúrása a faxba" msgid "E-mail project" msgstr "levélterv" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Add meg a levélterv nevét" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "email - kép átnevezése" @@ -96,6 +108,11 @@ msgstr "fájl beszúrása levélbe" msgid "multipage project" msgstr "több oldalas terv" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "több oldalas terv" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "kijelölés törlése" @@ -141,6 +158,7 @@ msgid "Preview" msgstr "Előnézet" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Mutatás" @@ -173,14 +191,17 @@ msgid "select temporary directory" msgstr "ideiglenes könyvtár megadása" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Kép átméretezése" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Szemcsézettség csökkentése" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Kép elmosása" @@ -192,6 +213,35 @@ msgstr "Középmeghatározás tárolása" msgid "No devices available" msgstr "Nincs elérhető eszköz" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Nyomtató törlése" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Nyomtató törlése" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "kimeneti fájlnév megadása" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Nyomtató törlése" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Nyomtató törlése" + #. MENU_FILE msgid "File" msgstr "Fájl" @@ -209,6 +259,7 @@ msgid "Window" msgstr "Ablak" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Súgó" @@ -224,6 +275,11 @@ msgstr "Szűrők" msgid "Geometry" msgstr "Átalakítás" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Az XSane névjegye" @@ -237,6 +293,7 @@ msgid "Quit" msgstr "Kilépés" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Kép mentése" @@ -253,6 +310,7 @@ msgid "Scale" msgstr "Átméretezés" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Bezárás" @@ -444,11 +502,11 @@ msgstr "Figyelmeztetés felülíráskor" msgid "Skip existing filenames" msgstr "Létező fájlnevek kihagyása" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Mentés postscript zlib tömörítettben (ps level 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Mentés PDF-ben, zlibbel tömörítve" @@ -465,7 +523,8 @@ msgid "Main window size fixed" msgstr "A főablak rögzített méretű" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "A gimp előnézeti gamma tiltása" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -488,6 +547,11 @@ msgstr "Színek automatikus javítása" msgid "Use GUI progress pipe" msgstr "A GUI folyamatjelző használata" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "eszközök keresése" @@ -504,6 +568,12 @@ msgstr "XSane beállítások" msgid "Type" msgstr "Típus" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Teljes színmélység" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Lapolvasó és backend:" @@ -576,18 +646,11 @@ msgstr "8 bites kimeneti formátumok:" msgid "16 bit output formats:" msgstr "16 bites kimeneti formátumok:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"A Gimp nem támogatja a 16 bites színmélységet.\n" -"Szeretnéd csökkenteni 8 bitesre?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "A 16 bites színmélység nem támogatott ehhez a formátumhozCsökkentsük 8 " "bitesre?" @@ -624,6 +687,11 @@ msgstr "változat:" msgid "package" msgstr "csomag" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Teljes színmélység" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "GIMP támogatással" @@ -753,9 +821,10 @@ msgid "Medium Name:" msgstr "Közép neve:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Méret %d x %d képpont, %d bit/szín, %d szín, %1.0f dpi x %1.0f dpi, %1.1f %s" @@ -808,6 +877,7 @@ msgid "Name:" msgstr "Név:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Parancs:" @@ -828,18 +898,22 @@ msgid "Color resolution (dpi):" msgstr "Színes felbontás (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Szélesség" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Magasság" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Jobb eltolás" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Lenti eltolás" @@ -859,7 +933,17 @@ msgstr "Nyomtató zöld gammája:" msgid "Printer gamma blue:" msgstr "Nyomtató kék gammája:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Nyomtató törlése" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Nyomtató törlése" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Zlibbel tömörített postscript létrehozása nyomtatáshoz (ps level 3)" @@ -983,7 +1067,7 @@ msgstr "Alapértelmezett beállítások ehhez:" msgid "Viewer (Postscript):" msgstr "Nézőke (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Zlibbel tömörített postscript létrehozása faxhoz (ps level 3)" @@ -1059,10 +1143,45 @@ msgstr "csoport" msgid "all" msgstr "mindenki más" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Nyomtató törlése" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Nyomtató törlése" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Nyomtató törlése" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "új média" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Mentés" @@ -1071,14 +1190,17 @@ msgid "Filetype" msgstr "Fájl típusa" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Másolás" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faxolás" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "Email" @@ -1170,6 +1292,12 @@ msgstr "Felbontások mutatása" msgid "Rotate postscript" msgstr "Postscript forgatása" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Teljes színmélység" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Részletes hangolás" @@ -1214,6 +1342,86 @@ msgstr "Beolvasási tanácsok" msgid "Problems?" msgstr "Elakadt?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Nyomtató hozzáadása" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Nyomtató hozzáadása" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Nyomtató hozzáadása" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Nyomtató hozzáadása" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "engedélyezés" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "írás" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Csökkent" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Elmosás" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inaktív" @@ -1330,6 +1538,20 @@ msgstr "ASMTP bejelentkezés" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Nyomtató törlése" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Színek automatikus javítása" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Beolvasás" @@ -1387,6 +1609,11 @@ msgstr "Kép elmosása" msgid "OCR in progress" msgstr "Szövegfelismerés folyamatban" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Színek automatikus javítása" + #. DESC_SCAN_START msgid "Start scan " msgstr "Beolvasás indítása " @@ -1446,8 +1673,9 @@ msgstr "" "fájlnévhez" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Add meg a terv nevét" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Tallózás az ideiglenes könyvtárhoz" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1457,9 +1685,15 @@ msgstr "Adj új nevet a faxoldalnak" msgid "Enter receiver phone number or address" msgstr "Add meg a fogadó telefonját vagy címét" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Tallózás az ideiglenes könyvtárhoz" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Add meg a levélterv nevét" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Tallózás az ideiglenes könyvtárhoz" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1469,6 +1703,11 @@ msgstr "Adj új nevet a képnek" msgid "Enter e-mail address" msgstr "Add meg az emailcímet" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Tallózás az ideiglenes könyvtárhoz" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Add meg a levél tárgyát" @@ -1478,8 +1717,14 @@ msgid "Select filetype for image attachments" msgstr "Válassz fájltípust a csatolmányhoz" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Add meg a többoldalas levélterv nevét" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Tallózás az ideiglenes könyvtárhoz" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Tallózás az ideiglenes könyvtárhoz" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1604,7 +1849,8 @@ msgstr "" " kontraszt = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "A gamma, világosság és kontraszt önműködő állítása " #. DESC_ENH_DEFAULT @@ -1685,18 +1931,22 @@ msgstr "" "A színes képek ekkora felbontásban lesznek nyomtatva és postscriptbe mentve" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "A nyomtatható terület szélessége" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "A nyomtatható terület magassága" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "A papír jobb szélétől ekkora távolságra van a nyomtatható terület" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "A papír alsó szélétől ekkora távolságra van a nyomtatható terület" @@ -1716,9 +1966,18 @@ msgstr "Plusz zöld gamma érték a fotómásoláshoz" msgid "Additional gamma value for blue component for photocopy" msgstr "Plusz kék gamma érték a fotómásoláshoz" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Zlibbel tömörített postscript létrehozása nyomtatónak (flatcode).\n" @@ -1779,16 +2038,18 @@ msgstr "" "Ha a fájlnévszámláló önműködően növelt, akkor a már használt számokat hagyja " "ki" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "postscript kép tömörítése zlibbel (flatcode). Ha egy ilyen fáljt akarsz " "kinyomtatni, a nyomtató postscript 3 megfelelő kell legyen." -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "PDF tömörítése zlibbel (flatdecode)" #. DESC_SAVE_PNM16_AS_ASCII @@ -1803,7 +2064,9 @@ msgstr "" "formátumot több program támogatja, de azok óriásifájlok lesznek!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "Ha a lapolvasó 12 bites képet küdl, akkor 8 bitesbe mentse el" #. DESC_PSFILE_WIDTH @@ -1832,7 +2095,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Rögzített vagy görgethető/átméretezhető főablak használata" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Előnézeti gamma tiltása, amikor az XSane a gimpen belül fut" #. DESC_PREVIEW_COLORMAP @@ -1925,6 +2189,15 @@ msgstr "Válasszuk ki a beolvasási területet miután elkészült az előnézet msgid "Do color correction after preview scan has finished" msgstr "Készítsen színkorrekciót az előnézet elkészülte után" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Válasszuk ki a beolvasási területet miután elkészült az előnézet" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Adjuk meg a fax-parancsot" @@ -1953,8 +2226,9 @@ msgstr "Adjuk meg a fax-nézőke parancsát" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Küldje a faxot nagyobb x-irányú felbontással(196 lpi a 98 lpi helyett)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Zlibbel tömörített postscript kép létrehozása faxhoz (flatdecode)" #. DESC_SMTP_SERVER @@ -2032,9 +2306,10 @@ msgstr "olvasás" msgid "write" msgstr "írás" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "végrehajtás" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "felhasználó" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2202,6 +2477,36 @@ msgstr "Kijelölt terület törlése a kötegelt listából" msgid "Turns on automatic mode" msgstr "Önmüködő mód bekapcsolása" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Kép fájlnevének böngészése" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Kép fájlnevének böngészése" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Sikertelen a home könyvtár megtalálása:" @@ -2254,11 +2559,6 @@ msgstr "Hiba mentés alatt:" msgid "Can't handle depth" msgstr "Nem lehet kezelni ezt a mélységet" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "A GIMP nem tudja kezelni a %d színmélységet" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Ismeretlen fájlformátum mentéshez" @@ -2491,10 +2791,68 @@ msgstr "A %s nem postscript fájl" msgid "Unsupported %d-bit output format: %s" msgstr "Nem támogatott %d-bites kimeneti mód: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Hiba mentés alatt:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Sikertelen megnyitás" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Nyomtató törlése" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Kép fájlnevének böngészése" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Nyomtató törlése" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Nem lehet létrehozni az ideiglenes fájlt" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Megjelenítés képe nincs mentve" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Oldalak:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Kötegelt lista mentése" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Eszközbeállítások mentése kilépéskor" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Tulajdonságok" + #. TEXT_USAGE msgid "Usage:" msgstr "Használat:" @@ -2866,11 +3224,61 @@ msgstr "Elfogyott a memória" msgid "Access to resource has been denied" msgstr "A hozzáférés az erőforráshoz megtagadva" -#~ msgid "Could not create temporary file" -#~ msgstr "Nem lehet létrehozni az ideiglenes fájlt" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Kép fájlnevének böngészése" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Kép fájlnevének böngészése" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "A GIMP nem tudja kezelni a %d színmélységet" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Nyomtató törlése" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Nyomtató törlése" + +#~ msgid "Enter name of fax project" +#~ msgstr "Add meg a terv nevét" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Add meg a levélterv nevét" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Ideiglenes előnézeti fájlok létrehozása meghiúsult" +#~ msgid "Enter name of multipage project" +#~ msgstr "Add meg a többoldalas levélterv nevét" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Nem lehetett fájlnevet adni az előnézeti fájloknak" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "A Gimp nem támogatja a 16 bites színmélységet.\n" +#~ "Szeretnéd csökkenteni 8 bitesre?" diff --git a/po/it.gmo b/po/it.gmo index 176a352..a8fa024 100644 Binary files a/po/it.gmo and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po index ebb24c1..575f0ed 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: xsane-0.99_it\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2006-01-09 21:47+0100\n" "Last-Translator: Kostantino \n" "Language-Team: Italiano \n" @@ -35,6 +36,7 @@ msgid "About" msgstr "Informazioni" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Informazioni sulla traduzione" @@ -74,6 +76,11 @@ msgstr "Rinomina area batch" msgid "fax project" msgstr "Progetto fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Inserisci nome del progetto fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "Rinomina pagina fax" @@ -86,6 +93,11 @@ msgstr "Inserisci file PS nel fax" msgid "E-mail project" msgstr "Progetto e-mail" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Inserisci nome del progetto e-mail" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "Rinomina l'immagine e-mail" @@ -98,6 +110,11 @@ msgstr "Inserisci un file nell'e-mail" msgid "multipage project" msgstr "Progetto multipagina" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Progetto multipagina" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Rinomina area predefinita" @@ -143,6 +160,7 @@ msgid "Preview" msgstr "Anteprima" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visualizzatore" @@ -175,14 +193,17 @@ msgid "select temporary directory" msgstr "Seleziona cartella temporanea" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Ridimensiona l'immagine" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Applica filtro mediano" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Sfoca l'immagine" @@ -194,6 +215,35 @@ msgstr "Salva la definizione del supporto" msgid "No devices available" msgstr "Non è disponibile alcun dispositivo" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Cancella stampante" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Cancella stampante" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "Seleziona il nome del file prodotto" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Cancella stampante" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Cancella stampante" + #. MENU_FILE msgid "File" msgstr "File " @@ -211,6 +261,7 @@ msgid "Window" msgstr "Finestra" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Aiuto" @@ -226,6 +277,11 @@ msgstr "Filtri" msgid "Geometry" msgstr "Geometria" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Informazioni su XSane" @@ -239,6 +295,7 @@ msgid "Quit" msgstr "Esci" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Salva immagine" @@ -255,6 +312,7 @@ msgid "Scale" msgstr "Ridimensiona" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Chiudi" @@ -446,11 +504,11 @@ msgstr "Avvisa prima di sovrascrivere" msgid "Skip existing filenames" msgstr "Salta i nomi dei file esistenti" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Salva come postscript compresso zlib (ps di livello 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Salva come PDF compresso zlib" @@ -467,7 +525,8 @@ msgid "Main window size fixed" msgstr "Finestra principale di dimensioni fisse" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Disabilita la gamma sull'anteprima di GIMP" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -490,6 +549,11 @@ msgstr "Correzione automatica dei colori" msgid "Use GUI progress pipe" msgstr "Utilizza la pipe di avanzamento della GUI" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Sto cercando i dispositivi..." @@ -506,6 +570,12 @@ msgstr "Opzioni di XSane" msgid "Type" msgstr "Tipo" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Tutto l'intervallo del colore" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scanner e backend:" @@ -578,18 +648,11 @@ msgstr "Formati d'uscita a 8 bit:" msgid "16 bit output formats:" msgstr "Formati d'uscita a 16 bit:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMP non supporta la profondità di 16 bit/colore.\n" -"Vuoi ridurla a 8 bit/colore?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "La profondità di 16 bit/colore non è supportata per questo formato.\n" "Vuoi ridurla a 8 bit/colore?" @@ -626,6 +689,11 @@ msgstr "versione:" msgid "package" msgstr "pacchetto" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Tutto l'intervallo del colore" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "con supporto GIMP" @@ -757,9 +825,10 @@ msgid "Medium Name:" msgstr "Nome supporto:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Dimensione %d x %d pixel, %d bit/colore, %d colori, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -813,6 +882,7 @@ msgid "Name:" msgstr "Nome:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Comando:" @@ -833,18 +903,22 @@ msgid "Color resolution (dpi):" msgstr "Risoluzione del colore (DPI):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Larghezza" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Altezza" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Margine sinistro" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Margine inferiore" @@ -864,7 +938,17 @@ msgstr "Verde della gamma della stampante:" msgid "Printer gamma blue:" msgstr "Blu della gamma della stampante:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Cancella stampante" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Cancella stampante" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" "Per la stampa crea immagine postscript compressa zlib (PS di livello 3) " @@ -989,7 +1073,7 @@ msgstr "Imposta valori predefiniti per:" msgid "Viewer (Postscript):" msgstr "Visualizzatore (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Per il fax crea immagine postscript compressa zlib (PS livello 3)" @@ -1065,10 +1149,45 @@ msgstr "gruppo" msgid "all" msgstr "tutti" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Cancella stampante" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Cancella stampante" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Cancella stampante" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nuovo supporto" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Salva" @@ -1077,14 +1196,17 @@ msgid "Filetype" msgstr "Tipo file" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copia" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax " #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-mail" @@ -1176,6 +1298,12 @@ msgstr "Visualizza l'elenco delle risoluzioni" msgid "Rotate postscript" msgstr "Ruota Postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Tutto l'intervallo del colore" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Salva definizione supporto" @@ -1220,6 +1348,86 @@ msgstr "Consigli sulla scansione" msgid "Problems?" msgstr "Problemi?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Aggiungi stampante" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Aggiungi stampante" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Aggiungi stampante" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Aggiungi stampante" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Autorizzazione" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "scrivi" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Riduci" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Sfoca" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inattivo" @@ -1336,6 +1544,20 @@ msgstr "Login ASMTP" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Cancella stampante" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Correzione automatica dei colori" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Acquisizione" @@ -1393,6 +1615,11 @@ msgstr "Sfoca immagine" msgid "OCR in progress" msgstr "OCR in corso" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Correzione automatica dei colori" + #. DESC_SCAN_START msgid "Start scan " msgstr "Avvia scansione " @@ -1452,8 +1679,9 @@ msgstr "" "automaticamente" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Inserisci nome del progetto fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Cerca cartella temporanea" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1463,9 +1691,15 @@ msgstr "Inserisci nuovo nome per la pagina del fax" msgid "Enter receiver phone number or address" msgstr "Inserisci numero telefonico o indirizzo del ricevente" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Cerca cartella temporanea" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Inserisci nome del progetto e-mail" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Cerca cartella temporanea" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1475,6 +1709,11 @@ msgstr "Inserisci nuovo nome per l'immagine e-mail" msgid "Enter e-mail address" msgstr "Inserisci indirizzo di posta elettronica" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Cerca cartella temporanea" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Inserisci argomento dell'e-mail" @@ -1484,8 +1723,14 @@ msgid "Select filetype for image attachments" msgstr "Seleziona il tipo di file per le immagini allegate" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Inserisci nome del progetto multipagina" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Cerca cartella temporanea" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Cerca cartella temporanea" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1610,7 +1855,8 @@ msgstr "" " contrasto = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "" "Calibrazione automatica della gamma, della luminosità e del contrasto " @@ -1698,18 +1944,22 @@ msgstr "" "formato Postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Larghezza area stampa" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Altezza area stampa" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Margine sinistro dal bordo del foglio all'area di stampa" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Margine inferiore dal bordo pagina all'area di stampa" @@ -1729,9 +1979,18 @@ msgstr "Valore aggiuntivo della gamma per la componente verde per la fotocopia" msgid "Additional gamma value for blue component for photocopy" msgstr "Valore aggiuntivo della gamma per la componente blu per la fotocopia" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Crea immagine postscript compressa zlib per la stampa (decodifica flat).\n" @@ -1794,17 +2053,19 @@ msgstr "" "I numeri già usati vengono saltati se il contatore del nome file viene " "incrementato automaticamente" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "comprimi immagine postscript con un algoritmo zlib (decodifica flat). La tua " "stampante deve comprendere il linguaggio postscript di livello 3 quando vuoi " "stampare un simile file." -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "comprimi immagine PDF con algoritmo zlib (decodifica flat)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1820,7 +2081,9 @@ msgstr "" "programmi ma produce file giganteschi!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Salva l'immagine a 8 bit/colore se lo scanner invia immagini a 16 bit/colore" @@ -1855,7 +2118,8 @@ msgstr "" "scorribile o ridimensionabile" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" "Disabilita l'anteprima della gamma quando XSane è eseguito come un plugin di " "GIMP" @@ -1964,6 +2228,15 @@ msgstr "Seleziona l'area di scansione dopo l'acquisizione dell'anteprima" msgid "Do color correction after preview scan has finished" msgstr "Applica la correzione dei colori dopo l'acquisizione dell'anteprima" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Seleziona l'area di scansione dopo l'acquisizione dell'anteprima" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Inserisci il comando da eseguire in modalità fax" @@ -1996,8 +2269,9 @@ msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" "Invia il fax con un'alta risoluzione verticale (196 lpi invece di 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Crea immagine postscript compressa zlib per il fax (decodifica flat)" #. DESC_SMTP_SERVER @@ -2079,9 +2353,10 @@ msgstr "leggi" msgid "write" msgstr "scrivi" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "esegui" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "utente" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2250,6 +2525,36 @@ msgstr "Togli l'area selezionata dalla lista batch" msgid "Turns on automatic mode" msgstr "Attiva modalità automatica" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Sfoglia per nome immagine" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Sfoglia per nome immagine" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Non è possibile determinare la cartella home:" @@ -2306,11 +2611,6 @@ msgstr "Si è verificato un errore durante il salvataggio:" msgid "Can't handle depth" msgstr "Non è possibile gestire la profondità" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP non può gestire una profondità di %d bit/colore" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Il formato del file per il salvataggio è sconosciuto" @@ -2545,10 +2845,68 @@ msgstr "Il file %s non è di tipo Postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Il formato d'uscita a %d bit non è supportato: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Si è verificato un errore durante il salvataggio:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Impossibile aprire il file" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Cancella stampante" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Sfoglia per nome immagine" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Cancella stampante" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Non è possibile creare il progetto fax" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "l'immagine del visualizzatore non è stata salvata" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Pagine:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Salva lista batch" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Salva le impostazioni del dispositivo all'uscita" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferenze" + #. TEXT_USAGE msgid "Usage:" msgstr "Utilizzo:" @@ -2929,3 +3287,62 @@ msgstr "La memoria è esaurita" msgid "Access to resource has been denied" msgstr "L'accesso alla risorsa è negato" + +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Sfoglia per nome immagine" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Sfoglia per nome immagine" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP non può gestire una profondità di %d bit/colore" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Cancella stampante" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Cancella stampante" + +#~ msgid "Enter name of fax project" +#~ msgstr "Inserisci nome del progetto fax" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Inserisci nome del progetto e-mail" + +#~ msgid "Enter name of multipage project" +#~ msgstr "Inserisci nome del progetto multipagina" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "GIMP non supporta la profondità di 16 bit/colore.\n" +#~ "Vuoi ridurla a 8 bit/colore?" diff --git a/po/ja.gmo b/po/ja.gmo index 3a4dd0b..4679c2d 100644 Binary files a/po/ja.gmo and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po index e2d7130..379e205 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-08-28 12:48+900\n" "Last-Translator: Kimizuka Tomokazu \n" "Language-Team: Japanese\n" @@ -32,6 +33,7 @@ msgid "About" msgstr "XSaneについて" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "翻訳について" @@ -71,6 +73,11 @@ msgstr "バッチ領域をリネーム" msgid "fax project" msgstr "FAXプロジェクト" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "FAXプロジェクト名を入力" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "FAXページをリネーム" @@ -84,6 +91,11 @@ msgstr "PSファイルをFAXに挿入" msgid "E-mail project" msgstr "メールプロジェクト" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "メールプロジェクト名を入力" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "ファイルをメールに挿入" msgid "multipage project" msgstr "プロジェクト削除" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "プロジェクト削除" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "プリセット領域をリネーム" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "プレビュー" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "ビューワ" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "一時ディレクトリを選択" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "画像の拡大縮小" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "画像のしみ取り" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "画像をにじませる" @@ -195,6 +216,35 @@ msgstr "媒体の定義を保存" msgid "No devices available" msgstr "デバイスが使えません" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "プリンタ削除" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "プリンタ削除" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "出力ファイル名を選択" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "プリンタ削除" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "プリンタ削除" + #. MENU_FILE msgid "File" msgstr "ファイル" @@ -212,6 +262,7 @@ msgid "Window" msgstr "ウィンドウ" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "ヘルプ" @@ -227,6 +278,11 @@ msgstr "フィルタ" msgid "Geometry" msgstr "ジオメトリ" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "XSaneについて" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "終了" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "イメージを保存" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "倍率" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "閉じる" @@ -449,11 +507,11 @@ msgstr "上書きの警告" msgid "Skip existing filenames" msgstr "現在のファイル名をスキップ" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -470,7 +528,8 @@ msgid "Main window size fixed" msgstr "メインウィンドウのサイズを固定" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "GIMPのガンマプレビューを無効化" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -493,6 +552,11 @@ msgstr "色彩の自動補正" msgid "Use GUI progress pipe" msgstr "GUIプログレスパイプを使用" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "デバイスをスキャンしています" @@ -509,6 +573,12 @@ msgstr "XSaneのオプション" msgid "Type" msgstr "タイプ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "フルカラーレンジ" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "スキャナとバックエンド:" @@ -581,18 +651,11 @@ msgstr "8ビット出力フォーマット:" msgid "16 bit output formats:" msgstr "16ビット出力フォーマット:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMPは16ビットカラーをサポートしていません。\n" -"8ビットカラーに減色しますか?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "この出力フォーマットは16ビットカラーをサポートしていません。\n" "8ビットカラーに減色しますか?" @@ -629,6 +692,11 @@ msgstr "バージョン" msgid "package" msgstr "パッケージ" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "フルカラーレンジ" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "GIMPサポートあり" @@ -766,9 +834,10 @@ msgid "Medium Name:" msgstr "触媒名:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "%d x %d画素, %dビット/色, %d色, %1.0f dpi x %1.0f dpi, %1.1f %s" #. TEXT_DESPECKLE_RADIUS @@ -820,6 +889,7 @@ msgid "Name:" msgstr "名前:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "コマンド:" @@ -840,18 +910,22 @@ msgid "Color resolution (dpi):" msgstr "色解像度(dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "幅" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "高さ" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "左オフセット" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "下オフセット" @@ -871,7 +945,17 @@ msgstr "プリンタガンマ 緑:" msgid "Printer gamma blue:" msgstr "プリンタガンマ 青:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "プリンタ削除" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "プリンタ削除" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -996,7 +1080,7 @@ msgstr "プログラムの初期値を設定:" msgid "Viewer (Postscript):" msgstr "ビューワ(PostScript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1075,10 +1159,45 @@ msgstr "グループ" msgid "all" msgstr "すべて" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "プリンタ削除" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "プリンタ削除" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "プリンタ削除" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "新しい媒体" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "保存" @@ -1088,14 +1207,17 @@ msgid "Filetype" msgstr "ファイル" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "コピー" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "FAX" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "メール" @@ -1188,6 +1310,12 @@ msgstr "解像度リストを表示" msgid "Rotate postscript" msgstr "PostScriptを回転" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "フルカラーレンジ" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "媒体の定義を編集" @@ -1232,6 +1360,86 @@ msgstr "スキャンに関するTips" msgid "Problems?" msgstr "何か問題?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "プリンタ追加" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "プリンタ追加" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "プリンタ追加" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "プリンタ追加" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "アクセス権限" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "書込み" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "縮小" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "にじみ" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "非活性" @@ -1350,6 +1558,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "プリンタ削除" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "色彩の自動補正" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "スキャンしています" @@ -1408,6 +1630,11 @@ msgstr "画像をにじませ中" msgid "OCR in progress" msgstr "OCR進行中" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "色彩の自動補正" + #. DESC_SCAN_START msgid "Start scan " msgstr "スキャン開始 " @@ -1466,8 +1693,9 @@ msgid "" msgstr "画像フォーマットタイプファイル名に自動でつく適切な拡張子" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "FAXプロジェクト名を入力" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "一時ディレクトリの参照" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1477,10 +1705,15 @@ msgstr "FAXページにつけるファイル名を入力" msgid "Enter receiver phone number or address" msgstr "FAX受信機の電話番号かアドレスを入力" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "一時ディレクトリの参照" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "メールプロジェクト名を入力" +msgid "Enter e-mail project directory name" +msgstr "一時ディレクトリの参照" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1492,6 +1725,11 @@ msgstr "新規メールイメージのファイル名を入力" msgid "Enter e-mail address" msgstr "メールアドレスを入力" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "一時ディレクトリの参照" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1503,8 +1741,13 @@ msgstr "画像添付時のファイルタイプを選択" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "メールプロジェクト名を入力" +msgid "Enter multipage project directory name" +msgstr "一時ディレクトリの参照" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "一時ディレクトリの参照" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1629,7 +1872,8 @@ msgstr "" "コントラスト = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "" "選択されたスキャン領域に応じて、ガンマ値、明度、コントラストを自動調整 " @@ -1709,18 +1953,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "カラー画像の解像度はPostScriptで印刷・保存されます" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "印刷可能領域幅" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "印刷可能領域高さ" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "印刷可能領域の用紙端からの左オフセット" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "印刷可能領域の用紙端からの下オフセット" @@ -1740,9 +1988,17 @@ msgstr "焼き増しへの緑成分追加ガンマ値" msgid "Additional gamma value for blue component for photocopy" msgstr "焼き増しへの青成分追加ガンマ値" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1798,14 +2054,14 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "ファイル名のカウンタが自動的に増加する際、使用済みの番号はとばされます" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1821,7 +2077,9 @@ msgstr "" "グラムでサポートされていますが、たいへん巨大なファイルを作ります。" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "画像が16ビットカラーでスキャナから送られたら、8ビットで保存" #. DESC_PSFILE_WIDTH @@ -1849,7 +2107,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "メインウィンドウに固定サイズを使うか、スクロール・リサイズ可能にする" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "XSaneがGIMPプラグインとして動作する時は、ガンマプレビューをオフにする" #. DESC_PREVIEW_COLORMAP @@ -1935,6 +2194,15 @@ msgstr "プレビュースキャン終了後のスキャン領域を選択" msgid "Do color correction after preview scan has finished" msgstr "プレビュースキャン終了後に色彩補正を行う" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "プレビュースキャン終了後のスキャン領域を選択" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "FAXモードで実行されるコマンドを入力" @@ -1963,8 +2231,8 @@ msgstr "FAX参照のための実行コマンドを入力" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "垂直高解像度(98lpiに代えて196lpiで)モードでFAX送信" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2048,9 +2316,10 @@ msgstr "読込み" msgid "write" msgstr "書込み" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "実行" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "ユーザー" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2219,6 +2488,36 @@ msgstr "選択領域をバッチリストから削除" msgid "Turns on automatic mode" msgstr "自動モードに切替え" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "画像ファイル名をブラウズ" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "画像ファイル名をブラウズ" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "ホームディレクトリの確定に失敗しました:" @@ -2271,11 +2570,6 @@ msgstr "保存エラーです:" msgid "Can't handle depth" msgstr "深度が取得できません" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMPが%dビットカラーを取得できません" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "未知の保存フォーマットです" @@ -2509,10 +2803,68 @@ msgstr "ファイル %s はPostScriptファイルではありません" msgid "Unsupported %d-bit output format: %s" msgstr "%dビットでサポートされていない出力フォーマットです: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "保存エラーです:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "開けません" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "プリンタ削除" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "画像ファイル名をブラウズ" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "プリンタ削除" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "一時ファイルを作れません" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "ビューワの画像が保存されていません" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "画像" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "バッチリストを保存" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "終了時にデバイス設定を保存" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "設定" + #. TEXT_USAGE msgid "Usage:" msgstr "書式:" @@ -2898,8 +3250,66 @@ msgstr "オーバーフロー" msgid "Access to resource has been denied" msgstr "リソースへのアクセスが拒否されました" -#~ msgid "Could not create temporary file" -#~ msgstr "一時ファイルを作れません" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "画像ファイル名をブラウズ" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "画像ファイル名をブラウズ" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMPが%dビットカラーを取得できません" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "プリンタ削除" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "プリンタ削除" + +#~ msgid "Enter name of fax project" +#~ msgstr "FAXプロジェクト名を入力" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "メールプロジェクト名を入力" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "メールプロジェクト名を入力" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "GIMPは16ビットカラーをサポートしていません。\n" +#~ "8ビットカラーに減色しますか?" #~ msgid "Could not create temporary preview files" #~ msgstr "一時プレビューファイルを作れません" @@ -2966,9 +3376,6 @@ msgstr "リソースへのアクセスが拒否されました" #~ msgid "Multipage saving aborted" #~ msgstr "メールプロジェクトが作成されました" -#~ msgid "Image" -#~ msgstr "画像" - #~ msgid "Viewer (png):" #~ msgstr "ビューワ(PNG):" diff --git a/po/nl.gmo b/po/nl.gmo index 28ea8f8..58e04f8 100644 Binary files a/po/nl.gmo and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po index 071b06d..332e550 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-22 09:00+0100\n" "Last-Translator: Wim Sinke \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Report-Msgid-Bugs-To: \n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR @@ -35,6 +35,7 @@ msgid "About" msgstr "Over" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Over de vertaling" @@ -75,6 +76,11 @@ msgstr "batchgebied hernoemen" msgid "fax project" msgstr "faxproject" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "De naam van het faxproject" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "faxpagina hernoemen" @@ -87,6 +93,11 @@ msgstr "ps-bestand in fax voegen" msgid "E-mail project" msgstr "E-mailproject" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "De naam van het e-mail project" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "e-mail afbeelding hernoemen" @@ -99,6 +110,11 @@ msgstr "voeg afbeelding in e-mail" msgid "multipage project" msgstr "meerdere pagina's project" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "meerdere pagina's project" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "scangebied hernoemen" @@ -144,6 +160,7 @@ msgid "Preview" msgstr "Voorvertoning" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Bekijken" @@ -176,14 +193,17 @@ msgid "select temporary directory" msgstr "selecteer tijdelijke map" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Schaal afbeelding" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Spikkels wegwerken" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Afbeelding vervagen" @@ -195,6 +215,35 @@ msgstr "Bewaar mediumdefinitie" msgid "No devices available" msgstr "Geen apparaten vrij" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Printer verwijderen" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Printer verwijderen" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "kies uitvoernaam" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Printer verwijderen" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Printer verwijderen" + #. MENU_FILE msgid "File" msgstr "Bestand" @@ -212,6 +261,7 @@ msgid "Window" msgstr "Venster" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Help" @@ -227,6 +277,11 @@ msgstr "Filters" msgid "Geometry" msgstr "Geometrie" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Over XSane" @@ -240,6 +295,7 @@ msgid "Quit" msgstr "Afsluiten" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Bewaar afbeelding" @@ -256,6 +312,7 @@ msgid "Scale" msgstr "Schaal" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Sluiten" @@ -448,11 +505,11 @@ msgstr "Waarschuwing bij overschrijving" msgid "Skip existing filenames" msgstr "Bestaande bestandnamen overslaan" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Opslaan als zlib gecomprimeerd PostScript (level 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Opslaan als PDF zlib gecomprimeerd" @@ -469,7 +526,8 @@ msgid "Main window size fixed" msgstr "Vaste hoofdvenstergrootte" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Preview gamma voor Gimp deactiveren" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -492,6 +550,11 @@ msgstr "Automatisch kleuren verbeteren" msgid "Use GUI progress pipe" msgstr "Gebruik GUI progressie pipe" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Zoeken naar apparaten" @@ -508,6 +571,12 @@ msgstr "XSane opties" msgid "Type" msgstr "Type" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Volledig kleuren bereik" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scanner en backend:" @@ -580,18 +649,11 @@ msgstr "8 bits uitvoerformaten:" msgid "16 bit output formats:" msgstr "16 bits uitvoerformaten:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp kan geen 16 bits kleurdiepte aan.\n" -"Wil je de diepte reduceren naar 8 bits?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Dit uitvoerformaat kan geen 16 bits kleurdiepte aan.\n" "Wil je de diepte reduceren naar 8 bits?" @@ -628,6 +690,11 @@ msgstr "versie:" msgid "package" msgstr "pakket" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Volledig kleuren bereik" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "met GIMP ondersteuning" @@ -764,9 +831,10 @@ msgid "Medium Name:" msgstr "Naam medium:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Grootte %d x %d pixels, %d bit/kleur, %d kleuren, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -820,6 +888,7 @@ msgid "Name:" msgstr "Naam:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Commando:" @@ -840,18 +909,22 @@ msgid "Color resolution (dpi):" msgstr "Kleur resolutie (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Breedte" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Hoogte" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Linker rand" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Onderrand" @@ -871,7 +944,17 @@ msgstr "Printer gammawaarde groen:" msgid "Printer gamma blue:" msgstr "Printer gammawaarde blauw:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Printer verwijderen" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Printer verwijderen" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Maak zlib gecomprimeerd PostScript (level 3) plaatje voor printen" @@ -995,7 +1078,7 @@ msgstr "Geef programma standaardwaarden:" msgid "Viewer (Postscript):" msgstr "Bekijkprogramma (PostScript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Maak zlib gecomprimeerd PostScript (level 3) plaatje voor fax" @@ -1074,10 +1157,45 @@ msgstr "groep" msgid "all" msgstr "allemaal" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Printer verwijderen" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Printer verwijderen" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Printer verwijderen" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Kies een bestandsnaam" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nieuwe media" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Opslaan" @@ -1086,14 +1204,17 @@ msgid "Filetype" msgstr "Bestandssoort" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopiëren" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faxen" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-mail" @@ -1186,6 +1307,12 @@ msgstr "Laat resolutie lijst zien" msgid "Rotate postscript" msgstr "Draai PostScript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Volledig kleuren bereik" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Verander mediumdefinitie" @@ -1230,6 +1357,86 @@ msgstr "Scantips" msgid "Problems?" msgstr "Problemen?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Printer toevoegen" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Printer toevoegen" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Printer toevoegen" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Printer toevoegen" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "authorizatie" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "schrijven" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reduceren" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Vervagen" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inactief" @@ -1347,6 +1554,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Printer verwijderen" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Automatisch kleuren verbeteren" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Aan het scannen" @@ -1404,6 +1625,11 @@ msgstr "Afbeelding vervagen" msgid "OCR in progress" msgstr "Tekstherkenning is bezig" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Automatisch kleuren verbeteren" + #. DESC_SCAN_START msgid "Start scan " msgstr "Start scannen " @@ -1463,8 +1689,9 @@ msgstr "" "bestandsnaam" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "De naam van het faxproject" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Bekijk de tijdelijke map" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1474,9 +1701,15 @@ msgstr "Geef de naam van de faxpagina" msgid "Enter receiver phone number or address" msgstr "Geef telefoonnummer of adres van de ontvanger" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Bekijk de tijdelijke map" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "De naam van het e-mail project" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Bekijk de tijdelijke map" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1486,6 +1719,11 @@ msgstr "De nieuwe naam van de e-mail afbeelding" msgid "Enter e-mail address" msgstr "E-mail adres" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Bekijk de tijdelijke map" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "E-mail onderwerp" @@ -1495,8 +1733,14 @@ msgid "Select filetype for image attachments" msgstr "Selecteer het type van de afbeeldingen" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "De naam van het meerdere pagina's project" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Bekijk de tijdelijke map" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Bekijk de tijdelijke map" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1621,7 +1865,8 @@ msgstr "" " contrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Automatische aanpassing van gamma, helderheid en contrast " #. DESC_ENH_DEFAULT @@ -1699,18 +1944,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Printresolutie voor PostScript kleurenafbeeldingen" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Printbreedte" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Printhoogte" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Afstand van rand to printbare gebied" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Afstand van rand to printbare gebied" @@ -1730,9 +1979,18 @@ msgstr "Extra gammacorrectie voor groen voor fotokopie" msgid "Additional gamma value for blue component for photocopy" msgstr "Extra gammacorrectie voor blauw voor fotokopie" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Maak zlib gecomprimeerd PostScript plaatje voor de printer (flatdecode).\n" @@ -1793,16 +2051,18 @@ msgstr "" "Gebruikte numbers worden overgeslagen als de bestandsteller automatisch " "verhoogd wordt" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "Comprimeer het PostScript plaatje met zlib algoritme (flatdecode). Als je " "dit bestand wilt printen moet je printer PostScript level 3 begrijpen" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "Comprimeer PDF plaatje met zlib algoritme (flatdecode)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1818,7 +2078,9 @@ msgstr "" "grote bestanden op!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "16-bits kleuren worden bewaard met 8-bits" #. DESC_PSFILE_WIDTH @@ -1846,7 +2108,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Gebruik vaste grootte voor hoofdvenster of gebruik scrollbars" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Schakel preview gamma uit als XSane als Gimp plugin gebruikt wordt" #. DESC_PREVIEW_COLORMAP @@ -1938,6 +2201,15 @@ msgstr "Kies scangebied nadat preview klaar is" msgid "Do color correction after preview scan has finished" msgstr "Verbeter de kleuren nadat preview klaar is" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Kies scangebied nadat preview klaar is" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Geef commando dat in fax-mode uitgevoerd moet worden" @@ -1966,8 +2238,9 @@ msgstr "Commando om fax te bekijken" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Verstuur hoge resolutie fax (196 lpi inplaats van 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Maak zlib gecomprimeerd PostScript plaatje voor fax (flatdecode)" #. DESC_SMTP_SERVER @@ -2048,9 +2321,10 @@ msgstr "lezen" msgid "write" msgstr "schrijven" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "uitvoeren" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "gebruiker" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2219,6 +2493,36 @@ msgstr "Verwijder geselecteerde gebied van de batch lijst" msgid "Turns on automatic mode" msgstr "Activeer de automatische mode" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Kies een bestandsnaam" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Kies een bestandsnaam" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Kies een bestandsnaam" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Kies een bestandsnaam" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Kies een bestandsnaam" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Kies een bestandsnaam" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Kon hoofdmap niet vinden:" @@ -2271,11 +2575,6 @@ msgstr "Fout tijdens bewaren:" msgid "Can't handle depth" msgstr "Kan diepte niet aan" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP kan niet met %d bits per kleur overweg" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Onbekend bestandstype tijdens bewaren" @@ -2511,10 +2810,68 @@ msgstr "%s is geen PostScript bestand" msgid "Unsupported %d-bit output format: %s" msgstr "Geen ondersteuning van %d-bits kleuren in het %s formaat" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Fout tijdens bewaren:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Kon niet openen" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Printer verwijderen" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Kies een bestandsnaam" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Printer verwijderen" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Kon geen tijdelijk bestand maken" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Afbeelding is niet bewaard" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Pagina's:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Bewaar batch lijst" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Apparaatinstellingen bewaren bij verlaten" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Instellingen" + #. TEXT_USAGE msgid "Usage:" msgstr "Gebruik:" @@ -2888,8 +3245,64 @@ msgstr "Geheugen vol" msgid "Access to resource has been denied" msgstr "Geen toegang tot apparaat" -#~ msgid "Could not create temporary file" -#~ msgstr "Kon geen tijdelijk bestand maken" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Kies een bestandsnaam" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Kies een bestandsnaam" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP kan niet met %d bits per kleur overweg" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Printer verwijderen" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Printer verwijderen" + +#~ msgid "Enter name of fax project" +#~ msgstr "De naam van het faxproject" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "De naam van het e-mail project" + +#~ msgid "Enter name of multipage project" +#~ msgstr "De naam van het meerdere pagina's project" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp kan geen 16 bits kleurdiepte aan.\n" +#~ "Wil je de diepte reduceren naar 8 bits?" #~ msgid "Could not create temporary preview files" #~ msgstr "Kon geen tijdelijke preview bestanden maken" diff --git a/po/pl.gmo b/po/pl.gmo index 1fbebfd..0c7f9c3 100644 Binary files a/po/pl.gmo and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index 63f3dc6..2b7e01c 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-22 01:26+0100\n" "Last-Translator: Jerzy Szczudlowski \n" "Language-Team: polski \n" @@ -37,6 +38,7 @@ msgid "About" msgstr "O programie" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "O tłumaczeniu" @@ -76,6 +78,11 @@ msgstr "zmień nazwę zakresu wsadowego" msgid "fax project" msgstr "wyślij obrazek faksem" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Wprowadź nazwę projektu dla faksu" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "zmień nazwę strony faksu" @@ -88,6 +95,11 @@ msgstr "wstaw plik postscriptowy do faksu" msgid "E-mail project" msgstr "wyślij projekt listem elektronicznym" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Wprowadź nazwę projektu pocztowego" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "zmień nazwę obrazka w liście" @@ -100,6 +112,11 @@ msgstr "wstaw plik do listu" msgid "multipage project" msgstr "projekt wielostronicowy" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "projekt wielostronicowy" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "zmień nazwę ustawionego obszaru" @@ -145,6 +162,7 @@ msgid "Preview" msgstr "Podgląd" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Przeglądarka" @@ -177,14 +195,17 @@ msgid "select temporary directory" msgstr "wybierz katalog tymczasowy" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Przeskaluj obraz" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Odplamkuj obrazek" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Rozmyj obrazek" @@ -196,6 +217,35 @@ msgstr "Zapisz ustawienia materiału" msgid "No devices available" msgstr "Brak dostępnych urządzeń" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Usuń drukarkę" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Usuń drukarkę" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "wybierz plik wyjściowy" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Usuń drukarkę" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Usuń drukarkę" + #. MENU_FILE msgid "File" msgstr "Plik" @@ -213,6 +263,7 @@ msgid "Window" msgstr "Okno" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Pomoc" @@ -228,6 +279,11 @@ msgstr "Filtry" msgid "Geometry" msgstr "Geometria" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "O XSane" @@ -241,6 +297,7 @@ msgid "Quit" msgstr "Zakończ" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Zapisz obraz" @@ -257,6 +314,7 @@ msgid "Scale" msgstr "Skaluj" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Zamknij" @@ -448,11 +506,11 @@ msgstr "Ostrzeżenie przed nadpisaniem" msgid "Skip existing filenames" msgstr "Pomiń istniejące nazwy plików" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Zapis Postscriptu kompresowanego zlib (poziom PS 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Zapis PDF skompresowanego zlib" @@ -469,7 +527,8 @@ msgid "Main window size fixed" msgstr "Stały rozmiar głównego okna" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Wyłącz gamma przy podglądzie w Gimpie" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -492,6 +551,11 @@ msgstr "Samoczynnie koryguj kolory" msgid "Use GUI progress pipe" msgstr "Używaj graficznego paska postępu" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "szukam podłączonych urządzeń" @@ -508,6 +572,12 @@ msgstr "Opcje XSane" msgid "Type" msgstr "Typ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "pełny zakres" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skaner i sterownik:" @@ -580,18 +650,11 @@ msgstr "formaty wyjściowe 8-bitowe:" msgid "16 bit output formats:" msgstr "formaty wyjściowe 16-bitowe:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp nie wspiera 16-bitowej głębi kolorów.\n" -"Czy chcesz zmniejszyć głębię do 8-bitów?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "16-bitowa głębia kolorów nie jest obsługiwana w tym formacie\n" "wyjściowym. Czy chcesz zmniejszyć głębię do 8-bitów?" @@ -628,6 +691,11 @@ msgstr "wersja" msgid "package" msgstr "paczka" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "pełny zakres" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "z obsługą GIMPa." @@ -762,9 +830,10 @@ msgid "Medium Name:" msgstr "Nazwa nośnika:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Rozmiar %d x %d pikseli, %d bit/kolor, %d kolorów, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -818,6 +887,7 @@ msgid "Name:" msgstr "Nazwa:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Polecenie:" @@ -838,18 +908,22 @@ msgid "Color resolution (dpi):" msgstr "Rozdzielczość w kolorze (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Szerokość" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Wysokość" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Lewy margines" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Dolny margines" @@ -869,7 +943,17 @@ msgstr "Gamma drukarki - zielony:" msgid "Printer gamma blue:" msgstr "Gamma drukarki - niebieski:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Usuń drukarkę" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Usuń drukarkę" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Stwórz obraz Postscript skompresowany zlib (poziom PS 3) do druku" @@ -993,7 +1077,7 @@ msgstr "Ustaw domyślne wartości dla programu:" msgid "Viewer (Postscript):" msgstr "Przeglądarka (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Stwórz obraz Postscript skompresowany zlib (poziom PS 3) dla faksu" @@ -1072,10 +1156,45 @@ msgstr "grupa" msgid "all" msgstr "wszyscy" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Usuń drukarkę" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Usuń drukarkę" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Usuń drukarkę" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nowy nośnik" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Zapis" @@ -1084,14 +1203,17 @@ msgid "Filetype" msgstr "Rodzaj pliku" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopia" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faks" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "Poczta elektroniczna" @@ -1183,6 +1305,12 @@ msgstr "Pokaż listę rozdzielczości" msgid "Rotate postscript" msgstr "Obróć Postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "pełny zakres" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Edytuj definicję nośnika" @@ -1227,6 +1355,86 @@ msgstr "Jak skanować" msgid "Problems?" msgstr "Problemy?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Dodaj drukarkę" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Dodaj drukarkę" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Dodaj drukarkę" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Dodaj drukarkę" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autoryzacja" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "zapis" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Zredukuj" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Rozmyj" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "nieaktywny" @@ -1344,6 +1552,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Usuń drukarkę" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Samoczynnie koryguj kolory" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skanowanie" @@ -1401,6 +1623,11 @@ msgstr "Rozmywanie obrazka..." msgid "OCR in progress" msgstr "Rozpoznawanie tekstu w toku..." +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Samoczynnie koryguj kolory" + #. DESC_SCAN_START msgid "Start scan " msgstr "Rozpocznij skanowanie " @@ -1460,8 +1687,9 @@ msgstr "" "automatycznie" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Wprowadź nazwę projektu dla faksu" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Przeglądaj katalog tymczasowy" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1471,9 +1699,15 @@ msgstr "Wprowadź nową nazwę dla strony faksu" msgid "Enter receiver phone number or address" msgstr "Wprowadź nr telefonu odbiorcy lub adres" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Przeglądaj katalog tymczasowy" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Wprowadź nazwę projektu pocztowego" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Przeglądaj katalog tymczasowy" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1483,6 +1717,11 @@ msgstr "Wprowadź nową nazwę dla wysyłanego obrazka" msgid "Enter e-mail address" msgstr "Wprowadź adres poczty elektronicznej (email)" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Przeglądaj katalog tymczasowy" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Wprowadź temat listu" @@ -1492,8 +1731,14 @@ msgid "Select filetype for image attachments" msgstr "Wybierz rodzaj pliku dla załącznika" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Wprowadź nazwę wielostronicowego projektu pocztowego" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Przeglądaj katalog tymczasowy" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Przeglądaj katalog tymczasowy" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1618,7 +1863,8 @@ msgstr "" " kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Automatycznie ustaw parametr gamma, jasność i kontrast " #. DESC_ENH_DEFAULT @@ -1703,18 +1949,22 @@ msgstr "" "Postscripcie" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Szerokość obszaru drukowalnego" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Wysokość obszaru drukowalnego" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Lewy margines od krawędzi papieru do obszaru wydruku" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Dolny margines od krawędzi papieru do obszaru wydruku" @@ -1734,9 +1984,18 @@ msgstr "Dodatkowy parametr gamma dla zielonej składowej kopii" msgid "Additional gamma value for blue component for photocopy" msgstr "Dodatkowy parametr gamma dla niebieskiej składowej kopii" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Stwórz obraz Postscript skompresowany zlib (flatdecode).\n" @@ -1797,16 +2056,18 @@ msgstr "" "Jeśli licznik w nazwie pliku jest automatycznie zwiększany, to już użyte " "numery są pomijane" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "kompresuje obraz Postscript algorytmem zlib (flatdecode). Jeżeli chcesz " "wydrukować taki plik, drukarka musi rozumieć Postscript poziomu 3!" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "kompresuje obraz PDF alborytmem zlib (flatdecode)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1822,7 +2083,9 @@ msgstr "" "ilość programów, lecz może dawać naprawdę olbrzymie pliki!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Jeśli skaner wysyła obrazek z 16-stoma bitami na kolor zapisz obrazek z 8-ma " "bitami" @@ -1856,7 +2119,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Stały lub obieralny rozmiar okna głównego" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Wyłącz gamma podglądu, gdy XSane działa jako wtyczka Gimpa" #. DESC_PREVIEW_COLORMAP @@ -1952,6 +2216,15 @@ msgstr "Wybierz obszar skanowania po pobraniu podglądu" msgid "Do color correction after preview scan has finished" msgstr "Zastosuj korekcję kolorów po pobraniu podglądu" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Wybierz obszar skanowania po pobraniu podglądu" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Wprowadź polecenie, które zostanie wykonane w trybie wysyłania faksu" @@ -1981,8 +2254,9 @@ msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" "Wyślij faks o wysokiej rozdzielczości pionowej (196 lpi zamiast 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" "Tworzy skompresowany algorytmem zlib (flatdecode) obraz Postscript dla faksu" @@ -2065,9 +2339,10 @@ msgstr "odczyt" msgid "write" msgstr "zapis" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "wykonywanie" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "użytkownik" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2236,6 +2511,36 @@ msgstr "Usuń zaznaczony obszar z listy wsadowej" msgid "Turns on automatic mode" msgstr "Włącza tryb automatyczny" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Ustalenie katalogu domowego nie powiodło się:" @@ -2288,11 +2593,6 @@ msgstr "Błąd podczas zapisu:" msgid "Can't handle depth" msgstr "Nie jest obsługiwana głębokość" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "Gimp nie obsługuje głębokości %d bitów/kolor" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Nieznany format pliku do zapisu" @@ -2529,10 +2829,68 @@ msgstr "%s nie jest plikiem postscriptowym" msgid "Unsupported %d-bit output format: %s" msgstr "Nieobsługiwany %d-bitowy format wyjściowy: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Błąd podczas zapisu:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Otwarcie nie powiodło się" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Usuń drukarkę" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Usuń drukarkę" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Nie powiodło się utworzenie pliku tymczasowego" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Obrazek nie został zapisany" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Strony:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Zapisz listę wsadową" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Zapisz ustawienia urządzenia przy wyjściu" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferencje" + #. TEXT_USAGE msgid "Usage:" msgstr "Użycie:" @@ -2909,24 +3267,61 @@ msgstr "Brak wolnej pamięci" msgid "Access to resource has been denied" msgstr "Brak dostępu do zasobu" -#~ msgid "Could not create temporary file" -#~ msgstr "Nie powiodło się utworzenie pliku tymczasowego" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Nie można utworzyć tymczasowych plików podglądu" +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Przeglądaj w poszukiwaniu nazwy pliku obrazka" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Nie można nadać nazw plikom podglądu" +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "Gimp nie obsługuje głębokości %d bitów/kolor" #, fuzzy -#~ msgid "POP3 authentication" -#~ msgstr "Uwierzytelnianie POP3" +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Usuń drukarkę" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Usuń drukarkę" + +#~ msgid "Enter name of fax project" +#~ msgstr "Wprowadź nazwę projektu dla faksu" -#~ msgid "XSane mode" -#~ msgstr "Tryb XSane" +#~ msgid "Enter name of e-mail project" +#~ msgstr "Wprowadź nazwę projektu pocztowego" -#~ msgid "POP3 user:" -#~ msgstr "Użytkownik POP3:" +#~ msgid "Enter name of multipage project" +#~ msgstr "Wprowadź nazwę wielostronicowego projektu pocztowego" -#~ msgid "POP3 password:" -#~ msgstr "Hasło POP3:" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp nie wspiera 16-bitowej głębi kolorów.\n" +#~ "Czy chcesz zmniejszyć głębię do 8-bitów?" diff --git a/po/pt.gmo b/po/pt.gmo index 86b35cc..fef2009 100644 Binary files a/po/pt.gmo and b/po/pt.gmo differ diff --git a/po/pt.po b/po/pt.po index 6a0e448..bafafca 100644 --- a/po/pt.po +++ b/po/pt.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-10-08 22:00+3\n" "Last-Translator: Yujo Rodrigues \n" "Language-Team: Portuguese \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "Sobre" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Sobre a tradução" @@ -71,6 +73,11 @@ msgstr "renomeia area de lote" msgid "fax project" msgstr "projeto de fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Digite o nome do projeto de fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "renomeia página de fax" @@ -84,6 +91,11 @@ msgstr "insere arquivo-ps em um fax" msgid "E-mail project" msgstr "projeto de e-mail" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Digite o nome do projeto de correio" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "insere arquivo no correio" msgid "multipage project" msgstr "Apagar projeto" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Apagar projeto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renomeia area predefinida" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "Pré-Visualização" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visualizador" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "seleciona o diretório temporário" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Escala da imagem" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Desembaraça imagem" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Embaça imagem" @@ -195,6 +216,35 @@ msgstr "Armazena definição da mídia" msgid "No devices available" msgstr "Nenhum dispositivo disponível" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "selecione arquivo de saída" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Excluir impressora" + #. MENU_FILE msgid "File" msgstr "Arquivo" @@ -212,6 +262,7 @@ msgid "Window" msgstr "Janela" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Ajuda" @@ -227,6 +278,11 @@ msgstr "Filtros" msgid "Geometry" msgstr "Geometria" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Sobre XSane" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "Sair" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Salvar imagem" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "Escala" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Fechar" @@ -449,11 +507,11 @@ msgstr "Aviso ao Sobregravar" msgid "Skip existing filenames" msgstr "Pular arquivos existentes" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -470,7 +528,8 @@ msgid "Main window size fixed" msgstr "Tamanho da janela principal fixado" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Desabilita prévia gama do gimp" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -493,6 +552,11 @@ msgstr "Corrigir cores" msgid "Use GUI progress pipe" msgstr "Usar barra gráfica de progresso" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "procurando por dispositivos" @@ -509,6 +573,12 @@ msgstr "Opções do XSane" msgid "Type" msgstr "Tipo" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Todas as cores" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scaner e driver:" @@ -581,18 +651,11 @@ msgstr "Formatos de saída de 8 bits:" msgid "16 bit output formats:" msgstr "Formatos de saída de 16 bits:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp não suporta profundidade de cores de 16 bits.\n" -"Você quer reduzir a profundidade para cores de 8 bits?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Profundidade de cores de 16 bits não são suportadas para este formato de " "saída.\n" @@ -630,6 +693,11 @@ msgstr "versao:" msgid "package" msgstr "pacote" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Todas as cores" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "com suporte GIMP" @@ -767,9 +835,10 @@ msgid "Medium Name:" msgstr "Nome da mídia:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Tamanho %d x %d pontos, cores de %d bits, %d cores, %1.0f ppp x %1.0f ppp, %" "1.1f %s" @@ -823,6 +892,7 @@ msgid "Name:" msgstr "Nome:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Comando:" @@ -843,18 +913,22 @@ msgid "Color resolution (dpi):" msgstr "Resolução de cores (ppp):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Largura:" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Altura:" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Deslocamento esquerdo" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Deslocamento inferior" @@ -874,7 +948,17 @@ msgstr "Verde gama da Impressora:" msgid "Printer gamma blue:" msgstr "Azul gama da Impressora:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Excluir impressora" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Excluir impressora" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -999,7 +1083,7 @@ msgstr "Configura os padrões do programa para:" msgid "Viewer (Postscript):" msgstr "Visualizador (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1078,10 +1162,45 @@ msgstr "grupo" msgid "all" msgstr "tudo" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nova mídia" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Salvar" @@ -1091,14 +1210,17 @@ msgid "Filetype" msgstr "Arquivo" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copiar" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "E-mail" @@ -1191,6 +1313,12 @@ msgstr "Mostrar lista de resolução" msgid "Rotate postscript" msgstr "Rotacionar postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Todas as cores" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Edita definição da mídia" @@ -1235,6 +1363,86 @@ msgstr "Dicas de digitalização" msgid "Problems?" msgstr "Problemas?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Incluir impressora" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorização" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "gravar" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reduzir" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Embaçar" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inativo" @@ -1353,6 +1561,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Excluir impressora" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Corrigir cores" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Digitalizando" @@ -1411,6 +1633,11 @@ msgstr "Embançando imagem" msgid "OCR in progress" msgstr "OCR em progresso" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Corrigir cores" + #. DESC_SCAN_START msgid "Start scan " msgstr "Inicia digitalização " @@ -1471,8 +1698,9 @@ msgstr "" "acrescentada ao nome do arquivo" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Digite o nome do projeto de fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Procurar pelo diretório temporário" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1482,10 +1710,15 @@ msgstr "Digite o nome para a página de fax" msgid "Enter receiver phone number or address" msgstr "Digite número de telefone ou endereço do destinatário" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Procurar pelo diretório temporário" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Digite o nome do projeto de correio" +msgid "Enter e-mail project directory name" +msgstr "Procurar pelo diretório temporário" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1497,6 +1730,11 @@ msgstr "Digite o novo nome para a imagem de correio" msgid "Enter e-mail address" msgstr "Digite o endereço de e-mail" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Procurar pelo diretório temporário" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1508,8 +1746,13 @@ msgstr "Selecione o tipoe de arquivo para anexos de imagem" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Digite o nome do projeto de correio" +msgid "Enter multipage project directory name" +msgstr "Procurar pelo diretório temporário" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Procurar pelo diretório temporário" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1635,7 +1878,8 @@ msgstr "" " contraste = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Ajusta automaticamente gama, brilho e constraste " #. DESC_ENH_DEFAULT @@ -1718,18 +1962,22 @@ msgstr "" "Resolução com a qual imagens coloridas são impressas e salvadas em postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Largura da área imprimível" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Altura da área imprimível" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Deslocamento esquerdo do canto do papel até a área imprimível" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Deslocamento inferior do canto do papel até a área imprimível" @@ -1749,9 +1997,17 @@ msgstr "Valor gama adicional para o componente verde para fotocópia" msgid "Additional gamma value for blue component for photocopy" msgstr "Valor gama adicional para o componente azul para fotocópia" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1812,14 +2068,14 @@ msgstr "" "Se o contador do nome de arquivo é auto-incrementado, números usados são " "pulados" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1835,7 +2091,9 @@ msgstr "" "programas mas ele produz arquivos realmente imensos!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Se o scaner envia imagem com 16 bits de cores salva imagem com 8 bits de " "cores" @@ -1871,7 +2129,8 @@ msgstr "" "redimensionável" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Desabilita prévia gama quando XSane roda como plugin do gimp" #. DESC_PREVIEW_COLORMAP @@ -1974,6 +2233,16 @@ msgid "Do color correction after preview scan has finished" msgstr "" "Faz uma correção de cores depois da pré-visualização ter sido concluída" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "" +"Seleciona área de digitalização após a pré-visualização ter sido concluída" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Entra comando a ser executado no modo fax" @@ -2002,8 +2271,8 @@ msgstr "Entra comando para ser executado para visualizar um fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Envia fax com resolução vertical alta (196 lpp ao invés de 98 lpp)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2088,9 +2357,10 @@ msgstr "ler" msgid "write" msgstr "gravar" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "executar" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "usuário" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2259,6 +2529,36 @@ msgstr "Apaga área selecionada da lista de lote" msgid "Turns on automatic mode" msgstr "Ativa o modo automático" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Navegar por arquivos de imagem" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Falha ao determinar o diretório home:" @@ -2311,11 +2611,6 @@ msgstr "Erro durante gravação:" msgid "Can't handle depth" msgstr "Não é possível usar profundidade" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP não pode usar profundidade de cores de %d" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Formato de gravação desconhecido" @@ -2549,10 +2844,68 @@ msgstr "Arquivo %s não é um arquivo postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Formato de saída de %d-bit não suportado: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Erro durante gravação:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Falha ao abrir" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Excluir impressora" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Navegar por arquivos de imagem" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Excluir impressora" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Não foi possível criar arquivo temporário" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "visualizador de imagem não está salvado" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Imagem" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Salva lista de lote" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Salvar preferências do dispositivo na saída" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferências" + #. TEXT_USAGE msgid "Usage:" msgstr "Uso:" @@ -2941,15 +3294,66 @@ msgstr "Sem memória" msgid "Access to resource has been denied" msgstr "Acesso ao recurso foi proibido" -#~ msgid "Could not create temporary file" -#~ msgstr "Não foi possível criar arquivo temporário" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Excluir impressora" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Não foi possível criar arquivos de pré-visualização temporários" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Navegar por arquivos de imagem" -#~ msgid "Could not create filenames for preview files" +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Navegar por arquivos de imagem" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP não pode usar profundidade de cores de %d" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Excluir impressora" + +#~ msgid "Enter name of fax project" +#~ msgstr "Digite o nome do projeto de fax" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Digite o nome do projeto de correio" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Digite o nome do projeto de correio" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" #~ msgstr "" -#~ "Não foi possível criar nomes de arquivos para arquivos de pré-visualização" +#~ "Gimp não suporta profundidade de cores de 16 bits.\n" +#~ "Você quer reduzir a profundidade para cores de 8 bits?" #, fuzzy #~ msgid "POP3 authentication" @@ -3011,9 +3415,6 @@ msgstr "Acesso ao recurso foi proibido" #~ msgid "Multipage saving aborted" #~ msgstr "Projeto de correio criado" -#~ msgid "Image" -#~ msgstr "Imagem" - #~ msgid "Viewer (png):" #~ msgstr "Visualizador (png):" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 3579543..3ddc0fb 100644 Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po index c2956a9..fc55403 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-10-08 22:00+3\n" "Last-Translator: Yujo Rodrigues \n" "Language-Team: Brazilian Portuguese \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "Sobre" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Sobre a tradução" @@ -71,6 +73,11 @@ msgstr "renomeia area de lote" msgid "fax project" msgstr "projeto de fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Digite o nome do projeto de fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "renomeia página de fax" @@ -84,6 +91,11 @@ msgstr "insere arquivo-ps em um fax" msgid "E-mail project" msgstr "projeto de e-mail" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Digite o nome do projeto de correio" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "insere arquivo no correio" msgid "multipage project" msgstr "Apagar projeto" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Apagar projeto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renomeia area predefinida" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "Pré-Visualização" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visualizador" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "seleciona o diretório temporário" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Escala da imagem" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Desembaraça imagem" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Embaça imagem" @@ -195,6 +216,35 @@ msgstr "Armazena definição da mídia" msgid "No devices available" msgstr "Nenhum dispositivo disponível" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "selecione arquivo de saída" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Excluir impressora" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Excluir impressora" + #. MENU_FILE msgid "File" msgstr "Arquivo" @@ -212,6 +262,7 @@ msgid "Window" msgstr "Janela" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Ajuda" @@ -227,6 +278,11 @@ msgstr "Filtros" msgid "Geometry" msgstr "Geometria" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Sobre XSane" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "Sair" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Salvar imagem" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "Escala" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Fechar" @@ -449,11 +507,11 @@ msgstr "Aviso ao Sobregravar" msgid "Skip existing filenames" msgstr "Pular arquivos existentes" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -470,7 +528,8 @@ msgid "Main window size fixed" msgstr "Tamanho da janela principal fixado" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Desabilita prévia gama do gimp" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -493,6 +552,11 @@ msgstr "Corrigir cores" msgid "Use GUI progress pipe" msgstr "Usar barra gráfica de progresso" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "procurando por dispositivos" @@ -509,6 +573,12 @@ msgstr "Opções do XSane" msgid "Type" msgstr "Tipo" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Todas as cores" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scaner e driver:" @@ -581,18 +651,11 @@ msgstr "Formatos de saída de 8 bits:" msgid "16 bit output formats:" msgstr "Formatos de saída de 16 bits:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp não suporta profundidade de cores de 16 bits.\n" -"Você quer reduzir a profundidade para cores de 8 bits?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Profundidade de cores de 16 bits não são suportadas para este formato de " "saída.\n" @@ -630,6 +693,11 @@ msgstr "versao:" msgid "package" msgstr "pacote" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Todas as cores" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "com suporte GIMP" @@ -767,9 +835,10 @@ msgid "Medium Name:" msgstr "Nome da mídia:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Tamanho %d x %d pontos, cores de %d bits, %d cores, %1.0f ppp x %1.0f ppp, %" "1.1f %s" @@ -823,6 +892,7 @@ msgid "Name:" msgstr "Nome:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Comando:" @@ -843,18 +913,22 @@ msgid "Color resolution (dpi):" msgstr "Resolução de cores (ppp):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Largura:" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Altura:" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Deslocamento esquerdo" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Deslocamento inferior" @@ -874,7 +948,17 @@ msgstr "Verde gama da Impressora:" msgid "Printer gamma blue:" msgstr "Azul gama da Impressora:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Excluir impressora" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Excluir impressora" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -999,7 +1083,7 @@ msgstr "Configura os padrões do programa para:" msgid "Viewer (Postscript):" msgstr "Visualizador (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1078,10 +1162,45 @@ msgstr "grupo" msgid "all" msgstr "tudo" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Excluir impressora" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nova mídia" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Salvar" @@ -1091,14 +1210,17 @@ msgid "Filetype" msgstr "Arquivo" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copiar" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "E-mail" @@ -1191,6 +1313,12 @@ msgstr "Mostrar lista de resolução" msgid "Rotate postscript" msgstr "Rotacionar postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Todas as cores" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Edita definição da mídia" @@ -1235,6 +1363,86 @@ msgstr "Dicas de digitalização" msgid "Problems?" msgstr "Problemas?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Incluir impressora" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Incluir impressora" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorização" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "gravar" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reduzir" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Embaçar" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inativo" @@ -1353,6 +1561,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Excluir impressora" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Corrigir cores" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Digitalizando" @@ -1411,6 +1633,11 @@ msgstr "Embançando imagem" msgid "OCR in progress" msgstr "OCR em progresso" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Corrigir cores" + #. DESC_SCAN_START msgid "Start scan " msgstr "Inicia digitalização " @@ -1471,8 +1698,9 @@ msgstr "" "acrescentada ao nome do arquivo" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Digite o nome do projeto de fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Procurar pelo diretório temporário" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1482,10 +1710,15 @@ msgstr "Digite o nome para a página de fax" msgid "Enter receiver phone number or address" msgstr "Digite número de telefone ou endereço do destinatário" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Procurar pelo diretório temporário" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Digite o nome do projeto de correio" +msgid "Enter e-mail project directory name" +msgstr "Procurar pelo diretório temporário" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1497,6 +1730,11 @@ msgstr "Digite o novo nome para a imagem de correio" msgid "Enter e-mail address" msgstr "Digite o endereço de e-mail" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Procurar pelo diretório temporário" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1508,8 +1746,13 @@ msgstr "Selecione o tipoe de arquivo para anexos de imagem" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Digite o nome do projeto de correio" +msgid "Enter multipage project directory name" +msgstr "Procurar pelo diretório temporário" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Procurar pelo diretório temporário" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1635,7 +1878,8 @@ msgstr "" " contraste = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Ajusta automaticamente gama, brilho e constraste " #. DESC_ENH_DEFAULT @@ -1718,18 +1962,22 @@ msgstr "" "Resolução com a qual imagens coloridas são impressas e salvadas em postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Largura da área imprimível" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Altura da área imprimível" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Deslocamento esquerdo do canto do papel até a área imprimível" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Deslocamento inferior do canto do papel até a área imprimível" @@ -1749,9 +1997,17 @@ msgstr "Valor gama adicional para o componente verde para fotocópia" msgid "Additional gamma value for blue component for photocopy" msgstr "Valor gama adicional para o componente azul para fotocópia" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1812,14 +2068,14 @@ msgstr "" "Se o contador do nome de arquivo é auto-incrementado, números usados são " "pulados" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1835,7 +2091,9 @@ msgstr "" "programas mas ele produz arquivos realmente imensos!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Se o scaner envia imagem com 16 bits de cores salva imagem com 8 bits de " "cores" @@ -1871,7 +2129,8 @@ msgstr "" "redimensionável" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Desabilita prévia gama quando XSane roda como plugin do gimp" #. DESC_PREVIEW_COLORMAP @@ -1974,6 +2233,16 @@ msgid "Do color correction after preview scan has finished" msgstr "" "Faz uma correção de cores depois da pré-visualização ter sido concluída" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "" +"Seleciona área de digitalização após a pré-visualização ter sido concluída" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Entra comando a ser executado no modo fax" @@ -2002,8 +2271,8 @@ msgstr "Entra comando para ser executado para visualizar um fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Envia fax com resolução vertical alta (196 lpp ao invés de 98 lpp)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2088,9 +2357,10 @@ msgstr "ler" msgid "write" msgstr "gravar" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "executar" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "usuário" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2259,6 +2529,36 @@ msgstr "Apaga área selecionada da lista de lote" msgid "Turns on automatic mode" msgstr "Ativa o modo automático" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Navegar por arquivos de imagem" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Navegar por arquivos de imagem" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Falha ao determinar o diretório home:" @@ -2311,11 +2611,6 @@ msgstr "Erro durante gravação:" msgid "Can't handle depth" msgstr "Não é possível usar profundidade" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP não pode usar profundidade de cores de %d" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Formato de gravação desconhecido" @@ -2549,10 +2844,68 @@ msgstr "Arquivo %s não é um arquivo postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Formato de saída de %d-bit não suportado: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Erro durante gravação:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Falha ao abrir" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Excluir impressora" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Navegar por arquivos de imagem" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Excluir impressora" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Não foi possível criar arquivo temporário" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "visualizador de imagem não está salvado" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Imagem" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Salva lista de lote" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Salvar preferências do dispositivo na saída" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferências" + #. TEXT_USAGE msgid "Usage:" msgstr "Uso:" @@ -2941,15 +3294,66 @@ msgstr "Sem memória" msgid "Access to resource has been denied" msgstr "Acesso ao recurso foi proibido" -#~ msgid "Could not create temporary file" -#~ msgstr "Não foi possível criar arquivo temporário" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Excluir impressora" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Não foi possível criar arquivos de pré-visualização temporários" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Navegar por arquivos de imagem" -#~ msgid "Could not create filenames for preview files" +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Navegar por arquivos de imagem" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP não pode usar profundidade de cores de %d" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Excluir impressora" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Excluir impressora" + +#~ msgid "Enter name of fax project" +#~ msgstr "Digite o nome do projeto de fax" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Digite o nome do projeto de correio" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Digite o nome do projeto de correio" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" #~ msgstr "" -#~ "Não foi possível criar nomes de arquivos para arquivos de pré-visualização" +#~ "Gimp não suporta profundidade de cores de 16 bits.\n" +#~ "Você quer reduzir a profundidade para cores de 8 bits?" #, fuzzy #~ msgid "POP3 authentication" @@ -3011,9 +3415,6 @@ msgstr "Acesso ao recurso foi proibido" #~ msgid "Multipage saving aborted" #~ msgstr "Projeto de correio criado" -#~ msgid "Image" -#~ msgstr "Imagem" - #~ msgid "Viewer (png):" #~ msgstr "Visualizador (png):" diff --git a/po/ro.gmo b/po/ro.gmo index c9cb1d0..2963a7c 100644 Binary files a/po/ro.gmo and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po index 8fd7476..f2599ba 100644 --- a/po/ro.po +++ b/po/ro.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-08-27 19:55+0300\n" "Last-Translator: \n" "Language-Team: \n" @@ -34,6 +35,7 @@ msgid "About" msgstr "Despre" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Despre traducere" @@ -73,6 +75,11 @@ msgstr "Redenumeşte zone predefinite pt. loturi" msgid "fax project" msgstr "Proiect fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Introduceţi numele proiectului fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "Redenumeşte pagina de fax" @@ -86,6 +93,11 @@ msgstr "Introduce fişier ps în fax" msgid "E-mail project" msgstr "Trimite proiect prin email" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Introduceţi numele proiectului mail" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -101,6 +113,11 @@ msgstr "Introduce fişier în email" msgid "multipage project" msgstr "Şterge proiect" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Şterge proiect" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Redenumeşte zone predefinite" @@ -146,6 +163,7 @@ msgid "Preview" msgstr "Previzualizare" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Vizualizare" @@ -178,14 +196,17 @@ msgid "select temporary directory" msgstr "Selectează directorul temporar" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Scalează imaginea" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Scoate petele din imagine" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Face imaginea neclară" @@ -197,6 +218,35 @@ msgstr "Stocare definiţie mediu" msgid "No devices available" msgstr "Nu există dispozitive disponibile" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Şterge imprimantă" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Şterge imprimantă" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "Selectează nume fişier ieşire" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Şterge imprimantă" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Şterge imprimantă" + #. MENU_FILE msgid "File" msgstr "Fişier" @@ -214,6 +264,7 @@ msgid "Window" msgstr "Fereastră" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Ajutor" @@ -229,6 +280,11 @@ msgstr "Filtre" msgid "Geometry" msgstr "Geometrie" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Despre Xsane" @@ -242,6 +298,7 @@ msgid "Quit" msgstr "Ieşire" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Salvează imaginea" @@ -258,6 +315,7 @@ msgid "Scale" msgstr "Scalează" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Închide" @@ -451,11 +509,11 @@ msgstr "Avertizare la suprascriere" msgid "Skip existing filenames" msgstr "Salt peste fişierele existente" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -472,7 +530,8 @@ msgid "Main window size fixed" msgstr "Mărime fixă pentru dimensiunea ferestrei principale" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Dezactivează previzualizare gamma în Gimp" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -495,6 +554,11 @@ msgstr "Corecţie automată culori" msgid "Use GUI progress pipe" msgstr "Foloseşte pipe GUI pt. evoluţie" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Caut dispozitivele" @@ -511,6 +575,12 @@ msgstr "Opţiuni XSane" msgid "Type" msgstr "Tip" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Toată gama de culori" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Scanner şi backend:" @@ -583,18 +653,11 @@ msgstr "Formate de ieşire pe 8 biţi:" msgid "16 bit output formats:" msgstr "Formate de ieşire pe 16 biţi:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp nu susţine adâncimi de 16 biţi/culoare.\n" -"Doriţi să reduceţi adâncimea la 8 biţi/culoare?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Acest format de ieşire nu susţine adâncimi de 16 biţi/culoare.\n" "Doriţi să reduceţi adâncimea la 8 biţi/culoare?" @@ -631,6 +694,11 @@ msgstr "Versiune: " msgid "package" msgstr "Pachet" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Toată gama de culori" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "Cu susţinere GIMP" @@ -770,9 +838,10 @@ msgid "Medium Name:" msgstr "Nume mediu:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Mărime %d x %d pixeli, %d biţi/culoare, %d culori, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -826,6 +895,7 @@ msgid "Name:" msgstr "Nume:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Comandă:" @@ -846,18 +916,22 @@ msgid "Color resolution (dpi):" msgstr "Rezoluţie color (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Lăţime" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Înălţime" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Decalaj stânga" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Decalaj jos" @@ -877,7 +951,17 @@ msgstr "Gamma - componentă verde - pt. imprimantă" msgid "Printer gamma blue:" msgstr "Gamma - componentă albastru - pt. imprimantă" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Şterge imprimantă" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Şterge imprimantă" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1002,7 +1086,7 @@ msgstr "Setează valori implicite în program pt.:" msgid "Viewer (Postscript):" msgstr "Vizualizator (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1081,10 +1165,45 @@ msgstr "grup" msgid "all" msgstr "toţi" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Şterge imprimantă" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Şterge imprimantă" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Şterge imprimantă" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "mediu nou" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Salvare" @@ -1094,14 +1213,17 @@ msgid "Filetype" msgstr "Fişier" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Copiere" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "Poşta electronică" @@ -1194,6 +1316,12 @@ msgstr "Arată lista rezoluţiilor" msgid "Rotate postscript" msgstr "Roteşte postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Toată gama de culori" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Editare definiţie mediu" @@ -1238,6 +1366,86 @@ msgstr "Ponturi pt. scanare" msgid "Problems?" msgstr "Probleme?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Adaugă imprimantă" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Adaugă imprimantă" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Adaugă imprimantă" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Adaugă imprimantă" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Autorizare" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "scriere" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reduce" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Difuzie" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inactiv" @@ -1356,6 +1564,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Şterge imprimantă" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Corecţie automată culori" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Scanare..." @@ -1414,6 +1636,11 @@ msgstr "Fac imaginea neclară" msgid "OCR in progress" msgstr "Recunoaştere optică de caractere în evoluţie" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Corecţie automată culori" + #. DESC_SCAN_START msgid "Start scan " msgstr "Porneşte scanarea" @@ -1474,8 +1701,9 @@ msgstr "" "numele fişierului" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Introduceţi numele proiectului fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Navighează la directorul temporar" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1485,10 +1713,15 @@ msgstr "Introduceţi numele paginii de fax" msgid "Enter receiver phone number or address" msgstr "Introduceţi numărul de telefon sau adresa destinatarului" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Navighează la directorul temporar" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Introduceţi numele proiectului mail" +msgid "Enter e-mail project directory name" +msgstr "Navighează la directorul temporar" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1500,6 +1733,11 @@ msgstr "Introduceţi numele imaginii pt. mail" msgid "Enter e-mail address" msgstr "Introduceţi adresa de email" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Navighează la directorul temporar" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1511,8 +1749,13 @@ msgstr "Selectaţi tipul fişierelor pentru ataşamentele imagine" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Introduceţi numele proiectului mail" +msgid "Enter multipage project directory name" +msgstr "Navighează la directorul temporar" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Navighează la directorul temporar" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1638,7 +1881,8 @@ msgstr "" " contrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Ajustare automată pt. gamma, strălucire, contrast " #. DESC_ENH_DEFAULT @@ -1721,18 +1965,22 @@ msgstr "" "Rezoluţia la care imaginile color sunt tipărite şi salvate în postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Lăţime zonă tipăribilă" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Înălţime zonă tipăribilă" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Decalaj stânga de la marginea hârtiei la zona tipăribilă" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Decalaj de jos de la marginea hârtiei la zona tipăribilă" @@ -1752,9 +2000,17 @@ msgstr "Valoare gamma adiţională componentă verde pt. fotocopie" msgid "Additional gamma value for blue component for photocopy" msgstr "Valoare gamma adiţională componentă albastru pt. fotocopie" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1815,14 +2071,14 @@ msgstr "" "Numerele folosite deja sunt sărite la incrementarea automată a contorului " "numelui de fişier" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1838,7 +2094,9 @@ msgstr "" "produce fişiere foarte mari!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Salvează o imagine cu 8 biţi/culoare dacă scannerul trimite imagini cu 16 " "biţi/culoare" @@ -1874,7 +2132,8 @@ msgstr "" "redimensionabilă cu defilare" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" "Dezactivează previzualizarea gamma când XSane rulează ca extensie la Gimp" @@ -1978,6 +2237,15 @@ msgstr "Selectează zona de scanare după terminarea scanării pt. previzualizar msgid "Do color correction after preview scan has finished" msgstr "Corectează culorile după terminarea scanării pt. previzualizare" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Selectează zona de scanare după terminarea scanării pt. previzualizare" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Introduceţi comanda ce va fi executată în modul fax" @@ -2007,8 +2275,8 @@ msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" "Trimite un fax cu rezoluţie verticală ridicată (196 lpi în loc de 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2094,9 +2362,10 @@ msgstr "citire" msgid "write" msgstr "scriere" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "execuţie" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "utilizator" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2265,6 +2534,36 @@ msgstr "Şterge zona selectată din lista cu loturi" msgid "Turns on automatic mode" msgstr "Activează modul automat" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Navighează la numele fişierului de imagine" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Nu am putut determina directorul acasă" @@ -2317,11 +2616,6 @@ msgstr "Eroare la salvare:" msgid "Can't handle depth" msgstr "Nu pot manipula adâncimea" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "Gimp nu poate manipula adâncimea de %d biţi/culoare" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Format de salvare necunoscut" @@ -2555,10 +2849,68 @@ msgstr "Fişierul %s nu este un fişier postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Formatul de ieşire: %s pe %d biţi nu este susţinut" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Eroare la salvare:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Nu am putut deschide" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Şterge imprimantă" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Navighează la numele fişierului de imagine" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Şterge imprimantă" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Nu am putut crea fişierul temporar" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "imaginea vizualizată nu este salvată" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Imagine" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Salvează lista loturi" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Salvează preferinţele dispozitivului la ieşire" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Preferinţe" + #. TEXT_USAGE msgid "Usage:" msgstr "Utilizare:" @@ -2944,14 +3296,66 @@ msgstr "Nu am memorie suficientă." msgid "Access to resource has been denied" msgstr "Accesul la resursă a fost respins" -#~ msgid "Could not create temporary file" -#~ msgstr "Nu am putut crea fişierul temporar" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Şterge imprimantă" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Şterge imprimantă" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Nu am putut crea fişierele temporare de previzualizare" +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Şterge imprimantă" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Nu am putut crea nume de fişiere pt. previzualizare" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Şterge imprimantă" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Şterge imprimantă" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Şterge imprimantă" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Navighează la numele fişierului de imagine" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Navighează la numele fişierului de imagine" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "Gimp nu poate manipula adâncimea de %d biţi/culoare" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Şterge imprimantă" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Şterge imprimantă" + +#~ msgid "Enter name of fax project" +#~ msgstr "Introduceţi numele proiectului fax" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Introduceţi numele proiectului mail" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Introduceţi numele proiectului mail" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp nu susţine adâncimi de 16 biţi/culoare.\n" +#~ "Doriţi să reduceţi adâncimea la 8 biţi/culoare?" #, fuzzy #~ msgid "POP3 authentication" @@ -3012,9 +3416,6 @@ msgstr "Accesul la resursă a fost respins" #~ msgid "Multipage saving aborted" #~ msgstr "Proiectul mail a fost creat" -#~ msgid "Image" -#~ msgstr "Imagine" - #~ msgid "Viewer (png):" #~ msgstr "Vizualizator (png):" diff --git a/po/ru.gmo b/po/ru.gmo index 8238e46..b72f280 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index a4486c8..266ef52 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.99\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-31 15:46+0300\n" "Last-Translator: Vitaly Lipatov \n" "Language-Team: Russian \n" @@ -36,6 +37,7 @@ msgid "About" msgstr "О программе" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "О локализации" @@ -75,6 +77,11 @@ msgstr "переименовать область" msgid "fax project" msgstr "подготовка факса" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Название факсимильного послания" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "переименование факсимильной страницы" @@ -87,6 +94,11 @@ msgstr "добавление PS-файла в факсимильное посл msgid "E-mail project" msgstr "Электронное письмо" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Название почтового сообщения" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "переименовать изображение в письме" @@ -99,6 +111,11 @@ msgstr "добавить файл в письмо" msgid "multipage project" msgstr "многостраничный проект" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "многостраничный проект" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "переименование области" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "Предварительное сканирование" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Просмотр" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "изменить каталог для временных файлов" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Масштабирование изображения" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Убрать растр с изображения" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Размыть изображение" @@ -195,6 +216,35 @@ msgstr "Записать определение носителя" msgid "No devices available" msgstr "Доступные устройства отсутствуют" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Удалить описание принтера" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Удалить описание принтера" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "выберите название выходного файла" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Удалить описание принтера" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Удалить описание принтера" + #. MENU_FILE msgid "File" msgstr "Файл" @@ -212,6 +262,7 @@ msgid "Window" msgstr "Окна" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Справка" @@ -227,6 +278,11 @@ msgstr "Фильтры" msgid "Geometry" msgstr "Изображение" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "О программе XSane" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "Выйти" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Сохранить изображение" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "Изменить размер" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Закрыть" @@ -447,11 +505,11 @@ msgstr "Предупреждать при перезаписи" msgid "Skip existing filenames" msgstr "Пропускать существующие" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Сохранять Postscript (level 3) сжатым с помощью zlib" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Сохранять PDF сжатым с помощью zlib" @@ -468,7 +526,8 @@ msgid "Main window size fixed" msgstr "Не позволять менять размер главного окна" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Отключить гамма-коррекцию в предварительном сканировании для GIMP" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -491,6 +550,11 @@ msgstr "Автокоррекция цвета" msgid "Use GUI progress pipe" msgstr "Использовать канал GUI" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Поиск устройств" @@ -507,6 +571,12 @@ msgstr "Общие параметры" msgid "Type" msgstr "Формат" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Полная палитра цветов" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Устройство и драйвер:" @@ -579,18 +649,11 @@ msgstr "8-битные выходные форматы:" msgid "16 bit output formats:" msgstr "16-битные выходные форматы:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMP не поддерживает глубину цвета в 16 бит.\n" -"Уменьшить глубину до 8 бит на цвет?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Данный формат файла не поддерживает глубину цвета в 16 бит.\n" "Уменьшить глубину до 8 бит на цвет?" @@ -627,6 +690,11 @@ msgstr "версии:" msgid "package" msgstr "пакет" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Полная палитра цветов" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "с поддержкой GIMP" @@ -759,9 +827,10 @@ msgid "Medium Name:" msgstr "Название носителя: " #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Размер %d на %d точек, %d бит/цвет, %d цветов, %1.0f dpi x %1.0f dpi, %1.1f %" "s" @@ -815,6 +884,7 @@ msgid "Name:" msgstr "Название:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Команда:" @@ -835,18 +905,22 @@ msgid "Color resolution (dpi):" msgstr "Разрешение для цветного изображения (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Ширина" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Высота" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Отступ слева" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Отступ снизу" @@ -866,7 +940,17 @@ msgstr "Значение зелёного компонента гаммы для msgid "Printer gamma blue:" msgstr "Значение синего компонента гаммы для принтера:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Удалить описание принтера" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Удалить описание принтера" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Создать Postscript (level 3) для печати, сжатый zlib" @@ -990,7 +1074,7 @@ msgstr "Установить умолчания для:" msgid "Viewer (Postscript):" msgstr "Программа просмотра PostScript-файлов:" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Создать Postscript (level 3), сжатый zlip, для отправки по факсу" @@ -1066,10 +1150,45 @@ msgstr "группа" msgid "all" msgstr "прочие" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Удалить описание принтера" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Удалить описание принтера" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Удалить описание принтера" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Выбрать название файла изображения" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "новый носитель" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Файл" @@ -1078,14 +1197,17 @@ msgid "Filetype" msgstr "Тип файла" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Копирование" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Факс" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "Эл. почта" @@ -1177,6 +1299,12 @@ msgstr "Показать список разрешений сканирован msgid "Rotate postscript" msgstr "Повернуть PostScript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Полная палитра цветов" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Изменять определения носителей" @@ -1221,6 +1349,86 @@ msgstr "Подсказки по сканированию" msgid "Problems?" msgstr "Проблемы?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Добавить описание принтера" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Добавить описание принтера" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Добавить описание принтера" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Добавить описание принтера" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "авторизация" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "запись" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Уменьшить" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Размыть" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "не активно" @@ -1337,6 +1545,20 @@ msgstr "Учётная запись ASMTP" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Удалить описание принтера" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Автокоррекция цвета" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Сканирование" @@ -1394,6 +1616,11 @@ msgstr "Размытие изображения" msgid "OCR in progress" msgstr "Распознавание текста" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Автокоррекция цвета" + #. DESC_SCAN_START msgid "Start scan " msgstr "Начать сканирование " @@ -1455,8 +1682,9 @@ msgstr "" "названию файла" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Название факсимильного послания" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Указать временный каталог" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1466,9 +1694,15 @@ msgstr "Название факсимильной страницы" msgid "Enter receiver phone number or address" msgstr "Номер телефона или адрес для отправки" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Указать временный каталог" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Название почтового сообщения" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Указать временный каталог" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1478,6 +1712,11 @@ msgstr "Название файла для отправляемого изобр msgid "Enter e-mail address" msgstr "Адрес электронной почты" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Указать временный каталог" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Тема письма" @@ -1487,8 +1726,14 @@ msgid "Select filetype for image attachments" msgstr "Выберите формат файла для вложения изображения" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Название многостраничного почтового сообщения" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Указать временный каталог" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Указать временный каталог" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1613,7 +1858,8 @@ msgstr "" "контрастность = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Автоподбор значений гаммы, яркости и контрастности " #. DESC_ENH_DEFAULT @@ -1697,18 +1943,22 @@ msgstr "" "PostScript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Ширина печатаемой области" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Высота печатаемой области" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Отступ слева от угла бумаги до печатаемой области" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Отступ снизу от угла бумаги до печатаемой области" @@ -1728,9 +1978,18 @@ msgstr "Дополнительное значение зелёного комп msgid "Additional gamma value for blue component for photocopy" msgstr "Дополнительное значение синего компонента гаммы при копировании" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Создаём сжатое с помощью zlib Postscript-изображение для принтера " @@ -1790,17 +2049,19 @@ msgstr "" "При использовании счётчика в названии файла уже использованные номера " "пропускаются" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "сжимает изображение postscript по алгоритму zlib (flatdecode). Если вы " "захотите распечатать такой файл, вам потребуется принтер, понимающий " "postscript level 3" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "сжимает изображение PDF по алгоритму zlib (flatdecode)." #. DESC_SAVE_PNM16_AS_ASCII @@ -1816,7 +2077,9 @@ msgstr "" "программами, но занимает значительно больше места на диске!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "При сканировании с глубиной цвета 16 бит уменьшать цветность до 8 бит" #. DESC_PSFILE_WIDTH @@ -1844,7 +2107,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Размеры главного окна фиксированы или изменяемы" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" "Отключать гамма-коррекцию для предварительного сканирования привызове XSane " "как модуля GIMP" @@ -1950,6 +2214,16 @@ msgid "Do color correction after preview scan has finished" msgstr "" "Выполнять цветовую коррекцию после завершения предварительного сканирования" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "" +"Выделять область сканирования после завершения предварительного сканирования" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Команда для выполнения в режиме факса" @@ -1979,8 +2253,9 @@ msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" "Отсылать факс с высоким вертикальным разрешением (196 lpi вместо 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Создаёт сжатое zlib изображение postscript для факса (flatdecode)" #. DESC_SMTP_SERVER @@ -2063,9 +2338,10 @@ msgstr "чтение" msgid "write" msgstr "запись" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "выполнение" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "владелец" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2234,6 +2510,36 @@ msgstr "Удалить выделение из пакета" msgid "Turns on automatic mode" msgstr "Включает автоматический режим" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Выбрать название файла изображения" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Выбрать название файла изображения" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Выбрать название файла изображения" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Выбрать название файла изображения" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Выбрать название файла изображения" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Выбрать название файла изображения" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Невозможно определить домашний каталог:" @@ -2286,11 +2592,6 @@ msgstr "Ошибка во время сохранения:" msgid "Can't handle depth" msgstr "Невозможно определить глубину цвета" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP не поддерживает глубину цвета в %d бит на цвет" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Неизвестный формат файла для записи" @@ -2523,10 +2824,68 @@ msgstr "Файл %s не является файлом PostScript" msgid "Unsupported %d-bit output format: %s" msgstr "Неподдерживаемая глубина цвета в %d для формата: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Ошибка во время сохранения:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Невозможно открыть" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Удалить описание принтера" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Выбрать название файла изображения" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Удалить описание принтера" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Невозможно создать временный файл" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Просматриваемое изображение не сохранено" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Страниц:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Сохранить пакет" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Сохранять параметры устройства при выходе" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Параметры" + #. TEXT_USAGE msgid "Usage:" msgstr "Использование:" @@ -2901,12 +3260,61 @@ msgstr "Не хватает памяти" msgid "Access to resource has been denied" msgstr "Доступ к ресурсу запрещён" -#~ msgid "Could not create temporary file" -#~ msgstr "Невозможно создать временный файл" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Выбрать название файла изображения" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Выбрать название файла изображения" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP не поддерживает глубину цвета в %d бит на цвет" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Удалить описание принтера" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Удалить описание принтера" + +#~ msgid "Enter name of fax project" +#~ msgstr "Название факсимильного послания" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Название почтового сообщения" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Невозможно создать временный файл для предварительного сканирования" +#~ msgid "Enter name of multipage project" +#~ msgstr "Название многостраничного почтового сообщения" -#~ msgid "Could not create filenames for preview files" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" #~ msgstr "" -#~ "Невозможно сгенерировать название файла для предварительного сканирования" +#~ "GIMP не поддерживает глубину цвета в 16 бит.\n" +#~ "Уменьшить глубину до 8 бит на цвет?" diff --git a/po/sk.gmo b/po/sk.gmo index 74a4d0d..23600b1 100644 Binary files a/po/sk.gmo and b/po/sk.gmo differ diff --git a/po/sk.po b/po/sk.po index e171c31..240f768 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: xsane\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-11-01 18:58+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -36,6 +37,7 @@ msgid "About" msgstr "O programe" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "O preklade" @@ -75,6 +77,11 @@ msgstr "premenovať dávkovú oblasť" msgid "fax project" msgstr "faxový projekt" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Vložte názov faxového projektu" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "premenovať faxovú stránku" @@ -88,6 +95,11 @@ msgstr "vložiť ps-súbor do faxu" msgid "E-mail project" msgstr "poštový projekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Vložte názov poštového projektu" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -103,6 +115,11 @@ msgstr "vložiť obrázok do pošty" msgid "multipage project" msgstr "Zmazať projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Zmazať projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "premenovať predvolaná oblasť" @@ -148,6 +165,7 @@ msgid "Preview" msgstr "Náhľad" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Prehliadač" @@ -180,14 +198,17 @@ msgid "select temporary directory" msgstr "vybrať dočasný priečinok" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Zmena veľkosti obrázku" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Vyčistiť obrázok" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Rozmazať obrázok" @@ -199,6 +220,35 @@ msgstr "Uložiť definíciu média" msgid "No devices available" msgstr "Nie je dostupné žiadne zariadenie" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Zmazať tlačiareň" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Zmazať tlačiareň" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "zvoľte názov pre výstupný súbor" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Zmazať tlačiareň" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Zmazať tlačiareň" + #. MENU_FILE msgid "File" msgstr "Súbor" @@ -216,6 +266,7 @@ msgid "Window" msgstr "Okno" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Pomocník" @@ -231,6 +282,11 @@ msgstr "Filtre" msgid "Geometry" msgstr "Geometria" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "O XSane" @@ -244,6 +300,7 @@ msgid "Quit" msgstr "Koniec" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Uložiť obrázok" @@ -260,6 +317,7 @@ msgid "Scale" msgstr "Zmena veľkosti" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Zavrieť" @@ -453,11 +511,11 @@ msgstr "Varovanie o prepísaní" msgid "Skip existing filenames" msgstr "Preskočiť existujúce názvy súborov" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -474,7 +532,8 @@ msgid "Main window size fixed" msgstr "Pevná veľkosť hlavného okna" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Zakázať pre gimp gama náhľad" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -497,6 +556,11 @@ msgstr "Automatická korekcia farieb" msgid "Use GUI progress pipe" msgstr "Použiť GUI rúru postupu" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "hľadám zariadenia" @@ -513,6 +577,12 @@ msgstr "Nastavenia XSane" msgid "Type" msgstr "Typ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Celofarebný rozsah" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skener a ovládač:" @@ -585,18 +655,11 @@ msgstr "8 bitové výstupné formáty:" msgid "16 bit output formats:" msgstr "16 bitové výstupné formáty:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"GIMP nepodporuje hĺbku 16 bitov/farba.\n" -"Prajete si redukciu hĺbky na 8 bitov/farba?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "16 bitov na farbu nie je podporovaných v tomto výstupnom formát.\n" "Prajete si redukciu hĺbky na 8 bitov/farbu?" @@ -633,6 +696,11 @@ msgstr "verzia:" msgid "package" msgstr "balík" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Celofarebný rozsah" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "s podporou GIMPu" @@ -771,9 +839,10 @@ msgid "Medium Name:" msgstr "Názov média:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Veľkosť v bodoch: %d × %d, bitov/farbu: %d, farieb: %d, %1.0f dpi × %1.0f " "dpi, %1.1f %s" @@ -827,6 +896,7 @@ msgid "Name:" msgstr "Názov:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Príkaz:" @@ -847,18 +917,22 @@ msgid "Color resolution (dpi):" msgstr "Farebné rozlíšenie (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Šírka" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Výška" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Posun zľava" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Posun zdola" @@ -878,7 +952,17 @@ msgstr "Zelená gama tlačiarne:" msgid "Printer gamma blue:" msgstr "Modrá gama tlačiarne:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Zmazať tlačiareň" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Zmazať tlačiareň" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1003,7 +1087,7 @@ msgstr "Štandardné nastavenia programu pre:" msgid "Viewer (Postscript):" msgstr "Prehliadač (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1082,10 +1166,45 @@ msgstr "skupina" msgid "all" msgstr "všetko" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Zmazať tlačiareň" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Zmazať tlačiareň" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Zmazať tlačiareň" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "nové médium" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Ukladanie" @@ -1095,14 +1214,17 @@ msgid "Filetype" msgstr "Súbor" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopírovanie" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "Email" @@ -1195,6 +1317,12 @@ msgstr "Zobraziť zoznam rozlíšení" msgid "Rotate postscript" msgstr "Otočenie postscriptu" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Celofarebný rozsah" + # MENU_ITEM_EDIT_MEDIUM_DEF #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" @@ -1240,6 +1368,86 @@ msgstr "Tipy pre skenovanie" msgid "Problems?" msgstr "Problémy?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Pridaj tlačiareň" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Pridaj tlačiareň" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Pridaj tlačiareň" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Pridaj tlačiareň" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorizácia" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "zápis" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Redukovať" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Rozostriť" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "neaktívny" @@ -1359,6 +1567,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Zmazať tlačiareň" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Automatická korekcia farieb" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skenovanie" @@ -1417,6 +1639,11 @@ msgstr "Rozostrovanie obrázka" msgid "OCR in progress" msgstr "Vykonáva sa OCR" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Automatická korekcia farieb" + #. DESC_SCAN_START msgid "Start scan " msgstr "Začať skenovanie " @@ -1476,8 +1703,9 @@ msgstr "" "Typ formátu obrázku; vhodná koncovka je automaticky pridaná k názvu súboru." #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Vložte názov faxového projektu" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Vyhľadať pomocný priečinok" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1487,10 +1715,15 @@ msgstr "Vložte nový názov pre faxovú stránku" msgid "Enter receiver phone number or address" msgstr "Vložte telefónne číslo alebo adresu príjemcu" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Vyhľadať pomocný priečinok" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Vložte názov poštového projektu" +msgid "Enter e-mail project directory name" +msgstr "Vyhľadať pomocný priečinok" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1502,6 +1735,11 @@ msgstr "Vložte nový názov pre poštový obrázok" msgid "Enter e-mail address" msgstr "Vložte emailovú adresu" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Vyhľadať pomocný priečinok" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1513,8 +1751,13 @@ msgstr "Vyberte si typ súboru pre obrázkové prílohy k e-mailom" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Vložte názov poštového projektu" +msgid "Enter multipage project directory name" +msgstr "Vyhľadať pomocný priečinok" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Vyhľadať pomocný priečinok" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1645,7 +1888,8 @@ msgstr "" # DESC_ENH_AUTO #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Automatické nastavenie gamy, jasu a kontrastu " # DESC_ENH_DEFAULT @@ -1731,18 +1975,22 @@ msgstr "" "Rozlíšenie, v ktorom budú farebné obrázky tlačené a uložené do postscriptu" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Šírka tlačiteľnej oblasti" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Výška tlačiteľnej oblasti" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Posun od ľavého okraja papiera po tlačiteľnú oblasť" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Posun od dolného okraja papiera po tlačiteľnú oblasť" @@ -1762,9 +2010,17 @@ msgstr "Dodatočná gama hodnota pre zelený komponent fotokópie" msgid "Additional gamma value for blue component for photocopy" msgstr "Dodatočná gama hodnota pre modrý komponent fotokópie" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1824,14 +2080,14 @@ msgid "" msgstr "" "Ak počítadlo súborov automaticky zväčšovaný, použité čísla sú preskočené" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1847,7 +2103,9 @@ msgstr "" "počtom programov, ale vytvára skutočne veľké súbory!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Ak skener pošle farebný 16 bitový obrázok, zapísať obrázok v bitoch/farbu" @@ -1880,7 +2138,8 @@ msgstr "" "veľkosťou" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Zakázať gama náhľad, keď je XSane spustené ako GIMP modul" #. DESC_PREVIEW_COLORMAP @@ -1975,6 +2234,15 @@ msgstr "Nastavenie skenovanej oblasti po dokončení náhľadu" msgid "Do color correction after preview scan has finished" msgstr "Vykonanie farebnej korekcie po dokončení náhľadu" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Nastavenie skenovanej oblasti po dokončení náhľadu" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Nastavenie príkazu spúšťaného vo faxovom režime" @@ -2003,8 +2271,8 @@ msgstr "Nastavenie príkazu k zobrazeniu faxu" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Poslať fax s vysokým zvislým rozlíšením (196 lpi namiesto 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2088,9 +2356,10 @@ msgstr "čítanie" msgid "write" msgstr "zápis" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "spustenie" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "používateľ" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2263,6 +2532,36 @@ msgstr "Zmazať zvolenú oblasť z dávkového zoznamu" msgid "Turns on automatic mode" msgstr "Zapne automatický režim" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Vyhľadať názov súboru" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Vyhľadať názov súboru" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Nepodarilo sa určiť domovský priečinok:" @@ -2315,11 +2614,6 @@ msgstr "Chyba počas ukladania:" msgid "Can't handle depth" msgstr "Nie je možné spracovať hĺbku" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP nemôže spracovať hĺbku %d bitov/farbu" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Neznámy formát súboru pre ukladanie" @@ -2553,10 +2847,68 @@ msgstr "Súbor %s nie je postscriptový súbor" msgid "Unsupported %d-bit output format: %s" msgstr "Nepodporovaný %d-bitový výstupný formát: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Chyba počas ukladania:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Zlyhalo otváranie" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Zmazať tlačiareň" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Vyhľadať názov súboru" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Zmazať tlačiareň" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Nie je možné vytvoriť dočasný súbor" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "obrázok z prehliadača nie je uložený" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Obrázok" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Uložiť dávkový zoznam" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Uložiť nastavenie zariadenia pri ukončení" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Nastavenia" + #. TEXT_USAGE msgid "Usage:" msgstr "Použitie:" @@ -2943,14 +3295,66 @@ msgstr "Mimo pamäte" msgid "Access to resource has been denied" msgstr "Prístup k zdroju bol odmietnutý" -#~ msgid "Could not create temporary file" -#~ msgstr "Nie je možné vytvoriť dočasný súbor" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Zmazať tlačiareň" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Zmazať tlačiareň" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Nie je možné vytvoriť dočasné súbory pre náhľad" +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Zmazať tlačiareň" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Nie je možné vytvoriť názvy súborov pre náhľad" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Zmazať tlačiareň" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Zmazať tlačiareň" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Zmazať tlačiareň" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Vyhľadať názov súboru" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Vyhľadať názov súboru" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP nemôže spracovať hĺbku %d bitov/farbu" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Zmazať tlačiareň" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Zmazať tlačiareň" + +#~ msgid "Enter name of fax project" +#~ msgstr "Vložte názov faxového projektu" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Vložte názov poštového projektu" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Vložte názov poštového projektu" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "GIMP nepodporuje hĺbku 16 bitov/farba.\n" +#~ "Prajete si redukciu hĺbky na 8 bitov/farba?" #, fuzzy #~ msgid "POP3 authentication" @@ -3012,9 +3416,6 @@ msgstr "Prístup k zdroju bol odmietnutý" #~ msgid "Multipage saving aborted" #~ msgstr "E-mailový projekt vytvorený" -#~ msgid "Image" -#~ msgstr "Obrázok" - #~ msgid "Viewer (png):" #~ msgstr "Prehliadač (png):" diff --git a/po/sl.gmo b/po/sl.gmo index f676a52..e668583 100644 Binary files a/po/sl.gmo and b/po/sl.gmo differ diff --git a/po/sl.po b/po/sl.po index f4c3629..2875b8c 100644 --- a/po/sl.po +++ b/po/sl.po @@ -8,7 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: xsane\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2006-01-02 17:48+0100\n" "Last-Translator: Dušan Vejnovič \n" "Language-Team: slovenščina \n" @@ -36,6 +37,7 @@ msgid "About" msgstr "O programu" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "O prevodu" @@ -75,6 +77,11 @@ msgstr "preimenuj paketno področje" msgid "fax project" msgstr "faks projekt" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Vnesite ime projekta za faks" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "preimenuj stran s faksom" @@ -87,6 +94,11 @@ msgstr "vstavi ps-datoteko v faks" msgid "E-mail project" msgstr "E-poštni projekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Vnesite ime projekta za e-pošto" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "preimenuj e-poštno sliko" @@ -99,6 +111,11 @@ msgstr "vstavi datoteko v e-pošto" msgid "multipage project" msgstr "večstranski projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "večstranski projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "preimenuj prednastavljeno območje" @@ -144,6 +161,7 @@ msgid "Preview" msgstr "Predogled" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Pregledovalnik" @@ -176,14 +194,17 @@ msgid "select temporary directory" msgstr "izberi začasni imenik" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Skaliraj sliko" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Odstrani packe iz slike" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Zamegli sliko" @@ -195,6 +216,35 @@ msgstr "Shrani izbiro medija" msgid "No devices available" msgstr "Na voljo ni nobene naprave" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Odstrani tiskalnik" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Odstrani tiskalnik" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "izberi ime izhodne datoteke" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Odstrani tiskalnik" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Odstrani tiskalnik" + #. MENU_FILE msgid "File" msgstr "Datoteka" @@ -212,6 +262,7 @@ msgid "Window" msgstr "Okno" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Pomoč" @@ -227,6 +278,11 @@ msgstr "Filtri" msgid "Geometry" msgstr "Goemetrija" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "O programu XSane" @@ -240,6 +296,7 @@ msgid "Quit" msgstr "Izhod" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Shrani slika" @@ -256,6 +313,7 @@ msgid "Scale" msgstr "Skaliraj" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Zapri" @@ -447,11 +505,11 @@ msgstr "Prepiši opozorilo" msgid "Skip existing filenames" msgstr "Preskoči obstoječa imena datotek" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Shrani postscript stisnjen z zlib (ps stopnja 3)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "Shrani PDF stisnjen z zlib" @@ -468,7 +526,8 @@ msgid "Main window size fixed" msgstr "Fiksiraj velikost glavnega okna" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Onemogoči faktor gama pri predogledu v gimpu" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -491,6 +550,11 @@ msgstr "Avtomatska korekcija barv" msgid "Use GUI progress pipe" msgstr "Uporabi GUI cevovod napredka" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "iskanje naprav" @@ -507,6 +571,12 @@ msgstr "Izbire XSane" msgid "Type" msgstr "Tip" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Celotno barvno območje" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skener in program ozadju:" @@ -579,18 +649,11 @@ msgstr "8-bitni izhodni formati:" msgid "16 bit output formats:" msgstr "16-bitni izhodni formati:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp ne podpira 16 bitno barvno globino.
    Ali želite zmanjšati barvno " -"globino na 8 bitov?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "16 bitna barvna globina ni podprta za ta izhodni format.
    Ali želite " "zmanjšati barvno globino na 8 bitov?" @@ -627,6 +690,11 @@ msgstr "različica:" msgid "package" msgstr "paket" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Celotno barvno območje" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "s podporo za GIMP" @@ -757,9 +825,10 @@ msgid "Medium Name:" msgstr "Ime mdeija:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Velikost %d x %d pikslov, %d bitov/barvo, %d barv, %1.0f dpi x %1.0f dpi, %" "1.1f %s" @@ -813,6 +882,7 @@ msgid "Name:" msgstr "Ime:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Ukaz:" @@ -833,18 +903,22 @@ msgid "Color resolution (dpi):" msgstr "Barvna ločljivost (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Širina" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Višina" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Levi odmik" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Odmik spodaj" @@ -864,7 +938,17 @@ msgstr "Gama zelena za tiskalnik:" msgid "Printer gamma blue:" msgstr "Gama modra za tiskalnik:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Odstrani tiskalnik" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Odstrani tiskalnik" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "Ustvari stisnjeno postscriptno sliko z zlib (ps stopnja 3) za tiskanje" @@ -988,7 +1072,7 @@ msgstr "Nastavi privzete nastavitve programa za:" msgid "Viewer (Postscript):" msgstr "Ogledovalnik (postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Ustvari stisnjeno postscriptno sliko z zlib (ps stopnja 3) za faks" @@ -1064,10 +1148,45 @@ msgstr "skupina" msgid "all" msgstr "vsi" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Odstrani tiskalnik" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Odstrani tiskalnik" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Odstrani tiskalnik" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "novi medij" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Shrani" @@ -1076,14 +1195,17 @@ msgid "Filetype" msgstr "Tip datoteke" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopiraj" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faks" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-pošta:" @@ -1175,6 +1297,12 @@ msgstr "Prikaži seznam ločljivosti" msgid "Rotate postscript" msgstr "Rotiraj postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Celotno barvno območje" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Uredi izbire za medij" @@ -1219,6 +1347,86 @@ msgstr "Namigi za skeniranje" msgid "Problems?" msgstr "Težave?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Dodaj tiskalnik" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Dodaj tiskalnik" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Dodaj tiskalnik" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Dodaj tiskalnik" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "avtorizacija" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "zapiši" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Zmanjšaj" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Zamegli" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "nedejaven" @@ -1335,6 +1543,20 @@ msgstr "ASMTP prijava" msgid "ASMTP CRAM-MD5" msgstr "ASMTP CRAM-MD5" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Odstrani tiskalnik" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Avtomatska korekcija barv" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skeniram" @@ -1392,6 +1614,11 @@ msgstr "Zamegli sliko" msgid "OCR in progress" msgstr "OCR napredek" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Avtomatska korekcija barv" + #. DESC_SCAN_START msgid "Start scan " msgstr "Začni skeniranje " @@ -1451,8 +1678,9 @@ msgstr "" "končnico" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Vnesite ime projekta za faks" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Prebrskaj začasni imenik" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1462,9 +1690,15 @@ msgstr "Vnesite novo ime za stran s faksom" msgid "Enter receiver phone number or address" msgstr "Vnesite telefonsko številko ali naslov prejemnika" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Prebrskaj začasni imenik" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "Vnesite ime projekta za e-pošto" +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Prebrskaj začasni imenik" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1474,6 +1708,11 @@ msgstr "Vnesite novo ime za sliko e-pošte" msgid "Enter e-mail address" msgstr "Vnesite naslov e-pošte" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Prebrskaj začasni imenik" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "Vnesite zadevo e-pošte" @@ -1483,8 +1722,14 @@ msgid "Select filetype for image attachments" msgstr "Izberite tip datoteke za priponko slike" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Vnesite ime večstranskega projekta" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Prebrskaj začasni imenik" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Prebrskaj začasni imenik" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1609,7 +1854,8 @@ msgstr "" " kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Samonastavi vrednost gama, svetlost in kontrasta " #. DESC_ENH_DEFAULT @@ -1688,18 +1934,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Ločljivost, v kateri natisnemo in shranimo barvne slike v postskriptu" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Širina območja za tiskanje" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Višina območja za tiskanje" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Razdalja od levega roba papirja do območja za tiskanje" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Razdalja od spodnjega roba papirja do območja za tiskanje" @@ -1719,9 +1969,18 @@ msgstr "Dodatna vrednost gama za zeleno komponento pri fotokopiranju" msgid "Additional gamma value for blue component for photocopy" msgstr "Dodatna vrednost gama za modro komponento pri fotokopiranju" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Ustvari stisnjeno postscriptno sliko z zlib za tiskalnik.\n" @@ -1781,16 +2040,18 @@ msgstr "" "Če je števec imena datoteke samodejno povečan, se uporabljene številke " "preskočijo" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "stiskanje postscriptne slike z zlib algoritmom. Če želite tiskati takšno " "datoteko, mora vaš tiskalnik razumeti postscript stopnjo 3" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "stiskanje PDFslike z zlib algoritmom." #. DESC_SAVE_PNM16_AS_ASCII @@ -1806,7 +2067,9 @@ msgstr "" "zelo velika datoteka!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "Če skener pošilja sliko z 16 bitov/barvo, shrani sliko z 8 bitov/barvo" #. DESC_PSFILE_WIDTH @@ -1836,7 +2099,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Uporabi glavno okno s stalno ali spremenljivo velikostjo." #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Onemogoči predogled gama, ko X Sane teče kot vstavek za gimp" #. DESC_PREVIEW_COLORMAP @@ -1931,6 +2195,15 @@ msgstr "Izberi področje skeniranja, potem ko je predogled skeniranja zaključen msgid "Do color correction after preview scan has finished" msgstr "Izvedi korekcijo barv, potem ko je predogled skeniranja zaključen" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Izberi področje skeniranja, potem ko je predogled skeniranja zaključen" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Podajte ukaz, ki naj bo izveden v faks načinu" @@ -1959,8 +2232,9 @@ msgstr "Podajte ukaz, ki naj bo izveden za prikaz faksa" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Pošlji faks z visoko vertikalno ločljivostjo (196 lpi namesto 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Ustvari stisnjeno postscriptno sliko z zlib za faks" #. DESC_SMTP_SERVER @@ -2037,9 +2311,10 @@ msgstr "preberi" msgid "write" msgstr "zapiši" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "izvedi" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "uporabnik" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2208,6 +2483,36 @@ msgstr "Izbriši izbrani predogled iz paketnega seznama" msgid "Turns on automatic mode" msgstr "Vključi avtomatski način" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Išči slike po imenih datotek" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Išči slike po imenih datotek" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Napaka pri določitvi domačega imenika:" @@ -2260,11 +2565,6 @@ msgstr "Napaka pri shranjevanju:" msgid "Can't handle depth" msgstr "Napaka pri ravnanju z globino" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP ne more ravnati z globino %d bitov/barvo" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Neznan datotečni format za shranjevanje" @@ -2497,10 +2797,68 @@ msgstr "Datoteka %s ni postscript datoteka" msgid "Unsupported %d-bit output format: %s" msgstr "Nepodprti %d-bitni izhodni format zapisa: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Napaka pri shranjevanju:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Napaka pri odpiranju" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Odstrani tiskalnik" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Išči slike po imenih datotek" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Odstrani tiskalnik" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Ne morem ustvariti začasno datoteko" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "slika predogleda ni shranjena" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Strani:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Shrani paketni seznam" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Shrani nastavitve naprave ob izhodu" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Nastavitve" + #. TEXT_USAGE msgid "Usage:" msgstr "Uporaba:" @@ -2874,11 +3232,61 @@ msgstr "Zmanjkalo je pomnilnika" msgid "Access to resource has been denied" msgstr "Dostop do vira je bil zavrnjen" -#~ msgid "Could not create temporary file" -#~ msgstr "Ne morem ustvariti začasno datoteko" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Išči slike po imenih datotek" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Išči slike po imenih datotek" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP ne more ravnati z globino %d bitov/barvo" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Odstrani tiskalnik" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Odstrani tiskalnik" + +#~ msgid "Enter name of fax project" +#~ msgstr "Vnesite ime projekta za faks" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "Vnesite ime projekta za e-pošto" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Ne morem ustvariti začasnih datotek predogleda" +#~ msgid "Enter name of multipage project" +#~ msgstr "Vnesite ime večstranskega projekta" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Ne morem ustvariti imen datotek za datoteke predogledov" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp ne podpira 16 bitno barvno globino.
    Ali želite zmanjšati barvno " +#~ "globino na 8 bitov?" diff --git a/po/sr.gmo b/po/sr.gmo index 7686b4e..5344ce9 100644 Binary files a/po/sr.gmo and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po index ac3e4b1..c44a9de 100644 --- a/po/sr.po +++ b/po/sr.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.76\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2002-01-17 00:47GMT\n" "Last-Translator: Rusmir Duško \n" "Language-Team: srpski \n" @@ -34,6 +35,7 @@ msgid "About" msgstr "O programu" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "O prevodu" @@ -74,6 +76,11 @@ msgstr "Izbriši stranu" msgid "fax project" msgstr "Faks" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Unesi ime projekta za faks" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "preimenuj stranu sa faksom" @@ -87,6 +94,11 @@ msgstr "unesi ps-fajl u faks" msgid "E-mail project" msgstr "e-pošta" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Unesi ime projekta za E-poštu" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -102,6 +114,11 @@ msgstr "unesi sliku u e-poštu" msgid "multipage project" msgstr "Izbriši projekat" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Izbriši projekat" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "preimenuj prepodešavanja" @@ -150,6 +167,7 @@ msgid "Preview" msgstr "Pregled" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Prikazivač" @@ -182,14 +200,17 @@ msgid "select temporary directory" msgstr "Izaberi privremeni direktorijum" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Skaliraj sliku" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Odstrani fleke" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Zamagli sliku" @@ -203,6 +224,35 @@ msgstr "Preimenuj definiciju" msgid "No devices available" msgstr "Nijedan uređaj nije dostupan" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Odstrani štampač" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Odstrani štampač" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "Odredi izlazni naziv fajla" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Odstrani štampač" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Odstrani štampač" + #. MENU_FILE msgid "File" msgstr "Fajl" @@ -220,6 +270,7 @@ msgid "Window" msgstr "" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Pomoć" @@ -235,6 +286,11 @@ msgstr "Filteri" msgid "Geometry" msgstr "" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "O programu XSane" @@ -248,6 +304,7 @@ msgid "Quit" msgstr "Izlaz" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Zapamti sliku" @@ -264,6 +321,7 @@ msgid "Scale" msgstr "Promeni veličinu" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Zatvori" @@ -465,11 +523,11 @@ msgstr "Prepiši upozorenje" msgid "Skip existing filenames" msgstr "Preskoči postojeće nazive fajli" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -486,7 +544,8 @@ msgid "Main window size fixed" msgstr "Veličina glavnog prozora je postavljena" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Onemogući gama pri pregledu u gimpu" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -509,6 +568,11 @@ msgstr "Autokorektura boja" msgid "Use GUI progress pipe" msgstr "" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Skeniranje uređaja" @@ -525,6 +589,12 @@ msgstr "XSane opcije" msgid "Type" msgstr "Vrsta" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "pun opseg" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Skener i backend" @@ -597,18 +667,11 @@ msgstr "8-bitni izlazni formati:" msgid "16 bit output formats:" msgstr "16-bitni izlazni formati:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp ne podržava dubinu 16 bit-a u boji.\n" -"Da li želite da smanjite dubinu na 8 bit-a u boji?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Dubina 16 bit-a u boji nije podržana za ovaj format.\n" "Da li želite da smanjite dubinu na 8 bit-a u boji?" @@ -645,6 +708,11 @@ msgstr "Verzija:" msgid "package" msgstr "paket" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "pun opseg" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "sa podrškom GIMP-a" @@ -762,9 +830,10 @@ msgid "Medium Name:" msgstr "" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Veličina %d x %d piksxel, %d bit/boji, %d boja, %1.0f dpi x %1.0f dpi, %1.1f " "%s" @@ -825,6 +894,7 @@ msgid "Name:" msgstr "Ime:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Komanda:" @@ -845,18 +915,22 @@ msgid "Color resolution (dpi):" msgstr "Rezolucija u boji (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Širina" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Visina" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Leva ivica" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Donja ivica" @@ -876,7 +950,17 @@ msgstr "Vrednost gama zelene boje za štampač:" msgid "Printer gamma blue:" msgstr "Vrednost gama plave boje za štampač:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Odstrani štampač" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Odstrani štampač" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1002,7 +1086,7 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "Prikazivač (postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1082,10 +1166,45 @@ msgstr "grupa" msgid "all" msgstr "svi" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Odstrani štampač" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Odstrani štampač" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Odstrani štampač" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Sačuvaj" @@ -1095,14 +1214,17 @@ msgid "Filetype" msgstr "Fajl" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopiraj" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faks" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "E-pošta:" @@ -1196,6 +1318,12 @@ msgstr "Prikaži listu rezolucija" msgid "Rotate postscript" msgstr "Rotiraj postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "pun opseg" + #. MENU_ITEM_EDIT_MEDIUM_DEF #, fuzzy msgid "Edit medium definition" @@ -1241,6 +1369,86 @@ msgstr "Saveti za skeniranje" msgid "Problems?" msgstr "Problemi?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Dodaj štampač" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Dodaj štampač" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Dodaj štampač" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Dodaj štampač" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "autorizacija" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "pisati" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Smanji" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "zamagli" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "neaktivno" @@ -1365,6 +1573,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Odstrani štampač" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Autokorektura boja" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skeniranje" @@ -1423,6 +1645,11 @@ msgstr "Zamagljavam sliku" msgid "OCR in progress" msgstr "" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Autokorektura boja" + #. DESC_SCAN_START msgid "Start scan " msgstr "Startaj skeniranje " @@ -1474,8 +1701,9 @@ msgstr "" "Način zapisa; odgovarajući nastavak se automatski dodaje na naziv fajla" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Unesi ime projekta za faks" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Pretraži privremeni direktorijum" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1485,10 +1713,15 @@ msgstr "Unesi novo ime za stranu sa faksom" msgid "Enter receiver phone number or address" msgstr "Unesi telefonski broj ili adresu prijemnika" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Pretraži privremeni direktorijum" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Unesi ime projekta za E-poštu" +msgid "Enter e-mail project directory name" +msgstr "Pretraži privremeni direktorijum" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1500,6 +1733,11 @@ msgstr "Unesi novo ime za sliku u E-pošti" msgid "Enter e-mail address" msgstr "Unesi email adresu" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Pretraži privremeni direktorijum" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1511,8 +1749,13 @@ msgstr "" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Unesi ime projekta za E-poštu" +msgid "Enter multipage project directory name" +msgstr "Pretraži privremeni direktorijum" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Pretraži privremeni direktorijum" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1644,7 +1887,7 @@ msgstr "" #. DESC_ENH_AUTO #, fuzzy -msgid "Autoadjust gamma, brightness and contrast " +msgid "Autoadjust gamma, brightness and contrast " msgstr "Autopodešavanje vrednosti gama, osvetljenja i kontrasta " #. DESC_ENH_DEFAULT @@ -1725,18 +1968,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Rezolucija, u kojoj se slike u boji štampaju i pamte u postscriptu" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Širina površine za štampanje" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Visina površine za štampanje" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Razmak od levog ruba papira do početka površine za štampanje" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Razmak od donjeg ruba papira do početka površine za štampanje" @@ -1756,9 +2003,17 @@ msgstr "Dodatna vrednost gama za zelenu boju pri fotokopiranju" msgid "Additional gamma value for blue component for photocopy" msgstr "Dodatna vrednost gama za plavu boju pri fotokopiranju" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1819,14 +2074,14 @@ msgstr "" "Ako je brojač naziva fajle automatski povećan, postojeći brojevi se " "automatski preskaču" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1838,7 +2093,9 @@ msgid "" msgstr "" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Ako skener šalje sliku sa 16 bit-a u boji pamti sliku sa 8 bit-a u boji" @@ -1867,7 +2124,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "Upotrebi fiksiranu ili promenljivu glavnu stranu" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Onemogući pregled gama, ako se Xsane upotrebljava kao uložak za Gimp" #. DESC_PREVIEW_COLORMAP @@ -1957,6 +2215,15 @@ msgstr "Izaberi površinu za skeniranje posle završetka pregleda" msgid "Do color correction after preview scan has finished" msgstr "Uradi korekciju boje posle završetka pregleda" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Izaberi površinu za skeniranje posle završetka pregleda" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Dajte komandu koja je potrebna za slanje faksa" @@ -1985,8 +2252,8 @@ msgstr "Komanda za prikazivanje faksa" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Šalji faks u visokoj rezoluciji po osi y (196 lpi umesto 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2069,9 +2336,10 @@ msgstr "čitati" msgid "write" msgstr "pisati" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "izvesti" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "korisnik" #. DESC_ADD_BATCH #, fuzzy @@ -2248,6 +2516,36 @@ msgstr "" msgid "Turns on automatic mode" msgstr "" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Traži slike po nazivima fajla" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Traži slike po nazivima fajla" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Neuspelo učitavanje korisničkog direktorijuma:" @@ -2300,11 +2598,6 @@ msgstr "Greška pri pamćenju:" msgid "Can't handle depth" msgstr "Nepodržana dubina bita" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP ne može podržati dubinu od %d bit-a u boji" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Nepoznat naziv fajla za pamćenje" @@ -2540,10 +2833,68 @@ msgstr "Fajl %s nije postcript" msgid "Unsupported %d-bit output format: %s" msgstr "Nepodržani %d- bitni izlazni format %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Greška pri pamćenju:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Greška pri otvaranju" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Odstrani štampač" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Traži slike po nazivima fajla" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Odstrani štampač" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Ne mogu da napravim privremeni fajl" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Slika prikazivača nije zapamćena" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Slika" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Saveti za skeniranje" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Zapamti podešavanja uređaja pri izlazu" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Podešavanja" + #. TEXT_USAGE msgid "Usage:" msgstr "Upotreba:" @@ -2925,14 +3276,66 @@ msgstr "Nedostatak memorije" msgid "Access to resource has been denied" msgstr "Dostup do resursa nije dozvoljen" -#~ msgid "Could not create temporary file" -#~ msgstr "Ne mogu da napravim privremeni fajl" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Odstrani štampač" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Odstrani štampač" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Odstrani štampač" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Ne mogu da napravim privremeni fajl za pregled" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Odstrani štampač" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Ne mogu da napravim naziv fajla za fajlove za pregled" +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Odstrani štampač" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Odstrani štampač" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Traži slike po nazivima fajla" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Traži slike po nazivima fajla" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP ne može podržati dubinu od %d bit-a u boji" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Odstrani štampač" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Odstrani štampač" + +#~ msgid "Enter name of fax project" +#~ msgstr "Unesi ime projekta za faks" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Unesi ime projekta za E-poštu" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Unesi ime projekta za E-poštu" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp ne podržava dubinu 16 bit-a u boji.\n" +#~ "Da li želite da smanjite dubinu na 8 bit-a u boji?" #, fuzzy #~ msgid "POP3 authentication" @@ -2994,9 +3397,6 @@ msgstr "Dostup do resursa nije dozvoljen" #~ msgid "Multipage saving aborted" #~ msgstr "čitati" -#~ msgid "Image" -#~ msgstr "Slika" - #~ msgid "Viewer (png):" #~ msgstr "Prikazivač (png):" diff --git a/po/sv.gmo b/po/sv.gmo index 6e28084..eaef125 100644 Binary files a/po/sv.gmo and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index bdb2c50..45cc9b0 100644 --- a/po/sv.po +++ b/po/sv.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.92\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2003-08-03 14:12+01:00\n" "Last-Translator: Johan Bengtsson \n" "Language-Team: LANGUAGE \n" @@ -32,6 +33,7 @@ msgid "About" msgstr "Om" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Om översättningen" @@ -71,6 +73,11 @@ msgstr "byt namn på massinläsningsområde" msgid "fax project" msgstr "faxprojekt" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Skriv in namn för faxprojekt" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "byt namn på faxsida" @@ -84,6 +91,11 @@ msgstr "infoga ps-fil i fax" msgid "E-mail project" msgstr "brevprojekt" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Skriv in namn för brevprojekt" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "infoga fil i brev" msgid "multipage project" msgstr "Ta bort projekt" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Ta bort projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "byt namn på det förinställda området" @@ -147,6 +164,7 @@ msgid "Preview" msgstr "Förhandsgranskning" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Visare" @@ -179,14 +197,17 @@ msgid "select temporary directory" msgstr "välj temporär katalog" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Skala bild" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Damma av bild" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Sudda till bild" @@ -198,6 +219,35 @@ msgstr "Lagra mediedefinition" msgid "No devices available" msgstr "Inga enheter tillgängliga" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Ta bort skrivare" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Ta bort skrivare" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "till filnamn" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Ta bort skrivare" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Ta bort skrivare" + #. MENU_FILE msgid "File" msgstr "Arkiv" @@ -215,6 +265,7 @@ msgid "Window" msgstr "" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Hjälp" @@ -230,6 +281,11 @@ msgstr "Filter" msgid "Geometry" msgstr "" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Om XSane" @@ -243,6 +299,7 @@ msgid "Quit" msgstr "Avsluta" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Spara bild" @@ -259,6 +316,7 @@ msgid "Scale" msgstr "Skala" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Stäng" @@ -457,11 +515,11 @@ msgstr "Överskriftsvarning" msgid "Skip existing filenames" msgstr "Hoppa över existerande filnamn" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -478,7 +536,8 @@ msgid "Main window size fixed" msgstr "Fixerad storlek på huvudfönster" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Koppla bort förhandsgranskningsgamma" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -501,6 +560,11 @@ msgstr "Autokorrigera färger" msgid "Use GUI progress pipe" msgstr "Använd GUI statuslinje" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "Letar efter enheter..." @@ -517,6 +581,12 @@ msgstr "XSane-inställningar" msgid "Type" msgstr "Typ" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Fullt färgomfång" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Bildläsare och drivrutin:" @@ -589,18 +659,11 @@ msgstr "8 bits utmatningsformat:" msgid "16 bit output formats:" msgstr "16 bits utmatningsformat:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp stöder inte 16 bits färgdjup. \n" -"Vill du reducera till 8 bits färgdjup?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "16 bits färgdjup stöds inte för detta utmatnings format.\n" "Vill du reducera till 8 bits färgdjup?" @@ -637,6 +700,11 @@ msgstr "version:" msgid "package" msgstr "paket" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Fullt färgomfång" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "med GIMP-support" @@ -772,9 +840,10 @@ msgid "Medium Name:" msgstr "Namn på medium:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Storlek %d x %d pixlar, %d bit/färg, %d färger, %1.0f dpi x %1.0f dpi, %1.1f " "%s" @@ -828,6 +897,7 @@ msgid "Name:" msgstr "Namn:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Kommando:" @@ -848,18 +918,22 @@ msgid "Color resolution (dpi):" msgstr "Upplösning i färgläge (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Bredd" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Höjd" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Vänster marginal" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Marginal från botten" @@ -879,7 +953,17 @@ msgstr "Skrivargamma grön:" msgid "Printer gamma blue:" msgstr "Skrivargamma blå:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Ta bort skrivare" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Ta bort skrivare" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1004,7 +1088,7 @@ msgstr "Sätt standardinställningar för:" msgid "Viewer (Postscript):" msgstr "Visare (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1083,10 +1167,45 @@ msgstr "grupp" msgid "all" msgstr "alla" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Ta bort skrivare" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Ta bort skrivare" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Ta bort skrivare" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Bläddra efter filnamn" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Spara" @@ -1096,14 +1215,17 @@ msgid "Filetype" msgstr "Arkiv" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopiera" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Faxa" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "Epost" @@ -1196,6 +1318,12 @@ msgstr "Visa upplösningslista" msgid "Rotate postscript" msgstr "Rotera postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Fullt färgomfång" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Ändra mediedefinition" @@ -1240,6 +1368,86 @@ msgstr "Bildinläsningstips" msgid "Problems?" msgstr "Problem?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Lägg till skrivare" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Lägg till skrivare" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Lägg till skrivare" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Lägg till skrivare" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "auktorisering" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "skriv" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Reducera" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Sudda till" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "inaktiv" @@ -1363,6 +1571,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Ta bort skrivare" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Autokorrigera färger" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Läser in" @@ -1421,6 +1643,11 @@ msgstr "Sudda till bild" msgid "OCR in progress" msgstr "OCR pågår" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Autokorrigera färger" + #. DESC_SCAN_START msgid "Start scan " msgstr "Starta inläsning " @@ -1475,8 +1702,9 @@ msgstr "" "Typ av bildformat, den passande filändelsen läggs automatiskt till filnamnet" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Skriv in namn för faxprojekt" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Bläddra efter temporär katalog" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1486,10 +1714,15 @@ msgstr "Skriv in nytt namn för faxsida" msgid "Enter receiver phone number or address" msgstr "Skriv in mottagarens telefonnummer eller adress" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Bläddra efter temporär katalog" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Skriv in namn för brevprojekt" +msgid "Enter e-mail project directory name" +msgstr "Bläddra efter temporär katalog" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1501,6 +1734,11 @@ msgstr "Skriv in nytt namn för brevbild" msgid "Enter e-mail address" msgstr "Skriv in epost adress" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Bläddra efter temporär katalog" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1512,8 +1750,13 @@ msgstr "" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Skriv in namn för brevprojekt" +msgid "Enter multipage project directory name" +msgstr "Bläddra efter temporär katalog" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Bläddra efter temporär katalog" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1641,7 +1884,8 @@ msgstr "" " kontrast = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Autojustera gamma, ljus och kontrast " #. DESC_ENH_DEFAULT @@ -1721,19 +1965,23 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Upplösning med vilken färgbilder skrivs ut och sparas i postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Utskriftsbara områdets bredd" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Utskriftsbara områdets höjd" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "" "Marginal från den vänstra sidan av pappret till det utskrivbara området" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Marginal från botten av pappret till det utskrivbara området" @@ -1753,9 +2001,17 @@ msgstr "Extra gammavärde för den gröna komponeneten vid fotokopiering" msgid "Additional gamma value for blue component for photocopy" msgstr "Extra gammavärde för den blåa komponeneten vid fotokopiering" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1812,14 +2068,14 @@ msgid "" msgstr "" "Om filnamnsräknaren automatiskt uppdateras, så hoppas använda nummer över" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1835,7 +2091,9 @@ msgstr "" "producerar väldigt stora filer!!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "Spara bild med 8/bits färg om bildläsare skickar bild med 16 bits/färg" #. DESC_PSFILE_WIDTH @@ -1869,7 +2127,8 @@ msgstr "" "variabel storlek" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" "Koppla bort förhandsgranskningsgamma när XSane körs som gimp insticksprogram" @@ -1971,6 +2230,15 @@ msgstr "Välj inläsningsområde efter förhandsgranskningen är klar" msgid "Do color correction after preview scan has finished" msgstr "Gör färgkorrigering efter förhansgranskingen är klar" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Välj inläsningsområde efter förhandsgranskningen är klar" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Kommando som skall köras i fax läge" @@ -1999,8 +2267,8 @@ msgstr "Kommando som körs för att visa ett fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Skicka fax med hög vertikal upplösning (196 lpi istället för 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2082,9 +2350,10 @@ msgstr "läs" msgid "write" msgstr "skriv" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "exekvera" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "användare" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2251,6 +2520,36 @@ msgstr "Ta bort det makerade området fråm massinläsningslistan" msgid "Turns on automatic mode" msgstr "Aktiverar automatläge" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Bläddra efter filnamn" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Bläddra efter filnamn" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Bläddra efter filnamn" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Bläddra efter filnamn" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Bläddra efter filnamn" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Bläddra efter filnamn" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Kunde inte hitta hemkatalogen:" @@ -2303,11 +2602,6 @@ msgstr "Fel under spararande:" msgid "Can't handle depth" msgstr "Kan inte hantera bilddjup" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP kan inte hantera bilddjup med %d bits/färg" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Kan inte spara i det här filformatet" @@ -2541,10 +2835,68 @@ msgstr "Fil %s är inte en postskriptfil" msgid "Unsupported %d-bit output format: %s" msgstr "%d-bit utmatningsformat som inte stöds: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Fel under spararande:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Kunde inte öppna" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Ta bort skrivare" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Bläddra efter filnamn" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Ta bort skrivare" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Kunde inte skapa temporär fil" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "visarbild sparas inte" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Bild" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Spara massinläsningslista" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Spara inställningar när programmet avslutas" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Inställningar" + #. TEXT_USAGE msgid "Usage:" msgstr "Användning:" @@ -2928,14 +3280,66 @@ msgstr "Slut på minne" msgid "Access to resource has been denied" msgstr "Tillgång till resurs nekas" -#~ msgid "Could not create temporary file" -#~ msgstr "Kunde inte skapa temporär fil" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Ta bort skrivare" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Ta bort skrivare" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Ta bort skrivare" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Kunde inte skapa temporär förhandsgranskningsfil" +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Ta bort skrivare" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Kunde inte skapa filnamn för förhandsgranskningsfiler" +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Ta bort skrivare" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Ta bort skrivare" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Bläddra efter filnamn" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Bläddra efter filnamn" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP kan inte hantera bilddjup med %d bits/färg" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Ta bort skrivare" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Ta bort skrivare" + +#~ msgid "Enter name of fax project" +#~ msgstr "Skriv in namn för faxprojekt" + +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Skriv in namn för brevprojekt" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "Skriv in namn för brevprojekt" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp stöder inte 16 bits färgdjup. \n" +#~ "Vill du reducera till 8 bits färgdjup?" #, fuzzy #~ msgid "POP3 authentication" @@ -2997,9 +3401,6 @@ msgstr "Tillgång till resurs nekas" #~ msgid "Multipage saving aborted" #~ msgstr "läs" -#~ msgid "Image" -#~ msgstr "Bild" - #~ msgid "Viewer (png):" #~ msgstr "Visare (png):" diff --git a/po/tr.gmo b/po/tr.gmo index 0b5d922..06111d8 100644 Binary files a/po/tr.gmo and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po index 3c9d7e1..af0dd87 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: xsane_tr\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2005-12-22 10:01+0100\n" "Last-Translator: Togan Muftuoglu \n" "Language-Team: Turkish \n" @@ -35,6 +36,7 @@ msgid "About" msgstr "Hakkında" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Tercüme hakkında" @@ -74,6 +76,11 @@ msgstr "Alanı yeniden isimlendir" msgid "fax project" msgstr "fax projesi" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "faks projesinin adını girin" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "fax sayfasını yeniden isimlendir" @@ -86,6 +93,11 @@ msgstr "ps-dosyasını faxa yerleştirin" msgid "E-mail project" msgstr "E-posta projesi" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "E-Posta projesinin adını girin " + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "E-posta resmini yeniden isimlendir" @@ -98,6 +110,11 @@ msgstr "dosyayı E-postaya yerleştirin" msgid "multipage project" msgstr "Çok sayfalı proje" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Çok sayfalı proje" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Önceden belirlenmiş alanı yeniden isimlendir" @@ -143,6 +160,7 @@ msgid "Preview" msgstr "Önizleme" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Gösterici" @@ -175,14 +193,17 @@ msgid "select temporary directory" msgstr "geçici dizini seçin" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Resmi ölçülendir" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Resmi beneksizleştir" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Resmi bulanıklaştır" @@ -194,6 +215,35 @@ msgstr "Ortam tanımını sakla" msgid "No devices available" msgstr "Hiçbir aygıt mevcut değil" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Yazıcı sil" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Yazıcı sil" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "çıktı dosya adını seçiniz" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Yazıcı sil" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Yazıcı sil" + #. MENU_FILE msgid "File" msgstr "Dosya" @@ -211,6 +261,7 @@ msgid "Window" msgstr "Pencere" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Yardım" @@ -226,6 +277,11 @@ msgstr "Filtreler" msgid "Geometry" msgstr "Geometri" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Xsane hakkında" @@ -239,6 +295,7 @@ msgid "Quit" msgstr "Çık" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Resmi kaydet" @@ -255,6 +312,7 @@ msgid "Scale" msgstr "Boyutlandırma" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Kapat" @@ -446,11 +504,11 @@ msgstr "Üzerine yazma uyarısı" msgid "Skip existing filenames" msgstr "Varolan dosya isimlerini atla" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "Postscript dosyayı zlib sıkıştırmalı kaydet (ps 3 seviyesinde)" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "PDF dosyayı zlib sıkıştırmalı kaydet" @@ -467,7 +525,8 @@ msgid "Main window size fixed" msgstr "Ana pencere boyutu sabitlendi" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Gimp önizleme gamması pasif kılındı" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -490,6 +549,11 @@ msgstr "Renkleri otomatik düzelt" msgid "Use GUI progress pipe" msgstr "GUI ilerleme çubuğunu kullan" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "aygıtları arıyor" @@ -506,6 +570,12 @@ msgstr "Xsane seçenekleri" msgid "Type" msgstr "Tip" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Tüm renk aralığı" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Tarayıcı ve sürücü:" @@ -578,18 +648,11 @@ msgstr "8 bit çıktı formatları:" msgid "16 bit output formats:" msgstr "16 bit formatları:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp 16 bit/renk derinliğini desteklemiyor.\n" -"Derinliği 8bit/renk haline getirmek istermisiniz ?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Bu çıktı formatı için 16 bit/renk derinliği desteklenmiyor\n" "Derinliği 8 bit/renk olarak değiştirmek istermisiniz ?" @@ -626,6 +689,11 @@ msgstr "sürüm:" msgid "package" msgstr "paket" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Tüm renk aralığı" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "GIMP desteği ile" @@ -757,9 +825,10 @@ msgid "Medium Name:" msgstr "Ortam ismi" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Boyut %d x %d piksel, %d bit/color, %d renkler, %1.0f dpi x %1.0f dpi, %1.1f " "%s" @@ -813,6 +882,7 @@ msgid "Name:" msgstr "Adı:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Komut:" @@ -833,18 +903,22 @@ msgid "Color resolution (dpi):" msgstr "Renkli çözünürlük (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "En " #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Yükseklik" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Sol boşluk " #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Alt boşluk " @@ -864,7 +938,17 @@ msgstr "Yazıcı mavi gamma:" msgid "Printer gamma blue:" msgstr "Yazıcı mavi gamma:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Yazıcı sil" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Yazıcı sil" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" "Yazdırmak için zlib sıkıştırılmış postscript (ps 3. seviye) resim yarat " @@ -989,7 +1073,7 @@ msgstr "Program öntanımlılarını belirle:" msgid "Viewer (Postscript):" msgstr "İzleyici (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "Faks için zlib sıkıştırılmış postscript (ps 3. seviye) resim yarat " @@ -1068,10 +1152,45 @@ msgstr "grup" msgid "all" msgstr "hepsi" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Yazıcı sil" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Yazıcı sil" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Yazıcı sil" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "resim dosyası ara" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "Yeni medya" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Kaydet" @@ -1080,14 +1199,17 @@ msgid "Filetype" msgstr "Dosya tipi" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Kopyala" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "E-posta" @@ -1179,6 +1301,12 @@ msgstr "Çözünürlük listesini göster" msgid "Rotate postscript" msgstr "Postscripti döndür" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Tüm renk aralığı" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Ortam tanımını düzelt" @@ -1223,6 +1351,86 @@ msgstr "Tarama ipuçları" msgid "Problems?" msgstr "Problemler ?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Yazıcı ekle" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Yazıcı ekle" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Yazıcı ekle" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Yazıcı ekle" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Otorizasyon" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "yazma" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Azalt" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Bulanıklaştırma" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "pasif" @@ -1340,6 +1548,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Yazıcı sil" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Renkleri otomatik düzelt" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "tarıyor" @@ -1397,6 +1619,11 @@ msgstr "Resmi bulanıklaştır" msgid "OCR in progress" msgstr "OCR çalışmakta" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Renkleri otomatik düzelt" + #. DESC_SCAN_START msgid "Start scan " msgstr "Taramayı başlat " @@ -1456,8 +1683,9 @@ msgstr "" "eklenir" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "faks projesinin adını girin" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Geçici dizine göz at" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1467,9 +1695,15 @@ msgstr "Faks sayfası için ad girin" msgid "Enter receiver phone number or address" msgstr "Alıcının telefon numrasını veya adresini girin" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Geçici dizine göz at" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" -msgstr "E-Posta projesinin adını girin " +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "Geçici dizine göz at" #. DESC_EMAIL_IMAGENAME msgid "Enter new name for e-mail image" @@ -1479,6 +1713,11 @@ msgstr "E-Posta resmi için yeni isim girin" msgid "Enter e-mail address" msgstr "E-posta adresi girin " +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Geçici dizine göz at" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "E-Posta konusu girin " @@ -1488,8 +1727,14 @@ msgid "Select filetype for image attachments" msgstr "Resim ekleri için dosya tipini seçin" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" -msgstr "Çoklu sayfa projesinin adını girin" +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "Geçici dizine göz at" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Geçici dizine göz at" #. DESC_MULTIPAGE_FILETYPE msgid "Select filetype for multipage file" @@ -1614,7 +1859,8 @@ msgstr "" " kontrast =0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "" "Seçilen alana bağlı olarak gamma, ışık ve kontrastı otomatik ayarla" @@ -1696,18 +1942,22 @@ msgstr "" "Renkli resimlerin yazdırılması ve postscript de saklanması için çözünürlük" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Basılacak alanın genişliği" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Basılacak alanın yüksekliği" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Kağıdın sol boşluğundan basılacak alan " #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Kağıdın alt boşluğundan basılacak alan " @@ -1727,9 +1977,18 @@ msgstr "Fotokopi için yeşil bileşenin ilave gamma değeri" msgid "Additional gamma value for blue component for photocopy" msgstr "Fotokopi için mavi bileşenin ilave gamma değeri" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +#, fuzzy msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" "Yazıcı için zlib sıkıştırılmış postscript görüntü yarat (flatdecode)\n" @@ -1789,17 +2048,19 @@ msgstr "" "Eğer dosya adı sayacı otomatik olarak artırılıyorsa, kullanılan rakamlar " "atlanır" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED +#, fuzzy msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" "Zlib algoritması ile sıkıştırılmış postscript görüntü yarat (flatdecode) " "Eğer böyle bir dosyayı çıktı olarak almak istiyorsanız yazıcı postscript 3 " "dilini anlamalı " -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +#, fuzzy +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "PDF dosyayı zlib algoritması ile sıkıştır (indirge)" #. DESC_SAVE_PNM16_AS_ASCII @@ -1815,7 +2076,9 @@ msgstr "" "tarafından kullanılmasına karşın oldukça büyük dosyalar üretir." #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" "Eğer tarayıcı resmi 16 bit/renk olarak yollarsa, resmi 8 bit/renk olarak " "sakla" @@ -1847,7 +2110,8 @@ msgstr "" "kullan" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Xsane gimp plugini olarak çalıştırılırsa önizleme gammasını iptal et" #. DESC_PREVIEW_COLORMAP @@ -1941,6 +2205,15 @@ msgstr "Önizleme taraması tamamlandıktan sonra tarama aranını seç" msgid "Do color correction after preview scan has finished" msgstr "Önizleme taraması bittikten sonra renk düzeltmesini yap" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Önizleme taraması tamamlandıktan sonra tarama aranını seç" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Faks modunda çalıştırılacak komutu yazın" @@ -1969,8 +2242,9 @@ msgstr "Faksı görmek için çalıştırılacak komutu yazın" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Faksı yüksek dikey çözünürlükle (98 lpi yerine 196 lpi ile)gönder" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +#, fuzzy +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "Faks için zlib sıkıştırlmış postscript görüntü yarat (flatdecode)" #. DESC_SMTP_SERVER @@ -2052,9 +2326,10 @@ msgstr "okuma" msgid "write" msgstr "yazma" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "çalıştırma" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "kullanıcı" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2223,6 +2498,36 @@ msgstr "Seçilen önizleme alanını listeden sil" msgid "Turns on automatic mode" msgstr "Otomatik modu ethin kılar" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "resim dosyası ara" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "resim dosyası ara" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "resim dosyası ara" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "resim dosyası ara" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "resim dosyası ara" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "resim dosyası ara" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Ev dizinini belirlemede hata:" @@ -2275,11 +2580,6 @@ msgstr "Saklama esnasında hata" msgid "Can't handle depth" msgstr "Derinliği kullanamaz" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP %d bit /renk derinliği kullanamaz" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Saklamak için bilinmeyen format" @@ -2514,10 +2814,68 @@ msgstr "Dosya %s postscript dosyası değil" msgid "Unsupported %d-bit output format: %s" msgstr "Desteklenmeyen %d-bit çıktı formatı:%s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Saklama esnasında hata" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Açmada hata" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Yazıcı sil" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "resim dosyası ara" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Yazıcı sil" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Geçici dosya yaratılamadı" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "İzleme resmi saklanamadı" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Sayfalar:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Tarama listesini sakla" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Aygıt tercihlerini sakla ve çık" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Ayarlar" + #. TEXT_USAGE msgid "Usage:" msgstr "Kullanım:" @@ -2890,24 +3248,61 @@ msgstr "Yetersiz hafıza" msgid "Access to resource has been denied" msgstr "Kaynağa erişim reddedildi" -#~ msgid "Could not create temporary file" -#~ msgstr "Geçici dosya yaratılamadı" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "resim dosyası ara" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Geçici önizleme dosyaları yaratılamadı" +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "resim dosyası ara" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Önizleme dosyaları için dosya isimleri yaratılamadı" +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP %d bit /renk derinliği kullanamaz" #, fuzzy -#~ msgid "POP3 authentication" -#~ msgstr "POP3 otorizasyon" +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Yazıcı sil" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Yazıcı sil" + +#~ msgid "Enter name of fax project" +#~ msgstr "faks projesinin adını girin" -#~ msgid "XSane mode" -#~ msgstr "Xsane modu" +#~ msgid "Enter name of e-mail project" +#~ msgstr "E-Posta projesinin adını girin " -#~ msgid "POP3 user:" -#~ msgstr "POP3 kullanıcı:" +#~ msgid "Enter name of multipage project" +#~ msgstr "Çoklu sayfa projesinin adını girin" -#~ msgid "POP3 password:" -#~ msgstr "POP3 Şifre:" +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp 16 bit/renk derinliğini desteklemiyor.\n" +#~ "Derinliği 8bit/renk haline getirmek istermisiniz ?" diff --git a/po/vi.gmo b/po/vi.gmo index 148cb56..ae254b1 100644 Binary files a/po/vi.gmo and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po index 69b4456..51cbea8 100644 --- a/po/vi.po +++ b/po/vi.po @@ -4,7 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2004-08-26 23:33+0700\n" "Last-Translator: Trinh Minh Thanh \n" "Language-Team: Vietnamese \n" @@ -37,6 +38,7 @@ msgid "About" msgstr "Giới thiệu" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "Giới thiệu dịch thuật" @@ -76,6 +78,11 @@ msgstr "đổi tên vùng batch" msgid "fax project" msgstr "dự án fax" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "Nhập tên cho dự án Fax" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "đổi tên trang fax" @@ -89,6 +96,11 @@ msgstr "chèn tập tin ps vào fax" msgid "E-mail project" msgstr "dự án thư" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "Nhập tên dự án thư" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -104,6 +116,11 @@ msgstr "chèn tập tin vào thư" msgid "multipage project" msgstr "Xóa dự án" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "Xóa dự án" + # WINDOW_PRESET_AREA_RENAME #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -153,6 +170,7 @@ msgid "Preview" msgstr "Xem trước" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "Trình xem" @@ -185,14 +203,17 @@ msgid "select temporary directory" msgstr "chọn thư mục tạm thời" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "Cân chỉnh ảnh" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "Xóa vết đốm ảnh" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "Làm mờ ảnh" @@ -204,6 +225,35 @@ msgstr "Lưu trữ định nghĩa phương tiện" msgid "No devices available" msgstr "Hiện không có thiết bị" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "Xóa máy in" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "Xóa máy in" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "chọn tên tập tin đầu ra" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "Xóa máy in" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "Xóa máy in" + #. MENU_FILE msgid "File" msgstr "Tệp" @@ -222,6 +272,7 @@ msgid "Window" msgstr "Cửa sổ" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "Trợ giúp" @@ -239,6 +290,11 @@ msgstr "Trình lọc" msgid "Geometry" msgstr "Hình học" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "Giới thiệu XSane" @@ -252,6 +308,7 @@ msgid "Quit" msgstr "Thoát" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "Lưu ảnh" @@ -268,6 +325,7 @@ msgid "Scale" msgstr "Cân chỉnh" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "Đóng" @@ -468,11 +526,11 @@ msgstr "Cảnh báo việc ghi đè" msgid "Skip existing filenames" msgstr "Nhảy qua các tên tập tin hiện có" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -489,7 +547,8 @@ msgid "Main window size fixed" msgstr "Kích cỡ cửa sổ chính không đổi" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "Tắt gamma xem trước của GIMP" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -512,6 +571,11 @@ msgstr "Tự động hiệu chỉnh màu" msgid "Use GUI progress pipe" msgstr "Dùng pipe tiến trình đồ họa" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "đang rà tìm thiết bị" @@ -528,6 +592,12 @@ msgstr "Tùy chọn XSane" msgid "Type" msgstr "Loại" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "Dải màu đầy đủ" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "Máy quét và backend:" @@ -600,18 +670,11 @@ msgstr "Định dạng đầu ra 8 bit:" msgid "16 bit output formats:" msgstr "Định dạng đầu ra 16 bit:" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp không hỗ trợ độ sâu màu 16 bit.\n" -"Có muốn hạ xuống 8 bit không ?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "Không hỗ trợ độ sâu màu 16 bit cho định dạng đầu ra này.\n" "Có muốn hạ xuống 8 bit không ?" @@ -648,6 +711,11 @@ msgstr "phiên bản:" msgid "package" msgstr "gói tin" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "Dải màu đầy đủ" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "có hỗ trợ của GIMP" @@ -784,9 +852,10 @@ msgid "Medium Name:" msgstr "Tên phương tiện:" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "Kích cỡ %d x %d pixel, %d bit/màu, %d màu, %1.0f dpi x %1.0f dpi, %1.1f %s" @@ -839,6 +908,7 @@ msgid "Name:" msgstr "Tên:" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "Lệnh:" @@ -859,18 +929,22 @@ msgid "Color resolution (dpi):" msgstr "Độ phân giải màu (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "Rộng" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "Cao" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "Offset trái" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "Offset đáy" @@ -890,7 +964,17 @@ msgstr "Xanh lá cây gamma máy in:" msgid "Printer gamma blue:" msgstr "Xanh da trời gamma máy in:" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "Xóa máy in" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "Xóa máy in" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -1015,7 +1099,7 @@ msgstr "Đặt mặc định chương trình cho:" msgid "Viewer (Postscript):" msgstr "Trình xem (Postscript):" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1094,10 +1178,45 @@ msgstr "nhóm" msgid "all" msgstr "toàn bộ" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "Xóa máy in" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "Xóa máy in" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "Xóa máy in" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "phương tiện mới" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "Lưu" @@ -1107,14 +1226,17 @@ msgid "Filetype" msgstr "Tệp" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "Sao chép" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "Fax" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "Email" @@ -1207,6 +1329,12 @@ msgstr "Hiển thị danh sách độ phân giải" msgid "Rotate postscript" msgstr "Xoay postscript" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "Dải màu đầy đủ" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "Biên soạn định nghĩa phương tiện" @@ -1251,6 +1379,86 @@ msgstr "Mẹo quét" msgid "Problems?" msgstr "Trục trặc?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "Thêm máy in" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "Thêm máy in" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "Thêm máy in" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "Thêm máy in" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "Chấp thuận giấy phép" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "ghi" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "Giảm" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "Làm mờ" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "bất hoạt" @@ -1374,6 +1582,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "Xóa máy in" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "Tự động hiệu chỉnh màu" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Đang quét" @@ -1432,6 +1654,11 @@ msgstr "Đang làm mờ ảnh" msgid "OCR in progress" msgstr "Đang chạy OCR" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "Tự động hiệu chỉnh màu" + #. DESC_SCAN_START msgid "Start scan " msgstr "Bắt đầu quét " @@ -1492,8 +1719,9 @@ msgstr "" "vào tên tập tin" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "Nhập tên cho dự án Fax" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "Duyệt tìm thư mục tạm" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1503,10 +1731,15 @@ msgstr "Nhập tên mới cho trang Fax" msgid "Enter receiver phone number or address" msgstr "Nhập số điện thoại hay địa chỉ người nhận" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "Duyệt tìm thư mục tạm" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "Nhập tên dự án thư" +msgid "Enter e-mail project directory name" +msgstr "Duyệt tìm thư mục tạm" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1518,6 +1751,11 @@ msgstr "Nhập tên mới cho ảnh trong thư" msgid "Enter e-mail address" msgstr "Nhập địa chỉ thư" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "Duyệt tìm thư mục tạm" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1530,8 +1768,13 @@ msgstr "Chọn loại tập tin cho ảnh đính kèm" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "Nhập tên dự án thư" +msgid "Enter multipage project directory name" +msgstr "Duyệt tìm thư mục tạm" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "Duyệt tìm thư mục tạm" # DESC_MAIL_FILETYPE #. DESC_MULTIPAGE_FILETYPE @@ -1661,7 +1904,8 @@ msgstr "" " độ tương phản = 0" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "Tự động hiệu chỉnh gamma, độ sáng và độ tương phản " #. DESC_ENH_DEFAULT @@ -1739,18 +1983,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "Độ phân giải để in và lưu ảnh màu theo dạng postscript" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "Chiều rộng vùng in được" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "Chiều cao vùng in được" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "Offset trái từ mép giấy đến vùng in được" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "Offset đáy từ mép giấy đến vùng in được" @@ -1770,9 +2018,17 @@ msgstr "Giá trị gamma thêm cho thành phần màu xanh lá cây cho photocop msgid "Additional gamma value for blue component for photocopy" msgstr "Giá trị gamma thêm cho thành phần màu xanh da trời cho photocopy" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1830,14 +2086,14 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "Nếu bộ đếm tên tập tin được tăng tự động, bỏ qua các số đã dùng" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1853,7 +2109,9 @@ msgstr "" "lại tạo các tập tin ảnh lớn !!!" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +#, fuzzy +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "Nếu máy quét gửi ảnh 16 bit/màu thì lưu thành 8 bit/màu" #. DESC_PSFILE_WIDTH @@ -1882,7 +2140,8 @@ msgstr "" "Dùng cỡ cửa sổ chính cố định hoặc cửa sổ chính cuộn được và có thể đổi cỡ" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "Tắt Xem trước gamma khi chạy XSane làm plugin của GIMP" #. DESC_PREVIEW_COLORMAP @@ -1974,6 +2233,15 @@ msgstr "Chọn vùng quét sau khi kết thúc việc quét xem trước" msgid "Do color correction after preview scan has finished" msgstr "Hiệu chỉnh màu sau khi kết thúc việc quét xem trước" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "Chọn vùng quét sau khi kết thúc việc quét xem trước" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "Nhập lệnh thực thi trong chế độ Fax" @@ -2002,8 +2270,8 @@ msgstr "Nhập lệnh thực thi để xem Fax" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "Gửi Fax có độ phân giải dọc cao (196 lpi thay vì 98 lpi)" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2088,9 +2356,10 @@ msgstr "đọc" msgid "write" msgstr "ghi" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "thực thi" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "người dùng" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2263,6 +2532,36 @@ msgstr "Xóa vùng được chọn khỏi danh sách batch" msgid "Turns on automatic mode" msgstr "Bật chế độ tự động" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "Duyệt tên tập tin ảnh" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "Không xác định được thư mục home:" @@ -2315,11 +2614,6 @@ msgstr "Lỗi khi lưu:" msgid "Can't handle depth" msgstr "Không thể xử lý độ sâu" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP không thể xử lý độ sâu %d bit/màu" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "Không xác định được định dạng tập tin để lưu" @@ -2554,10 +2848,68 @@ msgstr "Tập tin %s không phải dạng postscript" msgid "Unsupported %d-bit output format: %s" msgstr "Không hỗ trợ định dạng đầu ra %d-bit: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "Lỗi khi lưu:" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "Không mở được" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "Xóa máy in" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "Duyệt tên tập tin ảnh" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "Xóa máy in" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "Không tạo được tập tin tạm thời" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "Ảnh ở trình xem không được lưu" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "Ảnh" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "Lưu danh sách batch" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "Lưu các sở thích thiết bị và thoát ra" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "Sở thích" + #. TEXT_USAGE msgid "Usage:" msgstr "Cách dùng:" @@ -2960,18 +3312,66 @@ msgstr "Hết bộ nhớ" msgid "Access to resource has been denied" msgstr "Truy cập đến nguồn bị từ chối" -#~ msgid "Could not create temporary file" -#~ msgstr "Không tạo được tập tin tạm thời" +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "Duyệt tên tập tin ảnh" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "Duyệt tên tập tin ảnh" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP không thể xử lý độ sâu %d bit/màu" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "Xóa máy in" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "Xóa máy in" -#~ msgid "Could not create temporary preview files" -#~ msgstr "Không thể tạo tập tin xem trước tạm thời" +#~ msgid "Enter name of fax project" +#~ msgstr "Nhập tên cho dự án Fax" -#~ msgid "Could not create filenames for preview files" -#~ msgstr "Không thể tạo tên cho tập tin xem trước" +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "Nhập tên dự án thư" #, fuzzy -#~ msgid "POP3 authentication" -#~ msgstr "Chứng thực POP3" +#~ msgid "Enter name of multipage project" +#~ msgstr "Nhập tên dự án thư" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp không hỗ trợ độ sâu màu 16 bit.\n" +#~ "Có muốn hạ xuống 8 bit không ?" #~ msgid "XSane mode" #~ msgstr "Chế độ XSane" @@ -3036,9 +3436,6 @@ msgstr "Truy cập đến nguồn bị từ chối" #~ msgid "Multipage saving aborted" #~ msgstr "Mail project được tạo" -#~ msgid "Image" -#~ msgstr "Ảnh" - #~ msgid "Viewer (png):" #~ msgstr "Trình xem (png):" diff --git a/po/xsane.pot b/po/xsane.pot index 323832f..f7a2823 100644 --- a/po/xsane.pot +++ b/po/xsane.pot @@ -7,7 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,6 +35,7 @@ msgid "About" msgstr "" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "" @@ -73,6 +75,10 @@ msgstr "" msgid "fax project" msgstr "" +#. WINDOW_FAX_PROJECT_BROWSE +msgid "browse for fax project" +msgstr "" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "" @@ -85,6 +91,10 @@ msgstr "" msgid "E-mail project" msgstr "" +#. WINDOW_EMAIL_PROJECT_BROWSE +msgid "browse for email project" +msgstr "" + #. WINDOW_EMAIL_RENAME msgid "rename e-mail image" msgstr "" @@ -97,6 +107,10 @@ msgstr "" msgid "multipage project" msgstr "" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +msgid "browse for multipage project" +msgstr "" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "" @@ -142,6 +156,7 @@ msgid "Preview" msgstr "" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "" @@ -174,14 +189,17 @@ msgid "select temporary directory" msgstr "" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "" @@ -193,6 +211,30 @@ msgstr "" msgid "No devices available" msgstr "" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +msgid "select scanner default color ICM-profile" +msgstr "" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +msgid "select scanner default gray ICM-profile" +msgstr "" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +msgid "select custom proofing ICM-profile" +msgstr "" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "select working color space ICM-profile" +msgstr "" + +#. WINDOW_PRINTER_ICM_PROFILE +msgid "select printer ICM-profile" +msgstr "" + #. MENU_FILE msgid "File" msgstr "" @@ -210,6 +252,7 @@ msgid "Window" msgstr "" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "" @@ -225,6 +268,11 @@ msgstr "" msgid "Geometry" msgstr "" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "" @@ -238,6 +286,7 @@ msgid "Quit" msgstr "" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "" @@ -254,6 +303,7 @@ msgid "Scale" msgstr "" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "" @@ -445,11 +495,11 @@ msgstr "" msgid "Skip existing filenames" msgstr "" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -466,7 +516,7 @@ msgid "Main window size fixed" msgstr "" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +msgid "Disable GIMP preview gamma" msgstr "" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -489,6 +539,11 @@ msgstr "" msgid "Use GUI progress pipe" msgstr "" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "" @@ -505,6 +560,11 @@ msgstr "" msgid "Type" msgstr "" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +msgid "Color management function" +msgstr "" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "" @@ -577,16 +637,10 @@ msgstr "" msgid "16 bit output formats:" msgstr "" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" - #. TEXT_REDUCE_16BIT_TO_8BIT msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" #. TEXT_AUTHORIZATION_REQ @@ -621,6 +675,10 @@ msgstr "" msgid "package" msgstr "" +#. TEXT_WITH_CMS_FUNCTION +msgid "with color management function" +msgstr "" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "" @@ -733,7 +791,8 @@ msgstr "" #. TEXT_VIEWER_IMAGE_INFO #, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" #. TEXT_DESPECKLE_RADIUS @@ -785,6 +844,7 @@ msgid "Name:" msgstr "" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "" @@ -805,18 +865,22 @@ msgid "Color resolution (dpi):" msgstr "" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "" @@ -836,7 +900,15 @@ msgstr "" msgid "Printer gamma blue:" msgstr "" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +msgid "Embed scanner ICM profile as CSA" +msgstr "" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +msgid "Embed printer ICM profile as CRD" +msgstr "" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -960,7 +1032,7 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1036,10 +1108,41 @@ msgstr "" msgid "all" msgstr "" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +msgid "Scanner default color ICM-profile" +msgstr "" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +msgid "Scanner default gray ICM-profile" +msgstr "" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +msgid "Custom proofing ICM-profile" +msgstr "" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +msgid "Working color space ICM-profile" +msgstr "" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "" @@ -1048,14 +1151,17 @@ msgid "Filetype" msgstr "" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL msgid "E-mail" msgstr "" @@ -1147,6 +1253,11 @@ msgstr "" msgid "Rotate postscript" msgstr "" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +msgid "Enable color management" +msgstr "" + #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" msgstr "" @@ -1191,6 +1302,78 @@ msgstr "" msgid "Problems?" msgstr "" +#. MENU_ITEM_CMS_PROOFING +msgid "Proofing" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +msgid "Proof printer" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +msgid "Rendering intent" +msgstr "" + +#. MENU_ITEM_CMS_PROOFING_INTENT +msgid "Proofing rendering intent" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +msgid "Saturation" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +msgid "White" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_RED +msgid "Red" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +msgid "Blue" +msgstr "" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "" @@ -1307,6 +1490,18 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +msgid "Embed scanner ICM profile" +msgstr "" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +msgid "Convert to working color space" +msgstr "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "" @@ -1364,6 +1559,10 @@ msgstr "" msgid "OCR in progress" msgstr "" +#. PROGRESS_ICM_CONVERSION +msgid "converting colors" +msgstr "" + #. DESC_SCAN_START msgid "Start scan " msgstr "" @@ -1414,7 +1613,7 @@ msgid "" msgstr "" #. DESC_FAXPROJECT -msgid "Enter name of fax project" +msgid "Enter fax project directory name" msgstr "" #. DESC_FAXPAGENAME @@ -1425,8 +1624,12 @@ msgstr "" msgid "Enter receiver phone number or address" msgstr "" +#. DESC_FAX_PROJECT_BROWSE +msgid "Browse for fax project directory" +msgstr "" + #. DESC_EMAIL_PROJECT -msgid "Enter name of e-mail project" +msgid "Enter e-mail project directory name" msgstr "" #. DESC_EMAIL_IMAGENAME @@ -1437,6 +1640,10 @@ msgstr "" msgid "Enter e-mail address" msgstr "" +#. DESC_EMAIL_PROJECT_BROWSE +msgid "Browse for email project directory" +msgstr "" + #. DESC_EMAIL_SUBJECT msgid "Enter subject of e-mail" msgstr "" @@ -1446,7 +1653,11 @@ msgid "Select filetype for image attachments" msgstr "" #. DESC_MULTIPAGE_PROJECT -msgid "Enter name of multipage project" +msgid "Enter multipage project directory name" +msgstr "" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +msgid "Browse for multipage project directory" msgstr "" #. DESC_MULTIPAGE_FILETYPE @@ -1567,7 +1778,7 @@ msgid "" msgstr "" #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +msgid "Autoadjust gamma, brightness and contrast " msgstr "" #. DESC_ENH_DEFAULT @@ -1641,18 +1852,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "" @@ -1672,9 +1887,17 @@ msgstr "" msgid "Additional gamma value for blue component for photocopy" msgstr "" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1728,14 +1951,14 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1747,7 +1970,8 @@ msgid "" msgstr "" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" #. DESC_PSFILE_WIDTH @@ -1775,7 +1999,7 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "" #. DESC_PREVIEW_COLORMAP @@ -1861,6 +2085,14 @@ msgstr "" msgid "Do color correction after preview scan has finished" msgstr "" +#. DESC_RENDERING_INTENT +msgid "Select rendering intent for preview and saving" +msgstr "" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "" @@ -1889,8 +2121,8 @@ msgstr "" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -1966,8 +2198,8 @@ msgstr "" msgid "write" msgstr "" -#. DESC_PERMISSION_EXECUTE -msgid "execute" +#. DESC_PERMISSION_SEARCH +msgid "search" msgstr "" #. DESC_ADD_BATCH @@ -2134,6 +2366,30 @@ msgstr "" msgid "Turns on automatic mode" msgstr "" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +msgid "Browse for scanner default color ICM-profile" +msgstr "" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +msgid "Browse for scanner default gray ICM-profile" +msgstr "" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +msgid "Browse for display ICM-profile" +msgstr "" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +msgid "Browse for printer ICM-profile" +msgstr "" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +msgid "Browse for custom proofing ICM-profile" +msgstr "" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +msgid "Browse for working color space ICM-profile" +msgstr "" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "" @@ -2186,11 +2442,6 @@ msgstr "" msgid "Can't handle depth" msgstr "" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "" @@ -2418,10 +2669,58 @@ msgstr "" msgid "Unsupported %d-bit output format: %s" msgstr "" +#. ERR_CMS_CONVERSION +msgid "Error during CMS conversion:" +msgstr "" + +#. ERR_CMS_OPEN_ICM_FILE +msgid "Could not open" +msgstr "" + +#. CMS_SCANNER_ICM +msgid "scanner ICM profile" +msgstr "" + +#. CMS_DISPLAY_ICM +msgid "display ICM profile" +msgstr "" + +#. CMS_PROOF_ICM +msgid "proofing ICM profile" +msgstr "" + +#. ERR_CMS_CREATE_TRANSFORM +msgid "Could not create transform" +msgstr "" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +msgid "Images" +msgstr "" + +#. FILE_FILTER_XBL +msgid "XSane batch list" +msgstr "" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +msgid "XSane device preferences" +msgstr "" + +#. FILE_FILTER_RC +msgid "XSane preferences" +msgstr "" + #. TEXT_USAGE msgid "Usage:" msgstr "" diff --git a/po/zh.gmo b/po/zh.gmo index 609730e..f7f565a 100644 Binary files a/po/zh.gmo and b/po/zh.gmo differ diff --git a/po/zh.po b/po/zh.po index 071cf0a..cbc1cee 100644 --- a/po/zh.po +++ b/po/zh.po @@ -5,7 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" "PO-Revision-Date: 2003-03-27 12:00+0100\n" "Last-Translator: Wang leolarrel \n" "Language-Team: zh_TW\n" @@ -32,6 +33,7 @@ msgid "About" msgstr "有關" #. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION msgid "About translation" msgstr "關於翻譯" @@ -71,6 +73,11 @@ msgstr "更名批次區" msgid "fax project" msgstr "傳真專案" +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "輸入傳真專案的名稱" + #. WINDOW_FAX_RENAME msgid "rename fax page" msgstr "更名傳真專案" @@ -84,6 +91,11 @@ msgstr "插入ps檔案到傳真" msgid "E-mail project" msgstr "電子郵件專案" +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "輸入郵件專案的名稱" + #. WINDOW_EMAIL_RENAME #, fuzzy msgid "rename e-mail image" @@ -99,6 +111,11 @@ msgstr "插入檔案到電子郵件" msgid "multipage project" msgstr "刪除專案" +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "刪除專案" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "更名預設區" @@ -146,6 +163,7 @@ msgid "Preview" msgstr "預覽" #. WINDOW_VIEWER +#. MENU_ITEM_VIEWER msgid "Viewer" msgstr "檢視器" @@ -178,14 +196,17 @@ msgid "select temporary directory" msgstr "選擇暫存目錄" #. WINDOW_SCALE +#. DESC_VIEWER_SCALE msgid "Scale image" msgstr "調整影像" #. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE msgid "Despeckle image" msgstr "" #. WINDOW_BLUR +#. DESC_VIEWER_BLUR msgid "Blur image" msgstr "模糊影像" @@ -197,6 +218,35 @@ msgstr "儲存環境設定" msgid "No devices available" msgstr "沒有裝置可以使用" +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "刪除列表機" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "刪除列表機" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "選擇輸出檔名" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "刪除列表機" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "刪除列表機" + #. MENU_FILE msgid "File" msgstr "檔案" @@ -214,6 +264,7 @@ msgid "Window" msgstr "視窗" #. MENU_HELP +#. BUTTON_HELP msgid "Help" msgstr "幫助" @@ -229,6 +280,11 @@ msgstr "過濾器" msgid "Geometry" msgstr "" +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" msgstr "有關Xsane" @@ -242,6 +298,7 @@ msgid "Quit" msgstr "離開" #. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE msgid "Save image" msgstr "儲存影像" @@ -258,6 +315,7 @@ msgid "Scale" msgstr "調整" #. MENU_ITEM_CLOSE +#. BUTTON_CLOSE msgid "Close" msgstr "關閉" @@ -456,11 +514,11 @@ msgstr "覆寫警告" msgid "Skip existing filenames" msgstr "省略已存在的檔案" -#. RADIO_BUTTON_SAVE_PS_FLATDECODED +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED msgid "Save postscript zlib compressed (ps level 3)" msgstr "" -#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED msgid "Save PDF zlib compressed" msgstr "" @@ -477,7 +535,8 @@ msgid "Main window size fixed" msgstr "主視窗大小固定" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable gimp preview gamma" +#, fuzzy +msgid "Disable GIMP preview gamma" msgstr "取消gimp預覽gamma" #. RADIO_BUTTON_PRIVATE_COLORMAP @@ -500,6 +559,11 @@ msgstr "自動修正顏色" msgid "Use GUI progress pipe" msgstr "" +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + #. TEXT_SCANNING_DEVICES msgid "scanning for devices" msgstr "裝置掃描中" @@ -516,6 +580,12 @@ msgstr "XSane 選項" msgid "Type" msgstr "型態" +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "全色範圍" + #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" msgstr "掃描器和後端驅動程式:" @@ -588,18 +658,11 @@ msgstr "8位元輸出格式" msgid "16 bit output formats:" msgstr "16位元輸出格式" -#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT -msgid "" -"Gimp does not support depth 16 bits/color.\n" -"Do you want to reduce the depth to 8 bits/color?" -msgstr "" -"Gimp 不支援 16位元/色彩 深度\n" -"你想要簡化成8 位元/色彩 深度嗎?" - #. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy msgid "" -"Bit depth 16 bits/color is not supported for this output format.\n" -"Do you want to reduce the depth to 8 bits/color?" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" msgstr "" "輸出格式不支援16位元/色彩 深度\n" "你想要簡化成8 位元/色彩 深度嗎?" @@ -636,6 +699,11 @@ msgstr "版本" msgid "package" msgstr "包裝" +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "全色範圍" + #. TEXT_WITH_GIMP_SUPPORT msgid "with GIMP support" msgstr "有GIMP支援" @@ -755,9 +823,10 @@ msgid "Medium Name:" msgstr "環境名稱" #. TEXT_VIEWER_IMAGE_INFO -#, c-format +#, fuzzy, c-format msgid "" -"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" msgstr "" "大小 %d x %d 像素, %d bit/color, %d 色, %1.0f dpi x %1.0f dpi, %1.1f %s" @@ -810,6 +879,7 @@ msgid "Name:" msgstr "名稱" #. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND msgid "Command:" msgstr "命令" @@ -830,18 +900,22 @@ msgid "Color resolution (dpi):" msgstr "色彩解析度 (dpi):" #. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH msgid "Width" msgstr "寬" #. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT msgid "Height" msgstr "高" #. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT msgid "Left offset" msgstr "左邊差距" #. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM msgid "Bottom offset" msgstr "下邊差距" @@ -861,7 +935,17 @@ msgstr "列表機 綠色gamma" msgid "Printer gamma blue:" msgstr "列表機 藍色gamma" -#. TEXT_SETUP_PRINTER_PS_FLATDECODED +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "刪除列表機" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "刪除列表機" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for printing" msgstr "" @@ -986,7 +1070,7 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "檢視器(Postscript)" -#. TEXT_SETUP_FAX_PS_FLATDECODED +#. TEXT_SETUP_FAX_PS_FLATEDECODED msgid "Create zlib compressed postscript image (ps level 3) for fax" msgstr "" @@ -1065,10 +1149,45 @@ msgstr "群組" msgid "all" msgstr "所有" +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "刪除列表機" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "刪除列表機" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "刪除列表機" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "影像檔案瀏覽" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + msgid "new media" msgstr "" #. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE msgid "Save" msgstr "儲存" @@ -1078,14 +1197,17 @@ msgid "Filetype" msgstr "檔案" #. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY msgid "Copy" msgstr "複製" #. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX msgid "Fax" msgstr "傳真" #. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL #, fuzzy msgid "E-mail" msgstr "電子郵件" @@ -1178,6 +1300,12 @@ msgstr "顯示解析度列表" msgid "Rotate postscript" msgstr "" +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "全色範圍" + # #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" @@ -1224,6 +1352,86 @@ msgstr "" msgid "Problems?" msgstr "問題?" +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "增加列表機" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "增加列表機" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "增加列表機" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "增加列表機" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "授權" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "寫入" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "還原" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "模糊" + #. MENU_ITEM_COUNTER_LEN_INACTIVE msgid "inactive" msgstr "失效" @@ -1347,6 +1555,20 @@ msgstr "" msgid "ASMTP CRAM-MD5" msgstr "" +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "刪除列表機" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "自動修正顏色" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "掃描中" @@ -1405,6 +1627,11 @@ msgstr "模糊影像" msgid "OCR in progress" msgstr "" +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "自動修正顏色" + #. DESC_SCAN_START msgid "Start scan " msgstr "開始掃描" @@ -1455,8 +1682,9 @@ msgid "" msgstr "" #. DESC_FAXPROJECT -msgid "Enter name of fax project" -msgstr "輸入傳真專案的名稱" +#, fuzzy +msgid "Enter fax project directory name" +msgstr "暫存目錄瀏覽" #. DESC_FAXPAGENAME msgid "Enter new name for faxpage" @@ -1466,10 +1694,15 @@ msgstr "輸入傳真專案的新名稱" msgid "Enter receiver phone number or address" msgstr "輸入接收的電話號碼或位址" +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "暫存目錄瀏覽" + #. DESC_EMAIL_PROJECT #, fuzzy -msgid "Enter name of e-mail project" -msgstr "輸入郵件專案的名稱" +msgid "Enter e-mail project directory name" +msgstr "暫存目錄瀏覽" #. DESC_EMAIL_IMAGENAME #, fuzzy @@ -1481,6 +1714,11 @@ msgstr "輸入郵件專案的新名稱" msgid "Enter e-mail address" msgstr "輸入郵件位址" +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "暫存目錄瀏覽" + #. DESC_EMAIL_SUBJECT #, fuzzy msgid "Enter subject of e-mail" @@ -1492,8 +1730,13 @@ msgstr "" #. DESC_MULTIPAGE_PROJECT #, fuzzy -msgid "Enter name of multipage project" -msgstr "輸入郵件專案的名稱" +msgid "Enter multipage project directory name" +msgstr "暫存目錄瀏覽" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "暫存目錄瀏覽" #. DESC_MULTIPAGE_FILETYPE #, fuzzy @@ -1618,7 +1861,8 @@ msgstr "" # #. DESC_ENH_AUTO -msgid "Autoadjust gamma, brightness and contrast " +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " msgstr "自動調整gamma,亮度和反差" #. DESC_ENH_DEFAULT @@ -1692,18 +1936,22 @@ msgid "Resolution with which color images are printed and saved in postscript" msgstr "" #. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH msgid "Width of printable area" msgstr "列印區寬度" #. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT msgid "Height of printable area" msgstr "列印區高度" #. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET msgid "Left offset from the edge of the paper to the printable area" msgstr "從頁的邊緣到列印區的左差距" #. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET msgid "Bottom offset from the edge of the paper to the printable area" msgstr "從頁的邊緣到列印區的下差距" @@ -1723,9 +1971,17 @@ msgstr "" msgid "Additional gamma value for blue component for photocopy" msgstr "" -#. DESC_PRINTER_PS_FLATDECODED +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED msgid "" -"Create zlib compressed postscript image for printer (flatdecode).\n" +"Create zlib compressed postscript image for printer (flatedecode).\n" "The printer has to understand postscript level 3!" msgstr "" @@ -1779,14 +2035,14 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "" -#. DESC_SAVE_PS_FLATDECODED +#. DESC_SAVE_PS_FLATEDECODED msgid "" -"compress postscript image with zlib algorithm (flatdecode). When you want to " -"print such a file your printer has to understand postscript level 3" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" msgstr "" -#. DESC_SAVE_PDF_FLATDECODED -msgid "compress PDF image with zlib algorithm (flatdecode)." +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." msgstr "" #. DESC_SAVE_PNM16_AS_ASCII @@ -1798,7 +2054,8 @@ msgid "" msgstr "" #. DESC_REDUCE_16BIT_TO_8BIT -msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" msgstr "" #. DESC_PSFILE_WIDTH @@ -1826,7 +2083,8 @@ msgid "Use fixed main window size or scrolled, resizable main window" msgstr "使用固定主視窗大小,或者滑動,更改主視窗大小" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA -msgid "Disable preview gamma when XSane runs as gimp plugin" +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" msgstr "取消預覽gamma當XSane跑在gimp plugin 時" #. DESC_PREVIEW_COLORMAP @@ -1912,6 +2170,15 @@ msgstr "預覽掃描後選擇掃描區已經完成了" msgid "Do color correction after preview scan has finished" msgstr "預覽掃描後作顏色校正已經完成了" +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "預覽掃描後選擇掃描區已經完成了" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" msgstr "輸入在傳真模式下被執行的命令" @@ -1940,8 +2207,8 @@ msgstr "輸入檢視傳真時要執行的命令" msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" msgstr "" -#. DESC_FAX_PS_FLATDECODED -msgid "Create zlib compressed postscript image for fax (flatdecode)" +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" msgstr "" #. DESC_SMTP_SERVER @@ -2022,9 +2289,10 @@ msgstr "讀取" msgid "write" msgstr "寫入" -#. DESC_PERMISSION_EXECUTE -msgid "execute" -msgstr "執行" +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "使用者" #. DESC_ADD_BATCH msgid "Add selection for batch scan" @@ -2190,6 +2458,36 @@ msgstr "從批次列表刪除選擇的區域" msgid "Turns on automatic mode" msgstr "" +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "影像檔案瀏覽" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "影像檔案瀏覽" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "影像檔案瀏覽" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "影像檔案瀏覽" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "影像檔案瀏覽" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "影像檔案瀏覽" + #. ERR_HOME_DIR msgid "Failed to determine home directory:" msgstr "無法決定Home目錄" @@ -2242,11 +2540,6 @@ msgstr "儲存時錯誤" msgid "Can't handle depth" msgstr "無法取得深度" -#. ERR_GIMP_BAD_DEPTH -#, c-format -msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP不能取得深度 %d bits/color" - #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" msgstr "儲存成未知的檔案格式" @@ -2474,10 +2767,68 @@ msgstr "%s 不是一個postscript 檔" msgid "Unsupported %d-bit output format: %s" msgstr "不支援 %d -bit 輸出格式: %s" +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "儲存時錯誤" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "開啟失敗" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "刪除列表機" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "影像檔案瀏覽" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "刪除列表機" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "不能建立暫存檔" + #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" msgstr "檢視器影像沒有儲存" +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "使用:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "儲存批次列表" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "離開時儲存裝置偏好設定" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "偏好設定" + #. TEXT_USAGE msgid "Usage:" msgstr "使用:" @@ -2822,68 +3173,63 @@ msgstr "記憶體不足" msgid "Access to resource has been denied" msgstr "資源存取被禁止" -#~ msgid "Could not create temporary file" -#~ msgstr "不能建立暫存檔" - -#~ msgid "Could not create temporary preview files" -#~ msgstr "不能建立暫存預覽檔" - -#~ msgid "Could not create filenames for preview files" -#~ msgstr "不能建立預覽檔的檔名" - #, fuzzy -#~ msgid "POP3 authentication" -#~ msgstr "授權" - -#~ msgid "XSane mode" -#~ msgstr "XSane 模式" - -#~ msgid "POP3 user:" -#~ msgstr "POP3 帳號:" +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "刪除列表機" -#~ msgid "POP3 password:" -#~ msgstr "POP3密碼:" +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "刪除列表機" -# #, fuzzy -#~ msgid "Multipage project not created" -#~ msgstr "信件專案未建立" +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "刪除列表機" -# #, fuzzy -#~ msgid "Multipage project created" -#~ msgstr "信件專案已建立" +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "刪除列表機" -# #, fuzzy -#~ msgid "Multipage project changed" -#~ msgstr "信件專案更改了" +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "刪除列表機" #, fuzzy -#~ msgid "Saving multipage file" -#~ msgstr "儲存影像" +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "刪除列表機" -# #, fuzzy -#~ msgid "Multipage saving aborted" -#~ msgstr "信件專案已建立" +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "影像檔案瀏覽" -#~ msgid "Image" -#~ msgstr "影像" +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "影像檔案瀏覽" -#~ msgid "Viewer (png):" -#~ msgstr "檢視器(png)" +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP不能取得深度 %d bits/color" #, fuzzy -#~ msgid "Enter command to be executed to view an e-mail image" -#~ msgstr "輸入當檢視一個郵件影像時要執行的命令" +#~ msgid "scanner reflective ICM profile" +#~ msgstr "刪除列表機" #, fuzzy -#~ msgid "Failed to execute e-mail image viewer:" -#~ msgstr "不能執行郵件影像檢視器" +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "刪除列表機" -#~ msgid "Step" -#~ msgstr "步驟" +#~ msgid "Enter name of fax project" +#~ msgstr "輸入傳真專案的名稱" -#~ msgid "Mail" -#~ msgstr "電子郵件" +#, fuzzy +#~ msgid "Enter name of e-mail project" +#~ msgstr "輸入郵件專案的名稱" + +#, fuzzy +#~ msgid "Enter name of multipage project" +#~ msgstr "輸入郵件專案的名稱" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp 不支援 16位元/色彩 深度\n" +#~ "你想要簡化成8 位元/色彩 深度嗎?" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo new file mode 100644 index 0000000..71d1b5f Binary files /dev/null and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..1729b47 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,3203 @@ +# chines translation for xsane +# Copyright (C) 2004 +# leolarrel +# +msgid "" +msgstr "" +"Project-Id-Version: XSANE 0.991\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-25 23:44+0100\n" +"PO-Revision-Date: 2003-03-27 12:00+0100\n" +"Last-Translator: gnome-cn@gmail.com\n" +"Language-Team: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 16bit\n" + +#. Please translate this to the correct directory name (eg. german=>de) +#. XSANE_LANGUAGE_DIR +msgid "language_dir" +msgstr "zh_CN" + +#. XSANE_COPYRIGHT_SIGN +msgid "(c)" +msgstr "(c)" + +#. can be translated with \251 +#. FILENAME_PREFIX_CLONE_OF +msgid "clone-of-" +msgstr "" + +#. WINDOW_ABOUT_XSANE +msgid "About" +msgstr "有关" + +#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION +#. MENU_ITEM_ABOUT_TRANSLATION +msgid "About translation" +msgstr "关于翻译" + +#. WINDOW_AUTHORIZE +msgid "authorization" +msgstr "授权" + +#. WINDOW_GPL +msgid "GPL - the license" +msgstr "" + +#. WINDOW_EULA +msgid "End User License Agreement" +msgstr "终端使用者条约" + +#. WINDOW_INFO +msgid "info" +msgstr "资讯" + +#. WINDOW_LOAD_BATCH_LIST +msgid "load batch list" +msgstr "载入批次列表" + +#. WINDOW_SAVE_BATCH_LIST +msgid "save batch list" +msgstr "储存批次列表" + +#. WINDOW_BATCH_SCAN +msgid "batch scan" +msgstr "批次扫描" + +#. WINDOW_BATCH_RENAME +msgid "rename batch area" +msgstr "更名批次区" + +#. WINDOW_FAX_PROJECT +msgid "fax project" +msgstr "传真专案" + +#. WINDOW_FAX_PROJECT_BROWSE +#, fuzzy +msgid "browse for fax project" +msgstr "输入传真专案的名称" + +#. WINDOW_FAX_RENAME +msgid "rename fax page" +msgstr "更名传真专案" + +#. WINDOW_FAX_INSERT +msgid "insert ps-file into fax" +msgstr "插入ps档案到传真" + +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "电子邮件工程" + +#. WINDOW_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "browse for email project" +msgstr "输入邮件专案的名称" + +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "更名电子邮件图像" + +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "插入文件到电子邮件" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "多页工程" + +#. WINDOW_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "browse for multipage project" +msgstr "多页工程" + +#. WINDOW_PRESET_AREA_RENAME +msgid "rename preset area" +msgstr "更名预设区" + +# +#. WINDOW_PRESET_AREA_ADD +msgid "add preset area" +msgstr "更名预设区" + +# +#. WINDOW_MEDIUM_RENAME +msgid "rename medium" +msgstr "更名电子邮件专案" + +#. WINDOW_MEDIUM_ADD +msgid "add new medium" +msgstr "添加新媒体" + +#. WINDOW_SETUP +msgid "setup" +msgstr "设定" + +#. WINDOW_HISTOGRAM +msgid "Histogram" +msgstr "矩形图" + +#. WINDOW_GAMMA +msgid "Gamma curve" +msgstr "Gamma 曲线" + +#. WINDOW_STANDARD_OPTIONS +msgid "Standard options" +msgstr "基本选项" + +#. WINDOW_ADVANCED_OPTIONS +msgid "Advanced options" +msgstr "进阶选项" + +#. WINDOW_DEVICE_SELECTION +msgid "device selection" +msgstr "装置选择" + +#. WINDOW_PREVIEW +msgid "Preview" +msgstr "预览" + +#. WINDOW_VIEWER +#. MENU_ITEM_VIEWER +msgid "Viewer" +msgstr "检视器" + +#. WINDOW_VIEWER_OUTPUT_FILENAME +msgid "Viewer: select output filename" +msgstr "检视器:选择输出档名" + +#. WINDOW_OCR_OUTPUT_FILENAME +msgid "Select output filename for OCR text file" +msgstr "为OCR文字档选择输出档名" + +#. WINDOW_OUTPUT_FILENAME +msgid "select output filename" +msgstr "选择输出档名" + +#. WINDOW_SAVE_SETTINGS +msgid "save device settings" +msgstr "储存装置选项" + +#. WINDOW_LOAD_SETTINGS +msgid "load device settings" +msgstr "载入装置选项" + +#. WINDOW_CHANGE_WORKING_DIR +msgid "change working directory" +msgstr "更改工作目录" + +#. WINDOW_TMP_PATH +msgid "select temporary directory" +msgstr "选择暂存目录" + +#. WINDOW_SCALE +#. DESC_VIEWER_SCALE +msgid "Scale image" +msgstr "调整影像" + +#. WINDOW_DESPECKLE +#. DESC_VIEWER_DESPECKLE +msgid "Despeckle image" +msgstr "去斑" + +#. WINDOW_BLUR +#. DESC_VIEWER_BLUR +msgid "Blur image" +msgstr "模糊影像" + +#. WINDOW_STORE_MEDIUM +msgid "Store medium definition" +msgstr "储存环境设定" + +#. WINDOW_NO_DEVICES +msgid "No devices available" +msgstr "没有装置可以使用" + +#. WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "select scanner default color ICM-profile" +msgstr "删除列表机" + +#. WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "select scanner default gray ICM-profile" +msgstr "删除列表机" + +#. WINDOW_DISPLAY_ICM_PROFILE +msgid "select display ICM-profile" +msgstr "" + +#. WINDOW_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "select custom proofing ICM-profile" +msgstr "选择输出档名" + +#. WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "select working color space ICM-profile" +msgstr "删除列表机" + +#. WINDOW_PRINTER_ICM_PROFILE +#, fuzzy +msgid "select printer ICM-profile" +msgstr "删除列表机" + +#. MENU_FILE +msgid "File" +msgstr "档案" + +#. MENU_PREFERENCES +msgid "Preferences" +msgstr "偏好设定" + +#. MENU_VIEW +msgid "View" +msgstr "检视" + +#. MENU_WINDOW +msgid "Window" +msgstr "视窗" + +#. MENU_HELP +#. BUTTON_HELP +msgid "Help" +msgstr "帮助" + +#. MENU_EDIT +msgid "Edit" +msgstr "编辑" + +#. MENU_FILTERS +msgid "Filters" +msgstr "过滤器" + +#. MENU_GEOMETRY +msgid "Geometry" +msgstr "大小" + +#. MENU_COLOR_MANAGEMENT +#. NOTEBOOK_COLOR_MANAGEMENT_OPTIONS +msgid "Color management" +msgstr "" + +#. MENU_ITEM_ABOUT_XSANE +msgid "About XSane" +msgstr "有关Xsane" + +#. MENU_ITEM_INFO +msgid "Info" +msgstr "资讯" + +#. MENU_ITEM_QUIT +msgid "Quit" +msgstr "离开" + +#. MENU_ITEM_SAVE_IMAGE +#. DESC_VIEWER_SAVE +msgid "Save image" +msgstr "储存影像" + +#. MENU_ITEM_OCR +msgid "OCR - save as text" +msgstr "OCR - 存成文字档" + +#. MENU_ITEM_CLONE +msgid "Clone" +msgstr "复制" + +#. MENU_ITEM_SCALE +msgid "Scale" +msgstr "调整" + +#. MENU_ITEM_CLOSE +#. BUTTON_CLOSE +msgid "Close" +msgstr "关闭" + +#. MENU_ITEM_UNDO +msgid "Undo" +msgstr "回覆" + +#. MENU_ITEM_DESPECKLE +msgid "Despeckle" +msgstr "去斑" + +#. MENU_ITEM_BLUR +msgid "Blur" +msgstr "模糊" + +#. MENU_ITEM_ROTATE90 +msgid "Rotate 90" +msgstr "旋转 90度" + +# +#. MENU_ITEM_ROTATE180 +msgid "Rotate 180" +msgstr "旋转180度" + +# +#. MENU_ITEM_ROTATE270 +msgid "Rotate 270" +msgstr "旋转270度" + +# +#. MENU_ITEM_MIRROR_X +msgid "Mirror |" +msgstr "水平镜像 |" + +# +#. MENU_ITEM_MIRROR_Y +msgid "Mirror -" +msgstr "垂直镜像 -" + +#. FRAME_RAW_IMAGE +msgid "Raw image" +msgstr "实际影像" + +#. FRAME_ENHANCED_IMAGE +msgid "Enhanced image" +msgstr "增强影像" + +#. BUTTON_SCAN +msgid "Scan" +msgstr "扫描" + +#. BUTTON_OK +msgid "Ok" +msgstr "确定" + +#. BUTTON_ACCEPT +msgid "Accept" +msgstr "接受" + +#. BUTTON_NOT_ACCEPT +msgid "Not accept" +msgstr "不接受" + +#. BUTTON_APPLY +msgid "Apply" +msgstr "应用" + +#. BUTTON_CANCEL +msgid "Cancel" +msgstr "取消" + +#. BUTTON_REDUCE +msgid "Reduce" +msgstr "还原" + +#. BUTTON_CONT_AT_OWN_RISK +msgid "Continue at your own risk" +msgstr "继续你自己的冒险" + +#. BUTTON_BROWSE +msgid "Browse" +msgstr "浏览" + +#. BUTTON_OVERWRITE +msgid "Overwrite" +msgstr "覆写" + +#. BUTTON_BATCH_LIST_SCAN +msgid "Scan batch list" +msgstr "扫描批次列表" + +#. BUTTON_BATCH_AREA_SCAN +msgid "Scan selected area" +msgstr "扫描选择的区域" + +#. BUTTON_PAGE_DELETE +msgid "Delete page" +msgstr "删除页" + +#. BUTTON_PAGE_SHOW +msgid "Show page" +msgstr "显示页" + +#. BUTTON_PAGE_RENAME +msgid "Rename page" +msgstr "更名页" + +#. BUTTON_IMAGE_DELETE +msgid "Delete image" +msgstr "删除影像" + +#. BUTTON_IMAGE_SHOW +msgid "Show image" +msgstr "显示影像" + +# +#. BUTTON_IMAGE_EDIT +msgid "Edit image" +msgstr "编辑影像" + +#. BUTTON_IMAGE_RENAME +msgid "Rename image" +msgstr "更名影像" + +#. BUTTON_FILE_INSERT +msgid "Insert file" +msgstr "插入档案" + +#. BUTTON_CREATE_PROJECT +msgid "Create project" +msgstr "建立专案" + +#. BUTTON_SEND_PROJECT +msgid "Send project" +msgstr "传送专案" + +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "保存多页文件" + +#. BUTTON_DELETE_PROJECT +msgid "Delete project" +msgstr "删除专案" + +#. BUTTON_ADD_PRINTER +msgid "Add printer" +msgstr "增加列表机" + +#. BUTTON_DELETE_PRINTER +msgid "Delete printer" +msgstr "删除列表机" + +#. BUTTON_PREVIEW_ACQUIRE +msgid "Acquire preview" +msgstr "获得预览" + +#. BUTTON_PREVIEW_CANCEL +msgid "Cancel preview" +msgstr "删除预览" + +#. BUTTON_DISCARD_IMAGE +msgid "Discard image" +msgstr "抛弃预览" + +#. BUTTON_DISCARD_ALL_IMAGES +msgid "Discard all images" +msgstr "抛弃所有影像" + +#. BUTTON_DO_NOT_CLOSE +msgid "Do not close" +msgstr "不要关闭" + +#. BUTTON_SCALE_BIND +msgid "Bind scale" +msgstr "" + +#. RADIO_BUTTON_FINE_MODE +msgid "Fine mode" +msgstr "" + +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML邮件" + +#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT +msgid "Save device preferences at exit" +msgstr "离开时储存装置偏好设定" + +#. RADIO_BUTTON_OVERWRITE_WARNING +msgid "Overwrite warning" +msgstr "覆写警告" + +#. RADIO_BUTTON_SKIP_EXISTING_NRS +msgid "Skip existing filenames" +msgstr "省略已存在的档案" + +#. RADIO_BUTTON_SAVE_PS_FLATEDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATEDECODED +msgid "Save PDF zlib compressed" +msgstr "" + +#. RADIO_BUTTON_SAVE_PNM16_AS_ASCII +msgid "Save 16bit pnm in ascii format" +msgstr "储存16位元pnm在ascii格式" + +#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT +msgid "Reduce 16 bit image to 8 bit" +msgstr "简化16位元影像到8位元" + +#. RADIO_BUTTON_WINDOW_FIXED +msgid "Main window size fixed" +msgstr "主视窗大小固定" + +#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA +#, fuzzy +msgid "Disable GIMP preview gamma" +msgstr "取消gimp预览gamma" + +#. RADIO_BUTTON_PRIVATE_COLORMAP +msgid "Use private colormap" +msgstr "使用先前的colormap" + +#. RADIO_BUTTON_AUTOENHANCE_GAMMA +msgid "Autoenhance gamma" +msgstr "自动增强gamma" + +#. RADIO_BUTTON_PRESELECT_SCANAREA +msgid "Preselect scanarea" +msgstr "预先选择扫描区" + +#. RADIO_BUTTON_AUTOCORRECT_COLORS +msgid "Autocorrect colors" +msgstr "自动修正颜色" + +#. RADIO_BUTTON_OCR_USE_GUI_PIPE +msgid "Use GUI progress pipe" +msgstr "" + +#. RADIO_BUTTON_CMS_BPC +#. MENU_ITEM_CMS_BLACK_POINT_COMPENSATION +msgid "Black point compensation" +msgstr "" + +#. TEXT_SCANNING_DEVICES +msgid "scanning for devices" +msgstr "装置扫描中" + +#. TEXT_AVAILABLE_DEVICES +msgid "Available devices:" +msgstr "可用的装置有:" + +#. TEXT_XSANE_OPTIONS +msgid "XSane options" +msgstr "XSane 选项" + +#. TEXT_FILETYPE +msgid "Type" +msgstr "类型" + +#. TEXT_CMS_FUNCTION +#. DESC_CMS_FUNCTION +#, fuzzy +msgid "Color management function" +msgstr "全色范围" + +#. TEXT_SCANNER_BACKEND +msgid "Scanner and backend:" +msgstr "扫描器和后端驱动程式:" + +#. TEXT_VENDOR +msgid "Vendor:" +msgstr "提供者:" + +#. TEXT_MODEL +msgid "Model:" +msgstr "样式:" + +#. TEXT_TYPE +msgid "Type:" +msgstr "型态:" + +#. TEXT_DEVICE +msgid "Device:" +msgstr "装置:" + +#. TEXT_LOADED_BACKEND +msgid "Loaded backend:" +msgstr "载入的后端驱动程式:" + +#. TEXT_SANE_VERSION +msgid "Sane version:" +msgstr "Sane版本:" + +#. TEXT_RECENT_VALUES +msgid "Recent values:" +msgstr "最近的值:" + +#. TEXT_GAMMA_CORR_BY +msgid "Gamma correction by:" +msgstr "Gamma校正由:" + +#. TEXT_SCANNER +msgid "scanner" +msgstr "扫描器" + +#. TEXT_SOFTWARE_XSANE +msgid "software (XSane)" +msgstr "软体(XSane)" + +#. TEXT_NONE +msgid "none" +msgstr "无" + +#. TEXT_GAMMA_INPUT_DEPTH +msgid "Gamma input depth:" +msgstr "Gamma输入深度" + +#. TEXT_GAMMA_OUTPUT_DEPTH +msgid "Gamma output depth:" +msgstr "Gamma输出深度" + +#. TEXT_SCANNER_OUTPUT_DEPTH +msgid "Scanner output depth:" +msgstr "扫描器输出深度" + +#. TEXT_OUTPUT_FORMATS +msgid "XSane output formats:" +msgstr "XSane输出格式" + +#. TEXT_8BIT_FORMATS +msgid "8 bit output formats:" +msgstr "8位元输出格式" + +#. TEXT_16BIT_FORMATS +msgid "16 bit output formats:" +msgstr "16位元输出格式" + +#. TEXT_REDUCE_16BIT_TO_8BIT +#, fuzzy +msgid "" +"Bit depth 16 bits/channel is not supported for this output format.\n" +"Do you want to reduce the depth to 8 bits/channel?" +msgstr "" +"输出格式不支援16位元/色彩 深度\n" +"你想要简化成8 位元/色彩 深度吗?" + +#. TEXT_AUTHORIZATION_REQ +msgid "Authorization required for" +msgstr "" + +#. TEXT_AUTHORIZATION_SECURE +msgid "Password transmission is secure" +msgstr "密码发送是安全的" + +#. TEXT_AUTHORIZATION_INSECURE +msgid "Backend requests plain-text password" +msgstr "后端驱动程式需要纯文字密码" + +#. TEXT_USERNAME +msgid "Username :" +msgstr "使用者名称" + +#. TEXT_PASSWORD +msgid "Password :" +msgstr "密码" + +#. TEXT_INVALID_PARAMS +msgid "Invalid parameters." +msgstr "无效的参数" + +#. TEXT_VERSION +msgid "version:" +msgstr "版本" + +#. TEXT_PACKAGE +msgid "package" +msgstr "包装" + +#. TEXT_WITH_CMS_FUNCTION +#, fuzzy +msgid "with color management function" +msgstr "全色范围" + +#. TEXT_WITH_GIMP_SUPPORT +msgid "with GIMP support" +msgstr "有GIMP支援" + +#. TEXT_WITHOUT_GIMP_SUPPORT +msgid "without GIMP support" +msgstr "没有GIMP支援" + +#. TEXT_GTK_VERSION +msgid "compiled with GTK-" +msgstr "" + +#. TEXT_GIMP_VERSION +msgid "compiled with GIMP-" +msgstr "" + +#. TEXT_UNKNOWN +msgid "unknown" +msgstr "未知的" + +#. TEXT_EULA +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +"Should the program prove defective, you assume the cost of all\n" +"necessary servicing, repair or correction. To use this program you\n" +"have to read, understand and accept the following\n" +"\"NO WARRANTY\" agreement.\n" +msgstr "" + +#. TEXT_GPL +msgid "" +"XSane is distributed under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2 of the\n" +"License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but\n" +"WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +msgstr "" + +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "电子邮件:" + +#. TEXT_HOMEPAGE +msgid "Homepage:" +msgstr "首页" + +#. TEXT_FILE +msgid "File:" +msgstr "档案" + +#. TEXT_TRANSLATION +msgid "Translation:" +msgstr "翻译" + +#. Please translate this to something like +#. translation to YOUR LANGUAGE\n +#. by YOUR NAME\n +#. E-mail: your.name@yourdomain.com\n +#. TEXT_TRANSLATION_INFO +msgid "" +"untranslated original english text\n" +"by Oliver Rauch\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" +msgstr "" +"翻译: 杨红\n" +"如有任何翻译的问题,或者您有更贴切的翻法,请由下列 e-mail 联络\n" +"gnome-cn@gmail.com\n" + +#. TEXT_INFO_BOX +msgid "0x0: 0KB" +msgstr "" + +#. TEXT_ADF_PAGES_SCANNED +msgid "Scanned pages: " +msgstr "扫描的页面" + +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "邮件的内容:" + +#. TEXT_ATTACHMENTS +msgid "Attachments:" +msgstr "附件" + +#. TEXT_EMAIL_STATUS +msgid "Project status:" +msgstr "专案状态" + +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "邮件图像类型:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "页数:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "多页文档类型:" + +#. TEXT_MEDIUM_DEFINITION_NAME +msgid "Medium Name:" +msgstr "环境名称" + +#. TEXT_VIEWER_IMAGE_INFO +#, fuzzy, c-format +msgid "" +"Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" +msgstr "" +"大小 %d x %d 像素, %d bit/color, %d 色, %1.0f dpi x %1.0f dpi, %1.1f %s" + +#. TEXT_DESPECKLE_RADIUS +msgid "Despeckle radius:" +msgstr "" + +#. TEXT_BLUR_RADIUS +msgid "Blur radius:" +msgstr "模糊半径" + +#. TEXT_BATCH_AREA_DEFAULT_NAME +msgid "(no name)" +msgstr "" + +#. TEXT_BATCH_LIST_AREANAME +msgid "Area name:" +msgstr "区域名称" + +#. TEXT_BATCH_LIST_SCANMODE +msgid "Scanmode:" +msgstr "扫描模式" + +#. TEXT_BATCH_LIST_GEOMETRY_TL +msgid "Top left:" +msgstr "左上角" + +#. TEXT_BATCH_LIST_GEOMETRY_SIZE +msgid "Size:" +msgstr "大小" + +#. TEXT_BATCH_LIST_RESOLUTION +msgid "Resolution:" +msgstr "解析度" + +#. TEXT_BATCH_LIST_BIT_DEPTH +msgid "Bit depth:" +msgstr "位元深度" + +#. TEXT_BATCH_LIST_BY_GUI +msgid "as selected" +msgstr "" + +#. TEXT_SETUP_PRINTER_SEL +msgid "Printer selection:" +msgstr "列表机选择" + +#. TEXT_SETUP_PRINTER_NAME +msgid "Name:" +msgstr "名称" + +#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD +#. TEXT_SETUP_FAX_COMMAND +msgid "Command:" +msgstr "命令" + +#. TEXT_SETUP_COPY_NR_OPT +msgid "Copy number option:" +msgstr "" + +#. TEXT_SETUP_PRINTER_LINEART_RES +msgid "Lineart resolution (dpi):" +msgstr "" + +#. TEXT_SETUP_PRINTER_GRAYSCALE_RES +msgid "Grayscale resolution (dpi):" +msgstr "" + +#. TEXT_SETUP_PRINTER_COLOR_RES +msgid "Color resolution (dpi):" +msgstr "色彩解析度 (dpi):" + +#. TEXT_SETUP_PRINTER_WIDTH +#. TEXT_SETUP_FAX_WIDTH +msgid "Width" +msgstr "宽" + +#. TEXT_SETUP_PRINTER_HEIGHT +#. TEXT_SETUP_FAX_HEIGHT +msgid "Height" +msgstr "高" + +#. TEXT_SETUP_PRINTER_LEFT +#. TEXT_SETUP_FAX_LEFT +msgid "Left offset" +msgstr "左边差距" + +#. TEXT_SETUP_PRINTER_BOTTOM +#. TEXT_SETUP_FAX_BOTTOM +msgid "Bottom offset" +msgstr "下边差距" + +#. TEXT_SETUP_PRINTER_GAMMA +msgid "Printer gamma value:" +msgstr "列表机gamma值" + +#. TEXT_SETUP_PRINTER_GAMMA_RED +msgid "Printer gamma red:" +msgstr "列表机 红色gamma" + +#. TEXT_SETUP_PRINTER_GAMMA_GREEN +msgid "Printer gamma green:" +msgstr "列表机 绿色gamma" + +#. TEXT_SETUP_PRINTER_GAMMA_BLUE +msgid "Printer gamma blue:" +msgstr "列表机 蓝色gamma" + +#. TEXT_SETUP_PRINTER_EMBED_CSA +#, fuzzy +msgid "Embed scanner ICM profile as CSA" +msgstr "删除列表机" + +#. TEXT_SETUP_PRINTER_EMBED_CRD +#, fuzzy +msgid "Embed printer ICM profile as CRD" +msgstr "删除列表机" + +#. TEXT_SETUP_PRINTER_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + +#. TEXT_SETUP_TMP_PATH +msgid "Temporary directory" +msgstr "暂存目录" + +#. TEXT_SETUP_IMAGE_PERMISSION +msgid "Image-file permissions" +msgstr "影像档案权限" + +#. TEXT_SETUP_DIR_PERMISSION +msgid "Directory permissions" +msgstr "目录权限" + +#. TEXT_SETUP_JPEG_QUALITY +msgid "JPEG image quality" +msgstr "JPEG影像品质" + +#. TEXT_SETUP_PNG_COMPRESSION +msgid "PNG image compression" +msgstr "PNG影像压缩" + +#. TEXT_SETUP_FILENAME_COUNTER_LEN +msgid "Filename counter length" +msgstr "档名计数长度" + +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip 压缩率" + +#. TEXT_SETUP_TIFF_COMPRESSION_16 +msgid "TIFF 16 bit image compression" +msgstr "TIFF 16 位元影像压缩" + +#. TEXT_SETUP_TIFF_COMPRESSION_8 +msgid "TIFF 8 bit image compression" +msgstr "TIFF 8 位元影像压缩" + +#. TEXT_SETUP_TIFF_COMPRESSION_1 +msgid "TIFF lineart image compression" +msgstr "" + +#. TEXT_SETUP_SHOW_RANGE_MODE +msgid "Show range as:" +msgstr "显示范围在" + +#. TEXT_SETUP_PREVIEW_OVERSAMPLING +msgid "Preview oversampling:" +msgstr "" + +#. TEXT_SETUP_PREVIEW_GAMMA +msgid "Preview gamma:" +msgstr "预览gamma" + +#. TEXT_SETUP_PREVIEW_GAMMA_RED +msgid "Preview gamma red:" +msgstr "预览 红色gamma" + +#. TEXT_SETUP_PREVIEW_GAMMA_GREEN +msgid "Preview gamma green:" +msgstr "预览 绿色gamma" + +#. TEXT_SETUP_PREVIEW_GAMMA_BLUE +msgid "Preview gamma blue:" +msgstr "预览 蓝色gamma" + +#. TEXT_SETUP_LINEART_MODE +msgid "Threshold option:" +msgstr "边界选项:" + +#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE +msgid "Preview pipette range" +msgstr "预览吸取范围" + +#. TEXT_SETUP_THRESHOLD_MIN +msgid "Threshold minimum:" +msgstr "最小边界" + +#. TEXT_SETUP_THRESHOLD_MAX +msgid "Threshold maximum:" +msgstr "最大边界" + +#. TEXT_SETUP_THRESHOLD_MUL +msgid "Threshold multiplier:" +msgstr "" + +#. TEXT_SETUP_THRESHOLD_OFF +msgid "Threshold offset:" +msgstr "边界差距" + +#. TEXT_SETUP_GRAYSCALE_SCANMODE +msgid "Name of grayscale scanmode:" +msgstr "灰接调整扫描模式的名称" + +#. TEXT_SETUP_HELPFILE_VIEWER +msgid "Helpfile viewer (HTML):" +msgstr "救助档检视器(HTML)" + +#. TEXT_SETUP_FAX_RECEIVER_OPTION +msgid "Receiver option:" +msgstr "接收选项" + +#. TEXT_SETUP_FAX_POSTSCRIPT_OPT +msgid "Postscriptfile option:" +msgstr "Postscript档案选项" + +#. TEXT_SETUP_FAX_NORMAL_MODE_OPT +msgid "Normal mode option:" +msgstr "正常模式选项" + +#. TEXT_SETUP_FAX_FINE_MODE_OPT +msgid "Fine mode option:" +msgstr "" + +#. TEXT_SETUP_FAX_PROGRAM_DEFAULTS +msgid "Set program defaults for:" +msgstr "" + +#. TEXT_SETUP_FAX_VIEWER +msgid "Viewer (Postscript):" +msgstr "检视器(Postscript)" + +#. TEXT_SETUP_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + +#. TEXT_SETUP_SMTP_SERVER +msgid "SMTP server:" +msgstr "SMTP伺服器:" + +#. TEXT_SETUP_SMTP_PORT +msgid "SMTP port:" +msgstr "SMTP通讯埠:" + +#. TEXT_SETUP_EMAIL_FROM +msgid "From:" +msgstr "从" + +#. TEXT_SETUP_EMAIL_REPLY_TO +msgid "Reply to:" +msgstr "回覆到" + +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "邮件认证" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "用户:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "密码" + +#. TEXT_SETUP_POP3_SERVER +msgid "POP3 server:" +msgstr "POP3 服务器:" + +#. TEXT_SETUP_POP3_PORT +msgid "POP3 port:" +msgstr "POP3通讯埠:" + +#. TEXT_SETUP_OCR_COMMAND +msgid "OCR Command:" +msgstr "OCR 命令" + +#. TEXT_SETUP_OCR_INPUTFILE_OPT +msgid "Inputfile option:" +msgstr "输入档选项" + +#. TEXT_SETUP_OCR_OUTPUTFILE_OPT +msgid "Outputfile option:" +msgstr "输出档选项" + +#. TEXT_SETUP_OCR_USE_GUI_PIPE_OPT +msgid "Use GUI progress pipe:" +msgstr "" + +#. TEXT_SETUP_OCR_OUTFD_OPT +msgid "GUI output-fd option:" +msgstr "" + +#. TEXT_SETUP_OCR_PROGRESS_KEYWORD +msgid "Progress keyword:" +msgstr "" + +#. TEXT_SETUP_PERMISSION_USER +msgid "user" +msgstr "使用者" + +#. TEXT_SETUP_PERMISSION_GROUP +msgid "group" +msgstr "群组" + +#. TEXT_SETUP_PERMISSION_ALL +msgid "all" +msgstr "所有" + +#. TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE +#, fuzzy +msgid "Scanner default color ICM-profile" +msgstr "删除列表机" + +#. TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#. DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE +#, fuzzy +msgid "Scanner default gray ICM-profile" +msgstr "删除列表机" + +#. TEXT_SETUP_DISPLAY_ICM_PROFILE +#. DESC_DISPLAY_ICM_PROFILE +msgid "Display ICM-profile" +msgstr "" + +#. TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE +#. DESC_CUSTOM_PROOFING_ICM_PROFILE +#, fuzzy +msgid "Custom proofing ICM-profile" +msgstr "删除列表机" + +#. TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE +#. DESC_WORKING_COLOR_SPACE_ICM_PROFILE +#, fuzzy +msgid "Working color space ICM-profile" +msgstr "影像档案浏览" + +#. TEXT_SETUP_PRINTER_ICM_PROFILE +#. DESC_PRINTER_ICM_PROFILE +msgid "Printer ICM-profile" +msgstr "" + +msgid "new media" +msgstr "" + +#. NOTEBOOK_SAVING_OPTIONS +#. MENU_ITEM_SAVE +msgid "Save" +msgstr "储存" + +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "文件类型" + +#. NOTEBOOK_COPY_OPTIONS +#. MENU_ITEM_COPY +msgid "Copy" +msgstr "复制" + +#. NOTEBOOK_FAX_OPTIONS +#. MENU_ITEM_FAX +msgid "Fax" +msgstr "传真" + +#. NOTEBOOK_EMAIL_OPTIONS +#. MENU_ITEM_EMAIL +msgid "E-mail" +msgstr "电子邮件" + +#. NOTEBOOK_OCR_OPTIONS +msgid "OCR" +msgstr "OCR" + +#. NOTEBOOK_DISPLAY_OPTIONS +msgid "Display" +msgstr "显示" + +#. NOTEBOOK_ENHANCE_OPTIONS +msgid "Enhancement" +msgstr "增强" + +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" + +#. MENU_ITEM_SHOW_TOOLTIPS +msgid "Show tooltips" +msgstr "显示快速提示" + +#. MENU_ITEM_SHOW_PREVIEW +msgid "Show preview" +msgstr "显示预览" + +#. MENU_ITEM_SHOW_HISTOGRAM +msgid "Show histogram" +msgstr "显示矩形图" + +#. MENU_ITEM_SHOW_GAMMA +msgid "Show gamma curve" +msgstr "显示gamma曲线" + +#. MENU_ITEM_SHOW_BATCH_SCAN +msgid "Show batch scan" +msgstr "显示批次扫描" + +#. MENU_ITEM_SHOW_STANDARDOPTIONS +msgid "Show standard options" +msgstr "显示基本选项" + +#. MENU_ITEM_SHOW_ADVANCEDOPTIONS +msgid "Show advanced options" +msgstr "显示进阶选项" + +#. MENU_ITEM_SETUP +msgid "Setup" +msgstr "设定" + +#. MENU_ITEM_LENGTH_UNIT +msgid "Length unit" +msgstr "长度单位" + +#. SUBMENU_ITEM_LENGTH_MILLIMETERS +msgid "millimeters" +msgstr "公厘" + +#. SUBMENU_ITEM_LENGTH_CENTIMETERS +msgid "centimeters" +msgstr "公分" + +#. SUBMENU_ITEM_LENGTH_INCHES +msgid "inches" +msgstr "英寸" + +#. MENU_ITEM_UPDATE_POLICY +msgid "Update policy" +msgstr "更新政策" + +#. SUBMENU_ITEM_POLICY_CONTINUOUS +msgid "continuous" +msgstr "继续" + +#. SUBMENU_ITEM_POLICY_DISCONTINU +msgid "discontinuous" +msgstr "不继续" + +#. SUBMENU_ITEM_POLICY_DELAYED +msgid "delayed" +msgstr "延迟" + +#. MENU_ITEM_SHOW_RESOLUTIONLIST +msgid "Show resolution list" +msgstr "显示解析度列表" + +#. MENU_ITEM_PAGE_ROTATE +msgid "Rotate postscript" +msgstr "" + +#. MENU_ITEM_ENABLE_COLOR_MANAGEMENT +#. MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT +#, fuzzy +msgid "Enable color management" +msgstr "全色范围" + +# +#. MENU_ITEM_EDIT_MEDIUM_DEF +msgid "Edit medium definition" +msgstr "储存环境设定" + +#. MENU_ITEM_SAVE_DEVICE_SETTINGS +msgid "Save device settings" +msgstr "储存装置设定" + +#. MENU_ITEM_LOAD_DEVICE_SETTINGS +msgid "Load device settings" +msgstr "载入装置设定" + +#. MENU_ITEM_CHANGE_WORKING_DIR +msgid "Change directory" +msgstr "更改目录" + +#. MENU_ITEM_XSANE_EULA +msgid "Show EULA" +msgstr "" + +#. MENU_ITEM_XSANE_GPL +msgid "Show license (GPL)" +msgstr "" + +#. MENU_ITEM_XSANE_DOC +msgid "XSane doc" +msgstr "Xsane文件" + +#. MENU_ITEM_BACKEND_DOC +msgid "Backend doc" +msgstr "后端驱动程式文件" + +#. MENU_ITEM_AVAILABLE_BACKENDS +msgid "Available backends" +msgstr "可用的后端驱动程式" + +# +#. MENU_ITEM_SCANTIPS +msgid "Scantips" +msgstr "" + +#. MENU_ITEM_PROBLEMS +msgid "Problems?" +msgstr "问题?" + +#. MENU_ITEM_CMS_PROOFING +#, fuzzy +msgid "Proofing" +msgstr "增加列表机" + +#. SUBMENU_ITEM_CMS_PROOF_OFF +msgid "no proofing (Display)" +msgstr "" + +#. SUBMENU_ITEM_CMS_PROOF_PRINTER +#, fuzzy +msgid "Proof printer" +msgstr "增加列表机" + +#. SUBMENU_ITEM_CMS_PROOF_CUSTOM +msgid "Proof custom device" +msgstr "" + +#. MENU_ITEM_CMS_RENDERING_INTENT +#, fuzzy +msgid "Rendering intent" +msgstr "增加列表机" + +#. MENU_ITEM_CMS_PROOFING_INTENT +#, fuzzy +msgid "Proofing rendering intent" +msgstr "增加列表机" + +#. SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL +msgid "Perceptual" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC +msgid "Relative colorimetric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC +msgid "Absolute colorimentric" +msgstr "" + +#. SUBMENU_ITEM_CMS_INTENT_SATURATION +#, fuzzy +msgid "Saturation" +msgstr "授权" + +#. MENU_ITEM_CMS_GAMUT_CHECK +msgid "Gamut check" +msgstr "" + +#. MENU_ITEM_CMS_GAMUT_ALARM_COLOR +msgid "Gamut alarm color" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLACK +msgid "Black" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_GRAY +msgid "Gray" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_WHITE +#, fuzzy +msgid "White" +msgstr "写入" + +#. SUBMENU_ITEM_CMS_COLOR_RED +#, fuzzy +msgid "Red" +msgstr "还原" + +#. SUBMENU_ITEM_CMS_COLOR_GREEN +msgid "Green" +msgstr "" + +#. SUBMENU_ITEM_CMS_COLOR_BLUE +#, fuzzy +msgid "Blue" +msgstr "模糊" + +#. MENU_ITEM_COUNTER_LEN_INACTIVE +msgid "inactive" +msgstr "失效" + +#. MENU_ITEM_TIFF_COMP_NONE +msgid "no compression" +msgstr "不压缩" + +#. MENU_ITEM_TIFF_COMP_CCITTRLE +msgid "CCITT 1D Huffman compression" +msgstr "" + +#. MENU_ITEM_TIFF_COMP_CCITFAX3 +msgid "CCITT Group 3 Fax compression" +msgstr "" + +#. MENU_ITEM_TIFF_COMP_CCITFAX4 +msgid "CCITT Group 4 Fax compression" +msgstr "" + +#. MENU_ITEM_TIFF_COMP_JPEG +msgid "JPEG DCT compression" +msgstr "" + +#. MENU_ITEM_TIFF_COMP_PACKBITS +msgid "pack bits" +msgstr "" + +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "缩小" + +#. MENU_ITEM_RANGE_SCALE +msgid "Slider (Scale)" +msgstr "滑棒(Scale)" + +#. MENU_ITEM_RANGE_SCROLLBAR +msgid "Slider (Scrollbar)" +msgstr "滑棒(Scrollbar)" + +#. MENU_ITEM_RANGE_SPINBUTTON +msgid "Spinbutton" +msgstr "微调旋钮" + +#. MENU_ITEM_RANGE_SCALE_SPIN +msgid "Scale and Spinbutton" +msgstr "滑棒与微调旋钮" + +#. MENU_ITEM_RANGE_SCROLL_SPIN +msgid "Scrollbar and Spinbutton" +msgstr "卷轴与微调旋钮" + +#. MENU_ITEM_LINEART_MODE_STANDARD +msgid "Standard options window (lineart)" +msgstr "基本选项视窗(lineart)" + +#. MENU_ITEM_LINEART_MODE_XSANE +msgid "XSane main window (lineart)" +msgstr "XSane 主视窗(lineart)" + +#. MENU_ITEM_LINEART_MODE_GRAY +msgid "XSane main window (grayscale->lineart)" +msgstr "XSane 主视窗(grayscale->lineart)" + +#. MENU_ITEM_SELECTION_NONE +msgid "(none)" +msgstr "无" + +#. MENU_ITEM_FILETYPE_BY_EXT +msgid "by ext" +msgstr "" + +#. MENU_ITEM_PRESET_AREA_ADD_SEL +msgid "Add selection to list" +msgstr "增加选择到列表" + +# +#. MENU_ITEM_MEDIUM_ADD +msgid "Add medium definition" +msgstr "储存环境设定" + +# +#. MENU_ITEM_RENAME +msgid "Rename item" +msgstr "更名影像" + +# +#. MENU_ITEM_DELETE +msgid "Delete item" +msgstr "删除列表机" + +# +#. MENU_ITEM_MOVE_UP +msgid "Move item up" +msgstr "往上移动" + +# +#. MENU_ITEM_MOVE_DWN +msgid "Move item down" +msgstr "往下移动" + +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "没有授权" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "" + +#. MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE +#, fuzzy +msgid "Embed scanner ICM profile" +msgstr "删除列表机" + +#. MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB +msgid "Convert to sRGB" +msgstr "" + +#. MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS +#, fuzzy +msgid "Convert to working color space" +msgstr "自动修正颜色" + +#. PROGRESS_SCANNING +msgid "Scanning" +msgstr "扫描中" + +#. PROGRESS_RECEIVING_FRAME_DATA +#, c-format +msgid "Receiving %s data" +msgstr "接收%s资料" + +#. PROGRESS_PAGE +msgid "page" +msgstr "页" + +#. PROGRESS_TRANSFERING_DATA +msgid "Transfering image" +msgstr "传输影像中" + +#. PROGRESS_ROTATING_DATA +msgid "Rotating image" +msgstr "转动影像" + +#. PROGRESS_MIRRORING_DATA +msgid "Mirroring image" +msgstr "映射影像" + +#. PROGRESS_PACKING_DATA +msgid "Packing image" +msgstr "打包影像" + +#. PROGRESS_CONVERTING_DATA +msgid "Converting image" +msgstr "" + +#. PROGRESS_SAVING_DATA +msgid "Saving image" +msgstr "储存影像" + +#. PROGRESS_CLONING_DATA +msgid "Cloning image" +msgstr "复制影像" + +#. PROGRESS_SCALING_DATA +msgid "Scaling image" +msgstr "调整影像" + +#. PROGRESS_DESPECKLING_DATA +msgid "Despeckling image" +msgstr "" + +#. PROGRESS_BLURING_DATA +msgid "Bluring image" +msgstr "模糊影像" + +#. PROGRESS_OCR +msgid "OCR in progress" +msgstr "" + +#. PROGRESS_ICM_CONVERSION +#, fuzzy +msgid "converting colors" +msgstr "自动修正颜色" + +#. DESC_SCAN_START +msgid "Start scan " +msgstr "开始扫描" + +#. DESC_SCAN_CANCEL +msgid "Cancel scan " +msgstr "取消扫描" + +#. DESC_PREVIEW_ACQUIRE +msgid "Acquire preview scan " +msgstr "获得预览影像" + +#. DESC_PREVIEW_CANCEL +msgid "Cancel preview scan " +msgstr "取消预览影像" + +#. DESC_XSANE_MODE +msgid "" +"viewer-, save-, photocopy-, multipage-, fax-" +" or e-mail-" +msgstr "" + +#. DESC_XSANE_MEDIUM +msgid "" +"Select source medium type.\n" +"To rename, reorder or delete an entry use context menu (right mouse " +"button).\n" +"To create a medium enable the option edit medium definition in preferences " +"menu." +msgstr "" + +#. DESC_FILENAME_COUNTER_STEP +msgid "Value that is added to filenamecounter after scan" +msgstr "" + +#. DESC_BROWSE_FILENAME +msgid "Browse for image filename" +msgstr "影像档案浏览" + +#. DESC_FILENAME +msgid "Filename for scanned image" +msgstr "扫瞄过的影像的档案名称" + +#. DESC_FILETYPE +msgid "" +"Type of image format, the suitable filename extension is automatically added " +"to the filename" +msgstr "" + +#. DESC_FAXPROJECT +#, fuzzy +msgid "Enter fax project directory name" +msgstr "暂存目录浏览" + +#. DESC_FAXPAGENAME +msgid "Enter new name for faxpage" +msgstr "输入传真专案的新名称" + +#. DESC_FAXRECEIVER +msgid "Enter receiver phone number or address" +msgstr "输入接收的电话号码或位址" + +#. DESC_FAX_PROJECT_BROWSE +#, fuzzy +msgid "Browse for fax project directory" +msgstr "暂存目录浏览" + +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter e-mail project directory name" +msgstr "暂存目录浏览" + +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "输入邮件图像的新名称" + +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "输入邮件位址" + +#. DESC_EMAIL_PROJECT_BROWSE +#, fuzzy +msgid "Browse for email project directory" +msgstr "暂存目录浏览" + +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "输入邮件的标题" + +#. DESC_EMAIL_FILETYPE +msgid "Select filetype for image attachments" +msgstr "选择图像附件的类型" + +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter multipage project directory name" +msgstr "暂存目录浏览" + +#. DESC_MULTIPAGE_PROJECT_BROWSE +#, fuzzy +msgid "Browse for multipage project directory" +msgstr "暂存目录浏览" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "为多页文件选择文件类型" + +#. DESC_PRESET_AREA_RENAME +msgid "Enter new name for preset area" +msgstr "输入预设区的新名称" + +# +#. DESC_PRESET_AREA_ADD +msgid "Enter name for new preset area" +msgstr "输入预设区的新名称" + +# +#. DESC_MEDIUM_RENAME +msgid "Enter new name for medium definition" +msgstr "为环境设定输入新的名字" + +# +#. DESC_MEDIUM_ADD +msgid "Enter name for new medium definition" +msgstr "为新的环境设定输入名字" + +#. DESC_PRINTER_SELECT +msgid "Select printerdefinition " +msgstr "" + +#. DESC_RESOLUTION +msgid "Set scan resolution" +msgstr "设定扫描解析度" + +#. DESC_RESOLUTION_X +msgid "Set scan resolution for x direction" +msgstr "" + +#. DESC_RESOLUTION_Y +msgid "Set scan resolution for y direction" +msgstr "" + +#. DESC_ZOOM +msgid "Set zoomfactor" +msgstr "" + +#. DESC_ZOOM_X +msgid "Set zoomfactor for x direction" +msgstr "" + +#. DESC_ZOOM_Y +msgid "Set zoomfactor for y direction" +msgstr "" + +#. DESC_COPY_NUMBER +msgid "Set number of copies" +msgstr "" + +#. DESC_NEGATIVE +msgid "Negative: Invert colors for scanning negatives " +msgstr "" + +#. DESC_GAMMA +msgid "Set gamma value" +msgstr "设定Gamma值" + +#. DESC_GAMMA_R +msgid "Set gamma value for red component" +msgstr "设定红色成分的Gamma值" + +#. DESC_GAMMA_G +msgid "Set gamma value for green component" +msgstr "设定绿色成分的Gamma值" + +#. DESC_GAMMA_B +msgid "Set gamma value for blue component" +msgstr "设定蓝色成分的Gamma值" + +#. DESC_BRIGHTNESS +msgid "Set brightness" +msgstr "设定亮度" + +#. DESC_BRIGHTNESS_R +msgid "Set brightness for red component" +msgstr "设定红色成份的亮度值" + +#. DESC_BRIGHTNESS_G +msgid "Set brightness for green component" +msgstr "设定绿色成份的亮度值" + +#. DESC_BRIGHTNESS_B +msgid "Set brightness for blue component" +msgstr "设定蓝色成份的亮度值" + +#. DESC_CONTRAST +msgid "Set contrast" +msgstr "设定反差" + +#. DESC_CONTRAST_R +msgid "Set contrast for red component" +msgstr "设定红色成分的反差" + +#. DESC_CONTRAST_G +msgid "Set contrast for green component" +msgstr "设定绿色成分的反差" + +#. DESC_CONTRAST_B +msgid "Set contrast for blue component" +msgstr "设定蓝色成分的反差" + +#. DESC_THRESHOLD +msgid "Set threshold" +msgstr "设定边界" + +#. DESC_RGB_DEFAULT +msgid "" +"RGB default: Set enhancement values for red, green and blue to default " +"values :\n" +" gamma = 1.0\n" +" brightness = 0\n" +" contrast = 0" +msgstr "" + +# +#. DESC_ENH_AUTO +#, fuzzy +msgid "Autoadjust gamma, brightness and contrast " +msgstr "自动调整gamma,亮度和反差" + +#. DESC_ENH_DEFAULT +msgid "" +"Set default enhancement values :\n" +"gamma = 1.0\n" +"brightness = 0\n" +"contrast = 0" +msgstr "" + +#. DESC_ENH_RESTORE +msgid "Restore enhancement values from preferences " +msgstr "" + +#. DESC_ENH_STORE +msgid "Store active enhancement values to preferences " +msgstr "" + +#. DESC_HIST_INTENSITY +msgid "Show histogram of intensity/gray " +msgstr "" + +#. DESC_HIST_RED +msgid "Show histogram of red component " +msgstr "" + +#. DESC_HIST_GREEN +msgid "Show histogram of green component " +msgstr "" + +#. DESC_HIST_BLUE +msgid "Show histogram of blue component " +msgstr "" + +#. DESC_HIST_PIXEL +msgid "Display mode: show histogram with lines instead of pixels " +msgstr "显示模式:用线取代点来显示矩形图" + +#. DESC_HIST_LOG +msgid "Show logarithm of pixelcount " +msgstr "" + +#. DESC_PRINTER_SETUP +msgid "Select definition to change" +msgstr "" + +#. DESC_PRINTER_NAME +msgid "Define a name for the selection of this definition" +msgstr "为选择的定义定义一个名称" + +#. DESC_PRINTER_COMMAND +msgid "Enter command to be executed in copy mode (e.g. \"lpr\")" +msgstr "输入在复制模式下将被执行的命令(e.g. \"lpr\")" + +#. DESC_COPY_NUMBER_OPTION +msgid "Enter option for copy numbers" +msgstr "" + +#. DESC_PRINTER_LINEART_RESOLUTION +msgid "" +"Resolution with which lineart images are printed and saved in postscript" +msgstr "" + +#. DESC_PRINTER_GRAYSCALE_RESOLUTION +msgid "" +"Resolution with which grayscale images are printed and saved in postscript" +msgstr "" + +#. DESC_PRINTER_COLOR_RESOLUTION +msgid "Resolution with which color images are printed and saved in postscript" +msgstr "" + +#. DESC_PRINTER_WIDTH +#. DESC_FAX_WIDTH +msgid "Width of printable area" +msgstr "列印区宽度" + +#. DESC_PRINTER_HEIGHT +#. DESC_FAX_HEIGHT +msgid "Height of printable area" +msgstr "列印区高度" + +#. DESC_PRINTER_LEFTOFFSET +#. DESC_FAX_LEFTOFFSET +msgid "Left offset from the edge of the paper to the printable area" +msgstr "从页的边缘到列印区的左差距" + +#. DESC_PRINTER_BOTTOMOFFSET +#. DESC_FAX_BOTTOMOFFSET +msgid "Bottom offset from the edge of the paper to the printable area" +msgstr "从页的边缘到列印区的下差距" + +#. DESC_PRINTER_GAMMA +msgid "Additional gamma value for photocopy" +msgstr "" + +#. DESC_PRINTER_GAMMA_RED +msgid "Additional gamma value for red component for photocopy" +msgstr "" + +#. DESC_PRINTER_GAMMA_GREEN +msgid "Additional gamma value for green component for photocopy" +msgstr "" + +#. DESC_PRINTER_GAMMA_BLUE +msgid "Additional gamma value for blue component for photocopy" +msgstr "" + +#. DESC_PRINTER_EMBED_CSA +msgid "Creates a postsciptfile that contains the ICM profile of the scanner" +msgstr "" + +#. DESC_PRINTER_EMBED_CRD +msgid "Creates a postsciptfile that contains the ICM profile of the printer" +msgstr "" + +#. DESC_PRINTER_PS_FLATEDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatedecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + +#. DESC_TMP_PATH +msgid "Path to temp directory" +msgstr "暂存目录的路径" + +#. DESC_BUTTON_TMP_PATH_BROWSE +msgid "Browse for temporary directory" +msgstr "暂存目录浏览" + +#. DESC_JPEG_QUALITY +msgid "" +"Quality in percent if image is saved as jpeg or tiff with jpeg compression" +msgstr "" + +#. DESC_PNG_COMPRESSION +msgid "Compression if image is saved as png" +msgstr "如果存成png档的话,就压缩" + +#. DESC_FILENAME_COUNTER_LEN +msgid "Minimum length of counter in filename" +msgstr "" + +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "" + +#. DESC_TIFF_COMPRESSION_16 +msgid "Compression type if 16 bit image is saved as tiff" +msgstr "" + +#. DESC_TIFF_COMPRESSION_8 +msgid "Compression type if 8 bit image is saved as tiff" +msgstr "" + +#. DESC_TIFF_COMPRESSION_1 +msgid "Compression type if lineart image is saved as tiff" +msgstr "" + +#. DESC_SAVE_DEVPREFS_AT_EXIT +msgid "Save device dependant preferences in default file at exit of xsane" +msgstr "" + +#. DESC_OVERWRITE_WARNING +msgid "Warn before overwriting an existing file" +msgstr "覆写一个已经存在的档案之前要警告" + +#. DESC_SKIP_EXISTING +msgid "" +"If filename counter is automatically increased, used numbers are skipped" +msgstr "" + +#. DESC_SAVE_PS_FLATEDECODED +msgid "" +"compress postscript image with zlib algorithm (flatedecode). When you want " +"to print such a file your printer has to understand postscript level 3" +msgstr "" + +#. DESC_SAVE_PDF_FLATEDECODED +msgid "compress PDF image with zlib algorithm (flatedecode)." +msgstr "" + +#. DESC_SAVE_PNM16_AS_ASCII +msgid "" +"When a 16 bit image shall be saved in pnm format then use ascii format " +"instead of binary format. The binary format is a new format that is not " +"supported by all programs. The ascii format is supported by more programs " +"but it produces really huge files!!!" +msgstr "" + +#. DESC_REDUCE_16BIT_TO_8BIT +msgid "" +"If scanner sends image with 16 bits/channel save image with 8 bits/channel" +msgstr "" + +#. DESC_PSFILE_WIDTH +msgid "Width of paper for postscript files" +msgstr "" + +#. DESC_PSFILE_HEIGHT +msgid "Height of paper for postscript files" +msgstr "" + +#. DESC_PSFILE_LEFTOFFSET +msgid "" +"Left offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" + +#. DESC_PSFILE_BOTTOMOFFSET +msgid "" +"Bottom offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" + +#. DESC_MAIN_WINDOW_FIXED +msgid "Use fixed main window size or scrolled, resizable main window" +msgstr "使用固定主视窗大小,或者滑动,更改主视窗大小" + +#. DESC_DISABLE_GIMP_PREVIEW_GAMMA +#, fuzzy +msgid "Disable preview gamma when XSane runs as GIMP plugin" +msgstr "取消预览gamma当XSane跑在gimp plugin 时" + +#. DESC_PREVIEW_COLORMAP +msgid "Use an own colormap for preview if display depth is 8 bpp" +msgstr "假如显示8bpp深度时,使用一个自己的colormap" + +#. DESC_SHOW_RANGE_MODE +msgid "Select how a range is displayed" +msgstr "选择一个区域如何被显示" + +#. DESC_PREVIEW_OVERSAMPLING +msgid "Value with that the calculated preview resolution is multiplied" +msgstr "" + +#. DESC_PREVIEW_GAMMA +msgid "Set gamma correction value for preview image" +msgstr "为预览影像设定gamma校正值" + +#. DESC_PREVIEW_GAMMA_RED +msgid "Set gamma correction value for red component of preview image" +msgstr "为预览影像的红色成分设定gamma校正值" + +#. DESC_PREVIEW_GAMMA_GREEN +msgid "Set gamma correction value for green component of preview image" +msgstr "为预览影像的绿色成分设定gamma校正值" + +#. DESC_PREVIEW_GAMMA_BLUE +msgid "Set gamma correction value for blue component of preview image" +msgstr "为预览影像的蓝色成分设定gamma校正值" + +#. DESC_LINEART_MODE +msgid "Define the way XSane shall handle the threshold option" +msgstr "" + +#. DESC_GRAYSCALE_SCANMODE +msgid "" +"Select grayscale scanmode. This scanmode is used for lineart preview scan " +"when transformation from grayscale to lineart is enabled" +msgstr "" + +#. DESC_PREVIEW_THRESHOLD_MIN +#, no-c-format +msgid "The scanner's minimum threshold level in %" +msgstr "" + +#. DESC_PREVIEW_THRESHOLD_MAX +#, no-c-format +msgid "The scanner's maximum threshold level in %" +msgstr "" + +#. DESC_PREVIEW_THRESHOLD_MUL +msgid "" +"Multiplier to make XSane threshold range and scanner threshold range the same" +msgstr "" + +#. DESC_PREVIEW_THRESHOLD_OFF +msgid "" +"Offset to make XSane threshold range and scanner threshold range the same" +msgstr "" + +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "" + +#. DESC_PREVIEW_PIPETTE_RANGE +msgid "dimension of square that is used to average color for pipette function" +msgstr "" + +#. DESC_DOC_VIEWER +msgid "" +"Enter command to be executed to display helpfiles, must be a html-viewer!" +msgstr "输入显示救助档时要被执行的命令,必须是一个html检视器" + +#. DESC_AUTOENHANCE_GAMMA +msgid "Change gamma value when autoenhancement button is pressed" +msgstr "更改gamma值如果自动增强按钮被按下时" + +#. DESC_PRESELECT_SCANAREA +msgid "Select scanarea after preview scan has finished" +msgstr "预览扫描后选择扫描区已经完成了" + +#. DESC_AUTOCORRECT_COLORS +msgid "Do color correction after preview scan has finished" +msgstr "预览扫描后作颜色校正已经完成了" + +#. DESC_RENDERING_INTENT +#, fuzzy +msgid "Select rendering intent for preview and saving" +msgstr "预览扫描后选择扫描区已经完成了" + +#. DESC_CMS_BPC +msgid "Apply black point compensation when color transformation is done" +msgstr "" + +#. DESC_FAX_COMMAND +msgid "Enter command to be executed in fax mode" +msgstr "输入在传真模式下被执行的命令" + +#. DESC_FAX_RECEIVER_OPT +msgid "Enter option to specify receiver" +msgstr "输入选项给指定的接收器" + +#. DESC_FAX_POSTSCRIPT_OPT +msgid "Enter option to specify postscript files following" +msgstr "" + +#. DESC_FAX_NORMAL_OPT +msgid "Enter option to specify normal mode (low resolution)" +msgstr "" + +#. DESC_FAX_FINE_OPT +msgid "Enter option to specify fine mode (high resolution)" +msgstr "" + +#. DESC_FAX_VIEWER +msgid "Enter command to be executed to view a fax" +msgstr "输入检视传真时要执行的命令" + +#. DESC_FAX_FINE_MODE +msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" +msgstr "" + +#. DESC_FAX_PS_FLATEDECODED +msgid "Create zlib compressed postscript image for fax (flatedecode)" +msgstr "" + +#. DESC_SMTP_SERVER +msgid "IP Address or Domain name of SMTP server" +msgstr "IP 位址或SMTP伺服器的主机名称" + +#. DESC_SMTP_PORT +msgid "port to connect to SMTP server" +msgstr "" + +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" +msgstr "输入你的信件位址" + +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" +msgstr "输入邮件位址" + +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "" + +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "输入邮件专案的名称" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "" + +#. DESC_POP3_SERVER +msgid "IP Address or Domain name of POP3 server" +msgstr "" + +#. DESC_POP3_PORT +msgid "port to connect to POP3 server" +msgstr "" + +# +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: " +msgstr "邮件以HTML传送,影像直接显示" + +#. DESC_OCR_COMMAND +msgid "Enter command to start ocr program" +msgstr "输入开始OCR程式要执行的指令" + +#. DESC_OCR_INPUTFILE_OPT +msgid "Enter option of the ocr program to define input file" +msgstr "输入OCR程式的选项给定义的输入档" + +#. DESC_OCR_OUTPUTFILE_OPT +msgid "Enter option of the ocr program to define output file" +msgstr "输入OCR程式的选项给定义的输出档" + +#. DESC_OCR_USE_GUI_PIPE_OPT +msgid "Define if the ocr program supports gui progress pipe" +msgstr "" + +#. DESC_OCR_OUTFD_OPT +msgid "" +"Enter option of the ocr program to define output filedescripor in GUI mode" +msgstr "" + +#. DESC_OCR_PROGRESS_KEYWORD +msgid "Define Keyword that is used to mark progress information" +msgstr "" + +#. DESC_PERMISSION_READ +msgid "read" +msgstr "读取" + +#. DESC_PERMISSION_WRITE +msgid "write" +msgstr "写入" + +#. DESC_PERMISSION_SEARCH +#, fuzzy +msgid "search" +msgstr "使用者" + +#. DESC_ADD_BATCH +msgid "Add selection for batch scan" +msgstr "为批次扫描增加选择" + +#. DESC_PIPETTE_WHITE +msgid "Pick white point" +msgstr "" + +#. DESC_PIPETTE_GRAY +msgid "Pick gray point" +msgstr "" + +#. DESC_PIPETTE_BLACK +msgid "Pick black point" +msgstr "" + +#. DESC_ZOOM_FULL +msgid "Use full scanarea" +msgstr "使用全部扫描区" + +#. DESC_ZOOM_OUT +#, no-c-format +msgid "Zoom 20% out" +msgstr "" + +#. DESC_ZOOM_IN +msgid "Click at position to zoom to" +msgstr "" + +#. DESC_ZOOM_AREA +msgid "Zoom into selected area" +msgstr "" + +#. DESC_ZOOM_UNDO +msgid "Undo last zoom" +msgstr "" + +#. DESC_FULL_PREVIEW_AREA +msgid "Select visible area" +msgstr "选择显示区" + +#. DESC_AUTOSELECT_SCANAREA +msgid "Autoselect scanarea" +msgstr "自动选扫描区" + +#. DESC_AUTORAISE_SCANAREA +msgid "Autoraise scanarea" +msgstr "自动更改扫描区大小" + +#. DESC_DELETE_IMAGES +msgid "Delete preview image cache" +msgstr "删除预览影像快取" + +#. DESC_PRESET_AREA +msgid "" +"Preset area:\n" +"To add new area or edit an existing area use contect menu (right mouse " +"button)." +msgstr "" + +#. DESC_ROTATION +msgid "Rotate preview and scan" +msgstr "翻转预览和扫描" + +#. DESC_RATIO +msgid "Aspect ratio of selection" +msgstr "" + +#. DESC_PAPER_ORIENTATION +msgid "Define image position for printing" +msgstr "" + +#. DESC_VIEWER_OCR +msgid "Optical Character Recognition" +msgstr "" + +#. DESC_VIEWER_UNDO +msgid "Undo last change" +msgstr "" + +#. DESC_VIEWER_CLONE +msgid "Clone image" +msgstr "复制影像" + +#. DESC_ROTATE90 +msgid "Rotate image 90 degree" +msgstr "翻转影像90度" + +#. DESC_ROTATE180 +msgid "Rotate image 180 degree" +msgstr "翻转影像180度" + +#. DESC_ROTATE270 +msgid "Rotate image 270 degree" +msgstr "翻转影像270度" + +#. DESC_MIRROR_X +msgid "Mirror image at vertical axis" +msgstr "" + +#. DESC_MIRROR_Y +msgid "Mirror image at horizontal axis" +msgstr "" + +#. DESC_VIEWER_ZOOM +msgid "Zoom image" +msgstr "伸缩影像" + +#. DESC_STORE_MEDIUM +msgid "Store medium" +msgstr "" + +#. DESC_DELETE_MEDIUM +msgid "Delete active medium" +msgstr "删除活动的环境" + +#. DESC_SCALE_FACTOR +msgid "Scale factor" +msgstr "" + +#. DESC_X_SCALE_FACTOR +msgid "X-Scale factor" +msgstr "" + +#. DESC_Y_SCALE_FACTOR +msgid "Y-Scale factor" +msgstr "" + +#. DESC_SCALE_WIDTH +msgid "Scale image to width [in pixel]" +msgstr "" + +#. DESC_SCALE_HEIGHT +msgid "Scale image to height [in pixel]" +msgstr "" + +#. DESC_BATCH_LIST_EMPTY +msgid "Empty batch list" +msgstr "空的批次列表" + +#. DESC_BATCH_LIST_SAVE +msgid "Save batch list" +msgstr "储存批次列表" + +#. DESC_BATCH_LIST_LOAD +msgid "Load batch list" +msgstr "载入批次列表" + +#. DESC_BATCH_RENAME +msgid "Rename area" +msgstr "更名区域" + +#. DESC_BATCH_ADD +msgid "Add selected preview area to batch list" +msgstr "增加选择的预览区域到批次列表" + +#. DESC_BATCH_DEL +msgid "Delete selected area from batch list" +msgstr "从批次列表删除选择的区域" + +#. DESC_AUTOMATIC +msgid "Turns on automatic mode" +msgstr "" + +#. DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default color ICM-profile" +msgstr "影像档案浏览" + +#. DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for scanner default gray ICM-profile" +msgstr "影像档案浏览" + +#. DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for display ICM-profile" +msgstr "影像档案浏览" + +#. DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for printer ICM-profile" +msgstr "影像档案浏览" + +#. DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for custom proofing ICM-profile" +msgstr "影像档案浏览" + +#. DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE +#, fuzzy +msgid "Browse for working color space ICM-profile" +msgstr "影像档案浏览" + +#. ERR_HOME_DIR +msgid "Failed to determine home directory:" +msgstr "无法决定Home目录" + +#. ERR_CHANGE_WORKING_DIR +msgid "Failed to change working directory to" +msgstr "不能去更改工作目录到" + +#. ERR_FILENAME_TOO_LONG +msgid "Filename too long" +msgstr "档名太长" + +#. ERR_CREATE_TEMP_FILE +msgid "" +"Could not create temporary file.\n" +"Open Menue Preferences->Setup Tab Save and\n" +"select a temporary directory where you have\n" +"write permissions." +msgstr "" + +#. ERR_SET_OPTION +msgid "Failed to set value of option" +msgstr "不能去设定选项的值" + +#. ERR_GET_OPTION +msgid "Failed to obtain value of option" +msgstr "" + +#. ERR_OPTION_COUNT +msgid "Error obtaining option count" +msgstr "" + +#. ERR_DEVICE_OPEN_FAILED +msgid "Failed to open device" +msgstr "开启装置失败" + +#. ERR_NO_DEVICES +msgid "no devices available" +msgstr "没有装置可以使用" + +#. ERR_DURING_READ +msgid "Error during read:" +msgstr "读取时错误" + +#. ERR_DURING_SAVE +msgid "Error during save:" +msgstr "储存时错误" + +#. ERR_BAD_DEPTH +msgid "Can't handle depth" +msgstr "无法取得深度" + +#. ERR_UNKNOWN_SAVING_FORMAT +msgid "Unknown file format for saving" +msgstr "储存成未知的档案格式" + +#. ERR_OPEN_FAILED +msgid "Failed to open" +msgstr "开启失败" + +#. ERR_CREATE_SECURE_FILE +msgid "Could not create secure file (may be a link does exist):" +msgstr "不能建立安全档(可能连结已经存在)" + +#. ERR_FAILED_PRINTER_PIPE +msgid "Failed to open pipe for executing printercommand" +msgstr "不能开启管线为了执行列印命令" + +#. ERR_FAILED_EXEC_PRINTER_CMD +msgid "Failed to execute printercommand:" +msgstr "不能执行列印命令" + +#. ERR_FAILED_START_SCANNER +msgid "Failed to start scanner:" +msgstr "不能开始扫描器" + +#. ERR_FAILED_GET_PARAMS +msgid "Failed to get parameters:" +msgstr "拿不到参数" + +#. ERR_NO_OUTPUT_FORMAT +msgid "No output format given" +msgstr "没有得到输出格式" + +#. ERR_NO_MEM +msgid "out of memory" +msgstr "记忆体不足" + +#. ERR_TOO_MUCH_DATA +msgid "Backend sends more image data than it defined in parameters" +msgstr "" + +#. ERR_LIBTIFF +msgid "LIBTIFF reports error" +msgstr "" + +#. ERR_LIBPNG +msgid "LIBPNG reports error" +msgstr "" + +#. ERR_LIBJPEG +msgid "LIBJPEG reports error" +msgstr "" + +#. ERR_ZLIB +msgid "ZLIB error or memory allocation problem" +msgstr "" + +#. ERR_UNKNOWN_TYPE +msgid "unknown type" +msgstr "未知的型态" + +#. ERR_UNKNOWN_CONSTRAINT_TYPE +msgid "unknown constraint type" +msgstr "" + +#. ERR_OPTION_NAME_NULL +msgid "Option has empty name (NULL)." +msgstr "" + +#. ERR_BACKEND_BUG +msgid "This is a backend bug. Please inform the author of the backend!" +msgstr "" + +#. ERR_FAILED_EXEC_DOC_VIEWER +msgid "Failed to execute documentation viewer:" +msgstr "不能执行文件检视器" + +#. ERR_FAILED_EXEC_FAX_VIEWER +msgid "Failed to execute fax viewer:" +msgstr "不能执行传真检视器" + +#. ERR_FAILED_EXEC_FAX_CMD +msgid "Failed to execute fax command:" +msgstr "不能执行传真命令" + +#. ERR_FAILED_EXEC_OCR_CMD +msgid "Failed to execute ocr command:" +msgstr "不能执行ocr命令" + +#. ERR_BAD_FRAME_FORMAT +msgid "bad frame format" +msgstr "烂的框架格式" + +#. ERR_FAILED_SET_RESOLUTION +msgid "unable to set resolution" +msgstr "不能选择解析度" + +#. ERR_PASSWORD_FILE_INSECURE +#, c-format +msgid "Password file (%s) is insecure, use permission x00\n" +msgstr "密码档(%s)不安全,使用x00权限\n" + +#. ERR_ERROR +msgid "error" +msgstr "错误" + +#. ERR_MAJOR_VERSION_NR_CONFLICT +msgid "Sane major version number mismatch!" +msgstr "" + +#. ERR_XSANE_MAJOR_VERSION +msgid "XSane major version =" +msgstr "" + +#. ERR_BACKEND_MAJOR_VERSION +msgid "backend major version =" +msgstr "" + +#. ERR_PROGRAM_ABORTED +msgid "*** PROGRAM ABORTED ***" +msgstr "" + +#. ERR_FAILED_ALLOCATE_IMAGE +msgid "Failed to allocate image memory:" +msgstr "不能去配置影像记忆体" + +#. ERR_PREVIEW_BAD_DEPTH +msgid "Preview cannot handle bit depth" +msgstr "预览不能取得位元深度" + +#. ERR_GIMP_SUPPORT_MISSING +msgid "GIMP support missing" +msgstr "GIMP支援遗失" + +#. ERR_CREATE_FAX_PROJECT +msgid "Could not create faxproject" +msgstr "不能建立传真专案" + +#. WARN_COUNTER_UNDERRUN +msgid "Filename counter underrun" +msgstr "" + +#. WARN_NO_VALUE_CONSTRAINT +msgid "warning: option has no value constraint" +msgstr "" + +#. WARN_XSANE_AS_ROOT +msgid "" +"You try to run XSane as ROOT, that really is DANGEROUS!\n" +"\n" +"Do not send any bug reports when you\n" +"have any problem while running XSane as root:\n" +"YOU ARE ALONE!" +msgstr "" +"你试图以 ROOT 身份运行 XSane, 这样做将会十分危险!\n" +"\n" +"如果你以 root 身份运行 XSane, 请不要试图提交任何 bug 报告。" + +#. ERR_HEADER_ERROR +msgid "Error" +msgstr "错误" + +#. ERR_HEADER_WARNING +msgid "Warning" +msgstr "警告" + +#. ERR_HEADER_INFO +msgid "Information" +msgstr "资讯" + +#. ERR_HEADER_CHILD_PROCESS_ERROR +msgid "Child process error" +msgstr "子行程错误" + +#. ERR_FAILED_CREATE_FILE +msgid "Failed to create file:" +msgstr "不能建立档案:" + +#. ERR_LOAD_DEVICE_SETTINGS +msgid "Error while loading device settings:" +msgstr "载入装置设定时错误" + +#. ERR_NO_DRC_FILE +msgid "is not a device-rc-file !!!" +msgstr "不是一个装置rc file" + +#. ERR_NETSCAPE_EXECUTE_FAIL +msgid "Failed to execute netscape!" +msgstr "不能执行netscape!" + +#. ERR_SENDFAX_RECEIVER_MISSING +msgid "Send fax: no receiver defined" +msgstr "传送传真: 没有定义接收者" + +#. ERR_CREATED_FOR_DEVICE +msgid "has been created for device" +msgstr "" + +#. ERR_USED_FOR_DEVICE +msgid "you want to use it for device" +msgstr "" + +#. ERR_MAY_CAUSE_PROBLEMS +msgid "this may cause problems!" +msgstr "" + +#. WARN_UNSAVED_IMAGES +#, c-format +msgid "There are %d unsaved images" +msgstr "有 %d 未储存的档案" + +#. WARN_FILE_EXISTS +#, c-format +msgid "File %s already exists" +msgstr "档案 %s 已经存在" + +#. ERR_FILE_NOT_EXISTS +#, c-format +msgid "File %s does not exist" +msgstr "档案 %s 不存在" + +#. ERR_FILE_NOT_POSTSCRIPT +#, c-format +msgid "File %s is not a postscript file" +msgstr "%s 不是一个postscript 档" + +#. ERR_UNSUPPORTED_OUTPUT_FORMAT +#, c-format +msgid "Unsupported %d-bit output format: %s" +msgstr "不支援 %d -bit 输出格式: %s" + +#. ERR_CMS_CONVERSION +#, fuzzy +msgid "Error during CMS conversion:" +msgstr "储存时错误" + +#. ERR_CMS_OPEN_ICM_FILE +#, fuzzy +msgid "Could not open" +msgstr "开启失败" + +#. CMS_SCANNER_ICM +#, fuzzy +msgid "scanner ICM profile" +msgstr "删除列表机" + +#. CMS_DISPLAY_ICM +#, fuzzy +msgid "display ICM profile" +msgstr "影像档案浏览" + +#. CMS_PROOF_ICM +#, fuzzy +msgid "proofing ICM profile" +msgstr "删除列表机" + +#. ERR_CMS_CREATE_TRANSFORM +#, fuzzy +msgid "Could not create transform" +msgstr "不能建立传真专案" + +#. WARN_VIEWER_IMAGE_NOT_SAVED +msgid "viewer image is not saved" +msgstr "检视器影像没有储存" + +#. FILE_FILTER_ALL_FILES +msgid "All files" +msgstr "" + +#. FILE_FILTER_IMAGES +#, fuzzy +msgid "Images" +msgstr "页数:" + +#. FILE_FILTER_XBL +#, fuzzy +msgid "XSane batch list" +msgstr "储存批次列表" + +#. FILE_FILTER_ICM +msgid "ICC/ICM Profiles" +msgstr "" + +#. FILE_FILTER_DRC +#, fuzzy +msgid "XSane device preferences" +msgstr "离开时储存装置偏好设定" + +#. FILE_FILTER_RC +#, fuzzy +msgid "XSane preferences" +msgstr "偏好设定" + +#. TEXT_USAGE +msgid "Usage:" +msgstr "使用:" + +#. TEXT_USAGE_OPTIONS +msgid "[OPTION]... [DEVICE]" +msgstr "" + +#. TEXT_HELP +msgid "" +"Start up graphical user interface to access SANE (Scanner Access Now Easy) " +"devices.\n" +"\n" +"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n" +"[OPTION]... can be a combination of the following items:\n" +" -h, --help display this help message and exit\n" +" -v, --version print version information\n" +" -l, --license print license information\n" +"\n" +" -d, --device-settings file load device settings from file (without \".drc" +"\")\n" +"\n" +" -V, --viewer start with viewer-mode active (default)\n" +" -s, --save start with save-mode active\n" +" -c, --copy start with copy-mode active\n" +" -m, --multipage start with multipage-mode active\n" +" -f, --fax start with fax-mode active\n" +" -e, --email start with e-mail-mode active\n" +" -n, --no-mode-selection disable menu for XSane mode selection\n" +"\n" +" -F, --Fixed fixed main window size (overwrite preferences " +"value)\n" +" -R, --Resizeable resizable, scrolled main window (overwrite " +"preferences value)\n" +"\n" +" -p, --print-filenames print image filenames created by XSane\n" +" -N, --force-filename name force filename and disable user filename " +"selection\n" +"\n" +" --display X11-display redirect output to X11-display\n" +" --no-xshm do not use shared memory images\n" +" --sync request a synchronous connection with the X11 " +"server" +msgstr "" + +#. strings for gimp plugin +#. XSANE_GIMP_INSTALL_BLURB +msgid "Front-end to the SANE interface" +msgstr "" + +#. XSANE_GIMP_INSTALL_HELP +msgid "" +"This function provides access to scanners and other image acquisition " +"devices through the SANE (Scanner Access Now Easy) interface." +msgstr "" + +#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" +#. XSANE_GIMP_MENU_DIALOG +msgid "/File/Acquire/XSane: Device dialog..." +msgstr "" + +#. XSANE_GIMP_MENU +msgid "/File/Acquire/XSane: " +msgstr "" + +#. XSANE_GIMP_MENU_DIALOG_OLD +msgid "/Xtns/XSane/Device dialog..." +msgstr "" + +#. XSANE_GIMP_MENU_OLD +msgid "/Xtns/XSane/" +msgstr "" + +#. HELP_NO_DEVICES +msgid "" +"Possible reasons:\n" +"1) There really is no device that is supported by SANE\n" +"2) Supported devices are busy\n" +"3) The permissions for the device file do not allow you to use it - try as " +"root\n" +"4) The backend is not loaded by SANE (man sane-dll)\n" +"5) The backend is not configured correct (man sane-\"backendname\")\n" +"6) Possibly there is more than one SANE version installed" +msgstr "" + +#. strings that are used in structures, so it is not allowed to use _()/gettext() here +#. gettext_noop does mark these texts but does not change the string +#. MENU_ITEM_SURFACE_FULL_SIZE +msgid "full size" +msgstr "完全大小" + +#. MENU_ITEM_SURFACE_DIN_A3P +msgid "DIN A3 port." +msgstr "" + +#. MENU_ITEM_SURFACE_DIN_A3L +msgid "DIN A3 land." +msgstr "" + +#. MENU_ITEM_SURFACE_DIN_A4P +msgid "DIN A4 port." +msgstr "" + +#. MENU_ITEM_SURFACE_DIN_A4L +msgid "DIN A4 land." +msgstr "" + +#. MENU_ITEM_SURFACE_DIN_A5P +msgid "DIN A5 port." +msgstr "" + +#. MENU_ITEM_SURFACE_DIN_A5L +msgid "DIN A5 land." +msgstr "" + +#. MENU_ITEM_SURFACE_13cmx18cm +msgid "13cm x 18cm" +msgstr "" + +#. MENU_ITEM_SURFACE_18cmx13cm +msgid "18cm x 13cm" +msgstr "" + +#. MENU_ITEM_SURFACE_10cmx15cm +msgid "10cm x 15cm" +msgstr "" + +#. MENU_ITEM_SURFACE_15cmx10cm +msgid "15cm x 10cm" +msgstr "" + +#. MENU_ITEM_SURFACE_9cmx13cm +msgid "9cm x 13cm" +msgstr "" + +#. MENU_ITEM_SURFACE_13cmx9cm +msgid "13cm x 9cm" +msgstr "" + +#. MENU_ITEM_SURFACE_legal_P +msgid "legal port." +msgstr "" + +#. MENU_ITEM_SURFACE_legal_L +msgid "legal land." +msgstr "" + +#. MENU_ITEM_SURFACE_letter_P +msgid "letter port." +msgstr "" + +#. MENU_ITEM_SURFACE_letter_L +msgid "letter land." +msgstr "" + +#. MENU_ITEM_MEDIUM_FULL_COLOR_RANGE +msgid "Full color range" +msgstr "全色范围" + +#. MENU_ITEM_MEDIUM_SLIDE +msgid "Slide" +msgstr "幻灯片(正片)" + +#. MENU_ITEM_MEDIUM_STANDARD_NEG +msgid "Standard negative" +msgstr "标准负片" + +#. MENU_ITEM_MEDIUM_AGFA_NEG +msgid "Agfa negative" +msgstr "Agfa 负片" + +#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4 +msgid "Agfa negative XRG 200-4" +msgstr "Agfa 负片XRG 200-4 " + +#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100 +msgid "Agfa negative HDC 100" +msgstr "Agfa 负片HDC 100" + +#. MENU_ITEM_MEDIUM_FUJI_NEG +msgid "Fuji negative" +msgstr "富士(Fuji)负片" + +#. MENU_ITEM_MEDIUM_KODAK_NEG +msgid "Kodak negative" +msgstr "柯达(Kodak)负片" + +#. MENU_ITEM_MEDIUM_KONICA_NEG +msgid "Konica negative" +msgstr "柯尼卡(Konica)负片" + +#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 +msgid "Konica negative VX 100" +msgstr "柯尼卡(Konica)负片 VX 100" + +#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 +msgid "Rossmann negative HR 100" +msgstr "" + +# +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "工程未建立" + +# +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "工程已建立" + +# +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "工程已更改" + +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "读取工程是出错" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "保存工程时出错" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "正在保存文件" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "已取消保存文件" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "文件已保存" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED +msgid "POP3 connection failed" +msgstr "POP3 连接失败" + +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED +msgid "POP3 login failed" +msgstr "POP3 登录失败" + +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP 认证失败" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED +msgid "SMTP connection failed" +msgstr "SMTP 连接失败" + +# +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM +msgid "From entry not accepted" +msgstr "发件地址不正确" + +# +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT +msgid "Receiver entry not accepted" +msgstr "接收地址不正确" + +# +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "邮件数据不正确" + +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "正在发送邮件" + +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "邮件已发送" + +#. TEXT_FAX_STATUS_QUEUEING_FAX +msgid "Queueing Fax" +msgstr "正在等待传真列队" + +#. TEXT_FAX_STATUS_FAX_QUEUED +msgid "Fax is queued" +msgstr "传真已进入列队" + +#. Sane backend messages +msgid "flatbed scanner" +msgstr "平台扫描器" + +msgid "frame grabber" +msgstr "边框抓取器" + +msgid "handheld scanner" +msgstr "手持式扫描器" + +msgid "still camera" +msgstr "静音摄像机" + +msgid "video camera" +msgstr "视频摄像机" + +msgid "virtual device" +msgstr "虚拟装置" + +msgid "Success" +msgstr "完成" + +msgid "Operation not supported" +msgstr "平台未支援" + +msgid "Operation was cancelled" +msgstr "平台已经取消" + +msgid "Device busy" +msgstr "装置忙碌" + +msgid "Invalid argument" +msgstr "无效的参数" + +msgid "End of file reached" +msgstr "已到达文件尾" + +msgid "Document feeder jammed" +msgstr "文档获取器阻塞" + +msgid "Document feeder out of documents" +msgstr "" + +msgid "Scanner cover is open" +msgstr "扫描仪盖子已打开" + +msgid "Error during device I/O" +msgstr "装置I/O时错误" + +msgid "Out of memory" +msgstr "内存不足" + +msgid "Access to resource has been denied" +msgstr "资源存取被禁止" + +#, fuzzy +#~ msgid "select scanner transmissive ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "select scanner transmissive gray ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Scanner reflective ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Scanner reflective gray ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Scanner transmissive gray ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Scanner reflektive ICM-profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Browse for scanner transmissive ICM-profile" +#~ msgstr "影像档案浏览" + +#, fuzzy +#~ msgid "Browse for scanner transmissive gray ICM-profile" +#~ msgstr "影像档案浏览" + +#~ msgid "GIMP can't handle depth %d bits/color" +#~ msgstr "GIMP不能取得深度 %d bits/color" + +#, fuzzy +#~ msgid "scanner reflective ICM profile" +#~ msgstr "删除列表机" + +#, fuzzy +#~ msgid "Embed scanner/source ICM profile for GIMP" +#~ msgstr "删除列表机" + +#~ msgid "Enter name of fax project" +#~ msgstr "输入传真专案的名称" + +#~ msgid "Enter name of e-mail project" +#~ msgstr "输入邮件专案的名称" + +#~ msgid "Enter name of multipage project" +#~ msgstr "输入多页工程的名称" + +#~ msgid "" +#~ "Gimp does not support depth 16 bits/color.\n" +#~ "Do you want to reduce the depth to 8 bits/color?" +#~ msgstr "" +#~ "Gimp 不支援 16位元/色彩 深度\n" +#~ "你想要简化成8 位元/色彩 深度吗?" diff --git a/src/Makefile.in b/src/Makefile.in index 5debbbb..4ea7a66 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -108,7 +108,7 @@ clean: rm -rf .libs distclean: clean - rm -f Makefile $(PROGRAMS) + rm -f Makefile $(PROGRAMS) depend: makedepend $(INCLUDES) *.c @@ -232,6 +232,7 @@ xsane-multipage-project.o: xsane-front-gtk.h xsane-multipage-project.o: xsane-preferences.h xsane-multipage-project.o: xsane-multipage-project.h xsane-multipage-project.o: xsane-text.h +xsane-multipage-project.o: xsane-save.h xsane-fax-project.o: xsane.h xsane-fax-project.o: xsane-back-gtk.h diff --git a/src/xsane-back-gtk.c b/src/xsane-back-gtk.c index 10ac0b3..6ed24a4 100644 --- a/src/xsane-back-gtk.c +++ b/src/xsane-back-gtk.c @@ -3,7 +3,7 @@ xsane-back-gtk.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -470,7 +470,7 @@ void xsane_back_gtk_set_option(int opt_num, void *val, SANE_Action action) SANE_Status status; SANE_Int info; char buf[TEXTBUFSIZE]; - int old_colors = xsane.xsane_colors; + int old_channels = xsane.xsane_channels; int update_gamma = FALSE; DBG(DBG_proc, "xsane_back_gtk_set_option\n"); @@ -505,7 +505,7 @@ void xsane_back_gtk_set_option(int opt_num, void *val, SANE_Action action) /* XXXXXXXXXXXXXX this also has to be handled XXXXXXXXXXXXXXX */ } - if (xsane.xsane_colors != old_colors) + if (xsane.xsane_channels != old_channels) { /* we have to update gamma tables and histogram because medium settings */ /* may have changed */ @@ -734,7 +734,7 @@ gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar button = gtk_button_new_with_label(oktext); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_back_gtk_decision_ok_callback, (void *) decision_flag_ptr); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_box_pack_end(GTK_BOX(hbox), button, TRUE, TRUE, 5); gtk_widget_grab_default(button); gtk_widget_show(button); @@ -743,7 +743,7 @@ gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar { button = gtk_button_new_with_label(rejecttext); g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_back_gtk_decision_reject_callback, (void *) decision_flag_ptr); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_box_pack_end(GTK_BOX(hbox), button, TRUE, TRUE, 5); gtk_widget_show(button); } @@ -871,59 +871,6 @@ void xsane_back_gtk_info(gchar *info, int wait) /* ---------------------------------------------------------------------------------------------------------------------- */ -GtkWidget *fileselection; -char *fileselection_filetype = NULL; - -static void xsane_back_gtk_filetype_callback(GtkWidget *widget, gpointer data) -{ - char *extension, *filename; - char buffer[PATH_MAX]; - char *new_filetype = (char *) data; - - DBG(DBG_proc, "xsane_filetype_callback\n"); - - filename = strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection))); - - if ((new_filetype) && (*new_filetype)) - { - extension = strrchr(filename, '.'); - - if ((extension) && (extension != filename)) - { - if ( (!strcasecmp(extension, ".pnm")) || (!strcasecmp(extension, ".raw")) - || (!strcasecmp(extension, ".png")) || (!strcasecmp(extension, ".ps")) - || (!strcasecmp(extension, ".pdf")) || (!strcasecmp(extension, ".rgba")) - || (!strcasecmp(extension, ".tiff")) || (!strcasecmp(extension, ".tif")) - || (!strcasecmp(extension, ".text")) || (!strcasecmp(extension, ".txt")) - || (!strcasecmp(extension, ".jpg")) || (!strcasecmp(extension, ".jpeg")) - ) /* remove filetype extension */ - { - *extension = 0; /* remove extension */ - } - } - snprintf(buffer, sizeof(buffer), "%s%s", filename, new_filetype); - free(filename); - filename = strdup(buffer); - } - - if (fileselection_filetype) - { - free(fileselection_filetype); - fileselection_filetype = NULL; - } - - if (data) - { - fileselection_filetype = strdup(new_filetype); - } - - gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection), filename); - - free(filename); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - void xsane_back_gtk_filetype_menu_set_history(GtkWidget *xsane_filetype_option_menu, char *filetype) { int filetype_nr; @@ -940,6 +887,13 @@ void xsane_back_gtk_filetype_menu_set_history(GtkWidget *xsane_filetype_option_m } #endif + filetype_nr++; + if ( (filetype) && (!strcasecmp(filetype, XSANE_FILETYPE_PDF)) ) + { + select_item = filetype_nr; + } + + #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ filetype_nr++; @@ -962,12 +916,6 @@ void xsane_back_gtk_filetype_menu_set_history(GtkWidget *xsane_filetype_option_m select_item = filetype_nr; } - filetype_nr++; - if ( (filetype) && (!strcasecmp(filetype, XSANE_FILETYPE_PDF)) ) - { - select_item = filetype_nr; - } - #ifdef SUPPORT_RGBA filetype_nr++; if ( (filetype) && (!strcasecmp(filetype, XSANE_FILETYPE_RGBA)) ) @@ -1112,6 +1060,475 @@ GtkWidget *xsane_back_gtk_filetype_menu_new(char *filetype, GtkSignalFunc filety /* ----------------------------------------------------------------------------------------------------------------- */ +GtkWidget *xsane_back_gtk_cms_function_menu_new(int select_cms_function, GtkSignalFunc cms_function_menu_callback) +{ + GtkWidget *xsane_cms_function_menu, *xsane_cms_function_item; + GtkWidget *xsane_cms_function_option_menu; + + xsane_cms_function_menu = gtk_menu_new(); + + xsane_cms_function_item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE); + if (cms_function_menu_callback) + { + g_signal_connect(GTK_OBJECT(xsane_cms_function_item), "activate", (GtkSignalFunc) cms_function_menu_callback, (void *) XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE); + } + gtk_container_add(GTK_CONTAINER(xsane_cms_function_menu), xsane_cms_function_item); + gtk_widget_show(xsane_cms_function_item); + + xsane_cms_function_item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB); + if (cms_function_menu_callback) + { + g_signal_connect(GTK_OBJECT(xsane_cms_function_item), "activate", (GtkSignalFunc) cms_function_menu_callback, (void *) XSANE_CMS_FUNCTION_CONVERT_TO_SRGB); + } + gtk_container_add(GTK_CONTAINER(xsane_cms_function_menu), xsane_cms_function_item); + gtk_widget_show(xsane_cms_function_item); + + xsane_cms_function_item = gtk_menu_item_new_with_label(MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS); + if (cms_function_menu_callback) + { + g_signal_connect(GTK_OBJECT(xsane_cms_function_item), "activate", (GtkSignalFunc) cms_function_menu_callback, (void *) XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS); + } + gtk_container_add(GTK_CONTAINER(xsane_cms_function_menu), xsane_cms_function_item); + gtk_widget_show(xsane_cms_function_item); + + xsane_cms_function_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_cms_function_option_menu, DESC_CMS_FUNCTION); + gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_cms_function_option_menu), xsane_cms_function_menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_cms_function_option_menu), select_cms_function); + + return (xsane_cms_function_option_menu); +} + +/* ----------------------------------------------------------------------------------------------------------------- */ + +#ifdef __GTK_FILE_CHOOSER_H__ + +GtkWidget *filechooser; +char *filechooser_filetype = NULL; + +static void xsane_back_gtk_filetype2_callback(GtkWidget *widget, gpointer data) +{ + char *extension, *chooser_filename; + char filename[PATH_MAX]; + char *basename; + char *new_filetype = (char *) data; + int pos; + + DBG(DBG_proc, "xsane_filetype2_callback\n"); + + chooser_filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooser)); + + if ((new_filetype) && (*new_filetype)) + { + extension = strrchr(chooser_filename, '.'); + + if ((extension) && (extension != chooser_filename)) + { + if ( (!strcasecmp(extension, ".pnm")) || (!strcasecmp(extension, ".raw")) + || (!strcasecmp(extension, ".png")) || (!strcasecmp(extension, ".ps")) + || (!strcasecmp(extension, ".pdf")) || (!strcasecmp(extension, ".rgba")) + || (!strcasecmp(extension, ".tiff")) || (!strcasecmp(extension, ".tif")) + || (!strcasecmp(extension, ".text")) || (!strcasecmp(extension, ".txt")) + || (!strcasecmp(extension, ".jpg")) || (!strcasecmp(extension, ".jpeg")) + ) /* remove filetype extension */ + { + *extension = 0; /* remove extension */ + } + } + snprintf(filename, sizeof(filename), "%s%s", chooser_filename, new_filetype); + } + + if (filechooser_filetype) + { + free(filechooser_filetype); + filechooser_filetype = NULL; + } + + if (data) + { + filechooser_filetype = strdup(new_filetype); + } + + + basename = filename; + + for (pos = strlen(filename) - 1; pos > 0; pos--) + { + if (filename[pos] == '/') + { + filename[pos]=0; + + basename = filename+pos+1; + break; + } + } + + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filechooser), basename); + + g_free(chooser_filename); +} + +/* ----------------------------------------------------------------------------------------------------------------- */ + +int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, char **filetype, int *cms_function, + XsaneFileChooserAction action, int show_extra_widgets, int enable_filters, int activate_filter) +{ + int ok = 0; + GtkWidget *xsane_filetype_option_menu; + GtkWidget *xsane_cms_function_option_menu = xsane_cms_function_option_menu; + gint result; + const gchar *accept_text = NULL; + const gchar *reject_text = NULL; + GtkFileChooserAction chooser_action = GTK_FILE_CHOOSER_ACTION_OPEN; + GtkResponseType accept_code; + GtkResponseType reject_code; + char buf[PATH_MAX]; + + + DBG(DBG_proc, "xsane_back_gtk_get_filename\n"); + + if (filechooser) + { + gdk_beep(); + return -1; /* cancel => do not allow to open more than one filechooser dialog */ + } + + switch (action) + { + default: + case XSANE_FILE_CHOOSER_ACTION_OPEN: + chooser_action = GTK_FILE_CHOOSER_ACTION_OPEN; + accept_text = GTK_STOCK_OPEN; + accept_code = GTK_RESPONSE_ACCEPT; + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + + case XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN: + chooser_action = GTK_FILE_CHOOSER_ACTION_OPEN; + accept_text = GTK_STOCK_OK; + accept_code = GTK_RESPONSE_ACCEPT; + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + + case XSANE_FILE_CHOOSER_ACTION_SAVE: + chooser_action = GTK_FILE_CHOOSER_ACTION_SAVE; + accept_text = GTK_STOCK_SAVE; + accept_code = GTK_RESPONSE_ACCEPT; + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + + case XSANE_FILE_CHOOSER_ACTION_SELECT_SAVE: + chooser_action = GTK_FILE_CHOOSER_ACTION_SAVE; + accept_text = GTK_STOCK_OK; + accept_code = GTK_RESPONSE_ACCEPT; + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + + case XSANE_FILE_CHOOSER_ACTION_SELECT_FOLDER: + chooser_action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; + accept_text = GTK_STOCK_OK; + accept_code = GTK_RESPONSE_ACCEPT; + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + + case XSANE_FILE_CHOOSER_ACTION_SELECT_PROJECT: + chooser_action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; + accept_text = GTK_STOCK_OK; + accept_code = GTK_RESPONSE_NO; /* when we would use ACCEPT, OK, YES or APPLY then the filechooser_dialog would create non existant directories */ + reject_text = GTK_STOCK_CANCEL; + reject_code = GTK_RESPONSE_CANCEL; + break; + } + + filechooser = gtk_file_chooser_dialog_new (label, + NULL, + chooser_action, + reject_text, reject_code, + accept_text, accept_code, + NULL); + + xsane_set_window_icon(filechooser, 0); + + gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(filechooser), TRUE); + + + /* add paths to filechooser */ + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME))); + gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(filechooser), buf, NULL); + } + + if (getcwd(buf, sizeof(buf))) + { + gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(filechooser), buf, NULL); + } + + + if (enable_filters & XSANE_FILE_FILTER_ALL) /* filter: all files */ + { + GtkFileFilter *filter; + + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*"); + + gtk_file_filter_set_name(filter, FILE_FILTER_ALL_FILES); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); + + if (activate_filter == XSANE_FILE_FILTER_ALL) + { + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(filechooser), filter); + } + } + + if (enable_filters & XSANE_FILE_FILTER_DRC) /* filter: device rc */ + { + GtkFileFilter *filter; + + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*.[dD][rR][cC]"); + + gtk_file_filter_set_name(filter, FILE_FILTER_DRC); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); + + if (activate_filter == XSANE_FILE_FILTER_DRC) + { + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(filechooser), filter); + } + + /* add path to filechooser */ + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(filechooser), getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), NULL); + } + } + + if (enable_filters & XSANE_FILE_FILTER_ICM) /* filter: color management profiles */ + { + GtkFileFilter *filter; + + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*.[iI][cC][cCmM]"); + + gtk_file_filter_set_name(filter, FILE_FILTER_ICM); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); + + if (activate_filter == XSANE_FILE_FILTER_ICM) + { + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(filechooser), filter); + } + + /* add path to filechooser */ + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s%c.color%cicc", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, SLASH); + gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(filechooser), buf, NULL); + } + gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(filechooser), "/usr/share/color/icc", NULL); + } + + if (enable_filters & XSANE_FILE_FILTER_IMAGES) /* filter: images */ + { + GtkFileFilter *filter; + + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*.[jJ][pP][gG]"); + gtk_file_filter_add_pattern(filter, "*.[jJ][pP][eE][gG]"); + gtk_file_filter_add_pattern(filter, "*.[pP][nN][gG]"); + gtk_file_filter_add_pattern(filter, "*.[tT][iI][fF]"); + gtk_file_filter_add_pattern(filter, "*.[tT][iI][fF][fF]"); + gtk_file_filter_add_pattern(filter, "*.[pP][sS]"); + gtk_file_filter_add_pattern(filter, "*.[pP][dD][fF]"); + gtk_file_filter_add_pattern(filter, "*.[pP][nN][mM]"); + gtk_file_filter_add_pattern(filter, "*.[pP][bB][mM]"); + gtk_file_filter_add_pattern(filter, "*.[pP][gG][mM]"); + gtk_file_filter_add_pattern(filter, "*.[pP][pP][mM]"); + + gtk_file_filter_set_name(filter, FILE_FILTER_IMAGES); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); + + if (activate_filter == XSANE_FILE_FILTER_IMAGES) + { + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(filechooser), filter); + } + } + + if (enable_filters & XSANE_FILE_FILTER_BATCHLIST) /* filter: color management profiles */ + { + GtkFileFilter *filter; + + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, "*.[xX][bV][lL]"); + + gtk_file_filter_set_name(filter, FILE_FILTER_XBL); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); + + if (activate_filter == XSANE_FILE_FILTER_BATCHLIST) + { + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(filechooser), filter); + } + } + + /* set default filename */ + if (default_name) /* select file */ + { + const char *basename = default_name; + char *path; + int pos; + + DBG(DBG_info, "xsane_back_gtk_get_filename: default_name =%s\n", default_name); + + path = strdup(default_name); + for (pos = strlen(path)-1; pos > 0; pos--) + { + if (path[pos] == '/') + { + path[pos]=0; + + basename = path+pos+1; + break; + } + } + + if (pos) + { + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filechooser), path); + } + + if ((action == XSANE_FILE_CHOOSER_ACTION_SAVE) || (action == XSANE_FILE_CHOOSER_ACTION_SELECT_SAVE)) + { + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filechooser), (char *) basename); + } + else + { + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filechooser), (char *) default_name); + } + } + + + /* add filetype menu */ + + if (show_extra_widgets) + { + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *label; + + vbox = gtk_vbox_new(FALSE, 15); + gtk_widget_show(vbox); + + if (show_extra_widgets & XSANE_GET_FILENAME_SHOW_FILETYPE) + { + DBG(DBG_info, "xsane_back_gtk_get_filename: showing filetype menu\n"); + + if (filechooser_filetype) + { + free(filechooser_filetype); + } + + if ((filetype) && (*filetype)) + { + filechooser_filetype = strdup(*filetype); + } + else + { + filechooser_filetype = NULL; + } + + hbox = gtk_hbox_new(FALSE, 2); + gtk_widget_show(hbox); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new(TEXT_FILETYPE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_widget_show(label); + + xsane_filetype_option_menu = xsane_back_gtk_filetype_menu_new(filechooser_filetype, (GtkSignalFunc) xsane_back_gtk_filetype2_callback); + gtk_box_pack_start(GTK_BOX(hbox), xsane_filetype_option_menu, TRUE, TRUE, 2); + gtk_widget_show(xsane_filetype_option_menu); + } + +#ifdef HAVE_LIBLCMS + if ((cms_function) && (show_extra_widgets & XSANE_GET_FILENAME_SHOW_CMS_FUNCTION)) + { + hbox = gtk_hbox_new(FALSE, 2); + gtk_widget_show(hbox); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new(TEXT_CMS_FUNCTION); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_widget_show(label); + + xsane_cms_function_option_menu = xsane_back_gtk_cms_function_menu_new(*cms_function, NULL); + gtk_box_pack_start(GTK_BOX(hbox), xsane_cms_function_option_menu, TRUE, TRUE, 2); + gtk_widget_show(xsane_cms_function_option_menu); + } +#endif + + gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(filechooser), vbox); + } + + + gtk_widget_show(filechooser); + + result = gtk_dialog_run(GTK_DIALOG(filechooser)); + + DBG(DBG_info, "xsane_back_gtk_get_filename: gtk_dialog_run() returned with result=%d\n", result); + + if (result == accept_code) + { + char *chooser_filename; + + if ((filetype) && (*filetype)) + { + free(*filetype); + *filetype = NULL; + } + + if (filechooser_filetype) + { + if (filetype) + { + *filetype = strdup(filechooser_filetype); + } + } + +#ifdef HAVE_LIBLCMS + if ((cms_function) && (show_extra_widgets & XSANE_GET_FILENAME_SHOW_CMS_FUNCTION)) + { + *cms_function = gtk_option_menu_get_history(GTK_OPTION_MENU(xsane_cms_function_option_menu)); + + DBG(DBG_info, "selected cms_function = %d\n", *cms_function); + } +#endif + + chooser_filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooser)); + strncpy(filename, chooser_filename, max_len - 1); + g_free(chooser_filename); + + filename[max_len - 1] = '\0'; + + ok = TRUE; + } + + gtk_widget_destroy(filechooser); + filechooser = NULL; + + return ok ? 0 : -1; +} + +#else + +GtkWidget *fileselection; +char *fileselection_filetype = NULL; + +/* ----------------------------------------------------------------------------------------------------------------- */ + static void xsane_back_gtk_get_filename_button_clicked(GtkWidget *w, gpointer data) { int *clicked = data; @@ -1122,12 +1539,73 @@ static void xsane_back_gtk_get_filename_button_clicked(GtkWidget *w, gpointer da /* ----------------------------------------------------------------------------------------------------------------- */ -int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, char **filetype, - int show_fileopts, int shorten_path, int select_directory, int show_filetype_menu) +static void xsane_back_gtk_filetype_callback(GtkWidget *widget, gpointer data) +{ + char *extension, *filename; + char buffer[PATH_MAX]; + char *new_filetype = (char *) data; + + DBG(DBG_proc, "xsane_filetype_callback\n"); + + filename = strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection))); + + if ((new_filetype) && (*new_filetype)) + { + extension = strrchr(filename, '.'); + + if ((extension) && (extension != filename)) + { + if ( (!strcasecmp(extension, ".pnm")) || (!strcasecmp(extension, ".raw")) + || (!strcasecmp(extension, ".png")) || (!strcasecmp(extension, ".ps")) + || (!strcasecmp(extension, ".pdf")) || (!strcasecmp(extension, ".rgba")) + || (!strcasecmp(extension, ".tiff")) || (!strcasecmp(extension, ".tif")) + || (!strcasecmp(extension, ".text")) || (!strcasecmp(extension, ".txt")) + || (!strcasecmp(extension, ".jpg")) || (!strcasecmp(extension, ".jpeg")) + ) /* remove filetype extension */ + { + *extension = 0; /* remove extension */ + } + } + snprintf(buffer, sizeof(buffer), "%s%s", filename, new_filetype); + free(filename); + filename = strdup(buffer); + } + + if (fileselection_filetype) + { + free(fileselection_filetype); + fileselection_filetype = NULL; + } + + if (data) + { + fileselection_filetype = strdup(new_filetype); + } + + gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection), filename); + + free(filename); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, char **filetype, int *cms_function, + XsaneFileChooserAction action, int show_filetype_menu, int enable_filters, int activate_filter) { int cancel = 0, ok = 0, destroy = 0; GtkAccelGroup *accelerator_group; GtkWidget *xsane_filetype_option_menu; + int show_fileopts = 0; + int select_directory = 0; + + if (action == XSANE_FILE_CHOOSER_ACTION_SELECT_FOLDER) + { + select_directory = TRUE; + } + else + { + show_fileopts = TRUE; + } DBG(DBG_proc, "xsane_back_gtk_get_filename\n"); @@ -1277,11 +1755,6 @@ int xsane_back_gtk_get_filename(const char *label, const char *default_name, siz cwd[cwd_len] = '\0'; DBG(DBG_info, "xsane_back_gtk_get_filename: full path filename = %s\n", filename); - if (shorten_path && (strncmp(filename, cwd, cwd_len) == 0)) - { - memcpy(filename, filename + cwd_len, len - cwd_len + 1); - DBG(DBG_info, "xsane_back_gtk_get_filename: short path filename = %s\n", filename); - } } if (!destroy) @@ -1293,6 +1766,7 @@ int xsane_back_gtk_get_filename(const char *label, const char *default_name, siz return ok ? 0 : -1; } +#endif /* ----------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-back-gtk.h b/src/xsane-back-gtk.h index 584e6d5..a1a49bf 100644 --- a/src/xsane-back-gtk.h +++ b/src/xsane-back-gtk.h @@ -3,7 +3,7 @@ xsane-back-gtk.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -43,6 +43,30 @@ CornerCoordinates; /* ---------------------------------------------------------------------------------------------------------------------- */ +#define XSANE_FILE_FILTER_ALL 1 +#define XSANE_FILE_FILTER_IMAGES 2 +#define XSANE_FILE_FILTER_DRC 4 +#define XSANE_FILE_FILTER_BATCHLIST 8 +#define XSANE_FILE_FILTER_ICM 16 + +#define XSANE_GET_FILENAME_SHOW_NOTHING 0 +#define XSANE_GET_FILENAME_SHOW_FILETYPE 1 +#define XSANE_GET_FILENAME_SHOW_CMS_FUNCTION 2 + + +typedef enum + { + XSANE_FILE_CHOOSER_ACTION_OPEN = 1, + XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, + XSANE_FILE_CHOOSER_ACTION_SAVE, + XSANE_FILE_CHOOSER_ACTION_SELECT_SAVE, + XSANE_FILE_CHOOSER_ACTION_SELECT_FOLDER, + XSANE_FILE_CHOOSER_ACTION_SELECT_PROJECT + } +XsaneFileChooserAction; + +/* ---------------------------------------------------------------------------------------------------------------------- */ + extern int xsane_back_gtk_message_dialog_active; /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -63,8 +87,9 @@ extern void xsane_back_gtk_warning(gchar *warning_message, int wait); extern void xsane_back_gtk_info(gchar *info_message, int wait); extern void xsane_back_gtk_filetype_menu_set_history(GtkWidget *xsane_filetype_option_menu, char *filetype); extern GtkWidget *xsane_back_gtk_filetype_menu_new(char *filetype, GtkSignalFunc filetype_callback); -extern int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, char **filetype, - int show_fileopts, int shorten_path, int hide_file_list, int show_filetype_menu); +extern GtkWidget *xsane_back_gtk_cms_function_menu_new(int cms_select_function, GtkSignalFunc cms_function_menu_callback); +extern int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, char **filetype, int *cms_function, + XsaneFileChooserAction action, int show_filetype_menu, int enable_filters, int activate_filter); extern void xsane_back_gtk_update_vector(int opt_num, SANE_Int *vector); extern void xsane_back_gtk_refresh_dialog(void); diff --git a/src/xsane-batch-scan.c b/src/xsane-batch-scan.c index 604e052..ff07e0c 100644 --- a/src/xsane-batch-scan.c +++ b/src/xsane-batch-scan.c @@ -3,7 +3,7 @@ xsane-batch-scan.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -345,7 +345,7 @@ static void xsane_batch_scan_load_list(void) sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_LOAD_BATCH_LIST, xsane.device_text); xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", "batch-lists", 0, "default", ".xbl", XSANE_PATH_LOCAL_SANE); - if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, FALSE, FALSE, FALSE, FALSE)) + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_BATCHLIST, XSANE_FILE_FILTER_BATCHLIST)) { if (xsane_batch_scan_load_list_from_file(filename)) /* error while loading file ? */ { @@ -396,7 +396,7 @@ static void xsane_batch_scan_save_list(void) sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_SAVE_BATCH_LIST, xsane.device_text); xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", "batch-lists", 0, "default", ".xbl", XSANE_PATH_LOCAL_SANE); - if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, FALSE, FALSE, FALSE, FALSE)) + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SAVE, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_BATCHLIST, XSANE_FILE_FILTER_BATCHLIST)); { fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600); @@ -893,27 +893,29 @@ static void xsane_batch_scan_rename_callback(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 4); gtk_widget_show(text); + #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_rename_button_callback, (void *) 1); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_rename_button_callback, (void *) -1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_grab_default(button); gtk_widget_show(button); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_rename_button_callback, (void *) -1); + GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_rename_button_callback, (void *) 1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_grab_default(button); gtk_widget_show(button); + xsane_batch_scan_rename = 0; while (xsane_batch_scan_rename == 0) diff --git a/src/xsane-batch-scan.h b/src/xsane-batch-scan.h index 03b018d..82aad85 100644 --- a/src/xsane-batch-scan.h +++ b/src/xsane-batch-scan.h @@ -3,7 +3,7 @@ xsane-batch-scan.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-device-preferences.c b/src/xsane-device-preferences.c index 003cb77..41293e6 100644 --- a/src/xsane-device-preferences.c +++ b/src/xsane-device-preferences.c @@ -3,7 +3,7 @@ xsane-device-preferences.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -102,6 +102,10 @@ desc_xsane_device[] = {"xsane-enhancement-rgb-default", xsane_rc_pref_int, DPOFFSET(enhancement_rgb_default)}, {"xsane-negative", xsane_rc_pref_int, DPOFFSET(negative)}, {"xsane-show-preview", xsane_rc_pref_int, DPOFFSET(show_preview)}, + + {"xsane-enable-color-management", xsane_rc_pref_int, DPOFFSET(enable_color_management)}, + {"xsane-scanner-default-color-icm-profile", xsane_rc_pref_string, DPOFFSET(scanner_default_color_icm_profile)}, + {"xsane-scanner-default-gray-icm-profile", xsane_rc_pref_string, DPOFFSET(scanner_default_gray_icm_profile)}, }; /* ---------------------------------------------------------------------------------------------------------------- */ @@ -109,7 +113,7 @@ desc_xsane_device[] = static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device) { const SANE_Option_Descriptor *opt; - SANE_Word *word_array; + char *word_array; SANE_String name, str; u_long *caused_reload; SANE_Int num_options; @@ -193,12 +197,12 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device) } else /* array */ { - SANE_Int len; + SANE_Int len; - xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); + xsane_rc_io_w_array(w, &len, &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); status = xsane_control_option(device, i, SANE_ACTION_SET_VALUE, word_array, &info); w->direction = WIRE_FREE; - xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); + xsane_rc_io_w_array(w, &len, &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); w->direction = WIRE_DECODE; } break; @@ -239,7 +243,7 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device) { const SANE_Option_Descriptor *opt; size_t word_array_size = 0; - SANE_Word *word_array = 0; + char *word_array = 0; size_t str_size = 0; SANE_String str = 0; SANE_Word word; @@ -308,7 +312,7 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device) } xsane_rc_io_w_string(w, (SANE_String *) &opt->name); - xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); + xsane_rc_io_w_array(w, &len, &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word)); } break; @@ -580,6 +584,10 @@ void xsane_device_preferences_load_file(char *filename) gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height); #endif +#ifdef HAVE_LIBLCMS + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.enable_color_management_widget), xsane.enable_color_management); +#endif + xsane_update_param(0); xsane_refresh_dialog(); xsane_enhancement_by_gamma(); @@ -621,7 +629,7 @@ void xsane_device_preferences_load(void) sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_LOAD_SETTINGS, xsane.device_text); xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE); - if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, FALSE, FALSE, FALSE, FALSE)) + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_OPEN, FALSE, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_DRC, XSANE_FILE_FILTER_DRC)) { xsane_device_preferences_load_file(filename); } @@ -772,7 +780,7 @@ void xsane_device_preferences_save(void) sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_SAVE_SETTINGS, xsane.device_text); xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE); - if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, FALSE, FALSE, FALSE, FALSE)) + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SAVE, FALSE, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_DRC, XSANE_FILE_FILTER_DRC)) { xsane_device_preferences_save_file(filename); } diff --git a/src/xsane-device-preferences.h b/src/xsane-device-preferences.h index e980d47..ab705c0 100644 --- a/src/xsane-device-preferences.h +++ b/src/xsane-device-preferences.h @@ -3,7 +3,7 @@ xsane-device-preferences.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-email-project.c b/src/xsane-email-project.c index 79df15b..b36dd59 100644 --- a/src/xsane-email-project.c +++ b/src/xsane-email-project.c @@ -3,7 +3,7 @@ xsane-email-project.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -64,6 +64,7 @@ static gint xsane_email_dialog_delete(); static void xsane_email_filetype_callback(GtkWidget *filetype_option_menu, char *filetype); static void xsane_email_receiver_changed_callback(GtkWidget *widget, gpointer data); static void xsane_email_subject_changed_callback(GtkWidget *widget, gpointer data); +static void xsane_email_project_browse_filename_callback(GtkWidget *widget, gpointer data); static void xsane_email_project_changed_callback(GtkWidget *widget, gpointer data); static void xsane_email_html_mode_callback(GtkWidget *widget); static void xsane_email_project_display_status(void); @@ -150,10 +151,14 @@ void xsane_email_dialog() gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(email_scan_vbox), hbox, FALSE, FALSE, 1); +#if 0 pixmap = gdk_pixmap_create_from_xpm_d(xsane.dialog->window, &mask, xsane.bg_trans, (gchar **) email_xpm); pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); gdk_drawable_unref(pixmap); +#endif + button = xsane_button_new_with_pixmap(xsane.dialog->window, hbox, email_xpm, DESC_EMAIL_PROJECT_BROWSE, + (GtkSignalFunc) xsane_email_project_browse_filename_callback, NULL); text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_PROJECT); @@ -165,7 +170,7 @@ void xsane_email_dialog() xsane.project_entry = text; xsane.project_entry_box = hbox; - gtk_widget_show(pixmapwidget); +// gtk_widget_show(pixmapwidget); gtk_widget_show(text); gtk_widget_show(hbox); @@ -1073,6 +1078,64 @@ static void xsane_email_subject_changed_callback(GtkWidget *widget, gpointer dat /* ---------------------------------------------------------------------------------------------------------------------- */ +void xsane_email_project_set_filename(gchar *filename) +{ + g_signal_handlers_block_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_email_project_changed_callback, NULL); + gtk_entry_set_text(GTK_ENTRY(xsane.project_entry), (char *) filename); /* update filename in entry */ + gtk_entry_set_position(GTK_ENTRY(xsane.project_entry), strlen(filename)); /* set cursor to right position of filename */ + + g_signal_handlers_unblock_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_email_project_changed_callback, NULL); +} + +/* ----------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_browse_filename_callback(GtkWidget *widget, gpointer data) +{ + char filename[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_email_project_browse_filename_callback\n"); + + xsane_set_sensitivity(FALSE); + + if (preferences.email_project) /* make sure a correct filename is defined */ + { + strncpy(filename, preferences.email_project, sizeof(filename)); + filename[sizeof(filename) - 1] = '\0'; + } + else /* no filename given, take standard filename */ + { + strcpy(filename, OUT_FILENAME); + } + + snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_EMAIL_PROJECT_BROWSE, xsane.device_text); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_PROJECT, XSANE_GET_FILENAME_SHOW_NOTHING, 0, 0)) + { + + if (preferences.email_project) + { + free((void *) preferences.email_project); + } + + preferences.email_project = strdup(filename); + + xsane_set_sensitivity(TRUE); + xsane_email_project_set_filename(filename); + + xsane_email_project_load(); + } + else + { + xsane_set_sensitivity(TRUE); + } + umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ + +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_email_project_changed_callback(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_email_project_changed_callback\n"); @@ -1277,20 +1340,20 @@ static void xsane_email_entry_rename_callback(GtkWidget *widget, gpointer list) #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_rename_button_callback, (void *) 1); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_rename_button_callback,(void *) -1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_rename_button_callback,(void *) -1); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_rename_button_callback, (void *) 1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -1595,7 +1658,7 @@ static void xsane_create_email(int fd) /* doc files like ps and pdf can not be displayed inline in html email */ if (display_images_inline) { - snprintf(buf, sizeof(buf), "

    \n", content_id); + snprintf(buf, sizeof(buf), "

    \r\n", content_id); } write(fd, buf, strlen(buf)); } @@ -1605,7 +1668,7 @@ static void xsane_create_email(int fd) } else if (*email_text_pos == 10) /* new line */ { - snprintf(buf, sizeof(buf), "
    \n"); + snprintf(buf, sizeof(buf), "
    \r\n"); write(fd, buf, strlen(buf)); } else @@ -1624,12 +1687,12 @@ static void xsane_create_email(int fd) /* doc files like ps and pdf can not be displayed inline in html email */ if (display_images_inline) { - snprintf(buf, sizeof(buf), "

    \n", content_id); + snprintf(buf, sizeof(buf), "

    \r\n", content_id); } write(fd, buf, strlen(buf)); } - snprintf(buf, sizeof(buf), "\n"); + snprintf(buf, sizeof(buf), "\r\n"); write(fd, buf, strlen(buf)); @@ -1666,7 +1729,7 @@ static void xsane_create_email(int fd) write_email_mime_ascii(fd, boundary); write(fd, email_text, strlen(email_text)); - write(fd, "\n\n", 2); + write(fd, "\r\n\r\n", 4); for (i=0; inext; xsane.email_progress_size += xsane_get_filesize(email_filename); } diff --git a/src/xsane-email-project.h b/src/xsane-email-project.h index 2148ef2..8bc44b8 100644 --- a/src/xsane-email-project.h +++ b/src/xsane-email-project.h @@ -3,7 +3,7 @@ xsane-email-project.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-fax-project.c b/src/xsane-fax-project.c index 8f23bf2..4b7b770 100644 --- a/src/xsane-fax-project.c +++ b/src/xsane-fax-project.c @@ -3,7 +3,7 @@ xsane-fax-project.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -57,6 +57,7 @@ void xsane_fax_dialog(void); void xsane_fax_project_save(void); static gint xsane_fax_dialog_delete(); +static void xsane_fax_project_browse_filename_callback(GtkWidget *widget, gpointer data); static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data); static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data); static void xsane_fax_fine_mode_callback(GtkWidget *widget); @@ -86,8 +87,9 @@ void xsane_fax_dialog() GtkWidget *fax_dialog, *fax_scan_vbox, *fax_project_vbox, *hbox, *fax_project_exists_hbox, *button; GtkWidget *scrolled_window, *list; char buf[64]; - GtkWidget *pixmapwidget, *text; + GtkWidget *text; GtkWidget *pages_frame; + GtkWidget *pixmapwidget; GdkBitmap *mask; GdkPixmap *pixmap; @@ -119,10 +121,8 @@ void xsane_fax_dialog() gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 1); - pixmap = gdk_pixmap_create_from_xpm_d(xsane.dialog->window, &mask, xsane.bg_trans, (gchar **) fax_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); + button = xsane_button_new_with_pixmap(xsane.dialog->window, hbox, fax_xpm, DESC_FAX_PROJECT_BROWSE, + (GtkSignalFunc) xsane_fax_project_browse_filename_callback, NULL); text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPROJECT); @@ -134,7 +134,6 @@ void xsane_fax_dialog() xsane.project_entry = text; xsane.project_entry_box = hbox; - gtk_widget_show(pixmapwidget); gtk_widget_show(text); gtk_widget_show(hbox); @@ -582,6 +581,64 @@ static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); } +/* ----------------------------------------------------------------------------------------------------------------- */ + +void xsane_fax_project_set_filename(gchar *filename) +{ + g_signal_handlers_block_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_fax_project_changed_callback, NULL); + gtk_entry_set_text(GTK_ENTRY(xsane.project_entry), (char *) filename); /* update filename in entry */ + gtk_entry_set_position(GTK_ENTRY(xsane.project_entry), strlen(filename)); /* set cursor to right position of filename */ + + g_signal_handlers_unblock_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_fax_project_changed_callback, NULL); +} + +/* ----------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_browse_filename_callback(GtkWidget *widget, gpointer data) +{ + char filename[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_fax_project_browse_filename_callback\n"); + + xsane_set_sensitivity(FALSE); + + if (preferences.fax_project) /* make sure a correct filename is defined */ + { + strncpy(filename, preferences.fax_project, sizeof(filename)); + filename[sizeof(filename) - 1] = '\0'; + } + else /* no filename given, take standard filename */ + { + strcpy(filename, OUT_FILENAME); + } + + snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_FAX_PROJECT_BROWSE, xsane.device_text); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_PROJECT, FALSE, 0, 0)) + { + + if (preferences.fax_project) + { + free((void *) preferences.fax_project); + } + + preferences.fax_project = strdup(filename); + + xsane_set_sensitivity(TRUE); + xsane_fax_project_set_filename(filename); + + xsane_fax_project_load(); + } + else + { + xsane_set_sensitivity(TRUE); + } + umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ + +} + /* ---------------------------------------------------------------------------------------------------------------------- */ static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data) @@ -761,20 +818,21 @@ static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list) #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) 1); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); + #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) 1); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -833,7 +891,7 @@ static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list) umask((mode_t) preferences.directory_umask); /* define new file permissions */ - if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, TRUE, FALSE, FALSE, FALSE)) /* filename is selected */ + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_OPEN, FALSE, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_IMAGES, XSANE_FILE_FILTER_IMAGES)) /* filename is selected */ { FILE *sourcefile; @@ -1082,7 +1140,12 @@ static int xsane_fax_convert_pnm_to_ps(char *source_filename, char *fax_filename preferences.fax_width * 72.0/MM_PER_INCH, /* paper_width */ preferences.fax_height * 72.0/MM_PER_INCH, /* paper_height */ 0 /* portrait top left */, - preferences.fax_ps_flatdecoded, /* use ps level 3 zlib compression */ + preferences.fax_ps_flatedecoded, /* use ps level 3 zlib compression */ + NULL, /* hTransform */ + 0 /* do not apply ICM profile */, + 0, NULL, /* no CSA */ + 0, NULL, 0, /* no CRD */ + 0, /* intent */ xsane.project_progress_bar, &cancel_save); fclose(outfile); diff --git a/src/xsane-fax-project.h b/src/xsane-fax-project.h index 775aafc..cca541e 100644 --- a/src/xsane-fax-project.h +++ b/src/xsane-fax-project.h @@ -3,7 +3,7 @@ xsane-fax-project.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-fixedtext.h b/src/xsane-fixedtext.h index d655d34..d207450 100644 --- a/src/xsane-fixedtext.h +++ b/src/xsane-fixedtext.h @@ -3,7 +3,7 @@ xsane-fixedtext.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-front-gtk.c b/src/xsane-front-gtk.c index a11779e..3d98a5b 100644 --- a/src/xsane-front-gtk.c +++ b/src/xsane-front-gtk.c @@ -3,7 +3,7 @@ xsane-front-gtk.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -67,14 +67,14 @@ void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, void *option_menu_callback, SANE_Int settable, const gchar *widget_name); void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, char *str_list[], const char *val, - GtkObject **data, int option, + GtkWidget **data, int option, void *option_menu_callback, SANE_Int settable, const gchar *widget_name); void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, float min, float max, float quant, float page_step, - int digits, double *val, GtkObject **data, void *xsane_range_callback, SANE_Int settable); + int digits, double *val, GtkWidget **data, void *xsane_range_callback, SANE_Int settable); void xsane_range_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, float min, float max, float quant, float page_step, int digits, - double *val, GtkObject **data, int option, void *xsane_range_callback, SANE_Int settable); + double *val, GtkWidget **data, int option, void *xsane_range_callback, SANE_Int settable); static void xsane_outputfilename_changed_callback(GtkWidget *widget, gpointer data); void xsane_set_filename(gchar *filename); void xsane_separator_new(GtkWidget *xsane_parent, int dist); @@ -411,7 +411,7 @@ void xsane_define_maximum_output_size() if ( (opt) && (opt->unit== SANE_UNIT_MM) ) { - switch(preferences.xsane_mode) + switch(xsane.xsane_mode) { case XSANE_SAVE: @@ -661,6 +661,15 @@ gint xsane_authorization_callback(SANE_String_Const resource, hbox = gtk_hbox_new(TRUE, 10); /* x-space between buttons */ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 10); /* y-space around buttons */ +#ifdef HAVE_GTK2 + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); +#else + button = gtk_button_new_with_label(BUTTON_CANCEL); +#endif + g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around cancel-button */ + gtk_widget_show(button); + #ifdef HAVE_GTK2 button = gtk_button_new_from_stock(GTK_STOCK_OK); #else @@ -672,15 +681,6 @@ gint xsane_authorization_callback(SANE_String_Const resource, gtk_widget_grab_default(button); gtk_widget_show(button); -#ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); -#else - button = gtk_button_new_with_label(BUTTON_CANCEL); -#endif - g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around cancel-button */ - gtk_widget_show(button); - gtk_widget_show(hbox); gtk_widget_show(authorize_dialog); @@ -1032,7 +1032,7 @@ void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, char *str_list[], const char *val, - GtkObject **data, int option, + GtkWidget **data, int option, void *option_menu_callback, SANE_Int settable, const gchar *widget_name) { GtkWidget *hbox; @@ -1071,7 +1071,7 @@ static void xsane_range_display_value_right_callback(GtkAdjustment *adjust, gpoi void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, float min, float max, float quant, float page_step, - int digits, double *val, GtkObject **data, void *xsane_range_callback, SANE_Int settable) + int digits, double *val, GtkWidget **data, void *xsane_range_callback, SANE_Int settable) { GtkWidget *hbox; GtkWidget *label; @@ -1087,7 +1087,7 @@ void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, label = gtk_label_new(labeltext); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 1); - *data = gtk_adjustment_new(*val, min, max, quant, page_step, (max-min) * 1e-30); + *data = (GtkWidget *) gtk_adjustment_new(*val, min, max, quant, page_step, (max-min) * 1e-30); /* 1e-30 => hscrollbar has an unwanted side effect: the maximum is not the maximum */ /* of the given range, it is reduced by the page_size, so it has to be very small */ @@ -1159,7 +1159,7 @@ void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, void xsane_range_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, float min, float max, float quant, float page_step, - int digits, double *val, GtkObject **data, int option, void *xsane_range_callback, SANE_Int settable) + int digits, double *val, GtkWidget **data, int option, void *xsane_range_callback, SANE_Int settable) { GtkWidget *hbox; GtkWidget *slider = NULL; @@ -1180,7 +1180,7 @@ void xsane_range_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char * gtk_widget_show(pixmapwidget); gdk_drawable_unref(pixmap); - *data = gtk_adjustment_new(*val, min, max, quant, page_step, (max-min) * 1e-30); + *data = (GtkWidget *) gtk_adjustment_new(*val, min, max, quant, page_step, (max-min) * 1e-30); /* 1e-30 => hscrollbar has an unwanted side effect: the maximum is not the maximum */ /* of the given range, it is reduced by the page_size, so it has to be very small */ @@ -1251,7 +1251,7 @@ void xsane_range_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char * DialogElement *elem; elem=xsane.element + option; - elem->data = *data; + elem->data = (GtkObject *) *data; elem->widget = slider; } } @@ -1262,6 +1262,7 @@ static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data) { char filename[PATH_MAX]; char windowname[TEXTBUFSIZE]; + int show_extra_widgets; DBG(DBG_proc, "xsane_browse_filename_callback\n"); @@ -1277,10 +1278,17 @@ static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data) strcpy(filename, OUT_FILENAME); } + show_extra_widgets = XSANE_GET_FILENAME_SHOW_FILETYPE; + if (xsane.enable_color_management) + { + show_extra_widgets |= XSANE_GET_FILENAME_SHOW_CMS_FUNCTION; + } + + snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_OUTPUT_FILENAME, xsane.device_text); umask((mode_t) preferences.directory_umask); /* define new file permissions */ - xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, &preferences.filetype, TRUE, TRUE, FALSE, TRUE); + xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, &preferences.filetype, &preferences.cms_function, XSANE_FILE_CHOOSER_ACTION_SELECT_SAVE, show_extra_widgets, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_IMAGES, XSANE_FILE_FILTER_IMAGES); umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ if (preferences.filename) @@ -1294,6 +1302,10 @@ static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data) xsane_back_gtk_filetype_menu_set_history(xsane.filetype_option_menu, preferences.filetype); +#ifdef HAVE_LIBLCMS + gtk_option_menu_set_history(GTK_OPTION_MENU(xsane.cms_function_option_menu), preferences.cms_function); +#endif + /* correct length of filename counter if it is shorter than minimum length */ xsane_update_counter_in_filename(&preferences.filename, FALSE, 0, preferences.filename_counter_len); @@ -1629,17 +1641,17 @@ void xsane_update_param(void *arg) if (xsane.param.format == SANE_FRAME_GRAY) { - xsane.xsane_colors = 1; + xsane.xsane_channels = 1; } #ifdef SUPPORT_RGBA else if (xsane.param.format == SANE_FRAME_RGBA) { - xsane.xsane_colors = 4; + xsane.xsane_channels = 4; } #endif else /* RGB */ { - xsane.xsane_colors = 3; + xsane.xsane_channels = 3; } } else @@ -1785,6 +1797,7 @@ int xsane_identify_output_format(char *filename, char *filetype, char **ext) /* ---------------------------------------------------------------------------------------------------------------------- */ +#if 0 void xsane_change_working_directory(void) { char filename[PATH_MAX]; @@ -1797,7 +1810,7 @@ void xsane_change_working_directory(void) sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_CHANGE_WORKING_DIR, xsane.device_text); if (getcwd(filename, sizeof(filename))) { - xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, TRUE, FALSE, TRUE, FALSE); +// xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, TRUE, FALSE, TRUE, FALSE); if (chdir(filename)) { char buf[TEXTBUFSIZE]; @@ -1819,6 +1832,7 @@ void xsane_change_working_directory(void) xsane_set_sensitivity(TRUE); } +#endif /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -2019,11 +2033,6 @@ int xsane_display_eula(int ask_for_accept) if (ask_for_accept) /* show accept + not accept buttons */ { - button = gtk_button_new_with_label(BUTTON_ACCEPT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_eula_button_callback, (void *) 0 /* accept */); - gtk_container_add(GTK_CONTAINER(hbox), button); - gtk_widget_show(button); - button = gtk_button_new_with_label(BUTTON_NOT_ACCEPT); gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, DEF_GTK_ACCEL_LOCKED); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); @@ -2031,6 +2040,11 @@ int xsane_display_eula(int ask_for_accept) gtk_container_add(GTK_CONTAINER(hbox), button); gtk_widget_grab_default(button); gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_ACCEPT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_eula_button_callback, (void *) 0 /* accept */); + gtk_container_add(GTK_CONTAINER(hbox), button); + gtk_widget_show(button); } else /* show close button */ { @@ -2397,22 +2411,22 @@ int xsane_front_gtk_getname_dialog(const char *dialog_title, const char *desc_te gtk_window_add_accel_group(GTK_WINDOW(getname_dialog), accelerator_group); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_front_gtk_getname_button_callback, (void *) 1); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_front_gtk_getname_button_callback, (void *) -1); + gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, DEF_GTK_ACCEL_LOCKED); /* ESC */ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_front_gtk_getname_button_callback, (void *) -1); - gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, DEF_GTK_ACCEL_LOCKED); /* ESC */ + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_front_gtk_getname_button_callback, (void *) 1); + GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); diff --git a/src/xsane-front-gtk.h b/src/xsane-front-gtk.h index 1db2b7b..b7752bf 100644 --- a/src/xsane-front-gtk.h +++ b/src/xsane-front-gtk.h @@ -3,7 +3,7 @@ xsane-front-gtk.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -57,14 +57,14 @@ extern void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const cha void *option_menu_callback, SANE_Int settable, const gchar *widget_name); extern void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, char *str_list[], const char *val, - GtkObject **data, int option, + GtkWidget **data, int option, void *option_menu_callback, SANE_Int settable, const gchar *widget_name); extern void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, float min, float max, float quant, float page_step, - int digits, double *val, GtkObject **data, void *xsane_range_callback, SANE_Int settable); + int digits, double *val, GtkWidget **data, void *xsane_range_callback, SANE_Int settable); extern void xsane_range_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, float min, float max, float quant, float page_step, int digits, - double *val, GtkObject **data, int option, void *xsane_range_callback, SANE_Int settable); + double *val, GtkWidget **data, int option, void *xsane_range_callback, SANE_Int settable); extern void xsane_set_filename(gchar *filename); extern void xsane_outputfilename_new(GtkWidget *vbox); extern void xsane_separator_new(GtkWidget *xsane_parent, int dist); diff --git a/src/xsane-gamma.c b/src/xsane-gamma.c index 40fe835..8304f07 100644 --- a/src/xsane-gamma.c +++ b/src/xsane-gamma.c @@ -3,7 +3,7 @@ xsane-gamma.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -132,7 +132,7 @@ static void xsane_draw_histogram_with_points(XsanePixmap *hist, { inten = show_inten * count[i] * scale; - if (xsane.xsane_colors > 1) + if (xsane.xsane_channels > 1) { red = show_red * count_red[i] * scale; green = show_green * count_green[i] * scale; @@ -208,7 +208,7 @@ static void xsane_draw_histogram_with_lines(XsanePixmap *hist, { inten = show_inten * count[i] * scale; - if (xsane.xsane_colors > 1) + if (xsane.xsane_channels > 1) { red = show_red * count_red[i] * scale; green = show_green * count_green[i] * scale; @@ -518,7 +518,7 @@ void xsane_update_sliders() xsane_update_slider(&xsane.slider_gray); - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) && (!xsane.enable_color_management)) { xsane_update_slider(&xsane.slider_red); xsane_update_slider(&xsane.slider_green); @@ -539,7 +539,7 @@ void xsane_update_sliders() xsane.slider_green.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */ xsane.slider_blue.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */ - if (xsane.param.depth == 1) + if ((xsane.param.depth == 1) || (xsane.enable_color_management)) { xsane_draw_slider_level(&xsane.slider_gray); /* remove slider */ xsane.slider_gray.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */ @@ -1599,7 +1599,7 @@ void xsane_update_gamma_curve(int update_raw) xsane.brightness + xsane.brightness_blue, xsane.contrast + xsane.contrast_blue , xsane.preview_gamma_size, 255); #else - if ( ( ( (xsane.xsane_colors > 1) && xsane.scanner_gamma_color ) || /* color scan and gamma table for red, green and blue available */ + if ( ( ( (xsane.xsane_channels > 1) && xsane.scanner_gamma_color ) || /* color scan and gamma table for red, green and blue available */ xsane.scanner_gamma_gray ) && /* grayscale scan and gamma table for gray available */ (!xsane.no_preview_medium_gamma) ) /* do not use gamma table when disabled */ { @@ -1663,7 +1663,7 @@ void xsane_update_gamma_curve(int update_raw) xsane.preview_gamma_size); } } - else if (xsane.xsane_colors > 1) /* color scan, no color scanner gamma tables available */ + else if (xsane.xsane_channels > 1) /* color scan, no color scanner gamma tables available */ { DBG(DBG_info, "creating preview gamma tables with medium correction\n"); @@ -1826,13 +1826,18 @@ static void xsane_enhancement_update(void) return; } + if (xsane.enable_color_management) /* color management? no gamma */ + { + return; + } + xsane.block_enhancement_update = TRUE; gtk_adjustment_set_value(GTK_ADJUSTMENT(xsane.gamma_widget), xsane.gamma); gtk_adjustment_set_value(GTK_ADJUSTMENT(xsane.brightness_widget), xsane.brightness); gtk_adjustment_set_value(GTK_ADJUSTMENT(xsane.contrast_widget), xsane.contrast); - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) { gtk_adjustment_set_value(GTK_ADJUSTMENT(xsane.gamma_red_widget), xsane.gamma_red); gtk_adjustment_set_value(GTK_ADJUSTMENT(xsane.brightness_red_widget), xsane.brightness_red); @@ -2107,7 +2112,7 @@ void xsane_enhancement_by_histogram(int update_gamma) xsane.contrast = gray_contrast; } - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) /* rgb sliders active */ + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) /* rgb sliders active */ { if ((xsane.slider_gray.active == XSANE_SLIDER_ACTIVE) || (xsane.slider_gray.active == XSANE_SLIDER_INACTIVE)) /* gray slider not moved */ diff --git a/src/xsane-gamma.h b/src/xsane-gamma.h index e948a92..b40249f 100644 --- a/src/xsane-gamma.h +++ b/src/xsane-gamma.h @@ -3,7 +3,7 @@ xsane-gamma.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-gimp-1_0-compat.h b/src/xsane-gimp-1_0-compat.h index 1bdc758..141bd42 100644 --- a/src/xsane-gimp-1_0-compat.h +++ b/src/xsane-gimp-1_0-compat.h @@ -3,7 +3,7 @@ xsane-gimp-1_0-compat.h Oliver Rauch - Copyright (C) 2000-2005 Oliver Rauch + Copyright (C) 2000-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-gtk-1_x-compat.h b/src/xsane-gtk-1_x-compat.h index 1653c33..fea9c18 100644 --- a/src/xsane-gtk-1_x-compat.h +++ b/src/xsane-gtk-1_x-compat.h @@ -3,7 +3,7 @@ xsane-gtk-1_x-compat.h Oliver Rauch - Copyright (C) 2002-2005 Oliver Rauch + Copyright (C) 2002-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -64,5 +64,5 @@ gtk_window_set_policy(widget, FALSE, resizable, FALSE) # define gtk_image_new_from_pixmap(pixmap, mask) \ gtk_pixmap_new(pixmap, mask) - +# define gtk_progress_bar_set_ellipsize() /* empty */ #endif diff --git a/src/xsane-icons.c b/src/xsane-icons.c index f06e3cd..ba76144 100644 --- a/src/xsane-icons.c +++ b/src/xsane-icons.c @@ -3,7 +3,7 @@ xsane-icons.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -2910,6 +2910,42 @@ const char *resolution_y_xpm[] = /* --------------------------------------------------- */ +const char *cms_xpm[] = +{ +/* width height num_colors chars_per_pixel */ +" 20 20 6 1", +/* colors */ +". c #000000", +" none", +"w c #ffffff", +"r c #ff0000", +"g c #00ff00", +"b c #0000ff", +/* pixels */ +" ", +" ", +" ", +" ", +" ", +" ", +" rrrr g g bbbb ", +"rrrrrr gg gg bbbbbb", +"rr r gggggg bb b", +"rr gggggg bb ", +"rr gg gg bbbbb ", +"rr gg gg bbbb ", +"rr gg gg bb", +"rr r gg gg b bb", +"rrrrrr gg gg bbbbbb", +" rrrr gg gg bbbb ", +" ", +" ", +" ", +" ", +}; + +/* --------------------------------------------------- */ + const char *scanner_xpm[] = { /* width height num_colors chars_per_pixel */ diff --git a/src/xsane-icons.h b/src/xsane-icons.h index 1e4e1a1..6f38cfb 100644 --- a/src/xsane-icons.h +++ b/src/xsane-icons.h @@ -3,7 +3,7 @@ xsane-icons.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -119,6 +119,7 @@ extern const char *zoom_y_xpm[]; extern const char *resolution_xpm[]; extern const char *resolution_x_xpm[]; extern const char *resolution_y_xpm[]; +extern const char *cms_xpm[]; extern const char *scanner_xpm[]; extern const char *intensity_xpm[]; extern const char *red_xpm[]; diff --git a/src/xsane-multipage-project.c b/src/xsane-multipage-project.c index 20a1cc3..3721faa 100644 --- a/src/xsane-multipage-project.c +++ b/src/xsane-multipage-project.c @@ -3,7 +3,7 @@ xsane-multipage-project.c Oliver Rauch - Copyright (C) 2005 Oliver Rauch + Copyright (C) 2005-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -55,6 +55,7 @@ void xsane_multipage_dialog_close(void); void xsane_multipage_project_save(void); static gint xsane_multipage_dialog_delete(); static void xsane_multipage_filetype_callback(GtkWidget *filetype_option_menu, char *filetype); +static void xsane_multipage_project_browse_filename_callback(GtkWidget *widget, gpointer data); static void xsane_multipage_project_changed_callback(GtkWidget *widget, gpointer data); static void xsane_multipage_project_load(void); static void xsane_multipage_project_delete(void); @@ -94,13 +95,11 @@ void xsane_multipage_dialog() GtkWidget *multipage_project_exists_hbox, *button; GtkWidget *hbox; GtkWidget *scrolled_window, *list; - GtkWidget *pixmapwidget, *text; + GtkWidget *text; GtkWidget *pages_frame; GtkWidget *label; GtkWidget *filetype_menu, *filetype_item; GtkWidget *filetype_option_menu; - GdkPixmap *pixmap; - GdkBitmap *mask; char buf[64]; int filetype_nr; int select_item; @@ -133,10 +132,8 @@ void xsane_multipage_dialog() gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); gtk_box_pack_start(GTK_BOX(multipage_scan_vbox), hbox, FALSE, FALSE, 1); - pixmap = gdk_pixmap_create_from_xpm_d(xsane.dialog->window, &mask, xsane.bg_trans, (gchar **) multipage_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); + button = xsane_button_new_with_pixmap(xsane.dialog->window, hbox, multipage_xpm, DESC_MULTIPAGE_PROJECT_BROWSE, + (GtkSignalFunc) xsane_multipage_project_browse_filename_callback, NULL); text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MULTIPAGE_PROJECT); @@ -148,7 +145,6 @@ void xsane_multipage_dialog() xsane.project_entry = text; xsane.project_entry_box = hbox; - gtk_widget_show(pixmapwidget); gtk_widget_show(text); gtk_widget_show(hbox); @@ -577,6 +573,65 @@ static void xsane_multipage_project_create() } } +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_multipage_project_set_filename(gchar *filename) +{ + g_signal_handlers_block_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_multipage_project_changed_callback, NULL); + gtk_entry_set_text(GTK_ENTRY(xsane.project_entry), (char *) filename); /* update filename in entry */ + gtk_entry_set_position(GTK_ENTRY(xsane.project_entry), strlen(filename)); /* set cursor to right position of filename */ + + g_signal_handlers_unblock_by_func(GTK_OBJECT(xsane.project_entry), (GtkSignalFunc) xsane_multipage_project_changed_callback, NULL); +} + +/* ----------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_browse_filename_callback(GtkWidget *widget, gpointer data) +{ + char filename[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_multipage_project_browse_filename_callback\n"); + + xsane_set_sensitivity(FALSE); + + if (preferences.multipage_project) /* make sure a correct filename is defined */ + { + strncpy(filename, preferences.multipage_project, sizeof(filename)); + filename[sizeof(filename) - 1] = '\0'; + } + else /* no filename given, take standard filename */ + { + strcpy(filename, OUT_FILENAME); + } + + snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_MULTIPAGE_PROJECT_BROWSE, xsane.device_text); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_PROJECT, XSANE_GET_FILENAME_SHOW_NOTHING, 0, 0)) + { + + if (preferences.multipage_project) + { + free((void *) preferences.multipage_project); + } + + preferences.multipage_project = strdup(filename); + + xsane_set_sensitivity(TRUE); + xsane_multipage_project_set_filename(filename); + + xsane_multipage_project_load(); + } + else + { + xsane_set_sensitivity(TRUE); + } + umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ + +} + + /* ---------------------------------------------------------------------------------------------------------------------- */ static void xsane_multipage_project_changed_callback(GtkWidget *widget, gpointer data) @@ -913,11 +968,11 @@ static void xsane_multipage_save_file() if (output_format == XSANE_PS) { - xsane_save_ps_create_document_header(outfile, pages, preferences.save_ps_flatdecoded); + xsane_save_ps_create_document_header(outfile, pages, preferences.save_ps_flatedecoded); } else if (output_format == XSANE_PDF) { - xsane_save_pdf_create_document_header(outfile, &xref, pages, preferences.save_pdf_flatdecoded); + xsane_save_pdf_create_document_header(outfile, &xref, pages, preferences.save_pdf_flatedecoded); } } #ifdef HAVE_LIBTIFF @@ -1032,7 +1087,8 @@ static void xsane_multipage_save_file() xsane_save_ps_page(outfile, page, imagefile, &image_info, imagewidth, imageheight, 0, 0, imagewidth, imageheight, 0 /* portrait top left */, - preferences.save_ps_flatdecoded, + preferences.save_ps_flatedecoded, + NULL /* hTransform */, 0 /* embed_scanner_icm_profile */, xsane.project_progress_bar, &cancel_save); } else if (output_format == XSANE_PDF) @@ -1043,14 +1099,31 @@ static void xsane_multipage_save_file() xsane_save_pdf_page(outfile, &xref, page, imagefile, &image_info, imagewidth, imageheight, 0, 0, imagewidth, imageheight, 0 /* portrait top left */, - preferences.save_pdf_flatdecoded, + preferences.save_pdf_flatedecoded, + NULL /* hTransform */, 0 /* embed_scanner_icm_profile */, 0 /* icc_object */, xsane.project_progress_bar, &cancel_save); } #ifdef HAVE_LIBTIFF else if (output_format == XSANE_TIFF) { - xsane_save_tiff_page(tiffile, page, pages, imagefile, &image_info, preferences.jpeg_quality, + cmsHTRANSFORM hTransform = NULL; + +#ifdef HAVE_LIBLCMS + if ( (preferences.cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && xsane.enable_color_management ) + { + hTransform = xsane_create_cms_transform(&image_info, preferences.cms_function, preferences.cms_intent, preferences.cms_bpc); + } +#endif + + xsane_save_tiff_page(tiffile, page, pages, preferences.jpeg_quality, imagefile, &image_info, + hTransform, xsane.enable_color_management, preferences.cms_function, xsane.project_progress_bar, &cancel_save); +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + cmsDeleteTransform(hTransform); + } +#endif } #endif diff --git a/src/xsane-multipage-project.h b/src/xsane-multipage-project.h index 5f945eb..090ebc3 100644 --- a/src/xsane-multipage-project.h +++ b/src/xsane-multipage-project.h @@ -3,7 +3,7 @@ xsane-multipage-project.h Oliver Rauch - Copyright (C) 2005 Oliver Rauch + Copyright (C) 2005-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-preferences.c b/src/xsane-preferences.c index 011e802..2705477 100644 --- a/src/xsane-preferences.c +++ b/src/xsane-preferences.c @@ -3,7 +3,7 @@ xsane-preferences.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -55,6 +55,9 @@ Preferences preferences = 0, /* default working_directory */ 0, /* no default filename */ 0, /* no default filetype */ + 0, /* default cms_function: embed scanner profile */ + 0, /* default cms_intent: perceptual */ + 0, /* default cms_bpc (black point compensation) off */ 0137, /* image umask (permission mask for -rw-r------) */ 0027, /* directory umask (permission mask for -rwxr-x----) */ 0, /* no fax project */ @@ -69,7 +72,7 @@ Preferences preferences = 0.0, /* fax_leftoffset */ 0.0, /* fax_bottomoffset */ 1, /* fax_fine_mode */ - 1, /* fax_ps_flatdecoded */ + 1, /* fax_ps_flatedecoded */ #ifdef XSANE_ACTIVATE_EMAIL 0, /* no default from email address */ 0, /* no default reply to email address */ @@ -101,8 +104,8 @@ Preferences preferences = 1, /* save_devprefs_at_exit */ 1, /* overwrite_warning */ 1, /* skip_existing_numbers */ - 1, /* save_ps_flatdecoded */ - 1, /* save_pdf_flatdecoded */ + 1, /* save_ps_flatedecoded */ + 1, /* save_pdf_flatedecoded */ 0, /* save_pnm16_as_ascii */ 0, /* reduce_16bit_to_8bit */ 1, /* filename_counter_step */ @@ -168,6 +171,9 @@ desc[] = {"working-directory", xsane_rc_pref_string, POFFSET(working_directory)}, {"filename", xsane_rc_pref_string, POFFSET(filename)}, {"filetype", xsane_rc_pref_string, POFFSET(filetype)}, + {"cms-function", xsane_rc_pref_int, POFFSET(cms_function)}, + {"cms-intent", xsane_rc_pref_int, POFFSET(cms_intent)}, + {"cms-bpc", xsane_rc_pref_int, POFFSET(cms_bpc)}, {"image-umask", xsane_rc_pref_int, POFFSET(image_umask)}, {"directory-umask", xsane_rc_pref_int, POFFSET(directory_umask)}, {"fax-project", xsane_rc_pref_string, POFFSET(fax_project)}, @@ -182,7 +188,7 @@ desc[] = {"fax-left-offset", xsane_rc_pref_double, POFFSET(fax_leftoffset)}, {"fax-bottom-offset", xsane_rc_pref_double, POFFSET(fax_bottomoffset)}, {"fax-fine-mode", xsane_rc_pref_int, POFFSET(fax_fine_mode)}, - {"fax-ps-flatdecoded", xsane_rc_pref_int, POFFSET(fax_ps_flatdecoded)}, + {"fax-ps-flatedecoded", xsane_rc_pref_int, POFFSET(fax_ps_flatedecoded)}, #ifdef XSANE_ACTIVATE_EMAIL {"e-mail-from", xsane_rc_pref_string, POFFSET(email_from)}, {"e-mail-reply-to", xsane_rc_pref_string, POFFSET(email_reply_to)}, @@ -214,8 +220,8 @@ desc[] = {"save-devprefs-at-exit", xsane_rc_pref_int, POFFSET(save_devprefs_at_exit)}, {"overwrite-warning", xsane_rc_pref_int, POFFSET(overwrite_warning)}, {"skip-existing-numbers", xsane_rc_pref_int, POFFSET(skip_existing_numbers)}, - {"save-ps-flatdecoded", xsane_rc_pref_int, POFFSET(save_ps_flatdecoded)}, - {"save-pdf-flatdecoded", xsane_rc_pref_int, POFFSET(save_pdf_flatdecoded)}, + {"save-ps-flatedecoded", xsane_rc_pref_int, POFFSET(save_ps_flatedecoded)}, + {"save-pdf-flatedecoded", xsane_rc_pref_int, POFFSET(save_pdf_flatedecoded)}, {"save-pnm16-as-ascii", xsane_rc_pref_int, POFFSET( save_pnm16_as_ascii)}, {"reduce-16bit-to8bit", xsane_rc_pref_int, POFFSET(reduce_16bit_to_8bit)}, {"filename-counter-step", xsane_rc_pref_int, POFFSET(filename_counter_step)}, @@ -231,6 +237,9 @@ desc[] = {"show-resolution-list", xsane_rc_pref_int, POFFSET(show_resolution_list)}, {"length-unit", xsane_rc_pref_double, POFFSET(length_unit)}, {"main-window-fixed", xsane_rc_pref_int, POFFSET(main_window_fixed)}, + {"display-icm-profile", xsane_rc_pref_string, POFFSET(display_icm_profile)}, + {"custom-proofing-icm-profile", xsane_rc_pref_string, POFFSET(custom_proofing_icm_profile)}, + {"working-color-space-icm-profile", xsane_rc_pref_string, POFFSET(working_color_space_icm_profile)}, {"preview-own-cmap", xsane_rc_pref_int, POFFSET(preview_own_cmap)}, {"preview-oversampling", xsane_rc_pref_double, POFFSET(preview_oversampling)}, {"preview-gamma", xsane_rc_pref_double, POFFSET(preview_gamma)}, @@ -289,7 +298,11 @@ desc_printer[] = {"printer-gamma-red", xsane_rc_pref_double, PRTOFFSET(gamma_red)}, {"printer-gamma-green", xsane_rc_pref_double, PRTOFFSET(gamma_green)}, {"printer-gamma-blue", xsane_rc_pref_double, PRTOFFSET(gamma_blue)}, - {"printer-ps-flatdecoded", xsane_rc_pref_int, PRTOFFSET(ps_flatdecoded)} + {"printer-icm-profile", xsane_rc_pref_string, PRTOFFSET(icm_profile)}, + {"printer-ps-flatedecoded", xsane_rc_pref_int, PRTOFFSET(ps_flatedecoded)}, + {"printer-embed-csa", xsane_rc_pref_int, PRTOFFSET(embed_csa)}, + {"printer-embed-crd", xsane_rc_pref_int, PRTOFFSET(embed_crd)}, + {"printer-bpc", xsane_rc_pref_int, PRTOFFSET(blackpointcompensation)} }; /* --------------------------------------------------------------------- */ diff --git a/src/xsane-preferences.h b/src/xsane-preferences.h index 9f0e442..916df37 100644 --- a/src/xsane-preferences.h +++ b/src/xsane-preferences.h @@ -3,7 +3,7 @@ xsane-preferences.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -48,7 +48,11 @@ typedef struct double gamma_red; /* printer gamma red */ double gamma_green; /* printer gamma green */ double gamma_blue; /* printer gamma blue */ - int ps_flatdecoded; /* flatdecode (zlib compression), ps level 3 */ + char *icm_profile; /* printer ICM profile */ + int ps_flatedecoded; /* flatedecode (zlib compression), ps level 3 */ + int embed_csa; /* CSA = scanner ICM profile for postscript files */ + int embed_crd; /* CRD = printer ICM profile for postscript files */ + int blackpointcompensation; /* bpc */ } Preferences_printer_t; @@ -93,6 +97,9 @@ typedef struct char *working_directory; /* directory where xsane saves images etc */ char *filename; /* default filename */ char *filetype; /* default filetype */ + int cms_function; /* cms function (embed/srgb/working cs) */ + int cms_intent; /* cms rendering intent */ + int cms_bpc; /* cms black point compensation */ int image_umask; /* image umask (permisson mask) */ int directory_umask; /* directory umask (permisson mask) */ @@ -108,7 +115,7 @@ typedef struct double fax_leftoffset; /* left offset of fax paper in mm */ double fax_bottomoffset; /* bottom offset of fax paper in mm */ int fax_fine_mode; /* use fine or normal mode */ - int fax_ps_flatdecoded; /* use postscript level 3 zlib compression */ + int fax_ps_flatedecoded; /* use postscript level 3 zlib compression */ #ifdef XSANE_ACTIVATE_EMAIL char *email_from; /* email address of sender */ @@ -144,8 +151,8 @@ typedef struct int save_devprefs_at_exit; /* save device preferences at exit */ int overwrite_warning; /* warn if file exists */ int skip_existing_numbers; /* skip used filenames when automatically increase counter */ - int save_ps_flatdecoded; /* use zlib to for postscript compression (flatdecode) */ - int save_pdf_flatdecoded; /* use zlib to for pdf compression (flatdecode) */ + int save_ps_flatedecoded; /* use zlib to for postscript compression (flatedecode) */ + int save_pdf_flatedecoded; /* use zlib to for pdf compression (flatedecode) */ int save_pnm16_as_ascii; /* selection if pnm 16 bit is saved as ascii or binary file */ int reduce_16bit_to_8bit; /* reduce images with 16 bits/color to 8 bits/color */ int filename_counter_step; /* filename_counter += filename_counter_step; */ @@ -192,6 +199,10 @@ typedef struct int gtk_update_policy; int medium_nr; + char *display_icm_profile; + char *custom_proofing_icm_profile; + char *working_color_space_icm_profile; + int paper_orientation; /* image position on printer and page orientation */ int printernr; /* number of printers */ int printerdefinitions; diff --git a/src/xsane-preview.c b/src/xsane-preview.c index 46d8611..45679f1 100644 --- a/src/xsane-preview.c +++ b/src/xsane-preview.c @@ -3,7 +3,7 @@ xsane-preview.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -196,7 +196,9 @@ static void preview_establish_ratio(Preview *p); static void preview_ratio_callback(GtkWidget *widget, gpointer data); static void preview_autoselect_scanarea_callback(GtkWidget *window, gpointer data); +void preview_display_with_correction(Preview *p); void preview_do_gamma_correction(Preview *p); +int preview_do_color_correction(Preview *p); void preview_calculate_raw_histogram(Preview *p, SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue); void preview_calculate_enh_histogram(Preview *p, SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue); void preview_gamma_correction(Preview *p, int gamma_input_bits, @@ -1276,7 +1278,7 @@ static void preview_display_image(Preview *p) assert(p->image_data_enh); } - preview_do_gamma_correction(p); + preview_display_with_correction(p); } /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -1452,8 +1454,9 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio { SANE_Status status; Preview *p = data; - u_char buf[8192]; - guint16 *buf16 = (guint16 *) buf; + char buf[TEXTBUFSIZE]; + u_char imagebuf8[8192]; + guint16 *imagebuf16 = (guint16 *) imagebuf8; SANE_Handle dev; SANE_Int len; int i, j; @@ -1465,26 +1468,26 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio { if ((p->params.depth == 1) || (p->params.depth == 8)) { - status = sane_read(dev, buf, sizeof(buf), &len); + status = sane_read(dev, imagebuf8, sizeof(imagebuf8), &len); } else if (p->params.depth == 16) { if (p->read_offset_16) { - buf[0] = p->last_offset_16_byte; - /* use buf and sizeof(buf) here because sizeof(buf16) returns the size of a pointer */ - status = sane_read(dev, buf+1, sizeof(buf) - 1, &len); + imagebuf8[0] = p->last_offset_16_byte; + /* use imagebuf8 and sizeof(imagebuf8) here because sizeof(imagebuf16) returns the size of a pointer */ + status = sane_read(dev, imagebuf8+1, sizeof(imagebuf8) - 1, &len); len++; } else { - status = sane_read(dev, (SANE_Byte *) buf16, sizeof(buf), &len); + status = sane_read(dev, (SANE_Byte *) imagebuf16, sizeof(imagebuf8), &len); } if (len % 2) /* odd number of bytes */ { len--; - p->last_offset_16_byte = buf16[len]; + p->last_offset_16_byte = imagebuf16[len]; p->read_offset_16 = 1; } else /* even number of bytes */ @@ -1576,8 +1579,8 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio return; /* backend sends too much image data */ } - p->image_data_raw[p->image_offset] = buf[i] * 256; - p->image_data_enh[p->image_offset++] = buf[i]; + p->image_data_raw[p->image_offset] = imagebuf8[i] * 256; + p->image_data_enh[p->image_offset++] = imagebuf8[i]; if (p->image_offset%3 == 0) { @@ -1599,8 +1602,8 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio return; /* backend sends too much image data */ } - p->image_data_raw[p->image_offset] = buf16[i]; - p->image_data_enh[p->image_offset++] = (u_char) (buf16[i]/256); + p->image_data_raw[p->image_offset] = imagebuf16[i]; + p->image_data_enh[p->image_offset++] = (u_char) (imagebuf16[i]/256); if (p->image_offset%3 == 0) { @@ -1627,7 +1630,7 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio case 1: for (i = 0; i < len; ++i) { - u_char mask = buf[i]; + u_char mask = imagebuf8[i]; if (preview_test_image_y(p)) { @@ -1662,7 +1665,7 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio case 8: for (i = 0; i < len; ++i) { - u_char gray = buf[i]; + u_char gray = imagebuf8[i]; if (preview_test_image_y(p)) { @@ -1687,20 +1690,20 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio case 16: for (i = 0; i < len/2; ++i) { - u_char gray = buf16[i]/256; + u_char gray = imagebuf16[i]/256; if (preview_test_image_y(p)) { return; /* backend sends too much image data */ } - p->image_data_raw[p->image_offset] = buf16[i]; + p->image_data_raw[p->image_offset] = imagebuf16[i]; p->image_data_enh[p->image_offset++] = gray; - p->image_data_raw[p->image_offset] = buf16[i]; + p->image_data_raw[p->image_offset] = imagebuf16[i]; p->image_data_enh[p->image_offset++] = gray; - p->image_data_raw[p->image_offset] = buf16[i]; + p->image_data_raw[p->image_offset] = imagebuf16[i]; p->image_data_enh[p->image_offset++] = gray; if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0) @@ -1726,7 +1729,7 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio case 1: for (i = 0; i < len; ++i) { - u_char mask = buf[i]; + u_char mask = imagebuf8[i]; if (preview_test_image_y(p)) { @@ -1758,8 +1761,8 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio return; /* backend sends too much image data */ } - p->image_data_raw[p->image_offset] = buf[i] * 256; - p->image_data_enh[p->image_offset] = buf[i]; + p->image_data_raw[p->image_offset] = imagebuf8[i] * 256; + p->image_data_enh[p->image_offset] = imagebuf8[i]; p->image_offset += 3; if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0) @@ -1777,8 +1780,8 @@ static void preview_read_image_data(gpointer data, gint source, GdkInputConditio return; /* backend sends too much image data */ } - p->image_data_raw[p->image_offset] = buf16[i]; - p->image_data_enh[p->image_offset] = (u_char) (buf16[i]/256); + p->image_data_raw[p->image_offset] = imagebuf16[i]; + p->image_data_enh[p->image_offset] = (u_char) (imagebuf16[i]/256); p->image_offset += 3; if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0) @@ -1880,7 +1883,7 @@ static void preview_scan_done(Preview *p, int save_image) xsane_update_histogram(TRUE /* update_raw */); /* update histogram (necessary because overwritten by preview_update_surface) */ } - if ((preferences.auto_correct_colors) && (!xsane.medium_calibration)) + if ((preferences.auto_correct_colors) && (!xsane.medium_calibration) && (!xsane.enable_color_management)) { xsane_calculate_raw_histogram(); xsane_set_auto_enhancement(); @@ -2418,6 +2421,7 @@ void preview_create_batch_icon(Preview *p, Batch_Scan_Parameters *parameters) if (in) { quality = preview_create_batch_icon_from_file(xsane.preview, in, parameters, quality, &time); + fclose(in); } } } @@ -2426,19 +2430,14 @@ void preview_create_batch_icon(Preview *p, Batch_Scan_Parameters *parameters) { char filename[PATH_MAX]; - if (in) - { - fclose(in); - } - xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-startimage", 0, ".pnm", XSANE_PATH_SYSTEM); in = fopen(filename, "rb"); /* read binary (b for win32) */ if (in) { preview_create_batch_icon_from_file(xsane.preview, in, parameters, -1, &time); + fclose(in); } } - fclose(in); } /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -2767,7 +2766,7 @@ static void preview_display_zoom(Preview *p, int x, int y, int zoom) int r, g, b; int px, py; int i; - char *row; + u_char *row; DBG(DBG_proc, "preview_display_zoom"); @@ -4241,7 +4240,7 @@ Preview *preview_new(void) p->maximum_output_height = INF; /* full output height */ p->block_update_maximum_output_size_clipping = FALSE; - p->preview_colors = -1; + p->preview_channels = -1; p->invalid = TRUE; /* no valid preview */ p->ratio = 0.0; @@ -4563,7 +4562,6 @@ Preview *preview_new(void) gtk_widget_show(p->invalid_pixmap); gdk_drawable_unref(pixmap); - /* Start button */ p->start = gtk_button_new_with_label(BUTTON_PREVIEW_ACQUIRE); xsane_back_gtk_set_tooltip(xsane.tooltips, p->start, DESC_PREVIEW_ACQUIRE); @@ -4853,7 +4851,7 @@ void preview_update_surface(Preview *p, int surface_changed) DBG(DBG_info, "preview_update_surface: establish new surface\n"); preview_area_correct(p); /* calculate preview_width and height */ preview_area_resize(p); /* correct rulers */ - preview_do_gamma_correction(p); /* draw preview */ + preview_display_with_correction(p); /* draw preview */ xsane_update_histogram(TRUE /* update raw */); p->previous_selection.active = FALSE; @@ -5013,7 +5011,7 @@ void preview_scan(Preview *p) gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int)); - if ((xsane.xsane_colors > 1) || (xsane.no_preview_medium_gamma)) /* color scan or medium preview gamma disabled */ + if ((xsane.xsane_channels > 1) || (xsane.no_preview_medium_gamma)) /* color scan or medium preview gamma disabled */ { xsane_create_gamma_curve(gamma_data, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_gray_size, gamma_gray_max); } @@ -5089,7 +5087,7 @@ void preview_scan(Preview *p) xsane.block_update_param = FALSE; - p->preview_colors = xsane.xsane_colors; + p->preview_channels = xsane.xsane_channels; p->scan_incomplete = FALSE; p->invalid = TRUE; /* no valid preview */ p->scanning = TRUE; @@ -6204,6 +6202,29 @@ static void preview_autoselect_scanarea_callback(GtkWidget *window, gpointer dat /* ---------------------------------------------------------------------------------------------------------------------- */ +void preview_display_with_correction(Preview *p) +{ +#ifdef HAVE_LIBLCMS + if (xsane.enable_color_management) + { + preview_do_color_correction(p); + gtk_widget_set_sensitive(p->pipette_white, FALSE); /* disable pipette buttons */ + gtk_widget_set_sensitive(p->pipette_gray, FALSE); /* disable pipette buttons */ + gtk_widget_set_sensitive(p->pipette_black, FALSE); /* disable pipette buttons */ + + } + else +#endif + { + preview_do_gamma_correction(p); + gtk_widget_set_sensitive(p->pipette_white, TRUE); /* enable pipette buttons */ + gtk_widget_set_sensitive(p->pipette_gray, TRUE); /* enable pipette buttons */ + gtk_widget_set_sensitive(p->pipette_black, TRUE); /* enable pipette buttons */ + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + void preview_do_gamma_correction(Preview *p) { int x,y; @@ -6212,7 +6233,7 @@ void preview_do_gamma_correction(Preview *p) guint16 *image_data_rawp = NULL; int rotate = 16 - preview_gamma_input_bits; - DBG(DBG_proc, "preview_do_gamma_correction\n"); + DBG(DBG_proc, "preview_display_with_correction\n"); if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red)) { @@ -6239,7 +6260,7 @@ void preview_do_gamma_correction(Preview *p) { while (gtk_events_pending()) { - DBG(DBG_info, "preview_do_gamma_correction: calling gtk_main_iteration\n"); + DBG(DBG_info, "preview_display_with_correction: calling gtk_main_iteration\n"); gtk_main_iteration(); } } @@ -6288,6 +6309,167 @@ void preview_do_gamma_correction(Preview *p) /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +int preview_do_color_correction(Preview *p) +{ + int y; + u_char *image_data_enhp = NULL; + guint16 *image_data_rawp = NULL; + cmsHPROFILE hInProfile = NULL; + cmsHPROFILE hOutProfile = NULL; + cmsHPROFILE hProofProfile = NULL; + cmsHTRANSFORM hTransform = NULL; + DWORD input_format, output_format; + DWORD cms_flags = 0; + int proof = 0; + char *cms_proof_icm_profile = NULL; + int linesize = 0; + + + DBG(DBG_proc, "preview_do_color_correction\n"); + + cmsErrorAction(LCMS_ERROR_SHOW); + + if (preferences.cms_bpc) + { + cms_flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; + } + + switch (p->cms_proofing) + { + default: + case 0: /* display */ + proof = 0; + break; + + case 1: /* proof printer */ + cms_proof_icm_profile = preferences.printer[preferences.printernr]->icm_profile; + proof = 1; + break; + + case 2: /* proof custom proofing */ + cms_proof_icm_profile = preferences.custom_proofing_icm_profile; + proof = 1; + break; + } + + if ( (xsane.param.format == SANE_FRAME_RGB) || /* color preview */ + (xsane.param.format == SANE_FRAME_RED) || + (xsane.param.format == SANE_FRAME_GREEN) || + (xsane.param.format == SANE_FRAME_BLUE) ) + { + input_format = TYPE_RGB_16; + output_format = TYPE_RGB_8; + linesize = p->image_width * 3; + } + else + { + input_format = TYPE_GRAY_16; + output_format = TYPE_GRAY_8; + linesize = p->image_width; + } + + hInProfile = cmsOpenProfileFromFile(xsane.scanner_default_color_icm_profile, "r"); + if (!hInProfile) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_SCANNER_ICM, xsane.scanner_default_color_icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + hOutProfile = cmsOpenProfileFromFile(preferences.display_icm_profile, "r"); + if (!hOutProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_DISPLAY_ICM, preferences.display_icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + if (proof == 0) + { + hTransform = cmsCreateTransform(hInProfile, input_format, + hOutProfile, output_format, + preferences.cms_intent, cms_flags); + } + else /* proof */ + { + cms_flags |= cmsFLAGS_SOFTPROOFING; + + if (p->cms_gamut_check) + { + cms_flags |= cmsFLAGS_GAMUTCHECK; + } + + hProofProfile = cmsOpenProfileFromFile(cms_proof_icm_profile, "r"); + if (!hProofProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + cmsCloseProfile(hOutProfile); + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_PROOF_ICM, cms_proof_icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + hTransform = cmsCreateProofingTransform(hInProfile, input_format, + hOutProfile, output_format, + hProofProfile, + preferences.cms_intent, p->cms_proofing_intent, cms_flags); + } + + if (!hTransform) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + cmsCloseProfile(hOutProfile); + if (proof) + { + cmsCloseProfile(hProofProfile); + } + + snprintf(buf, sizeof(buf), "%s\n%s\n", ERR_CMS_CONVERSION, ERR_CMS_CREATE_TRANSFORM); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + + for (y=0; y < p->image_height; y++) + { + image_data_rawp = p->image_data_raw + linesize * y; + image_data_enhp = p->image_data_enh + linesize * y; + + cmsDoTransform(hTransform, image_data_rawp, image_data_enhp, p->image_width); + + if (p->gamma_functions_interruptable) + { + while (gtk_events_pending()) + { + DBG(DBG_info, "preview_do_color_correction: calling gtk_main_iteration\n"); + gtk_main_iteration(); + } + } + } + + if (p->image_data_enh) + { + preview_display_partial_image(p); + } + + return 0; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + void preview_calculate_raw_histogram(Preview *p, SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue) { int x, y; @@ -6625,7 +6807,7 @@ void preview_gamma_correction(Preview *p, int gamma_input_bits, preview_gamma_input_bits = gamma_input_bits; - preview_do_gamma_correction(p); + preview_display_with_correction(p); preview_draw_selection(p); } @@ -7363,7 +7545,7 @@ void preview_display_valid(Preview *p) gtk_widget_hide(p->valid_pixmap); gtk_widget_hide(p->invalid_pixmap); } - else if ((xsane.medium_changed) || (xsane.xsane_colors != p->preview_colors) || (p->invalid) ) /* preview is not valid */ + else if ((xsane.medium_changed) || (xsane.xsane_channels != p->preview_channels) || (p->invalid) ) /* preview is not valid */ { DBG(DBG_info, "preview not vaild\n"); diff --git a/src/xsane-preview.h b/src/xsane-preview.h index d57870e..a488ce2 100644 --- a/src/xsane-preview.h +++ b/src/xsane-preview.h @@ -3,7 +3,7 @@ xsane-preview.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -122,7 +122,7 @@ typedef struct char last_offset_16_byte; int scan_incomplete; int invalid; - int preview_colors; + int preview_channels; time_t image_last_time_updated; gint input_tag; SANE_Parameters params; @@ -153,6 +153,13 @@ typedef struct int show_selection; +#ifdef HAVE_LIBLCMS + int cms_enable; + int cms_proofing; + int cms_proofing_intent; + int cms_gamut_check; +#endif + #if 0 Batch_selection *batch_selection; #endif diff --git a/src/xsane-rc-io.c b/src/xsane-rc-io.c index 4a0af86..39a29ef 100644 --- a/src/xsane-rc-io.c +++ b/src/xsane-rc-io.c @@ -3,7 +3,7 @@ xsane-rc-io.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -119,7 +119,7 @@ void xsane_rc_io_w_void(Wire *w) /* ---------------------------------------------------------------------------------------------------------------- */ -void xsane_rc_io_w_array(Wire *w, SANE_Word *len_ptr, void **v, WireCodecFunc w_element, size_t element_size) +void xsane_rc_io_w_array(Wire *w, SANE_Word *len_ptr, char **v, WireCodecFunc w_element, size_t element_size) { SANE_Word len; char *val; @@ -180,7 +180,7 @@ void xsane_rc_io_w_array(Wire *w, SANE_Word *len_ptr, void **v, WireCodecFunc w_ /* ---------------------------------------------------------------------------------------------------------------- */ -void xsane_rc_io_w_ptr(Wire *w, void **v, WireCodecFunc w_value, size_t value_size) +void xsane_rc_io_w_ptr(Wire *w, char **v, WireCodecFunc w_value, size_t value_size) { SANE_Word is_null; @@ -352,7 +352,7 @@ void xsane_rc_io_w_device_ptr(Wire *w, SANE_Device **v) { DBG(DBG_wire, "xsane_rc_io_w_device_ptr\n"); - xsane_rc_io_w_ptr(w, (void **) v, (WireCodecFunc) xsane_rc_io_w_device, sizeof (**v)); + xsane_rc_io_w_ptr(w, (char **) v, (WireCodecFunc) xsane_rc_io_w_device, sizeof (**v)); } /* ---------------------------------------------------------------------------------------------------------------- */ @@ -360,6 +360,7 @@ void xsane_rc_io_w_device_ptr(Wire *w, SANE_Device **v) void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v) { SANE_Word len; + char *data_ptr = NULL; DBG(DBG_wire, "xsane_rc_io_w_option_descriptor\n"); @@ -378,7 +379,8 @@ void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v) break; case SANE_CONSTRAINT_RANGE: - xsane_rc_io_w_ptr(w, (void **) &v->constraint.range, (WireCodecFunc) xsane_rc_io_w_range, sizeof (SANE_Range)); + data_ptr = (char *) v->constraint.range; + xsane_rc_io_w_ptr(w, &data_ptr, (WireCodecFunc) xsane_rc_io_w_range, sizeof (SANE_Range)); break; case SANE_CONSTRAINT_WORD_LIST: @@ -386,16 +388,18 @@ void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v) { len = v->constraint.word_list[0] + 1; } - xsane_rc_io_w_array(w, &len, (void **) &v->constraint.word_list, w->codec.w_word, sizeof(SANE_Word)); + data_ptr = (char *) v->constraint.word_list; + xsane_rc_io_w_array(w, &len, &data_ptr, w->codec.w_word, sizeof(SANE_Word)); break; case SANE_CONSTRAINT_STRING_LIST: if (w->direction != WIRE_DECODE) - { - for (len = 0; v->constraint.string_list[len]; ++len); - ++len; /* send NULL string, too */ - } - xsane_rc_io_w_array(w, &len, (void **) &v->constraint.string_list, w->codec.w_string, sizeof(SANE_String)); + { + for (len = 0; v->constraint.string_list[len]; ++len); + ++len; /* send NULL string, too */ + } + data_ptr = (char *) v->constraint.string_list; + xsane_rc_io_w_array(w, &len, &data_ptr, w->codec.w_string, sizeof(SANE_String)); break; } } @@ -406,7 +410,7 @@ void xsane_rc_io_w_option_descriptor_ptr(Wire *w, SANE_Option_Descriptor **v) { DBG(DBG_wire, "xsane_rc_io_w_option_descriptor_ptr\n"); - xsane_rc_io_w_ptr(w, (void **) v, (WireCodecFunc) xsane_rc_io_w_option_descriptor, sizeof (**v)); + xsane_rc_io_w_ptr(w, (char **) v, (WireCodecFunc) xsane_rc_io_w_option_descriptor, sizeof (**v)); } /* ---------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-rc-io.h b/src/xsane-rc-io.h index dab2555..bfd7a3c 100644 --- a/src/xsane-rc-io.h +++ b/src/xsane-rc-io.h @@ -3,7 +3,7 @@ xsane-rc-io.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -108,7 +108,7 @@ extern void xsane_rc_io_w_device_ptr(Wire *w, SANE_Device **v); extern void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v); extern void xsane_rc_io_w_option_descriptor_ptr(Wire *w, SANE_Option_Descriptor **v); extern void xsane_rc_io_w_parameters(Wire *w, SANE_Parameters *v); -extern void xsane_rc_io_w_array(Wire *w, SANE_Word *len, void **v, WireCodecFunc w_element, size_t element_size); +extern void xsane_rc_io_w_array(Wire *w, SANE_Word *len, char **v, WireCodecFunc w_element, size_t element_size); extern void xsane_rc_io_w_flush(Wire *w); extern void xsane_rc_io_w_set_dir(Wire *w, WireDirection dir); extern void xsane_rc_io_w_call(Wire *w, SANE_Word proc_num, WireCodecFunc w_arg, void *arg, WireCodecFunc w_reply, void *reply); diff --git a/src/xsane-save.c b/src/xsane-save.c index a56e2ce..cc5f934 100644 --- a/src/xsane-save.c +++ b/src/xsane-save.c @@ -3,7 +3,7 @@ xsane-save.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -430,6 +430,7 @@ void xsane_read_pnm_header(FILE *file, Image_info *image_info) image_info->resolution_x = 72.0; image_info->resolution_y = 72.0; image_info->reduce_to_lineart = FALSE; + image_info->enable_color_management = FALSE; while (strcmp(buf, "# XSANE data follows\n")) { @@ -483,6 +484,26 @@ void xsane_read_pnm_header(FILE *file, Image_info *image_info) &image_info->contrast_green, &image_info->contrast_blue); } + else if (!strncmp(buf, "# color-management=", 20)) + { + sscanf(buf+20, "%d", &image_info->enable_color_management); + } + else if (!strncmp(buf, "# cms-function =", 20)) + { + sscanf(buf+20, "%d", &image_info->cms_function); + } + else if (!strncmp(buf, "# cms-intent =", 20)) + { + sscanf(buf+20, "%d", &image_info->cms_intent); + } + else if (!strncmp(buf, "# cms-bpc =", 20)) + { + sscanf(buf+20, "%d", &image_info->cms_bpc); + } + else if (!strncmp(buf, "# icm-profile =", 20)) + { + sscanf(buf+20, "%s", image_info->icm_profile); + } else if (!strncmp(buf, "# reduce to lineart", 20)) { image_info->reduce_to_lineart = TRUE; @@ -510,11 +531,11 @@ void xsane_read_pnm_header(FILE *file, Image_info *image_info) fgetc(file); /* read exactly one newline character */ - image_info->colors = 1; + image_info->channels = 1; if (filetype_nr == 6) /* ppm RGB */ { - image_info->colors = 3; + image_info->channels = 3; } } #ifdef SUPPORT_RGBA @@ -534,12 +555,12 @@ void xsane_read_pnm_header(FILE *file, Image_info *image_info) image_info->depth = 16; } - image_info->colors = 4; + image_info->channels = 4; } #endif DBG(DBG_info, "xsane_read_pnm_header: width=%d, height=%d, depth=%d, colors=%d, resolution_x=%f, resolution_y=%f\n", - image_info->image_width, image_info->image_height, image_info->depth, image_info->colors, + image_info->image_width, image_info->image_height, image_info->depth, image_info->channels, image_info->resolution_x, image_info->resolution_y); } @@ -573,7 +594,7 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a } - if (image_info->colors == 1) + if (image_info->channels == 1) { if (image_info->depth == 1) { @@ -618,6 +639,11 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a "# gamma = %3.2f\n" "# brightness = %4.1f\n" "# contrast = %4.1f\n" + "# color-management= %d\n" + "# cms-function = %d\n" + "# cms-intent = %d\n" + "# cms-bpc = %d\n" + "# icm-profile = %s\n" "# XSANE data follows\n" "%05d %05d\n" "%d\n", @@ -627,11 +653,16 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a image_info->gamma, image_info->brightness, image_info->contrast, + image_info->enable_color_management, + image_info->cms_function, + image_info->cms_intent, + image_info->cms_bpc, + image_info->icm_profile, image_info->image_width, image_info->image_height, maxval); } } - else if (image_info->colors == 3) + else if (image_info->channels == 3) { fprintf(file, "P%d\n" "# XSane settings:\n" @@ -640,6 +671,11 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a "# gamma IRGB = %3.2f %3.2f %3.2f %3.2f\n" "# brightness IRGB = %4.1f %4.1f %4.1f %4.1f\n" "# contrast IRGB = %4.1f %4.1f %4.1f %4.1f\n" + "# color-management= %d\n" + "# cms-function = %d\n" + "# cms-intent = %d\n" + "# cms-bpc = %d\n" + "# icm-profile = %s\n" "# XSANE data follows\n" "%05d %05d\n" \ "%d\n", @@ -649,11 +685,16 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a image_info->gamma, image_info->gamma_red, image_info->gamma_green, image_info->gamma_blue, image_info->brightness, image_info->brightness_red, image_info->brightness_green, image_info->brightness_blue, image_info->contrast, image_info->contrast_red, image_info->contrast_green, image_info->contrast_blue, + image_info->enable_color_management, + image_info->cms_function, + image_info->cms_intent, + image_info->cms_bpc, + image_info->icm_profile, image_info->image_width, image_info->image_height, maxval); } #ifdef SUPPORT_RGBA - else if (image_info->colors == 4) + else if (image_info->channels == 4) { fprintf(file, "SANE_RGBA\n" \ "%d %d\n" \ @@ -793,6 +834,121 @@ int xsane_copy_file_by_name(char *output_filename, char *input_filename, GtkProg /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +cmsHTRANSFORM xsane_create_cms_transform(Image_info *image_info, int cms_function, int cms_intent, int cms_bpc) +{ + cmsHPROFILE hInProfile = NULL; + cmsHPROFILE hOutProfile = NULL; + cmsHTRANSFORM hTransform = NULL; + DWORD cms_input_format; + DWORD cms_output_format; + DWORD cms_flags = 0; + + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { + return NULL; + } + + DBG(DBG_info, "Prepare CMS transform\n"); + + cmsErrorAction(LCMS_ERROR_SHOW); + + if (cms_bpc) + { + cms_flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; + } + + if (image_info->channels == 1) /* == 1 (grayscale) */ + { + if (image_info->depth == 8) + { + cms_input_format = TYPE_GRAY_8; + cms_output_format = TYPE_GRAY_8; + } + else + { + cms_input_format = TYPE_GRAY_16; + cms_output_format = TYPE_GRAY_16; + } + } + else /* color */ + { + if (image_info->depth == 8) + { + cms_input_format = TYPE_RGB_8; + cms_output_format = TYPE_RGB_8; + } + else + { + cms_input_format = TYPE_RGB_16; + cms_output_format = TYPE_RGB_16; + } + } + + hInProfile = cmsOpenProfileFromFile(image_info->icm_profile, "r"); + if (!hInProfile) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_SCANNER_ICM, image_info->icm_profile); + xsane_back_gtk_error(buf, TRUE); + } +#if 0 +{ + LPGAMMATABLE Gamma = cmsBuildGamma(256, 3.0); + hOutProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); + cmsFreeGamma(Gamma); +} +#endif + if (cms_function == XSANE_CMS_FUNCTION_CONVERT_TO_SRGB) + { + hOutProfile = cmsCreate_sRGBProfile(); + } + else + { + hOutProfile = cmsOpenProfileFromFile(preferences.working_color_space_icm_profile, "r"); + if (!hOutProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_DISPLAY_ICM, preferences.display_icm_profile); + xsane_back_gtk_error(buf, TRUE); + } + } + + if (!hOutProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + + snprintf(buf, sizeof(buf), "%s\n", ERR_CMS_CONVERSION); + xsane_back_gtk_error(buf, TRUE); + } + + hTransform = cmsCreateTransform(hInProfile, cms_input_format, + hOutProfile, cms_output_format, + cms_intent, cms_flags); + + cmsCloseProfile(hInProfile); + cmsCloseProfile(hOutProfile); + + if (!hTransform) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s\n%s\n", ERR_CMS_CONVERSION, ERR_CMS_CREATE_TRANSFORM); + xsane_back_gtk_error(buf, TRUE); + } + + return hTransform; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + int xsane_save_grayscale_image_as_lineart(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) { int x, y, bit; @@ -901,14 +1057,14 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in image_info->resolution_x *= x_scale; image_info->resolution_y *= y_scale; - original_line = malloc(original_image_width * image_info->colors * bytespp); + original_line = malloc(original_image_width * image_info->channels * bytespp); if (!original_line) { DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); return -1; } - new_line = malloc(new_image_width * image_info->colors * bytespp); + new_line = malloc(new_image_width * image_info->channels * bytespp); if (!new_line) { free(original_line); @@ -916,7 +1072,7 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in return -1; } - pixel_val = malloc(new_image_width * image_info->colors * sizeof(float)); + pixel_val = malloc(new_image_width * image_info->channels * sizeof(float)); if (!pixel_val) { free(original_line); @@ -925,7 +1081,7 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in return -1; } - pixel_norm = malloc(new_image_width * image_info->colors * sizeof(float)); + pixel_norm = malloc(new_image_width * image_info->channels * sizeof(float)); if (!pixel_norm) { free(original_line); @@ -939,8 +1095,8 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in read_line = TRUE; - memset(pixel_val, 0, new_image_width * image_info->colors * sizeof(float)); - memset(pixel_norm, 0, new_image_width * image_info->colors * sizeof(float)); + memset(pixel_val, 0, new_image_width * image_info->channels * sizeof(float)); + memset(pixel_norm, 0, new_image_width * image_info->channels * sizeof(float)); y_new = 0; y_go = 1.0 / y_scale; @@ -960,7 +1116,7 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in if (read_line) { DBG(DBG_info, "xsane_save_scaled_image: reading original line %d\n", (int) y); - fread(original_line, original_image_width, image_info->colors * bytespp, imagefile); /* read one line */ + fread(original_line, original_image_width, image_info->channels * bytespp, imagefile); /* read one line */ original_line16 = (guint16 *) original_line; } @@ -970,23 +1126,22 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in x_factor = 1.0; while ( (x < original_image_width) && (x_new < new_image_width) ) /* add this line to anti aliasing buffer */ - { factor = x_factor * y_factor; - for (c = 0; c < image_info->colors; c++) + for (c = 0; c < image_info->channels; c++) { if (bytespp == 1) { - color = original_line[((int) x) * image_info->colors + c]; + color = original_line[((int) x) * image_info->channels + c]; } else /* bytespp == 2 */ { - color = original_line16[((int) x) * image_info->colors + c]; + color = original_line16[((int) x) * image_info->channels + c]; } - pixel_val [x_new * image_info->colors + c] += factor * color; - pixel_norm[x_new * image_info->colors + c] += factor; + pixel_val [x_new * image_info->channels + c] += factor * color; + pixel_norm[x_new * image_info->channels + c] += factor; } x_go -= x_factor; @@ -1023,7 +1178,7 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in if (bytespp == 1) { - for (x_new = 0; x_new < new_image_width * image_info->colors; x_new++) + for (x_new = 0; x_new < new_image_width * image_info->channels; x_new++) { new_line[x_new] = (int) (pixel_val[x_new] / pixel_norm[x_new]); } @@ -1032,13 +1187,13 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in { guint16 *new_line16 = (guint16 *) new_line; - for (x_new = 0; x_new < new_image_width * image_info->colors; x_new++) + for (x_new = 0; x_new < new_image_width * image_info->channels; x_new++) { new_line16[x_new] = (int) (pixel_val[x_new] / pixel_norm[x_new]); } } - fwrite(new_line, new_image_width, image_info->colors * bytespp, outfile); /* write one line */ + fwrite(new_line, new_image_width, image_info->channels * bytespp, outfile); /* write one line */ if (ferror(outfile)) { @@ -1052,8 +1207,8 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in } /* reset values and norm factors */ - memset(pixel_val, 0, new_image_width * image_info->colors * sizeof(float)); - memset(pixel_norm, 0, new_image_width * image_info->colors * sizeof(float)); + memset(pixel_val, 0, new_image_width * image_info->channels * sizeof(float)); + memset(pixel_norm, 0, new_image_width * image_info->channels * sizeof(float)); y_new++; y_go = 1.0 / y_scale; @@ -1079,6 +1234,11 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in read_line = (oldy != (int) y); } + if (read_line) /* we have to write one more line */ + { + fwrite(new_line, new_image_width, image_info->channels * bytespp, outfile); /* write one line */ + } + free(original_line); free(new_line); free(pixel_val); @@ -1113,14 +1273,14 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in image_info->resolution_x *= x_scale; image_info->resolution_y *= y_scale; - original_line = malloc(original_image_width * image_info->colors * bytespp); + original_line = malloc(original_image_width * image_info->channels * bytespp); if (!original_line) { DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); return -1; } - new_line = malloc(new_image_width * image_info->colors * bytespp); + new_line = malloc(new_image_width * image_info->channels * bytespp); if (!new_line) { free(original_line); @@ -1143,18 +1303,18 @@ int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_in for (; ((int) original_y) - old_original_y; old_original_y += 1) { - fread(original_line, original_image_width, image_info->colors * bytespp, imagefile); /* read one line */ + fread(original_line, original_image_width, image_info->channels * bytespp, imagefile); /* read one line */ } for (x = 0; x < new_image_width; x++) { - for (i = 0; i < image_info->colors * bytespp; i++) + for (i = 0; i < image_info->channels * bytespp; i++) { - new_line[x * image_info->colors * bytespp + i] = original_line[((int) (x / x_scale)) * image_info->colors * bytespp + i]; + new_line[x * image_info->channels * bytespp + i] = original_line[((int) (x / x_scale)) * image_info->channels * bytespp + i]; } } - fwrite(new_line, new_image_width, image_info->colors * bytespp, outfile); /* write one line */ + fwrite(new_line, new_image_width, image_info->channels * bytespp, outfile); /* write one line */ original_y += 1/y_scale; @@ -1187,7 +1347,7 @@ int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image guint16 *color_cache_ptr; int bytespp = 1; int color_radius; - int color_width = image_info->image_width * image_info->colors; + int color_width = image_info->image_width * image_info->channels; radius--; /* correct radius : 1 means nothing happens */ @@ -1196,7 +1356,7 @@ int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image radius = 1; } - color_radius = radius * image_info->colors; + color_radius = radius * image_info->channels; if (image_info->depth > 8) { @@ -1252,7 +1412,7 @@ int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image if (xmin < 0) { - xmin = x % image_info->colors; + xmin = x % image_info->channels; } if (xmax > color_width) @@ -1271,11 +1431,11 @@ int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image { line_cache_ptr = line_cache + (sy-ymin) * color_width + xmin; - for (sx = xmin; sx <= xmax; sx+=image_info->colors) /* x part */ + for (sx = xmin; sx <= xmax; sx+=image_info->channels) /* x part */ { *color_cache_ptr = *line_cache_ptr; color_cache_ptr++; - line_cache_ptr += image_info->colors; + line_cache_ptr += image_info->channels; } } @@ -1314,11 +1474,11 @@ int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image { line_cache16_ptr = line_cache16 + (sy-ymin) * color_width + xmin; - for (sx = xmin; sx <= xmax; sx+=image_info->colors) + for (sx = xmin; sx <= xmax; sx+=image_info->channels) { *color_cache_ptr = *line_cache16_ptr; color_cache_ptr++; - line_cache16_ptr += image_info->colors; + line_cache16_ptr += image_info->channels; } } @@ -1407,14 +1567,14 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info xsane_write_pnm_header(outfile, image_info, 0); - line_cache = malloc(image_info->image_width * image_info->colors * bytespp * (2 * intradius + 1)); + line_cache = malloc(image_info->image_width * image_info->channels * bytespp * (2 * intradius + 1)); if (!line_cache) { DBG(DBG_error, "xsane_blur_image: out of memory\n"); return -1; } - fread(line_cache, image_info->image_width * image_info->colors * bytespp, (2 * intradius + 1), imagefile); + fread(line_cache, image_info->image_width * image_info->channels * bytespp, (2 * intradius + 1), imagefile); for (y = 0; y < image_info->image_height; y++) { @@ -1424,22 +1584,22 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info gtk_main_iteration(); } - for (x = 0; x < image_info->image_width * image_info->colors; x++) + for (x = 0; x < image_info->image_width * image_info->channels; x++) { xmin_flag = xmax_flag = ymin_flag = ymax_flag = TRUE; - xmin = x - intradius * image_info->colors; - xmax = x + intradius * image_info->colors; + xmin = x - intradius * image_info->channels; + xmax = x + intradius * image_info->channels; if (xmin < 0) { - xmin = x % image_info->colors; + xmin = x % image_info->channels; xmin_flag = FALSE; } - if (xmax > image_info->image_width * image_info->colors) + if (xmax > image_info->image_width * image_info->channels) { - xmax = image_info->image_width * image_info->colors; + xmax = image_info->image_width * image_info->channels; xmax_flag = FALSE; } @@ -1467,7 +1627,7 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info { for (sy = ymin+1; sy <= ymax-1 ; sy++) { - val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->colors + xmin]; + val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->channels + xmin]; norm += outer_factor; } } @@ -1476,14 +1636,14 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info { for (sy = ymin+1; sy <= ymax-1 ; sy++) { - val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->colors + xmax]; + val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->channels + xmax]; norm += outer_factor; } } if (ymin_flag) /* integrate over top margin */ { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) + for (sx = xmin+image_info->channels; sx <= xmax-image_info->channels ; sx += image_info->channels) { val += outer_factor * line_cache[sx]; norm += outer_factor; @@ -1492,18 +1652,18 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info if (ymax_flag) /* integrate over bottom margin */ { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) + for (sx = xmin+image_info->channels; sx <= xmax-image_info->channels ; sx += image_info->channels) { - val += outer_factor * line_cache[(ymax-ymin) * image_info->image_width * image_info->colors + sx]; + val += outer_factor * line_cache[(ymax-ymin) * image_info->image_width * image_info->channels + sx]; norm += outer_factor; } } for (sy = ymin+1; sy <= ymax-1; sy++) /* integrate internal square */ { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors; sx+=image_info->colors) + for (sx = xmin+image_info->channels; sx <= xmax-image_info->channels; sx+=image_info->channels) { - val += line_cache[(sy-ymin) * image_info->image_width * image_info->colors + sx]; + val += line_cache[(sy-ymin) * image_info->image_width * image_info->channels + sx]; norm += 1.0; } } @@ -1519,7 +1679,7 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info { for (sy = ymin+1; sy <= ymax-1 ; sy++) { - val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + xmin]; + val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->channels + xmin]; norm += outer_factor; } } @@ -1528,14 +1688,14 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info { for (sy = ymin+1; sy <= ymax-1 ; sy++) { - val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + xmax]; + val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->channels + xmax]; norm += outer_factor; } } if (ymin_flag) /* integrate over top margin */ { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) + for (sx = xmin+image_info->channels; sx <= xmax-image_info->channels ; sx += image_info->channels) { val += outer_factor * line_cache16[sx]; norm += outer_factor; @@ -1544,18 +1704,18 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info if (ymax_flag) /* integrate over bottom margin */ { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) + for (sx = xmin+image_info->channels; sx <= xmax-image_info->channels ; sx += image_info->channels) { - val += outer_factor * line_cache16[(ymax-ymin) * image_info->image_width * image_info->colors + sx]; + val += outer_factor * line_cache16[(ymax-ymin) * image_info->image_width * image_info->channels + sx]; norm += outer_factor; } } for (sy = ymin; sy <= ymax; sy++) /* integrate internal square */ { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) + for (sx = xmin; sx <= xmax; sx+=image_info->channels) { - val += line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + sx]; + val += line_cache16[(sy-ymin) * image_info->image_width * image_info->channels + sx]; norm += 1.0; } } @@ -1581,10 +1741,10 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info if ((y > intradius) && (y < image_info->image_height - intradius)) { - memcpy(line_cache, line_cache + image_info->image_width * image_info->colors * bytespp, - image_info->image_width * image_info->colors * bytespp * 2 * intradius); - fread(line_cache + image_info->image_width * image_info->colors * bytespp * 2 * intradius, - image_info->image_width * image_info->colors * bytespp, 1, imagefile); + memcpy(line_cache, line_cache + image_info->image_width * image_info->channels * bytespp, + image_info->image_width * image_info->channels * bytespp * 2 * intradius); + fread(line_cache + image_info->image_width * image_info->channels * bytespp * 2 * intradius, + image_info->image_width * image_info->channels * bytespp, 1, imagefile); } } @@ -1616,14 +1776,14 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info xsane_write_pnm_header(outfile, image_info, 0); - line_cache = malloc(image_info->image_width * image_info->colors * bytespp * (2 * radius + 1)); + line_cache = malloc(image_info->image_width * image_info->channels * bytespp * (2 * radius + 1)); if (!line_cache) { DBG(DBG_error, "xsane_blur_image: out of memory\n"); return -1; } - fread(line_cache, image_info->image_width * image_info->colors * bytespp, (2 * radius + 1), imagefile); + fread(line_cache, image_info->image_width * image_info->channels * bytespp, (2 * radius + 1), imagefile); for (y = 0; y < image_info->image_height; y++) { @@ -1633,19 +1793,19 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info gtk_main_iteration(); } - for (x = 0; x < image_info->image_width * image_info->colors; x++) + for (x = 0; x < image_info->image_width * image_info->channels; x++) { - xmin = x - radius * image_info->colors; - xmax = x + radius * image_info->colors; + xmin = x - radius * image_info->channels; + xmax = x + radius * image_info->channels; if (xmin < 0) { - xmin = x % image_info->colors; + xmin = x % image_info->channels; } - if (xmax > image_info->image_width * image_info->colors) + if (xmax > image_info->image_width * image_info->channels) { - xmax = image_info->image_width * image_info->colors; + xmax = image_info->image_width * image_info->channels; } ymin = y - radius; @@ -1668,9 +1828,9 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info { for (sy = ymin; sy <= ymax; sy++) { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) + for (sx = xmin; sx <= xmax; sx+=image_info->channels) { - val += line_cache[(sy-ymin) * image_info->image_width * image_info->colors + sx]; + val += line_cache[(sy-ymin) * image_info->image_width * image_info->channels + sx]; count++; } } @@ -1684,9 +1844,9 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info for (sy = ymin; sy <= ymax; sy++) { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) + for (sx = xmin; sx <= xmax; sx+=image_info->channels) { - val += line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + sx]; + val += line_cache16[(sy-ymin) * image_info->image_width * image_info->channels + sx]; count++; } } @@ -1699,10 +1859,10 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info if ((y > radius) && (y < image_info->image_height - radius)) { - memcpy(line_cache, line_cache + image_info->image_width * image_info->colors * bytespp, - image_info->image_width * image_info->colors * bytespp * 2 * radius); - fread(line_cache + image_info->image_width * image_info->colors * bytespp * 2 * radius, - image_info->image_width * image_info->colors * bytespp, 1, imagefile); + memcpy(line_cache, line_cache + image_info->image_width * image_info->channels * bytespp, + image_info->image_width * image_info->channels * bytespp * 2 * radius); + fread(line_cache + image_info->image_width * image_info->channels * bytespp * 2 * radius, + image_info->image_width * image_info->channels * bytespp, 1, imagefile); } } @@ -1734,7 +1894,7 @@ int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_in pos0 = ftell(imagefile); /* mark position to skip header */ - bytespp = image_info->colors; + bytespp = image_info->channels; if (image_info->depth > 8) { @@ -2227,7 +2387,7 @@ int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_in /* ---------------------------------------------------------------------------------------------------------------------- */ -void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatdecode) +void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatedecode) { DBG(DBG_proc, "xsane_save_ps_create_document_header\n"); @@ -2236,7 +2396,7 @@ void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatdeco SANE_VERSION_MAJOR(xsane.sane_backend_versioncode), SANE_VERSION_MINOR(xsane.sane_backend_versioncode)); fprintf(outfile, "%%%%DocumentData: Clean7Bit\n"); - if (flatdecode) + if (flatedecode) { fprintf(outfile, "%%%%LanguageLevel: 3\n"); } @@ -2288,7 +2448,7 @@ static void xsane_save_ps_create_page_header(FILE *outfile, int page, float width, float height, int paper_left_margin, int paper_bottom_margin, int paper_width, int paper_height, - int paper_orientation, int flatdecode, + int paper_orientation, int flatedecode, GtkProgressBar *progress_bar) { int degree, position_left, position_bottom, box_left, box_bottom, box_right, box_top, depth; @@ -2377,7 +2537,7 @@ static void xsane_save_ps_create_page_header(FILE *outfile, int page, if (depth > 8) { - depth = 8; + depth = 12; } fprintf(outfile, "\n"); @@ -2394,23 +2554,22 @@ static void xsane_save_ps_create_page_header(FILE *outfile, int page, fprintf(outfile, "%d rotate\n", degree); fprintf(outfile, "%d %d translate\n", position_left, position_bottom); fprintf(outfile, "%f %f scale\n", width, height); - fprintf(outfile, "%d %d %d\n", image_info->image_width, image_info->image_height, depth); - fprintf(outfile, "[%d %d %d %d %d %d]\n", image_info->image_width, 0, 0, -image_info->image_height, 0, image_info->image_height); - fprintf(outfile, "currentfile\n"); - fprintf(outfile, "/ASCII85Decode filter\n"); + fprintf(outfile, "<<\n"); + fprintf(outfile, " /ImageType 1\n"); + fprintf(outfile, " /Width %d\n", image_info->image_width); + fprintf(outfile, " /Height %d\n", image_info->image_height); + fprintf(outfile, " /BitsPerComponent %d\n", depth); + fprintf(outfile, " /Decode [0 1 0 1 0 1]\n"); + fprintf(outfile, " /ImageMatrix [%d %d %d %d %d %d]\n", image_info->image_width, 0, 0, -image_info->image_height, 0, image_info->image_height); + fprintf(outfile, " /DataSource currentfile /ASCII85Decode filter"); #ifdef HAVE_LIBZ - if (flatdecode) + if (flatedecode) { - fprintf(outfile, "/FlateDecode filter\n"); + fprintf(outfile, " /FlateDecode filter"); } #endif - - if (image_info->colors == 3) /* what about RGBA here ? */ - { - fprintf(outfile, "false 3 colorimage\n"); - fprintf(outfile, "\n"); - } - else + fprintf(outfile, "\n"); + fprintf(outfile, ">>\n"); { fprintf(outfile, "image\n"); fprintf(outfile, "\n"); @@ -2428,9 +2587,103 @@ static void xsane_save_ps_create_page_trailer(FILE *outfile) /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBZ +/* Utility function for the PDF output */ +static int xsane_write_flatedecode(FILE *outfile, unsigned char *line, int len, int finish) +{ + static unsigned char *cbuf = NULL; + static int cbuflen = 0; + static int linelen = 0; + int outlen; + static int init = 0; + static z_stream s; + int ret; + int flush; + static int count = 0; + + DBG(DBG_proc, "xsane_write_flatedecode\n"); + + if (linelen != len) + { + linelen = len; + if (cbuf != NULL) + { + free(cbuf); + } + /* buffer length = length + 0.1 * length + 12 (mandatory) */ + cbuflen = len + len / 10 + 12; + cbuf = malloc(cbuflen); + } + + if (cbuf == NULL) + { + DBG(DBG_error, "cbuf allocation failed\n"); + return 1; + } + + if (!init) + { + s.zalloc = Z_NULL; + s.zfree = Z_NULL; + s.opaque = Z_NULL; + + ret = deflateInit(&s, Z_DEFAULT_COMPRESSION); + + if (ret != Z_OK) + { + DBG(DBG_error, "deflateInit failed\n"); + free(cbuf); + return 1; + } + + init = 1; + } + + s.avail_in = len; + s.next_in = line; + + do + { + s.avail_out = cbuflen; + s.next_out = cbuf; + + flush = (finish) ? Z_FINISH : Z_NO_FLUSH; + + ret = deflate(&s, flush); + + if (ret == Z_STREAM_ERROR) + { + DBG(DBG_error, "deflate failed\n"); + free(cbuf); + return 1; + } + + outlen = cbuflen - s.avail_out; + + fwrite(cbuf, outlen, 1, outfile); + } while (s.avail_out == 0); + + if (finish) + { + DBG(DBG_info, "xsane_write_flatedecode finished\n"); + deflateEnd(&s); + free(cbuf); + cbuf = NULL; + init = 0; + cbuflen = 0; + linelen = 0; + count = 0; + } + + return 0; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + #ifdef HAVE_LIBZ /* Utility function for the PostScript output */ -static int xsane_write_compressed_a85_flatdecode(FILE *outfile, unsigned char *line, int len, int finish) +static int xsane_write_compressed_a85_flatedecode(FILE *outfile, unsigned char *line, int len, int finish) { static unsigned char *cbuf = NULL; static int cbuflen = 0; @@ -2446,7 +2699,7 @@ static int xsane_write_compressed_a85_flatdecode(FILE *outfile, unsigned char *l static unsigned char a85block[6] = {0, 0, 0, 0, 0, 0}; static int count = 0; - DBG(DBG_proc, "xsane_write_compressed_a85_flatdecode\n"); + DBG(DBG_proc, "xsane_write_compressed_a85_flatedecode\n"); if (linelen != len) { @@ -2741,7 +2994,91 @@ static int xsane_write_compressed_a85(FILE *outfile, unsigned char *line, int le /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) +#ifdef HAVE_LIBLCMS +static int xsane_write_CSA(FILE *outfile, char *input_profile, int intent) +{ + cmsHPROFILE hProfile; + size_t n; + char* buffer; + + hProfile = cmsOpenProfileFromFile(input_profile, "r"); + if (!hProfile) + { + return -1; + } + + n = cmsGetPostScriptCSA(hProfile, intent, NULL, 0); + if (n == 0) + { + return -2; + } + + buffer = (char*) malloc(n + 1); + if (!buffer) + { + return -3; + } + + cmsGetPostScriptCSA(hProfile, intent, buffer, n); + buffer[n] = 0; + + fprintf(outfile, "%s", buffer); + fprintf(outfile, "setcolorspace\n"); + + free(buffer); + cmsCloseProfile(hProfile); + + return 0; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_write_CRD(FILE *outfile, char *output_profile, int intent, int blackpointcompensation) +{ + cmsHPROFILE hProfile; + size_t n; + char* buffer; + DWORD flags = cmsFLAGS_NODEFAULTRESOURCEDEF; + + hProfile = cmsOpenProfileFromFile(output_profile, "r"); + if (!hProfile) + { + return -1; + } + + if (blackpointcompensation) + { + flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; + } + + n = cmsGetPostScriptCRDEx(hProfile, intent, flags, NULL, 0); + if (n == 0) + { + return -2; + } + + buffer = (char*) malloc(n + 1); + if (!buffer) + { + return -3; + } + + cmsGetPostScriptCRDEx(hProfile, intent, flags, buffer, n); + buffer[n] = 0; + + fprintf(outfile, "%s", buffer); + fprintf(outfile, "setcolorrendering\n"); + + free(buffer); + cmsCloseProfile(hProfile); + + return 0; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *image_info, int ascii85decode, int flatedecode, GtkProgressBar *progress_bar, int *cancel_save) { int x, y; int bytes_per_line = (image_info->image_width+7)/8; @@ -2778,15 +3115,26 @@ static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *imag line[x] = fgetc(imagefile) ^ 255; } + if (ascii85decode) + { #ifdef HAVE_LIBZ - if (flatdecode) + if (flatedecode) + { + ret = xsane_write_compressed_a85_flatedecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + } + else +#endif + { + ret = xsane_write_compressed_a85(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + } + } + else if (flatedecode) { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + ret = xsane_write_flatedecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); } else -#endif { - ret = xsane_write_compressed_a85(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + fwrite(line, bytes_per_line, 1, outfile); } if ((ret != 0) || (ferror(outfile))) @@ -2822,11 +3170,15 @@ static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *imag /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, int ascii85decode, int flatedecode, cmsHTRANSFORM hTransform, int embed_scanner_icm_profile, GtkProgressBar *progress_bar, int *cancel_save) { - int x, y; - int ret; - unsigned char *line; + int x, y; + int ret; + unsigned char *line; +#ifdef HAVE_LIBLCMS + unsigned char *line_raw = NULL; +#endif + DBG(DBG_proc, "xsane_save_ps_pdf_gray\n"); @@ -2865,15 +3217,26 @@ static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *im } } + if (ascii85decode) + { #ifdef HAVE_LIBZ - if (flatdecode) + if (flatedecode) + { + ret = xsane_write_compressed_a85_flatedecode(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); + } + else +#endif + { + ret = xsane_write_compressed_a85(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); + } + } + else if (flatedecode) { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); + ret = xsane_write_flatedecode(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); } else -#endif { - ret = xsane_write_compressed_a85(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); + fwrite(line, image_info->image_width, 1, outfile); } if ((ret != 0) || (ferror(outfile))) @@ -2915,28 +3278,106 @@ static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *im /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *image_info, int ascii85decode, int flatedecode, + cmsHTRANSFORM hTransform, int do_transform, + GtkProgressBar *progress_bar, int *cancel_save) { int x, y; int ret; - unsigned char *line, *linep; + unsigned char *line = NULL, *linep = NULL, *line16 = NULL; + int bytes_per_line; + int bytes_per_line16 = 0; +#ifdef HAVE_LIBLCMS + unsigned char *line_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_ps_pdf_color\n"); *cancel_save = 0; - line = (unsigned char *) malloc(image_info->image_width * 3); - - if (line == NULL) + if (image_info->depth > 8) /* reduce 16 bit images to 12 bit */ { - char buf[TEXTBUFSIZE]; - - snprintf(buf, sizeof(buf), "%s malloc failed", ERR_DURING_SAVE); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - return (*cancel_save); - } + bytes_per_line16 = image_info->image_width * 3 * 2; + + bytes_per_line = (image_info->image_width/2) * 3 * 3; + if (image_info->image_width & 1) + { + bytes_per_line += 5; + } + + DBG(DBG_info, "bytes_per_line16 = %d\n", bytes_per_line16); + DBG(DBG_info, "bytes_per_line = %d\n", bytes_per_line); + + line16 = (unsigned char *) malloc(bytes_per_line16); + + if (line16 == NULL) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s malloc for line16 failed", ERR_DURING_SAVE); + DBG(DBG_error, "%s\n", buf); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + *cancel_save = 1; + return (*cancel_save); + } + DBG(DBG_info, "line16 allocated\n"); + } + else + { + bytes_per_line = image_info->image_width * 3; + bytes_per_line16 = image_info->image_width * 3; + DBG(DBG_info, "bytes_per_line = %d\n", bytes_per_line); + } + + line = (unsigned char *) malloc(bytes_per_line); + + if (line == NULL) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s malloc for line failed", ERR_DURING_SAVE); + DBG(DBG_error, "%s\n", buf); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + + if (line16) + { + free(line16); + } + + *cancel_save = 1; + return (*cancel_save); + } + DBG(DBG_info, "line allocated\n"); + +#ifdef HAVE_LIBLCMS + if (do_transform && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + line_raw = (unsigned char *) malloc(bytes_per_line16); + + if (line_raw == NULL) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s malloc for line_raw failed", ERR_DURING_SAVE); + DBG(DBG_error, "%s\n", buf); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + + free(line); + + if (line16) + { + free(line16); + } + + *cancel_save = 1; + return (*cancel_save); + } + + DBG(DBG_info, "line_raw allocated\n"); + } +#endif for (y = 0; y < image_info->image_height; y++) { @@ -2948,39 +3389,101 @@ static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *i linep = line; - if (image_info->depth > 8) /* reduce 16 bit images */ + if (image_info->depth > 8) /* reduce 16 bit images to 12 bit */ { - guint16 val; +#ifdef HAVE_LIBLCMS + if (do_transform && (hTransform != NULL)) + { + fread(line_raw, 6, image_info->image_width, imagefile); + cmsDoTransform(hTransform, line_raw, line16, image_info->image_width); + } + else +#endif + { + fread(line16, 6, image_info->image_width, imagefile); + } - for (x = 0; x < image_info->image_width; x++) +#if __BYTE_ORDER == __LITTLE_ENDIAN + for (x = 0; x < image_info->image_width; x=x+2) { - fread(&val, 2, 1, imagefile); - *linep++ = val/256; - fread(&val, 2, 1, imagefile); - *linep++ = val/256; - fread(&val, 2, 1, imagefile); - *linep++ = val/256; + *linep++ = line16[6*x+1]; /* red high+middle */ + *linep++ = (line16[6*x+0] & 240) | (line16[6*x+3] >> 4); /* red low | green high */ + *linep++ = ((line16[6*x+3] & 15) << 4) | ((line16[6*x+2] & 240) >> 4); /* green middle | green low */ + + *linep++ = line16[6*x+5]; /* blue high+middle */ + + if (x == image_info->image_width-1) + { + *linep++ = (line16[6*x+4] & 240); /* blue low */ + break; + } + + *linep++ = (line16[6*x+4] & 240) | (line16[6*x+7] >> 4); /* blue low | red high */ + *linep++ = ((line16[6*x+7] & 15) << 4) | ((line16[6*x+6] & 240) >> 4); /* red middle | red low */ + + *linep++ = line16[6*x+9]; /* green high+middle */ + *linep++ = (line16[6*x+8] & 240) | (line16[6*x+11] >> 4); /* green low | blue high */ + *linep++ = ((line16[6*x+11] & 15) << 4) | ((line16[6*x+10] & 240) >> 4); /* blue middle | blue low */ + } +#else + for (x = 0; x < image_info->image_width; x=x+2) + { + *linep++ = line16[6*x+0]; /* red high+middle */ + *linep++ = (line16[6*x+1] & 240) | (line16[6*x+2] >> 4); /* red low | green high */ + *linep++ = ((line16[6*x+2] & 15) << 4) | ((line16[6*x+3] & 240) >> 4); /* green middle | green low */ + + *linep++ = line16[6*x+4]; /* blue high+middle */ + + if (x == image_info->image_width-1) + { + *linep++ = (line16[6*x+5] & 240); /* blue low */ + break; + } + + *linep++ = (line16[6*x+5] & 240) | (line16[6*x+6] >> 4); /* blue low | red high */ + *linep++ = ((line16[6*x+6] & 15) << 4) | ((line16[6*x+7] & 240) >> 4); /* red middle | red low */ + + *linep++ = line16[6*x+8]; /* green high+middle */ + *linep++ = (line16[6*x+9] & 240) | (line16[6*x+10] >> 4); /* green low | blue high */ + *linep++ = ((line16[6*x+10] & 15) << 4) | ((line16[6*x+11] & 240) >> 4); /* blue middle | blue low */ } +#endif } else /* 8 bits/sample */ { - for (x = 0; x < image_info->image_width; x++) +#ifdef HAVE_LIBLCMS + if (do_transform && (hTransform != NULL)) + { + fread(line_raw, 3, image_info->image_width, imagefile); + cmsDoTransform(hTransform, line_raw, line, image_info->image_width); + } + else +#endif { - *linep++ = fgetc(imagefile); - *linep++ = fgetc(imagefile); - *linep++ = fgetc(imagefile); + fread(line, 3, image_info->image_width, imagefile); } } + if (ascii85decode) + { #ifdef HAVE_LIBZ - if (flatdecode) + if (flatedecode) + { + ret = xsane_write_compressed_a85_flatedecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + } + else +#endif + { + ret = xsane_write_compressed_a85(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); + } + } + else if (flatedecode) { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, (image_info->image_width * 3), (y == image_info->image_height - 1)); + ret = xsane_write_flatedecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); } else -#endif { - ret = xsane_write_compressed_a85(outfile, line, (image_info->image_width * 3), (y == image_info->image_height - 1)); + fwrite(line, bytes_per_line, 1, outfile); } if ((ret != 0) || (ferror(outfile))) @@ -3009,6 +3512,18 @@ static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *i } } +#ifdef HAVE_LIBLCMS + if (line_raw) + { + free(line_raw); + } +#endif + + if (line16) + { + free(line16); + } + free(line); return (*cancel_save); @@ -3019,7 +3534,8 @@ static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *i int xsane_save_ps_page(FILE *outfile, int page, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int do_transform, GtkProgressBar *progress_bar, int *cancel_save) { DBG(DBG_proc, "xsane_save_ps_page\n"); @@ -3027,23 +3543,23 @@ int xsane_save_ps_page(FILE *outfile, int page, xsane_save_ps_create_page_header(outfile, page, image_info, width, height, paper_left_margin, paper_bottom_margin, paperwidth, paperheight, paper_orientation, - flatdecode, + flatedecode, progress_bar); - if (image_info->colors == 1) /* lineart, halftone, grayscale */ + if (image_info->channels == 1) /* lineart, halftone, grayscale */ { if (image_info->depth == 1) /* lineart, halftone */ { - xsane_save_ps_pdf_bw(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_bw(outfile, imagefile, image_info, TRUE, flatedecode, progress_bar, cancel_save); } else /* grayscale */ { - xsane_save_ps_pdf_gray(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_gray(outfile, imagefile, image_info, TRUE, flatedecode, hTransform, do_transform, progress_bar, cancel_save); } } else /* color RGB */ { - xsane_save_ps_pdf_color(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_color(outfile, imagefile, image_info, TRUE, flatedecode, hTransform, do_transform, progress_bar, cancel_save); } xsane_save_ps_create_page_trailer(outfile); @@ -3065,19 +3581,46 @@ int xsane_save_ps_page(FILE *outfile, int page, int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int embed_CSA, char *CSA_profile, + int embed_CRD, char *CRD_profile, int blackpointcompensation, int intent, GtkProgressBar *progress_bar, int *cancel_save) { DBG(DBG_proc, "xsane_save_ps\n"); *cancel_save = 0; - xsane_save_ps_create_document_header(outfile, 1 /* pages */, flatdecode); + xsane_save_ps_create_document_header(outfile, 1 /* pages */, flatedecode); + +#ifdef HAVE_LIBLCMS + if ((apply_ICM_profile) && (embed_CRD)) + { + xsane_write_CRD(outfile, CRD_profile, intent, blackpointcompensation); /* write printer profile to ps file */ + } + + + if ((apply_ICM_profile) && (embed_CSA)) + { + xsane_write_CSA(outfile, CSA_profile, intent); /* write scanner profile to ps file */ + } + else +#endif + { + if (image_info->channels == 1) /* lineart, halftone, grayscale */ + { + fprintf(outfile, "/DeviceGray setcolorspace\n"); + } + else + { + fprintf(outfile, "/DeviceRGB setcolorspace\n"); + } + } xsane_save_ps_page(outfile, 1 /* page */, imagefile, image_info, width, height, paper_left_margin, paper_bottom_margin, paperwidth, paperheight, paper_orientation, - flatdecode, + flatedecode, + hTransform, (apply_ICM_profile && (!embed_CSA) && (!embed_CRD)) /* do_transform */, progress_bar, cancel_save); xsane_save_ps_create_document_trailer(outfile, 0 /* we defined pages at beginning */); @@ -3097,7 +3640,93 @@ int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, float /* ---------------------------------------------------------------------------------------------------------------------- */ -void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, int pages, int flatdecode) +static int xsane_embed_pdf_icm_profile(FILE *outfile, struct pdf_xref *xref, char *icm_filename, int flatedecode, int icc_object) +{ + FILE *icm_profile; + size_t size, embed_len; + unsigned char *embed_buffer; + int ret; + + DBG(DBG_proc, "xsane_embed_pdf_icm_profile(%s)\n", icm_filename); + + icm_profile = fopen(icm_filename, "rb"); + if (icm_profile == NULL) + { + DBG(DBG_error, "Could not open ICM profile \"%s\" for reading\n", icm_filename); + return -1; + } + + fseek(icm_profile, 0, SEEK_END); + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + + embed_buffer = malloc(size + 1); + if (embed_buffer) + { + xref->obj[icc_object] = ftell(outfile); + fprintf(outfile, "%d 0 obj\n", icc_object); + fprintf(outfile, " << /N 3\n"); /* 3 channels */ + fprintf(outfile, " /Alternate /DeviceRGB\n"); +#ifdef HAVE_LIBZ + if (flatedecode) + { + fprintf(outfile, " /Filter /FlateDecode\n"); + } +#endif + + fprintf(outfile, " /Length >>\n"); + + /* Position of the stream length, to be written later on */ + xref->slenp = ftell(outfile) - 15; + + fprintf(outfile, "stream\n"); + + /* Start of the stream data */ + xref->slen = ftell(outfile); + + embed_len = fread(embed_buffer, 1, size, icm_profile); + embed_buffer[embed_len] = 0; + fclose(icm_profile); + +#ifdef HAVE_LIBZ + if (flatedecode) + { + ret = xsane_write_flatedecode(outfile, embed_buffer, size, TRUE); + } + else +#endif + { + fwrite(embed_buffer, size, 1, outfile); + ret = 0; + } + + /* Go back and write the length of the stream */ + xref->slen = ftell(outfile) - xref->slen; + fseek(outfile, xref->slenp, SEEK_SET); + fprintf(outfile, "%lu", xref->slen); + fseek(outfile, 0L, SEEK_END); + + fprintf(outfile, "endstream\n"); + fprintf(outfile, "endobj\n"); + fprintf(outfile, "\n"); + + free(embed_buffer); + } + else + { + DBG(DBG_info, "Embedding ICM profile \"%s\" to PDF: no mem\n", icm_filename); + fclose(icm_profile); + return -2; + } + + + DBG(DBG_info, "Embedding ICM profile \"%s\" to PDF file retuned with status %d\n", icm_filename, ret); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, int pages, int flatedecode) { int i; @@ -3126,7 +3755,7 @@ void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, fprintf(outfile, " /Kids [\n"); for (i=0; i < pages; i++) { - fprintf(outfile, " %d 0 R\n", i * 2 + 4); + fprintf(outfile, " %d 0 R\n", i * 2 + 6); } fprintf(outfile, " ]\n"); fprintf(outfile, " /Count %d\n", pages); @@ -3143,7 +3772,8 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr float width, float height, int paper_left_margin, int paper_bottom_margin, int paper_width, int paper_height, - int paper_orientation, int flatdecode, + int paper_orientation, + int flatedecode, int icc_object, GtkProgressBar *progress_bar) { int position_left, position_bottom, box_left, box_bottom, box_right, box_top, depth; @@ -3231,26 +3861,26 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr depth = image_info->depth; - if (depth > 8) + if (depth > 8) /* PDF does not support 16bits/sample in a standard image */ { depth = 8; } - xref->obj[page * 2 + 2] = ftell(outfile); - fprintf(outfile, "%d 0 obj\n", page * 2 + 2); + xref->obj[page * 2 + 4] = ftell(outfile); + fprintf(outfile, "%d 0 obj\n", page * 2 + 4); fprintf(outfile, " << /Type /Page\n"); fprintf(outfile, " /Parent 3 0 R\n"); fprintf(outfile, " /MediaBox [%d %d %d %d]\n", box_left, box_bottom, box_right, box_top); - fprintf(outfile, " /Contents %d 0 R\n", page * 2 + 3); - fprintf(outfile, " /Resources << /ProcSet %d 0 R >>\n", page * 2 + 4); + fprintf(outfile, " /Contents %d 0 R\n", page * 2 + 5); + fprintf(outfile, " /Resources << /ProcSet %d 0 R >>\n", page * 2 + 6); fprintf(outfile, " >>\n"); fprintf(outfile, "endobj\n"); fprintf(outfile, "\n"); /* Offset of object 5, for xref */ - xref->obj[page * 2 + 3] = ftell(outfile); + xref->obj[page * 2 + 5] = ftell(outfile); - fprintf(outfile, "%d 0 obj\n", page * 2 + 3); + fprintf(outfile, "%d 0 obj\n", page * 2 + 5); fprintf(outfile, " << /Length >>\n"); /* Position of the stream length, to be written later on */ @@ -3269,9 +3899,17 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr fprintf(outfile, " /W %d\n", image_info->image_width); fprintf(outfile, " /H %d\n", image_info->image_height); - if (image_info->colors == 3) /* what about RGBA here ? */ + if ((icc_object) && (image_info->depth != 1)) + { + fprintf(outfile, " /ColorSpace [/ICCBased %d 0 R]\n", icc_object); + } + + if (image_info->channels == 3) /* what about RGBA here ? */ { - fprintf(outfile, " /CS /RGB\n"); + if (icc_object == 0) + { + fprintf(outfile, " /CS /RGB\n"); + } fprintf(outfile, " /BPC %d\n", depth); } else if (image_info->depth == 1) /* BW */ @@ -3281,22 +3919,20 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr } else /* gray */ { - fprintf(outfile, " /CS /G\n"); - fprintf(outfile, " /BPC 8\n"); + if (icc_object == 0) + { + fprintf(outfile, " /CS /G\n"); + } + fprintf(outfile, " /BPC %d\n", depth); } #ifdef HAVE_LIBZ - if (flatdecode) - { - fprintf(outfile, " /F [/A85 /FlateDecode]\n"); - } - else + if (flatedecode) { - fprintf(outfile, " /F /A85\n"); + fprintf(outfile, " /F /FlateDecode\n"); } -#else - fprintf(outfile, " /F /A85\n"); #endif + fprintf(outfile, "ID\n"); } @@ -3311,17 +3947,17 @@ void xsane_save_pdf_create_document_trailer(FILE *outfile, struct pdf_xref *xref /* PDF document trailer */ /* Offset of object 6, for xref */ - xref->obj[pages * 2 + 4] = ftell(outfile); + xref->obj[pages * 2 + 6] = ftell(outfile); - fprintf(outfile, "%d 0 obj\n", pages * 2 + 4); + fprintf(outfile, "%d 0 obj\n", pages * 2 + 6); fprintf(outfile, " [/PDF]\n"); fprintf(outfile, "endobj\n"); fprintf(outfile, "\n"); /* Offset of object 7, for xref */ - xref->obj[pages * 2 + 5] = ftell(outfile); + xref->obj[pages * 2 + 7] = ftell(outfile); - fprintf(outfile, "%d 0 obj\n", pages * 2 + 5); + fprintf(outfile, "%d 0 obj\n", pages * 2 + 7); fprintf(outfile, " << /Title (XSane scanned image)\n"); fprintf(outfile, " /Creator (XSane version %s (sane %d.%d) - by Oliver Rauch)\n", VERSION, @@ -3342,19 +3978,19 @@ void xsane_save_pdf_create_document_trailer(FILE *outfile, struct pdf_xref *xref xref->xref = ftell(outfile); fprintf(outfile, "xref\n"); - fprintf(outfile, "0 %d\n", pages * 2 + 6); + fprintf(outfile, "0 %d\n", pages * 2 + 8); fprintf(outfile, "0000000000 65535 f \n"); - for (i=1; i <= pages * 2 + 5; i++) + for (i=1; i <= pages * 2 + 7; i++) { fprintf(outfile, "%010lu 00000 n \n", xref->obj[i]); } fprintf(outfile, "\n"); fprintf(outfile, "trailer\n"); - fprintf(outfile, " << /Size %d\n", pages * 2 + 6); + fprintf(outfile, " << /Size %d\n", pages * 2 + 8); fprintf(outfile, " /Root 1 0 R\n"); - fprintf(outfile, " /Info %d 0 R\n", pages * 2 + 5); + fprintf(outfile, " /Info %d 0 R\n", pages * 2 + 7); fprintf(outfile, " >>\n"); fprintf(outfile, "startxref\n"); fprintf(outfile, "%lu\n", xref->xref); @@ -3370,7 +4006,7 @@ static void xsane_save_pdf_create_page_trailer(FILE *outfile, struct pdf_xref *x fprintf(outfile, "Q\n"); /* Go back and write the length of the stream */ - xref->slen = ftell(outfile) - xref->slen - 1; + xref->slen = ftell(outfile) - xref->slen; /* we had a "-1" at the end but I do not understand the reason for -1, without looks better */ fseek(outfile, xref->slenp, SEEK_SET); fprintf(outfile, "%lu", xref->slen); fseek(outfile, 0L, SEEK_END); @@ -3385,7 +4021,8 @@ static void xsane_save_pdf_create_page_trailer(FILE *outfile, struct pdf_xref *x int xsane_save_pdf_page(FILE *outfile, struct pdf_xref *xref, int page, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int do_transform, int icc_object, GtkProgressBar *progress_bar, int *cancel_save) { @@ -3394,23 +4031,23 @@ int xsane_save_pdf_page(FILE *outfile, struct pdf_xref *xref, int page, xsane_save_pdf_create_page_header(outfile, xref, page, image_info, width, height, paper_left_margin, paper_bottom_margin, paperwidth, paperheight, paper_orientation, - flatdecode, + flatedecode, icc_object, progress_bar); - if (image_info->colors == 1) /* lineart, halftone, grayscale */ + if (image_info->channels == 1) /* lineart, halftone, grayscale */ { if (image_info->depth == 1) /* lineart, halftone */ { - xsane_save_ps_pdf_bw(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_bw(outfile, imagefile, image_info, FALSE, flatedecode, progress_bar, cancel_save); } else /* grayscale */ { - xsane_save_ps_pdf_gray(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_gray(outfile, imagefile, image_info, FALSE, flatedecode, hTransform, do_transform, progress_bar, cancel_save); } } else /* color RGB */ { - xsane_save_ps_pdf_color(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); + xsane_save_ps_pdf_color(outfile, imagefile, image_info, FALSE, flatedecode, hTransform, do_transform, progress_bar, cancel_save); } xsane_save_pdf_create_page_trailer(outfile, xref); @@ -3432,21 +4069,33 @@ int xsane_save_pdf_page(FILE *outfile, struct pdf_xref *xref, int page, int xsane_save_pdf(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save) { - struct pdf_xref xref; + struct pdf_xref xref; + int icc_object = 0; DBG(DBG_proc, "xsane_save_pdf\n"); *cancel_save = 0; - xsane_save_pdf_create_document_header(outfile, &xref, 1, flatdecode); + xsane_save_pdf_create_document_header(outfile, &xref, 1, flatedecode); + + xref.obj[4] = ftell(outfile); + xref.obj[5] = ftell(outfile); + + if (apply_ICM_profile && (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE)) + { + icc_object = 4; + xsane_embed_pdf_icm_profile(outfile, &xref, image_info->icm_profile, flatedecode, icc_object); + } xsane_save_pdf_page(outfile, &xref, 1, imagefile, image_info, width, height, paper_left_margin, paper_bottom_margin, paperwidth, paperheight, paper_orientation, - flatdecode, + flatedecode, + hTransform, apply_ICM_profile && ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE)) /* do_transform */, icc_object, progress_bar, cancel_save); xsane_save_pdf_create_document_trailer(outfile, &xref, 1); @@ -3465,8 +4114,8 @@ int xsane_save_pdf(FILE *outfile, FILE *imagefile, Image_info *image_info, float } /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef HAVE_LIBJPEG +#ifdef HAVE_LIBJPEG typedef struct { struct jpeg_error_mgr pub;/* "public" fields */ @@ -3494,7 +4143,110 @@ static void xsane_jpeg_error_exit(j_common_ptr cinfo) *xsane_jpeg_error_mgr_data->cancel_save = 1; } -int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save) +/* ---------------------------------------------------------- */ + +#ifdef HAVE_LIBLCMS +static void xsane_jpeg_write_icm_profile(j_compress_ptr cinfo_ptr, const JOCTET *icm_data_ptr, unsigned int icm_data_len) +{ +#define ICM_MARKER (JPEG_APP0 + 2) /* JPEG marker code for ICM */ +#define ICM_OVERHEAD_LEN 14 /* size of non-profile data in APP2 */ +#define MAX_BYTES_IN_MARKER 65533 /* maximum data len of a JPEG marker */ +#define MAX_DATA_BYTES_IN_MARKER (MAX_BYTES_IN_MARKER - ICM_OVERHEAD_LEN) + + unsigned int num_markers; /* total number of markers we'll write */ + int cur_marker = 1; /* per spec, counting starts at 1 */ + unsigned int length; /* number of bytes to write in this marker */ + + /* Calculate the number of markers we'll need, rounding up of course */ + num_markers = icm_data_len / MAX_DATA_BYTES_IN_MARKER; + if (num_markers * MAX_DATA_BYTES_IN_MARKER != icm_data_len) + { + num_markers++; + } + + while (icm_data_len > 0) + { + length = icm_data_len; /* length of profile to put in this marker */ + if (length > MAX_DATA_BYTES_IN_MARKER) + { + length = MAX_DATA_BYTES_IN_MARKER; + } + icm_data_len -= length; + + /* Write the JPEG marker header (APP2 code and marker length) */ + jpeg_write_m_header(cinfo_ptr, ICM_MARKER, (unsigned int) (length + ICM_OVERHEAD_LEN)); + + /* Write the marker identifying string "ICC_PROFILE" (null-terminated). + * We code it in this less-than-transparent way so that the code works + * even if the local character set is not ASCII. + */ + jpeg_write_m_byte(cinfo_ptr, 0x49); + jpeg_write_m_byte(cinfo_ptr, 0x43); + jpeg_write_m_byte(cinfo_ptr, 0x43); + jpeg_write_m_byte(cinfo_ptr, 0x5F); + jpeg_write_m_byte(cinfo_ptr, 0x50); + jpeg_write_m_byte(cinfo_ptr, 0x52); + jpeg_write_m_byte(cinfo_ptr, 0x4F); + jpeg_write_m_byte(cinfo_ptr, 0x46); + jpeg_write_m_byte(cinfo_ptr, 0x49); + jpeg_write_m_byte(cinfo_ptr, 0x4C); + jpeg_write_m_byte(cinfo_ptr, 0x45); + jpeg_write_m_byte(cinfo_ptr, 0x0); + + /* Add the sequencing info */ + jpeg_write_m_byte(cinfo_ptr, cur_marker); + jpeg_write_m_byte(cinfo_ptr, (int) num_markers); + + /* Add the profile data */ + while (length--) + { + jpeg_write_m_byte(cinfo_ptr, *icm_data_ptr); + icm_data_ptr++; + } + cur_marker++; + } +} + +/* ---------------------------------------------------------- */ + +static void xsane_jpeg_embed_scanner_icm_profile(j_compress_ptr cinfo_ptr, const char *icm_filename) +{ + FILE *icm_profile; + size_t size, embed_len; + LPBYTE embed_buffer; + + DBG(DBG_proc, "xsane_jpeg_embed_scanner_icm_profile(%s)\n", icm_filename); + + icm_profile = fopen(icm_filename, "rb"); + if (icm_profile == NULL) + { + return; + } + + fseek(icm_profile, 0, SEEK_END); + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + + embed_buffer = (LPBYTE) malloc(size + 1); + if (embed_buffer) + { + embed_len = fread(embed_buffer, 1, size, icm_profile); + fclose(icm_profile); + embed_buffer[embed_len] = 0; + + xsane_jpeg_write_icm_profile(cinfo_ptr, embed_buffer, embed_len); + free(embed_buffer); + + DBG(DBG_info, "ICM profile %s has been embedded to jpeg file\n", icm_filename); + } +} +#endif + +/* ---------------------------------------------------------- */ + +int xsane_save_jpeg(FILE *outfile, int quality, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, + GtkProgressBar *progress_bar, int *cancel_save) { unsigned char *data; char buf[TEXTBUFSIZE]; @@ -3504,12 +4256,15 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int struct jpeg_compress_struct cinfo; xsane_jpeg_error_mgr jerr; JSAMPROW row_pointer[1]; +#ifdef HAVE_LIBLCMS + unsigned char *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_jpeg\n"); *cancel_save = 0; - if (image_info->colors == 3) + if (image_info->channels == 3) { components = 3; } @@ -3528,6 +4283,24 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int return -1; /* error */ } +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile && (cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * components * bytespp); + + if (!data_raw) + { + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = xsane_jpeg_error_exit; jerr.cancel_save = cancel_save; @@ -3537,7 +4310,7 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int cinfo.image_width = image_info->image_width; cinfo.image_height = image_info->image_height; cinfo.input_components = components; - if (image_info->colors == 3) + if (image_info->channels == 3) { cinfo.in_color_space = JCS_RGB; } @@ -3560,6 +4333,20 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int jpeg_start_compress(&cinfo, TRUE); +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile) + { + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { + xsane_jpeg_embed_scanner_icm_profile(&cinfo, image_info->icm_profile); + } + else if (cms_function == XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS) + { + xsane_jpeg_embed_scanner_icm_profile(&cinfo, preferences.working_color_space_icm_profile); + } + } +#endif + for (y = 0; y < image_info->image_height; y++) { gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); @@ -3596,7 +4383,18 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int else if (image_info->depth > 8) /* jpeg does not support 16 bits/sample, so we reduce it at first */ { guint16 *data16 = (guint16 *) data; - fread(data, components * 2, image_info->image_width, imagefile); +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile && (cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + fread(data_raw, components * 2, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, components * 2, image_info->image_width, imagefile); + } + for (x = 0; x < image_info->image_width * components; x++) { data[x] = data16[x] / 256; @@ -3605,7 +4403,17 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int } else /* 8 bits/sample */ { - fread(data, components, image_info->image_width, imagefile); +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile && (cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + fread(data_raw, components, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, components, image_info->image_width, imagefile); + } } row_pointer[0] = data; @@ -3619,6 +4427,13 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int } jpeg_finish_compress(&cinfo); + +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif free(data); return (*cancel_save); @@ -3628,12 +4443,61 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int /* ---------------------------------------------------------------------------------------------------------------------- */ #ifdef HAVE_LIBTIFF -/* pages = 0 => single page tiff, page = 0 */ -/* pages > 0 => page = [1 .. pages] */ -int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Image_info *image_info, int quality, - GtkProgressBar *progress_bar, int *cancel_save) +#ifdef HAVE_LIBLCMS +static void xsane_tiff_embed_scanner_icm_profile(TIFF *tiffile, const char *icm_filename) { - char *data; + FILE *icm_profile; + size_t size; + char *icm_profile_buffer; + + DBG(DBG_proc, "xsane_tiff_embed_scanner_icm_profile(%s)\n", icm_filename); + if((icm_profile = fopen(icm_filename, "rb"))) + { + fseek(icm_profile, 0, SEEK_END); + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + + icm_profile_buffer = (char *) malloc(size + 1); + + if (icm_profile_buffer) + { + if (fread(icm_profile_buffer, 1, size, icm_profile) == size) + { + icm_profile_buffer[size] = 0; + + TIFFSetField(tiffile, TIFFTAG_ICCPROFILE, size, icm_profile_buffer); + } + else + { + DBG(DBG_error, "Can not read ICM profile data\n"); + } + + free(icm_profile_buffer); + } + else + { + DBG(DBG_error, "Can not get enogh memory for ICM profile\n"); + } + + + fclose(icm_profile); + } + else + { + DBG(DBG_error, "Can not embed ICM profile\n"); + } +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* pages = 0 => single page tiff, page = 0 */ +/* pages > 0 => page = [1 .. pages] */ +int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, int quality, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, + GtkProgressBar *progress_bar, int *cancel_save) +{ + char *data; char buf[TEXTBUFSIZE]; int y, w; int components; @@ -3641,6 +4505,9 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im int bytes; struct tm *ptm; time_t now; +#ifdef HAVE_LIBLCMS + char *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_tiff_page(%d/%d\n", page, pages); @@ -3660,7 +4527,7 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im } - if (image_info->colors == 3) + if (image_info->channels == 3) { components = 3; } @@ -3686,6 +4553,25 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im xsane_back_gtk_error(buf, TRUE); return -1; /* error */ } + +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = (char *) malloc(image_info->image_width * components * bytes); + + if (!data_raw) + { + _TIFFfree(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + TIFFSetField(tiffile, TIFFTAG_IMAGEWIDTH, image_info->image_width); TIFFSetField(tiffile, TIFFTAG_IMAGELENGTH, image_info->image_height); @@ -3717,7 +4603,7 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im TIFFSetField(tiffile, TIFFTAG_JPEGQUALITY, quality); } - if (image_info->colors == 3) + if (image_info->channels == 3) { if (compression == COMPRESSION_JPEG) { @@ -3728,6 +4614,20 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im { TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); } + +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile) + { + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { + xsane_tiff_embed_scanner_icm_profile(tiffile, image_info->icm_profile); + } + else if (cms_function == XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS) + { + xsane_tiff_embed_scanner_icm_profile(tiffile, preferences.working_color_space_icm_profile); + } + } +#endif } else { @@ -3760,7 +4660,17 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im gtk_main_iteration(); } - fread(data, 1, w, imagefile); +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + fread(data_raw, 1, w, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 1, w, imagefile); + } if (TIFFWriteScanline(tiffile, data, y, 0) != 1) { @@ -3784,6 +4694,13 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im TIFFWriteDirectory(tiffile); } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + _TIFFfree(data); return (*cancel_save); } @@ -3791,9 +4708,60 @@ int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Im /* ---------------------------------------------------------------------------------------------------------------------- */ +#if defined(PNG_iCCP_SUPPORTED) +#ifdef HAVE_LIBLCMS +static void xsane_png_embed_scanner_icm_profile(png_structp png_ptr, png_infop png_info_ptr, const char *icm_filename) +{ + FILE *icm_profile; + gchar *profile_buffer; + size_t size; + + DBG(DBG_proc, "xsane_png_embed_scanner_icm_profile(%s)\n", icm_filename); + icm_profile = fopen(icm_filename, "rb"); + + if (icm_profile) + { + fseek(icm_profile, 0, SEEK_END); + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + + profile_buffer = malloc(size); + + if (profile_buffer) + { + if (fread(profile_buffer, 1, size, icm_profile) == size) + { + png_set_iCCP(png_ptr, png_info_ptr, "ICC profile", 0, profile_buffer, size); + } + else + { + DBG(DBG_error, "can not read ICC profile data\n"); + } + + free(profile_buffer); + } + else + { + DBG(DBG_error, "can not allocate profile_buffer\n"); + } + + fclose(icm_profile); + } + else + { + DBG(DBG_error, "can not open ICM-profile\n"); + } +} +#endif +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ -int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save) +int xsane_save_png(FILE *outfile, int compression, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, + GtkProgressBar *progress_bar, int *cancel_save) { png_structp png_ptr; png_infop png_info_ptr; @@ -3803,6 +4771,9 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c char buf[TEXTBUFSIZE]; int colortype, components, byte_width; int y; +#ifdef HAVE_LIBLCMS + unsigned char *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_png\n"); @@ -3834,12 +4805,12 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c byte_width = image_info->image_width; - if (image_info->colors == 4) /* RGBA */ + if (image_info->channels == 4) /* RGBA */ { components = 4; colortype = PNG_COLOR_TYPE_RGB_ALPHA; } - else if (image_info->colors == 3) /* RGB */ + else if (image_info->channels == 3) /* RGB */ { components = 3; colortype = PNG_COLOR_TYPE_RGB; @@ -3855,13 +4826,13 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c png_set_IHDR(png_ptr, png_info_ptr, image_info->image_width, image_info->image_height, image_info->depth, colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - if (image_info->colors >=3) + if (image_info->channels >=3) { sig_bit.red = image_info->depth; sig_bit.green = image_info->depth; sig_bit.blue = image_info->depth; - if (image_info->colors == 4) + if (image_info->channels == 4) { sig_bit.alpha = image_info->depth; } @@ -3884,6 +4855,23 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c image_info->resolution_x * 100.0 / 2.54, image_info->resolution_y * 100.0 / 2.54, PNG_RESOLUTION_METER); #endif + +#if defined(PNG_iCCP_SUPPORTED) +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile) + { + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { + xsane_png_embed_scanner_icm_profile(png_ptr, png_info_ptr, image_info->icm_profile); + } + else if (cms_function == XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS) + { + xsane_png_embed_scanner_icm_profile(png_ptr, png_info_ptr, preferences.working_color_space_icm_profile); + } + } +#endif +#endif + png_write_info(png_ptr, png_info_ptr); png_set_shift(png_ptr, &sig_bit); @@ -3897,6 +4885,25 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c return -1; /* error */ } +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * components); + + if (!data_raw) + { + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + png_destroy_write_struct(&png_ptr, (png_infopp) 0); + return -1; /* error */ + } + } +#endif + for (y = 0; y < image_info->image_height; y++) { gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); @@ -3905,7 +4912,17 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c gtk_main_iteration(); } - fread(data, components, byte_width, imagefile); +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + fread(data_raw, components, byte_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, components, byte_width, imagefile); + } row_ptr = data; png_write_rows(png_ptr, &row_ptr, 1); /* errors are caught by test sor setjmp(...) */ @@ -3916,6 +4933,12 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif free(data); png_write_end(png_ptr, png_info_ptr); png_destroy_write_struct(&png_ptr, (png_infopp) 0); @@ -3929,7 +4952,9 @@ int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int c #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ -int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save) +int xsane_save_png_16(FILE *outfile, int compression, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, + GtkProgressBar *progress_bar, int *cancel_save) { png_structp png_ptr; png_infop png_info_ptr; @@ -3938,8 +4963,10 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in unsigned char *data; char buf[TEXTBUFSIZE]; int colortype, components; - int x,y; - guint16 val; + int y; +#ifdef HAVE_LIBLCMS + unsigned char *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_png16\n"); @@ -3969,12 +4996,12 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in return -1; /* error */ } - if (image_info->colors == 4) /* RGBA */ + if (image_info->channels == 4) /* RGBA */ { components = 4; colortype = PNG_COLOR_TYPE_RGB_ALPHA; } - else if (image_info->colors == 3) /* RGB */ + else if (image_info->channels == 3) /* RGB */ { components = 3; colortype = PNG_COLOR_TYPE_RGB; @@ -3997,6 +5024,29 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in sig_bit.gray = image_info->depth; png_set_sBIT(png_ptr, png_info_ptr, &sig_bit); + +#if defined(PNG_pHYs_SUPPORTED) + png_set_pHYs(png_ptr, png_info_ptr, + image_info->resolution_x * 100.0 / 2.54, + image_info->resolution_y * 100.0 / 2.54, PNG_RESOLUTION_METER); +#endif + +#if defined(PNG_iCCP_SUPPORTED) +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile) + { + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { + xsane_png_embed_scanner_icm_profile(png_ptr, png_info_ptr, image_info->icm_profile); + } + else if (cms_function == XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS) + { + xsane_png_embed_scanner_icm_profile(png_ptr, png_info_ptr, preferences.working_color_space_icm_profile); + } + } +#endif +#endif + png_write_info(png_ptr, png_info_ptr); png_set_shift(png_ptr, &sig_bit); png_set_packing(png_ptr); @@ -4011,6 +5061,25 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in return -1; /* error */ } +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * components * 2); + + if (!data_raw) + { + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + png_destroy_write_struct(&png_ptr, (png_infopp) 0); + return -1; /* error */ + } + } +#endif + for (y = 0; y < image_info->image_height; y++) { gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); @@ -4019,13 +5088,34 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in gtk_main_iteration(); } - for (x = 0; x < image_info->image_width * components; x++) /* this must be changed in dependance of endianess */ +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && (hTransform != NULL)) { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - data[x*2+0] = val / 256; /* write data in network order (MSB first) */ - data[x*2+1] = val & 255; + fread(data_raw, components * 2, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, components * 2, image_info->image_width, imagefile); } +#if __BYTE_ORDER == __LITTLE_ENDIAN + /* we have to write data in network order (MSB first), so when we run on a low endian machine then we have to swap bytes */ + { + int x; + + for (x = 0; x < image_info->image_width * components; x++) + { + unsigned char help; + + help = data[x*2+1]; + data[x*2+0] = data[x*2+1]; + data[x*2+1] = help; + } + } +#endif /* LITTLE_ENDIAN */ + row_ptr = data; png_write_rows(png_ptr, &row_ptr, 1); if (*cancel_save) @@ -4034,6 +5124,12 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif free(data); png_write_end(png_ptr, png_info_ptr); png_destroy_write_struct(&png_ptr, (png_infopp) 0); @@ -4045,22 +5141,69 @@ int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, in /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_pnm_16_ascii_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_pnm_16_ascii_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) { int x,y; - guint16 val; + guint16 *data; int count = 0; +#ifdef HAVE_LIBLCMS + guint16 *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_pnm_16_ascii_gray\n"); *cancel_save = 0; + data = malloc(image_info->image_width * 2); + + if (!data) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if ((apply_ICM_profile) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * 2); + + if (!data_raw) + { + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + for (y = 0; y < image_info->image_height; y++) { +#ifdef HAVE_LIBLCMS + if ((apply_ICM_profile) && (hTransform != NULL)) + { + fread(data_raw, 2, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 2, image_info->image_width, imagefile); + } + for (x = 0; x < image_info->image_width; x++) { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fprintf(outfile, "%d ", val); + fprintf(outfile, "%d ", data[x]); if (++count >= 10) { @@ -4068,6 +5211,7 @@ static int xsane_save_pnm_16_ascii_gray(FILE *outfile, FILE *imagefile, Image_in count = 0; } } + fprintf(outfile, "\n"); if (ferror(outfile)) @@ -4094,33 +5238,85 @@ static int xsane_save_pnm_16_ascii_gray(FILE *outfile, FILE *imagefile, Image_in } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + return (*cancel_save); } /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_pnm_16_ascii_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_pnm_16_ascii_color(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) { int x,y; - guint16 val; + guint16 *data; int count = 0; +#ifdef HAVE_LIBLCMS + guint16 *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_pnm_16_ascii_color\n"); *cancel_save = 0; - for (y = 0; y < image_info->image_height; y++) + + data = malloc(image_info->image_width * 6); + + if (!data) { - for (x = 0; x < image_info->image_width; x++) + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if ((apply_ICM_profile) && (hTransform != NULL)) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * 6); + + if (!data_raw) { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fprintf(outfile, "%d ", val); + char buf[TEXTBUFSIZE]; - fread(&val, 2, 1, imagefile); - fprintf(outfile, "%d ", val); + free(data); - fread(&val, 2, 1, imagefile); - fprintf(outfile, "%d ", val); + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + + for (y = 0; y < image_info->image_height; y++) + { +#ifdef HAVE_LIBLCMS + if ((apply_ICM_profile) && (hTransform != NULL)) + { + fread(data_raw, 6, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 6, image_info->image_width, imagefile); + } + + for (x = 0; x < image_info->image_width; x++) + { + fprintf(outfile, "%d ", data[3*x+0]); + fprintf(outfile, "%d ", data[3*x+1]); + fprintf(outfile, "%d ", data[3*x+2]); if (++count >= 3) { @@ -4155,27 +5351,288 @@ static int xsane_save_pnm_16_ascii_color(FILE *outfile, FILE *imagefile, Image_i } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + return (*cancel_save); } /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_pnm_16_binary_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_pnm_16_binary_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) { int x,y; - guint16 val; + guint16 *data; +#ifdef HAVE_LIBLCMS + guint16 *data_raw = NULL; +#endif DBG(DBG_proc, "xsane_save_pnm_16_binary_gray\n"); *cancel_save = 0; + data = malloc(image_info->image_width * 2); + + if (!data) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * 2); + + if (!data_raw) + { + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + + for (y = 0; y < image_info->image_height; y++) + { +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + fread(data_raw, 2, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 2, image_info->image_width, imagefile); + } + + for (x = 0; x < image_info->image_width; x++) + { + fputc(data[3*x+0] / 256, outfile); + fputc(data[3*x+0] & 255, outfile); + } + + gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + + if (ferror(outfile)) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); + DBG(DBG_error, "%s\n", buf); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + *cancel_save = 1; + break; + } + + if (*cancel_save) + { + break; + } + } + +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + + return (*cancel_save); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_save_pnm_16_binary_color(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) +{ + int x,y; + guint16 *data; +#ifdef HAVE_LIBLCMS + guint16 *data_raw = NULL; +#endif + + DBG(DBG_proc, "xsane_save_pnm_16_binary_color\n"); + + *cancel_save = 0; + + data = malloc(image_info->image_width * 6); + + if (!data) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * 6); + + if (!data_raw) + { + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + + for (y = 0; y < image_info->image_height; y++) + { +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + fread(data_raw, 6, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 6, image_info->image_width, imagefile); + } + + for (x = 0; x < image_info->image_width; x++) + { + fputc(data[3*x+0] / 256, outfile); + fputc(data[3*x+0] & 255, outfile); + fputc(data[3*x+1] / 256, outfile); + fputc(data[3*x+1] & 255, outfile); + fputc(data[3*x+2] / 256, outfile); + fputc(data[3*x+2] & 255, outfile); + } + + gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + + + if (ferror(outfile)) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); + DBG(DBG_error, "%s\n", buf); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + *cancel_save = 1; + break; + } + + if (*cancel_save) + { + break; + } + } + +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + + return (*cancel_save); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_save_pnm_8_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) +{ + int x,y; + guint8 *data; +#ifdef HAVE_LIBLCMS + guint8 *data_raw = NULL; +#endif + + DBG(DBG_proc, "xsane_save_pnm_8_gray\n"); + + *cancel_save = 0; + + data = malloc(image_info->image_width); + + if (!data) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width); + + if (!data_raw) + { + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + for (y = 0; y < image_info->image_height; y++) { +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + fread(data_raw, 1, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 1, image_info->image_width, imagefile); + } + for (x = 0; x < image_info->image_width; x++) { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ + fputc(data[x], outfile); } gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); @@ -4184,6 +5641,7 @@ static int xsane_save_pnm_16_binary_gray(FILE *outfile, FILE *imagefile, Image_i gtk_main_iteration(); } + if (ferror(outfile)) { char buf[TEXTBUFSIZE]; @@ -4201,38 +5659,82 @@ static int xsane_save_pnm_16_binary_gray(FILE *outfile, FILE *imagefile, Image_i } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + return (*cancel_save); } - /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_save_pnm_16_binary_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) +static int xsane_save_pnm_8_color(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) { int x,y; - guint16 val; + guint8 *data; +#ifdef HAVE_LIBLCMS + guint8 *data_raw = NULL; +#endif - DBG(DBG_proc, "xsane_save_pnm_16_binary_color\n"); + DBG(DBG_proc, "xsane_save_pnm_8_color\n"); *cancel_save = 0; - for (y = 0; y < image_info->image_height; y++) + data = malloc(image_info->image_width * 3); + + if (!data) { - for (x = 0; x < image_info->image_width; x++) + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info->image_width * 3); + + if (!data_raw) { - /* red */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif - /* green */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ + for (y = 0; y < image_info->image_height; y++) + { +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + fread(data_raw, 3, image_info->image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info->image_width); + } + else +#endif + { + fread(data, 3, image_info->image_width, imagefile); + } - /* blue */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ + for (x = 0; x < image_info->image_width; x++) + { + fputc(data[3*x+0], outfile); + fputc(data[3*x+1], outfile); + fputc(data[3*x+2], outfile); } gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); @@ -4259,12 +5761,46 @@ static int xsane_save_pnm_16_binary_color(FILE *outfile, FILE *imagefile, Image_ } } +#ifdef HAVE_LIBLCMS + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + + return (*cancel_save); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_save_pnm_8(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) +{ + DBG(DBG_proc, "xsane_save_pnm_8\n"); + + *cancel_save = 0; + + xsane_write_pnm_header(outfile, image_info, preferences.save_pnm16_as_ascii); + + if (image_info->channels > 1) + { + xsane_save_pnm_8_color(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); + } + else + { + xsane_save_pnm_8_gray(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); + } + return (*cancel_save); } /* ---------------------------------------------------------------------------------------------------------------------- */ -int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) +int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, + cmsHTRANSFORM hTransform, int apply_ICM_profile, + GtkProgressBar *progress_bar, int *cancel_save) { DBG(DBG_proc, "xsane_save_pnm_16\n"); @@ -4272,33 +5808,32 @@ int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, Gt xsane_write_pnm_header(outfile, image_info, preferences.save_pnm16_as_ascii); - if (image_info->colors > 1) + if (image_info->channels > 1) { if (preferences.save_pnm16_as_ascii) { - xsane_save_pnm_16_ascii_color(outfile, imagefile, image_info, progress_bar, cancel_save); + xsane_save_pnm_16_ascii_color(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); } else { - xsane_save_pnm_16_binary_color(outfile, imagefile, image_info, progress_bar, cancel_save); + xsane_save_pnm_16_binary_color(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); } } else { if (preferences.save_pnm16_as_ascii) { - xsane_save_pnm_16_ascii_gray(outfile, imagefile, image_info, progress_bar, cancel_save); + xsane_save_pnm_16_ascii_gray(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); } else { - xsane_save_pnm_16_binary_gray(outfile, imagefile, image_info, progress_bar, cancel_save); + xsane_save_pnm_16_binary_gray(outfile, imagefile, image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); } } return (*cancel_save); } -/* ---------------------------------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------------------------------- */ /* 0=ok, <0=error, 1=canceled */ @@ -4524,14 +6059,17 @@ int xsane_save_image_as_text(char *output_filename, char *input_filename, GtkPro /* ---------------------------------------------------------------------------------------------------------------------- */ /* save image in destination file format. lineart images that are stored as grayscale image are reduced to lineart! */ -int xsane_save_image_as(char *output_filename, char *input_filename, int output_format, GtkProgressBar *progress_bar, int *cancel_save) +int xsane_save_image_as(char *output_filename, char *input_filename, int output_format, + int apply_ICM_profile, int cms_function, int cms_intent, int cms_bpc, + GtkProgressBar *progress_bar, int *cancel_save) { FILE *outfile; FILE *infile; char buf[TEXTBUFSIZE]; Image_info image_info; - char lineart_filename[PATH_MAX]; + char temporary_filename[PATH_MAX]; int remove_input_file = FALSE; + cmsHTRANSFORM hTransform = NULL; DBG(DBG_proc, "xsane_save_image_as(output_file=%s, input_file=%s, type=%d)\n", output_filename, input_filename, output_format); @@ -4553,7 +6091,7 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ { DBG(DBG_info, "original image is a lineart => reduce to lineart\n"); fclose(infile); - xsane_back_gtk_make_path(sizeof(lineart_filename), lineart_filename, 0, 0, "xsane-conversion-", xsane.dev_name, ".pbm", XSANE_PATH_TMP); + xsane_back_gtk_make_path(sizeof(temporary_filename), temporary_filename, 0, 0, "xsane-conversion-", xsane.dev_name, ".pbm", XSANE_PATH_TMP); snprintf(buf, sizeof(buf), "%s: %s", PROGRESS_PACKING_DATA, output_filename); @@ -4565,9 +6103,9 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ gtk_main_iteration(); } - xsane_save_image_as_lineart(lineart_filename, input_filename, progress_bar, cancel_save); + xsane_save_image_as_lineart(temporary_filename, input_filename, progress_bar, cancel_save); - input_filename = lineart_filename; + input_filename = temporary_filename; remove_input_file = TRUE; infile = fopen(input_filename, "rb"); /* read binary (b for win32) */ @@ -4583,8 +6121,23 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ xsane_read_pnm_header(infile, &image_info); } - snprintf(buf, sizeof(buf), "%s: %s", PROGRESS_SAVING_DATA, output_filename); +#ifdef HAVE_LIBLCMS + if (apply_ICM_profile && ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) || ((output_format == XSANE_PNM) || (output_format == XSANE_PNM16)))) + { + hTransform = xsane_create_cms_transform(&image_info, cms_function, cms_intent, cms_bpc); + } +#endif + + if (1) + { + snprintf(buf, sizeof(buf), "%s: %s", PROGRESS_SAVING_DATA, output_filename); + } + else + { + snprintf(buf, sizeof(buf), "%s", PROGRESS_SAVING_DATA); + } + gtk_progress_bar_set_ellipsize(GTK_PROGRESS_BAR(progress_bar), PANGO_ELLIPSIZE_START); /* this is new API, can be removed for old GTK versions */ gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), buf); gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); @@ -4614,7 +6167,7 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ return -1; /* error */ } - xsane_save_tiff_page(tiffile, 0, 0, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save); + xsane_save_tiff_page(tiffile, 0, 0, preferences.jpeg_quality, infile, &image_info, hTransform, apply_ICM_profile, cms_function, progress_bar, cancel_save); TIFFClose(tiffile); } @@ -4641,13 +6194,13 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ } else { - xsane_copy_file(outfile, infile, progress_bar, cancel_save); + xsane_save_pnm_8(outfile, infile, &image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); } break; #ifdef HAVE_LIBJPEG case XSANE_JPEG: - xsane_save_jpeg(outfile, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save); + xsane_save_jpeg(outfile, preferences.jpeg_quality, infile, &image_info, hTransform, apply_ICM_profile, cms_function, progress_bar, cancel_save); break; /* switch format == XSANE_JPEG */ #endif @@ -4656,18 +6209,18 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ case XSANE_PNG: if (image_info.depth <= 8) { - xsane_save_png(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save); + xsane_save_png(outfile, preferences.png_compression, infile, &image_info, hTransform, apply_ICM_profile, cms_function, progress_bar, cancel_save); } else { - xsane_save_png_16(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save); + xsane_save_png_16(outfile, preferences.png_compression, infile, &image_info, hTransform, apply_ICM_profile, cms_function, progress_bar, cancel_save); } break; /* switch format == XSANE_PNG */ #endif #endif case XSANE_PNM16: - xsane_save_pnm_16(outfile, infile, &image_info, progress_bar, cancel_save); + xsane_save_pnm_16(outfile, infile, &image_info, hTransform, apply_ICM_profile, progress_bar, cancel_save); break; /* switch fomat == XSANE_PNM16 */ case XSANE_PS: /* save postscript, use original size */ @@ -4685,7 +6238,11 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ (int) imagewidth, /* paper_width */ (int) imageheight, /* paper_height */ 0 /* portrait top left */, - preferences.save_ps_flatdecoded, + preferences.save_ps_flatedecoded, + hTransform, apply_ICM_profile, + (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE), image_info.icm_profile, + 0, NULL, 0, /* no CRD */ + 0 /* intent */, progress_bar, cancel_save); } @@ -4706,7 +6263,8 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ (int) imagewidth, /* paper_width */ (int) imageheight, /* paper_height */ 0 /* portrait top left */, - preferences.save_pdf_flatdecoded, + preferences.save_pdf_flatedecoded, + hTransform, apply_ICM_profile, cms_function, progress_bar, cancel_save); } @@ -4771,6 +6329,13 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ fclose (infile); +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + cmsDeleteTransform(hTransform); + } +#endif + if (remove_input_file) { remove(input_filename); /* remove lineart pbm file */ @@ -5097,9 +6662,10 @@ void null_print_func(gchar *msg) { } +/* ---------------------------------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------------------------------- */ -int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save) +int xsane_transfer_to_gimp(char *input_filename, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save) { int remaining; size_t tile_size; @@ -5114,6 +6680,13 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i int i, x, y; Image_info image_info; FILE *imagefile; + int bytes; + unsigned char *data = NULL; + guint16 *data16 = NULL; +#ifdef HAVE_LIBLCMS + unsigned char *data_raw = NULL; + cmsHTRANSFORM hTransform = NULL; +#endif DBG(DBG_info, "xsane_transer_to_gimp\n"); @@ -5131,18 +6704,64 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i xsane_read_pnm_header(imagefile, &image_info); + if (image_info.depth == 16) + { + bytes = 2; + } + else + { + bytes = 1; + } + + data = malloc(image_info.image_width * 3 * bytes); + data16 = (guint16 *) data; + + if (!data) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && apply_ICM_profile && (image_info.depth != 1)) + { + hTransform = xsane_create_cms_transform(&image_info, cms_function, preferences.cms_intent, preferences.cms_bpc); + } + + if (hTransform != NULL) + { + DBG(DBG_info, "Doing CMS color conversion\n"); + + data_raw = malloc(image_info.image_width * 3 * bytes); + + if (!data_raw) + { + char buf[TEXTBUFSIZE]; + + free(data); + + snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); + xsane_back_gtk_error(buf, TRUE); + return -1; /* error */ + } + } +#endif + x = 0; y = 0; tile_offset = 0; tile_size = image_info.image_width * gimp_tile_height(); - if (image_info.colors == 3) /* RGB */ + if (image_info.channels == 3) /* RGB */ { tile_size *= 3; /* 24 bits/pixel RGB */ image_type = GIMP_RGB; drawable_type = GIMP_RGB_IMAGE; } - else if (image_info.colors == 4) /* RGBA */ + else if (image_info.channels == 4) /* RGBA */ { tile_size *= 4; /* 32 bits/pixel RGBA */ image_type = GIMP_RGB; @@ -5151,6 +6770,55 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i /* colors == 0/1 is predefined */ image_ID = gimp_image_new(image_info.image_width, image_info.image_height, image_type); + +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_CONVERT_TO_SRGB) && apply_ICM_profile) /* embed profile */ + { + GimpParasite *parasite; + FILE *icm_profile; + guchar *profile_buffer; + gint32 size; + + DBG(DBG_error, "Opening ICM profile %s\n", image_info.icm_profile); + icm_profile = fopen(image_info.icm_profile, "rb"); + + if (icm_profile) + { + fseek(icm_profile, 0, SEEK_END); + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + + profile_buffer = malloc(size); + + if (profile_buffer) + { + if (fread(profile_buffer, 1, size, icm_profile) == size) + { + parasite = gimp_parasite_new("icc-profile", 0, size, profile_buffer); + gimp_image_parasite_attach(image_ID, parasite); + gimp_parasite_free(parasite); + } + else + { + DBG(DBG_error, "can not read profile data\n"); + } + + free(profile_buffer); + } + else + { + DBG(DBG_error, "can not allocate profile_buffer\n"); + } + + fclose(icm_profile); + } + else + { + DBG(DBG_error, "can not open ICM-profile\n"); + } + } +#endif + /* the following is supported since gimp-1.1.? */ #ifdef GIMP_HAVE_RESOLUTION_INFO @@ -5168,7 +6836,7 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i tile = g_new(guchar, tile_size); - if (image_info.colors == 1) /* gray */ + if (image_info.channels == 1) /* gray */ { switch (image_info.depth) { @@ -5217,30 +6885,79 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i break; /* leave switch depth 1 */ case 8: /* 8 bit gray */ - case 16: /* 16 bit gray already has been reduced to 8 bit */ - for (i = 0; i < image_info.image_width * image_info.image_height; ++i) + for (y = 1; y <= image_info.image_height; y++) { - tile[tile_offset++] = fgetc(imagefile); - x++; + int tile_height = gimp_tile_height(); - if (x >= image_info.image_width) +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && apply_ICM_profile && (hTransform != NULL)) + { + fread(data_raw, 1, image_info.image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info.image_width); + } + else +#endif { - int tile_height = gimp_tile_height(); + fread(data, 1, image_info.image_width, imagefile); + } - x = 0; - y++; + for (x = 0; x < image_info.image_width; x++) + { + tile[tile_offset++] = data[x]; + } - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } + if (y % tile_height == 0) + { + gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); + tile_offset = 0; + } - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } + gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + + if (*cancel_save) + { + break; + } + } + break; /* case 8 */ + + + case 16: /* 16 bit gray has to be reduced to 8 bit */ + for (y = 1; y <= image_info.image_height; y++) + { + int tile_height = gimp_tile_height(); + +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && apply_ICM_profile && (hTransform != NULL)) + { + fread(data_raw, 2, image_info.image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info.image_width); + } + else +#endif + { + fread(data, 2, image_info.image_width, imagefile); + } + + for (x = 0; x < image_info.image_width; x++) + { + tile[tile_offset++] = data16[x]/256; + } + + if (y % tile_height == 0) + { + gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); + tile_offset = 0; + } + + gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ + while (gtk_events_pending()) + { + gtk_main_iteration(); } if (*cancel_save) @@ -5248,44 +6965,51 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i break; } } - break; /* leave switch depth */ + break; /* case 16 */ default: /* bad depth */ break; /* default */ } } - else if (image_info.colors == 3) /* RGB */ + else if (image_info.channels == 3) /* RGB */ { switch (image_info.depth) { case 8: /* 8 bit RGB */ - case 16: /* 16 bit RGB already has been reduced to 8 bit */ - for (i = 0; i < image_info.image_width * image_info.image_height*3; ++i) + + for (y = 1; y <= image_info.image_height; y++) { - tile[tile_offset++] = fgetc(imagefile); - if (tile_offset % 3 == 0) - { - x++; + int tile_height = gimp_tile_height(); - if (x >= image_info.image_width) - { - int tile_height = gimp_tile_height(); +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && apply_ICM_profile && (hTransform != NULL)) + { + fread(data_raw, 3, image_info.image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info.image_width); + } + else +#endif + { + fread(data, 3, image_info.image_width, imagefile); + } - x = 0; - y++; + for (x = 0; x < image_info.image_width; x++) + { + tile[tile_offset++] = data[3*x+0]; + tile[tile_offset++] = data[3*x+1]; + tile[tile_offset++] = data[3*x+2]; + } - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } + if (y % tile_height == 0) + { + gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); + tile_offset = 0; + } - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } + gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ + while (gtk_events_pending()) + { + gtk_main_iteration(); } if (*cancel_save) @@ -5295,12 +7019,57 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i } break; /* case 8 */ + + case 16: /* 16 bit RGB has to be reduced to 8 bit */ + + for (y = 1; y <= image_info.image_height; y++) + { + int tile_height = gimp_tile_height(); + +#ifdef HAVE_LIBLCMS + if ((cms_function != XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) && apply_ICM_profile && (hTransform != NULL)) + { + fread(data_raw, 6, image_info.image_width, imagefile); + cmsDoTransform(hTransform, data_raw, data, image_info.image_width); + } + else +#endif + { + fread(data, 6, image_info.image_width, imagefile); + } + + for (x = 0; x < image_info.image_width; x++) + { + tile[tile_offset++] = data16[3*x+0]/256; + tile[tile_offset++] = data16[3*x+1]/256; + tile[tile_offset++] = data16[3*x+2]/256; + } + + if (y % tile_height == 0) + { + gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); + tile_offset = 0; + } + + gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + + if (*cancel_save) + { + break; + } + } + break; /* case 16 */ + default: /* bad depth */ break; /* default */ } } #ifdef SUPPORT_RGBA - else if (image_info.colors == 4) /* RGBA */ + else if (image_info.channels == 4) /* RGBA */ { int i; @@ -5370,6 +7139,19 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i fclose(imagefile); +#ifdef HAVE_LIBLCMS + if (hTransform != NULL) + { + cmsDeleteTransform(hTransform); + } + + if (data_raw) + { + free(data_raw); + } +#endif + free(data); + return 0; } #endif /* HAVE_ANY_GIMP */ @@ -5414,7 +7196,7 @@ static void write_3chars_as_base64(unsigned char c1, unsigned char c2, unsigned /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_string_base64(int fd_socket, unsigned char *string, int len) +void write_string_base64(int fd_socket, char *string, int len) { int i; int pad; @@ -5422,9 +7204,9 @@ void write_string_base64(int fd_socket, unsigned char *string, int len) for (i = 0; i < len; i+=3) { - c1 = string[i]; - c2 = string[i+1]; - c3 = string[i+2]; + c1 = (unsigned char) string[i]; + c2 = (unsigned char) string[i+1]; + c3 = (unsigned char) string[i+2]; pad = i - len + 3; @@ -5477,7 +7259,7 @@ void write_base64(int fd_socket, FILE *infile) pos += 4; if (pos > 71) { - write(fd_socket, "\n", 1); + write(fd_socket, "\r\n", 2); pos = 0; } @@ -5492,7 +7274,7 @@ void write_base64(int fd_socket, FILE *infile) if (pos) { - write(fd_socket, "\n", 1); + write(fd_socket, "\r\n", 2); } xsane.email_progress_val = 1.0; @@ -5505,33 +7287,33 @@ void write_email_header(int fd_socket, char *from, char *reply_to, char *to, cha { char buf[1024]; - snprintf(buf, sizeof(buf), "From: %s\n", from); + snprintf(buf, sizeof(buf), "From: %s\r\n", from); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Reply-To: %s\n", reply_to); + snprintf(buf, sizeof(buf), "Reply-To: %s\r\n", reply_to); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "To: %s\n", to); + snprintf(buf, sizeof(buf), "To: %s\r\n", to); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Subject: %s\n", subject); + snprintf(buf, sizeof(buf), "Subject: %s\r\n", subject); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "MIME-Version: 1.0\n"); + snprintf(buf, sizeof(buf), "MIME-Version: 1.0\r\n"); write(fd_socket, buf, strlen(buf)); if (related) /* related means that we need a special link in the html part to display the image */ { - snprintf(buf, sizeof(buf), "Content-Type: multipart/related;\n"); + snprintf(buf, sizeof(buf), "Content-Type: multipart/related;\r\n"); write(fd_socket, buf, strlen(buf)); } else { - snprintf(buf, sizeof(buf), "Content-Type: multipart/mixed;\n"); + snprintf(buf, sizeof(buf), "Content-Type: multipart/mixed;\r\n"); write(fd_socket, buf, strlen(buf)); } - snprintf(buf, sizeof(buf), " boundary=\"%s\"\n\n", boundary); + snprintf(buf, sizeof(buf), " boundary=\"%s\"\r\n\r\n", boundary); write(fd_socket, buf, strlen(buf)); } @@ -5541,7 +7323,7 @@ void write_email_footer(int fd_socket, char *boundary) { char buf[1024]; - snprintf(buf, sizeof(buf), "--%s--\n", boundary); + snprintf(buf, sizeof(buf), "--%s--\r\n", boundary); write(fd_socket, buf, strlen(buf)); } @@ -5551,16 +7333,16 @@ void write_email_mime_ascii(int fd_socket, char *boundary) { char buf[1024]; - snprintf(buf, sizeof(buf), "--%s\n", boundary); + snprintf(buf, sizeof(buf), "--%s\r\n", boundary); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Type: text/plain;\n"); + snprintf(buf, sizeof(buf), "Content-Type: text/plain;\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), " charset=\"iso-8859-1\"\n"); + snprintf(buf, sizeof(buf), " charset=\"iso-8859-1\"\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 8bit\n\n"); + snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 8bit\r\n\r\n"); write(fd_socket, buf, strlen(buf)); } @@ -5570,22 +7352,22 @@ void write_email_mime_html(int fd_socket, char *boundary) { char buf[1024]; - snprintf(buf, sizeof(buf), "--%s\n", boundary); + snprintf(buf, sizeof(buf), "--%s\r\n", boundary); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Type: text/html;\n"); + snprintf(buf, sizeof(buf), "Content-Type: text/html;\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), " charset=\"us-ascii\"\n"); + snprintf(buf, sizeof(buf), " charset=\"us-ascii\"\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 7bit\n\n"); + snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 7bit\r\n\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "\n"); + snprintf(buf, sizeof(buf), "\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "\n"); + snprintf(buf, sizeof(buf), "\r\n"); write(fd_socket, buf, strlen(buf)); } @@ -5595,28 +7377,28 @@ void write_email_attach_image(int fd_socket, char *boundary, char *content_id, c { char buf[1024]; - snprintf(buf, sizeof(buf), "--%s\n", boundary); + snprintf(buf, sizeof(buf), "--%s\r\n", boundary); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Type: %s\n", content_type); + snprintf(buf, sizeof(buf), "Content-Type: %s\r\n", content_type); write(fd_socket, buf, strlen(buf)); if (content_id) { - snprintf(buf, sizeof(buf), "Content-ID: <%s>\n", content_id); + snprintf(buf, sizeof(buf), "Content-ID: <%s>\r\n", content_id); write(fd_socket, buf, strlen(buf)); } - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n"); + snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Disposition: inline;\n"); + snprintf(buf, sizeof(buf), "Content-Disposition: inline;\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename); + snprintf(buf, sizeof(buf), " filename=\"%s\"\r\n", filename); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "\n"); + snprintf(buf, sizeof(buf), "\r\n"); write(fd_socket, buf, strlen(buf)); write_base64(fd_socket, infile); @@ -5628,25 +7410,25 @@ void write_email_attach_file(int fd_socket, char *boundary, FILE *infile, char * { char buf[1024]; - snprintf(buf, sizeof(buf), "--%s\n", boundary); + snprintf(buf, sizeof(buf), "--%s\r\n", boundary); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Type: application/octet-stream\n"); + snprintf(buf, sizeof(buf), "Content-Type: application/octet-stream\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), " name=\"%s\"\n", filename); + snprintf(buf, sizeof(buf), " name=\"%s\"\r\n", filename); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n"); + snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "Content-Disposition: attachment;\n"); + snprintf(buf, sizeof(buf), "Content-Disposition: attachment;\r\n"); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename); + snprintf(buf, sizeof(buf), " filename=\"%s\"\r\n", filename); write(fd_socket, buf, strlen(buf)); - snprintf(buf, sizeof(buf), "\n"); + snprintf(buf, sizeof(buf), "\r\n"); write(fd_socket, buf, strlen(buf)); write_base64(fd_socket, infile); diff --git a/src/xsane-save.c.orig b/src/xsane-save.c.orig deleted file mode 100644 index a495e1c..0000000 --- a/src/xsane-save.c.orig +++ /dev/null @@ -1,5801 +0,0 @@ -/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend - - xsane-save.c - - Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch - This file is part of the XSANE package. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#include "xsane.h" -#include "xsane-back-gtk.h" -#include "xsane-front-gtk.h" -#include -#include - -/* the following test is always false */ -#ifdef _native_WIN32 -# include -#else -# include -# include -# include -#endif - -#ifdef HAVE_LIBJPEG -#include -#endif - -#ifdef HAVE_LIBZ -#include -#endif - -#ifdef HAVE_LIBPNG -#include -#endif - -#ifdef HAVE_LIBTIFF -#include -#endif - -#ifdef HAVE_MMAP -#include -#endif - -#ifdef HAVE_OS2_H -#include -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_ANY_GIMP - -#include - -static void xsane_gimp_query(void); -#ifdef HAVE_GIMP_2 -static void xsane_gimp_run(const gchar *name, gint nparams, const GimpParam *param, gint *nreturn_vals, GimpParam **return_vals); -#else -static void xsane_gimp_run(char *name, int nparams, GimpParam *param, int *nreturn_vals, GimpParam **return_vals); -#endif - -GimpPlugInInfo PLUG_IN_INFO = -{ - NULL, /* init_proc */ - NULL, /* quit_proc */ - xsane_gimp_query, /* query_proc */ - xsane_gimp_run, /* run_proc */ -}; - - -static int xsane_decode_devname(const char *encoded_devname, int n, -char *buf); -static int xsane_encode_devname(const char *devname, int n, char *buf); -void null_print_func(gchar *msg); - -#endif /* HAVE_ANY_GIMP */ - -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* why this routine ? - Problem: link attack - Bad user wants to overwrite a file (mywork.txt) of good user. - File permissions of mywork.txt is 700 so that bad user can not - change or overwrite the file. Directory permissions allow bad user - to write into directory. Bad user sets symlink from a file that good - user will write soon (image.pnm) to mywork.txt. - ==> Good user overwrites his own file, he is allowed to do so. - - Solution: remove file. - Create outputfile and make sure that it does not exist while creation. - - The file is created with the requested image-file permissions. - - Note: This case is a bit curious because it is only a small part of a larger problem: - When other users have write access to the directory they simply can move - mywork.txt to image.pnm. If they do it in the right moment the file is - overwritten without any notice of good user. If they do it long before xsane - wants to write image.pnm then xsane will possibly ask if image.pnm shall be - overwritten. So the real solution is to make the direcoty permissions safe!!! - But some users asked for this and so I added this. - - - This routine shall not be called for temporary files because temp files shall not - be removed after they have been created safe. (Although a temporary file should - not be a symlink so there should be no problem with this) -*/ - -int xsane_create_secure_file(const char *filename) -/* returns 0 on success, -1 on error */ -{ - int fd; - - DBG(DBG_proc, "xsane_create_secure_file\n"); - - remove(filename); /* we need to remove the file because open(..., O_EXCL) will fail otherwise */ - umask((mode_t) preferences.image_umask); /* define image file permissions */ - fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0666); - umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ - - if (fd > 0) - { - DBG(DBG_info, "file %s is created and secure\n", filename); - close(fd); - fd = 0; - } - else - { - DBG(DBG_info, "could not create secure file %s\n", filename); - } - - return fd; /* -1 means file is not safe !!! otherwise 0 */ -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_cancel_save(int *cancel_save) -{ - DBG(DBG_proc, "xsane_cancel_save\n"); - *cancel_save = 1; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_convert_text_to_filename(char **text) -{ - DBG(DBG_proc, "xsane_convert_text_to_filename\n"); - - if (text) - { - char *filename = *text; - char buf[256]; - int buflen=0; - int txtlen=0; - - while((filename[txtlen] != 0) && (buflen<253)) - { - switch (filename[txtlen]) - { - case ' ': - buf[buflen++] = ':'; - buf[buflen++] = '_'; - txtlen++; - break; - - case '/': - buf[buflen++] = ':'; - buf[buflen++] = '%'; - txtlen++; - break; - - case '*': - buf[buflen++] = ':'; - buf[buflen++] = '#'; - txtlen++; - break; - - case '?': - buf[buflen++] = ':'; - buf[buflen++] = 'q'; - txtlen++; - break; - - case '\\': - buf[buflen++] = ':'; - buf[buflen++] = '='; - txtlen++; - break; - - case ';': - buf[buflen++] = ':'; - buf[buflen++] = '!'; - txtlen++; - break; - - case '&': - buf[buflen++] = ':'; - buf[buflen++] = '+'; - txtlen++; - break; - - case '<': - buf[buflen++] = ':'; - buf[buflen++] = 's'; - txtlen++; - break; - - case '>': - buf[buflen++] = ':'; - buf[buflen++] = 'g'; - txtlen++; - break; - - case '|': - buf[buflen++] = ':'; - buf[buflen++] = 'p'; - txtlen++; - break; - - case ':': - buf[buflen++] = ':'; - buf[buflen++] = ':'; - txtlen++; - break; - - default: - buf[buflen++] = filename[txtlen++]; - break; - } - } - buf[buflen] = 0; - free(filename); - *text = strdup(buf); - DBG(DBG_info, "filename = \"%s\"\n", *text); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_get_filesize(char *filename) -{ - FILE *infile; - int pos; - int size; - - infile = fopen(filename, "rb"); /* read binary (b for win32) */ - if (infile == NULL) - { - return 0; - } - - pos = ftell(infile); - fseek(infile, 0, SEEK_END); /* get size */ - size = ftell(infile); - fseek(infile, pos, SEEK_SET); /* go to previous position */ - - fclose(infile); - - return size; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_ensure_counter_in_filename(char **filename, int counter_len) -{ - char *position_point = NULL; - char *position; - int counter = 1; - - DBG(DBG_proc, "xsane_ensure_counter_in_filename\n"); - - if (!counter_len) - { - counter_len = 1; - } - - position_point = strrchr(*filename, '.'); - - if (!position_point) /* nothing usable ? */ - { - position_point = *filename + strlen(*filename); /* position_point - 1 is last character */ - } - - if (position_point) - { - position = position_point-1; - if ( (position < *filename) || (*position < '0') || (*position >'9') ) /* we have no counter */ - { - char buf[PATH_MAX]; - int len; - - len = position_point - (*filename); /* length until "." or end of string */ - strncpy(buf, *filename, len); - snprintf(buf+len, sizeof(buf)-len, "-%0*d%s", counter_len, counter, position_point); - *filename = strdup(buf); - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_update_counter_in_filename(char **filename, int skip, int step, int min_counter_len) -{ - FILE *testfile; - char *position_point = NULL; - char *position_counter; - char buf[PATH_MAX]; - int counter; - int counter_len; - int set_counter_len = min_counter_len; - - DBG(DBG_proc, "xsane_update_counter_in_filename\n"); - - if ( (!step) && (!min_counter_len) ) - { - return; /* do not touch counter */ - } - - while (1) /* loop because we may have to skip existing files */ - { - position_point = strrchr(*filename, '.'); - - if (!position_point) /* nothing usable ? */ - { - position_point = *filename + strlen(*filename); /* here is no point, but position - 1 is last character */ - } - - if (position_point) - { - position_counter = position_point-1; /* go to last number of counter (if counter exists) */ - - /* search non numeric char */ - while ( (position_counter >= *filename) && (*position_counter >= '0') && (*position_counter <='9') ) - { - position_counter--; /* search fisrt numeric character */ - } - - position_counter++; /* go to first numeric charcter */ - - counter_len = position_point - position_counter; - - if (counter_len) /* we have a counter */ - { - sscanf(position_counter, "%d", &counter); - counter = counter + step; /* update counter */ - - if (counter < 0) - { - counter = 0; - xsane_back_gtk_warning(WARN_COUNTER_UNDERRUN, TRUE); - break; /* last available number ("..999") */ - } - - *position_counter = 0; /* set end of string mark to counter start */ - - if (set_counter_len == 0) - { - set_counter_len = counter_len; - } - - snprintf(buf, sizeof(buf), "%s%0*d%s", *filename, set_counter_len, counter, position_point); - - DBG(DBG_info, "filename = \"%s\"\n", buf); - - free(*filename); - *filename = strdup(buf); - - if (skip) /* test if filename already used */ - { - if (preferences.filetype) /* add filetype to filename */ - { - snprintf(buf, sizeof(buf), "%s%s", *filename, preferences.filetype); - testfile = fopen(buf, "rb"); /* read binary (b for win32) */ - } - else /* filetype in filename */ - { - testfile = fopen(*filename, "rb"); /* read binary (b for win32) */ - } - - if (testfile) /* filename used: skip */ - { - fclose(testfile); - } - else - { - break; /* filename not used, ok */ - } - } - else /* do not test if filename already used */ - { - break; /* filename ok */ - } - } - else /* no counter */ - { - break; /* no counter */ - } - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_read_pnm_header(FILE *file, Image_info *image_info) -{ - int max_val, filetype_nr; - char buf[256]; - - fgets(buf, sizeof(buf)-1, file); - DBG(DBG_info, "filetype header :%s", buf); - - if (buf[0] == 'P') - { - filetype_nr = atoi(buf+1); /* get filetype number */ - - image_info->resolution_x = 72.0; - image_info->resolution_y = 72.0; - image_info->reduce_to_lineart = FALSE; - - while (strcmp(buf, "# XSANE data follows\n")) - { - fgets(buf, sizeof(buf)-1, file); - - if (!strncmp(buf, "# resolution_x =", 20)) - { - sscanf(buf+20, "%lf", &image_info->resolution_x); - } - else if (!strncmp(buf, "# resolution_y =", 20)) - { - sscanf(buf+20, "%lf", &image_info->resolution_y); - } - else if (!strncmp(buf, "# threshold =", 20)) - { - sscanf(buf+20, "%lf", &image_info->threshold); - } - else if (!strncmp(buf, "# gamma =", 20)) - { - sscanf(buf+20, "%lf", &image_info->gamma); - } - else if (!strncmp(buf, "# gamma IRGB =", 20)) - { - sscanf(buf+20, "%lf %lf %lf %lf", - &image_info->gamma, - &image_info->gamma_red, - &image_info->gamma_green, - &image_info->gamma_blue); - } - else if (!strncmp(buf, "# brightness =", 20)) - { - sscanf(buf+20, "%lf", &image_info->brightness); - } - else if (!strncmp(buf, "# brightness IRGB =", 20)) - { - sscanf(buf+20, "%lf %lf %lf %lf", - &image_info->brightness, - &image_info->brightness_red, - &image_info->brightness_green, - &image_info->brightness_blue); - } - else if (!strncmp(buf, "# contrast =", 20)) - { - sscanf(buf+20, "%lf", &image_info->contrast); - } - else if (!strncmp(buf, "# contrast IRGB =", 20)) - { - sscanf(buf+20, "%lf %lf %lf %lf", - &image_info->contrast, - &image_info->contrast_red, - &image_info->contrast_green, - &image_info->contrast_blue); - } - else if (!strncmp(buf, "# reduce to lineart", 20)) - { - image_info->reduce_to_lineart = TRUE; - } - } - - fscanf(file, "%d %d", &image_info->image_width, &image_info->image_height); - - image_info->depth = 1; - - if (filetype_nr != 4) /* P4 = lineart */ - { - fscanf(file, "%d", &max_val); - - if (max_val == 255) - { - image_info->depth = 8; - } - else if (max_val == 65535) - { - image_info->depth = 16; - } - } - - fgetc(file); /* read exactly one newline character */ - - - image_info->colors = 1; - - if (filetype_nr == 6) /* ppm RGB */ - { - image_info->colors = 3; - } - } -#ifdef SUPPORT_RGBA - else if (buf[0] == 'S') /* RGBA format */ - { - fscanf(file, "%d %d\n%d", &image_info->image_width, &image_info->image_height, &max_val); - fgetc(file); /* read exactly one newline character */ - - image_info->depth = 1; - - if (max_val == 255) - { - image_info->depth = 8; - } - else if (max_val == 65535) - { - image_info->depth = 16; - } - - image_info->colors = 4; - } -#endif - - DBG(DBG_info, "xsane_read_pnm_header: width=%d, height=%d, depth=%d, colors=%d, resolution_x=%f, resolution_y=%f\n", - image_info->image_width, image_info->image_height, image_info->depth, image_info->colors, - image_info->resolution_x, image_info->resolution_y); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_as_ascii) -{ - int maxval; - int magic; - - fflush(file); - rewind(file); - - if (image_info->depth > 8) - { - maxval = 65535; - - if (save_pnm16_as_ascii) - { - magic = 2; /* thats the magic number for grayscale ascii, 3 = color ascii */ - } - else /* save pnm as binary */ - { - magic = 5; /* that is the magic number for grayscake binary, 6 = color binary */ - } - } - else - { - maxval = 255; - magic = 5; /* 8 bit images are always saved in binary mode */ - } - - - if (image_info->colors == 1) - { - if (image_info->depth == 1) - { - /* do not touch the texts and length here, the reading routine needs to know the exact texts */ - fprintf(file, "P4\n" - "# XSane settings:\n" - "# resolution_x = %6.1f\n" - "# resolution_y = %6.1f\n" - "# threshold = %4.1f\n" - "# XSANE data follows\n" - "%05d %05d\n", - image_info->resolution_x, - image_info->resolution_y, - image_info->threshold, - image_info->image_width, image_info->image_height); - } - else if (image_info->reduce_to_lineart) - { - /* do not touch the texts and length here, the reading routine needs to know the exact texts */ - fprintf(file, "P%d\n" - "# XSane settings:\n" - "# resolution_x = %6.1f\n" - "# resolution_y = %6.1f\n" - "# threshold = %4.1f\n" - "# reduce to lineart\n" - "# XSANE data follows\n" - "%05d %05d\n" - "%d\n", - magic, /* P5 for binary, P2 for ascii */ - image_info->resolution_x, - image_info->resolution_y, - image_info->threshold, - image_info->image_width, image_info->image_height, - maxval); - } - else - { - fprintf(file, "P%d\n" - "# XSane settings:\n" - "# resolution_x = %6.1f\n" - "# resolution_y = %6.1f\n" - "# gamma = %3.2f\n" - "# brightness = %4.1f\n" - "# contrast = %4.1f\n" - "# XSANE data follows\n" - "%05d %05d\n" - "%d\n", - magic, /* P5 for binary, P2 for ascii */ - image_info->resolution_x, - image_info->resolution_y, - image_info->gamma, - image_info->brightness, - image_info->contrast, - image_info->image_width, image_info->image_height, - maxval); - } - } - else if (image_info->colors == 3) - { - fprintf(file, "P%d\n" - "# XSane settings:\n" - "# resolution_x = %6.1f\n" - "# resolution_y = %6.1f\n" - "# gamma IRGB = %3.2f %3.2f %3.2f %3.2f\n" - "# brightness IRGB = %4.1f %4.1f %4.1f %4.1f\n" - "# contrast IRGB = %4.1f %4.1f %4.1f %4.1f\n" - "# XSANE data follows\n" - "%05d %05d\n" \ - "%d\n", - magic+1, /* P6 for binary, P3 for ascii */ - image_info->resolution_x, - image_info->resolution_y, - image_info->gamma, image_info->gamma_red, image_info->gamma_green, image_info->gamma_blue, - image_info->brightness, image_info->brightness_red, image_info->brightness_green, image_info->brightness_blue, - image_info->contrast, image_info->contrast_red, image_info->contrast_green, image_info->contrast_blue, - image_info->image_width, image_info->image_height, - maxval); - } -#ifdef SUPPORT_RGBA - else if (image_info->colors == 4) - { - fprintf(file, "SANE_RGBA\n" \ - "%d %d\n" \ - "%d\n", - image_info->image_width, image_info->image_height, maxval); - } -#endif -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_copy_file(FILE *outfile, FILE *infile, GtkProgressBar *progress_bar, int *cancel_save) -{ - long size; - long bytes_sum = 0; - size_t bytes; - unsigned char buf[65536]; - - DBG(DBG_proc, "copying file\n"); - - fseek(infile, 0, SEEK_END); - size = ftell(infile); - fseek(infile, 0, SEEK_SET); - - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - while (!feof(infile)) - { - bytes = fread(buf, 1, sizeof(buf), infile); - if (bytes > 0) - { - fwrite(buf, 1, bytes, outfile); - bytes_sum += bytes; - } - - gtk_progress_bar_update(progress_bar, (float) bytes_sum / size); /* update progress bar */ - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (ferror(infile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_READ, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - - fflush(outfile); - - if (size != bytes_sum) - { - DBG(DBG_info, "copy errro, not complete, %ld bytes of %ld bytes copied\n", bytes_sum, size); - *cancel_save = 1; - return (*cancel_save); - } - - DBG(DBG_info, "copy complete, %ld bytes copied\n", bytes_sum); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_copy_file_by_name(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save) -{ - FILE *infile; - FILE *outfile; - - DBG(DBG_proc, "copying file %s to %s\n", input_filename, output_filename); - - outfile = fopen(output_filename, "wb"); /* b = binary mode for win32 */ - - if (outfile == 0) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, output_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - return -2; - } - - infile = fopen(input_filename, "rb"); /* read binary (b for win32) */ - if (infile == 0) - { - char buf[256]; - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - fclose(outfile); - remove(output_filename); /* remove already created output file */ - return -1; - } - - xsane_copy_file(outfile, infile, progress_bar, cancel_save); - - fclose(infile); - fclose(outfile); - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_grayscale_image_as_lineart(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y, bit; - u_char bitval, packed; - - *cancel_save = 0; - - image_info->depth = 1; - - xsane_write_pnm_header(outfile, image_info, 0); - - for (y = 0; y < image_info->image_height; y++) - { - bit = 128; - packed = 0; - - for (x = 0; x < image_info->image_width; x++) - { - bitval = fgetc(imagefile); - - if (!bitval) /* white gets 0 bit, black gets 1 bit */ - { - packed |= bit; - } - - if (bit == 1) - { - fputc(packed, outfile); - bit = 128; - packed = 0; - } - else - { - bit >>= 1; - } - } - - if (bit != 128) - { - fputc(packed, outfile); - bit = 128; - packed = 0; - } - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); /* update progress bar */ - while (gtk_events_pending()) /* give gtk the chance to display the changes */ - { - gtk_main_iteration(); - } - - if (*cancel_save) - { - break; - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float x_scale, float y_scale, GtkProgressBar *progress_bar, int *cancel_save) -{ - int original_image_width = image_info->image_width; - int original_image_height = image_info->image_height; - int new_image_width = image_info->image_width * x_scale + 0.5; - int new_image_height = image_info->image_height * y_scale + 0.5; - unsigned char *original_line; - guint16 *original_line16 = NULL; - unsigned char *new_line; - float *pixel_val; - float *pixel_norm; - int bytespp = 1; - float x, y; - int c; - int oldy; - int x_new, y_new; - float x_go, y_go; - float factor, x_factor, y_factor; - guint16 color; - int read_line; - - DBG(DBG_proc, "xsane_save_scaled_image\n"); - - *cancel_save = 0; - - if (image_info->depth > 8) - { - bytespp = 2; - } - - image_info->image_width = new_image_width; - image_info->image_height = new_image_height; - image_info->resolution_x *= x_scale; - image_info->resolution_y *= y_scale; - - original_line = malloc(original_image_width * image_info->colors * bytespp); - if (!original_line) - { - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - new_line = malloc(new_image_width * image_info->colors * bytespp); - if (!new_line) - { - free(original_line); - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - pixel_val = malloc(new_image_width * image_info->colors * sizeof(float)); - if (!pixel_val) - { - free(original_line); - free(new_line); - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - pixel_norm = malloc(new_image_width * image_info->colors * sizeof(float)); - if (!pixel_norm) - { - free(original_line); - free(new_line); - free(pixel_val); - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - xsane_write_pnm_header(outfile, image_info, 0); - - read_line = TRUE; - - memset(pixel_val, 0, new_image_width * image_info->colors * sizeof(float)); - memset(pixel_norm, 0, new_image_width * image_info->colors * sizeof(float)); - - y_new = 0; - y_go = 1.0 / y_scale; - y_factor = 1.0; - y = 0.0; - - while (y < original_image_height) - { - DBG(DBG_info2, "xsane_save_scaled_image: original line %d, new line %d\n", (int) y, y_new); - - gtk_progress_bar_update(progress_bar, (float) y / original_image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (read_line) - { - DBG(DBG_info, "xsane_save_scaled_image: reading original line %d\n", (int) y); - fread(original_line, original_image_width, image_info->colors * bytespp, imagefile); /* read one line */ - original_line16 = (guint16 *) original_line; - } - - x_new = 0; - x_go = 1.0 / x_scale; - x = 0.0; - x_factor = 1.0; - - while ( (x < original_image_width) && (x_new < new_image_width) ) /* add this line to anti aliasing buffer */ - - { - factor = x_factor * y_factor; - - for (c = 0; c < image_info->colors; c++) - { - if (bytespp == 1) - { - color = original_line[((int) x) * image_info->colors + c]; - } - else /* bytespp == 2 */ - { - color = original_line16[((int) x) * image_info->colors + c]; - } - - pixel_val [x_new * image_info->colors + c] += factor * color; - pixel_norm[x_new * image_info->colors + c] += factor; - } - - x_go -= x_factor; - - if (x_go <= 0.0) /* change of pixel in new image */ - { - x_new++; - x_go = 1.0 / x_scale; - - x_factor = x - (int) x; /* use pixel rest */ - if (x_factor > x_go) - { - x_factor = x_go; - } - } - else - { - x_factor = x_go; - } - - if (x_factor > 1.0) - { - x_factor = 1.0; - } - - x += x_factor; - } - - y_go -= y_factor; - - if (y_go <= 0.0) /* normalize one line and write to destination image file */ - { - DBG(DBG_info2, "xsane_save_scaled_image: writing new line %d\n", y_new); - - if (bytespp == 1) - { - for (x_new = 0; x_new < new_image_width * image_info->colors; x_new++) - { - new_line[x_new] = (int) (pixel_val[x_new] / pixel_norm[x_new]); - } - } - else /* bytespp == 2 */ - { - guint16 *new_line16 = (guint16 *) new_line; - - for (x_new = 0; x_new < new_image_width * image_info->colors; x_new++) - { - new_line16[x_new] = (int) (pixel_val[x_new] / pixel_norm[x_new]); - } - } - - fwrite(new_line, new_image_width, image_info->colors * bytespp, outfile); /* write one line */ - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - /* reset values and norm factors */ - memset(pixel_val, 0, new_image_width * image_info->colors * sizeof(float)); - memset(pixel_norm, 0, new_image_width * image_info->colors * sizeof(float)); - - y_new++; - y_go = 1.0 / y_scale; - - y_factor = y - (int) y; - if (y_factor > y_go) - { - y_factor = y_go; - } - } - else - { - y_factor = y_go; - } - - if (y_factor > 1.0) - { - y_factor = 1.0; - } - - oldy = (int) y; - y += y_factor; - read_line = (oldy != (int) y); - } - - free(original_line); - free(new_line); - free(pixel_val); - free(pixel_norm); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ -#if 0 -int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float x_scale, float y_scale, GtkProgressBar *progress_bar, int *cancel_save) -{ - float original_y; - int old_original_y; - int x, y, i; - int original_image_width = image_info->image_width; - int new_image_width = image_info->image_width * x_scale; - int new_image_height = image_info->image_height * y_scale; - unsigned char *original_line; - unsigned char *new_line; - int bytespp = 1; - - DBG(DBG_proc, "xsane_save_scaled_image\n"); - - if (image_info->depth > 8) - { - bytespp = 2; - } - - image_info->image_width = new_image_width; - image_info->image_height = new_image_height; - image_info->resolution_x *= x_scale; - image_info->resolution_y *= y_scale; - - original_line = malloc(original_image_width * image_info->colors * bytespp); - if (!original_line) - { - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - new_line = malloc(new_image_width * image_info->colors * bytespp); - if (!new_line) - { - free(original_line); - DBG(DBG_error, "xsane_save_scaled_image: out of memory\n"); - return -1; - } - - xsane_write_pnm_header(outfile, image_info, 0); - - original_y = 0.0; - old_original_y = -1; - - for (y = 0; y < new_image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (; ((int) original_y) - old_original_y; old_original_y += 1) - { - fread(original_line, original_image_width, image_info->colors * bytespp, imagefile); /* read one line */ - } - - for (x = 0; x < new_image_width; x++) - { - for (i = 0; i < image_info->colors * bytespp; i++) - { - new_line[x * image_info->colors * bytespp + i] = original_line[((int) (x / x_scale)) * image_info->colors * bytespp + i]; - } - } - - fwrite(new_line, new_image_width, image_info->colors * bytespp, outfile); /* write one line */ - - original_y += 1/y_scale; - - if (*cancel_save) - { - break; - } - } - - free(original_line); - free(new_line); - - fflush(outfile); - - return (*cancel_save); -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y, sx, sy, i; - int xmin, xmax; - int ymin, ymax; - int count; - unsigned char *line_cache; - unsigned char *line_cache_ptr; - guint16 *color_cache; - guint16 *color_cache_ptr; - int bytespp = 1; - int color_radius; - int color_width = image_info->image_width * image_info->colors; - - radius--; /* correct radius : 1 means nothing happens */ - - if (radius < 1) - { - radius = 1; - } - - color_radius = radius * image_info->colors; - - if (image_info->depth > 8) - { - bytespp = 2; - } - - xsane_write_pnm_header(outfile, image_info, 0); - - line_cache = malloc(color_width * bytespp * (2 * radius + 1)); - if (!line_cache) - { - DBG(DBG_error, "xsane_despeckle_image: out of memory\n"); - return -1; - } - - fread(line_cache, color_width * bytespp, (2 * radius + 1), imagefile); - - color_cache = malloc((size_t) sizeof(guint16) * (2*radius+1)*(2*radius+1)); - - if (!color_cache) - { - free(line_cache); - DBG(DBG_error, "xsane_despeckle_image: out of memory\n"); - return -1; - } - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - ymin = y - radius; - ymax = y + radius; - - if (ymin < 0) - { - ymin = 0; - } - - if (ymax > image_info->image_height) - { - ymax = image_info->image_height; - } - - for (x = 0; x < color_width; x++) - { - xmin = x - color_radius; - xmax = x + color_radius; - - if (xmin < 0) - { - xmin = x % image_info->colors; - } - - if (xmax > color_width) - { - xmax = color_width; - } - - count = 0; - - color_cache_ptr = color_cache; - - - if (bytespp == 1) - { - for (sy = ymin; sy <= ymax; sy++) /* search area defined by radius - y part */ - { - line_cache_ptr = line_cache + (sy-ymin) * color_width + xmin; - - for (sx = xmin; sx <= xmax; sx+=image_info->colors) /* x part */ - { - *color_cache_ptr = *line_cache_ptr; - color_cache_ptr++; - line_cache_ptr += image_info->colors; - } - } - - /* sort color_cache */ - - count = color_cache_ptr - color_cache; - - if (count > 1) - { - int d, j, val; - - for (d = count / 2; d > 0; d = d / 2) - { - for (i = d; i < count; i++) - { - for (j = i - d, color_cache_ptr = color_cache + j; j >= 0 && color_cache_ptr[0] > color_cache_ptr[d]; j -= d, color_cache_ptr -= d) - { - val = color_cache_ptr[0]; - color_cache_ptr[0] = color_cache_ptr[d]; - color_cache_ptr[d] = val; - }; - } - } - } - - fputc((char) (color_cache[count/2]), outfile); - } - else /* 16 bit/color */ - { - guint16 val16; - guint16 *line_cache16 = (guint16 *) line_cache; - guint16 *line_cache16_ptr; - char *bytes16 = (char *) &val16; - - for (sy = ymin; sy <= ymax; sy++) - { - line_cache16_ptr = line_cache16 + (sy-ymin) * color_width + xmin; - - for (sx = xmin; sx <= xmax; sx+=image_info->colors) - { - *color_cache_ptr = *line_cache16_ptr; - color_cache_ptr++; - line_cache16_ptr += image_info->colors; - } - } - - /* sort color_cache */ - - count = color_cache_ptr - color_cache; - - if (count > 1) - { - int d,j, val; - - for (d = count / 2; d > 0; d = d / 2) - { - for (i = d; i < count; i++) - { - for (j = i - d, color_cache_ptr = color_cache + j; j >= 0 && color_cache_ptr[0] > color_cache_ptr[d]; j -= d, color_cache_ptr -= d) - { - val = color_cache_ptr[0]; - color_cache_ptr[0] = color_cache_ptr[d]; - color_cache_ptr[d] = val; - }; - } - } - } - - val16 = color_cache[count/2]; - fputc(bytes16[0], outfile); /* write bytes in machine byte order */ - fputc(bytes16[1], outfile); - } - } - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if ((y > radius) && (y < image_info->image_height - radius)) - { - memcpy(line_cache, line_cache + color_width * bytespp, - color_width * bytespp * 2 * radius); - fread(line_cache + color_width * bytespp * 2 * radius, - color_width * bytespp, 1, imagefile); - } - } - - fflush(outfile); - - free(line_cache); - free(color_cache); - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float radius, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y, sx, sy; - int xmin, xmax; - int ymin, ymax; - double val, norm, outer_factor; - unsigned char *line_cache; - int bytespp = 1; - int intradius; - int xmin_flag; - int xmax_flag; - int ymin_flag; - int ymax_flag; - - *cancel_save = 0; - - intradius = (int) radius; - - outer_factor = radius - (int) radius; - - if (image_info->depth > 8) - { - bytespp = 2; - } - - xsane_write_pnm_header(outfile, image_info, 0); - - line_cache = malloc(image_info->image_width * image_info->colors * bytespp * (2 * intradius + 1)); - if (!line_cache) - { - DBG(DBG_error, "xsane_blur_image: out of memory\n"); - return -1; - } - - fread(line_cache, image_info->image_width * image_info->colors * bytespp, (2 * intradius + 1), imagefile); - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < image_info->image_width * image_info->colors; x++) - { - xmin_flag = xmax_flag = ymin_flag = ymax_flag = TRUE; - - xmin = x - intradius * image_info->colors; - xmax = x + intradius * image_info->colors; - - if (xmin < 0) - { - xmin = x % image_info->colors; - xmin_flag = FALSE; - } - - if (xmax > image_info->image_width * image_info->colors) - { - xmax = image_info->image_width * image_info->colors; - xmax_flag = FALSE; - } - - ymin = y - intradius; - ymax = y + intradius; - - if (ymin < 0) - { - ymin = 0; - ymin_flag = FALSE; - } - - if (ymax > image_info->image_height) - { - ymax = image_info->image_height; - ymax_flag = FALSE; - } - - val = 0.0; - norm = 0.0; - - if (bytespp == 1) - { - if (xmin_flag) /* integrate over left margin */ - { - for (sy = ymin+1; sy <= ymax-1 ; sy++) - { - val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->colors + xmin]; - norm += outer_factor; - } - } - - if (xmax_flag) /* integrate over right margin */ - { - for (sy = ymin+1; sy <= ymax-1 ; sy++) - { - val += outer_factor * line_cache[(sy-ymin) * image_info->image_width * image_info->colors + xmax]; - norm += outer_factor; - } - } - - if (ymin_flag) /* integrate over top margin */ - { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) - { - val += outer_factor * line_cache[sx]; - norm += outer_factor; - } - } - - if (ymax_flag) /* integrate over bottom margin */ - { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) - { - val += outer_factor * line_cache[(ymax-ymin) * image_info->image_width * image_info->colors + sx]; - norm += outer_factor; - } - } - - for (sy = ymin+1; sy <= ymax-1; sy++) /* integrate internal square */ - { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors; sx+=image_info->colors) - { - val += line_cache[(sy-ymin) * image_info->image_width * image_info->colors + sx]; - norm += 1.0; - } - } - fputc((char) ((int) (val/norm)), outfile); - } - else /* bytespp == 2 */ - { - guint16 *line_cache16 = (guint16 *) line_cache; - guint16 val16; - char *bytes16 = (char *) &val16; - - if (xmin_flag) /* integrate over left margin */ - { - for (sy = ymin+1; sy <= ymax-1 ; sy++) - { - val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + xmin]; - norm += outer_factor; - } - } - - if (xmax_flag) /* integrate over right margin */ - { - for (sy = ymin+1; sy <= ymax-1 ; sy++) - { - val += outer_factor * line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + xmax]; - norm += outer_factor; - } - } - - if (ymin_flag) /* integrate over top margin */ - { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) - { - val += outer_factor * line_cache16[sx]; - norm += outer_factor; - } - } - - if (ymax_flag) /* integrate over bottom margin */ - { - for (sx = xmin+image_info->colors; sx <= xmax-image_info->colors ; sx += image_info->colors) - { - val += outer_factor * line_cache16[(ymax-ymin) * image_info->image_width * image_info->colors + sx]; - norm += outer_factor; - } - } - - for (sy = ymin; sy <= ymax; sy++) /* integrate internal square */ - { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) - { - val += line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + sx]; - norm += 1.0; - } - } - - val16 = val / norm; - fputc(bytes16[0], outfile); /* write bytes in machine byte order */ - fputc(bytes16[1], outfile); - } - } - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - /* reset values and norm factors */ - - if ((y > intradius) && (y < image_info->image_height - intradius)) - { - memcpy(line_cache, line_cache + image_info->image_width * image_info->colors * bytespp, - image_info->image_width * image_info->colors * bytespp * 2 * intradius); - fread(line_cache + image_info->image_width * image_info->colors * bytespp * 2 * intradius, - image_info->image_width * image_info->colors * bytespp, 1, imagefile); - } - } - - fflush(outfile); - free(line_cache); - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#if 0 -int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar) -{ - int x, y, sx, sy; - int xmin, xmax; - int ymin, ymax; - int pos0; - int val, count; - unsigned char *line_cache; - int bytespp = 1; - - if (image_info->depth > 8) - { - bytespp = 2; - } - - pos0 = ftell(imagefile); /* mark position to skip header */ - - xsane_write_pnm_header(outfile, image_info, 0); - - line_cache = malloc(image_info->image_width * image_info->colors * bytespp * (2 * radius + 1)); - if (!line_cache) - { - DBG(DBG_error, "xsane_blur_image: out of memory\n"); - return -1; - } - - fread(line_cache, image_info->image_width * image_info->colors * bytespp, (2 * radius + 1), imagefile); - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < image_info->image_width * image_info->colors; x++) - { - xmin = x - radius * image_info->colors; - xmax = x + radius * image_info->colors; - - if (xmin < 0) - { - xmin = x % image_info->colors; - } - - if (xmax > image_info->image_width * image_info->colors) - { - xmax = image_info->image_width * image_info->colors; - } - - ymin = y - radius; - ymax = y + radius; - - if (ymin < 0) - { - ymin = 0; - } - - if (ymax > image_info->image_height) - { - ymax = image_info->image_height; - } - - val = 0; - count = 0; - - if (bytespp == 1) - { - for (sy = ymin; sy <= ymax; sy++) - { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) - { - val += line_cache[(sy-ymin) * image_info->image_width * image_info->colors + sx]; - count++; - } - } - fputc((char) (val/count), outfile); - } - else - { - guint16 *line_cache16 = (guint16 *) line_cache; - guint16 val16; - char *bytes16 = (char *) &val16; - - for (sy = ymin; sy <= ymax; sy++) - { - for (sx = xmin; sx <= xmax; sx+=image_info->colors) - { - val += line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + sx]; - count++; - } - } - - val16 = val / count; - fputc(bytes16[0], outfile); /* write bytes in machine byte order */ - fputc(bytes16[1], outfile); - } - } - - if ((y > radius) && (y < image_info->image_height - radius)) - { - memcpy(line_cache, line_cache + image_info->image_width * image_info->colors * bytespp, - image_info->image_width * image_info->colors * bytespp * 2 * radius); - fread(line_cache + image_info->image_width * image_info->colors * bytespp * 2 * radius, - image_info->image_width * image_info->colors * bytespp, 1, imagefile); - } - } - - fflush(outfile); - free(line_cache); - - return 0; -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int rotation, GtkProgressBar *progress_bar, int *cancel_save) -/* returns true if operation was cancelled */ -{ - int x, y, pos0, bytespp, i; - int pixel_width = image_info->image_width; - int pixel_height = image_info->image_height; - float resolution_x = image_info->resolution_x; - float resolution_y = image_info->resolution_y; - -#ifdef HAVE_MMAP - char *mmaped_imagefile = NULL; -#endif - - DBG(DBG_proc, "xsane_save_rotate_image\n"); - - *cancel_save = 0; - - pos0 = ftell(imagefile); /* mark position to skip header */ - - bytespp = image_info->colors; - - if (image_info->depth > 8) - { - bytespp *= 2; - } - - if (image_info->depth < 8) /* lineart images are expanded to grayscale until transformation is done */ - { - image_info->depth = 8; /* so we have at least 8 bits/pixel here */ - } - -#ifdef HAVE_MMAP - mmaped_imagefile = mmap(NULL, pixel_width * pixel_height * bytespp + pos0, PROT_READ, MAP_PRIVATE, fileno(imagefile), 0); - if (mmaped_imagefile == (char *) -1) /* mmap failed */ - { - DBG(DBG_info, "xsane_save_rotate_image: unable to memory map image file, using standard file access\n"); - mmaped_imagefile = NULL; - } - else - { - DBG(DBG_info, "xsane_save_rotate_image: using memory mapped image file\n"); - } -#endif - - switch (rotation) - { - default: - break; - - case 0: /* 0 degree */ - xsane_write_pnm_header(outfile, image_info, 0); - - for (y = 0; y < pixel_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / pixel_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < pixel_width; x++) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i=0; iimage_width = pixel_height; - image_info->image_height = pixel_width; - - image_info->resolution_x = resolution_y; - image_info->resolution_y = resolution_x; - - xsane_write_pnm_header(outfile, image_info, 0); - - for (x=0; x=0; y--) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i=0; i= 0; y--) - { - gtk_progress_bar_update(progress_bar, (float) (pixel_height - y) / pixel_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = pixel_width-1; x >= 0; x--) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i = 0; i < bytespp; i++) - { - fputc(*p++, outfile); - } - } - else -#endif - { - fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */ - for (i = 0; i < bytespp; i++) - { - fputc(fgetc(imagefile), outfile); - } - } - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - break; - - case 3: /* 270 degree */ - image_info->image_width = pixel_height; - image_info->image_height = pixel_width; - - image_info->resolution_x = resolution_y; - image_info->resolution_y = resolution_x; - - xsane_write_pnm_header(outfile, image_info, 0); - - for (x = pixel_width-1; x >= 0; x--) - { - gtk_progress_bar_update(progress_bar, (float) (pixel_width - x) / pixel_width); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (y = 0; y < pixel_height; y++) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i = 0; i < bytespp; i++) - { - fputc(*p++, outfile); - } - } - else -#endif - { - fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */ - for (i = 0; i < bytespp; i++) - { - fputc(fgetc(imagefile), outfile); - } - } - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - break; - - case 4: /* 0 degree, x mirror */ - xsane_write_pnm_header(outfile, image_info, 0); - - for (y = 0; y < pixel_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / pixel_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = pixel_width-1; x >= 0; x--) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i = 0; i < bytespp; i++) - { - fputc(*p++, outfile); - } - } - else -#endif - { - fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */ - for (i = 0; i < bytespp; i++) - { - fputc(fgetc(imagefile), outfile); - } - } - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - break; - - case 5: /* 90 degree, x mirror */ - image_info->image_width = pixel_height; - image_info->image_height = pixel_width; - - image_info->resolution_x = resolution_y; - image_info->resolution_y = resolution_x; - - xsane_write_pnm_header(outfile, image_info, 0); - - for (x = 0; x < pixel_width; x++) - { - gtk_progress_bar_update(progress_bar, (float) x / pixel_width); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (y = 0; y < pixel_height; y++) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i=0; i= 0; y--) - { - gtk_progress_bar_update(progress_bar, (float) (pixel_height - y) / pixel_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < pixel_width; x++) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i = 0; i < bytespp; i++) - { - fputc(*p++, outfile); - } - } - else -#endif - { - fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */ - for (i = 0; i < bytespp; i++) - { - fputc(fgetc(imagefile), outfile); - } - } - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - break; - - case 7: /* 270 degree, x mirror */ - image_info->image_width = pixel_height; - image_info->image_height = pixel_width; - - image_info->resolution_x = resolution_y; - image_info->resolution_y = resolution_x; - - xsane_write_pnm_header(outfile, image_info, 0); - - for (x = pixel_width-1; x >= 0; x--) - { - gtk_progress_bar_update(progress_bar, (float) (pixel_width - x) / pixel_width); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (y = pixel_height-1; y >= 0; y--) - { -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */ - - for (i = 0; i < bytespp; i++) - { - fputc(*p++, outfile); - } - } - else -#endif - { - fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */ - for (i = 0; i < bytespp; i++) - { - fputc(fgetc(imagefile), outfile); - } - } - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - break; - } - -#ifdef HAVE_MMAP - if (mmaped_imagefile) - { - munmap(mmaped_imagefile, pos0 + pixel_width * pixel_height * bytespp); - } -#endif - - fflush(outfile); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatdecode) -{ - DBG(DBG_proc, "xsane_save_ps_create_document_header\n"); - - fprintf(outfile, "%%!PS-Adobe-3.0\n"); - fprintf(outfile, "%%%%Creator: XSane version %s (sane %d.%d) - by Oliver Rauch\n", VERSION, - SANE_VERSION_MAJOR(xsane.sane_backend_versioncode), - SANE_VERSION_MINOR(xsane.sane_backend_versioncode)); - fprintf(outfile, "%%%%DocumentData: Clean7Bit\n"); - if (flatdecode) - { - fprintf(outfile, "%%%%LanguageLevel: 3\n"); - } - else - { - fprintf(outfile, "%%%%LanguageLevel: 2\n"); - } - - if (pages) - { - fprintf(outfile, "%%%%Pages: %d\n", pages); - } - else - { - fprintf(outfile, "%%%%Pages: (atend)\n"); - } - - fprintf(outfile, "%%%%EndComments\n"); - fprintf(outfile, "\n"); - fprintf(outfile, "/origstate save def\n"); - fprintf(outfile, "20 dict begin\n"); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_save_ps_create_document_trailer(FILE *outfile, int pages) -{ - DBG(DBG_proc, "xsane_save_ps_create_document_trailer\n"); - - fprintf(outfile, "end\n"); - fprintf(outfile, "origstate restore\n"); - - if (pages) - { - fprintf(outfile, "%%%%Trailer\n"); - fprintf(outfile, "%%%%Pages: %d\n", pages); - } - - fprintf(outfile, "%%%%EOF\n"); - fprintf(outfile, "\n"); - -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* page = [1 .. pages] */ -static void xsane_save_ps_create_page_header(FILE *outfile, int page, - Image_info *image_info, - float width, float height, - int paper_left_margin, int paper_bottom_margin, - int paper_width, int paper_height, - int paper_orientation, int flatdecode, - GtkProgressBar *progress_bar) -{ - int degree, position_left, position_bottom, box_left, box_bottom, box_right, box_top, depth; - int left, bottom; - - DBG(DBG_proc, "xsane_save_ps_create_page_header\n"); - - switch (paper_orientation) - { - default: - case 0: /* top left portrait */ - left = 0.0; - bottom = paper_height - height; - break; - - case 1: /* top right portrait */ - left = paper_width - width; - bottom = paper_height - height; - break; - - case 2: /* bottom right portrait */ - left = paper_width - width; - bottom = 0.0; - break; - - case 3: /* bottom left portrait */ - left = 0.0; - bottom = 0.0; - break; - - case 4: /* center portrait */ - left = paper_width / 2.0 - width / 2.0; - bottom = paper_height / 2.0 - height / 2.0; - break; - - - case 8: /* top left landscape */ - left = 0.0; - bottom = paper_width - height; - break; - - case 9: /* top right landscape */ - left = paper_height - width; - bottom = paper_width - height; - break; - - case 10: /* bottom right landscape */ - left = paper_height - width; - bottom = 0.0; - break; - - case 11: /* bottom left landscape */ - left = 0.0; - bottom = 0.0; - break; - - case 12: /* center landscape */ - left = paper_height / 2.0 - width / 2.0; - bottom = paper_width / 2.0 - height / 2.0; - break; - } - - - if (paper_orientation >= 8) /* rotate with 90 degrees - landscape mode */ - { - degree = 90; - position_left = left + paper_bottom_margin; - position_bottom = bottom - paper_width - paper_left_margin; - box_left = paper_width - paper_left_margin - bottom - height; - box_bottom = left + paper_bottom_margin; - box_right = box_left + ceil(height); - box_top = box_bottom + ceil(width); - } - else /* do not rotate, portrait mode */ - { - degree = 0; - position_left = left + paper_left_margin; - position_bottom = bottom + paper_bottom_margin; - box_left = left + paper_left_margin; - box_bottom = bottom + paper_bottom_margin; - box_right = box_left + ceil(width); - box_top = box_bottom + ceil(height); - } - - depth = image_info->depth; - - if (depth > 8) - { - depth = 8; - } - - fprintf(outfile, "\n"); - fprintf(outfile, "%%%%Page: %d %d\n", page, page); - fprintf(outfile, "%%%%PageBoundingBox: %d %d %d %d\n", box_left, box_bottom, box_right, box_top); - - if (depth == 1) - { - fprintf(outfile, "/grays %d string def\n", image_info->image_width); - fprintf(outfile, "/npixels 0 def\n"); - fprintf(outfile, "/rgbindx 0 def\n"); - } - - fprintf(outfile, "%d rotate\n", degree); - fprintf(outfile, "%d %d translate\n", position_left, position_bottom); - fprintf(outfile, "%f %f scale\n", width, height); - fprintf(outfile, "%d %d %d\n", image_info->image_width, image_info->image_height, depth); - fprintf(outfile, "[%d %d %d %d %d %d]\n", image_info->image_width, 0, 0, -image_info->image_height, 0, image_info->image_height); - fprintf(outfile, "currentfile\n"); - fprintf(outfile, "/ASCII85Decode filter\n"); -#ifdef HAVE_LIBZ - if (flatdecode) - { - fprintf(outfile, "/FlateDecode filter\n"); - } -#endif - - if (image_info->colors == 3) /* what about RGBA here ? */ - { - fprintf(outfile, "false 3 colorimage\n"); - fprintf(outfile, "\n"); - } - else - { - fprintf(outfile, "image\n"); - fprintf(outfile, "\n"); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_save_ps_create_page_trailer(FILE *outfile) -{ - fprintf(outfile, "\n"); - fprintf(outfile, "showpage\n"); - fprintf(outfile, "%%%%PageTrailer\n"); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_LIBZ -/* Utility function for the PostScript output */ -static int xsane_write_compressed_a85_flatdecode(FILE *outfile, unsigned char *line, int len, int finish) -{ - static unsigned char *cbuf = NULL; - static int cbuflen = 0; - static int linelen = 0; - int i, j; - int outlen; - static int init = 0; - static z_stream s; - int ret; - int flush; - static int a85count = 0; - static guint32 a85tuple = 0; - static unsigned char a85block[6] = {0, 0, 0, 0, 0, 0}; - static int count = 0; - - DBG(DBG_proc, "xsane_write_compressed_a85_flatdecode\n"); - - if (linelen != len) - { - linelen = len; - if (cbuf != NULL) - { - free(cbuf); - } - /* buffer length = length + 0.1 * length + 12 (mandatory) */ - cbuflen = len + len / 10 + 12; - cbuf = malloc(cbuflen); - } - - if (cbuf == NULL) - { - DBG(DBG_error, "cbuf allocation failed\n"); - return 1; - } - - if (!init) - { - s.zalloc = Z_NULL; - s.zfree = Z_NULL; - s.opaque = Z_NULL; - - ret = deflateInit(&s, Z_DEFAULT_COMPRESSION); - - if (ret != Z_OK) - { - DBG(DBG_error, "deflateInit failed\n"); - free(cbuf); - return 1; - } - - init = 1; - } - - s.avail_in = len; - s.next_in = line; - - do - { - s.avail_out = cbuflen; - s.next_out = cbuf; - - flush = (finish) ? Z_FINISH : Z_NO_FLUSH; - - ret = deflate(&s, flush); - - if (ret == Z_STREAM_ERROR) - { - DBG(DBG_error, "deflate failed\n"); - free(cbuf); - return 1; - } - - outlen = cbuflen - s.avail_out; - - /* ASCII85 (base 85) encoding */ - for (i = 0; i < outlen; i++) - { - switch (a85count) - { - case 0: - a85tuple |= (cbuf[i] << 24); - a85count++; - break; - - case 1: - a85tuple |= (cbuf[i] << 16); - a85count++; - break; - - case 2: - a85tuple |= (cbuf[i] << 8); - a85count++; - break; - - case 3: - a85tuple |= (cbuf[i] << 0); - - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - - if (a85tuple == 0) - { - fprintf(outfile, "z"); - count++; - } - else - { - /* The ASCII chars must be written in reverse order, hence -> a85block[4-j] */ - for (j = 0; j < 5; j++) - { - a85block[4-j] = a85tuple % 85 + '!'; - a85tuple /= 85; - } - - for (j = 0; j < 5; j++) - { - fprintf(outfile, "%c", a85block[j]); - count++; - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - } - } - - a85count = 0; - a85tuple = 0; - break; - - default: - break; - } - } - } while (s.avail_out == 0); - - if (finish) - { - DBG(DBG_info, "finish\n"); - if (a85count > 0) - { - a85count++; - for (j = 0; j <= a85count; j++) - { - a85block[j] = a85tuple % 85 + '!'; - a85tuple /= 85; - } - /* Reverse order */ - for (j--; j > 0; j--) - { - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - fprintf(outfile, "%c", a85block[j]); - count++; - } - } - - /* ASCII85 EOD marker + newline*/ - if (count + 2 > 40) - { - fprintf(outfile, "\n"); - } - fprintf(outfile, "~>\n"); - deflateEnd(&s); - free(cbuf); - cbuf = NULL; - init = 0; - a85tuple = 0; - a85count = 0; - cbuflen = 0; - linelen = 0; - count = 0; - } - - return 0; -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* Utility function for the PostScript output */ -static int xsane_write_compressed_a85(FILE *outfile, unsigned char *line, int len, int finish) -{ - static unsigned char *cbuf = NULL; - static int cbuflen = 0; - static int linelen = 0; - int i, j; - int outlen; - static int a85count = 0; - static guint32 a85tuple = 0; - static unsigned char a85block[6] = {0, 0, 0, 0, 0, 0}; - static int count = 0; - - DBG(DBG_proc, "xsane_write_compressed_a85\n"); - - cbuf = line; - outlen = len; - - /* ASCII85 (base 85) encoding */ - for (i = 0; i < outlen; i++) - { - switch (a85count) - { - case 0: - a85tuple |= (cbuf[i] << 24); - a85count++; - break; - - case 1: - a85tuple |= (cbuf[i] << 16); - a85count++; - break; - - case 2: - a85tuple |= (cbuf[i] << 8); - a85count++; - break; - - case 3: - a85tuple |= (cbuf[i] << 0); - - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - - if (a85tuple == 0) - { - fprintf(outfile, "z"); - count++; - } - else - { - /* The ASCII chars must be written in reverse order, hence -> a85block[4-j] */ - for (j = 0; j < 5; j++) - { - a85block[4-j] = a85tuple % 85 + '!'; - a85tuple /= 85; - } - - for (j = 0; j < 5; j++) - { - fprintf(outfile, "%c", a85block[j]); - count++; - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - } - } - - a85count = 0; - a85tuple = 0; - break; - - default: - break; - } - } - - if (finish) - { - DBG(DBG_info, "finish\n"); - if (a85count > 0) - { - a85count++; - for (j = 0; j <= a85count; j++) - { - a85block[j] = a85tuple % 85 + '!'; - a85tuple /= 85; - } - /* Reverse order */ - for (j--; j > 0; j--) - { - if (count == 40) - { - fprintf(outfile, "\n"); - count = 0; - } - fprintf(outfile, "%c", a85block[j]); - count++; - } - } - - /* ASCII85 EOD marker + newline*/ - if (count + 2 > 40) - { - fprintf(outfile, "\n"); - } - fprintf(outfile, "~>\n"); - a85tuple = 0; - a85count = 0; - cbuflen = 0; - linelen = 0; - count = 0; - } - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y; - int bytes_per_line = (image_info->image_width+7)/8; - int ret; - unsigned char *line; - - DBG(DBG_proc, "xsane_save_ps_pdf_bw\n"); - - *cancel_save = 0; - - line = (unsigned char *) malloc(bytes_per_line); - - if (line == NULL) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s malloc failed", ERR_DURING_SAVE); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - return (*cancel_save); - } - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < bytes_per_line; x++) - { - line[x] = fgetc(imagefile) ^ 255; - } - -#ifdef HAVE_LIBZ - if (flatdecode) - { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); - } - else -#endif - { - ret = xsane_write_compressed_a85(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); - } - - if ((ret != 0) || (ferror(outfile))) - { - char buf[255]; - - if (ret == 0) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - } - else - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_ZLIB); - } - - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - - break; - } - - if (*cancel_save) - { - break; - } - } - - free(line); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y; - int ret; - unsigned char *line; - - DBG(DBG_proc, "xsane_save_ps_pdf_gray\n"); - - *cancel_save = 0; - - line = (unsigned char *) malloc(image_info->image_width); - - if (line == NULL) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s malloc failed", ERR_DURING_SAVE); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - return (*cancel_save); - } - - for (y = 0; y < image_info->image_height; y++) - { - if (image_info->depth > 8) /* reduce 16 bit images */ - { - guint16 val; - - for (x = 0; x < image_info->image_width; x++) - { - fread(&val, 2, 1, imagefile); - line[x] = val/256; - } - } - else /* 8 bits/sample */ - { - for (x = 0; x < image_info->image_width; x++) - { - line[x] = fgetc(imagefile); - } - } - -#ifdef HAVE_LIBZ - if (flatdecode) - { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); - } - else -#endif - { - ret = xsane_write_compressed_a85(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); - } - - if ((ret != 0) || (ferror(outfile))) - { - char buf[255]; - - if (ret == 0) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - } - else - { - snprintf(buf, sizeof(buf), "%s zlib error or memory allocation problem", ERR_DURING_SAVE); - } - - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - - break; - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (*cancel_save) - { - break; - } - } - - free(line); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *image_info, int flatdecode, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x, y; - int ret; - unsigned char *line, *linep; - - DBG(DBG_proc, "xsane_save_ps_pdf_color\n"); - - *cancel_save = 0; - - line = (unsigned char *) malloc(image_info->image_width * 3); - - if (line == NULL) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s malloc failed", ERR_DURING_SAVE); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - return (*cancel_save); - } - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - linep = line; - - if (image_info->depth > 8) /* reduce 16 bit images */ - { - guint16 val; - - for (x = 0; x < image_info->image_width; x++) - { - fread(&val, 2, 1, imagefile); - *linep++ = val/256; - fread(&val, 2, 1, imagefile); - *linep++ = val/256; - fread(&val, 2, 1, imagefile); - *linep++ = val/256; - } - } - else /* 8 bits/sample */ - { - for (x = 0; x < image_info->image_width; x++) - { - *linep++ = fgetc(imagefile); - *linep++ = fgetc(imagefile); - *linep++ = fgetc(imagefile); - } - } - -#ifdef HAVE_LIBZ - if (flatdecode) - { - ret = xsane_write_compressed_a85_flatdecode(outfile, line, (image_info->image_width * 3), (y == image_info->image_height - 1)); - } - else -#endif - { - ret = xsane_write_compressed_a85(outfile, line, (image_info->image_width * 3), (y == image_info->image_height - 1)); - } - - if ((ret != 0) || (ferror(outfile))) - { - char buf[255]; - - if (ret == 0) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - } - else - { - snprintf(buf, sizeof(buf), "%s zlib error or memory allocation problem", ERR_DURING_SAVE); - } - - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - - break; - } - - if (*cancel_save) - { - break; - } - } - - free(line); - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_ps_page(FILE *outfile, int page, - FILE *imagefile, Image_info *image_info, float width, float height, - int paper_left_margin, int paper_bottom_margin, int paperheight, int paperwidth, int paper_orientation, - int flatdecode, - GtkProgressBar *progress_bar, int *cancel_save) -{ - DBG(DBG_proc, "xsane_save_ps_page\n"); - - xsane_save_ps_create_page_header(outfile, page, - image_info, width, height, - paper_left_margin, paper_bottom_margin, paperheight, paperwidth, paper_orientation, - flatdecode, - progress_bar); - - if (image_info->colors == 1) /* lineart, halftone, grayscale */ - { - if (image_info->depth == 1) /* lineart, halftone */ - { - xsane_save_ps_pdf_bw(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - else /* grayscale */ - { - xsane_save_ps_pdf_gray(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - } - else /* color RGB */ - { - xsane_save_ps_pdf_color(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - - xsane_save_ps_create_page_trailer(outfile); - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, - int paper_left_margin, int paper_bottom_margin, int paperheight, int paperwidth, int paper_orientation, - int flatdecode, - GtkProgressBar *progress_bar, int *cancel_save) -{ - DBG(DBG_proc, "xsane_save_ps\n"); - - *cancel_save = 0; - - xsane_save_ps_create_document_header(outfile, 1 /* pages */, flatdecode); - - xsane_save_ps_page(outfile, 1 /* page */, - imagefile, image_info, width, height, - paper_left_margin, paper_bottom_margin, paperheight, paperwidth, paper_orientation, - flatdecode, - progress_bar, cancel_save); - - xsane_save_ps_create_document_trailer(outfile, 0 /* we defined pages at beginning */); - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* The pdf_xref struct holds byte offsets from the beginning of the PDF - * file to each object of the PDF file -- used to build the xref table - */ -struct pdf_xref -{ - unsigned long obj5; /* obj 5 0 */ - unsigned long obj6; /* obj 6 0 */ - unsigned long obj7; /* obj 7 0 */ - unsigned long xref; /* xref table */ - unsigned long slen; /* length of image stream */ - unsigned long slenp; /* position of image stream length */ -}; - -static void xsane_save_pdf_create_header(FILE *outfile, Image_info *image_info, - float width, float height, - int paper_left_margin, int paper_bottom_margin, - int paper_width, int paper_height, - int paper_orientation, int flatdecode, - GtkProgressBar *progress_bar, struct pdf_xref *xref) -{ - int position_left, position_bottom, box_left, box_bottom, box_right, box_top, depth; - int left, bottom; - float rad; - - DBG(DBG_proc, "xsane_save_pdf_create_header\n"); - - switch (paper_orientation) - { - default: - case 0: /* top left portrait */ - left = 0.0; - bottom = paper_height - height; - break; - - case 1: /* top right portrait */ - left = paper_width - width; - bottom = paper_height - height; - break; - - case 2: /* bottom right portrait */ - left = paper_width - width; - bottom = 0.0; - break; - - case 3: /* bottom left portrait */ - left = 0.0; - bottom = 0.0; - break; - - case 4: /* center portrait */ - left = paper_width / 2.0 - width / 2.0; - bottom = paper_height / 2.0 - height / 2.0; - break; - - - case 8: /* top left landscape */ - left = 0.0; - bottom = paper_width - height; - break; - - case 9: /* top right landscape */ - left = paper_height - width; - bottom = paper_width - height; - break; - - case 10: /* bottom right landscape */ - left = paper_height - width; - bottom = 0.0; - break; - - case 11: /* bottom left landscape */ - left = 0.0; - bottom = 0.0; - break; - - case 12: /* center landscape */ - left = paper_height / 2.0 - width / 2.0; - bottom = paper_width / 2.0 - height / 2.0; - break; - } - - - if (paper_orientation >= 8) /* rotate with 90 degrees - landscape mode */ - { - rad = -M_PI_2; /* pi / 2 */ - position_left = left + paper_bottom_margin; - position_bottom = bottom - paper_width - paper_left_margin; - box_left = paper_width - paper_left_margin - bottom - height; - box_bottom = left + paper_bottom_margin; - box_right = box_left + ceil(height); - box_top = box_bottom + ceil(width); - } - else /* do not rotate, portrait mode */ - { - rad = 0; - position_left = left + paper_left_margin; - position_bottom = bottom + paper_bottom_margin; - box_left = left + paper_left_margin; - box_bottom = bottom + paper_bottom_margin; - box_right = box_left + ceil(width); - box_top = box_bottom + ceil(height); - } - - depth = image_info->depth; - - if (depth > 8) - { - depth = 8; - } - - fprintf(outfile, "%%PDF-1.4\n"); - fprintf(outfile, "\n"); - fprintf(outfile, "1 0 obj\n"); - fprintf(outfile, " << /Type /Catalog\n"); - fprintf(outfile, " /Outlines 2 0 R\n"); - fprintf(outfile, " /Pages 3 0 R\n"); - fprintf(outfile, " >>\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - fprintf(outfile, "2 0 obj\n"); - fprintf(outfile, " << /Type /Outlines\n"); - fprintf(outfile, " /Count 0\n"); - fprintf(outfile, " >>\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - fprintf(outfile, "3 0 obj\n"); - fprintf(outfile, " << /Type /Pages\n"); - fprintf(outfile, " /Kids [4 0 R]\n"); - fprintf(outfile, " /Count 1\n"); - fprintf(outfile, " >>\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - fprintf(outfile, "4 0 obj\n"); - fprintf(outfile, " << /Type /Page\n"); - fprintf(outfile, " /Parent 3 0 R\n"); - fprintf(outfile, " /MediaBox [%d %d %d %d]\n", box_left, box_bottom, box_right, box_top); - fprintf(outfile, " /Contents 5 0 R\n"); - fprintf(outfile, " /Resources << /ProcSet 6 0 R >>\n"); - fprintf(outfile, " >>\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - - /* Offset of object 5, for xref */ - xref->obj5 = ftell(outfile); - - fprintf(outfile, "5 0 obj\n"); - fprintf(outfile, " << /Length >>\n"); - - /* Position of the stream length, to be written later on */ - xref->slenp = ftell(outfile) - 15; - - fprintf(outfile, "stream\n"); - - /* Start of the stream data */ - xref->slen = ftell(outfile); - - fprintf(outfile, "q\n"); - fprintf(outfile, "1 0 0 1 %d %d cm\n", position_left, position_bottom); /* translate */ - fprintf(outfile, "%f %f -%f %f 0 0 cm\n", cos(rad), sin(rad), sin(rad), cos(rad)); /* rotate */ - fprintf(outfile, "%f 0 0 %f 0 0 cm\n", width, height); /* scale */ - fprintf(outfile, "BI\n"); - fprintf(outfile, " /W %d\n", image_info->image_width); - fprintf(outfile, " /H %d\n", image_info->image_height); - - if (image_info->colors == 3) /* what about RGBA here ? */ - { - fprintf(outfile, " /CS /RGB\n"); - fprintf(outfile, " /BPC %d\n", depth); - } - else if (image_info->depth == 1) /* BW */ - { - fprintf(outfile, " /CS /G\n"); - fprintf(outfile, " /BPC 1\n"); - } - else /* gray */ - { - fprintf(outfile, " /CS /G\n"); - fprintf(outfile, " /BPC 8\n"); - } - -#ifdef HAVE_LIBZ - if (flatdecode) - { - fprintf(outfile, " /F [/A85 /FlateDecode]\n"); - } - else - { - fprintf(outfile, " /F /A85\n"); - } -#else - fprintf(outfile, " /F /A85\n"); -#endif - fprintf(outfile, "ID\n"); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_pdf(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, - int paper_left_margin, int paper_bottom_margin, int paperheight, int paperwidth, int paper_orientation, - int flatdecode, - GtkProgressBar *progress_bar, int *cancel_save) -{ - struct tm *t; - time_t tt; - struct pdf_xref xref; - - DBG(DBG_proc, "xsane_save_pdf\n"); - - *cancel_save = 0; - - xsane_save_pdf_create_header(outfile, image_info, width, height, - paper_left_margin, paper_bottom_margin, paperheight, paperwidth, paper_orientation, - flatdecode, - progress_bar, &xref); - - if (image_info->colors == 1) /* lineart, halftone, grayscale */ - { - if (image_info->depth == 1) /* lineart, halftone */ - { - xsane_save_ps_pdf_bw(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - else /* grayscale */ - { - xsane_save_ps_pdf_gray(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - } - else /* color RGB */ - { - xsane_save_ps_pdf_color(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); - } - - /* PDF trailer */ - fprintf(outfile, "EI\n"); - fprintf(outfile, "Q\n"); - - /* Go back and write the length of the stream */ - xref.slen = ftell(outfile) - xref.slen - 1; - fseek(outfile, xref.slenp, SEEK_SET); - fprintf(outfile, "%lu", xref.slen); - fseek(outfile, 0L, SEEK_END); - - fprintf(outfile, "endstream\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - - /* Offset of object 6, for xref */ - xref.obj6 = ftell(outfile); - - fprintf(outfile, "6 0 obj\n"); - fprintf(outfile, " [/PDF]\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - - /* Offset of object 7, for xref */ - xref.obj7 = ftell(outfile); - - fprintf(outfile, "7 0 obj\n"); - fprintf(outfile, " << /Title (XSane scanned image)\n"); - fprintf(outfile, " /Creator (XSane version %s (sane %d.%d) - by Oliver Rauch)\n", - VERSION, - SANE_VERSION_MAJOR(xsane.sane_backend_versioncode), - SANE_VERSION_MINOR(xsane.sane_backend_versioncode)); - fprintf(outfile, " /Producer (XSane %s)\n", VERSION); - - tt = time(NULL); - t = gmtime(&tt); - - fprintf(outfile, " /CreationDate (D:%04d%02d%02d%02d%02d%02d+00'00')\n", - 1900 + t->tm_year, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); - fprintf(outfile, " >>\n"); - fprintf(outfile, "endobj\n"); - fprintf(outfile, "\n"); - - /* Offset of xref, for startxref below */ - xref.xref = ftell(outfile); - - fprintf(outfile, "xref\n"); - fprintf(outfile, "0 8\n"); - fprintf(outfile, "0000000000 65535 f \n"); - fprintf(outfile, "0000000010 00000 n \n"); - fprintf(outfile, "0000000094 00000 n \n"); - fprintf(outfile, "0000000153 00000 n \n"); - fprintf(outfile, "0000000229 00000 n \n"); - fprintf(outfile, "%010lu 00000 n \n", xref.obj5); - fprintf(outfile, "%010lu 00000 n \n", xref.obj6); - fprintf(outfile, "%010lu 00000 n \n", xref.obj7); - fprintf(outfile, "\n"); - fprintf(outfile, "trailer\n"); - fprintf(outfile, " << /Size 8\n"); - fprintf(outfile, " /Root 1 0 R\n"); - fprintf(outfile, " /Info 7 0 R\n"); - fprintf(outfile, " >>\n"); - fprintf(outfile, "startxref\n"); - fprintf(outfile, "%lu\n", xref.xref); - fprintf(outfile, "%%%%EOF\n"); - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef HAVE_LIBJPEG - -typedef struct -{ - struct jpeg_error_mgr pub;/* "public" fields */ - int *cancel_save; -} xsane_jpeg_error_mgr; - -typedef xsane_jpeg_error_mgr *xsane_jpeg_error_mgr_ptr; - -static void xsane_jpeg_error_exit(j_common_ptr cinfo) -{ - char buf[256]; - - /* cinfo->err points to a xsane_jpeg_error_mgr struct */ - xsane_jpeg_error_mgr_ptr xsane_jpeg_error_mgr_data = (xsane_jpeg_error_mgr_ptr) cinfo->err; - - - if (!*xsane_jpeg_error_mgr_data->cancel_save) - { - /* output original error message */ - (*cinfo->err->output_message) (cinfo); - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBJPEG); - xsane_back_gtk_error(buf, TRUE); - } - - *xsane_jpeg_error_mgr_data->cancel_save = 1; -} - -int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save) -{ - unsigned char *data; - char buf[256]; - int components = 1; - int x,y; - int bytespp = 1; - struct jpeg_compress_struct cinfo; - xsane_jpeg_error_mgr jerr; - JSAMPROW row_pointer[1]; - - DBG(DBG_proc, "xsane_save_jpeg\n"); - - *cancel_save = 0; - - if (image_info->colors == 3) - { - components = 3; - } - - if (image_info->depth > 8) - { - bytespp = 2; - } - - data = malloc(image_info->image_width * components * bytespp); - - if (!data) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - cinfo.err = jpeg_std_error(&jerr.pub); - jerr.pub.error_exit = xsane_jpeg_error_exit; - jerr.cancel_save = cancel_save; - - jpeg_create_compress(&cinfo); - jpeg_stdio_dest(&cinfo, outfile); - cinfo.image_width = image_info->image_width; - cinfo.image_height = image_info->image_height; - cinfo.input_components = components; - if (image_info->colors == 3) - { - cinfo.in_color_space = JCS_RGB; - } - else - { - cinfo.in_color_space = JCS_GRAYSCALE; - } - jpeg_set_defaults(&cinfo); - - jpeg_set_quality(&cinfo, quality, TRUE); - - cinfo.density_unit = 1; /* dpi */ - cinfo.X_density = image_info->resolution_x; - cinfo.Y_density = image_info->resolution_y; - - jpeg_start_compress(&cinfo, TRUE); - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (image_info->depth == 1) - { - int byte = 0; - int mask = 128; - - for (x = 0; x < image_info->image_width; x++) - { - - if ( (x % 8) == 0) - { - byte = fgetc(imagefile); - mask = 128; - } - - if (byte & mask) - { - data[x] = 0; - } - else - { - data[x] = 255; - } - mask >>= 1; - } - } - else if (image_info->depth > 8) /* jpeg does not support 16 bits/sample, so we reduce it at first */ - { - guint16 *data16 = (guint16 *) data; - fread(data, components * 2, image_info->image_width, imagefile); - for (x = 0; x < image_info->image_width * components; x++) - { - data[x] = data16[x] / 256; - } - - } - else /* 8 bits/sample */ - { - fread(data, components, image_info->image_width, imagefile); - } - - row_pointer[0] = data; - jpeg_write_scanlines(&cinfo, row_pointer, 1); - - if (*cancel_save) - { - cinfo.image_height = y; /* correct image height */ - break; - } - } - - jpeg_finish_compress(&cinfo); - free(data); - - return (*cancel_save); -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_LIBTIFF -/* pages = 0 => single page tiff, page = 0 */ -/* pages > 0 => page = [1 .. pages] */ -int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Image_info *image_info, int quality, - GtkProgressBar *progress_bar, int *cancel_save) -{ - char *data; - char buf[256]; - int y, w; - int components; - int compression; - int bytes; - struct tm *ptm; - time_t now; - - DBG(DBG_proc, "xsane_save_tiff_page(%d/%d\n", page, pages); - - *cancel_save = 0; - - if (image_info->depth == 1) - { - compression = preferences.tiff_compression1_nr; - } - else if (image_info->depth == 8) - { - compression = preferences.tiff_compression8_nr; - } - else - { - compression = preferences.tiff_compression16_nr; - } - - - if (image_info->colors == 3) - { - components = 3; - } - else - { - components = 1; - } - - if (image_info->depth <= 8) - { - bytes = 1; - } - else - { - bytes = 2; - } - - data = (char *)_TIFFmalloc(image_info->image_width * components * bytes); - - if (!data) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - TIFFSetField(tiffile, TIFFTAG_IMAGEWIDTH, image_info->image_width); - TIFFSetField(tiffile, TIFFTAG_IMAGELENGTH, image_info->image_height); - TIFFSetField(tiffile, TIFFTAG_BITSPERSAMPLE, image_info->depth); - TIFFSetField(tiffile, TIFFTAG_SAMPLESPERPIXEL, components); - TIFFSetField(tiffile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); - TIFFSetField(tiffile, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); - TIFFSetField(tiffile, TIFFTAG_COMPRESSION, compression); - TIFFSetField(tiffile, TIFFTAG_SOFTWARE, "xsane"); - - time(&now); - ptm = localtime(&now); - sprintf(buf, "%04d:%02d:%02d %02d:%02d:%02d", 1900+ptm->tm_year, ptm->tm_mon+1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec); - TIFFSetField(tiffile, TIFFTAG_DATETIME, buf); - - if (image_info->resolution_x > 0.0) - { - TIFFSetField(tiffile, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH); - TIFFSetField(tiffile, TIFFTAG_XRESOLUTION, image_info->resolution_x); - TIFFSetField(tiffile, TIFFTAG_YRESOLUTION, image_info->resolution_y); - } - - if (compression == COMPRESSION_JPEG) - { - TIFFSetField(tiffile, TIFFTAG_JPEGQUALITY, quality); - TIFFSetField(tiffile, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RAW); /* should be default, but to be sure */ - } - - if (image_info->colors == 3) - { - TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); - } - else - { - if (image_info->depth == 1) /* lineart */ - { - TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE); - } - else /* grayscale */ - { - TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); - } - } - - TIFFSetField(tiffile, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tiffile, -1)); - - if (pages) - { - TIFFSetField(tiffile, TIFFTAG_SUBFILETYPE, FILETYPE_PAGE); - TIFFSetField(tiffile, TIFFTAG_PAGENUMBER, page, pages); - } - - w = TIFFScanlineSize(tiffile); - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - fread(data, 1, w, imagefile); - - if (TIFFWriteScanline(tiffile, data, y, 0) != 1) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s", ERR_DURING_SAVE); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - - if (pages) - { - TIFFWriteDirectory(tiffile); - } - - _TIFFfree(data); - return (*cancel_save); -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_LIBPNG -#ifdef HAVE_LIBZ -int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save) -{ - png_structp png_ptr; - png_infop png_info_ptr; - png_bytep row_ptr; - png_color_8 sig_bit; - unsigned char *data; - char buf[256]; - int colortype, components, byte_width; - int y; - - DBG(DBG_proc, "xsane_save_png\n"); - - *cancel_save = 0; - - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); - if (!png_ptr) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - png_info_ptr = png_create_info_struct(png_ptr); - if (!png_info_ptr) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBTIFF); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - if (setjmp(png_ptr->jmpbuf)) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG); - xsane_back_gtk_error(buf, TRUE); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - return -1; /* error */ - } - - byte_width = image_info->image_width; - - if (image_info->colors == 4) /* RGBA */ - { - components = 4; - colortype = PNG_COLOR_TYPE_RGB_ALPHA; - } - else if (image_info->colors == 3) /* RGB */ - { - components = 3; - colortype = PNG_COLOR_TYPE_RGB; - } - else /* gray or black/white */ - { - components = 1; - colortype = PNG_COLOR_TYPE_GRAY; - } - - png_init_io(png_ptr, outfile); - png_set_compression_level(png_ptr, compression); - png_set_IHDR(png_ptr, png_info_ptr, image_info->image_width, image_info->image_height, image_info->depth, - colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - if (image_info->colors >=3) - { - sig_bit.red = image_info->depth; - sig_bit.green = image_info->depth; - sig_bit.blue = image_info->depth; - - if (image_info->colors == 4) - { - sig_bit.alpha = image_info->depth; - } - - } - else - { - sig_bit.gray = image_info->depth; - - if (image_info->depth == 1) - { - byte_width = (image_info->image_width+7)/8; - png_set_invert_mono(png_ptr); - } - } - - png_set_sBIT(png_ptr, png_info_ptr, &sig_bit); -#if defined(PNG_pHYs_SUPPORTED) - png_set_pHYs(png_ptr, png_info_ptr, - image_info->resolution_x * 100.0 / 2.54, - image_info->resolution_y * 100.0 / 2.54, PNG_RESOLUTION_METER); -#endif - png_write_info(png_ptr, png_info_ptr); - png_set_shift(png_ptr, &sig_bit); - - data = malloc(image_info->image_width * components); - - if (!data) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); - xsane_back_gtk_error(buf, TRUE); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - return -1; /* error */ - } - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - fread(data, components, byte_width, imagefile); - - row_ptr = data; - png_write_rows(png_ptr, &row_ptr, 1); /* errors are caught by test sor setjmp(...) */ - - if (*cancel_save) - { - break; - } - } - - free(data); - png_write_end(png_ptr, png_info_ptr); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - - return (*cancel_save); -} -#endif -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_LIBPNG -#ifdef HAVE_LIBZ -int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save) -{ - png_structp png_ptr; - png_infop png_info_ptr; - png_bytep row_ptr; - png_color_8 sig_bit; /* should be 16, but then I get a warning about wrong type */ - unsigned char *data; - char buf[256]; - int colortype, components; - int x,y; - guint16 val; - - DBG(DBG_proc, "xsane_save_png16\n"); - - *cancel_save = 0; - - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); - if (!png_ptr) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - png_info_ptr = png_create_info_struct(png_ptr); - if (!png_info_ptr) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - if (setjmp(png_ptr->jmpbuf)) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG); - xsane_back_gtk_error(buf, TRUE); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - return -1; /* error */ - } - - if (image_info->colors == 4) /* RGBA */ - { - components = 4; - colortype = PNG_COLOR_TYPE_RGB_ALPHA; - } - else if (image_info->colors == 3) /* RGB */ - { - components = 3; - colortype = PNG_COLOR_TYPE_RGB; - } - else /* gray or black/white */ - { - components = 1; - colortype = PNG_COLOR_TYPE_GRAY; - } - - png_init_io(png_ptr, outfile); - png_set_compression_level(png_ptr, compression); - png_set_IHDR(png_ptr, png_info_ptr, image_info->image_width, image_info->image_height, 16, - colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - sig_bit.red = image_info->depth; - sig_bit.green = image_info->depth; - sig_bit.blue = image_info->depth; - sig_bit.alpha = image_info->depth; - sig_bit.gray = image_info->depth; - - png_set_sBIT(png_ptr, png_info_ptr, &sig_bit); - png_write_info(png_ptr, png_info_ptr); - png_set_shift(png_ptr, &sig_bit); - png_set_packing(png_ptr); - - data = malloc(image_info->image_width * components * 2); - - if (!data) - { - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM); - xsane_back_gtk_error(buf, TRUE); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - return -1; /* error */ - } - - for (y = 0; y < image_info->image_height; y++) - { - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - for (x = 0; x < image_info->image_width * components; x++) /* this must be changed in dependance of endianess */ - { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - data[x*2+0] = val / 256; /* write data in network order (MSB first) */ - data[x*2+1] = val & 255; - } - - row_ptr = data; - png_write_rows(png_ptr, &row_ptr, 1); - if (*cancel_save) - { - break; - } - } - - free(data); - png_write_end(png_ptr, png_info_ptr); - png_destroy_write_struct(&png_ptr, (png_infopp) 0); - - return (*cancel_save); -} -#endif -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_pnm_16_ascii_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x,y; - guint16 val; - int count = 0; - - DBG(DBG_proc, "xsane_save_pnm_16_ascii_gray\n"); - - *cancel_save = 0; - - for (y = 0; y < image_info->image_height; y++) - { - for (x = 0; x < image_info->image_width; x++) - { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fprintf(outfile, "%d ", val); - - if (++count >= 10) - { - fprintf(outfile, "\n"); - count = 0; - } - } - fprintf(outfile, "\n"); - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - count = 0; - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - if (*cancel_save) - { - break; - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_pnm_16_ascii_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x,y; - guint16 val; - int count = 0; - - DBG(DBG_proc, "xsane_save_pnm_16_ascii_color\n"); - - *cancel_save = 0; - - for (y = 0; y < image_info->image_height; y++) - { - for (x = 0; x < image_info->image_width; x++) - { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fprintf(outfile, "%d ", val); - - fread(&val, 2, 1, imagefile); - fprintf(outfile, "%d ", val); - - fread(&val, 2, 1, imagefile); - fprintf(outfile, "%d ", val); - - if (++count >= 3) - { - fprintf(outfile, "\n"); - count = 0; - } - } - fprintf(outfile, "\n"); - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - count = 0; - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (*cancel_save) - { - break; - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_pnm_16_binary_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x,y; - guint16 val; - - DBG(DBG_proc, "xsane_save_pnm_16_binary_gray\n"); - - *cancel_save = 0; - - for (y = 0; y < image_info->image_height; y++) - { - for (x = 0; x < image_info->image_width; x++) - { - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_save_pnm_16_binary_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - int x,y; - guint16 val; - - DBG(DBG_proc, "xsane_save_pnm_16_binary_color\n"); - - *cancel_save = 0; - - for (y = 0; y < image_info->image_height; y++) - { - for (x = 0; x < image_info->image_width; x++) - { - /* red */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ - - /* green */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ - - /* blue */ - fread(&val, 2, 1, imagefile); /* get data in machine order */ - fputc(val / 256, outfile); /* MSB fist */ - fputc(val & 255, outfile); /* LSB */ - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - - if (ferror(outfile)) - { - char buf[255]; - - snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, strerror(errno)); - DBG(DBG_error, "%s\n", buf); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - *cancel_save = 1; - break; - } - - if (*cancel_save) - { - break; - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save) -{ - DBG(DBG_proc, "xsane_save_pnm_16\n"); - - *cancel_save = 0; - - xsane_write_pnm_header(outfile, image_info, preferences.save_pnm16_as_ascii); - - if (image_info->colors > 1) - { - if (preferences.save_pnm16_as_ascii) - { - xsane_save_pnm_16_ascii_color(outfile, imagefile, image_info, progress_bar, cancel_save); - } - else - { - xsane_save_pnm_16_binary_color(outfile, imagefile, image_info, progress_bar, cancel_save); - } - } - else - { - if (preferences.save_pnm16_as_ascii) - { - xsane_save_pnm_16_ascii_gray(outfile, imagefile, image_info, progress_bar, cancel_save); - } - else - { - xsane_save_pnm_16_binary_gray(outfile, imagefile, image_info, progress_bar, cancel_save); - } - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* 0=ok, <0=error, 1=canceled */ -int xsane_save_image_as_lineart(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save) -{ - FILE *outfile; - FILE *infile; - char buf[256]; - Image_info image_info; - - *cancel_save = 0; - - outfile = fopen(output_filename, "wb"); /* b = binary mode for win32 */ - - if (outfile == 0) - { - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, output_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - return -2; - } - - infile = fopen(input_filename, "rb"); /* read binary (b for win32) */ - if (infile == 0) - { - char buf[256]; - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - fclose(outfile); - remove(output_filename); /* remove already created output file */ - return -1; - } - - xsane_read_pnm_header(infile, &image_info); - - xsane_save_grayscale_image_as_lineart(outfile, infile, &image_info, progress_bar, cancel_save); - - fclose(infile); - fclose(outfile); - - if (*cancel_save) /* remove output file if saving has been canceled */ - { - remove(output_filename); - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_save_image_as_text(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save) -{ - char *arg[1000]; - char buf[256]; - int argnr; - pid_t pid; - int i; - int pipefd[2]; /* for progress communication with gocr */ - FILE *ocr_progress = NULL; - - DBG(DBG_proc, "xsane_save_image_as_text\n"); - - argnr = xsane_parse_options(preferences.ocr_command, arg); - - arg[argnr++] = strdup(preferences.ocr_inputfile_option); - arg[argnr++] = strdup(input_filename); - - arg[argnr++] = strdup(preferences.ocr_outputfile_option); - arg[argnr++] = strdup(output_filename); - - if (preferences.ocr_use_gui_pipe) - { - if (!pipe(pipefd)) /* success */ - { - DBG(DBG_info, "xsane_save_image_as_text: created pipe for progress communication\n"); - - arg[argnr++] = strdup(preferences.ocr_gui_outfd_option); - - snprintf(buf, sizeof(buf),"%d", pipefd[1]); - arg[argnr++] = strdup(buf); - } - else - { - DBG(DBG_info, "xsane_save_image_as_text: could not create pipe for progress communication\n"); - pipefd[0] = 0; - pipefd[1] = 0; - } - } - else - { - DBG(DBG_info, "xsane_save_image_as_text: no pipe for progress communication requested\n"); - pipefd[0] = 0; - pipefd[1] = 0; - } - - arg[argnr] = 0; - -#ifndef HAVE_OS2_H - pid = fork(); - - if (pid == 0) /* new process */ - { - FILE *ipc_file = NULL; - - if (xsane.ipc_pipefd[0]) /* did we create the progress pipe? */ - { - close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ - ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); - } - - if (pipefd[0]) /* did we create the progress pipe? */ - { - close(pipefd[0]); /* close reading end of pipe */ - } - - DBG(DBG_info, "trying to change user id for new subprocess:\n"); - DBG(DBG_info, "old effective uid = %d\n", (int) geteuid()); - setuid(getuid()); - DBG(DBG_info, "new effective uid = %d\n", (int) geteuid()); - - - execvp(arg[0], arg); /* does not return if successfully */ - DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_OCR_CMD, preferences.ocr_command); - - /* send error message via IPC pipe to parent process */ - if (ipc_file) - { - fprintf(ipc_file, "%s %s:\n%s", ERR_FAILED_EXEC_OCR_CMD, preferences.ocr_command, strerror(errno)); - fflush(ipc_file); /* make sure message is displayed */ - fclose(ipc_file); - } - - _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */ - } - -#else - pid = spawnvp(P_NOWAIT, arg[0], arg); - if (pid == -1) - { - DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_OCR_CMD, preferences.ocr_command); - } -#endif - - if (pipefd[1]) - { - close(pipefd[1]); /* close writing end of pipe */ - ocr_progress = fdopen(pipefd[0], "r"); /* open reading end of pipe as file */ - } - - for (i=0; i 11.0) - { - fprogress = 1.0; - } - - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), fprogress); - } - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - } - else /* no pipe available */ - { - while (pid) - { - int status = 0; - pid_t pid_status = waitpid(pid, &status, WNOHANG); - - if (pid == pid_status) - { - pid = 0; /* ok, child process has terminated */ - } - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - } - - if (pipefd[0]) - { - fclose(ocr_progress); /* close reading end of pipe */ - } - - return (*cancel_save); -} -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* save image in destination file format. lineart images that are stored as grayscale image are reduced to lineart! */ -int xsane_save_image_as(char *output_filename, char *input_filename, int output_format, GtkProgressBar *progress_bar, int *cancel_save) -{ - FILE *outfile; - FILE *infile; - char buf[256]; - Image_info image_info; - char lineart_filename[PATH_MAX]; - int remove_input_file = FALSE; - - DBG(DBG_proc, "xsane_save_image_as(output_file=%s, input_file=%s, type=%d)\n", output_filename, input_filename, output_format); - - *cancel_save = 0; - - infile = fopen(input_filename, "rb"); /* read binary (b for win32) */ - if (infile == 0) - { - char buf[256]; - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - return -1; - } - - xsane_read_pnm_header(infile, &image_info); - - if ((image_info.reduce_to_lineart) && (output_format != XSANE_PNM)) - { - DBG(DBG_info, "original image is a lineart => reduce to lineart\n"); - fclose(infile); - xsane_back_gtk_make_path(sizeof(lineart_filename), lineart_filename, 0, 0, "xsane-conversion-", xsane.dev_name, ".pbm", XSANE_PATH_TMP); - - snprintf(buf, sizeof(buf), "%s: %s", PROGRESS_PACKING_DATA, output_filename); - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), buf); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - xsane_save_image_as_lineart(lineart_filename, input_filename, progress_bar, cancel_save); - - input_filename = lineart_filename; - remove_input_file = TRUE; - - infile = fopen(input_filename, "rb"); /* read binary (b for win32) */ - if (infile == 0) - { - char buf[256]; - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - return -1; - } - - xsane_read_pnm_header(infile, &image_info); - } - - snprintf(buf, sizeof(buf), "%s: %s", PROGRESS_SAVING_DATA, output_filename); - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), buf); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - -#ifdef HAVE_LIBTIFF - if (output_format == XSANE_TIFF) /* routines that want to have filename for saving */ - { - TIFF *tiffile; - - if (xsane_create_secure_file(output_filename)) /* remove possibly existing symbolic links for security */ - { - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, output_filename); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - tiffile = TIFFOpen(output_filename, "w"); - if (!tiffile) - { - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_OPEN_FAILED, output_filename); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - xsane_save_tiff_page(tiffile, 0, 0, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save); - - TIFFClose(tiffile); - } - else /* routines that want to have filedescriptor for saving */ -#endif /* HAVE_LIBTIFF */ - { - if (xsane_create_secure_file(output_filename)) /* remove possibly existing symbolic links for security */ - { - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, output_filename); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - outfile = fopen(output_filename, "wb"); /* b = binary mode for win32 */ - - if (outfile != 0) - { - switch(output_format) - { - case XSANE_PNM: - if (image_info.reduce_to_lineart) - { - xsane_save_grayscale_image_as_lineart(outfile, infile, &image_info, progress_bar, cancel_save); - } - else - { - xsane_copy_file(outfile, infile, progress_bar, cancel_save); - } - break; - -#ifdef HAVE_LIBJPEG - case XSANE_JPEG: - xsane_save_jpeg(outfile, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save); - break; /* switch format == XSANE_JPEG */ -#endif - -#ifdef HAVE_LIBPNG -#ifdef HAVE_LIBZ - case XSANE_PNG: - if (image_info.depth <= 8) - { - xsane_save_png(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save); - } - else - { - xsane_save_png_16(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save); - } - break; /* switch format == XSANE_PNG */ -#endif -#endif - - case XSANE_PNM16: - xsane_save_pnm_16(outfile, infile, &image_info, progress_bar, cancel_save); - break; /* switch fomat == XSANE_PNM16 */ - - case XSANE_PS: /* save postscript, use original size */ - { - float imagewidth, imageheight; - - imagewidth = 72.0 * image_info.image_width/image_info.resolution_x; /* width in 1/72 inch */ - imageheight = 72.0 * image_info.image_height/image_info.resolution_y; /* height in 1/72 inch */ - - xsane_save_ps(outfile, infile, - &image_info, - imagewidth, imageheight, - 0, /* paper_left_margin */ - 0, /* paper_bottom_margin */ - (int) imagewidth, /* paper_width */ - (int) imageheight, /* paper_height */ - 0 /* portrait top left */, - preferences.save_ps_flatdecoded, - progress_bar, - cancel_save); - } - break; /* switch format == XSANE_PS */ - - case XSANE_PDF: /* save PDF, use original size */ - { - float imagewidth, imageheight; - - imagewidth = 72.0 * image_info.image_width/image_info.resolution_x; /* width in 1/72 inch */ - imageheight = 72.0 * image_info.image_height/image_info.resolution_y; /* height in 1/72 inch */ - - xsane_save_pdf(outfile, infile, - &image_info, - imagewidth, imageheight, - 0, /* paper_left_margin */ - 0, /* paper_bottom_margin */ - (int) imagewidth, /* paper_width */ - (int) imageheight, /* paper_height */ - 0 /* portrait top left */, - preferences.save_pdf_flatdecoded, - progress_bar, - cancel_save); - } - break; /* switch format == XSANE_PDF */ - - case XSANE_TEXT: /* save as text using ocr program like gocr/jocr */ - { - xsane_save_image_as_text(output_filename, input_filename, progress_bar, cancel_save); - } - break; /* switch format == XSANE_TEXT */ - - default: - snprintf(buf, sizeof(buf),"%s", ERR_UNKNOWN_SAVING_FORMAT); - xsane_back_gtk_error(buf, TRUE); - - fclose(outfile); - fclose(infile); - - remove(output_filename); /* no usable output: remove output file */ - - if (remove_input_file) - { - remove(input_filename); /* remove lineart pbm file */ - } - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - return -2; - break; /* switch format == default */ - } - fclose(outfile); - } - else - { - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, output_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - fclose(infile); - - if (remove_input_file) - { - remove(input_filename); /* remove lineart pbm file */ - } - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - return -2; - } - } - - fclose (infile); - - if (remove_input_file) - { - remove(input_filename); /* remove lineart pbm file */ - } - - if (*cancel_save) /* remove output file if saving has been canceled */ - { - remove(output_filename); - } - - gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - return (*cancel_save); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_ANY_GIMP -static int xsane_decode_devname(const char *encoded_devname, int n, char *buf) -{ - char *dst, *limit; - const char *src; - char ch, val; - - DBG(DBG_proc, "xsane_decode_devname\n"); - - limit = buf + n; - for (src = encoded_devname, dst = buf; *src; ++dst) - { - if (dst >= limit) - { - return -1; - } - - ch = *src++; - /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */ - if (ch != '-') - { - *dst = ch; - } - else /* decode */ - { - ch = *src++; - if (ch == '-') - { - *dst = ch; - } - else - { - if (ch >= 'a' && ch <= 'f') - { - val = (ch - 'a') + 10; - } - else - { - val = (ch - '0'); - } - val <<= 4; - - ch = *src++; - if (ch >= 'a' && ch <= 'f') - { - val |= (ch - 'a') + 10; - } - else - { - val |= (ch - '0'); - } - - *dst = val; - - ++src; /* simply skip terminating '-' for now... */ - } - } - } - - if (dst >= limit) - { - return -1; - } - - *dst = '\0'; - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_encode_devname(const char *devname, int n, char *buf) -{ - static const char hexdigit[] = "0123456789abcdef"; - char *dst, *limit; - const char *src; - char ch; - - DBG(DBG_proc, "xsane_encode_devname\n"); - - limit = buf + n; - for (src = devname, dst = buf; *src; ++src) - { - if (dst >= limit) - { - return -1; - } - - ch = *src; - /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */ - if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) - { - *dst++ = ch; - } - else /* encode */ - { - if (dst + 4 >= limit) - { - return -1; - } - - *dst++ = '-'; - if (ch == '-') - { - *dst++ = '-'; - } - else - { - *dst++ = hexdigit[(ch >> 4) & 0x0f]; - *dst++ = hexdigit[(ch >> 0) & 0x0f]; - *dst++ = '-'; - } - } - } - - if (dst >= limit) - { - return -1; - } - - *dst = '\0'; - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_gimp_query(void) -{ - static GimpParamDef args[] = - { - {GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive"}, - }; - static GimpParamDef *return_vals = NULL; - static int nargs = sizeof(args) / sizeof(args[0]); - static int nreturn_vals = 0; - char mpath[1024]; - char name[1024]; - size_t len; - int i, j; - - DBG(DBG_proc, "xsane_gimp_query\n"); - - snprintf(name, sizeof(name), "%s", xsane.prog_name); -#ifdef GIMP_CHECK_VERSION -# if GIMP_CHECK_VERSION(1,1,9) - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG); -# else - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD); -# endif -#else - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD); -#endif - gimp_install_procedure(name, - XSANE_GIMP_INSTALL_BLURB, - XSANE_GIMP_INSTALL_HELP, - XSANE_AUTHOR, - XSANE_COPYRIGHT, - XSANE_DATE, - mpath, - 0, /* "RGB, GRAY", */ - GIMP_EXTENSION, - nargs, nreturn_vals, - args, return_vals); - - sane_init(&xsane.sane_backend_versioncode, (void *) xsane_authorization_callback); - if (SANE_VERSION_MAJOR(xsane.sane_backend_versioncode) != SANE_V_MAJOR) - { - DBG(DBG_error0, "\n\n" - "%s %s:\n" - " %s\n" - " %s %d\n" - " %s %d\n" - "%s\n\n", - xsane.prog_name, ERR_ERROR, - ERR_MAJOR_VERSION_NR_CONFLICT, - ERR_XSANE_MAJOR_VERSION, SANE_V_MAJOR, - ERR_BACKEND_MAJOR_VERSION, SANE_VERSION_MAJOR(xsane.sane_backend_versioncode), - ERR_PROGRAM_ABORTED); - return; - } - - sane_get_devices(&xsane.devlist, SANE_FALSE); - - for (i = 0; xsane.devlist[i]; ++i) - { - snprintf(name, sizeof(name), "%s-", xsane.prog_name); - if (xsane_encode_devname(xsane.devlist[i]->name, sizeof(name) - 6, name + 6) < 0) - { - continue; /* name too long... */ - } - -#ifdef GIMP_CHECK_VERSION -# if GIMP_CHECK_VERSION(1,1,9) - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU); -# else - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD); -# endif -#else - snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD); -#endif - len = strlen(mpath); - for (j = 0; xsane.devlist[i]->name[j]; ++j) - { - if (xsane.devlist[i]->name[j] == '/') - { - mpath[len++] = '\''; - } - else - { - mpath[len++] = xsane.devlist[i]->name[j]; - } - } - mpath[len++] = '\0'; - - gimp_install_procedure(name, - XSANE_GIMP_INSTALL_BLURB, - XSANE_GIMP_INSTALL_HELP, - XSANE_AUTHOR, - XSANE_COPYRIGHT, - XSANE_DATE, - mpath, - 0, /* "RGB, GRAY", */ - GIMP_EXTENSION, - nargs, nreturn_vals, - args, return_vals); - } - - sane_exit(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef HAVE_GIMP_2 -static void xsane_gimp_run(const gchar *name, gint nparams, const GimpParam *param, gint *nreturn_vals, GimpParam **return_vals) -{ - GimpRunMode run_mode; -#else /* GIMP-1.x */ -static void xsane_gimp_run(char *name, int nparams, GimpParam *param, int *nreturn_vals, GimpParam **return_vals) -{ - GimpRunModeType run_mode; -#endif - - static GimpParam values[2]; - char devname[1024]; - char *args[2]; - int nargs; - - DBG(DBG_proc, "xsane_gimp_run\n"); - - run_mode = param[0].data.d_int32; - xsane.mode = XSANE_GIMP_EXTENSION; - xsane.xsane_mode = XSANE_SAVE; - - *nreturn_vals = 1; - *return_vals = values; - - values[0].type = GIMP_PDB_STATUS; - values[0].data.d_status = GIMP_PDB_CALLING_ERROR; - - nargs = 0; - args[nargs++] = "xsane"; - - xsane.selected_dev = -1; - if (strncmp(name, "xsane-", 6) == 0) - { - if (xsane_decode_devname(name + 6, sizeof(devname), devname) < 0) - { - return; /* name too long */ - } - args[nargs++] = devname; - } - - switch (run_mode) - { - case GIMP_RUN_INTERACTIVE: -#ifdef HAVE_GIMP_2 - gimp_extension_ack(); -#endif - xsane_interface(nargs, args); - values[0].data.d_status = GIMP_PDB_SUCCESS; - break; - - case GIMP_RUN_NONINTERACTIVE: - /* Make sure all the arguments are there! */ - break; - - case GIMP_RUN_WITH_LAST_VALS: - /* Possibly retrieve data */ - break; - - default: - break; - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void null_print_func(gchar *msg) -{ -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save) -{ - int remaining; - size_t tile_size; - GimpImageType image_type = GIMP_GRAY; - GimpImageType drawable_type = GIMP_GRAY_IMAGE; - gint32 layer_ID; - gint32 image_ID; - GimpDrawable *drawable; - guchar *tile; - GimpPixelRgn region; - unsigned tile_offset; - int i, x, y; - Image_info image_info; - FILE *imagefile; - - DBG(DBG_info, "xsane_transer_to_gimp\n"); - - *cancel_save = 0; - - imagefile = fopen(input_filename, "rb"); /* read binary (b for win32) */ - if (imagefile == 0) - { - char buf[256]; - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - - return -1; - } - - xsane_read_pnm_header(imagefile, &image_info); - - x = 0; - y = 0; - tile_offset = 0; - tile_size = image_info.image_width * gimp_tile_height(); - - if (image_info.colors == 3) /* RGB */ - { - tile_size *= 3; /* 24 bits/pixel RGB */ - image_type = GIMP_RGB; - drawable_type = GIMP_RGB_IMAGE; - } - else if (image_info.colors == 4) /* RGBA */ - { - tile_size *= 4; /* 32 bits/pixel RGBA */ - image_type = GIMP_RGB; - drawable_type = GIMP_RGBA_IMAGE; /* interpret infrared as alpha */ - } - /* colors == 0/1 is predefined */ - - image_ID = gimp_image_new(image_info.image_width, image_info.image_height, image_type); - -/* the following is supported since gimp-1.1.? */ -#ifdef GIMP_HAVE_RESOLUTION_INFO - if (image_info.resolution_x > 0) - { - gimp_image_set_resolution(image_ID, image_info.resolution_x, image_info.resolution_y); - } -/* gimp_image_set_unit(image_ID, unit?); */ -#endif - - layer_ID = gimp_layer_new(image_ID, "Background", image_info.image_width, image_info.image_height, drawable_type, 100.0, GIMP_NORMAL_MODE); - gimp_image_add_layer(image_ID, layer_ID, 0); - drawable = gimp_drawable_get(layer_ID); - gimp_pixel_rgn_init(®ion, drawable, 0, 0, drawable->width, drawable->height, TRUE, FALSE); - tile = g_new(guchar, tile_size); - - - if (image_info.colors == 1) /* gray */ - { - switch (image_info.depth) - { - case 1: /* 1 bit gray => conversion to 8 bit gray */ - for (i = 0; i < ( (image_info.image_width + 7) / 8) * image_info.image_height; ++i) - { - u_char mask; - int j; - - mask = fgetc(imagefile); - for (j = 7; j >= 0; --j) - { - u_char gl = (mask & (1 << j)) ? 0x00 : 0xff; - tile[tile_offset++] = gl; - - x++; - - if (x >= image_info.image_width) - { - int tile_height = gimp_tile_height(); - - x = 0; - y++; - - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - - break; /* leave for j loop */ - } - } - - if (*cancel_save) - { - break; - } - } - break; /* leave switch depth 1 */ - - case 8: /* 8 bit gray */ - case 16: /* 16 bit gray already has been reduced to 8 bit */ - for (i = 0; i < image_info.image_width * image_info.image_height; ++i) - { - tile[tile_offset++] = fgetc(imagefile); - x++; - - if (x >= image_info.image_width) - { - int tile_height = gimp_tile_height(); - - x = 0; - y++; - - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - - if (*cancel_save) - { - break; - } - } - break; /* leave switch depth */ - - default: /* bad depth */ - break; /* default */ - } - } - else if (image_info.colors == 3) /* RGB */ - { - switch (image_info.depth) - { - case 8: /* 8 bit RGB */ - case 16: /* 16 bit RGB already has been reduced to 8 bit */ - for (i = 0; i < image_info.image_width * image_info.image_height*3; ++i) - { - tile[tile_offset++] = fgetc(imagefile); - if (tile_offset % 3 == 0) - { - x++; - - if (x >= image_info.image_width) - { - int tile_height = gimp_tile_height(); - - x = 0; - y++; - - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - } - - if (*cancel_save) - { - break; - } - } - break; /* case 8 */ - - default: /* bad depth */ - break; /* default */ - } - } -#ifdef SUPPORT_RGBA - else if (image_info.colors == 4) /* RGBA */ - { - int i; - - switch (image_info.depth) - { - case 8: /* 8 bit RGBA */ - case 16: /* 16 bit RGBA already has been reduced to 8 bit */ - for (i = 0; i < image_info.image_width * image_info.image_height * 4; ++i) - { - tile[tile_offset++] = fgetc(imagefile); - if (tile_offset % 4 == 0) - { - x++; - - if (x >= image_info.image_width) - { - int tile_height = gimp_tile_height(); - - x = 0; - y++; - - if (y % tile_height == 0) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - tile_height, image_info.image_width, tile_height); - tile_offset = 0; - } - - gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - } - - if (*cancel_save) - { - break; - } - } - break; - - default: /* bad depth */ - break; - } - } -#endif - -/* scan_done part */ - if (y > image_info.image_height) - { - y = image_info.image_height; - } - - remaining = y % gimp_tile_height(); - - if (remaining) - { - gimp_pixel_rgn_set_rect(®ion, tile, 0, y - remaining, image_info.image_width, remaining); - } - - gimp_drawable_flush(drawable); - gimp_display_new(image_ID); - gimp_drawable_detach(drawable); - g_free(tile); - tile = 0; - - fclose(imagefile); - - return 0; -} -#endif /* HAVE_ANY_GIMP */ - -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#ifdef XSANE_ACTIVATE_MAIL - -/* character base of base64 coding */ -static const char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void write_3chars_as_base64(unsigned char c1, unsigned char c2, unsigned char c3, int pads, int fd_socket) -{ - char buf[4]; - - buf[0] = base64[c1>>2]; /* wirte bits 7-2 of first char */ - buf[1] = base64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)]; /* write bits 1,0 of first and bits 7-4 of second char */ - - if (pads == 2) /* only one byte used */ - { - buf[2] = '='; /* char not used */ - buf[3] = '='; /* char not used */ - } - else if (pads) /* only two bytes used */ - { - buf[2] = base64[((c2 & 0xF) << 2)]; /* write bits 3-0 of second char */ - buf[3] = '='; /* char not used */ - } - else - { - buf[2] = base64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)]; /* write bits 3-0 of second and bits 7,6 of third char */ - buf[3] = base64[c3 & 0x3F]; /* write bits 5-0 of third char as lsb */ - } - - write(fd_socket, buf, 4); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_base64(int fd_socket, FILE *infile) -{ - int c1, c2, c3; - int pos = 0; - - while ((c1 = getc(infile)) != EOF) - { - c2 = getc(infile); - if (c2 == EOF) - { - write_3chars_as_base64(c1, 0, 0, 2, fd_socket); - } - else - { - c3 = getc(infile); - if (c3 == EOF) - { - write_3chars_as_base64(c1, c2, 0, 1, fd_socket); - } - else - { - write_3chars_as_base64(c1, c2, c3, 0, fd_socket); - } - } - - pos += 4; - if (pos > 71) - { - write(fd_socket, "\n", 1); - - pos = 0; - } - - xsane.mail_progress_bytes += 3; - if ((int) ((xsane.mail_progress_bytes * 100) / xsane.mail_progress_size) != (int) (xsane.mail_progress_val * 100)) - { - xsane.mail_progress_val = (float) xsane.mail_progress_bytes / xsane.mail_progress_size; - xsane_front_gtk_mail_project_update_lockfile_status(); - } - } - - if (pos) - { - write(fd_socket, "\n", 1); - } - - xsane.mail_progress_val = 1.0; - xsane_front_gtk_mail_project_update_lockfile_status(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "From: %s\n", from); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Reply-To: %s\n", reply_to); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "To: %s\n", to); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Subject: %s\n", subject); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "MIME-Version: 1.0\n"); - write(fd_socket, buf, strlen(buf)); - - if (related) /* related means that we need a special link in the html part to display the image */ - { - snprintf(buf, sizeof(buf), "Content-Type: multipart/related;\n"); - write(fd_socket, buf, strlen(buf)); - } - else - { - snprintf(buf, sizeof(buf), "Content-Type: multipart/mixed;\n"); - write(fd_socket, buf, strlen(buf)); - } - - snprintf(buf, sizeof(buf), " boundary=\"%s\"\n\n", boundary); - write(fd_socket, buf, strlen(buf)); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_footer(int fd_socket, char *boundary) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "--%s--\n", boundary); - write(fd_socket, buf, strlen(buf)); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_mime_ascii(int fd_socket, char *boundary) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "--%s\n", boundary); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Type: text/plain;\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), " charset=\"iso-8859-1\"\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 8bit\n\n"); - write(fd_socket, buf, strlen(buf)); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_mime_html(int fd_socket, char *boundary) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "--%s\n", boundary); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Type: text/html;\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), " charset=\"us-ascii\"\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 7bit\n\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "\n"); - write(fd_socket, buf, strlen(buf)); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_attach_image(int fd_socket, char *boundary, char *content_id, char *content_type, FILE *infile, char *filename) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "--%s\n", boundary); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Type: %s\n", content_type); - write(fd_socket, buf, strlen(buf)); - - if (content_id) - { - snprintf(buf, sizeof(buf), "Content-ID: <%s>\n", content_id); - write(fd_socket, buf, strlen(buf)); - } - - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Disposition: inline;\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "\n"); - write(fd_socket, buf, strlen(buf)); - - write_base64(fd_socket, infile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void write_mail_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename) -{ - char buf[1024]; - - snprintf(buf, sizeof(buf), "--%s\n", boundary); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Type: application/octet-stream\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), " name=\"%s\"\n", filename); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "Content-Disposition: attachment;\n"); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename); - write(fd_socket, buf, strlen(buf)); - - snprintf(buf, sizeof(buf), "\n"); - write(fd_socket, buf, strlen(buf)); - - write_base64(fd_socket, infile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* returns fd_socket if sucessfull, < 0 when error occured */ -int open_socket(char *server, int port) -{ - int fd_socket; - struct sockaddr_in sin; - struct hostent *he; - - he = gethostbyname(server); - if (!he) - { - DBG(DBG_error, "open_socket: Could not get hostname of \"%s\"\n", server); - return -1; - } - else - { - DBG(DBG_info, "open_socket: connecting to \"%s\" = %d.%d.%d.%d\n", - he->h_name, - (unsigned char) he->h_addr_list[0][0], - (unsigned char) he->h_addr_list[0][1], - (unsigned char) he->h_addr_list[0][2], - (unsigned char) he->h_addr_list[0][3]); - } - - if (he->h_addrtype != AF_INET) - { - DBG(DBG_error, "open_socket: Unknown address family: %d\n", he->h_addrtype); - return -1; - } - - fd_socket = socket(AF_INET, SOCK_STREAM, 0); - - if (fd_socket < 0) - { - DBG(DBG_error, "open_socket: Could not create socket: %s\n", strerror(errno)); - return -1; - } - -/* setsockopt (dev->ctl, level, TCP_NODELAY, &on, sizeof (on)); */ - - sin.sin_port = htons(port); - sin.sin_family = AF_INET; - memcpy(&sin.sin_addr, he->h_addr_list[0], he->h_length); - - if (connect(fd_socket, &sin, sizeof(sin))) - { - DBG(DBG_error, "open_socket: Could not connect with port %d of socket: %s\n", ntohs(sin.sin_port), strerror(errno)); - return -1; - } - - DBG(DBG_info, "open_socket: Connected with port %d\n", ntohs(sin.sin_port)); - - return fd_socket; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* returns 0 if success */ -/* not only a write routine, also reads data */ -int pop3_login(int fd_socket, char *user, char *passwd) -{ - char buf[1024]; - int len; - - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - snprintf(buf, sizeof(buf), "USER %s\r\n", user); - DBG(DBG_info2, "> USER xxx\n"); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - if (buf[0] != '+') - { - return -1; - } - - snprintf(buf, sizeof(buf), "PASS %s\r\n", passwd); - DBG(DBG_info2, "> PASS xxx\n"); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - if (buf[0] != '+') - { - return -1; - } - - snprintf(buf, sizeof(buf), "QUIT\r\n"); - DBG(DBG_info2, "> QUIT\n"); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* not only a write routine, also reads data */ -/* returns -1 on error, 0 when ok */ -int write_smtp_header(int fd_socket, char *from, char *to) -{ - char buf[1024]; - int len; - - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - snprintf(buf, sizeof(buf), "helo localhost\r\n"); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - if (buf[0] != '2') - { - DBG(DBG_info, "=> error\n"); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED); - xsane_front_gtk_mail_project_update_lockfile_status(); - return -1; - } - - snprintf(buf, sizeof(buf), "MAIL FROM: %s\r\n", from); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - if (buf[0] != '2') - { - DBG(DBG_info, "=> error\n"); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_FROM); - xsane_front_gtk_mail_project_update_lockfile_status(); - return -1; - } - - - snprintf(buf, sizeof(buf), "RCPT TO: %s\r\n", to); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - if (buf[0] != '2') - { - DBG(DBG_info, "=> error\n"); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_RCPT); - xsane_front_gtk_mail_project_update_lockfile_status(); - return -1; - } - - snprintf(buf, sizeof(buf), "DATA\r\n"); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - if ((buf[0] != '2') && (buf[0] != '3')) - { - DBG(DBG_info, "=> error\n"); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_DATA); - xsane_front_gtk_mail_project_update_lockfile_status(); - return -1; - } - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -/* not only a write routine, also reads data */ -int write_smtp_footer(int fd_socket) -{ - char buf[1024]; - int len; - - snprintf(buf, sizeof(buf), "\r\n.\r\n"); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - snprintf(buf, sizeof(buf), "QUIT\r\n"); - DBG(DBG_info2, "> %s", buf); - write(fd_socket, buf, strlen(buf)); - len = read(fd_socket, buf, sizeof(buf)); - if (len >= 0) - { - buf[len] = 0; - } - DBG(DBG_info2, "< %s\n", buf); - - return 0; -} - -#endif -/* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-save.h b/src/xsane-save.h index 553fbd5..f94fe7c 100644 --- a/src/xsane-save.h +++ b/src/xsane-save.h @@ -3,7 +3,7 @@ xsane-save.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -40,7 +40,7 @@ #define PDF_PAGES_MAX 1000 struct pdf_xref { - unsigned long obj[PDF_PAGES_MAX * 2 + 6]; + unsigned long obj[PDF_PAGES_MAX * 2 + 8]; unsigned long xref; /* xref table */ unsigned long slen; /* length of image stream */ unsigned long slenp; /* position of image stream length */ @@ -60,50 +60,58 @@ extern void xsane_read_pnm_header(FILE *file, Image_info *image_info); extern void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_as_ascii); extern int xsane_copy_file(FILE *outfile, FILE *infile, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_copy_file_by_name(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save); +#ifdef HAVE_LIBLCMS +extern cmsHTRANSFORM xsane_create_cms_transform(Image_info *image_info, int cms_function, int cms_intent, int cms_bpc); +#endif extern int xsane_save_grayscale_image_as_lineart(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float x_scale, float y_scale, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float radius, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int rotation, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatdecode); +extern void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatedecode); extern void xsane_save_ps_create_document_trailer(FILE *outfile, int pages); extern int xsane_save_ps_page(FILE *outfile, int page, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int embed_scanner_icm_profile, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int embed_CSA, char *CSA_profile, + int embed_CRD, char *CRD_profile, int blackpointcompensation, int intent, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, int pages, int flatdecode); +extern void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, int pages, int flatedecode); extern void xsane_save_pdf_create_document_trailer(FILE *outfile, struct pdf_xref *xref, int pages); extern int xsane_save_pdf_page(FILE *outfile, struct pdf_xref *xref, int page, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int embed__scanner_icm_profile, int icc_object, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_pdf(FILE *outfile, FILE *imagefile, Image_info *image_info, float width, float height, int paper_left_margin, int paper_bottom_margin, int paperwidth, int paperheight, int paper_orientation, - int flatdecode, + int flatedecode, + cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save); #ifdef HAVE_LIBJPEG -extern int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_jpeg(FILE *outfile, int quality, FILE *imagefile, Image_info *image_info, cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save); #endif #ifdef HAVE_LIBTIFF -extern int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, FILE *imagefile, Image_info *image_info, int quality, - GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_tiff_page(TIFF *tiffile, int page, int pages, int quality, FILE *imagefile, Image_info *image_info, cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, + GtkProgressBar *progress_bar, int *cancel_save); #endif -extern int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save); -extern int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save); -extern int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_png(FILE *outfile, int compression, FILE *imagefile, Image_info *image_info, cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_png_16(FILE *outfile, int compression, FILE *imagefile, Image_info *image_info, cmsHTRANSFORM hTransform, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, cmsHTRANSFORM hTransform, int apply_ICM_profile, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_image_as_lineart(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save); extern int xsane_save_image_as_text(char *output_filename, char *input_filename, GtkProgressBar *progress_bar, int *cancel_save); -extern int xsane_save_image_as(char *output_filename, char *input_filename, int output_format, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_save_image_as(char *output_filename, char *input_filename, int output_format, int apply_ICM_profile, int cms_function, int cms_intent, int cms_bpc, GtkProgressBar *progress_bar, int *cancel_save); extern void null_print_func(gchar *msg); -extern int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save); +extern int xsane_transfer_to_gimp(char *input_filename, int apply_ICM_profile, int cms_function, GtkProgressBar *progress_bar, int *cancel_save); extern void write_base64(int fd_socket, FILE *infile); extern void write_email_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related); extern void write_email_footer(int fd_socket, char *boundary); diff --git a/src/xsane-scan.c b/src/xsane-scan.c index 578cc57..9cc9ffb 100644 --- a/src/xsane-scan.c +++ b/src/xsane-scan.c @@ -3,7 +3,7 @@ xsane-scan.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -1061,7 +1061,7 @@ void xsane_scan_done(SANE_Status status) image_info.image_width = xsane.param.pixels_per_line; image_info.image_height = pixel_height; image_info.depth = xsane.depth; - image_info.colors = xsane.xsane_colors; + image_info.channels = xsane.xsane_channels; image_info.resolution_x = xsane.resolution_x; image_info.resolution_y = xsane.resolution_y; @@ -1085,6 +1085,13 @@ void xsane_scan_done(SANE_Status status) image_info.reduce_to_lineart = xsane.expand_lineart_to_grayscale; + image_info.enable_color_management = xsane.enable_color_management; + image_info.cms_function = preferences.cms_function; + image_info.cms_intent = preferences.cms_intent; + image_info.cms_bpc = preferences.cms_bpc; + + strncpy(image_info.icm_profile, xsane.scanner_default_color_icm_profile, sizeof(image_info.icm_profile)); + xsane_write_pnm_header(xsane.out, &image_info, 0); } @@ -1233,12 +1240,12 @@ void xsane_scan_done(SANE_Status status) #ifdef HAVE_ANY_GIMP if (xsane.mode == XSANE_GIMP_EXTENSION) /* xsane runs as gimp plugin */ { - xsane_transfer_to_gimp(xsane.dummy_filename, xsane.progress_bar, &xsane.cancel_save); + xsane_transfer_to_gimp(xsane.dummy_filename, xsane.enable_color_management, preferences.cms_function, xsane.progress_bar, &xsane.cancel_save); } else #endif /* HAVE_ANY_GIMP */ { - xsane_save_image_as(xsane.output_filename, xsane.dummy_filename, xsane.xsane_output_format, xsane.progress_bar, &xsane.cancel_save); + xsane_save_image_as(xsane.output_filename, xsane.dummy_filename, xsane.xsane_output_format, xsane.enable_color_management, preferences.cms_function, preferences.cms_intent, preferences.cms_bpc, xsane.progress_bar, &xsane.cancel_save); } xsane_progress_clear(); @@ -1345,7 +1352,11 @@ void xsane_scan_done(SANE_Status status) preferences.printer[preferences.printernr]->width * 72.0/MM_PER_INCH, /* usable paperwidth */ preferences.printer[preferences.printernr]->height * 72.0/MM_PER_INCH, /* usable paperheight */ preferences.paper_orientation, - preferences.printer[preferences.printernr]->ps_flatdecoded, /* ps level 3 */ + preferences.printer[preferences.printernr]->ps_flatedecoded, /* ps level 3 */ + NULL /* hTransform */, xsane.enable_color_management, + preferences.printer[preferences.printernr]->embed_csa, xsane.scanner_default_color_icm_profile, + preferences.printer[preferences.printernr]->embed_crd, preferences.printer[preferences.printernr]->icm_profile, preferences.printer[preferences.printernr]->blackpointcompensation, + 0 /* intent */, xsane.progress_bar, &xsane.cancel_save); } @@ -1729,7 +1740,7 @@ static void xsane_start_scan(void) image_info.image_width = xsane.param.pixels_per_line; image_info.image_height = xsane.param.lines; image_info.depth = xsane.depth; - image_info.colors = xsane.xsane_colors; + image_info.channels = xsane.xsane_channels; image_info.resolution_x = xsane.resolution_x; image_info.resolution_y = xsane.resolution_y; @@ -1753,6 +1764,13 @@ static void xsane_start_scan(void) image_info.reduce_to_lineart = xsane.expand_lineart_to_grayscale; + image_info.enable_color_management = xsane.enable_color_management; + image_info.cms_function = preferences.cms_function; + image_info.cms_intent = preferences.cms_intent; + image_info.cms_bpc = preferences.cms_bpc; + + strncpy(image_info.icm_profile, xsane.scanner_default_color_icm_profile, sizeof(image_info.icm_profile)); + xsane_write_pnm_header(xsane.out, &image_info, 0); fflush(xsane.out); @@ -1946,34 +1964,6 @@ gint xsane_scan_dialog(gpointer *data) free(extension); } } -#ifdef HAVE_ANY_GIMP - else /* We are running in gimp mode */ - { - if ((xsane.param.depth != 1) && (xsane.param.depth != 8)) /* not support bit depth ? */ - { - if (!xsane.reduce_16bit_to_8bit) /* ask if reduce 16 to 8 bit */ - { - if (xsane.param.depth == 16) - { - snprintf(buf, sizeof(buf), TEXT_GIMP_REDUCE_16BIT_TO_8BIT); - if (xsane_back_gtk_decision(ERR_HEADER_INFO, (gchar **) info_xpm, buf, BUTTON_REDUCE, BUTTON_CANCEL, TRUE /* wait */) == FALSE) - { - xsane_set_sensitivity(TRUE); - return FALSE; - } - xsane.reduce_16bit_to_8bit = TRUE; - } - else /* unsupported bit depth */ - { - snprintf(buf, sizeof(buf), ERR_GIMP_BAD_DEPTH, xsane.param.depth); - xsane_back_gtk_error(buf, TRUE); - xsane_set_sensitivity(TRUE); - return FALSE; - } - } - } - } -#endif if (xsane.dummy_filename) /* no dummy filename defined - necessary if an error occurs */ { @@ -1982,7 +1972,7 @@ gint xsane_scan_dialog(gpointer *data) } /* create scanner gamma tables, xsane internal gamma tables are created after sane_start */ - if ( (xsane.xsane_colors > 1) && /* color scan */ + if ( (xsane.xsane_channels > 1) && /* color scan */ xsane.scanner_gamma_color ) /* gamma table for red, green and blue available */ { double gamma_red, gamma_green, gamma_blue; @@ -2097,7 +2087,7 @@ gint xsane_scan_dialog(gpointer *data) xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int)); - if (xsane.xsane_colors > 1) /* color scan */ + if (xsane.xsane_channels > 1) /* color scan */ { xsane_create_gamma_curve(xsane.gamma_data, xsane.negative, gamma, xsane.brightness, xsane.contrast, @@ -2145,7 +2135,7 @@ static void xsane_create_internal_gamma_tables(void) size = (int) pow(2, xsane.param.depth); maxval = size-1; - if (xsane.xsane_colors > 1) /* color scan */ + if (xsane.xsane_channels > 1) /* color scan */ { if ( (!xsane.scanner_gamma_color) && (xsane.scanner_gamma_gray) ) { diff --git a/src/xsane-scan.h b/src/xsane-scan.h index b46d5e0..681e89f 100644 --- a/src/xsane-scan.h +++ b/src/xsane-scan.h @@ -3,7 +3,7 @@ xsane-scan.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-setup.c b/src/xsane-setup.c index c0c9000..677c375 100644 --- a/src/xsane-setup.c +++ b/src/xsane-setup.c @@ -3,7 +3,7 @@ xsane-setup.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -92,6 +92,9 @@ static void xsane_setup_authentication_type_callback(GtkWidget *widget, gpointer static void xsane_setup_show_range_mode_callback(GtkWidget *widget, gpointer data); static void xsane_setup_lineart_mode_callback(GtkWidget *widget, gpointer data); static void xsane_enhance_notebook(GtkWidget *notebook); +#ifdef HAVE_LIBLCMS +static void xsane_color_management_notebook(GtkWidget *notebook); +#endif void xsane_setup_dialog(GtkWidget *widget, gpointer data); @@ -135,7 +138,10 @@ void xsane_new_printer(void) preferences.printer[preferences.printernr]->gamma_red = 1.0; preferences.printer[preferences.printernr]->gamma_green = 1.0; preferences.printer[preferences.printernr]->gamma_blue = 1.0; - preferences.printer[preferences.printernr]->ps_flatdecoded = 1; + preferences.printer[preferences.printernr]->icm_profile = NULL; + preferences.printer[preferences.printernr]->embed_csa = 1; + preferences.printer[preferences.printernr]->embed_crd = 0; + preferences.printer[preferences.printernr]->ps_flatedecoded = 1; } else { @@ -275,8 +281,23 @@ static void xsane_setup_printer_update() gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_green_entry), buf); snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue); gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_blue_entry), buf); + +#ifdef HAVE_LIBLCMS + if (preferences.printer[preferences.printernr]->icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_icm_profile_entry), (char *) preferences.printer[preferences.printernr]->icm_profile); + } + else + { + gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_icm_profile_entry), ""); + } + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_embed_csa_button), preferences.printer[preferences.printernr]->embed_csa); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_embed_crd_button), preferences.printer[preferences.printernr]->embed_crd); +#endif + #ifdef HAVE_LIBZ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_ps_flatdecoded_button), preferences.printer[preferences.printernr]->ps_flatdecoded); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_ps_flatedecoded_button), preferences.printer[preferences.printernr]->ps_flatedecoded); #endif } @@ -354,8 +375,18 @@ static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data) xsane_update_double(xsane_setup.printer_gamma_green_entry, &preferences.printer[preferences.printernr]->gamma_green); xsane_update_double(xsane_setup.printer_gamma_blue_entry, &preferences.printer[preferences.printernr]->gamma_blue); +#ifdef HAVE_LIBLCMS + if (preferences.printer[preferences.printernr]->icm_profile) + { + free(preferences.printer[preferences.printernr]->icm_profile); + } + preferences.printer[preferences.printernr]->icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_icm_profile_entry))); + xsane_update_bool(xsane_setup.printer_embed_csa_button, &preferences.printer[preferences.printernr]->embed_csa); + xsane_update_bool(xsane_setup.printer_embed_crd_button, &preferences.printer[preferences.printernr]->embed_crd); +#endif + #ifdef HAVE_LIBZ - xsane_update_bool(xsane_setup.printer_ps_flatdecoded_button, &preferences.printer[preferences.printernr]->ps_flatdecoded); + xsane_update_bool(xsane_setup.printer_ps_flatedecoded_button, &preferences.printer[preferences.printernr]->ps_flatedecoded); #endif if (option_menu) @@ -530,6 +561,50 @@ static void xsane_setup_enhance_apply_changes(GtkWidget *widget, gpointer data) /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +static void xsane_setup_color_management_apply_changes(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_setup_colormagaement_apply_changes\n"); + +// preferences.cms_intent = gtk_option_menu_get_history(GTK_OPTION_MENU(xsane_setup.cms_intent_option_menu)); +// preferences.cms_intent = gtk_option_menu_get_history(GTK_OPTION_MENU(xsane_setup.cms_intent_option_menu)); + preferences.cms_intent = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(xsane_setup.cms_intent_option_menu))))), "Selection"); + xsane_update_bool(xsane_setup.cms_bpc_button, &preferences.cms_bpc); + + if (xsane.scanner_default_color_icm_profile) + { + free(xsane.scanner_default_color_icm_profile); + } + xsane.scanner_default_color_icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.scanner_default_color_icm_profile_entry))); + + if (xsane.scanner_default_gray_icm_profile) + { + free(xsane.scanner_default_gray_icm_profile); + } + xsane.scanner_default_gray_icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.scanner_default_gray_icm_profile_entry))); + + if (preferences.display_icm_profile) + { + free(preferences.display_icm_profile); + } + preferences.display_icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.display_icm_profile_entry))); + + if (preferences.custom_proofing_icm_profile) + { + free(preferences.custom_proofing_icm_profile); + } + preferences.custom_proofing_icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.custom_proofing_icm_profile_entry))); + + if (preferences.working_color_space_icm_profile) + { + free(preferences.working_color_space_icm_profile); + } + preferences.working_color_space_icm_profile = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.working_color_space_icm_profile_entry))); +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data) { int level; @@ -597,8 +672,8 @@ static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data) xsane_update_bool(xsane_setup.save_pnm16_as_ascii_button, &preferences.save_pnm16_as_ascii); #ifdef HAVE_LIBZ - xsane_update_bool(xsane_setup.save_ps_flatdecoded_button, &preferences.save_ps_flatdecoded); - xsane_update_bool(xsane_setup.save_pdf_flatdecoded_button, &preferences.save_pdf_flatdecoded); + xsane_update_bool(xsane_setup.save_ps_flatedecoded_button, &preferences.save_ps_flatedecoded); + xsane_update_bool(xsane_setup.save_pdf_flatedecoded_button, &preferences.save_pdf_flatedecoded); #endif xsane_define_maximum_output_size(); @@ -627,7 +702,7 @@ static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data) xsane_update_geometry_double(xsane_setup.fax_height_entry, &preferences.fax_height, preferences.length_unit); #ifdef HAVE_LIBZ - xsane_update_bool(xsane_setup.fax_ps_flatdecoded_button, &preferences.fax_ps_flatdecoded); + xsane_update_bool(xsane_setup.fax_ps_flatedecoded_button, &preferences.fax_ps_flatedecoded); #endif xsane_define_maximum_output_size(); @@ -719,6 +794,9 @@ static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data) xsane_setup_email_apply_changes(0, 0); #endif xsane_setup_ocr_apply_changes(0, 0); +#ifdef HAVE_LIBLCMS + xsane_setup_color_management_apply_changes(0, 0); +#endif if (xsane_setup.grayscale_scanmode) { @@ -851,7 +929,7 @@ static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *descript button = gtk_toggle_button_new_with_label("x"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 64 ); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_SEARCH); gtk_widget_set_size_request(button, 21, -1); gtk_widget_set_name(button, name); g_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 64); @@ -887,7 +965,7 @@ static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *descript button = gtk_toggle_button_new_with_label("x"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 8 ); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_SEARCH); gtk_widget_set_size_request(button, 21, -1); gtk_widget_set_name(button, name); g_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 8); @@ -923,7 +1001,7 @@ static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *descript button = gtk_toggle_button_new_with_label("x"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 1 ); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_SEARCH); gtk_widget_set_size_request(button, 21, -1); gtk_widget_set_name(button, name); g_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 1); @@ -948,6 +1026,47 @@ static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *descript /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMSx +static void xsane_setup_display_icm_profile_info_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_setup_display_icm_profile_info_callback\n"); + + const char* cmsTakeProductName(cmsHPROFILE hProfile); + const char* cmsTakeProductDesc(cmsHPROFILE hProfile); + + int cmsTakeRenderingIntent(cmsHPROFILE hProfile); + + #define LCMS_USED_AS_INPUT 0 + #define LCMS_USED_AS_OUTPUT 1 + #define LCMS_USED_AS_PROOF 2 + BOOL cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection); + +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifdef HAVE_LIBLCMS +static void xsane_setup_browse_printer_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_printer_icm_profile; + char printer_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_printer_icm_profile_callback\n"); + + old_printer_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_icm_profile_entry)); + strncpy(printer_icm_profile, old_printer_icm_profile, sizeof(printer_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_PRINTER_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, printer_icm_profile, sizeof(printer_icm_profile), printer_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_icm_profile_entry), printer_icm_profile); +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_printer_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame; @@ -1273,23 +1392,82 @@ static void xsane_printer_notebook(GtkWidget *notebook) gtk_widget_show(hbox); xsane_setup.printer_gamma_blue_entry = text; +#ifdef HAVE_LIBLCMS + xsane_separator_new(vbox, 2); + + /* printer ICM profile: */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_PRINTER_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 70, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_ICM_PROFILE); + + if (preferences.printer[preferences.printernr]->icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->icm_profile); + } + else + { + gtk_entry_set_text(GTK_ENTRY(text), ""); + } + + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + gtk_widget_show(text); + xsane_setup.printer_icm_profile_entry = text; + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_printer_icm_profile_callback, NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + gtk_widget_show(hbox); + + + /* embed csa */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(TEXT_SETUP_PRINTER_EMBED_CSA); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRINTER_EMBED_CSA); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.printer[preferences.printernr]->embed_csa); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.printer_embed_csa_button = button; + + /* embed crd */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(TEXT_SETUP_PRINTER_EMBED_CRD); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRINTER_EMBED_CRD); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.printer[preferences.printernr]->embed_crd); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.printer_embed_crd_button = button; +#endif #ifdef HAVE_LIBZ xsane_separator_new(vbox, 2); - /* flatdecoded = ps level 3 */ + /* flatedecoded = ps level 3 */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(TEXT_SETUP_PRINTER_PS_FLATDECODED); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRINTER_PS_FLATDECODED); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.printer[preferences.printernr]->ps_flatdecoded); + button = gtk_check_button_new_with_label(TEXT_SETUP_PRINTER_PS_FLATEDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRINTER_PS_FLATEDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.printer[preferences.printernr]->ps_flatedecoded); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.printer_ps_flatdecoded_button = button; + xsane_setup.printer_ps_flatedecoded_button = button; #endif @@ -1336,13 +1514,110 @@ static void xsane_setup_browse_tmp_path_callback(GtkWidget *widget, gpointer dat strncpy(tmp_path, old_tmp_path, sizeof(tmp_path)); snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_TMP_PATH); - xsane_back_gtk_get_filename(windowname, tmp_path, sizeof(tmp_path), tmp_path, NULL, TRUE, FALSE, TRUE, FALSE); + xsane_back_gtk_get_filename(windowname, tmp_path, sizeof(tmp_path), tmp_path, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_FOLDER, XSANE_GET_FILENAME_SHOW_NOTHING, 0, 0); gtk_entry_set_text(GTK_ENTRY(xsane_setup.tmp_path_entry), tmp_path); } /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +static void xsane_setup_browse_scanner_default_color_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_scanner_default_color_icm_profile; + char scanner_default_color_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_scanner_default_color_icm_profile_callback\n"); + + old_scanner_default_color_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.scanner_default_color_icm_profile_entry)); + strncpy(scanner_default_color_icm_profile, old_scanner_default_color_icm_profile, sizeof(scanner_default_color_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, scanner_default_color_icm_profile, sizeof(scanner_default_color_icm_profile), scanner_default_color_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.scanner_default_color_icm_profile_entry), scanner_default_color_icm_profile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_setup_browse_scanner_default_gray_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_scanner_default_gray_icm_profile; + char scanner_default_gray_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_scanner_default_gray_icm_profile_callback\n"); + + old_scanner_default_gray_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.scanner_default_gray_icm_profile_entry)); + strncpy(scanner_default_gray_icm_profile, old_scanner_default_gray_icm_profile, sizeof(scanner_default_gray_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, scanner_default_gray_icm_profile, sizeof(scanner_default_gray_icm_profile), scanner_default_gray_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.scanner_default_gray_icm_profile_entry), scanner_default_gray_icm_profile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_setup_browse_display_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_display_icm_profile; + char display_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_display_icm_profile_callback\n"); + + old_display_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.display_icm_profile_entry)); + strncpy(display_icm_profile, old_display_icm_profile, sizeof(display_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_DISPLAY_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, display_icm_profile, sizeof(display_icm_profile), display_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.display_icm_profile_entry), display_icm_profile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_setup_browse_custom_proofing_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_custom_proofing_icm_profile; + char custom_proofing_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_custom_proofing_icm_profile_callback\n"); + + old_custom_proofing_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.custom_proofing_icm_profile_entry)); + strncpy(custom_proofing_icm_profile, old_custom_proofing_icm_profile, sizeof(custom_proofing_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_CUSTOM_PROOFING_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, custom_proofing_icm_profile, sizeof(custom_proofing_icm_profile), custom_proofing_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.custom_proofing_icm_profile_entry), custom_proofing_icm_profile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_setup_browse_working_color_space_icm_profile_callback(GtkWidget *widget, gpointer data) +{ + const gchar *old_working_color_space_icm_profile; + char working_color_space_icm_profile[PATH_MAX]; + char windowname[TEXTBUFSIZE]; + + DBG(DBG_proc, "xsane_setup_browse_working_color_space_icm_profile_callback\n"); + + old_working_color_space_icm_profile = gtk_entry_get_text(GTK_ENTRY(xsane_setup.working_color_space_icm_profile_entry)); + strncpy(working_color_space_icm_profile, old_working_color_space_icm_profile, sizeof(working_color_space_icm_profile)); + + snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE); + xsane_back_gtk_get_filename(windowname, working_color_space_icm_profile, sizeof(working_color_space_icm_profile), working_color_space_icm_profile, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SELECT_OPEN, XSANE_GET_FILENAME_SHOW_NOTHING, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_ICM, XSANE_FILE_FILTER_ICM); + + gtk_entry_set_text(GTK_ENTRY(xsane_setup.working_color_space_icm_profile_entry), working_color_space_icm_profile); +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_saving_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame; @@ -1379,7 +1654,7 @@ static void xsane_saving_notebook(GtkWidget *notebook) gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); - text = gtk_entry_new_with_max_length(255); + text = gtk_entry_new_with_max_length(PATH_MAX); gtk_widget_set_size_request(text, 70, -1); /* set minimum size */ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_TMP_PATH); gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.tmp_path); @@ -1615,28 +1890,28 @@ static void xsane_filetype_notebook(GtkWidget *notebook) #ifdef HAVE_LIBZ - /* save ps with zlib compression / flatdecode = ps level 3 */ + /* save ps with zlib compression / flatedecode = ps level 3 */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PS_FLATDECODED); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PS_FLATDECODED); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_ps_flatdecoded); + button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PS_FLATEDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PS_FLATEDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_ps_flatedecoded); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.save_ps_flatdecoded_button = button; + xsane_setup.save_ps_flatedecoded_button = button; - /* save pdf with zlib compression / flatdecode */ + /* save pdf with zlib compression / flatedecode */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PDF_FLATDECODED); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PDF_FLATDECODED); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_pdf_flatdecoded); + button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PDF_FLATEDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PDF_FLATEDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_pdf_flatedecoded); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.save_pdf_flatdecoded_button = button; + xsane_setup.save_pdf_flatedecoded_button = button; #endif @@ -1656,24 +1931,24 @@ static void xsane_filetype_notebook(GtkWidget *notebook) #ifdef HAVE_LIBJPEG xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 10.0, 0, - &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE); + &preferences.jpeg_quality, &xsane_setup.jpeg_image_quality_scale, 0, TRUE); #else #ifdef HAVE_LIBTIFF xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 10.0, 0, - &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE); + &preferences.jpeg_quality, &xsane_setup.jpeg_image_quality_scale, 0, TRUE); #endif #endif #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_PNG_COMPRESSION, DESC_PNG_COMPRESSION, 0.0, Z_BEST_COMPRESSION, 1.0, 10.0, 0, - &preferences.png_compression, (GtkObject **) &xsane_setup.png_image_compression_scale, 0, TRUE); + &preferences.png_compression, &xsane_setup.png_image_compression_scale, 0, TRUE); #endif #endif #ifdef HAVE_LIBTIFF xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_TIFF_ZIP_COMPRESSION, DESC_TIFF_ZIP_COMPRESSION, 1.0, 9.0, 1.0, 6.0, 0, - &preferences.tiff_zip_compression, (GtkObject **) &xsane_setup.tiff_image_zip_compression_scale, 0, TRUE); + &preferences.tiff_zip_compression, &xsane_setup.tiff_image_zip_compression_scale, 0, TRUE); /* TIFF 16 BIT IMAGES COMPRESSION */ @@ -2083,16 +2358,16 @@ static void xsane_fax_notebook(GtkWidget *notebook) xsane_separator_new(vbox, 4); - /* flatdecoded = ps level 3 */ + /* flatedecoded = ps level 3 */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(TEXT_SETUP_FAX_PS_FLATDECODED); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_PS_FLATDECODED); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.fax_ps_flatdecoded); + button = gtk_check_button_new_with_label(TEXT_SETUP_FAX_PS_FLATEDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_PS_FLATEDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.fax_ps_flatedecoded); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.fax_ps_flatdecoded_button = button; + xsane_setup.fax_ps_flatedecoded_button = button; #endif @@ -3224,6 +3499,355 @@ static void xsane_enhance_notebook(GtkWidget *notebook) /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +static void xsane_color_management_notebook(GtkWidget *notebook) +{ + GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame, *option_menu, *menu, *menu_item; + int selection = 0; + + DBG(DBG_proc, "xsane_color_management_notebook\n"); + + /* color management options notebook page */ + + setup_vbox = gtk_vbox_new(FALSE, 5); + + label = gtk_label_new(NOTEBOOK_COLOR_MANAGEMENT_OPTIONS); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label); + gtk_widget_show(setup_vbox); + + frame = gtk_frame_new(0); + gtk_container_set_border_width(GTK_CONTAINER(frame), 7); + gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); + gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */ + gtk_widget_show(frame); + + vbox = gtk_vbox_new(FALSE, 1); + gtk_container_add(GTK_CONTAINER(frame), vbox); + gtk_widget_show(vbox); + + + + /* black point compensation */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(RADIO_BUTTON_CMS_BPC); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_CMS_BPC); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.cms_bpc); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.cms_bpc_button = button; + + + + /* Intent menu */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new(MENU_ITEM_CMS_RENDERING_INTENT); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, option_menu, DESC_RENDERING_INTENT); + gtk_box_pack_end(GTK_BOX(hbox), option_menu, FALSE, FALSE, 2); + gtk_widget_show(option_menu); + gtk_widget_show(hbox); + + menu = gtk_menu_new(); + + menu_item = gtk_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL); + gtk_object_set_data(GTK_OBJECT(menu_item), "Selection", (void *) INTENT_PERCEPTUAL); + gtk_container_add(GTK_CONTAINER(menu), menu_item); + gtk_widget_show(menu_item); + + menu_item = gtk_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC); + gtk_object_set_data(GTK_OBJECT(menu_item), "Selection", (void *) INTENT_RELATIVE_COLORIMETRIC); + gtk_container_add(GTK_CONTAINER(menu), menu_item); + gtk_widget_show(menu_item); + + menu_item = gtk_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC); + gtk_object_set_data(GTK_OBJECT(menu_item), "Selection", (void *) INTENT_ABSOLUTE_COLORIMETRIC); + gtk_container_add(GTK_CONTAINER(menu), menu_item); + gtk_widget_show(menu_item); + + menu_item = gtk_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_SATURATION); + gtk_object_set_data(GTK_OBJECT(menu_item), "Selection", (void *) INTENT_SATURATION); + gtk_container_add(GTK_CONTAINER(menu), menu_item); + gtk_widget_show(menu_item); + + if (preferences.cms_intent == INTENT_PERCEPTUAL) + { + selection = 0; + } + else if (preferences.cms_intent == INTENT_RELATIVE_COLORIMETRIC) + { + selection = 1; + } + else if (preferences.cms_intent == INTENT_ABSOLUTE_COLORIMETRIC) + { + selection = 2; + } + else + { + selection = 3; + } + + + gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), selection); + xsane_setup.cms_intent_option_menu = option_menu; + + + xsane_separator_new(vbox, 4); + + + /* scanner_default_color_icm_profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_scanner_default_color_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE); + + if (xsane.scanner_default_color_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) xsane.scanner_default_color_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.scanner_default_color_icm_profile_entry = text; + + gtk_widget_show(hbox); + + + /* scanner_default_gray_icm_profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_scanner_default_gray_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE); + + if (xsane.scanner_default_gray_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) xsane.scanner_default_gray_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.scanner_default_gray_icm_profile_entry = text; + + gtk_widget_show(hbox); + +#if 0 + xsane_separator_new(vbox, 4); + + + /* scanner_tran icm-profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_SCANNER_TRAN_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_scanner_tran_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_SCANNER_TRAN_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SCANNER_TRAN_ICM_PROFILE); + + if (xsane.scanner_tran_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) xsane.scanner_tran_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.scanner_tran_icm_profile_entry = text; + + gtk_widget_show(hbox); + + + /* scanner_tran_gray icm-profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_SCANNER_TRAN_GRAY_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_scanner_tran_gray_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_SCANNER_TRAN_GRAY_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SCANNER_TRAN_GRAY_ICM_PROFILE); + + if (xsane.scanner_tran_gray_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) xsane.scanner_tran_gray_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.scanner_tran_gray_icm_profile_entry = text; + + gtk_widget_show(hbox); +#endif + + xsane_separator_new(vbox, 4); + + + /* display icm-profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_DISPLAY_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_display_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_DISPLAY_ICM_PROFILE); + + if (preferences.display_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.display_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.display_icm_profile_entry = text; + + gtk_widget_show(hbox); + + + + /* custom output icm-profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_custom_proofing_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_CUSTOM_PROOFING_ICM_PROFILE); + + if (preferences.custom_proofing_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.custom_proofing_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.custom_proofing_icm_profile_entry = text; + + gtk_widget_show(hbox); + + + xsane_separator_new(vbox, 4); + + + /* working color space icm-profile filename : */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + + label = gtk_label_new(TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + button = gtk_button_new_with_label(BUTTON_BROWSE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_working_color_space_icm_profile_callback, NULL); + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 2); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE); + gtk_widget_show(button); + + text = gtk_entry_new_with_max_length(PATH_MAX); + gtk_widget_set_size_request(text, 250, -1); /* set minimum size */ + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_WORKING_COLOR_SPACE_ICM_PROFILE); + + if (preferences.working_color_space_icm_profile) + { + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.working_color_space_icm_profile); + } + + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 4); + gtk_widget_show(text); + xsane_setup.working_color_space_icm_profile_entry = text; + + gtk_widget_show(hbox); + + + + xsane_separator_new(vbox, 4); + + + + /* apply button */ + + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + +#ifdef HAVE_GTK2 + button = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#else + button = gtk_button_new_with_label(BUTTON_APPLY); +#endif + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_color_management_apply_changes, NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + gtk_widget_show(hbox); +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + void xsane_setup_dialog(GtkWidget *widget, gpointer data) { GtkWidget *setup_dialog, *setup_vbox, *hbox, *button, *notebook; @@ -3267,6 +3891,9 @@ void xsane_setup_dialog(GtkWidget *widget, gpointer data) xsane_ocr_notebook(notebook); xsane_display_notebook(notebook); xsane_enhance_notebook(notebook); +#ifdef HAVE_LIBLCMS + xsane_color_management_notebook(notebook); +#endif /* set the main hbox */ @@ -3277,23 +3904,23 @@ void xsane_setup_dialog(GtkWidget *widget, gpointer data) gtk_widget_show(hbox); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_options_ok_callback, setup_dialog); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_setup_dialog_callback, setup_dialog); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_grab_default(button); gtk_widget_show(button); #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_setup_dialog_callback, setup_dialog); + GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_options_ok_callback, setup_dialog); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_grab_default(button); gtk_widget_show(button); gtk_widget_show(setup_dialog); diff --git a/src/xsane-setup.h b/src/xsane-setup.h index 8055dfb..155790f 100644 --- a/src/xsane-setup.h +++ b/src/xsane-setup.h @@ -3,7 +3,7 @@ xsane-setup.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/src/xsane-text.h b/src/xsane-text.h index 7614bfc..c271956 100644 --- a/src/xsane-text.h +++ b/src/xsane-text.h @@ -3,7 +3,7 @@ xsane-text.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -26,182 +26,193 @@ #define XSANE_TEXT_H /* Please translate this to the correct directory name (eg. german=>de) */ -#define XSANE_LANGUAGE_DIR _("language_dir") - -#define XSANE_STRSTATUS(status) _(sane_strstatus(status)) -#define _BGT(text) dgettext(xsane.backend_translation, text) - -#define XSANE_COPYRIGHT_SIGN _("(c)") /* can be translated with \251 */ - -#define FILENAME_PREFIX_CLONE_OF _("clone-of-") - -#define WINDOW_ABOUT_XSANE _("About") -#define WINDOW_ABOUT_TRANSLATION _("About translation") -#define WINDOW_AUTHORIZE _("authorization") -#define WINDOW_GPL _("GPL - the license") -#define WINDOW_EULA _("End User License Agreement") -#define WINDOW_INFO _("info") -#define WINDOW_LOAD_BATCH_LIST _("load batch list") -#define WINDOW_SAVE_BATCH_LIST _("save batch list") -#define WINDOW_BATCH_SCAN _("batch scan") -#define WINDOW_BATCH_RENAME _("rename batch area") -#define WINDOW_FAX_PROJECT _("fax project") -#define WINDOW_FAX_RENAME _("rename fax page") -#define WINDOW_FAX_INSERT _("insert ps-file into fax") -#define WINDOW_EMAIL_PROJECT _("E-mail project") -#define WINDOW_EMAIL_RENAME _("rename e-mail image") -#define WINDOW_EMAIL_INSERT _("insert file into e-mail") -#define WINDOW_MULTIPAGE_PROJECT _("multipage project") -#define WINDOW_PRESET_AREA_RENAME _("rename preset area") -#define WINDOW_PRESET_AREA_ADD _("add preset area") -#define WINDOW_MEDIUM_RENAME _("rename medium") -#define WINDOW_MEDIUM_ADD _("add new medium") -#define WINDOW_SETUP _("setup") -#define WINDOW_HISTOGRAM _("Histogram") -#define WINDOW_GAMMA _("Gamma curve") -#define WINDOW_STANDARD_OPTIONS _("Standard options") -#define WINDOW_ADVANCED_OPTIONS _("Advanced options") -#define WINDOW_DEVICE_SELECTION _("device selection") -#define WINDOW_PREVIEW _("Preview") -#define WINDOW_VIEWER _("Viewer") -#define WINDOW_VIEWER_OUTPUT_FILENAME _("Viewer: select output filename") -#define WINDOW_OCR_OUTPUT_FILENAME _("Select output filename for OCR text file") -#define WINDOW_OUTPUT_FILENAME _("select output filename") -#define WINDOW_SAVE_SETTINGS _("save device settings") -#define WINDOW_LOAD_SETTINGS _("load device settings") -#define WINDOW_CHANGE_WORKING_DIR _("change working directory") -#define WINDOW_TMP_PATH _("select temporary directory") -#define WINDOW_SCALE _("Scale image") -#define WINDOW_DESPECKLE _("Despeckle image") -#define WINDOW_BLUR _("Blur image") -#define WINDOW_STORE_MEDIUM _("Store medium definition") -#define WINDOW_NO_DEVICES _("No devices available") - -#define MENU_FILE _("File") -#define MENU_PREFERENCES _("Preferences") -#define MENU_VIEW _("View") -#define MENU_WINDOW _("Window") -#define MENU_HELP _("Help") -#define MENU_EDIT _("Edit") -#define MENU_FILTERS _("Filters") -#define MENU_GEOMETRY _("Geometry") - -#define MENU_ITEM_ABOUT_XSANE _("About XSane") -#define MENU_ITEM_ABOUT_TRANSLATION _("About translation") -#define MENU_ITEM_INFO _("Info") -#define MENU_ITEM_QUIT _("Quit") - -#define MENU_ITEM_SAVE_IMAGE _("Save image") -#define MENU_ITEM_OCR _("OCR - save as text") -#define MENU_ITEM_CLONE _("Clone") -#define MENU_ITEM_SCALE _("Scale") -#define MENU_ITEM_CLOSE _("Close") - -#define MENU_ITEM_UNDO _("Undo") - -#define MENU_ITEM_DESPECKLE _("Despeckle") -#define MENU_ITEM_BLUR _("Blur") - -#define MENU_ITEM_ROTATE90 _("Rotate 90") -#define MENU_ITEM_ROTATE180 _("Rotate 180") -#define MENU_ITEM_ROTATE270 _("Rotate 270") -#define MENU_ITEM_MIRROR_X _("Mirror |") -#define MENU_ITEM_MIRROR_Y _("Mirror -") - -#define FRAME_RAW_IMAGE _("Raw image") -#define FRAME_ENHANCED_IMAGE _("Enhanced image") - -#define BUTTON_SCAN _("Scan") -#define BUTTON_OK _("Ok") -#define BUTTON_ACCEPT _("Accept") -#define BUTTON_NOT_ACCEPT _("Not accept") -#define BUTTON_APPLY _("Apply") -#define BUTTON_CANCEL _("Cancel") -#define BUTTON_REDUCE _("Reduce") -#define BUTTON_CONT_AT_OWN_RISK _("Continue at your own risk") -#define BUTTON_BROWSE _("Browse") -#define BUTTON_CLOSE _("Close") -#define BUTTON_HELP _("Help") -#define BUTTON_OVERWRITE _("Overwrite") -#define BUTTON_BATCH_LIST_SCAN _("Scan batch list") -#define BUTTON_BATCH_AREA_SCAN _("Scan selected area") -#define BUTTON_PAGE_DELETE _("Delete page") -#define BUTTON_PAGE_SHOW _("Show page") -#define BUTTON_PAGE_RENAME _("Rename page") -#define BUTTON_IMAGE_DELETE _("Delete image") -#define BUTTON_IMAGE_SHOW _("Show image") -#define BUTTON_IMAGE_EDIT _("Edit image") -#define BUTTON_IMAGE_RENAME _("Rename image") -#define BUTTON_FILE_INSERT _("Insert file") -#define BUTTON_CREATE_PROJECT _("Create project") -#define BUTTON_SEND_PROJECT _("Send project") -#define BUTTON_SAVE_MULTIPAGE _("Save multipage file") -#define BUTTON_DELETE_PROJECT _("Delete project") -#define BUTTON_ADD_PRINTER _("Add printer") -#define BUTTON_DELETE_PRINTER _("Delete printer") -#define BUTTON_PREVIEW_ACQUIRE _("Acquire preview") -#define BUTTON_PREVIEW_CANCEL _("Cancel preview") -#define BUTTON_DISCARD_IMAGE _("Discard image") -#define BUTTON_DISCARD_ALL_IMAGES _("Discard all images") -#define BUTTON_DO_NOT_CLOSE _("Do not close") -#define BUTTON_SCALE_BIND _("Bind scale") - -#define RADIO_BUTTON_FINE_MODE _("Fine mode") -#define RADIO_BUTTON_HTML_EMAIL _("HTML e-mail") -#define RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT _("Save device preferences at exit") -#define RADIO_BUTTON_OVERWRITE_WARNING _("Overwrite warning") -#define RADIO_BUTTON_SKIP_EXISTING_NRS _("Skip existing filenames") -#define RADIO_BUTTON_SAVE_PS_FLATDECODED _("Save postscript zlib compressed (ps level 3)") -#define RADIO_BUTTON_SAVE_PDF_FLATDECODED _("Save PDF zlib compressed") -#define RADIO_BUTTON_SAVE_PNM16_AS_ASCII _("Save 16bit pnm in ascii format") -#define RADIO_BUTTON_REDUCE_16BIT_TO_8BIT _("Reduce 16 bit image to 8 bit") -#define RADIO_BUTTON_WINDOW_FIXED _("Main window size fixed") -#define RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA _("Disable gimp preview gamma") -#define RADIO_BUTTON_PRIVATE_COLORMAP _("Use private colormap") -#define RADIO_BUTTON_AUTOENHANCE_GAMMA _("Autoenhance gamma") -#define RADIO_BUTTON_PRESELECT_SCANAREA _("Preselect scanarea") -#define RADIO_BUTTON_AUTOCORRECT_COLORS _("Autocorrect colors") -#define RADIO_BUTTON_OCR_USE_GUI_PIPE _("Use GUI progress pipe") - -#define TEXT_SCANNING_DEVICES _("scanning for devices") -#define TEXT_AVAILABLE_DEVICES _("Available devices:") -#define TEXT_XSANE_OPTIONS _("XSane options") -#define TEXT_FILETYPE _("Type") -#define TEXT_SCANNER_BACKEND _("Scanner and backend:") -#define TEXT_VENDOR _("Vendor:") -#define TEXT_MODEL _("Model:") -#define TEXT_TYPE _("Type:") -#define TEXT_DEVICE _("Device:") -#define TEXT_LOADED_BACKEND _("Loaded backend:") -#define TEXT_SANE_VERSION _("Sane version:") -#define TEXT_RECENT_VALUES _("Recent values:") -#define TEXT_GAMMA_CORR_BY _("Gamma correction by:") -#define TEXT_SCANNER _("scanner") -#define TEXT_SOFTWARE_XSANE _("software (XSane)") -#define TEXT_NONE _("none") -#define TEXT_GAMMA_INPUT_DEPTH _("Gamma input depth:") -#define TEXT_GAMMA_OUTPUT_DEPTH _("Gamma output depth:") -#define TEXT_SCANNER_OUTPUT_DEPTH _("Scanner output depth:") -#define TEXT_OUTPUT_FORMATS _("XSane output formats:") -#define TEXT_8BIT_FORMATS _("8 bit output formats:") -#define TEXT_16BIT_FORMATS _("16 bit output formats:") -#define TEXT_GIMP_REDUCE_16BIT_TO_8BIT _("Gimp does not support depth 16 bits/color.\n" \ - "Do you want to reduce the depth to 8 bits/color?") -#define TEXT_REDUCE_16BIT_TO_8BIT _("Bit depth 16 bits/color is not supported for this output format.\n" \ - "Do you want to reduce the depth to 8 bits/color?") -#define TEXT_AUTHORIZATION_REQ _("Authorization required for") -#define TEXT_AUTHORIZATION_SECURE _("Password transmission is secure") -#define TEXT_AUTHORIZATION_INSECURE _("Backend requests plain-text password") -#define TEXT_USERNAME _("Username :") -#define TEXT_PASSWORD _("Password :") -#define TEXT_INVALID_PARAMS _("Invalid parameters.") -#define TEXT_VERSION _("version:") -#define TEXT_PACKAGE _("package") -#define TEXT_WITH_GIMP_SUPPORT _("with GIMP support") -#define TEXT_WITHOUT_GIMP_SUPPORT _("without GIMP support") -#define TEXT_GTK_VERSION _("compiled with GTK-") -#define TEXT_GIMP_VERSION _("compiled with GIMP-") -#define TEXT_UNKNOWN _("unknown") +#define XSANE_LANGUAGE_DIR _("language_dir") + +#define XSANE_STRSTATUS(status) _(sane_strstatus(status)) +#define _BGT(text) dgettext(xsane.backend_translation, text) + +#define XSANE_COPYRIGHT_SIGN _("(c)") /* can be translated with \251 */ + +#define FILENAME_PREFIX_CLONE_OF _("clone-of-") + +#define WINDOW_ABOUT_XSANE _("About") +#define WINDOW_ABOUT_TRANSLATION _("About translation") +#define WINDOW_AUTHORIZE _("authorization") +#define WINDOW_GPL _("GPL - the license") +#define WINDOW_EULA _("End User License Agreement") +#define WINDOW_INFO _("info") +#define WINDOW_LOAD_BATCH_LIST _("load batch list") +#define WINDOW_SAVE_BATCH_LIST _("save batch list") +#define WINDOW_BATCH_SCAN _("batch scan") +#define WINDOW_BATCH_RENAME _("rename batch area") +#define WINDOW_FAX_PROJECT _("fax project") +#define WINDOW_FAX_PROJECT_BROWSE _("browse for fax project") +#define WINDOW_FAX_RENAME _("rename fax page") +#define WINDOW_FAX_INSERT _("insert ps-file into fax") +#define WINDOW_EMAIL_PROJECT _("E-mail project") +#define WINDOW_EMAIL_PROJECT_BROWSE _("browse for email project") +#define WINDOW_EMAIL_RENAME _("rename e-mail image") +#define WINDOW_EMAIL_INSERT _("insert file into e-mail") +#define WINDOW_MULTIPAGE_PROJECT _("multipage project") +#define WINDOW_MULTIPAGE_PROJECT_BROWSE _("browse for multipage project") +#define WINDOW_PRESET_AREA_RENAME _("rename preset area") +#define WINDOW_PRESET_AREA_ADD _("add preset area") +#define WINDOW_MEDIUM_RENAME _("rename medium") +#define WINDOW_MEDIUM_ADD _("add new medium") +#define WINDOW_SETUP _("setup") +#define WINDOW_HISTOGRAM _("Histogram") +#define WINDOW_GAMMA _("Gamma curve") +#define WINDOW_STANDARD_OPTIONS _("Standard options") +#define WINDOW_ADVANCED_OPTIONS _("Advanced options") +#define WINDOW_DEVICE_SELECTION _("device selection") +#define WINDOW_PREVIEW _("Preview") +#define WINDOW_VIEWER _("Viewer") +#define WINDOW_VIEWER_OUTPUT_FILENAME _("Viewer: select output filename") +#define WINDOW_OCR_OUTPUT_FILENAME _("Select output filename for OCR text file") +#define WINDOW_OUTPUT_FILENAME _("select output filename") +#define WINDOW_SAVE_SETTINGS _("save device settings") +#define WINDOW_LOAD_SETTINGS _("load device settings") +#define WINDOW_CHANGE_WORKING_DIR _("change working directory") +#define WINDOW_TMP_PATH _("select temporary directory") +#define WINDOW_SCALE _("Scale image") +#define WINDOW_DESPECKLE _("Despeckle image") +#define WINDOW_BLUR _("Blur image") +#define WINDOW_STORE_MEDIUM _("Store medium definition") +#define WINDOW_NO_DEVICES _("No devices available") +#define WINDOW_SCANNER_DEFAULT_COLOR_ICM_PROFILE _("select scanner default color ICM-profile") +#define WINDOW_SCANNER_DEFAULT_GRAY_ICM_PROFILE _("select scanner default gray ICM-profile") +#define WINDOW_DISPLAY_ICM_PROFILE _("select display ICM-profile") +#define WINDOW_CUSTOM_PROOFING_ICM_PROFILE _("select custom proofing ICM-profile") +#define WINDOW_WORKING_COLOR_SPACE_ICM_PROFILE _("select working color space ICM-profile") +#define WINDOW_PRINTER_ICM_PROFILE _("select printer ICM-profile") + +#define MENU_FILE _("File") +#define MENU_PREFERENCES _("Preferences") +#define MENU_VIEW _("View") +#define MENU_WINDOW _("Window") +#define MENU_HELP _("Help") +#define MENU_EDIT _("Edit") +#define MENU_FILTERS _("Filters") +#define MENU_GEOMETRY _("Geometry") +#define MENU_COLOR_MANAGEMENT _("Color management") + +#define MENU_ITEM_ABOUT_XSANE _("About XSane") +#define MENU_ITEM_ABOUT_TRANSLATION _("About translation") +#define MENU_ITEM_INFO _("Info") +#define MENU_ITEM_QUIT _("Quit") + +#define MENU_ITEM_SAVE_IMAGE _("Save image") +#define MENU_ITEM_OCR _("OCR - save as text") +#define MENU_ITEM_CLONE _("Clone") +#define MENU_ITEM_SCALE _("Scale") +#define MENU_ITEM_CLOSE _("Close") + +#define MENU_ITEM_UNDO _("Undo") + +#define MENU_ITEM_DESPECKLE _("Despeckle") +#define MENU_ITEM_BLUR _("Blur") + +#define MENU_ITEM_ROTATE90 _("Rotate 90") +#define MENU_ITEM_ROTATE180 _("Rotate 180") +#define MENU_ITEM_ROTATE270 _("Rotate 270") +#define MENU_ITEM_MIRROR_X _("Mirror |") +#define MENU_ITEM_MIRROR_Y _("Mirror -") + +#define FRAME_RAW_IMAGE _("Raw image") +#define FRAME_ENHANCED_IMAGE _("Enhanced image") + +#define BUTTON_SCAN _("Scan") +#define BUTTON_OK _("Ok") +#define BUTTON_ACCEPT _("Accept") +#define BUTTON_NOT_ACCEPT _("Not accept") +#define BUTTON_APPLY _("Apply") +#define BUTTON_CANCEL _("Cancel") +#define BUTTON_REDUCE _("Reduce") +#define BUTTON_CONT_AT_OWN_RISK _("Continue at your own risk") +#define BUTTON_BROWSE _("Browse") +#define BUTTON_CLOSE _("Close") +#define BUTTON_HELP _("Help") +#define BUTTON_OVERWRITE _("Overwrite") +#define BUTTON_BATCH_LIST_SCAN _("Scan batch list") +#define BUTTON_BATCH_AREA_SCAN _("Scan selected area") +#define BUTTON_PAGE_DELETE _("Delete page") +#define BUTTON_PAGE_SHOW _("Show page") +#define BUTTON_PAGE_RENAME _("Rename page") +#define BUTTON_IMAGE_DELETE _("Delete image") +#define BUTTON_IMAGE_SHOW _("Show image") +#define BUTTON_IMAGE_EDIT _("Edit image") +#define BUTTON_IMAGE_RENAME _("Rename image") +#define BUTTON_FILE_INSERT _("Insert file") +#define BUTTON_CREATE_PROJECT _("Create project") +#define BUTTON_SEND_PROJECT _("Send project") +#define BUTTON_SAVE_MULTIPAGE _("Save multipage file") +#define BUTTON_DELETE_PROJECT _("Delete project") +#define BUTTON_ADD_PRINTER _("Add printer") +#define BUTTON_DELETE_PRINTER _("Delete printer") +#define BUTTON_PREVIEW_ACQUIRE _("Acquire preview") +#define BUTTON_PREVIEW_CANCEL _("Cancel preview") +#define BUTTON_DISCARD_IMAGE _("Discard image") +#define BUTTON_DISCARD_ALL_IMAGES _("Discard all images") +#define BUTTON_DO_NOT_CLOSE _("Do not close") +#define BUTTON_SCALE_BIND _("Bind scale") + +#define RADIO_BUTTON_FINE_MODE _("Fine mode") +#define RADIO_BUTTON_HTML_EMAIL _("HTML e-mail") +#define RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT _("Save device preferences at exit") +#define RADIO_BUTTON_OVERWRITE_WARNING _("Overwrite warning") +#define RADIO_BUTTON_SKIP_EXISTING_NRS _("Skip existing filenames") +#define RADIO_BUTTON_SAVE_PS_FLATEDECODED _("Save postscript zlib compressed (ps level 3)") +#define RADIO_BUTTON_SAVE_PDF_FLATEDECODED _("Save PDF zlib compressed") +#define RADIO_BUTTON_SAVE_PNM16_AS_ASCII _("Save 16bit pnm in ascii format") +#define RADIO_BUTTON_REDUCE_16BIT_TO_8BIT _("Reduce 16 bit image to 8 bit") +#define RADIO_BUTTON_WINDOW_FIXED _("Main window size fixed") +#define RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA _("Disable GIMP preview gamma") +#define RADIO_BUTTON_PRIVATE_COLORMAP _("Use private colormap") +#define RADIO_BUTTON_AUTOENHANCE_GAMMA _("Autoenhance gamma") +#define RADIO_BUTTON_PRESELECT_SCANAREA _("Preselect scanarea") +#define RADIO_BUTTON_AUTOCORRECT_COLORS _("Autocorrect colors") +#define RADIO_BUTTON_OCR_USE_GUI_PIPE _("Use GUI progress pipe") +#define RADIO_BUTTON_CMS_BPC _("Black point compensation") + +#define TEXT_SCANNING_DEVICES _("scanning for devices") +#define TEXT_AVAILABLE_DEVICES _("Available devices:") +#define TEXT_XSANE_OPTIONS _("XSane options") +#define TEXT_FILETYPE _("Type") +#define TEXT_CMS_FUNCTION _("Color management function") +#define TEXT_SCANNER_BACKEND _("Scanner and backend:") +#define TEXT_VENDOR _("Vendor:") +#define TEXT_MODEL _("Model:") +#define TEXT_TYPE _("Type:") +#define TEXT_DEVICE _("Device:") +#define TEXT_LOADED_BACKEND _("Loaded backend:") +#define TEXT_SANE_VERSION _("Sane version:") +#define TEXT_RECENT_VALUES _("Recent values:") +#define TEXT_GAMMA_CORR_BY _("Gamma correction by:") +#define TEXT_SCANNER _("scanner") +#define TEXT_SOFTWARE_XSANE _("software (XSane)") +#define TEXT_NONE _("none") +#define TEXT_GAMMA_INPUT_DEPTH _("Gamma input depth:") +#define TEXT_GAMMA_OUTPUT_DEPTH _("Gamma output depth:") +#define TEXT_SCANNER_OUTPUT_DEPTH _("Scanner output depth:") +#define TEXT_OUTPUT_FORMATS _("XSane output formats:") +#define TEXT_8BIT_FORMATS _("8 bit output formats:") +#define TEXT_16BIT_FORMATS _("16 bit output formats:") +#define TEXT_REDUCE_16BIT_TO_8BIT _("Bit depth 16 bits/channel is not supported for this output format.\n" \ + "Do you want to reduce the depth to 8 bits/channel?") +#define TEXT_AUTHORIZATION_REQ _("Authorization required for") +#define TEXT_AUTHORIZATION_SECURE _("Password transmission is secure") +#define TEXT_AUTHORIZATION_INSECURE _("Backend requests plain-text password") +#define TEXT_USERNAME _("Username :") +#define TEXT_PASSWORD _("Password :") +#define TEXT_INVALID_PARAMS _("Invalid parameters.") +#define TEXT_VERSION _("version:") +#define TEXT_PACKAGE _("package") +#define TEXT_WITH_CMS_FUNCTION _("with color management function") +#define TEXT_WITH_GIMP_SUPPORT _("with GIMP support") +#define TEXT_WITHOUT_GIMP_SUPPORT _("without GIMP support") +#define TEXT_GTK_VERSION _("compiled with GTK-") +#define TEXT_GIMP_VERSION _("compiled with GIMP-") +#define TEXT_UNKNOWN _("unknown") #define TEXT_EULA _( "XSane is distributed under the terms of the GNU General Public License\n" \ "as published by the Free Software Foundation; either version 2 of the\n" \ "License, or (at your option) any later version.\n" \ @@ -220,164 +231,196 @@ "This program is distributed in the hope that it will be useful, but\n" \ "WITHOUT ANY WARRANTY; without even the implied warranty of\n" \ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n") -#define TEXT_EMAIL_ADR _("E-mail:") -#define TEXT_HOMEPAGE _("Homepage:") -#define TEXT_FILE _("File:") -#define TEXT_TRANSLATION _("Translation:") +#define TEXT_EMAIL_ADR _("E-mail:") +#define TEXT_HOMEPAGE _("Homepage:") +#define TEXT_FILE _("File:") +#define TEXT_TRANSLATION _("Translation:") /* Please translate this to something like */ /* translation to YOUR LANGUAGE\n */ /* by YOUR NAME\n */ /* E-mail: your.name@yourdomain.com\n */ -#define TEXT_TRANSLATION_INFO _("untranslated original english text\n" \ - "by Oliver Rauch\n" \ - "E-mail: Oliver.Rauch@rauch-domain.de\n") - -#define TEXT_INFO_BOX _("0x0: 0KB") - -#define TEXT_ADF_PAGES_SCANNED _("Scanned pages: ") - -#define TEXT_EMAIL_TEXT _("E-mail text:") -#define TEXT_ATTACHMENTS _("Attachments:") -#define TEXT_EMAIL_STATUS _("Project status:") -#define TEXT_EMAIL_FILETYPE _("E-mail image filetype:") - -#define TEXT_PAGES _("Pages:") -#define TEXT_MULTIPAGE_FILETYPE _("Multipage document filetype:") - -#define TEXT_MEDIUM_DEFINITION_NAME _("Medium Name:") - -#define TEXT_VIEWER_IMAGE_INFO _("Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s") -#define TEXT_DESPECKLE_RADIUS _("Despeckle radius:") -#define TEXT_BLUR_RADIUS _("Blur radius:") -#define TEXT_BATCH_AREA_DEFAULT_NAME _("(no name)") -#define TEXT_BATCH_LIST_AREANAME _("Area name:") -#define TEXT_BATCH_LIST_SCANMODE _("Scanmode:") -#define TEXT_BATCH_LIST_GEOMETRY_TL _("Top left:") -#define TEXT_BATCH_LIST_GEOMETRY_SIZE _("Size:") -#define TEXT_BATCH_LIST_RESOLUTION _("Resolution:") -#define TEXT_BATCH_LIST_BIT_DEPTH _("Bit depth:") -#define TEXT_BATCH_LIST_BY_GUI _("as selected") - -#define TEXT_SETUP_PRINTER_SEL _("Printer selection:") -#define TEXT_SETUP_PRINTER_NAME _("Name:") -#define TEXT_SETUP_PRINTER_CMD _("Command:") -#define TEXT_SETUP_COPY_NR_OPT _("Copy number option:") -#define TEXT_SETUP_PRINTER_LINEART_RES _("Lineart resolution (dpi):") -#define TEXT_SETUP_PRINTER_GRAYSCALE_RES _("Grayscale resolution (dpi):") -#define TEXT_SETUP_PRINTER_COLOR_RES _("Color resolution (dpi):") -#define TEXT_SETUP_PRINTER_WIDTH _("Width") -#define TEXT_SETUP_PRINTER_HEIGHT _("Height") -#define TEXT_SETUP_PRINTER_LEFT _("Left offset") -#define TEXT_SETUP_PRINTER_BOTTOM _("Bottom offset") -#define TEXT_SETUP_PRINTER_GAMMA _("Printer gamma value:") -#define TEXT_SETUP_PRINTER_GAMMA_RED _("Printer gamma red:") -#define TEXT_SETUP_PRINTER_GAMMA_GREEN _("Printer gamma green:") -#define TEXT_SETUP_PRINTER_GAMMA_BLUE _("Printer gamma blue:") -#define TEXT_SETUP_PRINTER_PS_FLATDECODED _("Create zlib compressed postscript image (ps level 3) for printing") -#define TEXT_SETUP_TMP_PATH _("Temporary directory") -#define TEXT_SETUP_IMAGE_PERMISSION _("Image-file permissions") -#define TEXT_SETUP_DIR_PERMISSION _("Directory permissions") -#define TEXT_SETUP_JPEG_QUALITY _("JPEG image quality") -#define TEXT_SETUP_PNG_COMPRESSION _("PNG image compression") -#define TEXT_SETUP_FILENAME_COUNTER_LEN _("Filename counter length") -#define TEXT_SETUP_TIFF_ZIP_COMPRESSION _("TIFF zip compression rate") -#define TEXT_SETUP_TIFF_COMPRESSION_16 _("TIFF 16 bit image compression") -#define TEXT_SETUP_TIFF_COMPRESSION_8 _("TIFF 8 bit image compression") -#define TEXT_SETUP_TIFF_COMPRESSION_1 _("TIFF lineart image compression") -#define TEXT_SETUP_SHOW_RANGE_MODE _("Show range as:") -#define TEXT_SETUP_PREVIEW_OVERSAMPLING _("Preview oversampling:") -#define TEXT_SETUP_PREVIEW_GAMMA _("Preview gamma:") -#define TEXT_SETUP_PREVIEW_GAMMA_RED _("Preview gamma red:") -#define TEXT_SETUP_PREVIEW_GAMMA_GREEN _("Preview gamma green:") -#define TEXT_SETUP_PREVIEW_GAMMA_BLUE _("Preview gamma blue:") -#define TEXT_SETUP_LINEART_MODE _("Threshold option:") -#define TEXT_SETUP_PREVIEW_PIPETTE_RANGE _("Preview pipette range") -#define TEXT_SETUP_THRESHOLD_MIN _("Threshold minimum:") -#define TEXT_SETUP_THRESHOLD_MAX _("Threshold maximum:") -#define TEXT_SETUP_THRESHOLD_MUL _("Threshold multiplier:") -#define TEXT_SETUP_THRESHOLD_OFF _("Threshold offset:") -#define TEXT_SETUP_GRAYSCALE_SCANMODE _("Name of grayscale scanmode:") -#define TEXT_SETUP_HELPFILE_VIEWER _("Helpfile viewer (HTML):") -#define TEXT_SETUP_FAX_COMMAND _("Command:") -#define TEXT_SETUP_FAX_RECEIVER_OPTION _("Receiver option:") -#define TEXT_SETUP_FAX_POSTSCRIPT_OPT _("Postscriptfile option:") -#define TEXT_SETUP_FAX_NORMAL_MODE_OPT _("Normal mode option:") -#define TEXT_SETUP_FAX_FINE_MODE_OPT _("Fine mode option:") -#define TEXT_SETUP_FAX_PROGRAM_DEFAULTS _("Set program defaults for:") -#define TEXT_SETUP_FAX_VIEWER _("Viewer (Postscript):") -#define TEXT_SETUP_FAX_WIDTH _("Width") -#define TEXT_SETUP_FAX_HEIGHT _("Height") -#define TEXT_SETUP_FAX_LEFT _("Left offset") -#define TEXT_SETUP_FAX_BOTTOM _("Bottom offset") -#define TEXT_SETUP_FAX_PS_FLATDECODED _("Create zlib compressed postscript image (ps level 3) for fax") -#define TEXT_SETUP_SMTP_SERVER _("SMTP server:") -#define TEXT_SETUP_SMTP_PORT _("SMTP port:") -#define TEXT_SETUP_EMAIL_FROM _("From:") -#define TEXT_SETUP_EMAIL_REPLY_TO _("Reply to:") -#define TEXT_SETUP_EMAIL_AUTHENTICATION _("E-mail authentication") -#define TEXT_SETUP_EMAIL_AUTH_USER _("User:") -#define TEXT_SETUP_EMAIL_AUTH_PASS _("Password:") -#define TEXT_SETUP_POP3_SERVER _("POP3 server:") -#define TEXT_SETUP_POP3_PORT _("POP3 port:") -#define TEXT_SETUP_OCR_COMMAND _("OCR Command:") -#define TEXT_SETUP_OCR_INPUTFILE_OPT _("Inputfile option:") -#define TEXT_SETUP_OCR_OUTPUTFILE_OPT _("Outputfile option:") -#define TEXT_SETUP_OCR_USE_GUI_PIPE_OPT _("Use GUI progress pipe:") -#define TEXT_SETUP_OCR_OUTFD_OPT _("GUI output-fd option:") -#define TEXT_SETUP_OCR_PROGRESS_KEYWORD _("Progress keyword:") -#define TEXT_SETUP_PERMISSION_USER _("user") -#define TEXT_SETUP_PERMISSION_GROUP _("group") -#define TEXT_SETUP_PERMISSION_ALL _("all") -#define TEXT_NEW_MEDIA_NAME _("new media") - -#define NOTEBOOK_SAVING_OPTIONS _("Save") -#define NOTEBOOK_FILETYPE_OPTIONS _("Filetype") -#define NOTEBOOK_COPY_OPTIONS _("Copy") -#define NOTEBOOK_FAX_OPTIONS _("Fax") -#define NOTEBOOK_EMAIL_OPTIONS _("E-mail") -#define NOTEBOOK_OCR_OPTIONS _("OCR") -#define NOTEBOOK_DISPLAY_OPTIONS _("Display") -#define NOTEBOOK_ENHANCE_OPTIONS _("Enhancement") - -#define MENU_ITEM_SAVE _("Save") -#define MENU_ITEM_VIEWER _("Viewer") -#define MENU_ITEM_COPY _("Copy") -#define MENU_ITEM_MULTIPAGE _("Multipage") -#define MENU_ITEM_FAX _("Fax") -#define MENU_ITEM_EMAIL _("E-mail") - -#define MENU_ITEM_SHOW_TOOLTIPS _("Show tooltips") -#define MENU_ITEM_SHOW_PREVIEW _("Show preview") -#define MENU_ITEM_SHOW_HISTOGRAM _("Show histogram") -#define MENU_ITEM_SHOW_GAMMA _("Show gamma curve") -#define MENU_ITEM_SHOW_BATCH_SCAN _("Show batch scan") -#define MENU_ITEM_SHOW_STANDARDOPTIONS _("Show standard options") -#define MENU_ITEM_SHOW_ADVANCEDOPTIONS _("Show advanced options") - -#define MENU_ITEM_SETUP _("Setup") -#define MENU_ITEM_LENGTH_UNIT _("Length unit") -#define SUBMENU_ITEM_LENGTH_MILLIMETERS _("millimeters") -#define SUBMENU_ITEM_LENGTH_CENTIMETERS _("centimeters") -#define SUBMENU_ITEM_LENGTH_INCHES _("inches") -#define MENU_ITEM_UPDATE_POLICY _("Update policy") -#define SUBMENU_ITEM_POLICY_CONTINUOUS _("continuous") -#define SUBMENU_ITEM_POLICY_DISCONTINU _("discontinuous") -#define SUBMENU_ITEM_POLICY_DELAYED _("delayed") -#define MENU_ITEM_SHOW_RESOLUTIONLIST _("Show resolution list") -#define MENU_ITEM_PAGE_ROTATE _("Rotate postscript") -#define MENU_ITEM_EDIT_MEDIUM_DEF _("Edit medium definition") -#define MENU_ITEM_SAVE_DEVICE_SETTINGS _("Save device settings") -#define MENU_ITEM_LOAD_DEVICE_SETTINGS _("Load device settings") -#define MENU_ITEM_CHANGE_WORKING_DIR _("Change directory") - -#define MENU_ITEM_XSANE_EULA _("Show EULA") -#define MENU_ITEM_XSANE_GPL _("Show license (GPL)") -#define MENU_ITEM_XSANE_DOC _("XSane doc") -#define MENU_ITEM_BACKEND_DOC _("Backend doc") -#define MENU_ITEM_AVAILABLE_BACKENDS _("Available backends") -#define MENU_ITEM_SCANTIPS _("Scantips") -#define MENU_ITEM_PROBLEMS _("Problems?") +#define TEXT_TRANSLATION_INFO _("untranslated original english text\n" \ + "by Oliver Rauch\n" \ + "E-mail: Oliver.Rauch@rauch-domain.de\n") + +#define TEXT_INFO_BOX _("0x0: 0KB") + +#define TEXT_ADF_PAGES_SCANNED _("Scanned pages: ") + +#define TEXT_EMAIL_TEXT _("E-mail text:") +#define TEXT_ATTACHMENTS _("Attachments:") +#define TEXT_EMAIL_STATUS _("Project status:") +#define TEXT_EMAIL_FILETYPE _("E-mail image filetype:") + +#define TEXT_PAGES _("Pages:") +#define TEXT_MULTIPAGE_FILETYPE _("Multipage document filetype:") + +#define TEXT_MEDIUM_DEFINITION_NAME _("Medium Name:") + +#define TEXT_VIEWER_IMAGE_INFO _("Size %d x %d pixel, %d bits/channel, %d channels, %1.0f dpi x %1.0f dpi, %1.1f %s") +#define TEXT_DESPECKLE_RADIUS _("Despeckle radius:") +#define TEXT_BLUR_RADIUS _("Blur radius:") +#define TEXT_BATCH_AREA_DEFAULT_NAME _("(no name)") +#define TEXT_BATCH_LIST_AREANAME _("Area name:") +#define TEXT_BATCH_LIST_SCANMODE _("Scanmode:") +#define TEXT_BATCH_LIST_GEOMETRY_TL _("Top left:") +#define TEXT_BATCH_LIST_GEOMETRY_SIZE _("Size:") +#define TEXT_BATCH_LIST_RESOLUTION _("Resolution:") +#define TEXT_BATCH_LIST_BIT_DEPTH _("Bit depth:") +#define TEXT_BATCH_LIST_BY_GUI _("as selected") + +#define TEXT_SETUP_PRINTER_SEL _("Printer selection:") +#define TEXT_SETUP_PRINTER_NAME _("Name:") +#define TEXT_SETUP_PRINTER_CMD _("Command:") +#define TEXT_SETUP_COPY_NR_OPT _("Copy number option:") +#define TEXT_SETUP_PRINTER_LINEART_RES _("Lineart resolution (dpi):") +#define TEXT_SETUP_PRINTER_GRAYSCALE_RES _("Grayscale resolution (dpi):") +#define TEXT_SETUP_PRINTER_COLOR_RES _("Color resolution (dpi):") +#define TEXT_SETUP_PRINTER_WIDTH _("Width") +#define TEXT_SETUP_PRINTER_HEIGHT _("Height") +#define TEXT_SETUP_PRINTER_LEFT _("Left offset") +#define TEXT_SETUP_PRINTER_BOTTOM _("Bottom offset") +#define TEXT_SETUP_PRINTER_GAMMA _("Printer gamma value:") +#define TEXT_SETUP_PRINTER_GAMMA_RED _("Printer gamma red:") +#define TEXT_SETUP_PRINTER_GAMMA_GREEN _("Printer gamma green:") +#define TEXT_SETUP_PRINTER_GAMMA_BLUE _("Printer gamma blue:") +#define TEXT_SETUP_PRINTER_EMBED_CSA _("Embed scanner ICM profile as CSA") +#define TEXT_SETUP_PRINTER_EMBED_CRD _("Embed printer ICM profile as CRD") +#define TEXT_SETUP_PRINTER_PS_FLATEDECODED _("Create zlib compressed postscript image (ps level 3) for printing") +#define TEXT_SETUP_TMP_PATH _("Temporary directory") +#define TEXT_SETUP_IMAGE_PERMISSION _("Image-file permissions") +#define TEXT_SETUP_DIR_PERMISSION _("Directory permissions") +#define TEXT_SETUP_JPEG_QUALITY _("JPEG image quality") +#define TEXT_SETUP_PNG_COMPRESSION _("PNG image compression") +#define TEXT_SETUP_FILENAME_COUNTER_LEN _("Filename counter length") +#define TEXT_SETUP_TIFF_ZIP_COMPRESSION _("TIFF zip compression rate") +#define TEXT_SETUP_TIFF_COMPRESSION_16 _("TIFF 16 bit image compression") +#define TEXT_SETUP_TIFF_COMPRESSION_8 _("TIFF 8 bit image compression") +#define TEXT_SETUP_TIFF_COMPRESSION_1 _("TIFF lineart image compression") +#define TEXT_SETUP_SHOW_RANGE_MODE _("Show range as:") +#define TEXT_SETUP_PREVIEW_OVERSAMPLING _("Preview oversampling:") +#define TEXT_SETUP_PREVIEW_GAMMA _("Preview gamma:") +#define TEXT_SETUP_PREVIEW_GAMMA_RED _("Preview gamma red:") +#define TEXT_SETUP_PREVIEW_GAMMA_GREEN _("Preview gamma green:") +#define TEXT_SETUP_PREVIEW_GAMMA_BLUE _("Preview gamma blue:") +#define TEXT_SETUP_LINEART_MODE _("Threshold option:") +#define TEXT_SETUP_PREVIEW_PIPETTE_RANGE _("Preview pipette range") +#define TEXT_SETUP_THRESHOLD_MIN _("Threshold minimum:") +#define TEXT_SETUP_THRESHOLD_MAX _("Threshold maximum:") +#define TEXT_SETUP_THRESHOLD_MUL _("Threshold multiplier:") +#define TEXT_SETUP_THRESHOLD_OFF _("Threshold offset:") +#define TEXT_SETUP_GRAYSCALE_SCANMODE _("Name of grayscale scanmode:") +#define TEXT_SETUP_HELPFILE_VIEWER _("Helpfile viewer (HTML):") +#define TEXT_SETUP_FAX_COMMAND _("Command:") +#define TEXT_SETUP_FAX_RECEIVER_OPTION _("Receiver option:") +#define TEXT_SETUP_FAX_POSTSCRIPT_OPT _("Postscriptfile option:") +#define TEXT_SETUP_FAX_NORMAL_MODE_OPT _("Normal mode option:") +#define TEXT_SETUP_FAX_FINE_MODE_OPT _("Fine mode option:") +#define TEXT_SETUP_FAX_PROGRAM_DEFAULTS _("Set program defaults for:") +#define TEXT_SETUP_FAX_VIEWER _("Viewer (Postscript):") +#define TEXT_SETUP_FAX_WIDTH _("Width") +#define TEXT_SETUP_FAX_HEIGHT _("Height") +#define TEXT_SETUP_FAX_LEFT _("Left offset") +#define TEXT_SETUP_FAX_BOTTOM _("Bottom offset") +#define TEXT_SETUP_FAX_PS_FLATEDECODED _("Create zlib compressed postscript image (ps level 3) for fax") +#define TEXT_SETUP_SMTP_SERVER _("SMTP server:") +#define TEXT_SETUP_SMTP_PORT _("SMTP port:") +#define TEXT_SETUP_EMAIL_FROM _("From:") +#define TEXT_SETUP_EMAIL_REPLY_TO _("Reply to:") +#define TEXT_SETUP_EMAIL_AUTHENTICATION _("E-mail authentication") +#define TEXT_SETUP_EMAIL_AUTH_USER _("User:") +#define TEXT_SETUP_EMAIL_AUTH_PASS _("Password:") +#define TEXT_SETUP_POP3_SERVER _("POP3 server:") +#define TEXT_SETUP_POP3_PORT _("POP3 port:") +#define TEXT_SETUP_OCR_COMMAND _("OCR Command:") +#define TEXT_SETUP_OCR_INPUTFILE_OPT _("Inputfile option:") +#define TEXT_SETUP_OCR_OUTPUTFILE_OPT _("Outputfile option:") +#define TEXT_SETUP_OCR_USE_GUI_PIPE_OPT _("Use GUI progress pipe:") +#define TEXT_SETUP_OCR_OUTFD_OPT _("GUI output-fd option:") +#define TEXT_SETUP_OCR_PROGRESS_KEYWORD _("Progress keyword:") +#define TEXT_SETUP_PERMISSION_USER _("user") +#define TEXT_SETUP_PERMISSION_GROUP _("group") +#define TEXT_SETUP_PERMISSION_ALL _("all") +#define TEXT_SETUP_SCANNER_DEFAULT_COLOR_ICM_PROFILE _("Scanner default color ICM-profile") +#define TEXT_SETUP_SCANNER_DEFAULT_GRAY_ICM_PROFILE _("Scanner default gray ICM-profile") +#define TEXT_SETUP_DISPLAY_ICM_PROFILE _("Display ICM-profile") +#define TEXT_SETUP_CUSTOM_PROOFING_ICM_PROFILE _("Custom proofing ICM-profile") +#define TEXT_SETUP_WORKING_COLOR_SPACE_ICM_PROFILE _("Working color space ICM-profile") +#define TEXT_SETUP_PRINTER_ICM_PROFILE _("Printer ICM-profile") +#define TEXT_NEW_MEDIA_NAME _("new media") + +#define NOTEBOOK_SAVING_OPTIONS _("Save") +#define NOTEBOOK_FILETYPE_OPTIONS _("Filetype") +#define NOTEBOOK_COPY_OPTIONS _("Copy") +#define NOTEBOOK_FAX_OPTIONS _("Fax") +#define NOTEBOOK_EMAIL_OPTIONS _("E-mail") +#define NOTEBOOK_OCR_OPTIONS _("OCR") +#define NOTEBOOK_DISPLAY_OPTIONS _("Display") +#define NOTEBOOK_ENHANCE_OPTIONS _("Enhancement") +#define NOTEBOOK_COLOR_MANAGEMENT_OPTIONS _("Color management") + +#define MENU_ITEM_SAVE _("Save") +#define MENU_ITEM_VIEWER _("Viewer") +#define MENU_ITEM_COPY _("Copy") +#define MENU_ITEM_MULTIPAGE _("Multipage") +#define MENU_ITEM_FAX _("Fax") +#define MENU_ITEM_EMAIL _("E-mail") + +#define MENU_ITEM_SHOW_TOOLTIPS _("Show tooltips") +#define MENU_ITEM_SHOW_PREVIEW _("Show preview") +#define MENU_ITEM_SHOW_HISTOGRAM _("Show histogram") +#define MENU_ITEM_SHOW_GAMMA _("Show gamma curve") +#define MENU_ITEM_SHOW_BATCH_SCAN _("Show batch scan") +#define MENU_ITEM_SHOW_STANDARDOPTIONS _("Show standard options") +#define MENU_ITEM_SHOW_ADVANCEDOPTIONS _("Show advanced options") + +#define MENU_ITEM_SETUP _("Setup") +#define MENU_ITEM_LENGTH_UNIT _("Length unit") +#define SUBMENU_ITEM_LENGTH_MILLIMETERS _("millimeters") +#define SUBMENU_ITEM_LENGTH_CENTIMETERS _("centimeters") +#define SUBMENU_ITEM_LENGTH_INCHES _("inches") +#define MENU_ITEM_UPDATE_POLICY _("Update policy") +#define SUBMENU_ITEM_POLICY_CONTINUOUS _("continuous") +#define SUBMENU_ITEM_POLICY_DISCONTINU _("discontinuous") +#define SUBMENU_ITEM_POLICY_DELAYED _("delayed") +#define MENU_ITEM_SHOW_RESOLUTIONLIST _("Show resolution list") +#define MENU_ITEM_PAGE_ROTATE _("Rotate postscript") +#define MENU_ITEM_ENABLE_COLOR_MANAGEMENT _("Enable color management") +#define MENU_ITEM_EDIT_MEDIUM_DEF _("Edit medium definition") +#define MENU_ITEM_SAVE_DEVICE_SETTINGS _("Save device settings") +#define MENU_ITEM_LOAD_DEVICE_SETTINGS _("Load device settings") +#define MENU_ITEM_CHANGE_WORKING_DIR _("Change directory") + +#define MENU_ITEM_XSANE_EULA _("Show EULA") +#define MENU_ITEM_XSANE_GPL _("Show license (GPL)") +#define MENU_ITEM_XSANE_DOC _("XSane doc") +#define MENU_ITEM_BACKEND_DOC _("Backend doc") +#define MENU_ITEM_AVAILABLE_BACKENDS _("Available backends") +#define MENU_ITEM_SCANTIPS _("Scantips") +#define MENU_ITEM_PROBLEMS _("Problems?") + + +#define MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT _("Enable color management") +#define MENU_ITEM_CMS_BLACK_POINT_COMPENSATION _("Black point compensation") +#define MENU_ITEM_CMS_PROOFING _("Proofing") +#define SUBMENU_ITEM_CMS_PROOF_OFF _("no proofing (Display)") +#define SUBMENU_ITEM_CMS_PROOF_PRINTER _("Proof printer") +#define SUBMENU_ITEM_CMS_PROOF_CUSTOM _("Proof custom device") +#define MENU_ITEM_CMS_RENDERING_INTENT _("Rendering intent") +#define MENU_ITEM_CMS_PROOFING_INTENT _("Proofing rendering intent") +#define SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL _("Perceptual") +#define SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC _("Relative colorimetric") +#define SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC _("Absolute colorimentric") +#define SUBMENU_ITEM_CMS_INTENT_SATURATION _("Saturation") +#define MENU_ITEM_CMS_GAMUT_CHECK _("Gamut check") +#define MENU_ITEM_CMS_GAMUT_ALARM_COLOR _("Gamut alarm color") +#define SUBMENU_ITEM_CMS_COLOR_BLACK _("Black") +#define SUBMENU_ITEM_CMS_COLOR_GRAY _("Gray") +#define SUBMENU_ITEM_CMS_COLOR_WHITE _("White") +#define SUBMENU_ITEM_CMS_COLOR_RED _("Red") +#define SUBMENU_ITEM_CMS_COLOR_GREEN _("Green") +#define SUBMENU_ITEM_CMS_COLOR_BLUE _("Blue") #define MENU_ITEM_COUNTER_LEN_INACTIVE _("inactive") #define MENU_ITEM_TIFF_COMP_NONE _("no compression") @@ -415,6 +458,10 @@ #define MENU_ITEM_AUTH_ASMTP_LOGIN _("ASMTP Login") #define MENU_ITEM_AUTH_ASMTP_CRAM_MD5 _("ASMTP CRAM-MD5") +#define MENU_ITEM_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE _("Embed scanner ICM profile") +#define MENU_ITEM_CMS_FUNCTION_CONVERT_TO_SRGB _("Convert to sRGB") +#define MENU_ITEM_FUNCTION_CONVERT_TO_WORKING_CS _("Convert to working color space") + #define PROGRESS_SCANNING _("Scanning") #define PROGRESS_RECEIVING_FRAME_DATA _("Receiving %s data") #define PROGRESS_PAGE _("page") @@ -430,6 +477,7 @@ #define PROGRESS_DESPECKLING_DATA _("Despeckling image") #define PROGRESS_BLURING_DATA _("Bluring image") #define PROGRESS_OCR _("OCR in progress") +#define PROGRESS_ICM_CONVERSION _("converting colors") #define DESC_SCAN_START _("Start scan ") #define DESC_SCAN_CANCEL _("Cancel scan ") @@ -445,15 +493,18 @@ #define DESC_BROWSE_FILENAME _("Browse for image filename") #define DESC_FILENAME _("Filename for scanned image") #define DESC_FILETYPE _("Type of image format, the suitable filename extension is automatically added to the filename") -#define DESC_FAXPROJECT _("Enter name of fax project") +#define DESC_FAXPROJECT _("Enter fax project directory name") #define DESC_FAXPAGENAME _("Enter new name for faxpage") #define DESC_FAXRECEIVER _("Enter receiver phone number or address") -#define DESC_EMAIL_PROJECT _("Enter name of e-mail project") +#define DESC_FAX_PROJECT_BROWSE _("Browse for fax project directory") +#define DESC_EMAIL_PROJECT _("Enter e-mail project directory name") #define DESC_EMAIL_IMAGENAME _("Enter new name for e-mail image") #define DESC_EMAIL_RECEIVER _("Enter e-mail address") +#define DESC_EMAIL_PROJECT_BROWSE _("Browse for email project directory") #define DESC_EMAIL_SUBJECT _("Enter subject of e-mail") #define DESC_EMAIL_FILETYPE _("Select filetype for image attachments") -#define DESC_MULTIPAGE_PROJECT _("Enter name of multipage project") +#define DESC_MULTIPAGE_PROJECT _("Enter multipage project directory name") +#define DESC_MULTIPAGE_PROJECT_BROWSE _("Browse for multipage project directory") #define DESC_MULTIPAGE_FILETYPE _("Select filetype for multipage file") #define DESC_PRESET_AREA_RENAME _("Enter new name for preset area") #define DESC_PRESET_AREA_ADD _("Enter name for new preset area") @@ -495,7 +546,7 @@ " brightness = 0\n" \ " contrast = 0") -#define DESC_ENH_AUTO _("Autoadjust gamma, brightness and contrast ") +#define DESC_ENH_AUTO _("Autoadjust gamma, brightness and contrast ") #define DESC_ENH_DEFAULT _("Set default enhancement values :\n" \ "gamma = 1.0\n" \ "brightness = 0\n" \ @@ -525,7 +576,9 @@ #define DESC_PRINTER_GAMMA_RED _("Additional gamma value for red component for photocopy") #define DESC_PRINTER_GAMMA_GREEN _("Additional gamma value for green component for photocopy") #define DESC_PRINTER_GAMMA_BLUE _("Additional gamma value for blue component for photocopy") -#define DESC_PRINTER_PS_FLATDECODED _("Create zlib compressed postscript image for printer (flatdecode).\n" \ +#define DESC_PRINTER_EMBED_CSA _("Creates a postsciptfile that contains the ICM profile of the scanner") +#define DESC_PRINTER_EMBED_CRD _("Creates a postsciptfile that contains the ICM profile of the printer") +#define DESC_PRINTER_PS_FLATEDECODED _("Create zlib compressed postscript image for printer (flatedecode).\n" \ "The printer has to understand postscript level 3!") #define DESC_TMP_PATH _("Path to temp directory") #define DESC_BUTTON_TMP_PATH_BROWSE _("Browse for temporary directory") @@ -539,20 +592,20 @@ #define DESC_SAVE_DEVPREFS_AT_EXIT _("Save device dependant preferences in default file at exit of xsane") #define DESC_OVERWRITE_WARNING _("Warn before overwriting an existing file") #define DESC_SKIP_EXISTING _("If filename counter is automatically increased, used numbers are skipped") -#define DESC_SAVE_PS_FLATDECODED _("compress postscript image with zlib algorithm (flatdecode). " \ +#define DESC_SAVE_PS_FLATEDECODED _("compress postscript image with zlib algorithm (flatedecode). " \ "When you want to print such a file your printer has to understand postscript level 3") -#define DESC_SAVE_PDF_FLATDECODED _("compress PDF image with zlib algorithm (flatdecode).") +#define DESC_SAVE_PDF_FLATEDECODED _("compress PDF image with zlib algorithm (flatedecode).") #define DESC_SAVE_PNM16_AS_ASCII _("When a 16 bit image shall be saved in pnm format then use ascii format " \ "instead of binary format. The binary format is a new format that is not " \ "supported by all programs. The ascii format is supported by more programs " \ "but it produces really huge files!!!") -#define DESC_REDUCE_16BIT_TO_8BIT _("If scanner sends image with 16 bits/color save image with 8 bits/color") +#define DESC_REDUCE_16BIT_TO_8BIT _("If scanner sends image with 16 bits/channel save image with 8 bits/channel") #define DESC_PSFILE_WIDTH _("Width of paper for postscript files") #define DESC_PSFILE_HEIGHT _("Height of paper for postscript files") #define DESC_PSFILE_LEFTOFFSET _("Left offset from the edge of the paper to the usable area for postscript files") #define DESC_PSFILE_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the usable area for postscript files") #define DESC_MAIN_WINDOW_FIXED _("Use fixed main window size or scrolled, resizable main window") -#define DESC_DISABLE_GIMP_PREVIEW_GAMMA _("Disable preview gamma when XSane runs as gimp plugin") +#define DESC_DISABLE_GIMP_PREVIEW_GAMMA _("Disable preview gamma when XSane runs as GIMP plugin") #define DESC_PREVIEW_COLORMAP _("Use an own colormap for preview if display depth is 8 bpp") #define DESC_SHOW_RANGE_MODE _("Select how a range is displayed") #define DESC_PREVIEW_OVERSAMPLING _("Value with that the calculated preview resolution is multiplied") @@ -575,6 +628,9 @@ #define DESC_PRESELECT_SCANAREA _("Select scanarea after preview scan has finished") #define DESC_AUTOCORRECT_COLORS _("Do color correction after preview scan has finished") +#define DESC_RENDERING_INTENT _("Select rendering intent for preview and saving") +#define DESC_CMS_BPC _("Apply black point compensation when color transformation is done") + #define DESC_FAX_COMMAND _("Enter command to be executed in fax mode") #define DESC_FAX_RECEIVER_OPT _("Enter option to specify receiver") #define DESC_FAX_POSTSCRIPT_OPT _("Enter option to specify postscript files following") @@ -586,7 +642,7 @@ #define DESC_FAX_HEIGHT _("Height of printable area") #define DESC_FAX_LEFTOFFSET _("Left offset from the edge of the paper to the printable area") #define DESC_FAX_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the printable area") -#define DESC_FAX_PS_FLATDECODED _("Create zlib compressed postscript image for fax (flatdecode)") +#define DESC_FAX_PS_FLATEDECODED _("Create zlib compressed postscript image for fax (flatedecode)") #define DESC_SMTP_SERVER _("IP Address or Domain name of SMTP server") #define DESC_SMTP_PORT _("port to connect to SMTP server") #define DESC_EMAIL_FROM _("enter your e-mail address") @@ -606,7 +662,7 @@ #define DESC_PERMISSION_READ _("read") #define DESC_PERMISSION_WRITE _("write") -#define DESC_PERMISSION_EXECUTE _("execute") +#define DESC_PERMISSION_SEARCH _("search") #define DESC_ADD_BATCH _("Add selection for batch scan") #define DESC_PIPETTE_WHITE _("Pick white point") @@ -658,6 +714,21 @@ #define DESC_BATCH_DEL _("Delete selected area from batch list") #define DESC_AUTOMATIC _("Turns on automatic mode") +#define DESC_SCANNER_DEFAULT_COLOR_ICM_PROFILE _("Scanner default color ICM-profile") +#define DESC_BUTTON_SCANNER_DEFAULT_COLOR_ICM_PROFILE_BROWSE _("Browse for scanner default color ICM-profile") +#define DESC_SCANNER_DEFAULT_GRAY_ICM_PROFILE _("Scanner default gray ICM-profile") +#define DESC_BUTTON_SCANNER_DEFAULT_GRAY_ICM_PROFILE_BROWSE _("Browse for scanner default gray ICM-profile") +#define DESC_DISPLAY_ICM_PROFILE _("Display ICM-profile") +#define DESC_BUTTON_DISPLAY_ICM_PROFILE_BROWSE _("Browse for display ICM-profile") +#define DESC_PRINTER_ICM_PROFILE _("Printer ICM-profile") +#define DESC_BUTTON_PRINTER_ICM_PROFILE_BROWSE _("Browse for printer ICM-profile") +#define DESC_CUSTOM_PROOFING_ICM_PROFILE _("Custom proofing ICM-profile") +#define DESC_BUTTON_CUSTOM_PROOFING_ICM_PROFILE_BROWSE _("Browse for custom proofing ICM-profile") +#define DESC_WORKING_COLOR_SPACE_ICM_PROFILE _("Working color space ICM-profile") +#define DESC_BUTTON_WORKING_COLOR_SPACE_ICM_PROFILE_BROWSE _("Browse for working color space ICM-profile") + +#define DESC_CMS_FUNCTION _("Color management function") + #define ERR_HOME_DIR _("Failed to determine home directory:") #define ERR_CHANGE_WORKING_DIR _("Failed to change working directory to") #define ERR_FILENAME_TOO_LONG _("Filename too long") @@ -673,7 +744,6 @@ write permissions." ) #define ERR_DURING_READ _("Error during read:") #define ERR_DURING_SAVE _("Error during save:") #define ERR_BAD_DEPTH _("Can't handle depth") -#define ERR_GIMP_BAD_DEPTH _("GIMP can't handle depth %d bits/color") #define ERR_UNKNOWN_SAVING_FORMAT _("Unknown file format for saving") #define ERR_OPEN_FAILED _("Failed to open") #define ERR_CREATE_SECURE_FILE _("Could not create secure file (may be a link does exist):") @@ -741,8 +811,22 @@ YOU ARE ALONE!\ #define ERR_FILE_NOT_POSTSCRIPT _("File %s is not a postscript file") #define ERR_UNSUPPORTED_OUTPUT_FORMAT _("Unsupported %d-bit output format: %s") +#define ERR_CMS_CONVERSION _("Error during CMS conversion:") +#define ERR_CMS_OPEN_ICM_FILE _("Could not open") +#define CMS_SCANNER_ICM _("scanner ICM profile") +#define CMS_DISPLAY_ICM _("display ICM profile") +#define CMS_PROOF_ICM _("proofing ICM profile") +#define ERR_CMS_CREATE_TRANSFORM _("Could not create transform") + #define WARN_VIEWER_IMAGE_NOT_SAVED _("viewer image is not saved") +#define FILE_FILTER_ALL_FILES _("All files") +#define FILE_FILTER_IMAGES _("Images") +#define FILE_FILTER_XBL _("XSane batch list") +#define FILE_FILTER_ICM _("ICC/ICM Profiles") +#define FILE_FILTER_DRC _("XSane device preferences") +#define FILE_FILTER_RC _("XSane preferences") + #define TEXT_USAGE _("Usage:") #define TEXT_USAGE_OPTIONS _("[OPTION]... [DEVICE]") #define TEXT_HELP _(\ @@ -849,4 +933,5 @@ The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n\ #define TEXT_FAX_STATUS_QUEUEING_FAX N_("Queueing Fax") #define TEXT_FAX_STATUS_FAX_QUEUED N_("Fax is queued") + #endif diff --git a/src/xsane-viewer.c b/src/xsane-viewer.c index d1d8e5e..ef47529 100644 --- a/src/xsane-viewer.c +++ b/src/xsane-viewer.c @@ -3,7 +3,7 @@ xsane-viewer.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -32,8 +32,7 @@ #include "xsane-save.h" #include #include - - + #ifndef PATH_MAX # define PATH_MAX 1024 #endif @@ -81,35 +80,37 @@ static void xsane_viewer_set_sensitivity(Viewer *v, int sensitivity) switch (v->allow_modification) { case VIEWER_NO_MODIFICATION: - gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->ocr_menu_item), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->clone_menu_item), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); - - gtk_widget_set_sensitive(GTK_WIDGET(v->save), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->ocr), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->clone), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->ocr_menu_item), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->clone_menu_item), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->color_management_menu), v->enable_color_management); + + gtk_widget_set_sensitive(GTK_WIDGET(v->save), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->ocr), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->clone), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), FALSE); break; case VIEWER_NO_NAME_AND_SIZE_MODIFICATION: - gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->ocr_menu_item), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->clone_menu_item), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); - - gtk_widget_set_sensitive(GTK_WIDGET(v->save), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->ocr), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->clone), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->ocr_menu_item), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->clone_menu_item), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->color_management_menu), v->enable_color_management); + + gtk_widget_set_sensitive(GTK_WIDGET(v->save), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->ocr), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->clone), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), FALSE); break; case VIEWER_NO_NAME_MODIFICATION: @@ -121,26 +122,28 @@ static void xsane_viewer_set_sensitivity(Viewer *v, int sensitivity) case VIEWER_FULL_MODIFICATION: default: - gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), TRUE); - - gtk_widget_set_sensitive(GTK_WIDGET(v->save), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->save_menu_item), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->color_management_menu), v->enable_color_management); + + gtk_widget_set_sensitive(GTK_WIDGET(v->save), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_button_box), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_button_box), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_button_box), TRUE); break; } } else { v->block_actions = TRUE; - gtk_widget_set_sensitive(GTK_WIDGET(v->file_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->file_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->edit_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->filters_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->geometry_menu), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->color_management_menu),FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE); } } @@ -255,6 +258,7 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) char windowname[TEXTBUFSIZE]; int output_format; int abort = 0; + int show_extra_widgets; char buf[TEXTBUFSIZE]; if (v->block_actions) /* actions blocked: return */ @@ -280,9 +284,15 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) if (v->allow_modification == VIEWER_FULL_MODIFICATION) /* it is allowed to rename the image */ { snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_VIEWER_OUTPUT_FILENAME, xsane.device_text); + + show_extra_widgets = XSANE_GET_FILENAME_SHOW_FILETYPE; + if (v->cms_enable) + { + show_extra_widgets |= XSANE_GET_FILENAME_SHOW_CMS_FUNCTION; + } umask((mode_t) preferences.directory_umask); /* define new file permissions */ - abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, &v->selection_filetype, TRUE, TRUE, FALSE, TRUE); + abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, &v->selection_filetype, &v->cms_function, XSANE_FILE_CHOOSER_ACTION_SAVE, show_extra_widgets, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_IMAGES, XSANE_FILE_FILTER_IMAGES); umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ if (abort) @@ -348,7 +358,7 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) } else { - xsane_save_image_as(v->output_filename, inputfilename, output_format, v->progress_bar, &v->cancel_save); + xsane_save_image_as(v->output_filename, inputfilename, output_format, v->cms_enable, v->cms_function, v->cms_intent, v->cms_bpc, v->progress_bar, &v->cancel_save); } free(inputfilename); @@ -411,7 +421,7 @@ static void xsane_viewer_ocr_callback(GtkWidget *window, gpointer data) snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_OCR_OUTPUT_FILENAME, xsane.device_text); umask((mode_t) preferences.directory_umask); /* define new file permissions */ - abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, NULL, TRUE, TRUE, FALSE, FALSE); + abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, NULL, NULL, XSANE_FILE_CHOOSER_ACTION_SAVE, XSANE_GET_FILENAME_SHOW_FILETYPE, XSANE_FILE_FILTER_ALL | XSANE_FILE_FILTER_IMAGES, XSANE_FILE_FILTER_IMAGES); umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ if (abort) @@ -458,11 +468,11 @@ static void xsane_viewer_clone_callback(GtkWidget *window, gpointer data) { char buf[TEXTBUFSIZE]; snprintf(buf, sizeof(buf), "%s%s", FILENAME_PREFIX_CLONE_OF, v->last_saved_filename); - xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, buf, v->allow_modification, IMAGE_NOT_SAVED); + xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, buf, v->allow_modification, v->image_saved); } else { - xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, NULL, v->allow_modification, IMAGE_NOT_SAVED); + xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, NULL, v->allow_modification, v->image_saved); } } @@ -569,7 +579,7 @@ static void xsane_viewer_scale_callback(GtkWidget *window, gpointer data) GtkWidget *frame; GtkWidget *hbox, *vbox; GtkWidget *button; - GtkObject *scale_widget, *scalex_widget, *scaley_widget; + GtkWidget *scale_widget, *scalex_widget, *scaley_widget; GtkAdjustment *adjustment_size_x; GtkAdjustment *adjustment_size_y; GtkWidget *spinbutton; @@ -1071,7 +1081,7 @@ static void xsane_viewer_scale_image(GtkWidget *window, gpointer data) xsane_read_pnm_header(infile, &image_info); - DBG(DBG_info, "scaling image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); + DBG(DBG_info, "scaling image %s with geometry: %d x %d x %d, %d channels\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP); @@ -1153,7 +1163,7 @@ static void xsane_viewer_despeckle_image(GtkWidget *window, gpointer data) xsane_read_pnm_header(infile, &image_info); - DBG(DBG_info, "despeckling image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); + DBG(DBG_info, "despeckling image %s with geometry: %d x %d x %d, %d channels\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP); @@ -1230,7 +1240,7 @@ static void xsane_viewer_blur_image(GtkWidget *window, gpointer data) xsane_read_pnm_header(infile, &image_info); - DBG(DBG_info, "bluring image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); + DBG(DBG_info, "bluring image %s with geometry: %d x %d x %d, %d channels\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP); @@ -1312,7 +1322,7 @@ static void xsane_viewer_rotate(Viewer *v, int rotation) xsane_read_pnm_header(infile, &image_info); - DBG(DBG_info, "rotating image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); + DBG(DBG_info, "rotating image %s with geometry: %d x %d x %d, %d channels\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP); @@ -1654,240 +1664,1150 @@ static GtkWidget *xsane_viewer_geometry_build_menu(Viewer *v) /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_viewer_read_image(Viewer *v) +#ifdef HAVE_LIBLCMS +#define INTENT_PERCEPTUAL 0 +#define INTENT_RELATIVE_COLORIMETRIC 1 +#define INTENT_SATURATION 2 +#define INTENT_ABSOLUTE_COLORIMETRIC 3 + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_viewer_set_cms_enable_callback(GtkWidget *widget, gpointer data) { - unsigned char *row, *src_row; - int x, y; - int last_y; - int nread; - int pos0; - FILE *infile; - Image_info image_info; - char buf[TEXTBUFSIZE]; - float size; - char *size_unit; - int width, height; + Viewer *v = (Viewer *) data; - infile = fopen(v->filename, "rb"); - if (!infile) - { - DBG(DBG_error, "could not load file %s\n", v->filename); - return -1; - } + v->cms_enable = (GTK_CHECK_MENU_ITEM(widget)->active != 0); + DBG(DBG_proc, "xsane_viewer_set_cms_enable_callback (%d)\n", v->cms_enable); - xsane_read_pnm_header(infile, &image_info); + xsane_viewer_read_image(v); +} - pos0 = ftell(infile); +/* ---------------------------------------------------------------------------------------------------------------------- */ - if (!image_info.colors) /* == 0 (grayscale) ? */ - { - image_info.colors = 1; /* we have one color component */ - } +static void xsane_viewer_set_cms_black_point_compensation_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; - DBG(DBG_info, "reading image %s with geometry: %d x %d x %d, %d colors\n", v->filename, - image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); - /* open infile */ + v->cms_bpc = (GTK_CHECK_MENU_ITEM(widget)->active != 0); + DBG(DBG_proc, "xsane_viewer_set_cms_black_point_compensation_callback (%d)\n", v->cms_bpc); - if (v->window) /* we already have an existing viewer preview window? */ - { - gtk_widget_destroy(v->window); - } + xsane_viewer_read_image(v); +} - /* the preview area */ - if (image_info.colors == 3) /* RGB */ - { - v->window = gtk_preview_new(GTK_PREVIEW_COLOR); - } - else /* grayscale */ - { - v->window = gtk_preview_new(GTK_PREVIEW_GRAYSCALE); - } +/* ---------------------------------------------------------------------------------------------------------------------- */ - gtk_preview_size(GTK_PREVIEW(v->window), image_info.image_width * v->zoom, image_info.image_height * v->zoom); - gtk_container_add(GTK_CONTAINER(v->viewport), v->window); - gtk_widget_show(v->window); +static void xsane_viewer_set_cms_gamut_check_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; + v->cms_gamut_check = (GTK_CHECK_MENU_ITEM(widget)->active != 0); + DBG(DBG_proc, "xsane_viewer_set_cms_gamut_check_callback (%d)\n", v->cms_gamut_check); + xsane_viewer_read_image(v); +} - /* get memory for one row of the image */ - src_row = malloc(image_info.image_width * image_info.colors * image_info.depth / 8); - row = malloc(((int) image_info.image_width * v->zoom) * image_info.colors); +/* ---------------------------------------------------------------------------------------------------------------------- */ - if (!row || !src_row) - { - if (src_row) - { - free(src_row); - } +static void xsane_viewer_set_cms_proofing_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; + int val; - if (row) - { - free(row); - } + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_proofing_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_proofing_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_proofing_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); - fclose(infile); - DBG(DBG_error, "could not allocate memory\n"); - return -1; - } + val = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection"); + DBG(DBG_proc, "xsane_viewer_set_cms_proofing_callback (%d)\n", val); - last_y = -99999; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_proofing_widget[v->cms_proofing]), FALSE); + v->cms_proofing = val; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_proofing_widget[v->cms_proofing]), TRUE); - /* read the image from file */ - for (y = 0; y < (int) (image_info.image_height * v->zoom); y++) - { - if ((int) (last_y / v->zoom) != (int) (y / v->zoom)) - { - last_y = y; + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_proofing_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_proofing_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_proofing_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); - if (image_info.depth == 8) /* 8 bits/pixel */ - { - fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.colors, SEEK_SET); - nread = fread(src_row, image_info.colors, image_info.image_width, infile); + xsane_viewer_read_image(v); +} - if (image_info.colors > 1) - { - for (x=0; x < (int) (image_info.image_width * v->zoom); x++) - { - int xoff = ((int) (x / v->zoom)) * image_info.colors; +/* ---------------------------------------------------------------------------------------------------------------------- */ - row[3*x+0] = src_row[xoff + 0]; - row[3*x+1] = src_row[xoff + 1]; - row[3*x+2] = src_row[xoff + 2]; - } - } - else - { - for (x=0; x < (int) (image_info.image_width * v->zoom); x++) - { - row[x] = src_row[((int) (x / v->zoom))]; - } - } - } - else /* 16 bits/pixel => reduce to 8 bits/pixel */ - { - guint16 *src_row16 = (guint16 *) src_row; +static void xsane_viewer_set_cms_intent_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; + int val; - fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.colors * 2, SEEK_SET); - nread = fread(src_row, 2 * image_info.colors, image_info.image_width, infile); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_intent_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_intent_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_intent_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_intent_widget[3]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); - if (image_info.colors > 1) - { - for (x=0; x < (int) (image_info.image_width * v->zoom); x++) - { - int xoff = ((int) (x / v->zoom)) * image_info.colors; + val = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection"); - row[3*x+0] = (unsigned char) (src_row16[xoff + 0] / 256); - row[3*x+1] = (unsigned char) (src_row16[xoff + 1] / 256); - row[3*x+2] = (unsigned char) (src_row16[xoff + 2] / 256); - } - } - else - { - for (x=0; x < (int) (image_info.image_width * v->zoom); x++) - { - row[x] = (unsigned char) (src_row16[(int) (x / v->zoom)] / 256); - } - } - } - } + DBG(DBG_proc, "xsane_viewer_set_cms_intent_callback (%d)\n", val); - gtk_preview_draw_row(GTK_PREVIEW(v->window), row, 0, y, image_info.image_width * v->zoom); - } + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_intent_widget[v->cms_intent]), FALSE); + v->cms_intent = val; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_intent_widget[v->cms_intent]), TRUE); - gtk_preview_put(GTK_PREVIEW(v->window), v->window->window, v->window->style->black_gc, 0, 0, 0, 0, - image_info.image_width * v->zoom, image_info.image_height * v->zoom); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_intent_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_intent_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_intent_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_intent_widget[3]), (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); - size = (float) image_info.image_width * image_info.image_height * image_info.colors; - if (image_info.depth == 16) + xsane_viewer_read_image(v); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_viewer_set_cms_proofing_intent_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; + int val; + + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_proofing_intent_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_proofing_intent_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + + val = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection"); + + DBG(DBG_proc, "xsane_viewer_set_cms_proofing_intent_callback (%d)\n", val); + + /* we have cms_proofing_intent = 1 and 3 and widget[0] and widget[1] => widget[(cms_proofing_intent-1)/2] */ + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_proofing_intent_widget[(v->cms_proofing_intent-1)/2]), FALSE); + v->cms_proofing_intent = val; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_proofing_intent_widget[(v->cms_proofing_intent-1)/2]), TRUE); + + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_proofing_intent_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_proofing_intent_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + + xsane_viewer_read_image(v); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_viewer_set_cms_gamut_alarm_color_callback(GtkWidget *widget, gpointer data) +{ + Viewer *v = (Viewer *) data; + int val; + + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[3]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[4]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[5]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + + val = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection"); + + DBG(DBG_proc, "xsane_viewer_set_cms_gamut_alarm_color_callback (%d)\n", val); + + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_gamut_alarm_color_widget[v->cms_gamut_alarm_color]), FALSE); + v->cms_gamut_alarm_color = val; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_gamut_alarm_color_widget[v->cms_gamut_alarm_color]), TRUE); + + switch(v->cms_gamut_alarm_color) { - size *= 2.0; + default: + case 0: /* black */ + cmsSetAlarmCodes(0, 0, 0); + break; + + case 1: /* gray */ + cmsSetAlarmCodes(128, 128, 128); + break; + + case 2: /* white */ + cmsSetAlarmCodes(255, 255, 255); + break; + + case 3: /* red */ + cmsSetAlarmCodes(255, 0, 0); + break; + + case 4: /* green */ + cmsSetAlarmCodes(0, 255, 0); + break; + + case 5: /* blue */ + cmsSetAlarmCodes(0, 0, 255); + break; } - if (image_info.reduce_to_lineart) + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[2]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[3]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[4]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[5]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + + if (v->cms_gamut_check) { - size /= 8.0; + xsane_viewer_read_image(v); } +} - size_unit = "B"; +/* ---------------------------------------------------------------------------------------------------------------------- */ - if (size >= 1024 * 1024) +static GtkWidget *xsane_viewer_color_management_build_menu(Viewer *v) +{ + GtkWidget *menu, *item, *submenu, *subitem; + + DBG(DBG_proc, "xsane_viewer_color_management_build_menu\n"); + + menu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(menu), xsane.accelerator_group); + + /* cms enable */ + item = gtk_check_menu_item_new_with_label(MENU_ITEM_CMS_ENABLE_COLOR_MANAGEMENT); + gtk_menu_append(GTK_MENU(menu), item); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), v->cms_enable); + g_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_enable_callback, v); + gtk_widget_show(item); + + /* black point compensation */ + item = gtk_check_menu_item_new_with_label(MENU_ITEM_CMS_BLACK_POINT_COMPENSATION); + gtk_menu_append(GTK_MENU(menu), item); + if (v->cms_bpc) { - size /= (1024.0 * 1024.0); - size_unit = "MB"; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE); } - else if (size >= 1024) + g_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_black_point_compensation_callback, v); + gtk_widget_show(item); + + + /* Output Device submenu */ + item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_PROOFING); + gtk_menu_append(GTK_MENU(menu), item); + gtk_widget_show(item); + + submenu = gtk_menu_new(); + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_PROOF_OFF); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_proofing == 0) { - size /= 1024.0; - size_unit = "KB"; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 0); + gtk_widget_show(subitem); + v->cms_proofing_widget[0] = subitem; - if (image_info.reduce_to_lineart) + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_PROOF_PRINTER); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_proofing == 1) { - snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, 1, image_info.colors, - image_info.resolution_x, image_info.resolution_y, size, size_unit); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } - else + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 1); + gtk_widget_show(subitem); + v->cms_proofing_widget[1] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_PROOF_CUSTOM); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_proofing == 2) { - snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors, - image_info.resolution_x, image_info.resolution_y, size, size_unit); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } - gtk_label_set(GTK_LABEL(v->image_info_label), buf); + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_proofing_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 2); + gtk_widget_show(subitem); + v->cms_proofing_widget[2] = subitem; - width = image_info.image_width + 26; - height = image_info.image_height + 136; + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); - if (width > gdk_screen_width()) + + /* Intent submenu */ + item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_RENDERING_INTENT); + gtk_menu_append(GTK_MENU(menu), item); + gtk_widget_show(item); + + submenu = gtk_menu_new(); + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_PERCEPTUAL); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_intent == INTENT_PERCEPTUAL) { - width = gdk_screen_width(); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_PERCEPTUAL); + gtk_widget_show(subitem); + v->cms_intent_widget[INTENT_PERCEPTUAL] = subitem; - if (height > gdk_screen_height()) + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_intent == INTENT_RELATIVE_COLORIMETRIC) { - height = gdk_screen_height(); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_RELATIVE_COLORIMETRIC); + gtk_widget_show(subitem); + v->cms_intent_widget[INTENT_RELATIVE_COLORIMETRIC] = subitem; -#ifdef HAVE_GTK2 - if (GTK_WIDGET_REALIZED(v->top)) + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_intent == INTENT_ABSOLUTE_COLORIMETRIC) { - gtk_window_resize(GTK_WINDOW(v->top), width, height); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } - else -#endif + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_ABSOLUTE_COLORIMETRIC); + gtk_widget_show(subitem); + v->cms_intent_widget[INTENT_ABSOLUTE_COLORIMETRIC] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_SATURATION); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_intent == INTENT_SATURATION) { - gtk_window_set_default_size(GTK_WINDOW(v->top), width, height); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_SATURATION); + gtk_widget_show(subitem); + v->cms_intent_widget[INTENT_SATURATION] = subitem; - free(row); - free(src_row); - fclose(infile); - - return 0; -} + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); + -/* ---------------------------------------------------------------------------------------------------------------------- */ + /* proofing_intent submenu */ + item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_PROOFING_INTENT); + gtk_menu_append(GTK_MENU(menu), item); + gtk_widget_show(item); -Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_reduction_to_lineart, - char *output_filename, viewer_modification allow_modification, int image_saved) -{ - char buf[TEXTBUFSIZE]; - Viewer *v; - GtkWidget *vbox, *hbox; - GtkWidget *menubar, *menubar_item; - GtkWidget *scrolled_window; - GtkWidget *zoom_option_menu, *zoom_menu, *zoom_menu_item; - int i, selection; + submenu = gtk_menu_new(); - DBG(DBG_proc, "viewer_new(%s)\n", filename); + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_RELATIVE_COLORIMETRIC); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_proofing_intent == INTENT_RELATIVE_COLORIMETRIC) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_RELATIVE_COLORIMETRIC); + gtk_widget_show(subitem); + v->cms_proofing_intent_widget[0] = subitem; - /* create viewer structure v */ - v = malloc(sizeof(*v)); - if (!v) + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_INTENT_ABSOLUTE_COLORIMETRIC); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_proofing_intent == INTENT_ABSOLUTE_COLORIMETRIC) { - DBG(DBG_error, "could not allocate memory\n"); - return 0; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); } - memset(v, 0, sizeof(*v)); + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_proofing_intent_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) INTENT_ABSOLUTE_COLORIMETRIC); + gtk_widget_show(subitem); + v->cms_proofing_intent_widget[1] = subitem; + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); + + + /* cms gamut check */ + item = gtk_check_menu_item_new_with_label(MENU_ITEM_CMS_GAMUT_CHECK); + gtk_menu_append(GTK_MENU(menu), item); + g_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_check_callback, v); + gtk_widget_show(item); + + + /* gamut alarm color */ + item = gtk_menu_item_new_with_label(MENU_ITEM_CMS_GAMUT_ALARM_COLOR); + gtk_menu_append(GTK_MENU(menu), item); + gtk_widget_show(item); + + submenu = gtk_menu_new(); + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_BLACK); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 0) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 0); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[0] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_GRAY); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 1) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 1); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[1] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_WHITE); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 2) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 2); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[2] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_RED); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 3) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 3); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[3] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_GREEN); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 4) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 4); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[4] = subitem; + + subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_CMS_COLOR_BLUE); + gtk_menu_append(GTK_MENU(submenu), subitem); + if (v->cms_gamut_alarm_color == 5) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE); + } + g_signal_connect(GTK_OBJECT(subitem), "toggled", (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + gtk_object_set_data(GTK_OBJECT(subitem), "Selection", (void *) 5); + gtk_widget_show(subitem); + v->cms_gamut_alarm_color_widget[5] = subitem; + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); + + return menu; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + + +static int xsane_viewer_read_image_header(Viewer *v) +{ + int pos0; + FILE *infile; + Image_info image_info; + + /* open imagefile */ + + infile = fopen(v->filename, "rb"); + if (!infile) + { + DBG(DBG_error, "could not load file %s\n", v->filename); + return -1; + } + + xsane_read_pnm_header(infile, &image_info); + + pos0 = ftell(infile); + + if (!image_info.channels) /* == 0 (grayscale) ? */ + { + image_info.channels = 1; /* we have one color component */ + } + + DBG(DBG_info, "reading image header %s with geometry: %d x %d x %d, %d channels\n", v->filename, + image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); + + /* init color management */ + v->enable_color_management = image_info.enable_color_management; + if (!image_info.enable_color_management) + { + v->cms_enable = FALSE; + } + + v->cms_function = image_info.cms_function; + v->cms_intent = image_info.cms_intent; + v->cms_bpc = image_info.cms_bpc; + + if ((v->enable_color_management) && (image_info.reduce_to_lineart)) + { + v->enable_color_management = FALSE; + v->cms_enable = FALSE; + } + + fclose(infile); + + return 0; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + + +static int xsane_viewer_read_image(Viewer *v) +{ + unsigned char *cms_row, *row, *src_row; + int x, y; + int last_y; + int nread; + int pos0; + FILE *infile; + Image_info image_info; + char buf[TEXTBUFSIZE]; + float size; + char *size_unit; + int width, height; + +#ifdef HAVE_LIBLCMS + cmsHPROFILE hInProfile = NULL; + cmsHPROFILE hOutProfile = NULL; + cmsHPROFILE hProofProfile = NULL; + cmsHTRANSFORM hTransform = NULL; + int proof = 0; + char *cms_proof_icm_profile = NULL; + DWORD cms_input_format; + DWORD cms_output_format; + DWORD cms_flags = 0; +#endif + + /* open imagefile */ + + infile = fopen(v->filename, "rb"); + if (!infile) + { + DBG(DBG_error, "could not load file %s\n", v->filename); + return -1; + } + + xsane_read_pnm_header(infile, &image_info); + + pos0 = ftell(infile); + + if (!image_info.channels) /* == 0 (grayscale) ? */ + { + image_info.channels = 1; /* we have one color component */ + } + + DBG(DBG_info, "reading image %s with geometry: %d x %d x %d, %d channels\n", v->filename, + image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); + +#ifdef HAVE_LIBLCMS + /* init color management */ + + if ((v->enable_color_management) && (v->cms_enable)) + { + cmsErrorAction(LCMS_ERROR_SHOW); + + if (v->cms_bpc) + { + cms_flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; + } + + if (image_info.channels == 1) /* == 1 (grayscale) */ + { + if (image_info.depth == 8) + { + cms_input_format = TYPE_GRAY_8; + cms_output_format = TYPE_GRAY_8; + } + else + { + cms_input_format = TYPE_GRAY_16; + cms_output_format = TYPE_GRAY_8; + } + } + else /* color */ + { + if (image_info.depth == 8) + { + cms_input_format = TYPE_RGB_8; + cms_output_format = TYPE_RGB_8; + } + else + { + cms_input_format = TYPE_RGB_16; + cms_output_format = TYPE_RGB_8; + } + } + + switch (v->cms_proofing) + { + default: + case 0: /* display */ + proof = 0; + break; + + case 1: /* proof printer */ + cms_proof_icm_profile = preferences.printer[preferences.printernr]->icm_profile; + proof = 1; + break; + + case 2: /* proof custom proofing */ + cms_proof_icm_profile = preferences.custom_proofing_icm_profile; + proof = 1; + break; + } + + hInProfile = cmsOpenProfileFromFile(image_info.icm_profile, "r"); + if (!hInProfile) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_SCANNER_ICM, image_info.icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + hOutProfile = cmsOpenProfileFromFile(preferences.display_icm_profile, "r"); + if (!hOutProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_DISPLAY_ICM, preferences.display_icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + + if (proof == 0) + { + hTransform = cmsCreateTransform(hInProfile, cms_input_format, + hOutProfile, cms_output_format, + v->cms_intent, cms_flags); + } + else /* proof */ + { + cms_flags |= cmsFLAGS_SOFTPROOFING; + + if (v->cms_gamut_check) + { + cms_flags |= cmsFLAGS_GAMUTCHECK; + } + + hProofProfile = cmsOpenProfileFromFile(cms_proof_icm_profile, "r"); + if (!hProofProfile) + { + char buf[TEXTBUFSIZE]; + + cmsCloseProfile(hInProfile); + cmsCloseProfile(hOutProfile); + + snprintf(buf, sizeof(buf), "%s\n%s %s: %s\n", ERR_CMS_CONVERSION, ERR_CMS_OPEN_ICM_FILE, CMS_PROOF_ICM, cms_proof_icm_profile); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + + hTransform = cmsCreateProofingTransform(hInProfile, cms_input_format, + hOutProfile, cms_output_format, + hProofProfile, + v->cms_intent, v->cms_proofing_intent, cms_flags); + } + + cmsCloseProfile(hInProfile); + cmsCloseProfile(hOutProfile); + if (proof) + { + cmsCloseProfile(hProofProfile); + } + + if (!hTransform) + { + char buf[TEXTBUFSIZE]; + + snprintf(buf, sizeof(buf), "%s\n%s\n", ERR_CMS_CONVERSION, ERR_CMS_CREATE_TRANSFORM); + xsane_back_gtk_error(buf, TRUE); + return -1; + } + } +#endif + + /* open infile */ + + if (v->window) /* we already have an existing viewer preview window? */ + { + gtk_widget_destroy(v->window); + } + + /* the preview area */ + if (image_info.channels == 3) /* RGB */ + { + v->window = gtk_preview_new(GTK_PREVIEW_COLOR); + } + else /* grayscale */ + { + v->window = gtk_preview_new(GTK_PREVIEW_GRAYSCALE); + } + + gtk_preview_size(GTK_PREVIEW(v->window), image_info.image_width * v->zoom, image_info.image_height * v->zoom); + gtk_container_add(GTK_CONTAINER(v->viewport), v->window); + gtk_widget_show(v->window); + + + + /* get memory for one row of the image */ + src_row = malloc(image_info.image_width * image_info.channels * image_info.depth / 8); + + if ((v->enable_color_management) && (v->cms_enable)) + { + row = malloc(((int) image_info.image_width * v->zoom) * image_info.channels * image_info.depth / 8); + } + else + { + row = malloc(((int) image_info.image_width * v->zoom) * image_info.channels); + } + +#ifdef HAVE_LIBLCMS + if ((v->enable_color_management) && (v->cms_enable)) + { + cms_row = malloc(((int) image_info.image_width * v->zoom) * image_info.channels); + } + else +#endif + { + cms_row = row; + } + + if (!row || !src_row || !cms_row) + { + if (src_row) + { + free(src_row); + } + + if (row) + { + free(row); + } + +#ifdef HAVE_LIBLCMS + if ((cms_row) && (v->enable_color_management) && (v->cms_enable)) + { + free(cms_row); + } +#endif + + fclose(infile); + DBG(DBG_error, "could not allocate memory\n"); + return -1; + } + + + last_y = -99999; + + /* read the image from file */ + for (y = 0; y < (int) (image_info.image_height * v->zoom); y++) + { + if ((int) (last_y / v->zoom) != (int) (y / v->zoom)) + { + last_y = y; + + if (image_info.depth == 8) /* 8 bits/pixel */ + { + fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.channels, SEEK_SET); + nread = fread(src_row, image_info.channels, image_info.image_width, infile); + + if (image_info.channels > 1) + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + int xoff = ((int) (x / v->zoom)) * image_info.channels; + + row[3*x+0] = src_row[xoff + 0]; + row[3*x+1] = src_row[xoff + 1]; + row[3*x+2] = src_row[xoff + 2]; + } + } + else + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + row[x] = src_row[((int) (x / v->zoom))]; + } + } + } + else if ((!v->enable_color_management) || (!v->cms_enable)) /* 16 bits/pixel => reduce to 8 bits/pixel */ + { + guint16 *src_row16 = (guint16 *) src_row; + + fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.channels * 2, SEEK_SET); + nread = fread(src_row, 2 * image_info.channels, image_info.image_width, infile); + + if (image_info.channels > 1) + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + int xoff = ((int) (x / v->zoom)) * image_info.channels; + + row[3*x+0] = (unsigned char) (src_row16[xoff + 0] / 256); + row[3*x+1] = (unsigned char) (src_row16[xoff + 1] / 256); + row[3*x+2] = (unsigned char) (src_row16[xoff + 2] / 256); + } + } + else + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + row[x] = (unsigned char) (src_row16[(int) (x / v->zoom)] / 256); + } + } + } + else /* 16 bits/pixel with color management enabled, cms does 16->8 conversion */ + { + guint16 *src_row16 = (guint16 *) src_row; + guint16 *dst_row16 = (guint16 *) row; + + fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.channels * 2, SEEK_SET); + nread = fread(src_row, 2 * image_info.channels, image_info.image_width, infile); + + if (image_info.channels > 1) + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + int xoff = ((int) (x / v->zoom)) * image_info.channels; + + dst_row16[3*x+0] = src_row16[xoff + 0]; + dst_row16[3*x+1] = src_row16[xoff + 1]; + dst_row16[3*x+2] = src_row16[xoff + 2]; + } + } + else + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + dst_row16[x] = src_row16[(int) (x / v->zoom)]; + } + } + } + } + +#ifdef HAVE_LIBLCMS + if ((v->enable_color_management) && (v->cms_enable)) + { + cmsDoTransform(hTransform, row, cms_row, image_info.image_width * v->zoom); + } +#endif + gtk_preview_draw_row(GTK_PREVIEW(v->window), cms_row, 0, y, image_info.image_width * v->zoom); + } + + gtk_preview_put(GTK_PREVIEW(v->window), v->window->window, v->window->style->black_gc, 0, 0, 0, 0, + image_info.image_width * v->zoom, image_info.image_height * v->zoom); + + size = (float) image_info.image_width * image_info.image_height * image_info.channels; + if (image_info.depth == 16) + { + size *= 2.0; + } + + if (image_info.reduce_to_lineart) + { + size /= 8.0; + } + + size_unit = "B"; + + if (size >= 1024 * 1024) + { + size /= (1024.0 * 1024.0); + size_unit = "MB"; + } + else if (size >= 1024) + { + size /= 1024.0; + size_unit = "KB"; + } + + if (image_info.reduce_to_lineart) + { + snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, 1, image_info.channels, + image_info.resolution_x, image_info.resolution_y, size, size_unit); + } + else + { + snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels, + image_info.resolution_x, image_info.resolution_y, size, size_unit); + } + gtk_label_set(GTK_LABEL(v->image_info_label), buf); + + width = image_info.image_width * v->zoom + 26; + height = image_info.image_height * v->zoom + 136; + + if (width > gdk_screen_width()) + { + width = gdk_screen_width(); + } + + if (height > gdk_screen_height()) + { + height = gdk_screen_height(); + } + +#ifdef HAVE_GTK2 + if (GTK_WIDGET_REALIZED(v->top)) + { + gtk_window_resize(GTK_WINDOW(v->top), width, height); + } + else +#endif + { + gtk_window_set_default_size(GTK_WINDOW(v->top), width, height); + } + + free(row); + free(src_row); + fclose(infile); + +#ifdef HAVE_LIBLCMS + if ((v->enable_color_management) && (v->cms_enable)) + { + cmsDeleteTransform(hTransform); + } +#endif + + return 0; +} + +#if 0 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +static int xsane_viewer_read_image(Viewer *v) +{ + unsigned char *row, *src_row; + int x, y; + int last_y; + int nread; + int pos0; + FILE *infile; + Image_info image_info; + char buf[TEXTBUFSIZE]; + float size; + char *size_unit; + int width, height; + + infile = fopen(v->filename, "rb"); + if (!infile) + { + DBG(DBG_error, "could not load file %s\n", v->filename); + return -1; + } + + xsane_read_pnm_header(infile, &image_info); + + pos0 = ftell(infile); + + if (!image_info.channels) /* == 0 (grayscale) ? */ + { + image_info.channels = 1; /* we have one color component */ + } + + DBG(DBG_info, "reading image %s with geometry: %d x %d x %d, %d channels\n", v->filename, + image_info.image_width, image_info.image_height, image_info.depth, image_info.channels); + /* open infile */ + + if (v->window) /* we already have an existing viewer preview window? */ + { + gtk_widget_destroy(v->window); + } + + /* the preview area */ + if (image_info.channels == 3) /* RGB */ + { + v->window = gtk_preview_new(GTK_PREVIEW_COLOR); + } + else /* grayscale */ + { + v->window = gtk_preview_new(GTK_PREVIEW_GRAYSCALE); + } + + gtk_preview_size(GTK_PREVIEW(v->window), image_info.image_width * v->zoom, image_info.image_height * v->zoom); + gtk_container_add(GTK_CONTAINER(v->viewport), v->window); + gtk_widget_show(v->window); + + + + /* get memory for one row of the image */ + src_row = malloc(image_info.image_width * image_info.channels * image_info.depth / 8); + row = malloc(((int) image_info.image_width * v->zoom) * image_info.channels); + + if (!row || !src_row) + { + if (src_row) + { + free(src_row); + } + + if (row) + { + free(row); + } + + fclose(infile); + DBG(DBG_error, "could not allocate memory\n"); + return -1; + } + + + last_y = -99999; + + /* read the image from file */ + for (y = 0; y < (int) (image_info.image_height * v->zoom); y++) + { + if ((int) (last_y / v->zoom) != (int) (y / v->zoom)) + { + last_y = y; + + if (image_info.depth == 8) /* 8 bits/pixel */ + { + fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.channels, SEEK_SET); + nread = fread(src_row, image_info.channels, image_info.image_width, infile); + + if (image_info.channels > 1) + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + int xoff = ((int) (x / v->zoom)) * image_info.channels; + + row[3*x+0] = src_row[xoff + 0]; + row[3*x+1] = src_row[xoff + 1]; + row[3*x+2] = src_row[xoff + 2]; + } + } + else + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + row[x] = src_row[((int) (x / v->zoom))]; + } + } + } + else /* 16 bits/pixel => reduce to 8 bits/pixel */ + { + guint16 *src_row16 = (guint16 *) src_row; + + fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.channels * 2, SEEK_SET); + nread = fread(src_row, 2 * image_info.channels, image_info.image_width, infile); + + if (image_info.channels > 1) + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + int xoff = ((int) (x / v->zoom)) * image_info.channels; + + row[3*x+0] = (unsigned char) (src_row16[xoff + 0] / 256); + row[3*x+1] = (unsigned char) (src_row16[xoff + 1] / 256); + row[3*x+2] = (unsigned char) (src_row16[xoff + 2] / 256); + } + } + else + { + for (x=0; x < (int) (image_info.image_width * v->zoom); x++) + { + row[x] = (unsigned char) (src_row16[(int) (x / v->zoom)] / 256); + } + } + } + } + + gtk_preview_draw_row(GTK_PREVIEW(v->window), row, 0, y, image_info.image_width * v->zoom); + } + + gtk_preview_put(GTK_PREVIEW(v->window), v->window->window, v->window->style->black_gc, 0, 0, 0, 0, + image_info.image_width * v->zoom, image_info.image_height * v->zoom); + + size = (float) image_info.image_width * image_info.image_height * image_info.channels; + if (image_info.depth == 16) + { + size *= 2.0; + } + + if (image_info.reduce_to_lineart) + { + size /= 8.0; + } + + size_unit = "B"; + + if (size >= 1024 * 1024) + { + size /= (1024.0 * 1024.0); + size_unit = "MB"; + } + else if (size >= 1024) + { + size /= 1024.0; + size_unit = "KB"; + } + + if (image_info.reduce_to_lineart) + { + snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, 1, image_info.channels, + image_info.resolution_x, image_info.resolution_y, size, size_unit); + } + else + { + snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, image_info.depth, image_info.channels, + image_info.resolution_x, image_info.resolution_y, size, size_unit); + } + gtk_label_set(GTK_LABEL(v->image_info_label), buf); + + width = image_info.image_width * v->zoom + 26; + height = image_info.image_height * v->zoom + 136; + + if (width > gdk_screen_width()) + { + width = gdk_screen_width(); + } + + if (height > gdk_screen_height()) + { + height = gdk_screen_height(); + } + +#ifdef HAVE_GTK2 + if (GTK_WIDGET_REALIZED(v->top)) + { + gtk_window_resize(GTK_WINDOW(v->top), width, height); + } + else +#endif + { + gtk_window_set_default_size(GTK_WINDOW(v->top), width, height); + } + + free(row); + free(src_row); + fclose(infile); + + return 0; +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_reduction_to_lineart, + char *output_filename, viewer_modification allow_modification, int image_saved) +{ + char buf[TEXTBUFSIZE]; + Viewer *v; + GtkWidget *vbox, *hbox; + GtkWidget *menubar, *menubar_item; + GtkWidget *scrolled_window; + GtkWidget *zoom_option_menu, *zoom_menu, *zoom_menu_item; + int i, selection; + + DBG(DBG_proc, "viewer_new(%s)\n", filename); + + /* create viewer structure v */ + v = malloc(sizeof(*v)); + if (!v) + { + DBG(DBG_error, "could not allocate memory\n"); + return 0; + } + memset(v, 0, sizeof(*v)); v->filename = strdup(filename); v->undo_filename = NULL; @@ -1897,6 +2817,17 @@ Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_red v->keep_viewer_pnm_format = FALSE; v->allow_modification = allow_modification; v->next_viewer = xsane.viewer_list; +#ifdef HAVE_LIBLCMS + v->enable_color_management = FALSE; + v->cms_enable = TRUE; + v->cms_function = XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE; + v->cms_intent = INTENT_PERCEPTUAL; + v->cms_proofing = 0; /* display */ + v->cms_proofing_intent = INTENT_ABSOLUTE_COLORIMETRIC; + v->cms_gamut_check = 0; + v->cms_gamut_alarm_color = 3; /* red */ + cmsSetAlarmCodes(255, 0, 0); +#endif if (selection_filetype) { v->selection_filetype = strdup(selection_filetype); @@ -1933,6 +2864,8 @@ Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_red snprintf(buf, sizeof(buf), "%s %s", WINDOW_VIEWER, xsane.device_text); } + xsane_viewer_read_image_header(v); // xxx oli + v->top = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(v->top), buf); xsane_set_window_icon(v->top, 0); @@ -1983,6 +2916,17 @@ Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_red gtk_widget_show(menubar_item); v->geometry_menu = menubar_item; +#ifdef HAVE_LIBLCMS + /* "Color management" submenu: */ + menubar_item = gtk_menu_item_new_with_label(MENU_COLOR_MANAGEMENT); + gtk_container_add(GTK_CONTAINER(menubar), menubar_item); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_viewer_color_management_build_menu(v)); +/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_F, 0, GTK_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); */ + gtk_widget_show(menubar_item); + v->color_management_menu = menubar_item; + gtk_widget_set_sensitive(GTK_WIDGET(v->color_management_menu), v->enable_color_management); +#endif + gtk_widget_show(menubar); diff --git a/src/xsane-viewer.h b/src/xsane-viewer.h index 373fd31..b729151 100644 --- a/src/xsane-viewer.h +++ b/src/xsane-viewer.h @@ -3,7 +3,7 @@ xsane-viewer.h Oliver Rauch - Copyright (C) 2001-2005 Oliver Rauch + Copyright (C) 2001-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -47,6 +47,8 @@ typedef struct Viewer char *undo_filename; char *selection_filetype; + int cms_function; + int allow_reduction_to_lineart; int keep_viewer_pnm_format; float zoom; @@ -57,6 +59,15 @@ typedef struct Viewer int despeckle_radius; float blur_radius; + int enable_color_management; + int cms_enable; + int cms_bpc; + int cms_proofing; + int cms_intent; + int cms_proofing_intent; + int cms_gamut_check; + int cms_gamut_alarm_color; + int bind_scale; double x_scale_factor; double y_scale_factor; @@ -73,6 +84,7 @@ typedef struct Viewer GtkWidget *edit_menu; GtkWidget *filters_menu; GtkWidget *geometry_menu; + GtkWidget *color_management_menu; GtkWidget *viewport; GtkWidget *window; @@ -94,6 +106,11 @@ typedef struct Viewer GtkWidget *despeckle; GtkWidget *blur; + GtkWidget *cms_proofing_widget[3]; + GtkWidget *cms_intent_widget[4]; + GtkWidget *cms_proofing_intent_widget[2]; + GtkWidget *cms_gamut_alarm_color_widget[6]; + GtkWidget *image_info_label; GtkProgressBar *progress_bar; diff --git a/src/xsane.c b/src/xsane.c index 9254ea7..38ee7d1 100644 --- a/src/xsane.c +++ b/src/xsane.c @@ -3,7 +3,7 @@ xsane.c Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -56,6 +56,7 @@ struct option long_options[] = {"version", no_argument, 0, 'v'}, {"license", no_argument, 0, 'l'}, {"device-settings", required_argument, 0, 'd'}, + {"xsane-rc", required_argument, 0, 'r'}, {"save", no_argument, 0, 's'}, {"viewer", no_argument, 0, 'V'}, {"copy", no_argument, 0, 'c'}, @@ -752,7 +753,7 @@ static void xsane_resolution_list_callback(GtkWidget *widget, gpointer data) static int xsane_resolution_widget_new(GtkWidget *parent, int well_known_option, double *resolution, const char *image_xpm[], const gchar *desc, const gchar *widget_name) { - GtkObject *resolution_widget; + GtkWidget *resolution_widget; const SANE_Option_Descriptor *opt; DBG(DBG_proc, "xsane_resolution_widget_new\n"); @@ -1153,6 +1154,14 @@ static void xsane_scanmode_menu_callback(GtkWidget *widget, gpointer data) } } +/* ----------------------------------------------------------------------------------------------------------------- */ + +static void xsane_cms_function_menu_callback(GtkWidget *widget, gpointer data) +{ + preferences.cms_function = (int) data; + DBG(DBG_proc, "xsane_cms_function_menu_callback(%d)\n", preferences.cms_function); +} + /* ---------------------------------------------------------------------------------------------------------------------- */ static void xsane_adf_pages_max_callback(GtkWidget *widget, gpointer data) @@ -1444,6 +1453,31 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ gtk_widget_show(xsane_spinbutton); } +#ifdef HAVE_LIBLCMS + if ((xsane.enable_color_management) && + ( (xsane.xsane_mode == XSANE_VIEWER) || + (xsane.xsane_mode == XSANE_SAVE) || + (xsane.xsane_mode == XSANE_EMAIL) || + (xsane.xsane_mode == XSANE_MULTIPAGE) + ) + ) + { + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 1); + gtk_widget_show(hbox); + + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) cms_xpm); + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gdk_drawable_unref(pixmap); + gtk_widget_show(pixmapwidget); + + xsane.cms_function_option_menu = xsane_back_gtk_cms_function_menu_new(preferences.cms_function, (GtkSignalFunc) xsane_cms_function_menu_callback); + gtk_box_pack_end(GTK_BOX(hbox), xsane.cms_function_option_menu, FALSE, FALSE, 2); + gtk_widget_show(xsane.cms_function_option_menu); + } +#endif /* input selection */ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); @@ -1526,7 +1560,8 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ } - if (xsane.param.depth != 1) /* show medium selection of not lineart mode */ + /* show medium selection when not lineart mode and no color management */ + if ((xsane.param.depth != 1) && (!xsane.enable_color_management)) { /* medium selection */ hbox = gtk_hbox_new(FALSE, 2); @@ -1658,33 +1693,31 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ } #endif - /* test if scanner gamma table is selected */ + /* test if scanner gamma table is selected */ - xsane.scanner_gamma_gray = FALSE; - if (xsane.well_known.gamma_vector >0) - { - const SANE_Option_Descriptor *opt; - - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector); - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - xsane.scanner_gamma_gray = TRUE; - } - } - - xsane.scanner_gamma_color = FALSE; - if (xsane.well_known.gamma_vector_r >0) - { - const SANE_Option_Descriptor *opt; + xsane.scanner_gamma_gray = FALSE; + if (xsane.well_known.gamma_vector >0) + { + const SANE_Option_Descriptor *opt; - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r); - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - xsane.scanner_gamma_color = TRUE; - } - } + opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector); + if (SANE_OPTION_IS_ACTIVE(opt->cap)) + { + xsane.scanner_gamma_gray = TRUE; + } + } + xsane.scanner_gamma_color = FALSE; + if (xsane.well_known.gamma_vector_r >0) + { + const SANE_Option_Descriptor *opt; + opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r); + if (SANE_OPTION_IS_ACTIVE(opt->cap)) + { + xsane.scanner_gamma_color = TRUE; + } + } /* XSane Frame Enhancement */ @@ -1717,7 +1750,41 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane.slider_gray.active = XSANE_SLIDER_ACTIVE; /* mark slider active */ - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + + if (xsane.enable_color_management) /* do not show gamma widgets when color management is active */ + { + xsane.gamma = 1.0; + xsane.gamma_red = 1.0; + xsane.gamma_green = 1.0; + xsane.gamma_blue = 1.0; + xsane.brightness = 0.0; + xsane.brightness_red = 0.0; + xsane.brightness_green = 0.0; + xsane.brightness_blue = 0.0; + xsane.contrast = 0.0; + xsane.contrast_red = 0.0; + xsane.contrast_green = 0.0; + xsane.contrast_blue = 0.0; + xsane.threshold = 50.0; + + xsane.slider_gray.value[2] = 100.0; + xsane.slider_gray.value[1] = 50.0; + xsane.slider_gray.value[0] = 0.0; + xsane.slider_red.value[2] = 100.0; + xsane.slider_red.value[1] = 50.0; + xsane.slider_red.value[0] = 0.0; + xsane.slider_green.value[2] = 100.0; + xsane.slider_green.value[1] = 50.0; + xsane.slider_green.value[0] = 0.0; + xsane.slider_blue.value[2] = 100.0; + xsane.slider_blue.value[1] = 50.0; + xsane.slider_blue.value[0] = 0.0; + + return(xsane_hbox); + } + + + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) { xsane_separator_new(xsane_vbox_xsane_modus, 2); } @@ -1725,7 +1792,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_xpm, DESC_GAMMA, XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 2, &xsane.gamma, &xsane.gamma_widget, 0, xsane_gamma_changed, TRUE); - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) { xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_red_xpm, DESC_GAMMA_R, XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 2, @@ -1743,7 +1810,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_xpm, DESC_BRIGHTNESS, xsane.brightness_min, xsane.brightness_max, 0.1, 1.0, 1, &xsane.brightness, &xsane.brightness_widget, 0, xsane_gamma_changed, TRUE); - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) { xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_red_xpm, DESC_BRIGHTNESS_R, xsane.brightness_min, xsane.brightness_max, 0.1, 1.0, 1, @@ -1761,7 +1828,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_xpm, DESC_CONTRAST, xsane.contrast_gray_min, xsane.contrast_max, 0.1, 1.0, 1, &xsane.contrast, &xsane.contrast_widget, 0, xsane_gamma_changed, TRUE); - if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) + if ( (xsane.xsane_channels > 1) && (!xsane.enhancement_rgb_default) ) { xsane_range_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_red_xpm, DESC_CONTRAST_R, xsane.contrast_min, xsane.contrast_max, 0.1, 1.0, 1, @@ -1782,7 +1849,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_enhancement, FALSE, FALSE, 0); gtk_widget_show(xsane_hbox_xsane_enhancement); - if (xsane.xsane_colors > 1) + if (xsane.xsane_channels > 1) { button = xsane_toggle_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, rgb_default_xpm, DESC_RGB_DEFAULT, &xsane.enhancement_rgb_default, xsane_enhancement_rgb_default_callback); @@ -1795,7 +1862,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, enhance_xpm, DESC_ENH_AUTO, xsane_auto_enhancement_callback, NULL); - gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_E, GDK_CONTROL_MASK, DEF_GTK_ACCEL_LOCKED); + gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_A, GDK_CONTROL_MASK, DEF_GTK_ACCEL_LOCKED); button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, default_enhancement_xpm, DESC_ENH_DEFAULT, xsane_enhancement_restore_default, NULL); @@ -1831,7 +1898,8 @@ void xsane_pref_save(void) DBG(DBG_proc, "xsane_pref_save\n"); /* first save xsane-specific preferences: */ - xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE); + xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, NULL, xsane.xsane_rc_set_filename, ".rc", XSANE_PATH_LOCAL_SANE); +// xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE); DBG(DBG_info2, "saving preferences to \"%s\"\n", filename); @@ -1862,7 +1930,8 @@ static int xsane_pref_restore(void) DBG(DBG_proc, "xsane_pref_restore\n"); - xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE); + xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, NULL, xsane.xsane_rc_set_filename, ".rc", XSANE_PATH_LOCAL_SANE); +// xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE); fd = open(filename, O_RDONLY); if (fd >= 0) @@ -1947,7 +2016,23 @@ static int xsane_pref_restore(void) if (!preferences.filename) { - preferences.filename = strdup(OUT_FILENAME); + char filename[PATH_MAX]; + char buf[PATH_MAX]; + + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, OUT_FILENAME); + preferences.filename = strdup(buf); + } + else if (getcwd(filename, sizeof(filename))) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", filename, SLASH, OUT_FILENAME); + preferences.filename = strdup(buf); + } + else + { + preferences.filename = strdup(""); + } } if (!preferences.filetype) @@ -1962,7 +2047,23 @@ static int xsane_pref_restore(void) if (!preferences.fax_project) { - preferences.fax_project = strdup(FAXPROJECT); + char filename[PATH_MAX]; + char buf[PATH_MAX]; + + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, FAXPROJECT); + preferences.fax_project = strdup(buf); + } + else if (getcwd(filename, sizeof(filename))) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", filename, SLASH, FAXPROJECT); + preferences.fax_project = strdup(buf); + } + else + { + preferences.fax_project = strdup(""); + } } if (!preferences.fax_command) @@ -2028,7 +2129,23 @@ static int xsane_pref_restore(void) if (!preferences.email_project) { - preferences.email_project = strdup(EMAILPROJECT); + char filename[PATH_MAX]; + char buf[PATH_MAX]; + + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, EMAILPROJECT); + preferences.email_project = strdup(buf); + } + else if (getcwd(filename, sizeof(filename))) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", filename, SLASH, EMAILPROJECT); + preferences.email_project = strdup(buf); + } + else + { + preferences.email_project = strdup(""); + } } if (!preferences.email_filetype) @@ -2039,7 +2156,23 @@ static int xsane_pref_restore(void) if (!preferences.multipage_project) { - preferences.multipage_project = strdup(MULTIPAGEPROJECT); + char filename[PATH_MAX]; + char buf[PATH_MAX]; + + if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, MULTIPAGEPROJECT); + preferences.multipage_project = strdup(buf); + } + else if (getcwd(filename, sizeof(filename))) + { + snprintf(buf, sizeof(buf)-2, "%s%c%s", filename, SLASH, MULTIPAGEPROJECT); + preferences.multipage_project = strdup(buf); + } + else + { + preferences.multipage_project = strdup(""); + } } if (!preferences.multipage_filetype) @@ -2076,7 +2209,7 @@ static int xsane_pref_restore(void) { if (getenv(STRINGIFY(ENVIRONMENT_BROWSER_NAME))) { - preferences.browser = getenv(STRINGIFY(ENVIRONMENT_BROWSER_NAME)); + preferences.browser = strdup(getenv(STRINGIFY(ENVIRONMENT_BROWSER_NAME))); } else { @@ -2870,6 +3003,55 @@ static void xsane_set_pref_unit_callback(GtkWidget *widget, gpointer data) xsane_pref_save(); } +/* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef HAVE_LIBLCMS +static void xsane_enable_color_management_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_enable_color_management_callback\n"); + + xsane.enable_color_management = (GTK_CHECK_MENU_ITEM(widget)->active); + + gtk_widget_set_sensitive(xsane.edit_medium_definition_widget, (xsane.enable_color_management) == 0); + + if (xsane.enable_color_management) + { + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.edit_medium_definition_widget), FALSE); + xsane.medium_calibration = FALSE; + } + + xsane.gamma = 1.0; + xsane.gamma_red = 1.0; + xsane.gamma_green = 1.0; + xsane.gamma_blue = 1.0; + xsane.brightness = 0.0; + xsane.brightness_red = 0.0; + xsane.brightness_green = 0.0; + xsane.brightness_blue = 0.0; + xsane.contrast = 0.0; + xsane.contrast_red = 0.0; + xsane.contrast_green = 0.0; + xsane.contrast_blue = 0.0; + xsane.threshold = 50.0; + + xsane.slider_gray.value[2] = 100.0; + xsane.slider_gray.value[1] = 50.0; + xsane.slider_gray.value[0] = 0.0; + xsane.slider_red.value[2] = 100.0; + xsane.slider_red.value[1] = 50.0; + xsane.slider_red.value[0] = 0.0; + xsane.slider_green.value[2] = 100.0; + xsane.slider_green.value[1] = 50.0; + xsane.slider_green.value[0] = 0.0; + xsane.slider_blue.value[2] = 100.0; + xsane.slider_blue.value[1] = 50.0; + xsane.slider_blue.value[0] = 0.0; + + xsane_update_sliders(); + xsane_update_gamma_curve(FALSE); + xsane_batch_scan_update_icon_list(); + xsane_refresh_dialog(); +} +#endif /* ---------------------------------------------------------------------------------------------------------------------- */ static void xsane_edit_medium_definition_callback(GtkWidget *widget, gpointer data) @@ -3087,7 +3269,7 @@ static void xsane_info_dialog(GtkWidget *widget, gpointer data) gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5); gtk_widget_show(table); - if ((xsane.xsane_colors > 1) && (xsane.scanner_gamma_color)) /* color gamma correction by scanner */ + if ((xsane.xsane_channels > 1) && (xsane.scanner_gamma_color)) /* color gamma correction by scanner */ { const SANE_Option_Descriptor *opt; @@ -3108,7 +3290,7 @@ static void xsane_info_dialog(GtkWidget *widget, gpointer data) snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log(opt->constraint.range->max+1.0) / log(2.0))); label = xsane_info_table_text_new(table, buf, 1, 2); } - else if ((!xsane.xsane_colors > 1) && (xsane.scanner_gamma_gray)) /* gray gamma correction by scanner */ + else if ((!xsane.xsane_channels > 1) && (xsane.scanner_gamma_gray)) /* gray gamma correction by scanner */ { const SANE_Option_Descriptor *opt; @@ -3996,7 +4178,7 @@ static GtkWidget *xsane_preferences_build_menu(void) gtk_widget_show(item); - +#if 0 /* change working directory */ item = gtk_menu_item_new_with_label(MENU_ITEM_CHANGE_WORKING_DIR); @@ -4010,6 +4192,18 @@ static GtkWidget *xsane_preferences_build_menu(void) item = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), item); gtk_widget_show(item); +#endif + +#ifdef HAVE_LIBLCMS + /* enable color management */ + + item = gtk_check_menu_item_new_with_label(MENU_ITEM_ENABLE_COLOR_MANAGEMENT); + g_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_enable_color_management_callback, NULL); + gtk_menu_append(GTK_MENU(menu), item); + gtk_widget_show(item); + xsane.enable_color_management_widget = item; +#endif + /* edit medium definitions */ @@ -4017,6 +4211,7 @@ static GtkWidget *xsane_preferences_build_menu(void) g_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_edit_medium_definition_callback, NULL); gtk_menu_append(GTK_MENU(menu), item); gtk_widget_show(item); + xsane.edit_medium_definition_widget = item; /* insert separator: */ @@ -4705,12 +4900,16 @@ static void xsane_device_dialog(void) GtkWidget *xsane_vbox_advanced; GdkColormap *colormap; SANE_Status status; + SANE_Handle sane_handle; DBG(DBG_proc, "xsane_device_dialog\n"); devname = xsane.devlist[xsane.selected_dev]->name; - status = sane_open(devname, (SANE_Handle *) &xsane.dev); +/* status = sane_open(devname, (SANE_Handle *) &xsane.dev); // old version */ + status = sane_open(devname, &sane_handle); + xsane.dev = sane_handle; + if (status != SANE_STATUS_GOOD) { snprintf(buf, sizeof(buf), "%s `%s':\n %s.", ERR_DEVICE_OPEN_FAILED, devname, XSANE_STRSTATUS(status)); @@ -4802,7 +5001,6 @@ static void xsane_device_dialog(void) xsane.device_text = strdup(devicetext); - /* if no preferences filename is given on commandline create one from devicenaname */ if (!xsane.device_set_filename) @@ -5383,27 +5581,27 @@ static void xsane_choose_device(void) gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); gtk_widget_show(hbox); - /* The OK button */ + /* The Cancel button */ #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_OK); + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); #else - button = gtk_button_new_with_label(BUTTON_OK); + button = gtk_button_new_with_label(BUTTON_CANCEL); #endif - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_choose_dialog_ok_callback, NULL); + gtk_widget_add_accelerator(button, "clicked", device_selection_accelerator_group, GDK_Escape, 0, DEF_GTK_ACCEL_LOCKED); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_exit, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_grab_default(button); gtk_widget_show(button); - /* The Cancel button */ + /* The OK button */ #ifdef HAVE_GTK2 - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + button = gtk_button_new_from_stock(GTK_STOCK_OK); #else - button = gtk_button_new_with_label(BUTTON_CANCEL); + button = gtk_button_new_with_label(BUTTON_OK); #endif - gtk_widget_add_accelerator(button, "clicked", device_selection_accelerator_group, GDK_Escape, 0, DEF_GTK_ACCEL_LOCKED); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_exit, NULL); + GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_choose_dialog_ok_callback, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_grab_default(button); gtk_widget_show(button); gtk_widget_show(xsane.choose_device_dialog); @@ -5478,7 +5676,7 @@ static int xsane_init(int argc, char **argv) { int ch; - while((ch = getopt_long(argc, argv, "cd:efghlmnpsvFN:RV", long_options, 0)) != EOF) + while((ch = getopt_long(argc, argv, "cd:efghlmnpr:svFN:RV", long_options, 0)) != EOF) { switch(ch) { @@ -5497,7 +5695,9 @@ static int xsane_init(int argc, char **argv) g_print(" %s %s\n", TEXT_EMAIL_ADR, XSANE_EMAIL_ADR); g_print(" %s %s\n", TEXT_PACKAGE, XSANE_PACKAGE_VERSION); g_print(" %s%d.%d.%d\n", TEXT_GTK_VERSION, GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); - +#ifdef HAVE_LIBLCMS + g_print(" %s\n", TEXT_WITH_CMS_FUNCTION); +#endif #ifdef HAVE_ANY_GIMP g_print(" %s, %s%s\n", TEXT_WITH_GIMP_SUPPORT, TEXT_GIMP_VERSION, GIMP_VERSION); #else @@ -5553,6 +5753,10 @@ static int xsane_init(int argc, char **argv) xsane.device_set_filename = strdup(optarg); break; + case 'r': /* --xsane-rc */ + xsane.xsane_rc_set_filename = strdup(optarg); + break; + case 'V': /* --viewer, default */ xsane.xsane_mode = XSANE_VIEWER; break; @@ -5606,6 +5810,14 @@ static int xsane_init(int argc, char **argv) } } + /* if no xsane_rc filename is given on commandline then use "xsane.rc" */ + + if (!xsane.xsane_rc_set_filename) + { + xsane.xsane_rc_set_filename = strdup("xsane"); /* ".rc" is appended later */ + } + + if (xsane_pref_restore()) /* restore preferences, returns TRUE if license is not accpted yet */ { if (xsane_display_eula(1)) /* show license and ask for accept/not accept */ @@ -5649,6 +5861,9 @@ static int xsane_init(int argc, char **argv) device_scanning_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(device_scanning_dialog), GTK_WIN_POS_CENTER); gtk_window_set_resizable(GTK_WINDOW(device_scanning_dialog), FALSE); +/* + gtk_window_set_deletable(GTK_WINDOW(device_scanning_dialog), FALSE); +*/ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, XSANE_VERSION); gtk_window_set_title(GTK_WINDOW(device_scanning_dialog), buf); g_signal_connect(GTK_OBJECT(device_scanning_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_quit), NULL); @@ -5914,11 +6129,13 @@ int main(int argc, char **argv) xsane.histogram_int = 1; xsane.histogram_log = 1; - xsane.xsane_colors = -1; /* unused value to make sure that change of this vlaue is detected */ + xsane.xsane_channels = -1; /* unused value to make sure that change of this vlaue is detected */ xsane.scanner_gamma_color = FALSE; xsane.scanner_gamma_gray = FALSE; xsane.enhancement_rgb_default = TRUE; + xsane.enable_color_management = FALSE; + xsane.adf_page_counter = 0; xsane.print_filenames = FALSE; xsane.force_filename = FALSE; diff --git a/src/xsane.h b/src/xsane.h index 154bb52..4e4ddd8 100644 --- a/src/xsane.h +++ b/src/xsane.h @@ -3,7 +3,7 @@ xsane.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify @@ -69,6 +69,12 @@ #include #include +#ifdef HAVE_LIBLCMS +# include "lcms.h" +#else +# define cmsHTRANSFORM void * +#endif + /* ---------------------------------------------------------------------------------------------------------------------- */ #if 0 @@ -85,10 +91,10 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ -#define XSANE_VERSION "0.991" +#define XSANE_VERSION "0.993" #define XSANE_AUTHOR "Oliver Rauch" #define XSANE_COPYRIGHT "Oliver Rauch" -#define XSANE_DATE "1998-2006" +#define XSANE_DATE "1998-2007" #define XSANE_EMAIL_ADR "Oliver.Rauch@xsane.org" #define XSANE_HOMEPAGE "http://www.xsane.org" #define XSANE_COPYRIGHT_TXT XSANE_DATE " " XSANE_COPYRIGHT @@ -381,7 +387,7 @@ typedef struct Image_info int image_height; int depth; - int colors; + int channels; double resolution_x; double resolution_y; @@ -404,6 +410,13 @@ typedef struct Image_info double threshold; int reduce_to_lineart; + + int enable_color_management; + int cms_function; + int cms_intent; + int cms_bpc; + + char icm_profile[PATH_MAX]; } Image_info; @@ -469,7 +482,14 @@ enum EMAIL_AUTH_ASMTP_LOGIN, EMAIL_AUTH_ASMTP_CRAM_MD5 }; - + +enum +{ + XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE = 0, + XSANE_CMS_FUNCTION_CONVERT_TO_SRGB, + XSANE_CMS_FUNCTION_CONVERT_TO_WORKING_CS +}; + /* ---------------------------------------------------------------------------------------------------------------------- */ extern void xsane_pref_save(void); @@ -617,6 +637,7 @@ typedef struct Xsane char *backend; char *backend_translation; char *device_set_filename; + char *xsane_rc_set_filename; char *output_filename; char *dummy_filename; @@ -739,6 +760,9 @@ typedef struct Xsane GtkWidget *filename_entry; GtkWidget *filetype_option_menu; + /* for all modes */ + GtkWidget *cms_function_option_menu; + /* saving and transformation values: */ FILE *out; int xsane_mode; @@ -816,22 +840,24 @@ typedef struct Xsane GtkWidget *show_standard_options_widget; GtkWidget *show_advanced_options_widget; GtkWidget *show_resolution_list_widget; - GtkObject *zoom_widget; - GtkObject *gamma_widget; - GtkObject *gamma_red_widget; - GtkObject *gamma_green_widget; - GtkObject *gamma_blue_widget; - GtkObject *brightness_widget; - GtkObject *brightness_red_widget; - GtkObject *brightness_green_widget; - GtkObject *brightness_blue_widget; - GtkObject *contrast_widget; - GtkObject *contrast_red_widget; - GtkObject *contrast_green_widget; - GtkObject *contrast_blue_widget; - GtkObject *threshold_widget; - - SANE_Int xsane_colors; + GtkWidget *enable_color_management_widget; + GtkWidget *edit_medium_definition_widget; + GtkWidget *zoom_widget; + GtkWidget *gamma_widget; + GtkWidget *gamma_red_widget; + GtkWidget *gamma_green_widget; + GtkWidget *gamma_blue_widget; + GtkWidget *brightness_widget; + GtkWidget *brightness_red_widget; + GtkWidget *brightness_green_widget; + GtkWidget *brightness_blue_widget; + GtkWidget *contrast_widget; + GtkWidget *contrast_red_widget; + GtkWidget *contrast_green_widget; + GtkWidget *contrast_blue_widget; + GtkWidget *threshold_widget; + + SANE_Int xsane_channels; SANE_Bool scanner_gamma_color; SANE_Bool scanner_gamma_gray; @@ -945,10 +971,17 @@ typedef struct Xsane int enhancement_rgb_default; int negative; int show_preview; + + int enable_color_management; + char *scanner_active_icm_profile; + char *scanner_default_color_icm_profile; + char *scanner_default_gray_icm_profile; + int print_filenames; int force_filename; char *external_filename; + /* -------------------------------------------------- */ int ipc_pipefd[2]; /* for inter process communication error messages */ @@ -974,9 +1007,12 @@ typedef struct XsaneSetup GtkWidget *printer_gamma_red_entry; GtkWidget *printer_gamma_green_entry; GtkWidget *printer_gamma_blue_entry; + GtkWidget *printer_icm_profile_entry; + GtkWidget *printer_embed_csa_button; + GtkWidget *printer_embed_crd_button; GtkWidget *printer_width_entry; GtkWidget *printer_height_entry; - GtkWidget *printer_ps_flatdecoded_button; + GtkWidget *printer_ps_flatedecoded_button; GtkWidget *jpeg_image_quality_scale; GtkWidget *png_image_compression_scale; @@ -985,8 +1021,8 @@ typedef struct XsaneSetup GtkWidget *overwrite_warning_button; GtkWidget *increase_filename_counter_button; GtkWidget *skip_existing_numbers_button; - GtkWidget *save_ps_flatdecoded_button; - GtkWidget *save_pdf_flatdecoded_button; + GtkWidget *save_ps_flatedecoded_button; + GtkWidget *save_pdf_flatedecoded_button; GtkWidget *save_pnm16_as_ascii_button; GtkWidget *reduce_16bit_to_8bit_button; @@ -1020,7 +1056,7 @@ typedef struct XsaneSetup GtkWidget *fax_leftoffset_entry; GtkWidget *fax_bottomoffset_entry; GtkWidget *fax_height_entry; - GtkWidget *fax_ps_flatdecoded_button; + GtkWidget *fax_ps_flatedecoded_button; GtkWidget *tmp_path_entry; @@ -1041,6 +1077,15 @@ typedef struct XsaneSetup GtkWidget *ocr_gui_outfd_option_entry; GtkWidget *ocr_progress_keyword_entry; + GtkWidget *cms_intent_option_menu; + GtkWidget *cms_bpc_button; + GtkWidget *embed_scanner_icm_profile_for_gimp_button; + GtkWidget *scanner_default_color_icm_profile_entry; + GtkWidget *scanner_default_gray_icm_profile_entry; + GtkWidget *display_icm_profile_entry; + GtkWidget *custom_proofing_icm_profile_entry; + GtkWidget *working_color_space_icm_profile_entry; + int filename_counter_len; int tiff_compression16_nr; diff --git a/src/xsaneopts.h b/src/xsaneopts.h index 8dbd655..5e03f54 100644 --- a/src/xsaneopts.h +++ b/src/xsaneopts.h @@ -3,7 +3,7 @@ xsaneopts.h Oliver Rauch - Copyright (C) 1998-2005 Oliver Rauch + Copyright (C) 1998-2007 Oliver Rauch This file is part of the XSANE package. This program is free software; you can redistribute it and/or modify diff --git a/xsane.ACCELKEYS b/xsane.ACCELKEYS index 9a1706d..ee07415 100644 --- a/xsane.ACCELKEYS +++ b/xsane.ACCELKEYS @@ -12,6 +12,9 @@ H Menu Help Ctl S Scanmode Ctl C Copymode Ctl F Faxmode +Ctl V Viewermode +Ctl M Multipagemode +Ctl E Emailmode Ctl ENTER Start Scan ESC Cancel Scan @@ -25,24 +28,24 @@ Ctl P Save Device Settings (Put) Ctl G Load Device Settings (Get) Ctl D Change Directory -Ctl 1 Show Tooltips -Ctl 2 Show preview -Ctl 3 Show Histogram +Ctl 1 Show preview +Ctl 2 Show Histogram Ctl 3 (Show Gamma Dialog) -Ctl 4 Show Standard Options -Ctl 5 Show Advanced Options +Ctl 4 Show Batch Scan Window +Ctl 5 Show Standard Options +Ctl 6 Show Advanced Options Ctl B Browse Filename Shift Fi Printer selection in copy mode -Shift B Bind RGB -Shift N negative -Shift E AutoEnhance -Shift D Default -Shift R Restore Settings -Shift M Memory (store) settings -Shift S Setup +Ctl B Bind RGB +Ctl N negative +Ctl A AutoEnhance +Ctl 0 (zero) Default +Ctl R Restore Settings +Ctl + Memory (store) settings +Alt S Setup Alt P Start Preview Scan Alt ESC Cancel Preview Scan diff --git a/xsane.BACKENDS b/xsane.BACKENDS deleted file mode 100644 index 09be014..0000000 --- a/xsane.BACKENDS +++ /dev/null @@ -1,42 +0,0 @@ -The following backends are known to work with xsane - -backend version reported xsane-version remark -========================================================================================= - sane-artec 0.5 0.46 - sane-avision 0.2 0.49 - sane-canon ? 0.47 - sane-coolscan 0.42 0.50, 0.61 - sane-dll ok ok - sane-epson sane-1.0.1, >=0.13 0.50 - sane-fujitsu ? ? - sane-hp 0.83 0.50 - sane-m3096g 1.3 (sane-1.0.3) 0.60 (all?) - sane-microtek ? ? - sane-microtek2 0.8, pre0.9.020100 0.50 and earlier - sane-mustek ? 0.48, 0.50 - sane-mustek_pp 0.6-alpha .. 0.9-devel 0.61 - sane-net ok ok - sane-plustek 0.37 0.62? - sane-pnm sane-1.0.1 0.52 and earlier - sane-sharp ? 0.47 - sane-snapscan 0.57+ some problems - sane-sp15c 1.3 (sane-1.0.3) 0.60 (all?) - sane-tamarack ? 0.40 - sane-umax 1.0-build-* all - sane-v4l2 ? 0.51 not in the sane package - - -unknown state: --------------- - sane-abaton - sane-agfafocus - sane-apple - sane-dc210 - sane-dc25 - sane-dmc - sane-pint - sane-qcam - sane-ricoh - sane-st400 - sane-s9036 - diff --git a/xsane.BUGS b/xsane.BUGS index c924ed0..bf1093a 100644 --- a/xsane.BUGS +++ b/xsane.BUGS @@ -7,13 +7,6 @@ ---------------------------------------------------------------------------------- -- xsane sometimes crashes at program startup with snapscan backend in panel_rebuild - while destroying the widgets - reason unknown, may be solved by test if widget exists - - (this bug report is very old, I don´t know if it is still valid) - ----------------------------------------------------------------------------------- - If you have one of the problem above or any other problem please contact me and tell me: - used xsane version - cpu diff --git a/xsane.CHANGES b/xsane.CHANGES index e93c4ec..840e0d7 100644 --- a/xsane.CHANGES +++ b/xsane.CHANGES @@ -2562,7 +2562,7 @@ xsane-0.94 -> 0.95: - before sending the mail pnm images are converted into png images - after sending the mail the png images are erased - mail project status is translated now - - BUFIX: end of email text is marked with 0 byte + - BUGFIX: end of email text is marked with 0 byte - added function xsane_viewer_set_sensitivity() - moved all gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE/FALSE); to it @@ -2869,3 +2869,82 @@ xsane-0.99 -> 0.991: (before the scanresolution was used to define the image output size) - the resolution is not changed any more when an other printer with a different printer resolution is selected + - replaced all char buf[255], char buf[256] etc by char buf[TEXTBUFSIZE] + +xsane-0.991 -> 0.992: +--------------------- + - there was still a bug concerning the gimp plugin + when xsane has been quit in copy mode and afterwards + started as gimp plugin then xsane used the printer paper + size in the preview window. This is solved now: + replaced preferences.xsane_mode by xsane.xsane_mode + in xsane_define_maximum_output_size() + + - xsane_save_scaled_image sometimes did not write the last line + and produced a tuncated image. this is corrected now + + - viewer: when saved image is cloned and the viewer of the cloned + image is closed then no dialog pops up any more + + - translations: U=updated, N=not updated, A=added/new + ca cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh zh_CN + A N N N N N N U N N N N N N N N N N N N N N A + 99299 99 99 96 95 99 95 99 99 96 96 96 99 98 99 76 92 99 96 96 992 + + - xsane-preview.c: preview_create_batch_icon(): + bugfix: files (in) are closed directly after use now, + bug report from Norman Hill - thanks + + - corrected order of filetypes in xsane_back_gtk_filetype_menu_set_history, now + the filetype are not mixed any more when the disk icon is pressed + + - replaced all "\n" by "\r\n" in email + + - corrected some signdness warnings in xsane-preview.c (buf) + + - fixed memory bug that caused crash when setup was closed (display_notebook): + added strdup to preferences.browser = strdup(getenv(STRINGIFY(ENVIRONMENT_BROWSER_NAME))); + + - added command line option --xsane-rc / -r to change give alternative filename for xsane.rc + + - added support for color management: + - added tab "color management" to setup/preferences + - preview can display ICC/ICM corrected images with 8bits/color and with 16bits/color input bit depth + - viewer can display ICC/ICM corrected images with 8bits/color and with 16bits/color input bit depth + - gamma correction and medium selection is disabled when color management is enabled + - added support for embedded ICC/ICM files for + - tiff + - jpeg + - png + - gimp plugin + + - replaced several GtkObject* by GtkWidget* to avoid type-punned-pointer warning + + - replaced several (void**) typecasts in xsane-rc-io.c to avoid type-punned-pointer warning + +xsane-0.992 -> 0.993: +--------------------- + + - removed proofing intent options saturation and perceptual, only relative and absolutle colorimetric are available now + + - added CMS transformation to saving routines: pnm(8bit), pnm(16bit ascii and binary), png, jpeg, tiff, gimp-plugin, ps, pdf + (missing routines: multipage) + + - added support for gtk_file_chooser_dialog + all filenames are handled as full paths (beginning with a slahs) now, + the "change working directory" option has been removed + + - made "CANCEL" and "OK" button positions the same as gimp uses it (CANCEL=left, OK=right) + + - added browse function for projects directories + + - removed bugs in mail mode: + write(fd, "\r\n\r\n", 2) -> write(fd, "\r\n\r\n", 4) + write(fd, "\r\n", 1) -> write(fd, "\r\n", 2) + + - added embedded ICC profiles for postscript (CSA+CRD) and pdf + + - added 12 bits/channel support for postscript + + - added flatedecode without Asci85 compression for PDF + diff --git a/xsane.TODO b/xsane.TODO index 8098275..f8913e7 100644 --- a/xsane.TODO +++ b/xsane.TODO @@ -12,6 +12,7 @@ Sign explaination: save-function: - list of last used filenames - enable filters in save mode? + - ps needs a boundingbox, not only a pageboundingbox multipage-project: - reduce to lineart @@ -25,6 +26,7 @@ Sign explaination: scan-routines: # allow additional image data after each row (is sane standard conform) + - make visible if the user did a final scan with the recent settings fax-function: @@ -49,10 +51,6 @@ Sign explaination: - correct gtk custom gamma functions and include it or better: write an own gamma curve widget - medium selection: - - medium definition in dependance of the scanner (?) - (I am not sure if this makes sense with color managemant) - medium definition: # make grayscale values do not influence color values @@ -73,7 +71,6 @@ Sign explaination: # test if image file is writable before scan is started + cleanup of configuration file handling (problem with old config files should already be solved) - + add color management - may be via xcmsdb or scarse (www.scarse.org) + add several defaults (fax=> mode=gray, ocr=> mode=gray, ...) + test memory after each call of malloc - partly done - average of a multiple scan of the same image ??? @@ -84,6 +81,7 @@ Sign explaination: ? project save/load with preview image, scanmode, .... ??? + include special functions for GNOME/KDE - drag and drop for preview or viewer image? - other drag and drop functions? diff --git a/xsane.spec b/xsane.spec index 506a206..31b9098 100644 --- a/xsane.spec +++ b/xsane.spec @@ -1,5 +1,5 @@ %define name xsane -%define version 0.991 +%define version 0.993 %define release 1 %define prefix /usr -- cgit v1.2.3