diff options
author | Mattia Rizzolo <mattia@mapreri.org> | 2014-10-03 14:05:18 +0000 |
---|---|---|
committer | Mattia Rizzolo <mattia@mapreri.org> | 2014-10-03 14:05:18 +0000 |
commit | 7fad909266d49203537a28e6acc5d96b14bf4e7f (patch) | |
tree | aa6e8fb2327f43f86562b3ccefda9f08fe767e4b | |
parent | 947f2ec5da522dbe5b474fc7031cd3f224bd7ead (diff) |
Imported Upstream version 0.99upstream/0.99
-rw-r--r-- | Makefile.in | 2 | ||||
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | doc/Makefile.in | 32 | ||||
-rw-r--r-- | doc/sane-xsane-advanced-doc.html | 17 | ||||
-rw-r--r-- | doc/sane-xsane-batch-scan-doc.html | 17 | ||||
-rw-r--r-- | doc/sane-xsane-color-correction-doc.html | 19 | ||||
-rw-r--r-- | doc/sane-xsane-copy-doc.html | 51 | ||||
-rw-r--r-- | doc/sane-xsane-doc.html | 52 | ||||
-rw-r--r-- | doc/sane-xsane-email-doc.html (renamed from doc/sane-xsane-mail-doc.html) | 84 | ||||
-rw-r--r-- | doc/sane-xsane-empty-doc.html | 11 | ||||
-rw-r--r-- | doc/sane-xsane-fax-doc.html | 70 | ||||
-rw-r--r-- | doc/sane-xsane-gimp-doc.html | 55 | ||||
-rw-r--r-- | doc/sane-xsane-guide-doc.html | 157 | ||||
-rw-r--r-- | doc/sane-xsane-histogram-doc.html | 11 | ||||
-rw-r--r-- | doc/sane-xsane-medium-definition-doc.html | 17 | ||||
-rw-r--r-- | doc/sane-xsane-multipage-doc.html | 190 | ||||
-rw-r--r-- | doc/sane-xsane-preview-doc.html | 17 | ||||
-rw-r--r-- | doc/sane-xsane-save-doc.html | 77 | ||||
-rw-r--r-- | doc/sane-xsane-scan-options-doc.html | 200 | ||||
-rw-r--r-- | doc/sane-xsane-setup-copy-doc.html | 31 | ||||
-rw-r--r-- | doc/sane-xsane-setup-display-doc.html | 29 | ||||
-rw-r--r-- | doc/sane-xsane-setup-email-doc.html (renamed from doc/sane-xsane-setup-mail-doc.html) | 72 | ||||
-rw-r--r-- | doc/sane-xsane-setup-enhancement-doc.html | 30 | ||||
-rw-r--r-- | doc/sane-xsane-setup-fax-doc.html | 31 | ||||
-rw-r--r-- | doc/sane-xsane-setup-filetype-doc.html (renamed from doc/sane-xsane-setup-image-doc.html) | 65 | ||||
-rw-r--r-- | doc/sane-xsane-setup-save-doc.html | 37 | ||||
-rw-r--r-- | doc/sane-xsane-standard-doc.html | 17 | ||||
-rw-r--r-- | doc/sane-xsane-viewer-doc.html | 63 | ||||
-rw-r--r-- | doc/xsane-adf-pages.jpg | bin | 0 -> 1146 bytes | |||
-rw-r--r-- | doc/xsane-color-correction.jpg | bin | 0 -> 50687 bytes | |||
-rw-r--r-- | doc/xsane-copy-number.jpg | bin | 0 -> 947 bytes | |||
-rw-r--r-- | doc/xsane-copy.jpg | bin | 31627 -> 32105 bytes | |||
-rw-r--r-- | doc/xsane-email-project.jpg | bin | 0 -> 32280 bytes | |||
-rw-r--r-- | doc/xsane-email.jpg | bin | 0 -> 29906 bytes | |||
-rw-r--r-- | doc/xsane-fax-project.jpg | bin | 21489 -> 23336 bytes | |||
-rw-r--r-- | doc/xsane-fax.jpg | bin | 27505 -> 28055 bytes | |||
-rw-r--r-- | doc/xsane-gimp.jpg | bin | 44794 -> 43028 bytes | |||
-rw-r--r-- | doc/xsane-guide-1-decoration.jpg | bin | 0 -> 3193 bytes | |||
-rw-r--r-- | doc/xsane-guide-10-scan.jpg | bin | 0 -> 6009 bytes | |||
-rw-r--r-- | doc/xsane-guide-2-menu.jpg | bin | 0 -> 2558 bytes | |||
-rw-r--r-- | doc/xsane-guide-3-options.jpg | bin | 0 -> 1392 bytes | |||
-rw-r--r-- | doc/xsane-guide-4.jpg | bin | 0 -> 2329 bytes | |||
-rw-r--r-- | doc/xsane-guide-4a-adf-pages.jpg | bin | 0 -> 1188 bytes | |||
-rw-r--r-- | doc/xsane-guide-4b-xsane-mode.jpg | bin | 0 -> 1491 bytes | |||
-rw-r--r-- | doc/xsane-guide-5-saving-options.jpg | bin | 0 -> 4334 bytes | |||
-rw-r--r-- | doc/xsane-guide-6-scan-options.jpg | bin | 0 -> 3085 bytes | |||
-rw-r--r-- | doc/xsane-guide-7-medium-selection.jpg | bin | 0 -> 2190 bytes | |||
-rw-r--r-- | doc/xsane-guide-8-resolution.jpg | bin | 0 -> 2292 bytes | |||
-rw-r--r-- | doc/xsane-guide-9-color-correction.jpg | bin | 0 -> 9367 bytes | |||
-rw-r--r-- | doc/xsane-mail-project.jpg | bin | 33308 -> 0 bytes | |||
-rw-r--r-- | doc/xsane-mail.jpg | bin | 29070 -> 0 bytes | |||
-rw-r--r-- | doc/xsane-multipage-project.jpg | bin | 0 -> 21451 bytes | |||
-rw-r--r-- | doc/xsane-multipage.jpg | bin | 0 -> 30051 bytes | |||
-rw-r--r-- | doc/xsane-save.jpg | bin | 49624 -> 33879 bytes | |||
-rw-r--r-- | doc/xsane-setup-copy.jpg | bin | 42914 -> 47557 bytes | |||
-rw-r--r-- | doc/xsane-setup-display.jpg | bin | 36119 -> 36430 bytes | |||
-rw-r--r-- | doc/xsane-setup-email.jpg | bin | 0 -> 34748 bytes | |||
-rw-r--r-- | doc/xsane-setup-enhancement.jpg | bin | 39750 -> 36740 bytes | |||
-rw-r--r-- | doc/xsane-setup-fax.jpg | bin | 36986 -> 40439 bytes | |||
-rw-r--r-- | doc/xsane-setup-filetype.jpg | bin | 0 -> 44064 bytes | |||
-rw-r--r-- | doc/xsane-setup-image.jpg | bin | 37103 -> 0 bytes | |||
-rw-r--r-- | doc/xsane-setup-mail.jpg | bin | 35723 -> 0 bytes | |||
-rw-r--r-- | doc/xsane-setup-ocr.jpg | bin | 28786 -> 28882 bytes | |||
-rw-r--r-- | doc/xsane-setup-save.jpg | bin | 34550 -> 34461 bytes | |||
-rw-r--r-- | doc/xsane-step.jpg | bin | 0 -> 1037 bytes | |||
-rw-r--r-- | doc/xsane-target.jpg | bin | 0 -> 685 bytes | |||
-rw-r--r-- | doc/xsane-viewer.jpg | bin | 29127 -> 33953 bytes | |||
-rw-r--r-- | include/config.h | 4 | ||||
-rw-r--r-- | intl/Makefile.in | 75 | ||||
-rw-r--r-- | intl/bindtextdom.o | bin | 19384 -> 0 bytes | |||
-rw-r--r-- | intl/dcgettext.o | bin | 33180 -> 0 bytes | |||
-rw-r--r-- | intl/dgettext.o | bin | 9852 -> 0 bytes | |||
-rw-r--r-- | intl/explodename.o | bin | 11500 -> 0 bytes | |||
-rw-r--r-- | intl/finddomain.o | bin | 27968 -> 0 bytes | |||
-rw-r--r-- | intl/gettext.o | bin | 11172 -> 0 bytes | |||
-rw-r--r-- | intl/intl-compat.o | bin | 10808 -> 0 bytes | |||
-rw-r--r-- | intl/l10nflist.o | bin | 14276 -> 0 bytes | |||
-rw-r--r-- | intl/libintl.a | bin | 200330 -> 0 bytes | |||
-rw-r--r-- | intl/loadmsgcat.o | bin | 28236 -> 0 bytes | |||
-rw-r--r-- | intl/localealias.o | bin | 21032 -> 0 bytes | |||
-rw-r--r-- | intl/po2tbl.sed | 60 | ||||
-rw-r--r-- | intl/po2tbl.sed.in | 102 | ||||
-rw-r--r-- | intl/textdomain.o | bin | 11772 -> 0 bytes | |||
-rw-r--r-- | intl/xopen-msg.sed | 104 | ||||
-rw-r--r-- | po/Makefile.in | 41 | ||||
-rw-r--r-- | po/cs.gmo | bin | 55323 -> 56989 bytes | |||
-rw-r--r-- | po/cs.po | 487 | ||||
-rw-r--r-- | po/da.gmo | bin | 53733 -> 55340 bytes | |||
-rw-r--r-- | po/da.po | 453 | ||||
-rw-r--r-- | po/de.gmo | bin | 54500 -> 56612 bytes | |||
-rw-r--r-- | po/de.po | 425 | ||||
-rw-r--r-- | po/es.gmo | bin | 57195 -> 49704 bytes | |||
-rw-r--r-- | po/es.po | 499 | ||||
-rw-r--r-- | po/fr.gmo | bin | 55910 -> 48987 bytes | |||
-rw-r--r-- | po/fr.po | 500 | ||||
-rw-r--r-- | po/hu.gmo | bin | 55149 -> 56759 bytes | |||
-rw-r--r-- | po/hu.po | 399 | ||||
-rw-r--r-- | po/it.gmo | bin | 57704 -> 50679 bytes | |||
-rw-r--r-- | po/it.po | 503 | ||||
-rw-r--r-- | po/ja.gmo | bin | 58883 -> 51593 bytes | |||
-rw-r--r-- | po/ja.po | 493 | ||||
-rw-r--r-- | po/nl.gmo | bin | 52503 -> 53588 bytes | |||
-rw-r--r-- | po/nl.po | 418 | ||||
-rw-r--r-- | po/pl.gmo | bin | 55663 -> 56700 bytes | |||
-rw-r--r-- | po/pl.po | 478 | ||||
-rw-r--r-- | po/pt.gmo | bin | 55042 -> 48268 bytes | |||
-rw-r--r-- | po/pt.po | 499 | ||||
-rw-r--r-- | po/pt_BR.gmo | bin | 55068 -> 48284 bytes | |||
-rw-r--r-- | po/pt_BR.po | 499 | ||||
-rw-r--r-- | po/ro.gmo | bin | 55956 -> 49186 bytes | |||
-rw-r--r-- | po/ro.po | 497 | ||||
-rw-r--r-- | po/ru.gmo | bin | 73933 -> 75865 bytes | |||
-rw-r--r-- | po/ru.po | 461 | ||||
-rw-r--r-- | po/sk.gmo | bin | 55840 -> 49080 bytes | |||
-rw-r--r-- | po/sk.po | 690 | ||||
-rw-r--r-- | po/sl.gmo | bin | 25452 -> 55736 bytes | |||
-rw-r--r-- | po/sl.po | 1490 | ||||
-rw-r--r-- | po/sr.gmo | bin | 38188 -> 35623 bytes | |||
-rw-r--r-- | po/sr.po | 481 | ||||
-rw-r--r-- | po/sv.gmo | bin | 50029 -> 44519 bytes | |||
-rw-r--r-- | po/sv.po | 486 | ||||
-rw-r--r-- | po/tr.gmo | bin | 54453 -> 55479 bytes | |||
-rw-r--r-- | po/tr.po | 454 | ||||
-rw-r--r-- | po/vi.gmo | bin | 57588 -> 50663 bytes | |||
-rw-r--r-- | po/vi.po | 516 | ||||
-rw-r--r-- | po/xsane.pot | 337 | ||||
-rw-r--r-- | po/zh.gmo | bin | 27344 -> 25207 bytes | |||
-rw-r--r-- | po/zh.po | 459 | ||||
-rw-r--r-- | src/.xsane-front-gtk.h.swp | bin | 16384 -> 0 bytes | |||
-rw-r--r-- | src/Makefile.in | 83 | ||||
-rw-r--r-- | src/Makefile.in.orig | 46 | ||||
-rw-r--r-- | src/xsane-back-gtk.c | 27 | ||||
-rw-r--r-- | src/xsane-batch-scan.c | 20 | ||||
-rw-r--r-- | src/xsane-batch-scan.h | 8 | ||||
-rw-r--r-- | src/xsane-device-preferences.c | 140 | ||||
-rw-r--r-- | src/xsane-email-project.c | 1912 | ||||
-rw-r--r-- | src/xsane-email-project.h | 61 | ||||
-rw-r--r-- | src/xsane-fax-project.c | 1312 | ||||
-rw-r--r-- | src/xsane-fax-project.h | 78 | ||||
-rw-r--r-- | src/xsane-front-gtk.c | 129 | ||||
-rw-r--r-- | src/xsane-front-gtk.h | 6 | ||||
-rw-r--r-- | src/xsane-gamma.c | 8 | ||||
-rw-r--r-- | src/xsane-icons.c | 140 | ||||
-rw-r--r-- | src/xsane-icons.h | 8 | ||||
-rw-r--r-- | src/xsane-multipage-project.c | 1087 | ||||
-rw-r--r-- | src/xsane-multipage-project.h | 58 | ||||
-rw-r--r-- | src/xsane-preferences.c | 172 | ||||
-rw-r--r-- | src/xsane-preferences.h | 35 | ||||
-rw-r--r-- | src/xsane-preview.c | 59 | ||||
-rw-r--r-- | src/xsane-save.c | 962 | ||||
-rw-r--r-- | src/xsane-save.c.orig | 5801 | ||||
-rw-r--r-- | src/xsane-save.h | 85 | ||||
-rw-r--r-- | src/xsane-scan.c | 200 | ||||
-rw-r--r-- | src/xsane-scan.h | 2 | ||||
-rw-r--r-- | src/xsane-setup.c | 502 | ||||
-rw-r--r-- | src/xsane-setup.h | 4 | ||||
-rw-r--r-- | src/xsane-text.h | 146 | ||||
-rw-r--r-- | src/xsane-viewer.c | 64 | ||||
-rw-r--r-- | src/xsane-viewer.h | 5 | ||||
-rw-r--r-- | src/xsane.c | 3882 | ||||
-rw-r--r-- | src/xsane.h | 238 | ||||
-rw-r--r-- | xsane.BUGS | 7 | ||||
-rw-r--r-- | xsane.CHANGES | 83 | ||||
-rw-r--r-- | xsane.NEWS | 9 | ||||
-rw-r--r-- | xsane.TODO | 34 | ||||
-rw-r--r-- | xsane.spec | 2 |
167 files changed, 21377 insertions, 9406 deletions
diff --git a/Makefile.in b/Makefile.in index defb684..93e26a6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -41,7 +41,7 @@ clean: clean-recursive rpm: all-recursive checkinstall -R --strip=no --pkgname=xsane --pkgversion=@VERSION@ \ - --pkgsource=http://www.xsane.org --pkgaltsource=ftp://ftp.mostang.com/sane/xsane \ + --pkgsource=http://www.xsane.org --pkgaltsource=ftp://ftp.sane-project.org/pub/sane/xsane/ \ --pkggroup=Applications/Graphics --spec=xsane.spec --pkglicense=GPL --pkgrelease=1 distclean: clean distclean-recursive @@ -1321,7 +1321,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # version code: V_MAJOR=0 -V_MINOR=98b +V_MINOR=99 PACKAGE=xsane diff --git a/configure.in b/configure.in index 786c8b4..7585bad 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_CONFIG_HEADER(include/config.h) # version code: V_MAJOR=0 -V_MINOR=98b +V_MINOR=99 PACKAGE=xsane diff --git a/doc/Makefile.in b/doc/Makefile.in index 6913cd2..59b022b 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -23,7 +23,7 @@ configdir = ${sysconfdir}/sane.d sanedatadir = ${datadir}/sane xsanedocdir = ${datadir}/sane/xsane/doc -MKDIR = $(top_srcdir)/mkinstalldirs +MKINSTALLDIRS = @MKINSTALLDIRS@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ @@ -49,38 +49,38 @@ all: $(MANPAGES) -e 's|@SBINDIR@|$(sbindir)|g' $^ >$@ install: $(MANPAGES) - $(MKDIR) $(mandir)/man1 + $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man1 @for page in $(SECT1); do \ - echo installing $${page} in $(mandir)/man1/$${page}...; \ - $(INSTALL_DATA) $${page} $(mandir)/man1/$${page} || exit 1; \ + echo installing $${page} in $(DESTDIR)$(mandir)/man1/$${page}...; \ + $(INSTALL_DATA) $${page} $(DESTDIR)$(mandir)/man1/$${page} || exit 1; \ done - $(MKDIR) $(datadir) + $(MKINSTALLDIRS) $(DESTDIR)$(datadir) - $(MKDIR) $(xsanedocdir) + $(MKINSTALLDIRS) $(DESTDIR)$(xsanedocdir) @for page in *.html; do\ - echo installing $${page} in $(xsanedocdir)/$${page}...; \ - $(INSTALL_DATA) $${page} $(xsanedocdir)/$${page} || exit 1; \ + echo installing $${page} in $(DESTDIR)$(xsanedocdir)/$${page}...; \ + $(INSTALL_DATA) $${page} $(DESTDIR)$(xsanedocdir)/$${page} || exit 1; \ done @for image in *.jpg; do\ - echo installing $${image} in $(xsanedocdir)/$${image}...; \ - $(INSTALL_DATA) $${image} $(xsanedocdir)/$${image} || exit 1; \ + echo installing $${image} in $(DESTDIR)$(xsanedocdir)/$${image}...; \ + $(INSTALL_DATA) $${image} $(DESTDIR)$(xsanedocdir)/$${image} || exit 1; \ done uninstall: @for page in $(SECT1); do \ - echo uninstalling $(mandir)/man1/$${page}...; \ - rm -f $(mandir)/man1/$${page} || exit 1; \ + echo uninstalling $(DESTDIR)$(mandir)/man1/$${page}...; \ + rm -f $(DESTDIR)$(mandir)/man1/$${page} || exit 1; \ done @for page in *.html; do\ - echo uninstalling $(xsanedocdir)/$${page}...; \ - rm -f $(xsanedocdir)/$${page} || exit 1; \ + echo uninstalling $(DESTDIR)$(xsanedocdir)/$${page}...; \ + rm -f $(DESTDIR)$(xsanedocdir)/$${page} || exit 1; \ done @for image in *.jpg; do\ - echo uninstalling $${image} in $(xsanedocdir)/$${image}...; \ - rm -f $(xsanedocdir)/$${image} || exit 1; \ + echo uninstalling $${image} in $(DESTDIR)$(xsanedocdir)/$${image}...; \ + rm -f $(DESTDIR)$(xsanedocdir)/$${image} || exit 1; \ done docs: ps html diff --git a/doc/sane-xsane-advanced-doc.html b/doc/sane-xsane-advanced-doc.html index abaa7e2..3d5d56e 100644 --- a/doc/sane-xsane-advanced-doc.html +++ b/doc/sane-xsane-advanced-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-batch-scan-doc.html b/doc/sane-xsane-batch-scan-doc.html index 3c671c5..eedd528 100644 --- a/doc/sane-xsane-batch-scan-doc.html +++ b/doc/sane-xsane-batch-scan-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-color-correction-doc.html b/doc/sane-xsane-color-correction-doc.html index 4f340f9..dca9144 100644 --- a/doc/sane-xsane-color-correction-doc.html +++ b/doc/sane-xsane-color-correction-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -121,7 +122,7 @@ <td VALIGN=TOP BGCOLOR="#FFFFFF"> <br> -<center><img SRC="xsane-save.jpg" alt="XSane-main-window"></center> +<center><img SRC="xsane-color-correction.jpg" alt="XSane-main-window"></center> <br> <br> <blockquote> diff --git a/doc/sane-xsane-copy-doc.html b/doc/sane-xsane-copy-doc.html index c2d97b6..97b98e9 100644 --- a/doc/sane-xsane-copy-doc.html +++ b/doc/sane-xsane-copy-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window in copy mode</font></h1> +<h1><font color="#009900">Copy mode</font></h1> </blockquote> </td> </tr> @@ -33,20 +33,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -129,37 +130,27 @@ In Copy mode, the scanned image is sent directly to the selected printer. <center><img SRC="xsane-copy.jpg" alt="XSane-main-window"></center> <br> <br> -<img SRC="xsane-colormode.jpg" alt="colormode"> - -<b>Scanmode:</b> -<blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. -</blockquote> - -<img SRC="xsane-scansource.jpg" alt="scansource"> +<img SRC="xsane-adf-pages.jpg" alt="adf-pages"> -<b>Scansource:</b> +<b>ADF-Pages:</b> <blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. +Select the number of pages that shall be scanned. +You can use this with an automatic document feeder (ADF) +or by changing the papers by hand while the scanhead moves back. </blockquote> -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> - - <img SRC="xsane-printer.jpg" alt="printer"> <b>Printer:</b> <blockquote> -Select the printer on which the scanned image shall be printed. In the box -with the number you can select the number of copies that shall be created. +Select the printer on which the scanned image shall be printed. +<p> +In the box next to the printer icon +<img SRC="xsane-copy-number.jpg" alt="copy-number"> +you can select the number of copies that shall be created of +each scanned image. <p> <b>Paper orientation and image position:</b> <p> diff --git a/doc/sane-xsane-doc.html b/doc/sane-xsane-doc.html index 874e065..dd9f481 100644 --- a/doc/sane-xsane-doc.html +++ b/doc/sane-xsane-doc.html @@ -33,20 +33,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetpye-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -128,14 +129,26 @@ XSane is a graphical scanning frontend for <a href="http://www.sane-project.org">SANE</a> (Scanner Access Now Easy). It uses the SANE-library to talk to scanners. This means that XSane does not support any scanners itself. -Here you can find out +Take a look at the <a href="http://www.sane-project.org/sane-backends.html"> -which scanners are supported by the SANE-library</a>. +SANE-backends homepage</a> to find out which scanners are supported by SANE. <p> XSane is designed for acquiring images with scanners (there are other -devices like cameras and videodevices supported by SANE, but XSane is -not designed for that purpose). You can scan to file, do a photocopy, -create a fax and start XSane from the GIMP as gimp plugin. +devices like cameras and videodevices supported by SANE and you will +see that xsane may support some basic functions of those devices, but XSane is +not designed for that purpose). +<p> +XSane can do different things with the acquired images: +<ul> +<li><a href="sane-xsane-viewer-doc.html">display image in a viewer</a></li> +<li><a href="sane-xsane-save-doc.html">save image to a file</a></li> +<li><a href="sane-xsane-copy-doc.html">do a photocopy</a></li> +<li><a href="sane-xsane-multipage-doc.html">create a multipage document</a></li> +<li><a href="sane-xsane-fax-doc.html">create a fax</a></li> +<li><a href="sane-xsane-email-doc.html">create an e-mail</a></li> +</ul> +XSane can also be started from the GIMP as +<a href="sane-xsane-gimp-doc.html">Gimp plugin</a>. </blockquote> <p> <h3><font color="#009900"><u>Setup:</u></font></h3> @@ -173,6 +186,19 @@ I do not create any unix binaries in the moment, but there are </li> </ul> +<h3><font color="#009900"><u>A personal plea:</u></font></h3> +<blockquote> +Most problems that occur while working with xsane are problems with the configuration of +the backend (scanner driver) or the operating system. I do not have the knowledge and I do not have the +time to answer all these questions. +When you have problems with your scanner (e.g. the scanner is not recogniced, +the scanner does not do what you expect, etc.) then please contact the +<a href="http://www.sane-project.org/mailing-lists.html"> +SANE-devel mailing list</a> or the author of the backend that supports your scanner +unless you have a good reason to expect that it is a problem of the graphical frontend (XSane) +and not a problem of the sane-backend. +</blockquote> + <h3><font color="#009900"><u>Author of XSane:</u></font></h3> <blockquote> <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a> diff --git a/doc/sane-xsane-mail-doc.html b/doc/sane-xsane-email-doc.html index 9166da7..2441548 100644 --- a/doc/sane-xsane-mail-doc.html +++ b/doc/sane-xsane-email-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window in mail mode</font></h1> +<h1><font color="#009900">E-mail mode</font></h1> </blockquote> </td> </tr> @@ -33,20 +33,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -122,70 +123,31 @@ <td VALIGN=TOP BGCOLOR="#FFFFFF"> <blockquote> <br> -In the mail mode images are scanned and sent by email. +In the e-mail mode images are scanned and sent by e-mail. <br> <br> <br> -<center><img SRC="xsane-mail.jpg" alt="XSane-main-window"></center> +<center><img SRC="xsane-email.jpg" alt="XSane-main-window"></center> <br> <br> - -<img SRC="xsane-colormode.jpg" alt="colormode"> - -<b>Scanmode:</b> -<blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. -</blockquote> - -<img SRC="xsane-scansource.jpg" alt="scansource"> - -<b>Scansource:</b> -<blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. -</blockquote> - -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> - -<img SRC="xsane-resolution.jpg" alt="resolution"> - -<b>Scan resolution:</b> -<blockquote> -Select resolution that is used for scanning. If the backends makes available a -range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a -list of resolutions. You select this via <i>Preferences/Show resolution list</i>. -<br> -The backend can define a list of resolutions insted of a range, in this -case it is not possible to enable the slider. -<p> -To select exact resolutions with the slider click the slider with the mouse pointer -and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i> -and a cursor key the step is 10. -</blockquote> - - + <br> <br> -<center><img SRC="xsane-mail-project.jpg" alt="XSane-mail-project-window"></center> +<center><img SRC="xsane-email-project.jpg" alt="XSane-email-project-window"></center> <br> -<h4>HTML mail:</h4> +<h4>HTML e-mail:</h4> <blockquote> -Select if the mail is sent as html mail or as text mail. In text mail the images -are appended to the mailfile. In html mail you can place the image at any position -by adding the tag < IMAGE > at the place of the email text where the image shall +Select if the e-mail is sent as html e-mail or as text e-mail. In text e-mail the images +are appended to the e-mailfile. In html e-mail you can place the image at any position +by adding the tag < IMAGE > at the place of the e-mail text where the image shall be displayed. The images are displayed in the same order as they are listed in the attachments. </blockquote> -<h4>Mail image filetype:</h4> +<h4>E-mail image filetype:</h4> <blockquote> -You can select the type of the image files that are attached to the mail. +You can select the type of the image files that are attached to the e-mail. Select <i>PNG</i>, <i>JPEG</i> or <i>TIFF</i>. Pay attention that the size of the images depends on the content of the pictures and on the filetype. </blockquote> @@ -202,17 +164,17 @@ Rename the selected image. <h4>Delete image:</h4> <blockquote> -Remove the selected image from the mail project. +Remove the selected image from the e-mail project. </blockquote> <h4>Send project:</h4> <blockquote> -Send mail, all images are attached to the mail. +Send e-mail, all images are attached to the e-mail. </blockquote> <h4>Delete project:</h4> <blockquote> -Delete the complete project. The email text and the image files are erased. +Delete the complete project. The e-mail text and the image files are erased. </blockquote> diff --git a/doc/sane-xsane-empty-doc.html b/doc/sane-xsane-empty-doc.html index 099832e..f651ba2 100644 --- a/doc/sane-xsane-empty-doc.html +++ b/doc/sane-xsane-empty-doc.html @@ -28,14 +28,15 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> @@ -106,8 +107,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-fax-doc.html b/doc/sane-xsane-fax-doc.html index 4f72e9f..b91b85f 100644 --- a/doc/sane-xsane-fax-doc.html +++ b/doc/sane-xsane-fax-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window in fax mode</font></h1> +<h1><font color="#009900">Fax mode</font></h1> </blockquote> </td> </tr> @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -133,50 +134,51 @@ installed. The faxcommand and the options must be specified in the menu <center><img SRC="xsane-fax.jpg" alt="XSane-main-window"></center> <br> <br> -<img SRC="xsane-colormode.jpg" alt="colormode"> - -<b>Scanmode:</b> -<blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. -</blockquote> - -<img SRC="xsane-scansource.jpg" alt="scansource"> - -<b>Scansource:</b> -<blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. -</blockquote> - -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> <br> <br> -<center><img SRC="xsane-fax-project.jpg" alt="XSane-fax-project-indow"></center> +<center><img SRC="xsane-fax-project.jpg" alt="XSane-fax-project-window"></center> <br> -<h4>FINE MODE:</h4> +<h4>Fine mode:</h4> <blockquote> The faxpages are always scanned in fine mode (204 dpi * 196 lpi). If <i>Fine mode</i> is enabled when the project is sent all pages are sent with 196lpi (fine mode), otherwise all pages are sent with 98lpi (normal mode). </blockquote> -<h4>INSERT FILE:</h4> +<h4>Insert file:</h4> <blockquote> You can add an external created postscript file to the fax project. The file is copied to the fax project directory. </blockquote> -<h4>SHOW PAGE:</h4> +<h4>Show page:</h4> <blockquote> A postscrip viewer is called to display the selected page. </blockquote> + +<h4>Rename page:</h4> +<blockquote> +Rename the selected page. +</blockquote> + +<h4>Delete page:</h4> +<blockquote> +Delete the selected page. +</blockquote> + +<h4>Send project:</h4> +<blockquote> +Send all pages that are part of the fax project. +Note that you need a working fax program! +</blockquote> + +<h4>Delete project:</h4> +<blockquote> +Delete the fax project . +</blockquote> + <br> </blockquote> </td> diff --git a/doc/sane-xsane-gimp-doc.html b/doc/sane-xsane-gimp-doc.html index fbc23a9..babc3ac 100644 --- a/doc/sane-xsane-gimp-doc.html +++ b/doc/sane-xsane-gimp-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window of gimp plugin</font></h1> +<h1><font color="#009900">Gimp plugin</font></h1> </blockquote> </td> </tr> @@ -33,20 +33,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -129,43 +130,7 @@ If XSane is started as Gimp plugin, the scanned image automatically is transfere <center><img SRC="xsane-gimp.jpg" alt="XSane-main-window"></center> <br> <br> -<img SRC="xsane-colormode.jpg" alt="colormode"> - -<b>Scanmode:</b> -<blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. -</blockquote> -<img SRC="xsane-scansource.jpg" alt="scansource"> - -<b>Scansource:</b> -<blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. -</blockquote> - -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> - -<img SRC="xsane-resolution.jpg" alt="resolution"> - -<b>Scan resolution:</b> -<blockquote> -Select resolution that is used for scanning. If the backends makes available a -range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a -list of resolutions. You select this via <i>Preferences/Show resolution list</i>. -<br> -The backend can define a list of resolutions insted of a range, in this -case it is not possible to enable the slider. -<p> -To select exact resolutions with the slider click the slider with the mouse pointer -and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i> -and a cursor key the step is 10. -</blockquote> <br> <br> To start xsane as a GIMP plugin, you have to set a symbolic link from diff --git a/doc/sane-xsane-guide-doc.html b/doc/sane-xsane-guide-doc.html new file mode 100644 index 0000000..3f20c1c --- /dev/null +++ b/doc/sane-xsane-guide-doc.html @@ -0,0 +1,157 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]"> + <meta name="Author" content="Oliver Rauch"> + <meta name="Description" content="scan, photocopy and fax frontend for SANE"> + <title>XSane - Scan mode</title> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> + + +<table> +<tr> +<td width=200> +<img SRC="xsane-logo.jpg" alt="XSane-logo" hspace=30 align=TOP> +</td> +<td> +<blockquote> +<h1><font color="#009900">Guide</font></h1> +</blockquote> +</td> +</tr> +</table> + + +<hr WIDTH="100%"> + +<table> +<tr> +<td valign=TOP width="200" bgcolor="#E0E0BA"> +<br> +<a href="sane-xsane-doc.html">Index</a> +<br> +<br> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> +<ul> +<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> +<li><a href="sane-xsane-save-doc.html">Save mode</a></li> +<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> +<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> +<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> +</ul> +<br> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> +<br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> +<br> +<a href="sane-xsane-color-correction-doc.html">Color correction:</a> +<ul> +<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li> +<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li> +<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li> +<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li> +<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li> +<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li> +<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li> +<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li> +</ul> +<br> +<a href="sane-xsane-standard-doc.html">Standard options window</a> +<br> +<br> +<a href="sane-xsane-advanced-doc.html">Advanced options window</a> +<br> +<br> +<a href="sane-xsane-preview-doc.html">Preview:</a> +<ul> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li> +<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li> +<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTORAISE">Autoraise scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li> +<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li> +<li><a href="sane-xsane-preview-doc.html#PRESET_AREA">Preset area</a></li> +<li><a href="sane-xsane-preview-doc.html#ROTATION">Rotation</a></li> +<li><a href="sane-xsane-preview-doc.html#ASPECT_RATIO">Aspect ratio</a></li> +<li><a href="sane-xsane-preview-doc.html#RGB_VALUES">RGB values</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li> +</ul> +<br> +<a href="sane-xsane-batch-scan-doc.html">Batch scan:</a> +<ul> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_EMPTY">Empty batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_OPEN">Open batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_SAVE">Save batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ADD">Add area to list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_DELETE">Remove selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_RENAME">Rename selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ROTATE">Rotate image</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_MIRROR">Mirror image</a></li> +</ul> +<br> +<font color="#000000">Setup:</font> +<ul> +<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li> +<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> +<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> +<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> +<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> +</ul> +</td> + + + +<td VALIGN=TOP BGCOLOR="#FFFFFF"> +<blockquote> +<br> +You can click into the following image and you will be directed to the +description of the selected widget. +<br> +<br> +<br> + + <img SRC="xsane-guide-1-decoration.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-menu-doc.html"> <img SRC="xsane-guide-2-menu.jpg" alt="disk" border="0"></a><br> + <img SRC="xsane-guide-3-options.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-scan-options-doc.html#ADF_PAGES"> <img SRC="xsane-guide-4a-adf-pages.jpg" alt="disk" border="0"></a><a href="sane-xsane-doc.html"> <img SRC="xsane-guide-4b-xsane-mode.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-save-doc.html#DISK"> <img SRC="xsane-guide-5-saving-options.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-scan-options-doc.html#SCANSOURCE"><img SRC="xsane-guide-6-scan-options.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-medium-definition-doc.html"> <img SRC="xsane-guide-7-medium-selection.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-scan-options-doc.html#RESOLUTION"><img SRC="xsane-guide-8-resolution.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-color-correction-doc.html"> <img SRC="xsane-guide-9-color-correction.jpg" alt="disk" border="0"></a><br> +<a href="sane-xsane-scan-doc.html"> <img SRC="xsane-guide-10-scan.jpg" alt="disk" border="0"></a><br> + +</blockquote> +</blockquote> +</td> +</tr> +</table> + +<hr WIDTH="100%"> + +<blockquote> +Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a> +</blockquote> + +</body> +</html> + diff --git a/doc/sane-xsane-histogram-doc.html b/doc/sane-xsane-histogram-doc.html index 2c52454..de0a333 100644 --- a/doc/sane-xsane-histogram-doc.html +++ b/doc/sane-xsane-histogram-doc.html @@ -28,14 +28,15 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> @@ -106,8 +107,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-medium-definition-doc.html b/doc/sane-xsane-medium-definition-doc.html index e8c879b..2938169 100644 --- a/doc/sane-xsane-medium-definition-doc.html +++ b/doc/sane-xsane-medium-definition-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-multipage-doc.html b/doc/sane-xsane-multipage-doc.html new file mode 100644 index 0000000..7cca205 --- /dev/null +++ b/doc/sane-xsane-multipage-doc.html @@ -0,0 +1,190 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]"> + <meta name="Author" content="Oliver Rauch"> + <meta name="Description" content="scan, photocopy and fax frontend for SANE"> + <title>XSane - Multipage mode</title> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> + + +<table> +<tr> +<td width=200> +<img SRC="xsane-logo.jpg" alt="XSane-logo" hspace=30 align=TOP> +</td> +<td> +<blockquote> +<h1><font color="#009900">Multipage mode</font></h1> +</blockquote> +</td> +</tr> +</table> + + +<hr WIDTH="100%"> + +<table> +<tr> +<td valign=TOP width="200" bgcolor="#E0E0BA"> +<br> +<a href="sane-xsane-doc.html">Index</a> +<br> +<br> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> +<ul> +<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> +<li><a href="sane-xsane-save-doc.html">Save mode</a></li> +<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> +<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> +<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> +</ul> +<br> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> +<br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> +<br> +<a href="sane-xsane-color-correction-doc.html">Color correction:</a> +<ul> +<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li> +<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li> +<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li> +<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li> +<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li> +<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li> +<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li> +<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li> +</ul> +<br> +<a href="sane-xsane-standard-doc.html">Standard options window</a> +<br> +<br> +<a href="sane-xsane-advanced-doc.html">Advanced options window</a> +<br> +<br> +<a href="sane-xsane-preview-doc.html">Preview:</a> +<ul> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li> +<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li> +<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTORAISE">Autoraise scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li> +<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li> +<li><a href="sane-xsane-preview-doc.html#PRESET_AREA">Preset area</a></li> +<li><a href="sane-xsane-preview-doc.html#ROTATION">Rotation</a></li> +<li><a href="sane-xsane-preview-doc.html#ASPECT_RATIO">Aspect ratio</a></li> +<li><a href="sane-xsane-preview-doc.html#RGB_VALUES">RGB values</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li> +</ul> +<br> +<a href="sane-xsane-batch-scan-doc.html">Batch scan:</a> +<ul> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_EMPTY">Empty batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_OPEN">Open batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_SAVE">Save batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ADD">Add area to list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_DELETE">Remove selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_RENAME">Rename selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ROTATE">Rotate image</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_MIRROR">Mirror image</a></li> +</ul> +<br> +<font color="#000000">Setup:</font> +<ul> +<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li> +<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> +<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> +<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> +<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> +</ul> +</td> + + + +<td VALIGN=TOP BGCOLOR="#FFFFFF"> +<blockquote> +<br> +In the multipage mode you can collect several images and create a multipage file. +<br> +Available multipage formats are <i>postscript</i>, <i>PDF</i> and <i>tiff</i>. +<br> +<br> +<br> +<center><img SRC="xsane-multipage.jpg" alt="XSane-main-window"></center> +<br> +<br> + + +<br> +<br> +<center><img SRC="xsane-multipage-project.jpg" alt="XSane-multipage-project-window"></center> +<br> + +<h4>Show image:</h4> +<blockquote> +The internal viewer is opened to display the selected image. +</blockquote> +<br> + +<h4>Edit image:</h4> +<blockquote> +The internal viewer is opened to edit the selected image. +</blockquote> +<br> + +<h4>Delete image:</h4> +<blockquote> +Delete the selected image. +</blockquote> +<br> + +<h4>Save multipage file:</h4> +<blockquote> +All images that are part of the multipage project are saved into the file +with the name of the multipage project and with the selected filetype as extension. +<br> +After creating the multipage file you should delete the multipage project! +</blockquote> +<br> + +<h4>Delete project:</h4> +<blockquote> +Delete the multipage project. +Note that you should delete the project after creation of the multipage file +to reduce disk usage! +</blockquote> +<br> + +</blockquote> +</td> +</tr> +</table> + +<hr WIDTH="100%"> + +<blockquote> +Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a> +</blockquote> + +</body> +</html> + diff --git a/doc/sane-xsane-preview-doc.html b/doc/sane-xsane-preview-doc.html index 1718062..17dea20 100644 --- a/doc/sane-xsane-preview-doc.html +++ b/doc/sane-xsane-preview-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-save-doc.html b/doc/sane-xsane-save-doc.html index dafb123..6673e25 100644 --- a/doc/sane-xsane-save-doc.html +++ b/doc/sane-xsane-save-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window in save mode</font></h1> +<h1><font color="#009900">Save mode</font></h1> </blockquote> </td> </tr> @@ -33,20 +33,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -130,45 +131,7 @@ In the save mode an image is scanned and saved to a file. <br> <br> -<img SRC="xsane-colormode.jpg" alt="colormode"> - -<b>Scanmode:</b> -<blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. -</blockquote> - -<img SRC="xsane-scansource.jpg" alt="scansource"> - -<b>Scansource:</b> -<blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. -</blockquote> - -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> - -<img SRC="xsane-resolution.jpg" alt="resolution"> - -<b>Scan resolution:</b> -<blockquote> -Select resolution that is used for scanning. If the backends makes available a -range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a -list of resolutions. You select this via <i>Preferences/Show resolution list</i>. -<br> -The backend can define a list of resolutions insted of a range, in this -case it is not possible to enable the slider. -<p> -To select exact resolutions with the slider click the slider with the mouse pointer -and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i> -and a cursor key the step is 10. -</blockquote> - - +<a NAME="DISK"></a> <img SRC="xsane-disk.jpg" alt="disk"> <b>Select filename:</b> @@ -178,18 +141,23 @@ of the image file that is created when the next scan is done. You also can enter the filename directly to the text box right to the disk icon. If no path is entered XSane saves the file into the directory selected in <i>Preferences/Change directory</i>. -<p> -<b>Step:</b> +</blockquote> + + +<img SRC="xsane-step.jpg" alt="step"> + +<b>Filename counter step width:</b> <blockquote> -If there is a counter in the filename (image-0001.jpg) the counter is increased by -the number selected in this box. +When the filename contains a counter at the end then the counter is updated +by the selected step width when the scan has been completed. </blockquote> + <b>Type:</b> <blockquote> <i>by ext</i> means that the filetype is selected by the extension of the filename. -When you select a filetype in this box XSane automatically appends the correct -extension to the filename, you should not append a file extension in this case. +When you select a filetype in this box XSane automatically updates the +extension of the filename. </blockquote> @@ -246,7 +214,6 @@ support is compiled in. For <i>png</i> you need libpng and libz, for <font color="#000099">rgba (raw) and png with alpha channel</font> </blockquote> -</blockquote> </blockquote> </blockquote> diff --git a/doc/sane-xsane-scan-options-doc.html b/doc/sane-xsane-scan-options-doc.html new file mode 100644 index 0000000..5858870 --- /dev/null +++ b/doc/sane-xsane-scan-options-doc.html @@ -0,0 +1,200 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]"> + <meta name="Author" content="Oliver Rauch"> + <meta name="Description" content="scan, photocopy and fax frontend for SANE"> + <title>XSane - Scan mode</title> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> + + +<table> +<tr> +<td width=200> +<img SRC="xsane-logo.jpg" alt="XSane-logo" hspace=30 align=TOP> +</td> +<td> +<blockquote> +<h1><font color="#009900">Scan options</font></h1> +</blockquote> +</td> +</tr> +</table> + + +<hr WIDTH="100%"> + +<table> +<tr> +<td valign=TOP width="200" bgcolor="#E0E0BA"> +<br> +<a href="sane-xsane-doc.html">Index</a> +<br> +<br> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> +<ul> +<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> +<li><a href="sane-xsane-save-doc.html">Save mode</a></li> +<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> +<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> +<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> +</ul> +<br> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> +<br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> +<br> +<a href="sane-xsane-color-correction-doc.html">Color correction:</a> +<ul> +<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li> +<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li> +<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li> +<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li> +<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li> +<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li> +<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li> +<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li> +<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li> +</ul> +<br> +<a href="sane-xsane-standard-doc.html">Standard options window</a> +<br> +<br> +<a href="sane-xsane-advanced-doc.html">Advanced options window</a> +<br> +<br> +<a href="sane-xsane-preview-doc.html">Preview:</a> +<ul> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li> +<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li> +<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li> +<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li> +<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#AUTORAISE">Autoraise scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li> +<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li> +<li><a href="sane-xsane-preview-doc.html#PRESET_AREA">Preset area</a></li> +<li><a href="sane-xsane-preview-doc.html#ROTATION">Rotation</a></li> +<li><a href="sane-xsane-preview-doc.html#ASPECT_RATIO">Aspect ratio</a></li> +<li><a href="sane-xsane-preview-doc.html#RGB_VALUES">RGB values</a></li> +<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li> +<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li> +</ul> +<br> +<a href="sane-xsane-batch-scan-doc.html">Batch scan:</a> +<ul> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_EMPTY">Empty batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_OPEN">Open batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_SAVE">Save batch list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ADD">Add area to list</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_DELETE">Remove selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_RENAME">Rename selection</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_ROTATE">Rotate image</a></li> +<li><a href="sane-xsane-batch-scan-doc.html#BATCH_SCAN_MIRROR">Mirror image</a></li> +</ul> +<br> +<font color="#000000">Setup:</font> +<ul> +<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li> +<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> +<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> +<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> +<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> +</ul> +</td> + + + +<td VALIGN=TOP BGCOLOR="#FFFFFF"> +<blockquote> +<br> +Here you find a description of the available scan options in the XSane main window. +If an option is available depends on the scanner model, available hardware extensions, +the scanmode and the xsane mode. +<br> +<br> +<br> +<center><img SRC="xsane-viewer.jpg" alt="XSane-main-window"></center> +<br> +<br> + +<a NAME="ADF_PAGES"></a> +<img SRC="xsane-adf-pages.jpg" alt="adf-pages"> + +<b>ADF-Pages:</b> +<blockquote> +Select the number of pages that shall be scanned. +You can use this with an automatic document feeder (ADF) +or by changing the papers by hand while the scanhead moves back. +</blockquote> + +<a NAME="SCANSOURCE"></a> +<img SRC="xsane-scansource.jpg" alt="scansource"> + +<b>Scansource:</b> +<blockquote> +Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. +</blockquote> + +<img SRC="xsane-colormode.jpg" alt="colormode"> + +<b>Scanmode:</b> +<blockquote> +Select scanmode, e.g.: color, grayscale, halftone, lineart. +</blockquote> + +<img SRC="xsane-medium.jpg" alt="medium"> + +<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> +<blockquote> +Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, +<i>Agfa negative</i>, ... or <i>Full range</i>. +</blockquote> + +<a NAME="RESOLUTION"></a> +<img SRC="xsane-resolution.jpg" alt="resolution"> + +<b>Scan resolution:</b> +<blockquote> +Select resolution that is used for scanning. If the backends makes available a +range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a +list of resolutions. You select this via <i>Preferences/Show resolution list</i>. +<br> +The backend can define a list of resolutions insted of a range, in this +case it is not possible to enable the slider. +<p> +To select exact resolutions with the slider click the slider with the mouse pointer +and use the cursor keys to change the value in small steps, if you press <i>ctrl</i> +and a cursor key the resolution is changed in larger steps. +</blockquote> + +</blockquote> +</blockquote> +</td> +</tr> +</table> + +<hr WIDTH="100%"> + +<blockquote> +Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a> +</blockquote> + +</body> +</html> + diff --git a/doc/sane-xsane-setup-copy-doc.html b/doc/sane-xsane-setup-copy-doc.html index 83c92b1..2371a6f 100644 --- a/doc/sane-xsane-setup-copy-doc.html +++ b/doc/sane-xsane-setup-copy-doc.html @@ -32,19 +32,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -130,12 +131,12 @@ main window of xsane. <br> <br> <br> -<h4>NAME:</h4> +<h4>Name:</h4> <blockquote> Define the name for the following printer definition. </blockquote> -<h4>COMMAND:</h4> +<h4>Command:</h4> <blockquote> Enter the command with which you print files. The command has to read the file from the standard input. If you use the bsd printing system @@ -143,7 +144,7 @@ this is "lpr", if you use the old printing system this should be "lp". When you use KDE then you should try "kprinter --stdin". </blockquote> -<h4>COPY NUMBER OPTION:</h4> +<h4>Copy number option:</h4> <blockquote> Enter the option of the printer command with wich the number of copies are specified. If you use the bsd printing system (lpr) or kprinter @@ -152,23 +153,23 @@ This option is the last option passed to the printerrcommand so if you specify a ";#" then the option is ignored. </blockquote> -<h4>RESOLUTION:</h4> +<h4>Resolution:</h4> <blockquote> With <i>resolution</i> you specify the resolution that shall be used for printing. It is not always necessary to set this value to the -resolution of the printer. Especally in grayscale and color mode it normally +resolution of the printer. Especially in grayscale and color mode it normally is good to set this value to the half or the quarter of the printer resolution because the printer needs a greater resolution to do the dithering. This value does not effect a change of the image size, the image size only depends on the given zoom factor. </blockquote> -<h4>PRINT AREA (WIDTH, HEIGHT, LEFT OFFSET, BOTTOM OFFSET):</h4> +<h4>Print area (width, height, left offset, bottom offset):</h4> <blockquote> Each printer has it's own area size and position where it is able to print. </blockquote> -<h4>PRINTER GAMMA VALUES:</h4> +<h4>Printer gamma values:</h4> <blockquote> Addidtional gamma value for printing. The <i>Printer gamma value</i> is used for grayscale and as common value for color mode. The diff --git a/doc/sane-xsane-setup-display-doc.html b/doc/sane-xsane-setup-display-doc.html index 68a79de..2d07e40 100644 --- a/doc/sane-xsane-setup-display-doc.html +++ b/doc/sane-xsane-setup-display-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -131,7 +132,7 @@ main window of xsane. <br> <br> <br> -<h4>MAIN WINDOW SIZE FIXED:</h4> +<h4>Main window size fixed:</h4> <blockquote> Select if the main window size shall be fixed (the window size is defined by xsane) or it shall be a resizable with scrollbars if necessary. @@ -140,14 +141,14 @@ The option can be overwritten by the command line options --Fixed/-F or --Resizeable/-R. </blockquote> -<h4>USE PRIVATE COLORMAP:</h4> +<h4>Use private colormap:</h4> <blockquote> If enabled and if the X server runs in 8 bit mode (256 colors) then the preview uses an own color map. <br>I suggest you do <b>not</b> run the X server in 8 bit mode! </blockquote> -<h4>PREVIEW OVERSAMPLING:</h4> +<h4>Preview oversampling:</h4> <blockquote> Defines a multiplier for the preview scan resolution. A value @@ -160,18 +161,18 @@ slower if you enter large values. So I suggest a value of 1.0 on slow computers and a value up to 2.0 on fast computers. </blockquote> -<h4>PREVIEW GAMMA:</h4> +<h4>Preview gamma:</h4> <blockquote> Set the gamma correction value for the preview image. This is to get correct colors on your monitor. </blockquote> -<h4>DISABLE GIMP PREVIEW GAMMA:</h4> +<h4>Disable Gimp preview gamma:</h4> <blockquote> When xsane is started as gimp plugin do not use preview gamma. </blockquote> -<h4>HELPFILE VIEWER:</h4> +<h4>Helpfile viewer:</h4> <blockquote> Enter a program to show the helpfiles. It must be a html-viewer. If you enter the keywrod "netscape-remote", xsane uses a already running diff --git a/doc/sane-xsane-setup-mail-doc.html b/doc/sane-xsane-setup-email-doc.html index ddd94a3..e74cfc5 100644 --- a/doc/sane-xsane-setup-mail-doc.html +++ b/doc/sane-xsane-setup-email-doc.html @@ -4,7 +4,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Oliver Rauch"> <meta name="Description" content="scan, photocopy and fax frontend for SANE"> - <title>XSane - Mail setup</title> + <title>XSane - E-mail setup</title> </head> <body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> @@ -16,7 +16,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Mail setup</font></h1> +<h1><font color="#009900">E-mail setup</font></h1> </blockquote> </td> </tr> @@ -32,19 +32,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -126,61 +127,50 @@ main window of xsane. <br> <br> <br> -<center><img SRC="xsane-setup-mail.jpg" alt="Xsane-setup-mail-window"></center> +<center><img SRC="xsane-setup-email.jpg" alt="Xsane-setup-e-mail-window"></center> <br> <br> <br> -<h4>FROM:</h4> +<h4>From:</h4> <blockquote> Enter your email address. </blockquote> -<h4>REPLY TO:</h4> +<h4>Reply to:</h4> <blockquote> Enter the email address to which the receiver shall answer. If this is the same as the <i>from</i> address enter the same address again. </blockquote> -<h4>SMTP SERVER:</h4> +<h4>SMTP server:</h4> <blockquote> This is the address of the smtp server. </blockquote> -<h4>SMPT PORT:</h4> +<h4>SMPT port:</h4> <blockquote> Here you have to enter the port number on which the smtp server expects smtp connections. The standard port number is 25. </blockquote> -<h4>POP3 authentification:</h4> +<h4>E-mail authentication:</h4> <blockquote> -Some smtp servers expect authentification before accepting -any mail. The smtp protocol does not define any authentification -routines. A lot of smtp servers expect that you authentificate -yourself via the pop3 authentification routines. +Since some years all SMTP servers expect authentication before accepting +any mail. There are different ways of authentication. Select the one your +ISP supports. </blockquote> -<h4>POP3 server:</h4> +<h4>User:</h4> <blockquote> -This is the address of the pop3 server. +Enter your username for the email authentication. </blockquote> -<h4>POP3 port:</h4> +<h4>Password:</h4> <blockquote> -Here you have to enter the port number on which the pop3 server -expects pop3 connections. The standard port number is 110. -</blockquote> - -<h4>POP3 user:</h4> -<blockquote> -Enter your username for the pop3 server. -</blockquote> - -<h4>POP3 password:</h4> -<blockquote> -Enter the password for the pop3 server. Pay attention, this can +Enter the password for the email authentication. +Pay attention, this can be a security hole. The user and password is stored in the xsane.rc file in ~/.sane/xsane/xsane.rc. The password is not stored in plain text but it is simple to reconstruct @@ -189,11 +179,15 @@ your pop3 password here make sure no one gets access to your xsane.rc file. </blockquote> -<h4>Viewer(png):</h4> +<h4>POP3 server:</h4> <blockquote> -Enter the program that shall be used to display a scanned -image when the <i>show image</i> button is pressed in the mail dialog. -The program has to be able to display png images. +This is the address of the pop3 server when you selected <i>POP3 before SMTP</i>. +</blockquote> + +<h4>POP3 port:</h4> +<blockquote> +Here you have to enter the port number on which the pop3 server +expects pop3 connections. The standard port number is 110. </blockquote> </blockquote> diff --git a/doc/sane-xsane-setup-enhancement-doc.html b/doc/sane-xsane-setup-enhancement-doc.html index 2546b35..c363dab 100644 --- a/doc/sane-xsane-setup-enhancement-doc.html +++ b/doc/sane-xsane-setup-enhancement-doc.html @@ -32,20 +32,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -129,7 +130,7 @@ main window of xsane. <center><img SRC="xsane-setup-enhancement.jpg" alt="XSane-setup-enhancement-window"></center> <br> <br> -<h4>THRESHOLD OPTION:</h4> +<h4>Threshold option:</h4> <blockquote> There are three options available: <ul> @@ -164,9 +165,8 @@ scan. The value range of the threshold option is normalized (see <i>THRESHOLD MINIMUM, MAXIMUM, MULTIPLIER, OFFSET</i>). </blockquote> </blockquote> -</blockquote> -<h4>THRESHOLD MINIMUM, MAXIMUM, MULTIPLIER, OFFSET:</h4> +<h4>Threshold minimum, maximum, multiplier, offset:</h4> <blockquote> These values are used to make the threshold function of the backends work the same way XSane does handle it. This is: @@ -188,7 +188,7 @@ you can shift the range linear. <b>where the user can select xsane_threshold in the range from MINIMUM to MAXIMUM.</b> </blockquote> -<h4>NAME OF GRAYSCALE SCANMODE:</h4> +<h4>Name of grayscale scanmode:</h4> <blockquote> If you want to do a grayscale previewscan when lineart scanmode is selected, you have to tell xsane the name of the grayscale mode. This @@ -197,10 +197,7 @@ may use different names. You have to enter the original name (not translated) case sensitive (take a look at the scanmode selection menu in the xsane main window). <br> -The name should be something like -<blockquote> -<b><i>Gray</i></b> -</blockquote> +The name should be something like <b><i>Gray</i></b>. </blockquote> </td> @@ -212,6 +209,7 @@ The name should be something like <blockquote> Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a> </blockquote> +</blockquote> </body> </html> diff --git a/doc/sane-xsane-setup-fax-doc.html b/doc/sane-xsane-setup-fax-doc.html index 57a5983..bd2bb00 100644 --- a/doc/sane-xsane-setup-fax-doc.html +++ b/doc/sane-xsane-setup-fax-doc.html @@ -32,19 +32,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -131,21 +132,21 @@ main window of xsane. <br> <br> -<h4>COMMAND:</h4> +<h4>Command:</h4> <blockquote> Enter command to send/spool faxfiles. <b>hylafax: "sendfax"</b> <b>mgetty+sendfax: "faxspool"</b> </blockquote> -<h4>RECEIVER OPTION:</h4> +<h4>Receiver option:</h4> <blockquote> Option to set receiver phone number or address. <b>hylafax: "-d"</b> <b>mgetty+sendfax: leave free</b> </blockquote> -<h4>POSTSCRIPTFILE OPTION:</h4> +<h4>Postscriptfile option:</h4> <blockquote> If there is an option that must be set before the filenames of the faxfile or if it is necessary to specify an option for files in @@ -154,14 +155,14 @@ postscript format, enter this option - otherwise let this field free. <b>mgetty+sendfax: leave free</b> </blockquote> -<h4>NORMAL MODE OPTION:</h4> +<h4>Normal mode option:</h4> <blockquote>If there is an option to set normal mode (98lpi) then enter this option - otherwise let this field free. <b>hylafax: "-l"</b> <b>mgetty+sendfax: "-n"</b> </blockquote> -<h4>FINE MODE OPTION:</h4> +<h4>Fine mode option:</h4> <blockquote> If there is an option to set fine mode (196lpi) then enter this option - otherwise let this field free. @@ -169,14 +170,14 @@ this option - otherwise let this field free. <b>mgetty+sendfax: leave free</b> </blockquote> -<h4>VIEWER:</h4> +<h4>Viewer:</h4> <blockquote> Enter a program to show the postscript fax files on the screen. <br> E.g. this can be "ghostscript" or "xv". </blockquote> -<h4>PRINT AREA (WIDTH, HEIGHT, LEFT OFFSET, BOTTOM OFFSET):</h4> +<h4>Print area (width, height, left offset, bottom offset):</h4> <blockquote> Define size and position of printable area on faxpage. </blockquote> diff --git a/doc/sane-xsane-setup-image-doc.html b/doc/sane-xsane-setup-filetype-doc.html index d5dae03..76bc981 100644 --- a/doc/sane-xsane-setup-image-doc.html +++ b/doc/sane-xsane-setup-filetype-doc.html @@ -16,7 +16,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Image setup</font></h1> +<h1><font color="#009900">Filetype setup</font></h1> </blockquote> </td> </tr> @@ -32,19 +32,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -126,24 +127,48 @@ main window of xsane. <br> <br> <br> -<center><p><br><img SRC="xsane-setup-image.jpg" alt="XSane-setup-image-window"></center> +<center><p><br><img SRC="xsane-setup-filetype.jpg" alt="XSane-setup-filetype-window"></center> <br> <br> <br> -<h4>REDUCE 16 BIT IMAGE TO 8 BIT:</h4> + +<h4>Reduce 16 bit image to 8 bit:</h4> <blockquote> When the image is scanned with 16 bit/color then xsane does reduce the color depth to 8 bit/color before saving the image. </blockquote> -<h4>JPEG IMAGE QUALITY:</h4> +<h4>Save 16 bit pnm in ascii format:</h4> +<blockquote> +In general 16 bit pnm images are stored in binary format. +When you want to create 16 bit ascii pnm images then enable this option. +But keep in mind that you get huge files! +</blockquote> + +<h4>Save posctscript zlib compressed (ps level 3):</h4> +<blockquote> +Poscsript level 2 does not know about zlib compressed images. +For postscript level 2 the images are stored in A85 compression. +When you want to create zlib compressed (deflate) postscript files +then enable this option. But keep in mind that you will not be able +to print such files on postscript level 2 printers! +</blockquote> + +<h4>Save PDF zlib compressed:</h4> +<blockquote> +PDF images can be stored in A85 compression or in zlib compression. +When you want to create zlib compressed (deflate) PDF files +then enable this option. +</blockquote> + +<h4>JPEG image quality:</h4> <blockquote> If the image is saved in <i>jpeg</i> format this value defines the quality of the image. Low values mean low quality and low file size, high values mean high quality and high file size. </blockquote> -<h4>PNG IMAGE COMPRESSION:</h4> +<h4>PNG image compression:</h4> <blockquote> If the image is saved in <i>png</i> format this value defines the compression level. The quality of the image keeps the same, low values @@ -151,20 +176,28 @@ mean low compression, large files and low compression time. High values mean high compression, smaller files and high compression time. </blockquote> -<h4>TIFF 16 BIT IMAGE COMPRESSION:</h4> +<h4>TIFF zip compression rate:</h4> +<blockquote> +If the image is saved in zlib compressed (deflate) <i>tiff</i> format this value defines +the compression level. The quality of the image keeps the same, low values +mean low compression, large files and low compression time. High values +mean high compression, smaller files and high compression time. +</blockquote> + +<h4>TIFF 16 bit image compression:</h4> <blockquote> If the image is saved in 16 bit/color <i>tiff</i> format this selection defines if xsane does <i>pack bits</i> or <i>no compression</i> is used. </blockquote> -<h4>TIFF 8 BIT IMAGE COMPRESSION:</h4> +<h4>TIFF 8 bit image compression:</h4> <blockquote> If the image is saved in 8 bit/color <i>tiff</i> format this selection defines if xsane does <i>pack bits</i>, use <i>JPEG DCT compression</i> or <i>no compression</i> is used. </blockquote> -<h4>TIFF lineart IMAGE COMPRESSION:</h4> +<h4>TIFF lineart image compression:</h4> <blockquote> If the image is saved in lineart <i>tiff</i> format this selection defines if xsane does <i>pack bits</i>, use <i>CCIT Group 4 Fax compression</i>, diff --git a/doc/sane-xsane-setup-save-doc.html b/doc/sane-xsane-setup-save-doc.html index a954ffb..20b7a36 100644 --- a/doc/sane-xsane-setup-save-doc.html +++ b/doc/sane-xsane-setup-save-doc.html @@ -32,20 +32,23 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> <br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> <ul> @@ -66,11 +69,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -110,8 +111,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -130,25 +131,28 @@ main window of xsane. <br> <br> <br> -<h4> PERMISSIONS:</h4> +<h4>Permissions:</h4> <blockquote> You can set permissions with which a file or directory is created. The user permissions are not changeable because xsane needs the predefined user permissions for correct function. </blockquote> +<br> -<h4>OVERWRITE WARNING:</h4> +<h4>Overwrite warning:</h4> <blockquote> If enabled, a warning comes up before an existing file is overwritten. </blockquote> +<br> -<h4>SKIP EXISTING NUMBERS:</h4> +<h4>Skip exisiting numbers:</h4> <blockquote> If filename counter is automatically increased, the filenames that already exist are skipped! </blockquote> +<br> -<h4>FILENAME COUNTER LENGTH:</h4> +<h4>Filename counter length:</h4> <blockquote> If the filename includes a counter (image-0003.pnm), the length of the counter can be defined. This can be interesting eg. if you want @@ -156,6 +160,15 @@ to scan 500 images and want that the ordering the images by their filenames creates the same order like the counter does. If you select <i>inactive</i> the counter is not changed by xsane. </blockquote> +<br> + +<h4>Save device preferences at exit:</h4> +<blockquote> +When you enable this option then the devices preferences +are automatically saved when XSane exits. +</blockquote> + + </blockquote> </td> </tr> diff --git a/doc/sane-xsane-standard-doc.html b/doc/sane-xsane-standard-doc.html index 78bb7c2..fa66c9c 100644 --- a/doc/sane-xsane-standard-doc.html +++ b/doc/sane-xsane-standard-doc.html @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> diff --git a/doc/sane-xsane-viewer-doc.html b/doc/sane-xsane-viewer-doc.html index 83409a3..1b222cf 100644 --- a/doc/sane-xsane-viewer-doc.html +++ b/doc/sane-xsane-viewer-doc.html @@ -17,7 +17,7 @@ </td> <td> <blockquote> -<h1><font color="#009900">Main window in viewer mode</font></h1> +<h1><font color="#009900">Viewer mode</font></h1> </blockquote> </td> </tr> @@ -33,19 +33,22 @@ <a href="sane-xsane-doc.html">Index</a> <br> <br> -<br> -<font color="#000000">Main window:</font> +<font color="#000000">XSane mode:</font> +<img SRC="xsane-target.jpg" alt="xsane-target"> <ul> <li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li> <li><a href="sane-xsane-save-doc.html">Save mode</a></li> <li><a href="sane-xsane-copy-doc.html">Copy mode</a></li> +<li><a href="sane-xsane-multipage-doc.html">Multipage mode</a></li> <li><a href="sane-xsane-fax-doc.html">Fax mode</a></li> -<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li> +<li><a href="sane-xsane-email-doc.html">E-mail mode</a></li> <li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li> </ul> <br> -<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> +<a href="sane-xsane-scan-options-doc.html">Scan options</a> +<br> <br> +<a href="sane-xsane-medium-definition-doc.html">Medium selection</a> <br> <br> <a href="sane-xsane-color-correction-doc.html">Color correction:</a> @@ -67,11 +70,9 @@ <a href="sane-xsane-standard-doc.html">Standard options window</a> <br> <br> -<br> <a href="sane-xsane-advanced-doc.html">Advanced options window</a> <br> <br> -<br> <a href="sane-xsane-preview-doc.html">Preview:</a> <ul> <li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li> @@ -111,8 +112,8 @@ <li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li> <li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li> <li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li> -<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li> -<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li> +<li><a href="sane-xsane-setup-filetype-doc.html">Filetype setup</a></li> +<li><a href="sane-xsane-setup-email-doc.html">E-mail setup</a></li> <li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li> </ul> </td> @@ -130,43 +131,31 @@ In the viewer mode an image is scanned and displayed in the viewer. <br> <br> -<img SRC="xsane-colormode.jpg" alt="colormode"> +<img SRC="xsane-disk.jpg" alt="disk"> -<b>Scanmode:</b> +<b>Select filename:</b> <blockquote> -Select scanmode, e.g.: color, grayscale, halftone, lineart. +If you press the disk icon a browse dialog is opened where you can select the name +of the image file that is suggested for the viewer. +You also can enter the filename directly to the text box right to the disk icon. </blockquote> -<img SRC="xsane-scansource.jpg" alt="scansource"> + +<img SRC="xsane-step.jpg" alt="step"> -<b>Scansource:</b> +<b>Filename counter step width:</b> <blockquote> -Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder. +When the filename contains a counter at the end then the counter is increased (or decreased) +by the selected step width when the scan has been completed. </blockquote> - -<img SRC="xsane-medium.jpg" alt="medium"> - -<b><a href="sane-xsane-medium-definition-doc.html">Medium selection:</a></b> -<blockquote> -Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>, -<i>Agfa negative</i>, ... or <i>Full range</i>. -</blockquote> - -<img SRC="xsane-resolution.jpg" alt="resolution"> - -<b>Scan resolution:</b> + + +<b>Type:</b> <blockquote> -Select resolution that is used for scanning. If the backends makes available a -range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a -list of resolutions. You select this via <i>Preferences/Show resolution list</i>. -<br> -The backend can define a list of resolutions insted of a range, in this -case it is not possible to enable the slider. -<p> -To select exact resolutions with the slider click the slider with the mouse pointer -and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i> -and a cursor key the step is 10. +Filetype and fileextension that are suggested for the viewer. </blockquote> + + <br> <br> <b>The viewer window:</b> diff --git a/doc/xsane-adf-pages.jpg b/doc/xsane-adf-pages.jpg Binary files differnew file mode 100644 index 0000000..ac37574 --- /dev/null +++ b/doc/xsane-adf-pages.jpg diff --git a/doc/xsane-color-correction.jpg b/doc/xsane-color-correction.jpg Binary files differnew file mode 100644 index 0000000..cc36b49 --- /dev/null +++ b/doc/xsane-color-correction.jpg diff --git a/doc/xsane-copy-number.jpg b/doc/xsane-copy-number.jpg Binary files differnew file mode 100644 index 0000000..f0efe08 --- /dev/null +++ b/doc/xsane-copy-number.jpg diff --git a/doc/xsane-copy.jpg b/doc/xsane-copy.jpg Binary files differindex 1c0686d..de7d3a9 100644 --- a/doc/xsane-copy.jpg +++ b/doc/xsane-copy.jpg diff --git a/doc/xsane-email-project.jpg b/doc/xsane-email-project.jpg Binary files differnew file mode 100644 index 0000000..95dc81d --- /dev/null +++ b/doc/xsane-email-project.jpg diff --git a/doc/xsane-email.jpg b/doc/xsane-email.jpg Binary files differnew file mode 100644 index 0000000..6b49349 --- /dev/null +++ b/doc/xsane-email.jpg diff --git a/doc/xsane-fax-project.jpg b/doc/xsane-fax-project.jpg Binary files differindex e89f398..53a30fa 100644 --- a/doc/xsane-fax-project.jpg +++ b/doc/xsane-fax-project.jpg diff --git a/doc/xsane-fax.jpg b/doc/xsane-fax.jpg Binary files differindex ae77294..0fc3f5f 100644 --- a/doc/xsane-fax.jpg +++ b/doc/xsane-fax.jpg diff --git a/doc/xsane-gimp.jpg b/doc/xsane-gimp.jpg Binary files differindex a0babb2..1e27f12 100644 --- a/doc/xsane-gimp.jpg +++ b/doc/xsane-gimp.jpg diff --git a/doc/xsane-guide-1-decoration.jpg b/doc/xsane-guide-1-decoration.jpg Binary files differnew file mode 100644 index 0000000..38596da --- /dev/null +++ b/doc/xsane-guide-1-decoration.jpg diff --git a/doc/xsane-guide-10-scan.jpg b/doc/xsane-guide-10-scan.jpg Binary files differnew file mode 100644 index 0000000..4795695 --- /dev/null +++ b/doc/xsane-guide-10-scan.jpg diff --git a/doc/xsane-guide-2-menu.jpg b/doc/xsane-guide-2-menu.jpg Binary files differnew file mode 100644 index 0000000..b97abe0 --- /dev/null +++ b/doc/xsane-guide-2-menu.jpg diff --git a/doc/xsane-guide-3-options.jpg b/doc/xsane-guide-3-options.jpg Binary files differnew file mode 100644 index 0000000..d7fa764 --- /dev/null +++ b/doc/xsane-guide-3-options.jpg diff --git a/doc/xsane-guide-4.jpg b/doc/xsane-guide-4.jpg Binary files differnew file mode 100644 index 0000000..b9f3a0a --- /dev/null +++ b/doc/xsane-guide-4.jpg diff --git a/doc/xsane-guide-4a-adf-pages.jpg b/doc/xsane-guide-4a-adf-pages.jpg Binary files differnew file mode 100644 index 0000000..d4a2e91 --- /dev/null +++ b/doc/xsane-guide-4a-adf-pages.jpg diff --git a/doc/xsane-guide-4b-xsane-mode.jpg b/doc/xsane-guide-4b-xsane-mode.jpg Binary files differnew file mode 100644 index 0000000..e4c6697 --- /dev/null +++ b/doc/xsane-guide-4b-xsane-mode.jpg diff --git a/doc/xsane-guide-5-saving-options.jpg b/doc/xsane-guide-5-saving-options.jpg Binary files differnew file mode 100644 index 0000000..3f2bee9 --- /dev/null +++ b/doc/xsane-guide-5-saving-options.jpg diff --git a/doc/xsane-guide-6-scan-options.jpg b/doc/xsane-guide-6-scan-options.jpg Binary files differnew file mode 100644 index 0000000..3de4839 --- /dev/null +++ b/doc/xsane-guide-6-scan-options.jpg diff --git a/doc/xsane-guide-7-medium-selection.jpg b/doc/xsane-guide-7-medium-selection.jpg Binary files differnew file mode 100644 index 0000000..5d6fe2a --- /dev/null +++ b/doc/xsane-guide-7-medium-selection.jpg diff --git a/doc/xsane-guide-8-resolution.jpg b/doc/xsane-guide-8-resolution.jpg Binary files differnew file mode 100644 index 0000000..f6523d1 --- /dev/null +++ b/doc/xsane-guide-8-resolution.jpg diff --git a/doc/xsane-guide-9-color-correction.jpg b/doc/xsane-guide-9-color-correction.jpg Binary files differnew file mode 100644 index 0000000..71888ef --- /dev/null +++ b/doc/xsane-guide-9-color-correction.jpg diff --git a/doc/xsane-mail-project.jpg b/doc/xsane-mail-project.jpg Binary files differdeleted file mode 100644 index ff8cd0a..0000000 --- a/doc/xsane-mail-project.jpg +++ /dev/null diff --git a/doc/xsane-mail.jpg b/doc/xsane-mail.jpg Binary files differdeleted file mode 100644 index 93163d8..0000000 --- a/doc/xsane-mail.jpg +++ /dev/null diff --git a/doc/xsane-multipage-project.jpg b/doc/xsane-multipage-project.jpg Binary files differnew file mode 100644 index 0000000..c5a65f3 --- /dev/null +++ b/doc/xsane-multipage-project.jpg diff --git a/doc/xsane-multipage.jpg b/doc/xsane-multipage.jpg Binary files differnew file mode 100644 index 0000000..bd8cd7b --- /dev/null +++ b/doc/xsane-multipage.jpg diff --git a/doc/xsane-save.jpg b/doc/xsane-save.jpg Binary files differindex 994f633..ff22036 100644 --- a/doc/xsane-save.jpg +++ b/doc/xsane-save.jpg diff --git a/doc/xsane-setup-copy.jpg b/doc/xsane-setup-copy.jpg Binary files differindex 7f5cbca..c097868 100644 --- a/doc/xsane-setup-copy.jpg +++ b/doc/xsane-setup-copy.jpg diff --git a/doc/xsane-setup-display.jpg b/doc/xsane-setup-display.jpg Binary files differindex 6997540..ae372f6 100644 --- a/doc/xsane-setup-display.jpg +++ b/doc/xsane-setup-display.jpg diff --git a/doc/xsane-setup-email.jpg b/doc/xsane-setup-email.jpg Binary files differnew file mode 100644 index 0000000..dbc876f --- /dev/null +++ b/doc/xsane-setup-email.jpg diff --git a/doc/xsane-setup-enhancement.jpg b/doc/xsane-setup-enhancement.jpg Binary files differindex 2a2e67d..ade9c2f 100644 --- a/doc/xsane-setup-enhancement.jpg +++ b/doc/xsane-setup-enhancement.jpg diff --git a/doc/xsane-setup-fax.jpg b/doc/xsane-setup-fax.jpg Binary files differindex 113e950..984f629 100644 --- a/doc/xsane-setup-fax.jpg +++ b/doc/xsane-setup-fax.jpg diff --git a/doc/xsane-setup-filetype.jpg b/doc/xsane-setup-filetype.jpg Binary files differnew file mode 100644 index 0000000..c5bf70e --- /dev/null +++ b/doc/xsane-setup-filetype.jpg diff --git a/doc/xsane-setup-image.jpg b/doc/xsane-setup-image.jpg Binary files differdeleted file mode 100644 index 2476862..0000000 --- a/doc/xsane-setup-image.jpg +++ /dev/null diff --git a/doc/xsane-setup-mail.jpg b/doc/xsane-setup-mail.jpg Binary files differdeleted file mode 100644 index 7c6f176..0000000 --- a/doc/xsane-setup-mail.jpg +++ /dev/null diff --git a/doc/xsane-setup-ocr.jpg b/doc/xsane-setup-ocr.jpg Binary files differindex 051ad42..df64bcc 100644 --- a/doc/xsane-setup-ocr.jpg +++ b/doc/xsane-setup-ocr.jpg diff --git a/doc/xsane-setup-save.jpg b/doc/xsane-setup-save.jpg Binary files differindex 556a025..a9dcf4b 100644 --- a/doc/xsane-setup-save.jpg +++ b/doc/xsane-setup-save.jpg diff --git a/doc/xsane-step.jpg b/doc/xsane-step.jpg Binary files differnew file mode 100644 index 0000000..3dc7e5c --- /dev/null +++ b/doc/xsane-step.jpg diff --git a/doc/xsane-target.jpg b/doc/xsane-target.jpg Binary files differnew file mode 100644 index 0000000..ca74b5e --- /dev/null +++ b/doc/xsane-target.jpg diff --git a/doc/xsane-viewer.jpg b/doc/xsane-viewer.jpg Binary files differindex 680a8f8..edf6cc1 100644 --- a/doc/xsane-viewer.jpg +++ b/doc/xsane-viewer.jpg diff --git a/include/config.h b/include/config.h index d68bdd3..87cd1a0 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.98b" +#define VERSION "0.99" /* The concatenation of the strings PACKAGE, "-", and VERSION. */ -#define XSANE_PACKAGE_VERSION "xsane-0.98b" +#define XSANE_PACKAGE_VERSION "xsane-0.99" /* Define if you have the __argz_count function. */ #define HAVE___ARGZ_COUNT 1 diff --git a/intl/Makefile.in b/intl/Makefile.in index fb112fe..47018d6 100644 --- a/intl/Makefile.in +++ b/intl/Makefile.in @@ -65,12 +65,6 @@ explodename.c OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ explodename.$lo -CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo -GETTOBJS = intl-compat.$lo -DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ -xopen-msg.sed $(HEADERS) $(SOURCES) -DISTFILES.normal = VERSION -DISTFILES.gettext = libintl.glibc intlh.inst.in .SUFFIXES: .SUFFIXES: .c .o .lo @@ -100,53 +94,14 @@ libintl.la: $(OBJECTS) check: all -# This installation goal is only used in GNU gettext. Packages which -# only use the library should use install instead. - -# We must not install the libintl.h/libintl.a files if we are on a -# system which has the gettext() function in its C library or in a -# separate library or use the catgets interface. A special case is -# where configure found a previously installed GNU gettext library. -# If you want to use the one which comes with this version of the -# package, you have to use `configure --with-included-gettext'. install: install-exec install-data install-exec: all - if test "$(PACKAGE)" = "gettext" \ - && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ - if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(libdir) $(includedir); \ - else \ - $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \ - fi; \ - $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \ - $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \ - else \ - : ; \ - fi install-data: all - if test "$(PACKAGE)" = "gettext"; then \ - if test -r $(MKINSTALLDIRS); then \ - $(MKINSTALLDIRS) $(gettextsrcdir); \ - else \ - $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ - fi; \ - $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \ - dists="$(DISTFILES.common)"; \ - for file in $$dists; do \ - $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi # Define this as empty until I found a useful application. installcheck: uninstall: - dists="$(DISTFILES.common)"; \ - for file in $$dists; do \ - rm -f $(gettextsrcdir)/$$file; \ - done info dvi: @@ -154,47 +109,19 @@ $(OBJECTS): ../include/config.h libgettext.h bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) - here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) - -id: ID - -ID: $(HEADERS) $(SOURCES) - here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) - - mostlyclean: rm -f *.a *.o *.lo core core.* clean: mostlyclean distclean: clean - rm -f Makefile ID TAGS po2msg.sed po2tbl.sed + rm -f Makefile maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -# GNU gettext needs not contain the file `VERSION' but contains some -# other files which should not be distributed in other packages. -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: Makefile $(DISTFILES) - if test "$(PACKAGE)" = gettext; then \ - additional="$(DISTFILES.gettext)"; \ - else \ - additional="$(DISTFILES.normal)"; \ - fi; \ - for file in $(DISTFILES.common) $$additional; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -dist-libc: - tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc - Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status diff --git a/intl/bindtextdom.o b/intl/bindtextdom.o Binary files differdeleted file mode 100644 index c39ad91..0000000 --- a/intl/bindtextdom.o +++ /dev/null diff --git a/intl/dcgettext.o b/intl/dcgettext.o Binary files differdeleted file mode 100644 index 98629ad..0000000 --- a/intl/dcgettext.o +++ /dev/null diff --git a/intl/dgettext.o b/intl/dgettext.o Binary files differdeleted file mode 100644 index a7c7eef..0000000 --- a/intl/dgettext.o +++ /dev/null diff --git a/intl/explodename.o b/intl/explodename.o Binary files differdeleted file mode 100644 index 99ece7e..0000000 --- a/intl/explodename.o +++ /dev/null diff --git a/intl/finddomain.o b/intl/finddomain.o Binary files differdeleted file mode 100644 index 86b783b..0000000 --- a/intl/finddomain.o +++ /dev/null diff --git a/intl/gettext.o b/intl/gettext.o Binary files differdeleted file mode 100644 index b8c7d46..0000000 --- a/intl/gettext.o +++ /dev/null diff --git a/intl/intl-compat.o b/intl/intl-compat.o Binary files differdeleted file mode 100644 index 29fb312..0000000 --- a/intl/intl-compat.o +++ /dev/null diff --git a/intl/l10nflist.o b/intl/l10nflist.o Binary files differdeleted file mode 100644 index c3b96d3..0000000 --- a/intl/l10nflist.o +++ /dev/null diff --git a/intl/libintl.a b/intl/libintl.a Binary files differdeleted file mode 100644 index 7837b76..0000000 --- a/intl/libintl.a +++ /dev/null diff --git a/intl/loadmsgcat.o b/intl/loadmsgcat.o Binary files differdeleted file mode 100644 index 8c676cc..0000000 --- a/intl/loadmsgcat.o +++ /dev/null diff --git a/intl/localealias.o b/intl/localealias.o Binary files differdeleted file mode 100644 index 563801e..0000000 --- a/intl/localealias.o +++ /dev/null diff --git a/intl/po2tbl.sed b/intl/po2tbl.sed index 93c0435..e69de29 100644 --- a/intl/po2tbl.sed +++ b/intl/po2tbl.sed @@ -1,60 +0,0 @@ -1 { - i\ -/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ -\ -#if HAVE_CONFIG_H\ -# include <config.h>\ -#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 deleted file mode 100644 index b3bcca4..0000000 --- a/intl/po2tbl.sed.in +++ /dev/null @@ -1,102 +0,0 @@ -# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets -# Copyright (C) 1995 Free Software Foundation, Inc. -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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 <config.h>\ -#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 <Haible@ma2s2.mathematik.uni-karlsruhe.de> - 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/intl/textdomain.o b/intl/textdomain.o Binary files differdeleted file mode 100644 index 795653e..0000000 --- a/intl/textdomain.o +++ /dev/null diff --git a/intl/xopen-msg.sed b/intl/xopen-msg.sed deleted file mode 100644 index b19c0bb..0000000 --- a/intl/xopen-msg.sed +++ /dev/null @@ -1,104 +0,0 @@ -# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file -# Copyright (C) 1995 Free Software Foundation, Inc. -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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. -# -# -# The first directive in the .msg should be the definition of the -# message set number. We use always set number 1. -# -1 { - i\ -$set 1 # Automatically created by po2msg.sed - h - s/.*/0/ - x -} -# -# We copy all comments into the .msg file. Perhaps they can help. -# -/^#/ s/^#[ ]*/$ /p -# -# We copy the original message as a comment into the .msg file. -# -/^msgid/ { -# Does not work now -# /"$/! { -# s/\\$// -# s/$/ ... (more lines following)"/ -# } - s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ - p -} -# -# The .msg file contains, other then the .po file, only the translations -# but each given a unique ID. Starting from 1 and incrementing by 1 for -# each message we assign them to the messages. -# It is important that the .po file used to generate the cat-id-tbl.c file -# (with po-to-tbl) is the same as the one used here. (At least the order -# of declarations must not be changed.) -# -/^msgstr/ { - s/msgstr[ ]*"\(.*\)"/\1/ - x -# The following nice solution is by -# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> - 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 -# Bring the line in the format `<number> <message>' - G - s/^[^\n]*$/& / - s/\(.*\)\n\([0-9]*\)/\2 \1/ -# Clear flag from last substitution. - tb -# Append the next line. - :b - N -# Look whether second part is a continuation line. - s/\(.*\n\)"\(.*\)"/\1\2/ -# Yes, then branch. - ta - P - D -# Note that `D' includes a jump to the start!! -# We found a continuation line. But before printing insert '\'. - :a - s/\(.*\)\(\n.*\)/\1\\\2/ - P -# We cannot use the sed command `D' here - s/.*\n\(.*\)/\1/ - tb -} -d diff --git a/po/Makefile.in b/po/Makefile.in index c30521e..7f09cfe 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -27,7 +27,7 @@ subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ +MKINSTALLDIRS = @MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ @@ -36,15 +36,6 @@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in xsane-pot.sed sane-text.h $(PACKAGE).pot \ @@ -57,10 +48,7 @@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat - -.c.o: - $(COMPILE) $< +.SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: if test "${MSGMERGE}" != "no"; then \ @@ -111,25 +99,17 @@ install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all - if test -r "$(MKINSTALLDIRS)"; then \ - $(MKINSTALLDIRS) $(datadir); \ - else \ - $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \ - fi + $(MKINSTALLDIRS) $(DESTDIR)$(datadir); @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ + *.gmo) destdir=$(DESTDIR)$(gnulocaledir);; \ + *) destdir=$(DESTDIR)$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$$destdir/$$lang/LC_MESSAGES; \ - if test -r "$(MKINSTALLDIRS)"; then \ - $(MKINSTALLDIRS) $$dir; \ - else \ - $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ - fi; \ + $(MKINSTALLDIRS) $$dir; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ @@ -161,12 +141,11 @@ uninstall: for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ done - rm -f $(gettextsrcdir)/po-Makefile.in check: all @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: XSANE 0.98\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2005-10-30 23:11+0100\n" +"Project-Id-Version: XSANE 0.99\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-31 16:09+0100\n" "Last-Translator: Stanislav Brabec <utx@penguin.cz>\n" "Language-Team: Czech <cs@li.org>\n" "MIME-Version: 1.0\n" @@ -79,18 +79,22 @@ msgstr "pĹ™ejmenovat faxovou stránku" msgid "insert ps-file into fax" msgstr "zadat ps-soubor pro fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "poštovnĂ projekt" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "PoštovnĂ projekt" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "pĹ™ejmenovat obrázek do pošty" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" msgstr "vloĹľit soubor do pošty" +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "vĂcestránkovĂ˝ projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "pĹ™ejmenovat pĹ™edvolenou oblast" @@ -379,6 +383,10 @@ msgstr "VytvoĹ™it projekt" msgid "Send project" msgstr "Odeslat projekt" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Zápis vĂcestránkovĂ©ho souboru" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Smazat projekt" @@ -419,8 +427,8 @@ msgstr "Spřáhnout zmÄ›nu velikosti" msgid "Fine mode" msgstr "NalĂ©zt reĹľim" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" msgstr "HTML pošta" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -435,9 +443,17 @@ 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 +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Zapsat zlib komprimovanĂ˝ postscript (ps level 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Zapsat zlib komprimovanĂ˝ PDF" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" -msgstr "Zapsat jako 16bitovĂ˝ pnm v ascii formátu" +msgstr "Zapsat 16bitovĂ˝ pnm v ascii formátu" #. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT msgid "Reduce 16 bit image to 8 bit" @@ -467,10 +483,6 @@ msgstr "PĹ™edvolba skenovacĂ plochy" msgid "Autocorrect colors" msgstr "Automatická korekce barev" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Authentifikace POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "PouĹľĂt GUI rouru prĹŻbÄ›hu" @@ -487,14 +499,6 @@ msgstr "Dostupná zaĹ™ĂzenĂ:" msgid "XSane options" msgstr "PĹ™edvolby XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "ReĹľim XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Krok" - #. TEXT_FILETYPE msgid "Type" msgstr "Typ" @@ -683,8 +687,8 @@ msgstr "" "BEZ JAKÉKOLI ZĂRUKY; neposkytujĂ se ani odvozenĂ© záruky\n" "PRODEJNOSTI anebo VHODNOSTI PRO URÄŚITĂť ÚČEL.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "E-mail:" #. TEXT_HOMEPAGE @@ -702,15 +706,16 @@ msgstr "PĹ™eklad:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" +"ÄŚeskĂ˝ pĹ™eklad\n" "Stanislav Brabec\n" -"e-mail: utx@penguin.cz\n" +"E-mail: utx@penguin.cz\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -720,22 +725,30 @@ msgstr "0 Ă— 0: 0 KB" msgid "Scanned pages: " msgstr "SkenovanĂ© stránky: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "Text e-mailu:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "PĹ™Ălohy:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Stav projektu:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" msgstr "Typ souboru obrázku v poštÄ›:" +#. TEXT_PAGES +msgid "Pages:" +msgstr "Stránek:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Typ vĂcestránkovĂ©ho souboru:" + #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" msgstr "Název mĂ©dia:" @@ -848,6 +861,10 @@ msgstr "Zelená gama tiskárny:" msgid "Printer gamma blue:" msgstr "Modrá gama tiskárny:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "VytvoĹ™it zlib komprimovanĂ˝ postscript (ps level 3) pro tisk" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "PomocnĂ˝ adresář" @@ -872,6 +889,10 @@ msgstr "Komprese PNG obrázku" msgid "Filename counter length" msgstr "DĂ©lka ÄŤĂtaÄŤe jmĂ©na souboru" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "ĂšroveĹ TIFF ZIP komprese" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Komprese 16bitovĂ˝ch TIFF obrázkĹŻ" @@ -912,10 +933,6 @@ msgstr "Modrá gama náhledu:" msgid "Threshold option:" msgstr "Volba prahu:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "ReĹľim automatickĂ©ho podavaÄŤe dokumentĹŻ:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Náhled rozsahu pipety" @@ -968,6 +985,10 @@ msgstr "Nastavit implicitnĂ program pro:" msgid "Viewer (Postscript):" msgstr "ProhlĂĹľeÄŤ (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "VytvoĹ™it zlib komprimovanĂ˝ postscript (ps level 3) pro fax" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server:" @@ -976,14 +997,26 @@ msgstr "SMTP server:" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Od:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "OdpovÄ›dÄ›t na:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "OvěřovánĂ pošty" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "UĹľivatel:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "Heslo:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -992,18 +1025,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 uĹľivatel:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 heslo:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "ProhlĂĹľeÄŤ (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "PĹ™Ăkaz OCR:" @@ -1047,9 +1068,9 @@ msgstr "novĂ© mĂ©dium" msgid "Save" msgstr "Zápis" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Obrázek" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Typ souboru" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1059,9 +1080,9 @@ msgstr "KopĂrovánĂ" msgid "Fax" msgstr "FaxovánĂ" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Pošta" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "E-mail" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1075,9 +1096,9 @@ msgstr "ZobrazovánĂ" msgid "Enhancement" msgstr "VylepšenĂ" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "VĂcestránkovĂ˝" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1221,7 +1242,11 @@ msgstr "Komprese JPEG DCT" #. MENU_ITEM_TIFF_COMP_PACKBITS msgid "pack bits" -msgstr "bitovĂ© pakovánĂ" +msgstr "pakovánĂ bitĹŻ" + +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "deflaÄŤnĂ" #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" @@ -1287,6 +1312,26 @@ msgstr "PĹ™esunout poloĹľku výš" msgid "Move item down" msgstr "PĹ™esunout poloĹľku nĂĹľ" +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "bez ověřovánĂ" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 pĹ™ed SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP obyÄŤejnĂ©" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP pĹ™ihlášenĂ" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skenuje se" @@ -1296,6 +1341,10 @@ msgstr "Skenuje se" msgid "Receiving %s data" msgstr "PĹ™ijĂmajĂ se data typu %s" +#. PROGRESS_PAGE +msgid "page" +msgstr "stránka" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Obrázek se pĹ™enášĂ" @@ -1358,11 +1407,11 @@ msgstr "Zrušit náhledovĂ˝ sken <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"uloĹľit-<Ctrl-s>, zobrazit-<Ctrl-v>, fotokopie-<Ctrl-c>, fax-<Ctrl-f> nebo " -"pošta-<Ctrl-m>" +"prohlĂĹľeÄŤ-<Ctrl-v>, zápis-<Ctrl-s>, kopie-<Ctrl-c>, vĂcestránkovĂ˝-<Ctrl-m>, " +"fax-<Ctrl-f> nebo pošta-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1408,26 +1457,34 @@ 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_MAILPROJECT -msgid "Enter name of mail project" -msgstr "ZadánĂ jmĂ©na poštovnĂho projektu" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "Zadejte jmĂ©no poštovnĂho projektu" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "Zadejte novĂ© jmĂ©no obrázku do pošty" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" msgstr "Zadejte e-mailovou adresu" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "Zadejte pĹ™edmÄ›t zprávy" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Zvolte typ vĂcestránkovĂ©ho souboru" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Zadejte novĂ© jmĂ©no pro pĹ™edvolenou oblast" @@ -1648,19 +1705,27 @@ msgstr "Posun od spodnĂho okraje papĂru do tisknutelnĂ© plochy" #. DESC_PRINTER_GAMMA msgid "Additional gamma value for photocopy" -msgstr "DodateÄŤná gama hodnota pro fotokopii" +msgstr "DodateÄŤná gama hodnota pro kopĂrovánĂ" #. DESC_PRINTER_GAMMA_RED msgid "Additional gamma value for red component for photocopy" -msgstr "DodateÄŤná gama hodnota pro ÄŤervenou komponentu pro fotokopii" +msgstr "DodateÄŤná gama hodnota pro ÄŤervenou komponentu pro kopĂrovánĂ" #. DESC_PRINTER_GAMMA_GREEN msgid "Additional gamma value for green component for photocopy" -msgstr "DodateÄŤná gama hodnota pro zelenou komponentu pro fotokopii" +msgstr "DodateÄŤná gama hodnota pro zelenou komponentu pro kopĂrovánĂ" #. DESC_PRINTER_GAMMA_BLUE msgid "Additional gamma value for blue component for photocopy" -msgstr "DodateÄŤná gama hodnota pro modrou komponentu pro fotokopii" +msgstr "DodateÄŤná gama hodnota pro modrou komponentu pro kopĂrovánĂ" + +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"VytvoĹ™it zlib komprimovanĂ˝ postscript obrázek pro tisk (flat dekĂłdovánĂ).\n" +"Tiskárna musĂ podporovat postscript level 3!" #. DESC_TMP_PATH msgid "Path to temp directory" @@ -1685,6 +1750,10 @@ msgstr "Komprese, je-li obrázek zapisován jako png" msgid "Minimum length of counter in filename" msgstr "MinimálnĂ dĂ©lka ÄŤĂtaÄŤe ve jmĂ©nu souboru" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "ĂšroveĹ komprese pro ZIP komprimovanĂ© TIFF (deflaÄŤnĂ)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Typ komprese, je-li obrázek zapisován jako 16bitovĂ˝ TIFF" @@ -1712,6 +1781,18 @@ msgid "" msgstr "" "Je-li ÄŤĂtaÄŤ souborĹŻ automaticky zvÄ›tšován, pouĹľitá ÄŤĂsla jsou pĹ™eskoÄŤena" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "komprimovat PDF obrázek algoritmem zlib (flat dekĂłdovánĂ)." + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1823,13 +1904,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "Posun, kterĂ˝ nastavĂ shodnĂ˝ rozsah prahĹŻ XSane a rozsah prahĹŻ skeneru" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"VĂ˝bÄ›r skenovacĂho zdroje pro automatickĂ˝ podavaÄŤ dokumentĹŻ. Je-li zvolen, " -"XSane skenuje, dokud nenastane stav \"došel papĂr\" nebo chyba." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "PoÄŤest stránek k oskenovánĂ" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1883,6 +1960,10 @@ 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)" +msgstr "VytvoĹ™it zlib komprimovanĂ˝ postscript pro fax (flat dekĂłdovánĂ)" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP adresa nebo domĂ©na SMTP serveru" @@ -1891,17 +1972,25 @@ msgstr "IP adresa nebo domĂ©na SMTP serveru" msgid "port to connect to SMTP server" msgstr "port pro spojenĂ se SMTP serverem" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "zadejte svou e-mailovou adresu" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" msgstr "zadejte svou e-mailovou adresu pro odpovÄ›di" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "Authentifikace na POP3 serveru pĹ™ed odeslánĂm mailu" +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Typ ověřovánĂ pĹ™ed odeslánĂm e-mailu" + +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "uĹľivatelskĂ© jmĂ©no pro poštovnĂ server" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "heslo pro poštovnĂ server" #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" @@ -1911,21 +2000,9 @@ msgstr "IP adresa nebo jmĂ©no domĂ©na POP3 serveru" msgid "port to connect to POP3 server" msgstr "port pro pĹ™ipojenĂ k POP3 serveru" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "uĹľivatelskĂ© jmĂ©no pro POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "heslo pro POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "ZadánĂ pĹ™Ăkazu, kterĂ˝ má bĂ˝t vyvolán pĹ™i zobrazenĂ obrázku v mailu" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" -msgstr "Mail je posĂlán v reĹľimu html, umĂstÄ›te obrázky pomocĂ: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" +msgstr "E-mail je posĂlán v reĹľimu html, umĂstÄ›te obrázek pomocĂ: <IMAGE>" #. DESC_OCR_COMMAND msgid "Enter command to start ocr program" @@ -2145,8 +2222,12 @@ msgid "Filename too long" msgstr "JmĂ©no souboru je pĹ™Ăliš dlouhĂ©" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Nelze vytvoĹ™it doÄŤasnĂ˝ soubor" +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" @@ -2269,10 +2350,6 @@ msgstr "SpuštÄ›nĂ faxovĂ©ho prohlĂĹľeÄŤe selhalo" msgid "Failed to execute fax command:" msgstr "SpuštÄ›nĂ faxovĂ©ho pĹ™Ăkazu selhalo:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "SpuštÄ›nĂ prohlĂĹľeÄŤe obrázkĹŻ v poštÄ› selhalo" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "SpuštÄ›nĂ ocr pĹ™Ăkazu selhalo:" @@ -2322,14 +2399,6 @@ msgstr "Náhled nepodporuje bitovou hloubku" msgid "GIMP support missing" msgstr "ChybĂ podpora programu GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Nelze vytvoĹ™it pracovnĂ náhledovĂ© soubory" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Nelze vytvoĹ™it jmĂ©na náhledovĂ˝ch souborĹŻ" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Nelze vytvoĹ™it faxovĂ˝ projekt" @@ -2458,8 +2527,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2492,8 +2562,9 @@ msgstr "" " -V, --viewer spustĂ se v reĹľimu prohlĂĹľeÄŤe (implicitnĂ)\n" " -s, --save spustĂ se v reĹľimu zápisu\n" " -c, --copy spustĂ se v reĹľimu kopĂrovánĂ\n" +" -m, --multipage spustĂ se s aktivnĂm vĂcestránkovĂ˝m reĹľimem\n" " -f, --fax spustĂ se v reĹľimu faxovánĂ\n" -" -m, --mail spustĂ se v reĹľimu pošty\n" +" -e, --email spustĂ se v reĹľimu pošty\n" " -n, --no-mode-selection zakáže menu volby reĹľimu XSane\n" "\n" " -F, --Fixed pouĹľije pevnou velikost hlavnĂho okna\n" @@ -2674,66 +2745,74 @@ msgstr "Konica negativnĂ VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negativnĂ HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "PoštovnĂ projekt nebyl vytvoĹ™en" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt nebyl vytvoĹ™en" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "PoštovnĂ projekt byl vytvoĹ™en" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt byl vytvoĹ™en" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "PoštovnĂ projekt byl zmÄ›nÄ›n" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt byl zmÄ›nÄ›n" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "Chyba pĹ™i ÄŤtenĂ poštovnĂho projektu" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Chyba pĹ™i ÄŤtenĂ projektu" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Chyba pĹ™i zápisu souboru" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Soubor se zapisuje" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "PĹ™edÄŤasnĂ© ukonÄŤenĂ zápisu souboru" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Soubor byl uloĹľen" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3 spojenĂ selhalo" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3 pĹ™ihlášenĂ selhalo" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP ověřovánĂ selhalo" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP spojenĂ selhalo" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "PoloĹľka Od byla odmĂtnuta" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "ZadánĂ pĹ™Ăjemce bylo odmĂtnuto" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "Data zprávy byla odmĂtnuta" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "Data zprávy nebyla pĹ™ijata" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "Zpráva se posĂlá" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "Zpráva byla odeslána" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "FaxovĂ˝ projekt nebyl vytvoĹ™en" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "FaxovĂ˝ projekt byl vytvoĹ™en" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "FaxovĂ˝ projekt byl zmÄ›nÄ›n" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Fax se pĹ™idává do fronty" @@ -2796,3 +2875,87 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Nelze vytvoĹ™it pracovnĂ náhledovĂ© soubory" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Nelze vytvoĹ™it jmĂ©na náhledovĂ˝ch souborĹŻ" + +#~ msgid "XSane mode" +#~ msgstr "ReĹľim XSane" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 uĹľivatel:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 heslo:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "ReĹľim automatickĂ©ho podavaÄŤe dokumentĹŻ:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "VĂ˝bÄ›r skenovacĂho zdroje pro automatickĂ˝ podavaÄŤ dokumentĹŻ. Je-li zvolen, " +#~ "XSane skenuje, dokud nenastane stav \"došel papĂr\" nebo chyba." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "PoštovnĂ projekt nebyl vytvoĹ™en" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "PoštovnĂ projekt byl vytvoĹ™en" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "PoštovnĂ projekt byl zmÄ›nÄ›n" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "PoštovnĂ projekt nebyl vytvoĹ™en" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "PoštovnĂ projekt byl vytvoĹ™en" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "PoštovnĂ projekt byl zmÄ›nÄ›n" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Chyba pĹ™i ÄŤtenĂ poštovnĂho projektu" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Obrázek se zapisuje" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "PoštovnĂ projekt byl vytvoĹ™en" + +#~ msgid "Image" +#~ msgstr "Obrázek" + +#~ msgid "Viewer (png):" +#~ msgstr "ProhlĂĹľeÄŤ (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "ZadánĂ pĹ™Ăkazu, kterĂ˝ má bĂ˝t vyvolán pĹ™i zobrazenĂ obrázku v mailu" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "SpuštÄ›nĂ prohlĂĹľeÄŤe obrázkĹŻ v poštÄ› selhalo" + +#~ msgid "Step" +#~ msgstr "Krok" + +#~ msgid "Mail" +#~ msgstr "Pošta" Binary files differ@@ -5,15 +5,15 @@ # msgid "" msgstr "" -"Project-Id-Version: XSANE 0.98\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2005-10-29 23:51+0200\n" +"Project-Id-Version: XSANE 0.99\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-31 04:36+0100\n" "Last-Translator: Mogens Jaeger <mogensjaeger@get2net.dk>\n" "Language-Team: Danish <dansk@klid.dk>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.10\n" +"X-Generator: KBabel 1.10.2\n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR @@ -81,17 +81,21 @@ msgstr "omdøb fax side" msgid "insert ps-file into fax" msgstr "indsæt ps-fil i fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "mail projekt" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-post projekt" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" -msgstr "omdøb mailbillede" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "omdøb e-post billede" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" -msgstr "indsæt fil i mail" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "indsæt fil i e-post" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "flerside projekt" #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -381,6 +385,10 @@ msgstr "Dan projekt" msgid "Send project" msgstr "Send projekt" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Gem flersidefil" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Slet projekt" @@ -421,9 +429,9 @@ msgstr "Fasthold skalering" msgid "Fine mode" msgstr "Fin tilstand" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "HTML-mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML e-post" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" @@ -437,6 +445,14 @@ msgstr "Overskriv advarsel" msgid "Skip existing filenames" msgstr "Drop eksisterende filnavne" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Gem postscript zlib-komprimeret (ps level 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Gem PDF zlib-komprimeret" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Gem 16 bit pnm i ascii format" @@ -469,10 +485,6 @@ msgstr "Automatisk valg af skanningsomrĂĄde" msgid "Autocorrect colors" msgstr "AutooptimĂ©r farver" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 godkendelse" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Brug GUI fremskridtsrør" @@ -489,14 +501,6 @@ msgstr "Enheder til rĂĄdighed:" msgid "XSane options" msgstr "XSane indstillinger" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane tilstand" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Skridt" - #. TEXT_FILETYPE msgid "Type" msgstr "Type" @@ -686,9 +690,9 @@ msgstr "" "ENHVER FORM FOR GARANTI, endda uden den underforstĂĄede garanti for\n" "SALGBARHED, eller EGNETHED FOR ET BESTEMT FORMĂ…L\n" -#. TEXT_EMAIL -msgid "Email:" -msgstr "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "E-post:" #. TEXT_HOMEPAGE msgid "Homepage:" @@ -705,16 +709,16 @@ msgstr "Oversættelse:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "ikke-oversat original engelsk tekst\n" "af Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-post: Oliver.Rauch@rauch-domain.de\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -724,21 +728,29 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Skannede sider: " -#. TEXT_MAIL_TEXT -msgid "Email text:" -msgstr "Email tekst:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "E-post tekst:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Vedhæftninger:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Projektstatus:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "Mailbillede filtype:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "E-post billede filtype:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Sider:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Flerside-dokument filtype:" #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" @@ -852,6 +864,10 @@ msgstr "Printers gammaværdi i grøn:" msgid "Printer gamma blue:" msgstr "Printers gammaværdi i blĂĄ:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "Dan zlib-komprimeret postscript-billede (ps level 3) til udskrivning" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Midlertidigt bibliotek" @@ -876,6 +892,10 @@ msgstr "PNG billedkompression" msgid "Filename counter length" msgstr "Filnavn tællerlængde" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zlib-komprimeringsgrad" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16 bit billedekompression" @@ -916,13 +936,9 @@ msgstr "ForhĂĄndsvisning gamma blĂĄ:" msgid "Threshold option:" msgstr "Grænseværdi-indstilling:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Automatisk dokumentfødningstilstand:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" -msgstr "ForhĂĄndsvisning pipetteomrĂĄde" +msgstr "ForhĂĄndsvisnings pipetteomrĂĄde" #. TEXT_SETUP_THRESHOLD_MIN msgid "Threshold minimum:" @@ -972,6 +988,10 @@ msgstr "Sæt program standardværdier for:" msgid "Viewer (Postscript):" msgstr "Viser (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "Dan zlib-komprimeret postscript-billede (ps level 3) til fax" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server:" @@ -980,14 +1000,26 @@ msgstr "SMTP server:" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Fra:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Svar til:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "E-post godkendelse" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "Bruger:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "Password:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -996,18 +1028,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 bruger:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 password:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Viser (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Tekstgenkendelses-kommando:" @@ -1051,9 +1071,9 @@ msgstr "nyt medie" msgid "Save" msgstr "Gem" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Billede" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Filtype" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1063,9 +1083,9 @@ msgstr "Kopi" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "E-post" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1079,9 +1099,9 @@ msgstr "Skærm" msgid "Enhancement" msgstr "Forbedring" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Email" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Flerside" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1227,6 +1247,10 @@ msgstr "JPEG DCT kompression" msgid "pack bits" msgstr "pakkede bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "komprimeret" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Skyder instilling (skala)" @@ -1291,6 +1315,26 @@ msgstr "Flyt punkt op" msgid "Move item down" msgstr "Flyt punkt ned" +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "ingen godkendelse" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 før SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP almen" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP logind" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skanning" @@ -1300,6 +1344,10 @@ msgstr "Skanning" msgid "Receiving %s data" msgstr "Modtager %s data" +#. PROGRESS_PAGE +msgid "page" +msgstr "side" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Overfører billede" @@ -1362,11 +1410,11 @@ msgstr "Afbryd skan forhĂĄndsvisning <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"gem-<Ctrl-s>, vis-<Ctrl-v>, fotokopier-<Ctrl-c>, fax-<Ctrl-f> eller mail-" -"<Ctrl-m>" +"viser-<Ctrl-v>, gem-<Ctrl-s>, fotokopi-<Ctrl-c>, flerside-<Ctrl-m>, fax-" +"<Ctrl-f> eller e-post-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1414,26 +1462,34 @@ msgstr "Angiv nyt navn for fax side" msgid "Enter receiver phone number or address" msgstr "Angiv modtager telefonnummer eller adresse" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" -msgstr "Angiv navn pĂĄ mail projekt" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "Angiv navn pĂĄ e-post projekt" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" -msgstr "Angiv nyt navn pĂĄ mail billede" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "Angiv nyt navn pĂĄ e-post billede" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "Angiv email adresse" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "Angiv e-post adresse" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" -msgstr "Angiv subjekt for email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "Angiv subjekt for e-post" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Vælg filtype for flerside fil" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Angiv nyt navn pĂĄ forvalgt omrĂĄde" @@ -1665,6 +1721,14 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Dan zlib-komprimeret postscript billede til printer (flatdecode).\n" +"Printeren skal kunne hĂĄndtere postscript level 3!" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Sti til midlertidigt bibliotek" @@ -1688,6 +1752,10 @@ msgstr "Kompression hvis billedet gemmes som png" msgid "Minimum length of counter in filename" msgstr "Minimumlængde af tæller i filnavn" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "ZIP-kompressionsgrad nĂĄr billedet gemmes i komprimeret TIFF-format" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Kompressionstype, hvis 16 bit billede gemmes i tiff format" @@ -1713,6 +1781,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 +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "komprimĂ©r PDF-billede med zlib-algoritme (flatdecode)." + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1827,18 +1907,14 @@ msgstr "" "Forskydning, der bringer XSane's og skannerens grænseværdiomrĂĄde i " "overensstemmelse med hinanden" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Vælg skannerkilde til automatisk dokumentføder. Hvis denne skannerkilde er " -"valgt, fortsætter XSane indtil \"out of paper\" eller ved fejl." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Antal sider der skal skannes" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" msgstr "" -"Dimension af det kvadrat, der skal bruges til gennemsnitsfarve med pipette " +"Dimension af det kvadrat, der skal bruges til gennemsnitsfarve med pipette-" "funktionen" #. DESC_DOC_VIEWER @@ -1888,6 +1964,10 @@ 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)" +msgstr "Dan zlib-komprimeret postscript billede til fax (flatdecode)" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP adresse eller domain navn pĂĄ SMTP server" @@ -1896,17 +1976,25 @@ msgstr "IP adresse eller domain navn pĂĄ SMTP server" msgid "port to connect to SMTP server" msgstr "port til forbindelse til SMTP server" -#. DESC_MAIL_FROM -msgid "enter your email address" -msgstr "Angiv din email adresse" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "Angiv din e-post adresse" + +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "Angiv e-post adresse til svar e-post" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "Angiv email adresse til svar emails" +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Godkendelsestype før e-post sendes" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "Godkendelse af POP3 server, før mail sendes" +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "brugernavn til e-post server" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "password til e-post server" #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" @@ -1916,21 +2004,9 @@ msgstr "IP adresse eller domain navn pĂĄ POP3 server" msgid "port to connect to POP3 server" msgstr "port til forbindelse til POP3 server" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "brugernavn til POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "password til POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Komando der skal udføres, for at vise mailbilleder" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" -msgstr "Mail er sendt i HTML tilstand, placĂ©r billede med: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" +msgstr "E-post er sendt i html tilstand, placĂ©r billede med: <IMAGE>" #. DESC_OCR_COMMAND msgid "Enter command to start ocr program" @@ -2153,8 +2229,12 @@ msgid "Filename too long" msgstr "Filnavn er for langt" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Kunne ikke skabe midlertidig fil" +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" @@ -2277,10 +2357,6 @@ msgstr "Kunne ikke udføre fax-viser:" msgid "Failed to execute fax command:" msgstr "Kunne ikke udføre fax kommando:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Kunne ikke udføre mail billede viser:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Kunne ikke udføre tekstgenkendelses kommando:" @@ -2330,14 +2406,6 @@ msgstr "ForhĂĄndsvisning kan ikke hĂĄndtere bitdybde" msgid "GIMP support missing" msgstr "GIMP understøttelse mangler" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Kunne ikke danne midlertidig forhĂĄndsvisningsfiler" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Kunne ikke danne filnavne til forhĂĄndsvisningsfiler" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Kunne ikke danne fax-projekt" @@ -2465,8 +2533,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2488,9 +2557,9 @@ msgstr "" "\n" "Formatet af [ENHED] er bagendenavn:enhedsfil (f.eks. umax:/dev/scanner).\n" "[INDSTILLING]... Kan være en kombination af de følgende punkter:\n" -" -h, --hjælp vis denne hjælpe meddelelse og afslut\n" -" -v, --version print version information\n" -" -l, --licens print licens information\n" +" -h, --hjælp vis denne hjælpemeddelelse og afslut\n" +" -v, --version print versioninformation\n" +" -l, --licens print licensinformation\n" "\n" " -d, --device-settings file hent enheds indstillinger fra fil (uden \".drc" "\")\n" @@ -2499,8 +2568,9 @@ msgstr "" " -s, --save start med gem-tilstand aktiveret\n" " -c, --copy start med kopi-tilstand aktiveret\n" " -f, --fax start med fax-tilstand aktiveret\n" -" -m, --mail start med mail-tilstand aktiveret\n" -" -n, --no-mode-selection deaktiver menu for XSane tilstand markering\n" +" -m, -- flerside start med flerside-tilstand aktiv\n" +" -e, --email start med e-post-tilstand aktiveret\n" +" -n, --no-mode-selection deaktivĂ©r menu for XSane tilstand markering\n" "\n" " -F, --Fixed fast hovedvindues størrelse (overskriv " "præference værdier)\n" @@ -2508,12 +2578,12 @@ msgstr "" "præference værdier)\n" "\n" " -p, --print-filenames print billedfilnavne dannet af XSane\n" -" -N, --force-filename name tving filenavne og deaktiver bruger filenavne " -"valg\n" +" -N, --force-filename name tving filenavne og deaktivĂ©r bruger " +"filnavnevalg\n" "\n" -" --display X11-display omdirriger uddata til X11-display\n" +" --display X11-display omdiriger uddata til X11-display\n" " --no-xshm brug ingen delt ram billeder\n" -" --sync kræver en synkron forbindelse til X11 server" +" --sync kræver en synkron forbindelse til X11 serveren" #. strings for gimp plugin #. XSANE_GIMP_INSTALL_BLURB @@ -2678,65 +2748,73 @@ msgstr "Konica negativ VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negativ HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Mail projekt ikke oprettet" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt ikke dannet" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt dannet" + +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt ændret" + +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Fejl ved læsning af projekt" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Fejl ved gemning af fil" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Mail projekt oprettet" +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Gemmer fil" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Mail projekt ændret" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Afbrudt gemning af fil" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "Fejl ved læsning af mail projekt" +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Fil er blevet gemt" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" -msgstr "POP3 tilslutning lykkedes ikke" +msgstr "POP3 tilslutning mislykkedes" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" -msgstr "POP3 logind lykkedes ikke" +msgstr "POP3 logind mislykkedes" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP godkendelse mislykkedes" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" -msgstr "SMTP tilslutning lykkedes ikke" +msgstr "SMTP tilslutning mislykkedes" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Fra indtastningen ikke accepteret" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Modtager indtastningen ikke accepteret" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "Mail data ikke accepteret" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "Sender mail" - -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "Mail er blevet sendt" - -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Fax projekt ikke oprettet" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "E-post data ikke accepteret" -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Fax projekt oprettet" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "Sender e-post" -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Fax projekt ændret" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "E-post er blevet sendt" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2800,3 +2878,12 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Kunne ikke danne midlertidig forhĂĄndsvisningsfiler" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Kunne ikke danne filnavne til forhĂĄndsvisningsfiler" Binary files differ@@ -4,8 +4,8 @@ # msgid "" msgstr "" -"Project-Id-Version: XSANE 0.98\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"Project-Id-Version: XSANE 0.99\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2000-01-21 15:51+01:00\n" "Last-Translator: Oliver Rauch <Oliver.Rauch@rauch-domain.de>\n" "Language-Team: German <de@li.org>\n" @@ -79,18 +79,22 @@ msgstr "Faxseite umbenennen" msgid "insert ps-file into fax" msgstr "ps-Datei einfĂĽgen in Fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "Mailprojekt" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-Mail Projekt" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "E-Mail Bild umbenennen" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. 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_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Bereichsvoreinstellung umbenennen" @@ -379,6 +383,10 @@ msgstr "Projekt erstellen" 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" @@ -419,9 +427,9 @@ msgstr "Verbinde Skalierung" msgid "Fine mode" msgstr "Fein-Modus" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML E-Mail" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" @@ -435,6 +443,14 @@ msgstr "Ăśberschreibwarnung" msgid "Skip existing filenames" msgstr "Existierende Dateinamen ĂĽberspringen" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Speichere Postscript zlib-komprimiert (ps level 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +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" @@ -467,10 +483,6 @@ msgstr "Scanbereich automatisch wählen" msgid "Autocorrect colors" msgstr "Automatische Farbkorrektur" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3-Authentifizierung" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Benutze GUI Fortschritts Pipe" @@ -487,14 +499,6 @@ msgstr "Erreichbare Geräte:" msgid "XSane options" msgstr "XSane Optionen" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane Modus" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Schritt" - #. TEXT_FILETYPE msgid "Type" msgstr "Typ" @@ -685,8 +689,8 @@ msgstr "" "- sogar ohne die implizite Gewährleistung der MARKTREIFE oder der\n" "EIGNUNG FĂśR EINEN BESTIMMTEN ZWECK.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "E-Mail:" #. TEXT_HOMEPAGE @@ -704,16 +708,16 @@ msgstr "Ăśbersetzung:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Ăśbersetzung ins Deutsche\n" "von Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-Mail: Oliver.Rauch@rauch-domain.de\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -723,21 +727,29 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "gescannte Seiten: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "E-Mail Text:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Anhang:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Projekt Status:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "" +#. 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:" @@ -851,6 +863,10 @@ msgstr "Drucker Gammawert grĂĽn:" msgid "Printer gamma blue:" msgstr "Drucker Gammawert blau:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +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" @@ -875,6 +891,10 @@ msgstr "PNG Bildkompression" 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" @@ -915,10 +935,6 @@ msgstr "Vorschau Gamma blau:" msgid "Threshold option:" msgstr "Schwellwert Option:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Modus automatischer Dokumenteneinzug:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Vorschau Bereich Pipette" @@ -971,22 +987,38 @@ msgstr "Setze Standardwerte fĂĽr folgendes Programm" msgid "Viewer (Postscript):" msgstr "Betrachter (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +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 Server:" +msgstr "SMTP Port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Von:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. 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:" @@ -995,18 +1027,6 @@ msgstr "POP3-Server:" msgid "POP3 port:" msgstr "POP3-Port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3-Benutzer:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3-Passwort:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Betrachter (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR Befehl:" @@ -1044,26 +1064,26 @@ msgid "all" msgstr "Alle" msgid "new media" -msgstr "" +msgstr "neues Medium" #. NOTEBOOK_SAVING_OPTIONS msgid "Save" msgstr "Speichern" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Bild" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Dateityp" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" -msgstr "Photokopie" +msgstr "Fotokopie" #. NOTEBOOK_FAX_OPTIONS msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" msgstr "E-Mail" #. NOTEBOOK_OCR_OPTIONS @@ -1078,9 +1098,9 @@ msgstr "Darstellung" msgid "Enhancement" msgstr "Verbesserungen" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-Mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Mehrseitig" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1226,6 +1246,10 @@ msgstr "JPEG DCT Kompression" 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)" @@ -1290,6 +1314,26 @@ msgstr "Eintrag nach oben schieben" 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" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Scanne" @@ -1299,6 +1343,10 @@ msgstr "Scanne" msgid "Receiving %s data" msgstr "Empfange %s Daten" +#. PROGRESS_PAGE +msgid "page" +msgstr "Seite" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Bild ĂĽbertragen" @@ -1361,11 +1409,11 @@ msgstr "Vorschauscan abbrechen <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"speichern-<Ctrl-s>, betrachten-<Ctrl-v>, kopieren-<Ctrl-c>, faxen-<Ctrl-f> " -"oder mailen-<Ctrl-m>" +"Betrachter-<Strg-v>, speichern-<Strg-s> kopieren-<Strg-c>, Mehrseiten-<Strg-" +"m>, Fax-<Strg-f> oder E-Mail-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1413,25 +1461,33 @@ msgstr "Name der Faxseite eingeben" msgid "Enter receiver phone number or address" msgstr "Telefonnummer des Empfängers eingeben" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" -msgstr "Name des Mailprojekts" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "Name des E-Mailprojekts" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "neuen Name fĂĽr E-Mail Bild eingeben" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "EMail Adresse eingeben" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "E-Mail Adresse eingeben" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" -msgstr "Betreff eingeben" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "Betreff der E-Mail eingeben" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" -msgstr "" +msgstr "Dateityp fĂĽr E-Mailanhang auswählen" + +#. DESC_MULTIPAGE_PROJECT +msgid "Enter name of multipage project" +msgstr "Name des mehrseitigen Projekts eingeben" + +#. 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" @@ -1654,19 +1710,27 @@ msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs" #. DESC_PRINTER_GAMMA msgid "Additional gamma value for photocopy" -msgstr "Zusätzlicher Gammawert beim Photokopieren" +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 Photokopieren" +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 Photokopieren" +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 Photokopieren" +msgstr "Zusätzlicher Gammawert fĂĽr blaue Komponente beim Fotokopieren" + +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\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" @@ -1691,6 +1755,11 @@ msgstr "Kompression wenn Bild im PNG-Format gespeichert wird" 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" @@ -1720,6 +1789,18 @@ msgstr "" "Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte " "Dateinummern ĂĽbersprungen" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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 " +"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_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1837,14 +1918,9 @@ msgstr "" "Schwellwertverschiebung um XSane's Schwellwertbereich und den " "Schwellwertbereich des Scanners aufeinander abzustimmen" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Scanquelle fĂĽr automatischen Dokumenteneinzug auswählen. Wenn diese " -"Scanquelle angewählt ist, scannt XSane bis \"kein Papier\" oder ein Fehler " -"auftritt." +#. 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" @@ -1904,6 +1980,10 @@ 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_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP Adresse oder Domain Name des SMTP Servers" @@ -1912,18 +1992,25 @@ msgstr "IP Adresse oder Domain Name des SMTP Servers" msgid "port to connect to SMTP server" msgstr "Port, auf dem zum SMTP Server verbunden werden soll" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "Geben Sie Ihre E-Mail Adresse ein" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "Geben Sie die E-Mail Adresse fĂĽr Antworten auf diese Mail 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_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "" -"Authentifizierung ĂĽber POP3-Server durchfĂĽhren bevor mail gesendet wird" +#. 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" @@ -1933,20 +2020,8 @@ msgstr "IP Adresse oder Domain Name des POP3-Servers" msgid "port to connect to POP3 server" msgstr "Port, auf dem zum POP3-Server verbunden werden soll" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "Benuter Name fĂĽr den POP3-Server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "Passwort fĂĽr den POP3-Server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Befehl, der ausgefĂĽhrt werden soll, um Mail-Bilder anzuzeigen" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "E-Mail wird im hmtl Modus gesandt, Bild platzieren mit: <IMAGE>" #. DESC_OCR_COMMAND @@ -2171,8 +2246,16 @@ msgid "Filename too long" msgstr "Dateiname zu lang" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Konnte temporäre Datei nicht erzeugen" +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" @@ -2266,7 +2349,7 @@ msgstr "LIBJPEG meldet Fehler" #. ERR_ZLIB msgid "ZLIB error or memory allocation problem" -msgstr "" +msgstr "ZLIB Fehler oder zu wenig Speicher" #. ERR_UNKNOWN_TYPE msgid "unknown type" @@ -2297,10 +2380,6 @@ msgstr "Konnte Faxbetrachter nicht ausfĂĽhren:" msgid "Failed to execute fax command:" msgstr "Konnte Faxbefehl nicht ausfĂĽhren:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Konnte E-Mail Bildbetrachter nicht ausfĂĽhren:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Konnte OCR-Befehl nicht ausfĂĽhren:" @@ -2350,14 +2429,6 @@ msgstr "Vorschau kann Bittiefe nicht handhaben:" msgid "GIMP support missing" msgstr "GIMP UnterstĂĽtzung fehlt" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Konnte temporäre Vorschaudateien nicht erzeugen" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Konnte Dateinamen fĂĽr Vorschaudateien nicht erzeugen" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Konnte Faxprojekt nicht erstellen" @@ -2487,8 +2558,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2518,8 +2590,9 @@ msgstr "" " -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" -" -m, --mail starte im E-Mailmodus\n" +" -e, --email starte im E-Mailmodus\n" " -n, --no-mode-selection deaktiviere Modusauswahl\n" "\n" " -F, --Fixed Hauptfenstergröße ist fest\n" @@ -2697,65 +2770,73 @@ msgstr "Konica Negativ VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann Negativ HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Mail-Projekt nicht erstellt" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt nicht erstellt" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Mail-Projekt erstellt" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt erstellt" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Mail-Projekt geändert" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt geändert" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "Fehler beim Lesen des Mailprojekts" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Fehler beim Lesen des Projekts" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. 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_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3-Login fehlgeschlagen" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. 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_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Absender Eintrag nicht akzeptiert" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Empfänger Eintrag nicht akzeptiert" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "Mail Daten nicht akzeptiert" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "Mail wird gesendet" - -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "Mail wurde gesendet" - -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Fax-Projekt nicht erstellt" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "E-Mail Daten nicht akzeptiert" -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Fax-Projekt erstellt" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "E-Mail wird gesendet" -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Fax-Projekt geändert" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "E-Mail wurde gesendet" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2776,7 +2857,7 @@ msgid "handheld scanner" msgstr "Handscanner" msgid "still camera" -msgstr "Photokamera" +msgstr "Fotokamera" msgid "video camera" msgstr "Videokamera" Binary files differ@@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-08-22 19:15GMT\n" "Last-Translator: Gustavo D. Vranjes <gvranjes@SoftHome.net>\n" "Language-Team: Castellano <es@li.org>\n" @@ -82,18 +82,26 @@ msgstr "renombrar página de fax" msgid "insert ps-file into fax" msgstr "insertar archivo-ps dentro de fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "proyecto de correo electrĂłnico" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "renombrar imagen de correo electrĂłnico" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "insertar archivo dentro de correo electrĂłnico" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Borrar proyecto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renombrar area de preset" @@ -382,6 +390,11 @@ msgstr "Crear proyecto" msgid "Send project" msgstr "Enviar proyecto" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Guardar imagen" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Borrar proyecto" @@ -422,8 +435,9 @@ msgstr "Atar escala" msgid "Fine mode" msgstr "Modo fino" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "Correo electrĂłnico HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -438,6 +452,14 @@ msgstr "Advertencia de sobreescritura" msgid "Skip existing filenames" msgstr "Omitir nombres de archivos existentes" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Guardar 16bit pnm en formato ascii" @@ -470,10 +492,6 @@ msgstr "Preseleccionar área de escaneado" msgid "Autocorrect colors" msgstr "Autocorregir colores" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "AutentificaciĂłn POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Usar progreso de tuberĂa GUI " @@ -490,14 +508,6 @@ msgstr "Dispositivos disponibles:" msgid "XSane options" msgstr "Opciones de XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Modo de XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Paso" - #. TEXT_FILETYPE msgid "Type" msgstr "Tipo" @@ -688,8 +698,9 @@ msgstr "" "SIN NINGUNA GARANTĂŤA; aĂşn sin la garantĂa implĂcita de\n" "MERCANTILISMO o AJUSTE PARA ALGĂšN PROPĂ“SITO PARTICULAR\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "Correo electrĂłnico:" #. TEXT_HOMEPAGE @@ -707,12 +718,13 @@ msgstr "TraducciĂłn:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "texto traducido al castellano\n" "por Gustavo D. Vranjes\n" @@ -726,20 +738,32 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Páginas escaneadas:" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Texto de correo electrĂłnico:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Adjuntos:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Estado del proyecto:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Tipo de archivo de imagen de correo electrĂłnico" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Uso:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Tipo de archivo de imagen de correo electrĂłnico" #. TEXT_MEDIUM_DEFINITION_NAME @@ -854,6 +878,10 @@ msgstr "Gamma verde de impresora:" msgid "Printer gamma blue:" msgstr "Gamma azul de impresora:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Directorio temporal" @@ -878,6 +906,11 @@ msgstr "CompresiĂłn de imagen PNG" msgid "Filename counter length" msgstr "Largo del contador de nombre de archivo" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "CompresiĂłn de imagen TIFF de 8 bits" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "CompresiĂłn de imagen TIFF de 16 bits" @@ -918,10 +951,6 @@ msgstr "Vista previa de gamma azul:" msgid "Threshold option:" msgstr "OpciĂłn de umbral:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "MĂłdulo de AlimentaciĂłn Automática de Documento:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Rango de vista previa de pipeta" @@ -974,6 +1003,10 @@ msgstr "Establecer por defecto para:" msgid "Viewer (Postscript):" msgstr "Visor (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Servidor SMTP:" @@ -982,14 +1015,29 @@ msgstr "Servidor SMTP:" msgid "SMTP port:" msgstr "puerto SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "De:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Responder a:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "AutentificaciĂłn POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Uso:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Contraseña:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Servidor POP3:" @@ -998,18 +1046,6 @@ msgstr "Servidor POP3:" msgid "POP3 port:" msgstr "puerto POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Usuario POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Contraseña POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visor (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Comando OCR:" @@ -1053,9 +1089,10 @@ msgstr "medio nuevo" msgid "Save" msgstr "Guarda imagen" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Imagen" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Archivo" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1065,8 +1102,9 @@ msgstr "Copia a impresora" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" msgstr "Correo electrĂłnico" #. NOTEBOOK_OCR_OPTIONS @@ -1081,9 +1119,9 @@ msgstr "Pantalla" msgid "Enhancement" msgstr "Mejora" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Correo electrĂłnico" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1229,6 +1267,11 @@ msgstr "CompresiĂłn JPEG DCT" msgid "pack bits" msgstr "paquetes de bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "retrasado" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Diapositiva (Escala)" @@ -1293,6 +1336,27 @@ msgstr "Mover item arriba" msgid "Move item down" msgstr "Mover item abajo" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "AutentificaciĂłn POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Escaneando" @@ -1302,6 +1366,11 @@ msgstr "Escaneando" msgid "Receiving %s data" msgstr "Recibiendo datos %s" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "paquete" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Transfiriendo imagen" @@ -1363,9 +1432,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Cancelar vista previa del escaneo <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "guardar-<Ctrl-s>, ver-<Ctrl-v>, fotocopia-<Ctrl-c>, fax-<Ctrl-f> Ăł correo " "electrĂłnico-<Ctrl-m>" @@ -1417,26 +1487,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Ingresar nombre del proyecto de correo electrĂłnico" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Ingresar nuevo nombre para la imagen de correo electrĂłnico" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Ingresar direcciĂłn de correo electrĂłnico" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Ingresar asunto de correo electrĂłnico" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Seleccionar tipo de archivo para imagen adjunta" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Ingresar nuevo nombre para el área de preset" @@ -1673,6 +1757,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Ruta al directorio temporal" @@ -1696,6 +1786,11 @@ msgstr "CompresiĂłn si la imagen es guardada como png" msgid "Minimum length of counter in filename" msgstr "Medida mĂnima del contador en el nombre de archivo" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Tipo de compresiĂłn si la imagen de 8 bits es guardada como tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Tipo de compresiĂłn si la imagen de 16 bits es guardada como tiff" @@ -1725,6 +1820,16 @@ msgstr "" "Si el contador de nombre archivo se incrementa automáticamente, los nĂşmeros " "presentes son salteados" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1852,14 +1957,9 @@ msgstr "" "Desplazamiento para hacer que el rango del umbral de XSane y el rango del " "umbral del escáner sean iguales" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Seleccionar fuente de escaneo para Alimentador de Documentos Automático. Si " -"Ă©sta fuente se selecciona XSane escaneará hasta que ocurra un error \"out of " -"paper\" (sin papel)." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1916,6 +2016,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "DirecciĂłn IP Ăł nombre de Dominio del servidor SMTP" @@ -1924,20 +2028,33 @@ msgstr "DirecciĂłn IP Ăł nombre de Dominio del servidor SMTP" msgid "port to connect to SMTP server" msgstr "puerto a conectar del servidor SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "Ingresar su direcciĂłn de correo electrĂłnico" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "" "Ingresar direcciĂłn de correo electrĂłnico para los correos electrĂłnicos " "respondidos" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentificar en un servidor POP3 antes de enviar el correo electrĂłnico" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "nombre de usuario para el servidor POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "contraseña para el servidor POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "DirecciĂłn IP Ăł nombre de Dominio del servidor POP3" @@ -1946,21 +2063,9 @@ msgstr "DirecciĂłn IP Ăł nombre de Dominio del servidor POP3" msgid "port to connect to POP3 server" msgstr "puerto a conectar al servidor POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "nombre de usuario para el servidor POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "contraseña para el servidor POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "" -"Ingrese comando a ser ejecutado para ver una imagen de correo electrĂłnico" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "" "El correo electrĂłnico se envĂa en modo html, coloque la imagen con: <IMAGE>" @@ -2184,8 +2289,12 @@ msgid "Filename too long" msgstr "Archivo demasiado grande" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "No se puede crear archivos temporales" +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" @@ -2309,10 +2418,6 @@ msgstr "FallĂł al ejecutar visor de fax:" msgid "Failed to execute fax command:" msgstr "FallĂł al ejecutar comando de fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "FallĂł al ejecutar visor de imagen de correo electrĂłnico:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "FallĂł al ejecutar comando de OCR:" @@ -2362,15 +2467,6 @@ msgstr "La vista previa no puede manejar la profundidad de bits" msgid "GIMP support missing" msgstr "No hay soporte de GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "No se puede crear archivos temporales de previsualizaciĂłn" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" -"No se puede crear nombres de archivos para archivos de previsualizaciĂłn" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "No se pudo crear proyecto de fax" @@ -2483,6 +2579,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPCIĂ“N]... [DISPOSITIVO]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2499,8 +2596,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2719,66 +2817,86 @@ msgstr "Negativo Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Negativo Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Proyecto de correo electrĂłnico no creado" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Proyecto de fax no creado" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Proyecto de correo electrĂłnico creado" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Proyecto de fax creado" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Proyecto de correo electrĂłnico cambiado" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Proyecto de fax cambiado" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Error leyendo el proyecto de correo electrĂłnico" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Guardando imagen" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Guardando imagen" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Guardando imagen" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "El correo electrĂłnico se enviĂł" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "FallĂł la conexiĂłn POP3" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "FallĂł el login POP3" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "FallĂł la conexiĂłn SMTP" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "FallĂł la conexiĂłn SMTP" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Datos de entrada no aceptados" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Entrada del receptor no aceptada" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "Datos de correo electrĂłnico no aceptados" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Eviando correo electrĂłnico" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "El correo electrĂłnico se enviĂł" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Proyecto de fax no creado" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Proyecto de fax creado" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Proyecto de fax cambiado" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Poniendo el fax en la cola de envĂo" @@ -2841,3 +2959,94 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "No se puede crear archivos temporales de previsualizaciĂłn" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "" +#~ "No se puede crear nombres de archivos para archivos de previsualizaciĂłn" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "AutentificaciĂłn POP3" + +#~ msgid "XSane mode" +#~ msgstr "Modo de XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Usuario POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "Contraseña POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "MĂłdulo de AlimentaciĂłn Automática de Documento:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Seleccionar fuente de escaneo para Alimentador de Documentos Automático. " +#~ "Si Ă©sta fuente se selecciona XSane escaneará hasta que ocurra un error " +#~ "\"out of paper\" (sin papel)." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Proyecto de correo electrĂłnico no creado" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Proyecto de correo electrĂłnico creado" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Proyecto de correo electrĂłnico cambiado" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Proyecto de correo electrĂłnico no creado" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Proyecto de correo electrĂłnico creado" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Proyecto de correo electrĂłnico cambiado" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Error leyendo el proyecto de correo electrĂłnico" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Guardando imagen" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Proyecto de correo electrĂłnico creado" + +#~ msgid "Image" +#~ msgstr "Imagen" + +#~ msgid "Viewer (png):" +#~ msgstr "Visor (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "" +#~ "Ingrese comando a ser ejecutado para ver una imagen de correo electrĂłnico" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "FallĂł al ejecutar visor de imagen de correo electrĂłnico:" + +#~ msgid "Step" +#~ msgstr "Paso" + +#~ msgid "Mail" +#~ msgstr "Correo electrĂłnico" Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2000-02-09 21:00+01:00\n" "Last-Translator: Laurent Grawet <laurent.grawet@ibelgique.com>\n" "Language-Team: French <fr@li.org>\n" @@ -79,18 +79,26 @@ msgstr "Renommer la page de fax" msgid "insert ps-file into fax" msgstr "Importer un fichier ps dans un fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "Projet e-mail" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "Renommer l'image du message" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "InsĂ©rer un fichier dans le message" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Effacer un projet" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Renommer l'aire de prĂ©sĂ©lection" @@ -379,6 +387,11 @@ msgstr "CrĂ©er un projet" msgid "Send project" msgstr "Envoyer un projet" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Sauver l'image" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Effacer un projet" @@ -419,8 +432,9 @@ msgstr "Garder Ă l'Ă©chelle" msgid "Fine mode" msgstr "Mode fin" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "e-mail HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -435,6 +449,14 @@ msgstr "Avertissement en cas d'Ă©crasement" msgid "Skip existing filenames" msgstr "Sauter les noms de fichiers existants" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Sauver l'image pnm 16 bit en format ascii" @@ -467,10 +489,6 @@ msgstr "PrĂ©sĂ©lection de l'aire de numĂ©risation" msgid "Autocorrect colors" msgstr "Correction automatique des couleurs" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Authentification POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Utilise le \"pipe\" de progression GUI" @@ -487,14 +505,6 @@ msgstr "PĂ©riphĂ©riques disponibles:" msgid "XSane options" msgstr "Options de XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Mode XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Pas" - #. TEXT_FILETYPE msgid "Type" msgstr "Type" @@ -684,8 +694,9 @@ msgstr "" "GARANTIE, sans mĂŞme les garanties de COMMERCIALISATION ou d'ADAPTATION\n" "DANS UN BUT SPECIFIQUE\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "e-mail:" #. TEXT_HOMEPAGE @@ -703,12 +714,13 @@ msgstr "Traduction:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "traduit en français\n" "par Laurent Grawet\n" @@ -722,20 +734,32 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Pages numĂ©risĂ©es:" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Texte de l'e-mail:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Pièces attachĂ©es:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Statut du projet:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Type d'image pour l'e-mail" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Usage:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Type d'image pour l'e-mail" #. TEXT_MEDIUM_DEFINITION_NAME @@ -850,6 +874,10 @@ msgstr "Gamma vert de l'imprimante:" msgid "Printer gamma blue:" msgstr "Gamma bleu de l'imprimante:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "RĂ©pertoire temporaire" @@ -874,6 +902,11 @@ msgstr "Compression des images PNG" msgid "Filename counter length" msgstr "Longueur du compteur de noms de fichiers" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "Compression des images TIFF 8 bit" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Compression des images TIFF 16 bit" @@ -914,10 +947,6 @@ msgstr "Gamma bleu de l'aperçu:" msgid "Threshold option:" msgstr "Option seuil:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Chargeur automatique de documents:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Plage de la pipette de l'aperçu" @@ -970,6 +999,10 @@ msgstr "Options par dĂ©faut pour:" msgid "Viewer (Postscript):" msgstr "Visionneuse (PostScript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Serveur SMTP:" @@ -978,14 +1011,29 @@ msgstr "Serveur SMTP:" msgid "SMTP port:" msgstr "Port SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "De:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "RĂ©pondre Ă :" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Authentification POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Usage:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Mot de passe:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Serveur POP3:" @@ -994,18 +1042,6 @@ msgstr "Serveur POP3:" msgid "POP3 port:" msgstr "Port POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Utilisateur POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Mot de passe POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visionneuse (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Commande OCR:" @@ -1049,9 +1085,10 @@ msgstr "nouveau support" msgid "Save" msgstr "Enregistrer" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Image" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Fichier" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1061,9 +1098,10 @@ msgstr "Copier" msgid "Fax" msgstr "Faxer" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Message" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "e-mail" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1077,9 +1115,9 @@ msgstr "Affichage" msgid "Enhancement" msgstr "Optimisation" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "e-mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1225,6 +1263,11 @@ msgstr "Compression JPEG DCT" msgid "pack bits" msgstr "" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "retardĂ©e" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Dia (Echelle)" @@ -1289,6 +1332,27 @@ msgstr "DĂ©placer l'objet vers le haut" msgid "Move item down" msgstr "DĂ©placer l'objet vers le bas" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Authentification POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "NumĂ©risation..." @@ -1298,6 +1362,11 @@ msgstr "NumĂ©risation..." msgid "Receiving %s data" msgstr "RĂ©ception des donnĂ©es %s..." +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "paquetage" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Transfert de l'image..." @@ -1359,9 +1428,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Annuler l'aperçu <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "sauver-<Ctrl-s>, visionner-<Ctrl-v>, photocopier-<Ctrl-c>, faxer-<Ctrl-f> ou " "poster-<Ctrl-m>" @@ -1412,26 +1482,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Entrez le nom du projet e-mail" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Entrez le nouveau nom pour l'image du message" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Entrez l'adresse e-mail" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Entrez le sujet de l'e-mail" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "SĂ©lectionnez le type de fichier pour les attachements" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Entrez un nom pour la prĂ©sĂ©lection" @@ -1667,6 +1751,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Chemin du rĂ©pertoire temporaire" @@ -1690,6 +1780,11 @@ msgstr "Compression si l'image est enregistrĂ©e en png" msgid "Minimum length of counter in filename" msgstr "Longueur minimale du compteur de noms de fichiers" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Type de compression si une image 8 bit est enregistrĂ©e en tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Type de compression si une image 16 bit est enregistrĂ©e en tiff" @@ -1719,6 +1814,16 @@ msgstr "" "Si un compteur de noms de fichiers est utilisĂ©, les nombres dĂ©jĂ utilisĂ©s " "sont Ă©vitĂ©s" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1842,14 +1947,9 @@ msgid "" msgstr "" "DĂ©calage pour rendre l'Ă©chelle de seuil de XSane et du scanner les mĂŞmes" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"SĂ©lectionnez la source de numĂ©risation pour le chargeur automatique de " -"documents. Dans ce mode, XSane numĂ©risera jusqu'Ă l'obtention d'un signal " -"\"plus de papier\" ou d'une erreur." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1907,6 +2007,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Adresse IP ou nom de domaine du serveur SMTP" @@ -1915,18 +2019,31 @@ msgstr "Adresse IP ou nom de domaine du serveur SMTP" msgid "port to connect to SMTP server" msgstr "Port de connexion SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "Entrez votre adresse e-mail" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "Entrez l'adresse e-mail de rĂ©ponse" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "S'authentifier au près du serveur POP3 avant d'envoyer le message" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "Nom d'utilisateur pour le serveur POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "Mot de passe pour le serveur POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Adresse IP ou nom de domaine du serveur POP3" @@ -1935,20 +2052,9 @@ msgstr "Adresse IP ou nom de domaine du serveur POP3" msgid "port to connect to POP3 server" msgstr "Port de connexion POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "Nom d'utilisateur pour le serveur POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "Mot de passe pour le serveur POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Entrez la commande Ă ĂŞtre exĂ©cutĂ©e pour voir une image e-mail" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "Message envoyĂ© en mode html, placer l'image avec: <IMAGE>" #. DESC_OCR_COMMAND @@ -2171,8 +2277,12 @@ msgid "Filename too long" msgstr "Nom de fichier trop long" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Ne peut crĂ©er de fichier temporaire" +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" @@ -2296,10 +2406,6 @@ msgstr "Erreur d'exĂ©cution de la visionneuse de fax" msgid "Failed to execute fax command:" msgstr "Erreur d'exĂ©cution de la commande de fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Erreur d'exĂ©cution de la visionneuse d'image:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Erreur d'exĂ©cution de la commande OCR:" @@ -2350,15 +2456,6 @@ msgstr "La prĂ©visualisation ne supporte pas le mode" msgid "GIMP support missing" msgstr "le support pour GIMP est manquant" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Ne peut pas crĂ©er de fichiers temporaires de prĂ©visualisation" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" -"Ne peut pas crĂ©er de noms de fichiers pour les fichiers de prĂ©visualisation" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Ne peut crĂ©er un projet fax" @@ -2471,6 +2568,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPTION]... [PERIPHERIQUE]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2487,8 +2585,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2706,66 +2805,86 @@ msgstr "NĂ©gatif Konica VX 100" msgid "Rossmann negative HR 100" msgstr "NĂ©gatif Rossman HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Projet d'e-mail non crĂ©Ă© " +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Projet de fax non crĂ©Ă©" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Projet d'e-mail crĂ©Ă©" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Projet de fax crĂ©Ă©" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Projet d'e-mail modifiĂ©" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Projet de fax modifiĂ©" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Erreur de lecture du projet d'e-mail" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Sauvegarde de l'image..." + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Sauvegarde de l'image..." + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Sauvegarde de l'image..." + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "Message envoyĂ©" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "Echec de la connexion POP3" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Echec du login POP3" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "Echec de la connexion SMTP" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "Echec de la connexion SMTP" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Champ from refusĂ©" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Champ destinataire refusĂ©" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "DonnĂ©es d'e-mail refusĂ©es" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Envoi du message" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "Message envoyĂ©" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Projet de fax non crĂ©Ă©" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Projet de fax crĂ©Ă©" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Projet de fax modifiĂ©" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Mise en queue du fax" @@ -2828,3 +2947,94 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Ne peut pas crĂ©er de fichiers temporaires de prĂ©visualisation" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "" +#~ "Ne peut pas crĂ©er de noms de fichiers pour les fichiers de " +#~ "prĂ©visualisation" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Authentification POP3" + +#~ msgid "XSane mode" +#~ msgstr "Mode XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Utilisateur POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "Mot de passe POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Chargeur automatique de documents:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "SĂ©lectionnez la source de numĂ©risation pour le chargeur automatique de " +#~ "documents. Dans ce mode, XSane numĂ©risera jusqu'Ă l'obtention d'un signal " +#~ "\"plus de papier\" ou d'une erreur." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Projet d'e-mail non crĂ©Ă© " + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Projet d'e-mail crĂ©Ă©" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Projet d'e-mail modifiĂ©" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Projet d'e-mail non crĂ©Ă© " + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Projet d'e-mail crĂ©Ă©" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Projet d'e-mail modifiĂ©" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Erreur de lecture du projet d'e-mail" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Sauvegarde de l'image..." + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Projet d'e-mail crĂ©Ă©" + +#~ msgid "Image" +#~ msgstr "Image" + +#~ msgid "Viewer (png):" +#~ msgstr "Visionneuse (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Entrez la commande Ă ĂŞtre exĂ©cutĂ©e pour voir une image e-mail" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Erreur d'exĂ©cution de la visionneuse d'image:" + +#~ msgid "Step" +#~ msgstr "Pas" + +#~ msgid "Mail" +#~ msgstr "Message" Binary files differ@@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: hu\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2005-10-29 16:27+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-31 10:34+0100\n" "Last-Translator: Aron Novak <aaron@szentimre.hu>\n" "Language-Team: Hungarian\n" "MIME-Version: 1.0\n" @@ -80,17 +80,21 @@ msgstr "faxoldal átnevezĂ©se" msgid "insert ps-file into fax" msgstr "ps fájl beszĂşrása a faxba" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" msgstr "levĂ©lterv" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" -msgstr "kĂ©p átnevezĂ©se" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "email - kĂ©p átnevezĂ©se" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" -msgstr "fájl beszĂşrása a levĂ©lbe" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "fájl beszĂşrása levĂ©lbe" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "több oldalas terv" #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -310,7 +314,7 @@ msgstr "ElutasĂtás" #. BUTTON_APPLY msgid "Apply" -msgstr "ÉrvĂ©nyesĂtĂ©s" +msgstr "Alkalmazás" #. BUTTON_CANCEL msgid "Cancel" @@ -380,6 +384,10 @@ msgstr "Terv lĂ©trehozása" msgid "Send project" msgstr "Terv kĂĽldĂ©se" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Fájl mentĂ©se" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Terv törlĂ©se" @@ -420,8 +428,8 @@ msgstr "NagyĂtás rögzĂtĂ©se" msgid "Fine mode" msgstr "RĂ©szletes mĂłd" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" msgstr "HTML levĂ©l" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -436,6 +444,14 @@ msgstr "FigyelmeztetĂ©s felĂĽlĂráskor" msgid "Skip existing filenames" msgstr "LĂ©tezĹ‘ fájlnevek kihagyása" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +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 +msgid "Save PDF zlib compressed" +msgstr "MentĂ©s PDF-ben, zlibbel tömörĂtve" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "MentĂ©s 16bites pnm ascii mĂłdban" @@ -468,10 +484,6 @@ msgstr "ElĹ‘re választott beolvasási terĂĽlet" msgid "Autocorrect colors" msgstr "SzĂnek automatikus javĂtása" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 azonosĂtás" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "A GUI folyamatjelzĹ‘ használata" @@ -488,14 +500,6 @@ msgstr "ElĂ©rhetĹ‘ eszközök:" msgid "XSane options" msgstr "XSane beállĂtások" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Beolvasás cĂ©lja" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "LĂ©pĂ©sköz" - #. TEXT_FILETYPE msgid "Type" msgstr "TĂpus" @@ -682,8 +686,8 @@ msgstr "" "GARANCIA NÉLKĂśL; mindenfĂ©le közvetett garancia nĂ©lkĂĽl az\n" "ELADHATĂ“SĂGRA vagy az ALKALMASSĂGRA bizonyos cĂ©lokra.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "Email:" #. TEXT_HOMEPAGE @@ -701,12 +705,12 @@ msgstr "FordĂtás:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "magyar fordĂtás\n" "Novák Ăron\n" @@ -720,21 +724,29 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Beolvasott oldalak: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "A levĂ©l szövege:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "MellĂ©kletek:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "A terv állapota:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "Emailben a kĂ©p tĂpusa:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "Az emailben a kĂ©p tĂpusa:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Oldalak:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Többoldalas dokumentumban a kĂ©p tĂpusa:" #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" @@ -847,6 +859,10 @@ msgstr "NyomtatĂł zöld gammája:" msgid "Printer gamma blue:" msgstr "NyomtatĂł kĂ©k gammája:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +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)" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Ideiglenes könyvtár" @@ -871,6 +887,10 @@ msgstr "PNG tömörĂtĂ©s mĂ©rtĂ©ke" msgid "Filename counter length" msgstr "FájlnĂ©vszámlálĂł hossza" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip tömörĂtĂ©si szintje" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "16 bites TIFF tömörĂtĂ©se" @@ -911,10 +931,6 @@ msgstr "ElĹ‘nĂ©zet kĂ©k gammája:" msgid "Threshold option:" msgstr "TelĂtettsĂ©g lehetĹ‘sĂ©ge:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Ă–nműködĹ‘ Dokumentum AdagolĂł(ADF) mĂłd:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Az elĹ‘nĂ©zet pipettatartománya" @@ -967,6 +983,10 @@ msgstr "AlapĂ©rtelmezett beállĂtások ehhez:" msgid "Viewer (Postscript):" msgstr "NĂ©zĹ‘ke (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +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)" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP kiszolgálĂł:" @@ -975,14 +995,26 @@ msgstr "SMTP kiszolgálĂł:" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "FeladĂł:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "VálaszcĂm:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "Email azonosĂtás" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "FelhasználĂł:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "JelszĂł:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 kiszolgálĂł:" @@ -991,18 +1023,6 @@ msgstr "POP3 kiszolgálĂł:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 felhasználĂł:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 jelszĂł:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "NĂ©zĹ‘ke (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR parancs:" @@ -1046,9 +1066,9 @@ msgstr "Ăşj mĂ©dia" msgid "Save" msgstr "MentĂ©s" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "KĂ©p" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Fájl tĂpusa" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1058,8 +1078,8 @@ msgstr "Másolás" msgid "Fax" msgstr "Faxolás" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" msgstr "Email" #. NOTEBOOK_OCR_OPTIONS @@ -1074,9 +1094,9 @@ msgstr "MegjelenĂtĂ©s" msgid "Enhancement" msgstr "JavĂtás" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Email" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Több oldalas" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1222,6 +1242,10 @@ msgstr "JPEG DCT tömörĂtĂ©s" msgid "pack bits" msgstr "bitek csomagolása" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "csökkentĂ©s" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "CsĂşszka (MĂ©retezĂ©s)" @@ -1286,6 +1310,26 @@ msgstr "Felfele mozgatás" msgid "Move item down" msgstr "Lefele mozgatás" +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "azonosĂtás nĂ©lkĂĽl" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 elĹ‘tt SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP Plain" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP bejelentkezĂ©s" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Beolvasás" @@ -1295,6 +1339,10 @@ msgstr "Beolvasás" msgid "Receiving %s data" msgstr "%s adatok fogadása" +#. PROGRESS_PAGE +msgid "page" +msgstr "oldal" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "KĂ©p átvitele" @@ -1357,11 +1405,11 @@ msgstr "ElĹ‘nĂ©zet beolvasásának megszakĂtása <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"mentĂ©s-<Ctrl-s>, nĂ©zet-<Ctrl-v>, fotĂłmásolat-<Ctrl-c>, fax-<Ctrl-f>vagy " -"email-<Ctrl-m>" +"nĂ©zĹ‘ke-<Ctrl-v>, mentĂ©s-<Ctrl-s>, fotĂłmásolat-<Ctrl-c>, több oldalas-<Ctrl-" +"m>, fax-<Ctrl-f> vagy e-mail-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1409,26 +1457,34 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" msgstr "Add meg a levĂ©lterv nevĂ©t" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "Adj Ăşj nevet a kĂ©pnek" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "Adj meg egy emailcĂmet" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "Add meg az emailcĂmet" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "Add meg a levĂ©l tárgyát" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Válassz fájltĂpust a többoldalas fájlhoz" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Adj Ăşj nevet a kijelölĂ©snek" @@ -1660,6 +1716,14 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Zlibbel tömörĂtett postscript lĂ©trehozása nyomtatĂłnak (flatcode).\n" +"A nyomtatĂł kell Ă©rtse a postscript level 3-at!" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Az ideiglenes könyvtár elĂ©rĂ©si Ăştja" @@ -1683,6 +1747,10 @@ msgstr "A tömörĂtĂ©s, ha a kĂ©p pngben van mentve" msgid "Minimum length of counter in filename" msgstr "A fájlnĂ©vben a számlálĂł minimális hossza" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "TömörĂtĂ©si szint zippel tömörĂtett tiff-nĂ©l (deflate)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "A tömörĂtĂ©s mĂłdja 16 bites tiff kĂ©p esetĂ©n" @@ -1711,6 +1779,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 +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "PDF tömörĂtĂ©se zlibbel (flatdecode)" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1819,13 +1899,9 @@ msgstr "" "Eltolási Ă©rtĂ©k, ami az XSane telĂtettsĂ©gĂ©t Ă©s a szkenner telĂtettsĂ©gĂ©t " "kiegyenlĂti" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Válasszunk beolvasási forrást az automata adagolĂłhoz. Ha a forráski lett " -"választva, az Xsane a \"papĂr kifogyott\" ĂĽzenetig beolvas" +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "BeolvasandĂł oldalak száma" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1877,6 +1953,10 @@ 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)" +msgstr "Zlibbel tömörĂtett postscript kĂ©p lĂ©trehozása faxhoz (flatdecode)" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Az SMTP kiszolgálĂł IP cĂme vagy domĂ©nneve" @@ -1885,17 +1965,25 @@ msgstr "Az SMTP kiszolgálĂł IP cĂme vagy domĂ©nneve" msgid "port to connect to SMTP server" msgstr "Az SMTP kiszolgálĂł portja" -#. DESC_MAIL_FROM -msgid "enter your email address" -msgstr "adjuk meg az email cĂmĂĽnket" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "add meg az email cĂmed" + +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "add meg a válaszcĂmet" + +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "AzonosĂtás tĂpusa levĂ©lkĂĽldĂ©s elĹ‘tt" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "adjuk meg a válaszcĂmet" +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "felhasználĂłnĂ©v az email kiszolgálĂłhoz" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "POP3 azonosĂtás szĂĽksĂ©ges a levĂ©lkĂĽldĂ©s elĹ‘tt" +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "jelszĂł az email kiszolgálĂłhoz" #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" @@ -1905,20 +1993,8 @@ msgstr "A POP3 kiszolgálĂł IP cĂme vagy domĂ©nneve" msgid "port to connect to POP3 server" msgstr "A POP3 kiszolgálĂł portja" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "felhasználĂłnĂ©v a POP3 kiszolgálĂłhoz" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "jelszĂł a POP3 kiszolgálĂłhoz" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Adjuk meg a kĂ©pfájl megjelenĂtĹ‘ program parancsát" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "A levelet HTML mĂłdban kĂĽldtĂĽk ezzel a kĂ©ppel: <IMAGE>" #. DESC_OCR_COMMAND @@ -2139,8 +2215,12 @@ msgid "Filename too long" msgstr "A fájlnĂ©v tĂşl hosszĂş" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Nem lehet lĂ©trehozni az ideiglenes fájlt" +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" @@ -2263,10 +2343,6 @@ msgstr "Nem sikerĂĽlt a fax megjelenĂtĂ©se:" msgid "Failed to execute fax command:" msgstr "Nem sikerĂĽlt a faxparancs vĂ©grehajtása:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Nem sikerĂĽlt a kĂ©pnĂ©zĹ‘ elindĂtása:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Nem sikerĂĽlt a szövegfelismerĹ‘ elindĂtása:" @@ -2316,14 +2392,6 @@ msgstr "Az elĹ‘nĂ©zet nem tudja kezelni a szĂnmĂ©lysĂ©get" msgid "GIMP support missing" msgstr "A GIMP támogatás hiányzik" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Ideiglenes elĹ‘nĂ©zeti fájlok lĂ©trehozása meghiĂşsult" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Nem lehetett fájlnevet adni az elĹ‘nĂ©zeti fájloknak" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Faxterv lĂ©trehozása meghiĂşsult" @@ -2452,8 +2520,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2485,8 +2554,9 @@ msgstr "" " -V, --viewer nĂ©zĹ‘ke-mĂłdban indĂt (alapĂ©rtelmezett)\n" " -s, --save mentĂ©s-mĂłdban indĂt\n" " -c, --copy másolás-mĂłdban indĂt\n" +" -m, --multipage többoldalas mĂłd\n" " -f, --fax fax-mĂłdban indĂt\n" -" -m, --mail email-mĂłdban indĂt\n" +" -e, --email email-mĂłdban indĂt\n" " -n, --no-mode-selection XSane mĂłdmenĂĽjĂ©nek letiltása\n" "\n" " -F, --Fixed rögzĂtett ablakmĂ©ret (felĂĽlĂrja a beállĂtást " @@ -2665,66 +2735,74 @@ msgstr "VX 100-as Konica negatĂv" msgid "Rossmann negative HR 100" msgstr "HR 100-as Rossmann negatĂv" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "A levĂ©lterv nem lett lĂ©trehozva." +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "A terv nem jött lĂ©tre" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "A terv lĂ©trejött" + +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "A terv megváltozott" + +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Hiba a terv olvasása közben" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Hiba a kĂ©p mentĂ©se közben" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "A levĂ©ltervet lĂ©trehoztam" +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Fájl mentĂ©se" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "A levĂ©lterv mĂłdosult" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Fájl mentĂ©se megszakĂtva" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "Hiba a levĂ©lterv olvasása közben" +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "A fájl elmentve" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3 kapcsolat sikertelen" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3 bejelentkezĂ©s sikertelen" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP kapcsolat sikertelen" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP kapcsolat sikertelen" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "FeladĂł mezĹ‘t nem fogadták el" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "CĂmzett mezĹ‘t nem fogadták el" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" msgstr "A levĂ©l adatát nem fogadták el" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "LevĂ©l kĂĽldĂ©se" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "A levĂ©l elkĂĽldve" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "A faxterv nem jött lĂ©tre" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "A faxterv lĂ©trejött" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "A faxterv megváltozott" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "A fax sorbaállĂtása" @@ -2787,3 +2865,12 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Ideiglenes elĹ‘nĂ©zeti fájlok lĂ©trehozása meghiĂşsult" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Nem lehetett fájlnevet adni az elĹ‘nĂ©zeti fájloknak" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: xsane-0.98pre3_it\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2005-10-29 20:59+0200\n" "Last-Translator: Kostantino <ciclope10ATalice.it>\n" "Language-Team: Italiano <tp@lists.linux.it>\n" @@ -82,18 +82,26 @@ msgstr "Rinomina pagina fax" msgid "insert ps-file into fax" msgstr "Inserisci file PS nel fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "Progetto posta" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "Rinomina l'immagine della posta" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "Inserisci un file nella posta" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Elimina progetto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "Rinomina area predefinita" @@ -382,6 +390,11 @@ msgstr "Crea progetto" msgid "Send project" msgstr "Invia progetto" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Salva immagine" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Elimina progetto" @@ -422,8 +435,9 @@ msgstr "Blocca scala" msgid "Fine mode" msgstr "ModalitĂ fine" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "Posta in HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -438,6 +452,14 @@ msgstr "Avvisa prima di sovrascrivere" msgid "Skip existing filenames" msgstr "Salta i nomi dei file esistenti" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Salva in formato ASCII le immagini PNM a 16 bit" @@ -470,10 +492,6 @@ msgstr "Preselezione dell'area di scansione" msgid "Autocorrect colors" msgstr "Correzione automatica dei colori" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Autenticazione POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Utilizza la pipe di avanzamento della GUI" @@ -490,14 +508,6 @@ msgstr "Dispositivi disponibili:" msgid "XSane options" msgstr "Opzioni di XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "ModalitĂ di XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Incremento" - #. TEXT_FILETYPE msgid "Type" msgstr "Tipo" @@ -686,8 +696,9 @@ msgstr "" "SENZA NESSUNA GARANZIA; senza nemmeno l'implicita garanzia di\n" "VENDIBILITA' o di UTILITA' PER UN SCOPO PARTICOLARE.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "Posta elettronica:" #. TEXT_HOMEPAGE @@ -705,12 +716,13 @@ msgstr "Traduzione: " #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Testo originale inglese non tradottot\n" "a cura di Oliver Rauch\n" @@ -724,20 +736,32 @@ msgstr "0x0: 0 KB " msgid "Scanned pages: " msgstr "Pagine acquisite: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Testo di posta elettronica:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Allegati:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Stato progetto:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Tipo di file dell'immagine di posta:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Utilizzo:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Tipo di file dell'immagine di posta:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -852,6 +876,10 @@ msgstr "Verde della gamma della stampante:" msgid "Printer gamma blue:" msgstr "Blu della gamma della stampante:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Cartella temporanea" @@ -876,6 +904,11 @@ msgstr "Compressione dell'immagine PNG" msgid "Filename counter length" msgstr "Lunghezza del contatore dei nomi file" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "Compressione dell'immagine TIFF a 8 bit" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Compressione dell'immagine TIFF a 16 bit" @@ -916,10 +949,6 @@ msgstr "Blu della gamma dell'anteprima:" msgid "Threshold option:" msgstr "Opzione soglia:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "ModalitĂ automatica dell'alimentatore dei fogli:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Intervallo del contagocce in anteprima" @@ -972,6 +1001,10 @@ msgstr "Imposta valori predefiniti per:" msgid "Viewer (Postscript):" msgstr "Visualizzatore (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Server SMTP:" @@ -980,14 +1013,29 @@ msgstr "Server SMTP:" msgid "SMTP port:" msgstr "Porta SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Da:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Rispondi a:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Autenticazione POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Utilizzo:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Password:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Server POP3:" @@ -996,18 +1044,6 @@ msgstr "Server POP3:" msgid "POP3 port:" msgstr "Porta del server POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Utente POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Password POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visualizzatore (PNG):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Comando OCR:" @@ -1051,9 +1087,10 @@ msgstr "nuovo supporto" msgid "Save" msgstr "Salva" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Immagine" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "File " #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1063,9 +1100,10 @@ msgstr "Copia" msgid "Fax" msgstr "Fax " -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Posta" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "Posta elettronica" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1079,9 +1117,9 @@ msgstr "Visualizzazione" msgid "Enhancement" msgstr "Miglioramento" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Posta elettronica" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1227,6 +1265,11 @@ msgstr "compressione JPEG DCT" msgid "pack bits" msgstr "comprimi bit" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "ritardata" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Slider (scala)" @@ -1291,6 +1334,27 @@ msgstr "Sposta in su l'oggetto" msgid "Move item down" msgstr "Sposta in giĂą l'oggetto" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Autenticazione POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Acquisizione" @@ -1300,6 +1364,11 @@ msgstr "Acquisizione" msgid "Receiving %s data" msgstr "Sto ricevendo %s dati" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "pacchetto" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Trasferimento immagine" @@ -1361,9 +1430,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Annulla anteprima <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "Salva <Ctrl-s>, Visualizza <Ctrl-v>, Fotocopia <Ctrl-c>, Fax <Ctrl-f> o " "invia come Posta Elettronica <Ctrl-m>" @@ -1414,26 +1484,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Inserisci nome del Progetto Posta" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Inserisci nuovo nome per l'immagine della posta elettronica" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Inserisci indirizzo di posta elettronica" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Inserisci argomento della posta elettronica" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "Seleziona il tipo di file per le immagini allegate" +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter name of multipage project" +msgstr "Inserisci nome del Progetto Posta" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Seleziona il tipo di file per le immagini allegate" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Inserisci nuovo nome per l'area di preselezione" @@ -1672,6 +1756,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Percorso alla cartella temporanea" @@ -1695,6 +1785,11 @@ msgstr "Compressione se l'immagine viene salvata come PNG" msgid "Minimum length of counter in filename" msgstr "Lunghezza minima del contatore nel nome file" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Tipo di compressione se l'immagine a 8 bit viene salvata come TIFF" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Tipo di compressione se l'immagine a 16 bit viene salvata come TIFF" @@ -1724,6 +1819,16 @@ msgstr "" "I numeri giĂ usati vengono saltati se il contatore del nome file viene " "incrementato automaticamente" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1852,13 +1957,9 @@ msgid "" msgstr "" "Scarto per eguagliare l'intervallo di soglia dello scanner e quello di XSane" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Seleziona l'alimentatore ADF. Se viene selezionato, XSane acquisisce fino a " -"\"Fine carta\" o ad un errore." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1917,6 +2018,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Indirizzo IP o nome del dominio del server SMTP" @@ -1925,18 +2030,31 @@ msgstr "Indirizzo IP o nome del dominio del server SMTP" msgid "port to connect to SMTP server" msgstr "Porta del server SMTP a cui connettersi" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "Inserisci il tuo indirizzo di posta elettronica" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "Inserisci l'indirizzo a cui inviare le risposte" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autenticati sul server POP3 prima di inviare della posta elettronica" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "Nome utente per il server POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "Password per il server POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Indirizzo IP o nome del dominio del server POP3" @@ -1945,22 +2063,9 @@ msgstr "Indirizzo IP o nome del dominio del server POP3" msgid "port to connect to POP3 server" msgstr "Porta del server POP3 a cui connettersi" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "Nome utente per il server POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "Password per il server POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "" -"Inserisci il comando da eseguire per visualizzare un'immagine via posta " -"elettronica" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "" "La posta viene spedita in formato HTML, posiziona l'immagine con: <IMMAGINE>" @@ -2186,8 +2291,12 @@ msgid "Filename too long" msgstr "Il nome del file è troppo lungo" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Non è possibile creare alcun file temporaneo" +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" @@ -2310,12 +2419,6 @@ msgstr "Non è possibile eseguire il visualizzatore di fax:" msgid "Failed to execute fax command:" msgstr "Non è possibile eseguire il comando fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "" -"Non è possibile eseguire il visualizzatore dell'immagine via posta " -"elettronica:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Non è possibile eseguire il comando OCR:" @@ -2365,14 +2468,6 @@ msgstr "L'anteprima non può gestire la profonditĂ dei bit" msgid "GIMP support missing" msgstr "Manca il supporto per GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Non è possibile creare file temporanei per l'anteprima" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Non è possibile creare i nomi dei file per l'anteprima" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Non è possibile creare il progetto fax" @@ -2487,6 +2582,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPZIONE]...[DISPOSITIVO]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2503,8 +2599,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2727,66 +2824,86 @@ msgstr "Negativo Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Negativo Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Il progetto di posta non è stato creato" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Il progetto fax non è stato creato" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Il progetto di posta è stato creato" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Il progetto fax è stato creato" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Il progetto di posta è stato cambiato" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Il progetto fax è stato cambiato" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Si è verificato un errore leggendo il progetto di posta" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Salvataggio immagine" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Salvataggio immagine" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Salvataggio immagine" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "La posta è stata spedita" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "La connessione POP3 è fallita" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Il login POP3 è fallito" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "La connessione SMTP è fallita" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "La connessione SMTP è fallita" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "La voce Da non è stata accettata" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "La voce Ricevente non è stata accettata" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "I dati di posta non sono stati accettati" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Invio posta" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "La posta è stata spedita" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Il progetto fax non è stato creato" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Il progetto fax è stato creato" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Il progetto fax è stato cambiato" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Invio fax" @@ -2849,3 +2966,95 @@ msgstr "La memoria è esaurita" msgid "Access to resource has been denied" msgstr "L'accesso alla risorsa è negato" + +#~ msgid "Could not create temporary file" +#~ msgstr "Non è possibile creare alcun file temporaneo" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Non è possibile creare file temporanei per l'anteprima" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Non è possibile creare i nomi dei file per l'anteprima" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Autenticazione POP3" + +#~ msgid "XSane mode" +#~ msgstr "ModalitĂ di XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Utente POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "Password POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "ModalitĂ automatica dell'alimentatore dei fogli:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Seleziona l'alimentatore ADF. Se viene selezionato, XSane acquisisce fino " +#~ "a \"Fine carta\" o ad un errore." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Il progetto di posta non è stato creato" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Il progetto di posta è stato creato" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Il progetto di posta è stato cambiato" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Il progetto di posta non è stato creato" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Il progetto di posta è stato creato" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Il progetto di posta è stato cambiato" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Si è verificato un errore leggendo il progetto di posta" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Salvataggio immagine" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Il progetto di posta è stato creato" + +#~ msgid "Image" +#~ msgstr "Immagine" + +#~ msgid "Viewer (png):" +#~ msgstr "Visualizzatore (PNG):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "" +#~ "Inserisci il comando da eseguire per visualizzare un'immagine via posta " +#~ "elettronica" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "" +#~ "Non è possibile eseguire il visualizzatore dell'immagine via posta " +#~ "elettronica:" + +#~ msgid "Step" +#~ msgstr "Incremento" + +#~ msgid "Mail" +#~ msgstr "Posta" Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-08-28 12:48+900\n" "Last-Translator: Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>\n" "Language-Team: Japanese\n" @@ -79,18 +79,26 @@ msgstr "FAXăšăĽă‚¸ă‚’ăŞăŤăĽă " msgid "insert ps-file into fax" msgstr "PSă•ă‚ˇă‚¤ă«ă‚’FAXă«ćŚżĺ…Ą" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "ăˇăĽă«ă—ăジェクă" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "ăˇăĽă«ă‚¤ăˇăĽă‚¸ă‚’ăŞăŤăĽă " -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "ă•ă‚ˇă‚¤ă«ă‚’ăˇăĽă«ă«ćŚżĺ…Ą" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "ă—ăジェクă削除" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "ă—ăŞă‚»ăăé ĺźźă‚’ăŞăŤăĽă " @@ -379,6 +387,11 @@ msgstr "ă—ăジェクă作ć" msgid "Send project" msgstr "ă—ăジェクăă‚’é€ă‚‹" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "イăˇăĽă‚¸ă‚’äżťĺ" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "ă—ăジェクă削除" @@ -419,8 +432,9 @@ msgstr "倍率を固定" msgid "Fine mode" msgstr "ă•ă‚ˇă‚¤ăłă˘ăĽă‰" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "HTMLăˇăĽă«" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -435,6 +449,14 @@ msgstr "上書ăŤă®č¦ĺ‘Š" msgid "Skip existing filenames" msgstr "現在ă®ă•ă‚ˇă‚¤ă«ĺŤă‚’ă‚ąă‚ăă—" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "16ă“ăăpnmă‚’asciiă•ă‚©ăĽăžăăă§äżťĺ" @@ -467,10 +489,6 @@ msgstr "ă‚ąă‚ăŁăłé ĺźźă®ĺ…行指定" msgid "Autocorrect colors" msgstr "色彩ă®č‡Şĺ‹•čŁśćŁ" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3認証" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "GUIă—ăă‚°ă¬ă‚ąă‘イă—を使用" @@ -487,14 +505,6 @@ msgstr "ă‡ăイス使用可č˝ďĽš" msgid "XSane options" msgstr "XSaneă®ă‚Şă—ă‚·ă§ăł" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSaneă®ă˘ăĽă‰" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "ă‚ąă†ăă—" - #. TEXT_FILETYPE msgid "Type" msgstr "タイă—" @@ -683,8 +693,9 @@ msgstr "" "特定目的é©ĺ性ă«ă¤ă„ă¦ă®ćš—é»™ă®äżťč¨Ľă‚’ĺ«ă‚ă¦ă€ă„ă‹ăŞă‚‹äżťč¨Ľă‚‚行ăŞ\n" "ă„ăľă›ă‚“。\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "ăˇăĽă«ďĽš" #. TEXT_HOMEPAGE @@ -702,12 +713,13 @@ msgstr "翻訳:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "日本語ă¸ă®çż»č¨łč€…:\n" "ĺ›ĺˇšçźĄä¸€\n" @@ -721,20 +733,32 @@ msgstr "0x0: 0ă‚ăăイă" msgid "Scanned pages: " msgstr "ă‚ąă‚ăŁăłă•ă‚ŚăźăšăĽă‚¸ďĽš" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "ăˇăĽă«ă†ă‚ă‚ąă:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "ć·»ä»ďĽš" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "ă—ăジェクăă®çŠ¶ć…‹ďĽš" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "ăˇăĽă«ç”»ĺŹă®ă•ă‚ˇă‚¤ă«ă‚żă‚¤ă—" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "書式:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "ăˇăĽă«ç”»ĺŹă®ă•ă‚ˇă‚¤ă«ă‚żă‚¤ă—" #. TEXT_MEDIUM_DEFINITION_NAME @@ -847,6 +871,10 @@ msgstr "ă—ăŞăłă‚żă‚¬ăłăž 緑:" msgid "Printer gamma blue:" msgstr "ă—ăŞăłă‚żă‚¬ăłăž 青:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "一時ă‡ă‚Łă¬ă‚ŻăăŞ" @@ -871,6 +899,11 @@ msgstr "PNGç”»ĺŹĺś§ç¸®" msgid "Filename counter length" msgstr "ă•ă‚ˇă‚¤ă«ĺŤă‚«ă‚¦ăłă‚żă®çŻ„囲" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "TIFF 8ă“ăăç”»ĺŹĺś§ç¸®" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16ă“ăăç”»ĺŹĺś§ç¸®" @@ -911,10 +944,6 @@ msgstr "ガăłăžéť’ă‚’ă—ă¬ă“ăĄăĽďĽš" msgid "Threshold option:" msgstr "閾値オă—ă‚·ă§ăłďĽš" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "ADF関連ă®č¨ĺ®šďĽš" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "ă”ăšăă範囲をă—ă¬ă“ăĄăĽ" @@ -967,6 +996,10 @@ msgstr "ă—ăă‚°ă©ă ă®ĺťćśźĺ€¤ă‚’č¨ĺ®šďĽš" msgid "Viewer (Postscript):" msgstr "ă“ăĄăĽăŻ(PostScript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTPサăĽă:" @@ -975,14 +1008,29 @@ msgstr "SMTPサăĽă:" msgid "SMTP port:" msgstr "SMTPăťăĽă:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "差出人:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "返信ĺ…:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3認証" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "書式:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "ă‘ă‚ąăŻăĽă‰ďĽš" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3サăĽă:" @@ -991,18 +1039,6 @@ msgstr "POP3サăĽă:" msgid "POP3 port:" msgstr "POP3ăťăĽă:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3ă¦ăĽă‚¶ăĽďĽš" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3ă‘ă‚ąăŻăĽă‰ďĽš" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "ă“ăĄăĽăŻ(PNG):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCRă‚łăžăłă‰ďĽš" @@ -1046,9 +1082,10 @@ msgstr "ć–°ă—ă„媒体" msgid "Save" msgstr "äżťĺ" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "ç”»ĺŹ" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "ă•ă‚ˇă‚¤ă«" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1058,8 +1095,9 @@ msgstr "ă‚łă”ăĽ" msgid "Fax" msgstr "FAX" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" msgstr "ăˇăĽă«" #. NOTEBOOK_OCR_OPTIONS @@ -1074,9 +1112,9 @@ msgstr "表示" msgid "Enhancement" msgstr "強調" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "ăˇăĽă«" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1222,6 +1260,11 @@ msgstr "JPEG DCT 圧縮" msgid "pack bits" msgstr "ă‘ăă‚Żă“ăă" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "é…ă‚Śă¦" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "ă‚ąă©ă‚¤ă€ăĽ(スケăĽă«)" @@ -1286,6 +1329,27 @@ msgstr "アイă†ă を上ă¸ç§»ĺ‹•" msgid "Move item down" msgstr "アイă†ă を下ă¸ç§»ĺ‹•" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3認証" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "ă‚ąă‚ăŁăłă—ă¦ă„ăľă™" @@ -1295,6 +1359,11 @@ msgstr "ă‚ąă‚ăŁăłă—ă¦ă„ăľă™" msgid "Receiving %s data" msgstr "ă‡ăĽă‚ż %s を受信ă—ă¦ă„ăľă™" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "ă‘ăケăĽă‚¸" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "ç”»ĺŹă‚’変換ä¸" @@ -1356,9 +1425,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "ă‚ąă‚ăŁăłă—ă¬ă“ăĄăĽă‚’ă‚ăŁăłă‚»ă« <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "äżťĺ-<Ctrl-s>, ă“ăĄăĽ-<Ctrl-v>, ă•ă‚©ăă‚łă”ăĽ-<Ctrl-c>, FAX-<Ctrl-f> ăľăźăŻ " "ăˇăĽă«-<Ctrl-m>" @@ -1407,26 +1477,40 @@ msgstr "FAXăšăĽă‚¸ă«ă¤ă‘ă‚‹ă•ă‚ˇă‚¤ă«ĺŤă‚’入力" msgid "Enter receiver phone number or address" msgstr "FAX受信機ă®é›»č©±ç•ŞĺŹ·ă‹ă‚˘ă‰ă¬ă‚ąă‚’入力" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "ăˇăĽă«ă—ăジェクăĺŤă‚’入力" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "新規ăˇăĽă«ă‚¤ăˇăĽă‚¸ă®ă•ă‚ˇă‚¤ă«ĺŤă‚’入力" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "ăˇăĽă«ă‚˘ă‰ă¬ă‚ąă‚’入力" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "ăˇăĽă«ă®čˇ¨éˇŚă‚’入力" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "ç”»ĺŹć·»ä»ć™‚ă®ă•ă‚ˇă‚¤ă«ă‚żă‚¤ă—ă‚’é¸ćŠž" +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter name of multipage project" +msgstr "ăˇăĽă«ă—ăジェクăĺŤă‚’入力" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "ç”»ĺŹć·»ä»ć™‚ă®ă•ă‚ˇă‚¤ă«ă‚żă‚¤ă—ă‚’é¸ćŠž" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "ă—ăŞă‚»ăăé ĺźźă«ă¤ă‘ă‚‹ĺŤĺ‰Ťă‚’新規入力" @@ -1656,6 +1740,12 @@ msgstr "ç„ĽăŤĺ˘—ă—ă¸ă®ç·‘ćĺ†čż˝ĺŠ ガăłăžĺ€¤" msgid "Additional gamma value for blue component for photocopy" msgstr "ç„ĽăŤĺ˘—ă—ă¸ă®éť’ćĺ†čż˝ĺŠ ガăłăžĺ€¤" +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "一時ă‡ă‚Łă¬ă‚ŻăăŞă¸ă®ă‘ă‚ą" @@ -1678,6 +1768,11 @@ msgstr "ç”»ĺŹăŚPNGă§äżťĺă•ă‚Śă¦ă„ă‚Śă°ĺś§ç¸®" msgid "Minimum length of counter in filename" msgstr "ă•ă‚ˇă‚¤ă«ĺŤă®ă‚«ă‚¦ăłă‚żă®ćś€ĺ°ŹçŻ„囲" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "8ă“ăăç”»ĺŹăŚTIFFă§äżťĺă•ă‚Śă¦ă„ă‚‹ĺ ´ĺă®ĺś§ç¸®ă‚żă‚¤ă—" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "16ă“ăăç”»ĺŹăŚTIFFă§äżťĺă•ă‚Śă¦ă„ă‚‹ĺ ´ĺă®ĺś§ç¸®ă‚żă‚¤ă—" @@ -1703,6 +1798,16 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "ă•ă‚ˇă‚¤ă«ĺŤă®ă‚«ă‚¦ăłă‚żăŚč‡Şĺ‹•çš„ă«ĺ˘—ĺŠ ă™ă‚‹éš›ă€ä˝żç”¨ć¸ăżă®ç•ŞĺŹ·ăŻă¨ă°ă•ă‚Śăľă™" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1805,13 +1910,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "XSaneă¨ă‚ąă‚ăŁăŠă®é–ľĺ€¤çŻ„囲をç‰ă—ăŹă™ă‚‹ăźă‚ă®ă‚Şă•ă‚»ăă" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"ADFă®ăźă‚ă®ă‚ąă‚ăŁăłă‚˝ăĽă‚ąă‚’é¸ćŠžă—ă¦ăŹă ă•ă„。ă“ă®ă‚ąă‚ăŁăłă‚˝ăĽă‚ąăŚé¸ćŠžă•ă‚Śă‚‹ă¨" -"XSaneăŻç”¨ç´™ĺ‡ă‚Śă‹ă‚¨ă©ăĽă«ăŞă‚‹ăľă§ă‚ąă‚ăŁăłă‚’ă—ăľă™" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1862,6 +1963,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IPアă‰ă¬ă‚ąăľăźăŻSMTPサăĽăă®ă‰ăˇă‚¤ăłĺŤ" @@ -1870,18 +1975,31 @@ msgstr "IPアă‰ă¬ă‚ąăľăźăŻSMTPサăĽăă®ă‰ăˇă‚¤ăłĺŤ" msgid "port to connect to SMTP server" msgstr "SMTPサăĽăă¸ă®ćŽĄç¶šăťăĽă" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "ăˇăĽă«ă‚˘ă‰ă¬ă‚ąă‚’入力ă—ă¦ăŹă ă•ă„" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "返信ĺ…アă‰ă¬ă‚ąă‚’入力ă—ă¦ăŹă ă•ă„" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "ăˇăĽă«é€äżˇĺ‰Ťă«POP3サăĽăă§čŞŤč¨Ľ" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "POP3サăĽăă®ă¦ăĽă‚¶ăĽĺŤ" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "POP3サăĽăă®ă‘ă‚ąăŻăĽă‰" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "IPアă‰ă¬ă‚ąăľăźăŻPOP3サăĽăă®ă‰ăˇă‚¤ăłĺŤ" @@ -1890,20 +2008,9 @@ msgstr "IPアă‰ă¬ă‚ąăľăźăŻPOP3サăĽăă®ă‰ăˇă‚¤ăłĺŤ" msgid "port to connect to POP3 server" msgstr "POP3サăĽăă¸ă®ćŽĄç¶šăťăĽă" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "POP3サăĽăă®ă¦ăĽă‚¶ăĽĺŤ" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "POP3サăĽăă®ă‘ă‚ąăŻăĽă‰" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "ăˇăĽă«ă‚¤ăˇăĽă‚¸čˇ¨ç¤şă®ăźă‚ă®ĺ®źčˇŚă‚łăžăłă‰ă‚’入力" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "ăˇăĽă«ăŻHTMLă˘ăĽă‰ă§é€ă‚‰ă‚Śă€ç”»ĺŹăŻ<IMAGE>ă‚żă‚°ă¨ă¨ă‚‚ă«é…Ťç˝®ă•ă‚Śăľă™ă€‚" #. DESC_OCR_COMMAND @@ -2125,8 +2232,12 @@ msgid "Filename too long" msgstr "ă•ă‚ˇă‚¤ă«ĺŤăŚé•·ă™ăŽăľă™" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "一時ă•ă‚ˇă‚¤ă«ă‚’作れăľă›ă‚“" +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" @@ -2249,10 +2360,6 @@ msgstr "FAXă“ăĄăĽăŻă®ĺ®źčˇŚă«ĺ¤±ć•—ă—ăľă—ăźďĽš" msgid "Failed to execute fax command:" msgstr "FAXă‚łăžăłă‰ă®ĺ®źčˇŚă«ĺ¤±ć•—ă—ăľă—ăźďĽš" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "ăˇăĽă«ă‚¤ăˇăĽă‚¸ă“ăĄăĽăŻă®ĺ®źčˇŚă«ĺ¤±ć•—ă—ăľă—ăźďĽš" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "OCRă‚łăžăłă‰ă®ĺ®źčˇŚă«ĺ¤±ć•—ă—ăľă—ăźďĽš" @@ -2303,14 +2410,6 @@ msgstr "ă—ă¬ă“ăĄăĽăŻă“ăă深度を取得ă§ăŤăľă›ă‚“" msgid "GIMP support missing" msgstr "GIMPサăťăĽăăŚč¦‹ă¤ă‹ă‚Šăľă›ă‚“" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "一時ă—ă¬ă“ăĄăĽă•ă‚ˇă‚¤ă«ă‚’作れăľă›ă‚“" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "一時ă—ă¬ă“ăĄăĽă•ă‚ˇă‚¤ă«ĺŤă‚’作れăľă›ă‚“" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "FAXă—ăジェクăを作れăľă›ă‚“" @@ -2423,6 +2522,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[ă‚Şă—ă‚·ă§ăł]...[ă‡ăイス]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2439,8 +2539,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2654,66 +2755,86 @@ msgstr "ă‚łă‹ă‚« VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "ăˇăĽă«ă—ăジェクăăŻä˝śćă•ă‚Śăľă›ă‚“ă§ă—ăź" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "FAXă—ăジェクăăŚä˝śćă•ă‚Śăľă›ă‚“ă§ă—ăź" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "ăˇăĽă«ă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "FAXă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "ăˇăĽă«ă—ăジェクăăŚĺ¤‰ć›´ă•ă‚Śăľă—ăź" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "FAXă—ăジェクăăŚĺ¤‰ć›´ă•ă‚Śăľă—ăź" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "ăˇăĽă«ă—ăジェクăă‚’čŞčľĽä¸ă«ă‚¨ă©ăĽ" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "ç”»ĺŹă‚’äżťĺä¸" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "ç”»ĺŹă‚’äżťĺä¸" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "ç”»ĺŹă‚’äżťĺä¸" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "ăˇăĽă«ăŻé€äżˇă•ă‚Śă¦ă„ăľă›ă‚“" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3接続ă«ĺ¤±ć•—ă—ăľă—ăź" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3ăグイăłă«ĺ¤±ć•—ă—ăľă—ăź" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "SMTP接続ă«ĺ¤±ć•—ă—ăľă—ăź" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP接続ă«ĺ¤±ć•—ă—ăľă—ăź" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "差出人ăŚĺŹ—ă‘ă¤ă‘られăľă›ă‚“" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "受取人ăŚĺŹ—ă‘ă¤ă‘られăľă›ă‚“" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "ăˇăĽă«ă‡ăĽă‚żăŚĺŹ—ă‘ă¤ă‘られăľă›ă‚“" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "ăˇăĽă«é€äżˇä¸" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "ăˇăĽă«ăŻé€äżˇă•ă‚Śă¦ă„ăľă›ă‚“" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "FAXă—ăジェクăăŚä˝śćă•ă‚Śăľă›ă‚“ă§ă—ăź" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "FAXă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "FAXă—ăジェクăăŚĺ¤‰ć›´ă•ă‚Śăľă—ăź" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "FAXă‚’é€äżˇä¸" @@ -2776,3 +2897,91 @@ 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 "POP3認証" + +#~ msgid "XSane mode" +#~ msgstr "XSaneă®ă˘ăĽă‰" + +#~ msgid "POP3 user:" +#~ msgstr "POP3ă¦ăĽă‚¶ăĽďĽš" + +#~ msgid "POP3 password:" +#~ msgstr "POP3ă‘ă‚ąăŻăĽă‰ďĽš" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "ADF関連ă®č¨ĺ®šďĽš" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "ADFă®ăźă‚ă®ă‚ąă‚ăŁăłă‚˝ăĽă‚ąă‚’é¸ćŠžă—ă¦ăŹă ă•ă„。ă“ă®ă‚ąă‚ăŁăłă‚˝ăĽă‚ąăŚé¸ćŠžă•ă‚Ś" +#~ "ă‚‹ă¨XSaneăŻç”¨ç´™ĺ‡ă‚Śă‹ă‚¨ă©ăĽă«ăŞă‚‹ăľă§ă‚ąă‚ăŁăłă‚’ă—ăľă™" + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŻä˝śćă•ă‚Śăľă›ă‚“ă§ă—ăź" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŚĺ¤‰ć›´ă•ă‚Śăľă—ăź" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŻä˝śćă•ă‚Śăľă›ă‚“ă§ă—ăź" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŚĺ¤‰ć›´ă•ă‚Śăľă—ăź" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "ăˇăĽă«ă—ăジェクăă‚’čŞčľĽä¸ă«ă‚¨ă©ăĽ" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "ç”»ĺŹă‚’äżťĺä¸" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "ăˇăĽă«ă—ăジェクăăŚä˝śćă•ă‚Śăľă—ăź" + +#~ msgid "Image" +#~ msgstr "ç”»ĺŹ" + +#~ msgid "Viewer (png):" +#~ msgstr "ă“ăĄăĽăŻ(PNG):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "ăˇăĽă«ă‚¤ăˇăĽă‚¸čˇ¨ç¤şă®ăźă‚ă®ĺ®źčˇŚă‚łăžăłă‰ă‚’入力" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "ăˇăĽă«ă‚¤ăˇăĽă‚¸ă“ăĄăĽăŻă®ĺ®źčˇŚă«ĺ¤±ć•—ă—ăľă—ăźďĽš" + +#~ msgid "Step" +#~ msgstr "ă‚ąă†ăă—" + +#~ msgid "Mail" +#~ msgstr "ăˇăĽă«" Binary files differ@@ -1,15 +1,15 @@ # Translations for XSane English->Dutch # Copyright (C) 2001 Free Software Foundation, Inc. -# W. Sinke <sinke@wirehub.nl>, 2001, 2002,2004. +# W. Sinke <rietenmeubel@xs4all.nl>, 2001, 2002,2004. # <>, 2004. # # msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2004-08-26 11:29+0200\n" -"Last-Translator: Wim Sinke <sinke@wirehub.nl>\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-22 09:00+0100\n" +"Last-Translator: Wim Sinke <rietenmeubel@xs4all.nl>\n" "Language-Team: Dutch <nl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,18 +83,22 @@ msgstr "faxpagina hernoemen" msgid "insert ps-file into fax" msgstr "ps-bestand in fax voegen" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "e-mailproject" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-mailproject" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "e-mail afbeelding hernoemen" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" msgstr "voeg afbeelding in e-mail" +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "meerdere pagina's project" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "scangebied hernoemen" @@ -383,6 +387,10 @@ msgstr "Project beginnen" msgid "Send project" msgstr "Project versturen" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Bewaar meerdere pagina's bestand" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Project verwijderen" @@ -424,8 +432,8 @@ msgstr "Bind scale" msgid "Fine mode" msgstr "Fijne modus" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" msgstr "HTML e-mail" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -440,6 +448,14 @@ msgstr "Waarschuwing bij overschrijving" msgid "Skip existing filenames" msgstr "Bestaande bestandnamen overslaan" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Opslaan als zlib gecomprimeerd PostScript (level 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Opslaan als PDF zlib gecomprimeerd" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Bewaar 16 bit PNM in ASCII formaat" @@ -472,10 +488,6 @@ msgstr "Automatisch scangebied selecteren" msgid "Autocorrect colors" msgstr "Automatisch kleuren verbeteren" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 legalisatie" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Gebruik GUI progressie pipe" @@ -492,14 +504,6 @@ msgstr "Bruikbare apparaten:" msgid "XSane options" msgstr "XSane opties" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane mode" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Stap" - #. TEXT_FILETYPE msgid "Type" msgstr "Type" @@ -693,8 +697,8 @@ msgstr "" "de\n" "BRUIKBAARHEID VOOR EEN SPECIAAL DOEL.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "E-mail:" #. TEXT_HOMEPAGE @@ -712,16 +716,16 @@ msgstr "Vertaling:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Vertaling naar het Nederlands\n" "door Wim Sinke\n" -"E-mail: sinke@wirehub.nl\n" +"E-mail: rietenmeubel@xs4all.nl\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -731,22 +735,30 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Gescande paginas: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "E-mail tekst:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Aanhangsels:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Projectstatus:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" msgstr "E-mail afbeelding bestandstype:" +#. TEXT_PAGES +msgid "Pages:" +msgstr "Pagina's:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Meerdere pagina's document bestandstype:" + #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" msgstr "Naam medium:" @@ -859,6 +871,10 @@ msgstr "Printer gammawaarde groen:" msgid "Printer gamma blue:" msgstr "Printer gammawaarde blauw:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "Maak zlib gecomprimeerd PostScript (level 3) plaatje voor printen" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Tijdelijke map" @@ -883,6 +899,10 @@ msgstr "PNG compressie" msgid "Filename counter length" msgstr "Bestandsnaamteller lengte" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip compressie ratio" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16 bit compressie" @@ -923,10 +943,6 @@ msgstr "Preview gamma blauw:" msgid "Threshold option:" msgstr "Drempelwaarde optie:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Automatische document invoer mode:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Preview pipetbereik" @@ -979,6 +995,10 @@ msgstr "Geef programma standaardwaarden:" msgid "Viewer (Postscript):" msgstr "Bekijkprogramma (PostScript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "Maak zlib gecomprimeerd PostScript (level 3) plaatje voor fax" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server:" @@ -987,14 +1007,29 @@ msgstr "SMTP server:" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Van:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Antwoord aan:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3 legalisatie" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Gebruik:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Paswoord:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -1003,18 +1038,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 gebruiker:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 paswoord:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Bekijkprogramma (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Tekstherkennings- (OCR) commando:" @@ -1058,9 +1081,9 @@ msgstr "nieuwe media" msgid "Save" msgstr "Opslaan" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Afbeelding" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Bestandssoort" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1070,9 +1093,9 @@ msgstr "KopiĂ«ren" msgid "Fax" msgstr "Faxen" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "E-mailen" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "E-mail" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1086,9 +1109,9 @@ msgstr "Bekijk" msgid "Enhancement" msgstr "Verbetering" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Meerdere pagina's" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1235,6 +1258,10 @@ msgstr "JPEG DCT compressie" msgid "pack bits" msgstr "gepackte bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "uitpakken" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Slider (Vergroting)" @@ -1299,6 +1326,27 @@ msgstr "Element naar boven" msgid "Move item down" msgstr "Element naar beneden" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3 legalisatie" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Aan het scannen" @@ -1308,6 +1356,10 @@ msgstr "Aan het scannen" msgid "Receiving %s data" msgstr "Ontvang %s gegevens" +#. PROGRESS_PAGE +msgid "page" +msgstr "pagina" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Versturen afbeelding" @@ -1370,11 +1422,11 @@ msgstr "Breek de preview af <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"opslaan-<Ctrl-s>, bekijk-<Ctrl-v>, kopieer-<Ctrl-c>, fax-<Ctrl-f> of mail-" -"<Ctrl-m>" +"bekijk-<Ctrl-v>, opslaan-<Ctrl-s>, kopieer-<Ctrl-c>, meerdere pagina's <Ctrl-" +"m>, fax-<Ctrl-f> of mail-<Ctrl-m>" #. DESC_XSANE_MEDIUM msgid "" @@ -1422,26 +1474,34 @@ msgstr "Geef de naam van de faxpagina" msgid "Enter receiver phone number or address" msgstr "Geef telefoonnummer of adres van de ontvanger" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" msgstr "De naam van het e-mail project" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" -msgstr "De naam van de afbeelding" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "De nieuwe naam van de e-mail afbeelding" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" msgstr "E-mail adres" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "E-mail onderwerp" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Selecteer het type van het meerder pagina's bestand" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Geef naam voor scangebied" @@ -1670,6 +1730,14 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Maak zlib gecomprimeerd PostScript plaatje voor de printer (flatdecode).\n" +"De printen moet kunnen werken met PostScript level 3!" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Pad naar tijdelijke map" @@ -1693,6 +1761,10 @@ msgstr "Compressie van PNG afbeeldingen" msgid "Minimum length of counter in filename" msgstr "Minimale lengte van bestandenteller" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Compressie van zip gecomprimeerde TIFF (deflate)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Compressie van 16-bits TIFF afbeeldingen" @@ -1721,6 +1793,18 @@ msgstr "" "Gebruikte numbers worden overgeslagen als de bestandsteller automatisch " "verhoogd wordt" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "Comprimeer PDF plaatje met zlib algoritme (flatdecode)." + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1828,13 +1912,9 @@ msgstr "" "Verschuiving om de drempelwaarde van XSane gelijk te maken aan die van de " "scanner" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Kies bron voor automatische document doorvoer. Indien geselecteerd gaat " -"XSane door met scannen to een \"papier op\" fout." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Aantal paginas om te scannen" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1886,6 +1966,10 @@ 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)" +msgstr "Maak zlib gecomprimeerd PostScript plaatje voor fax (flatdecode)" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP-adres of domain name van SMTP server" @@ -1894,18 +1978,29 @@ msgstr "IP-adres of domain name van SMTP server" msgid "port to connect to SMTP server" msgstr "port om met SMTP server te communiceren" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "geef je e-mail adres" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" msgstr "geef e-mail adres voor antwoord e-mails" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Inloggen in POP3 server voor het versturen van e-mail" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "gebruikersnaam voor POP3 server" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "paswoord voor POP3 server" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "IP-adres of domain name van POP3 server" @@ -1914,20 +2009,8 @@ msgstr "IP-adres of domain name van POP3 server" msgid "port to connect to POP3 server" msgstr "port om met POP3 server te communiceren" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "gebruikersnaam voor POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "paswoord voor POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Commando om e-mail afbeelding te bekijken" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "E-mail wordt als HTML verstuurd. Afbeeldingen plaatsen met: <IMAGE>" #. DESC_OCR_COMMAND @@ -2149,8 +2232,12 @@ msgid "Filename too long" msgstr "Bestandsnaam te lang" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Kon geen tijdelijk bestand maken" +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" @@ -2243,7 +2330,7 @@ msgstr "LIBJPEG geeft foutmelding" #. ERR_ZLIB msgid "ZLIB error or memory allocation problem" -msgstr "" +msgstr "ZLIB fout of geheugen probleem" #. ERR_UNKNOWN_TYPE msgid "unknown type" @@ -2275,10 +2362,6 @@ msgstr "Kon fax programma niet starten:" msgid "Failed to execute fax command:" msgstr "Kon fax commando niet uitvoeren:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Kon e-mail afbeelding niet bekijken:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Kon tekstherkenningscommando niet uitvoeren:" @@ -2329,14 +2412,6 @@ msgstr "Preview kan niet met deze kleurdiepte werken" msgid "GIMP support missing" msgstr "Geen GIMP ondersteuning" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Kon geen tijdelijke preview bestanden maken" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Kon geen naam maken voor previewbestand" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Kon geen faxproject maken" @@ -2465,8 +2540,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2499,8 +2575,9 @@ msgstr "" " -V, --viewer begin in bekijk-mode (standaard)\n" " -s, --save begin in save-mode\n" " -c, --copy begin in kopieer-mode\n" +" -m, --multipage............begin in meerdere pagina's mode\n" " -f, --fax begin in fax-mode\n" -" -m, --mail begin in e-mail-mode\n" +" -e, --email begin in e-mail-mode\n" " -n, --no-mode-selection deactiveer menu voor XSane-mode selectie\n" "\n" " -F, --Fixed vaste grootte hoofdvenster (overschrijft " @@ -2679,66 +2756,75 @@ msgstr "Konica negatief VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negatief HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "E-mail project niet gemaakt" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Project is niet gemaakt" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Project gemaakt" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "E-mail project gemaakt" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Project veranderd" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "E-mail project veranderd" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Fout tijdens lezen van project" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "Fout tijdens lezen van e-mail project" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Fout bij het bewaren van bestand" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Bestand bewaren" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Bewaren van bestand afgebroken" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Bestand is opgeslagen" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3 verbinding mislukt" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3 login mislukt" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "SMTP verbinding mislukt" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP verbinding mislukt" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Verstuurder adres is afgewezen" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Ontvanger adres is afgewezen" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" msgstr "E-mail data niet geaccepteerd" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "Versturen e-mail" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "E-mail is verstuurd" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Fax project is niet gemaakt" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Fax project gemaakt" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Fax project veranderd" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Fax in de wachtrij aan het zetten" @@ -2801,3 +2887,25 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Kon geen tijdelijke preview bestanden maken" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Kon geen naam maken voor previewbestand" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "POP3 legalisatie" + +#~ msgid "XSane mode" +#~ msgstr "XSane mode" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 gebruiker:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 paswoord:" Binary files differ@@ -1,17 +1,22 @@ +# translation of pl.po to polski # Polish translation for XSane. # Copyright (c) 2002-2003 Piotr Gogolewski # Piotr Gogolewski <docent@panoramix.net.pl>, 2003. +# Jerzy Szczudlowski <jerzy@jedwab.net.pl>, 2005. # msgid "" msgstr "" -"Project-Id-Version: XSane 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2004-10-21 00:52+0100\n" -"Last-Translator: Jerzy SzczudĹ‚owski <jerzy@jedwab.net.pl>\n" -"Language-Team: Polish <pl@li.org>\n" +"Project-Id-Version: pl\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-22 01:26+0100\n" +"Last-Translator: Jerzy Szczudlowski <jerzy@jedwab.net.pl>\n" +"Language-Team: polski <pl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%" +"100<10 || n%100>=20) ? 1 : 2);\n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR @@ -79,18 +84,22 @@ msgstr "zmieĹ„ nazwÄ™ strony faksu" msgid "insert ps-file into fax" msgstr "wstaw plik postscriptowy do faksu" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "wyĹ›lij obrazek pocztÄ…" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "wyĹ›lij projekt listem elektronicznym" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "zmieĹ„ nazwÄ™ obrazka w liĹ›cie" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" msgstr "wstaw plik do listu" +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "projekt wielostronicowy" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "zmieĹ„ nazwÄ™ ustawionego obszaru" @@ -379,6 +388,10 @@ msgstr "StwĂłrz projekt" msgid "Send project" msgstr "WyĹ›lij projekt" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Zapisz plik wielostronicowy" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "UsuĹ„ projekt" @@ -419,9 +432,9 @@ msgstr "Ustal skalÄ™" msgid "Fine mode" msgstr "Tryb lepszy" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "Poczta w HTML" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "Poczta ze znacznikami HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" @@ -435,6 +448,14 @@ msgstr "OstrzeĹĽenie przed nadpisaniem" msgid "Skip existing filenames" msgstr "PomiĹ„ istniejÄ…ce nazwy plikĂłw" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Zapis Postscriptu kompresowanego zlib (poziom PS 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Zapis PDF skompresowanego zlib" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Zapisz 16-bitowe obrazki pnm w formacie ASCII" @@ -467,10 +488,6 @@ msgstr "Wybierz obszar skanowania po podglÄ…dzie" msgid "Autocorrect colors" msgstr "Samoczynnie koryguj kolory" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Uwierzytelnianie POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "UĹĽywaj graficznego paska postÄ™pu" @@ -487,14 +504,6 @@ msgstr "DostÄ™pne urzÄ…dzenia:" msgid "XSane options" msgstr "Opcje XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Tryb XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Skok" - #. TEXT_FILETYPE msgid "Type" msgstr "Typ" @@ -684,8 +693,8 @@ msgstr "" "JAKIEJKOLWIEK GWARANCJI; w tym miÄ™dzy innymi domyĹ›lnych gwarancji co do\n" "PRZYDATNOĹšCI HANDLOWEJ i PRZYDATNOĹšCI DO OKREĹšLONYCH ZASTOSOWAĹ.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "Adres email:" #. TEXT_HOMEPAGE @@ -703,17 +712,17 @@ msgstr "TĹ‚umaczenie:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Piotr Gogolewski <docent@panoramix.net.pl>\n" "http://www.chemia.px.pl/\n" "\n" -"korekta i aktualizacja do wersji 0.96:\n" +"korekta i aktualizacja do wersji 0.99-pre1:\n" "Jerzy SzczudĹ‚owski <jerzy@jedwab.net.pl>\n" #. TEXT_INFO_BOX @@ -724,21 +733,29 @@ msgstr "0x0: 0kB" msgid "Scanned pages: " msgstr "Skanowane strony:" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "Tekst listu:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "ZaĹ‚Ä…czniki:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Status projektu:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "Rodzaj formatu pliku:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "Rodzaj formatu pliku w liĹ›cie:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Strony:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Rodzaj formatu pliku dokumentu wielostronicowego:" #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" @@ -852,6 +869,10 @@ msgstr "Gamma drukarki - zielony:" msgid "Printer gamma blue:" msgstr "Gamma drukarki - niebieski:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "StwĂłrz obraz Postscript skompresowany zlib (poziom PS 3) do druku" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Katalog tymczasowy" @@ -876,6 +897,10 @@ msgstr "Kompresja obrazka PNG" msgid "Filename counter length" msgstr "DĹ‚ugość licznika nazw plikĂłw" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "Współczynnik kompresji zip obrazu TIFF" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Kompresja 16-bitowa obrazka TIFF" @@ -916,10 +941,6 @@ msgstr "Gamma podglÄ…du - niebieski:" msgid "Threshold option:" msgstr "Typ progu:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Automatyczny podajnik dokumentĂłw (ADF):" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "ZasiÄ™g pipety w podglÄ…dzie" @@ -972,6 +993,10 @@ msgstr "Ustaw domyĹ›lne wartoĹ›ci dla programu:" msgid "Viewer (Postscript):" msgstr "PrzeglÄ…darka (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "StwĂłrz obraz Postscript skompresowany zlib (poziom PS 3) dla faksu" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Serwer SMTP:" @@ -980,14 +1005,29 @@ msgstr "Serwer SMTP:" msgid "SMTP port:" msgstr "Port SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Od:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "OdpowiedĹş do:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Uwierzytelnianie POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "UĹĽycie:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "HasĹ‚o:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Serwer POP3:" @@ -996,18 +1036,6 @@ msgstr "Serwer POP3:" msgid "POP3 port:" msgstr "Port POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "UĹĽytkownik POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "HasĹ‚o POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "PrzeglÄ…darka (PNG):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Komenda programu OCR:" @@ -1051,9 +1079,9 @@ msgstr "nowy noĹ›nik" msgid "Save" msgstr "Zapis" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Obrazek" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Rodzaj pliku" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1063,9 +1091,9 @@ msgstr "Kopia" msgid "Fax" msgstr "Faks" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Poczta" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "Poczta elektroniczna" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1079,9 +1107,9 @@ msgstr "WyĹ›wietlanie" msgid "Enhancement" msgstr "Ulepszanie" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Poczta" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Wielostronicowy" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1153,7 +1181,7 @@ msgstr "PokaĹĽ listÄ™ rozdzielczoĹ›ci" #. MENU_ITEM_PAGE_ROTATE msgid "Rotate postscript" -msgstr "Obróć postscript" +msgstr "Obróć Postscript" #. MENU_ITEM_EDIT_MEDIUM_DEF msgid "Edit medium definition" @@ -1227,6 +1255,10 @@ msgstr "kompresja JPEG DCT" msgid "pack bits" msgstr "\"pack bits\"" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "deflacja" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "suwak (skala)" @@ -1291,6 +1323,27 @@ msgstr "PrzesuĹ„ obiekt do gĂłry" msgid "Move item down" msgstr "PrzesuĹ„ obiekt w dół" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Uwierzytelnianie POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skanowanie" @@ -1300,6 +1353,10 @@ msgstr "Skanowanie" msgid "Receiving %s data" msgstr "Pobieranie danych %s" +#. PROGRESS_PAGE +msgid "page" +msgstr "strona" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "PrzesyĹ‚anie obrazka..." @@ -1362,11 +1419,11 @@ msgstr "Przerwij/Anuluj skanowanie poglÄ…dowe <Alt-Esc>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"podglÄ…d <Ctrl-v>, zapis <Ctrl-s>, fotokopia <Ctrl-c>, faks <Ctrl-f>, wyĹ›lij " -"pocztÄ… <Ctrl-m>" +"podglÄ…d-<Ctrl-v>, zapis-<Ctrl-s>, fotokopia-<Ctrl-c>, wielostronicowość-" +"<Ctrl-m>, faks-<Ctrl-f> lub poczta-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1414,26 +1471,34 @@ msgstr "WprowadĹş nowÄ… nazwÄ™ dla strony faksu" msgid "Enter receiver phone number or address" msgstr "WprowadĹş nr telefonu odbiorcy lub adres" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" -msgstr "WprowadĹş nazwÄ™ projektu poczty" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "WprowadĹş nazwÄ™ projektu pocztowego" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "WprowadĹş nowÄ… nazwÄ™ dla wysyĹ‚anego obrazka" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "WprowadĹş adres poczty elektronicznej" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "WprowadĹş adres poczty elektronicznej (email)" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "WprowadĹş temat listu" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Wybierz rodzaj dla pliku wielostronicowego" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "WprowadĹş nowÄ… nazwÄ™ dla ustawionego obszaru" @@ -1622,20 +1687,20 @@ msgid "" "Resolution with which lineart images are printed and saved in postscript" msgstr "" "Rozdzielczość, z jakÄ… obrazki w trybie kreski sÄ… drukowane i zapisywane w " -"postscripcie" +"Postscripcie" #. DESC_PRINTER_GRAYSCALE_RESOLUTION msgid "" "Resolution with which grayscale images are printed and saved in postscript" msgstr "" "Rozdzielczość, z jakÄ… obrazki w skali szaroĹ›ci sÄ… drukowane i zapisywane w " -"postscripcie" +"Postscripcie" #. DESC_PRINTER_COLOR_RESOLUTION msgid "Resolution with which color images are printed and saved in postscript" msgstr "" "Rozdzielczość, z jakÄ… obrazki kolorowe sÄ… drukowane i zapisywane w " -"postscripcie" +"Postscripcie" #. DESC_PRINTER_WIDTH msgid "Width of printable area" @@ -1669,6 +1734,14 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"StwĂłrz obraz Postscript skompresowany zlib (flatdecode).\n" +"Drukarka musi rozumieć Postscript poziomu 3!" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "ĹšcieĹĽka do katalogu tymczasowego" @@ -1681,8 +1754,8 @@ msgstr "PrzeglÄ…daj katalog tymczasowy" msgid "" "Quality in percent if image is saved as jpeg or tiff with jpeg compression" msgstr "" -"WyraĹĽona w procentach jakość z jakÄ… zostanie zapisany jpeg lub tiff z " -"kompresjÄ… jpeg" +"WyraĹĽona w procentach jakość z jakÄ… zostanie zapisany JPEG lub TIFF z " +"kompresjÄ… JPEG" #. DESC_PNG_COMPRESSION msgid "Compression if image is saved as png" @@ -1692,17 +1765,21 @@ msgstr "Kompresja obrazka zapisanego jako png" msgid "Minimum length of counter in filename" msgstr "Minimalna dĹ‚ugość licznika w nazwie pliku" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "StopieĹ„ kompresji zip przy zapisie jako TIFF (deflacja)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" -msgstr "Typ kompresji przy zapisie jako tiff 16 bit obrazka" +msgstr "Typ kompresji przy zapisie jako TIFF 16 bit obrazka" #. DESC_TIFF_COMPRESSION_8 msgid "Compression type if 8 bit image is saved as tiff" -msgstr "Typ kompresji przy zapisie jako tiff 8 bit obrazka" +msgstr "Typ kompresji przy zapisie jako TIFF 8 bit obrazka" #. DESC_TIFF_COMPRESSION_1 msgid "Compression type if lineart image is saved as tiff" -msgstr "Typ kompresji przy zapisie jako tiff obrazka w trybie kreski" +msgstr "Typ kompresji przy zapisie jako TIFF obrazka w trybie kreski" #. DESC_SAVE_DEVPREFS_AT_EXIT msgid "Save device dependant preferences in default file at exit of xsane" @@ -1720,6 +1797,18 @@ msgstr "" "JeĹ›li licznik w nazwie pliku jest automatycznie zwiÄ™kszany, to juĹĽ uĹĽyte " "numery sÄ… pomijane" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "kompresuje obraz PDF alborytmem zlib (flatdecode)." + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1834,13 +1923,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "Margines ujednolicajÄ…cy zasiÄ™g progu XSane i skanera" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Wybierz ĹşrĂłdĹ‚o dla Automatycznego Podajnika DokumentĂłw. JeĹĽeli to ĹşrĂłdĹ‚o " -"jest wybrane, XSane skanuje aĹĽ do koĹ„czenia siÄ™ papieru lub wystÄ…pienia bĹ‚Ä™du" +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Liczba stron do zeskanowania" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1877,7 +1962,7 @@ msgstr "WprowadĹş opcjÄ™ by okreĹ›lić odbiornik" #. DESC_FAX_POSTSCRIPT_OPT msgid "Enter option to specify postscript files following" -msgstr "WprowadĹş opcjÄ™ by okreĹ›lić nastÄ™pujÄ…ce pliki postscript" +msgstr "WprowadĹş opcjÄ™ by okreĹ›lić nastÄ™pujÄ…ce pliki Postscript" #. DESC_FAX_NORMAL_OPT msgid "Enter option to specify normal mode (low resolution)" @@ -1896,6 +1981,11 @@ 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)" +msgstr "" +"Tworzy skompresowany algorytmem zlib (flatdecode) obraz Postscript dla faksu" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Adres IP lub nazwa domeny serwera SMTP" @@ -1904,18 +1994,29 @@ msgstr "Adres IP lub nazwa domeny serwera SMTP" msgid "port to connect to SMTP server" msgstr "port serwera SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "wprowadĹş swĂłj adres email" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "wprowadĹş adres email dla odpowiedzi" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "wprowadĹş adres email dla listĂłw zwrotnych" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Uwierzytelnianie na serwerze POP3 przed wysĹ‚aniem poczty" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "nazwa uĹĽytkownika dla serwera POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "hasĹ‚o dla serwera POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Adres IP lub nazwa domeny serwera POP3" @@ -1924,23 +2025,9 @@ msgstr "Adres IP lub nazwa domeny serwera POP3" msgid "port to connect to POP3 server" msgstr "port serwera POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "nazwa uĹĽytkownika dla serwera POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "hasĹ‚o dla serwera POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "" -"WprowadĹş polecenie, ktĂłre zostanie wykonane do przejrzenia wysyĹ‚anego pocztÄ… " -"obrazka" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" -msgstr "Poczta jest wysyĹ‚ana jako HTML, umieść obrazek uĹĽywajÄ…c: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" +msgstr "Poczta jest wysyĹ‚ana w trybie HTML, umieść obrazek uĹĽywajÄ…c: <IMAGE>" #. DESC_OCR_COMMAND msgid "Enter command to start ocr program" @@ -2162,8 +2249,12 @@ msgid "Filename too long" msgstr "Zbyt dĹ‚uga nazwa pliku" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Nie powiodĹ‚o siÄ™ utworzenie pliku tymczasowego" +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" @@ -2258,7 +2349,7 @@ msgstr "biblioteka LIBPNG zgĹ‚asza bĹ‚Ä…d" #. ERR_ZLIB msgid "ZLIB error or memory allocation problem" -msgstr "" +msgstr "bĹ‚Ä…d ZLIB lub problem alokacji pamiÄ™ci" #. ERR_UNKNOWN_TYPE msgid "unknown type" @@ -2275,7 +2366,8 @@ msgstr "Opcja ma pustÄ… nazwÄ™" #. ERR_BACKEND_BUG msgid "This is a backend bug. Please inform the author of the backend!" msgstr "" -"To jest bĹ‚Ä…d backendu. ProszÄ™ skontaktować siÄ™ z autorem danego backendu!" +"To jest bĹ‚Ä…d sterownika. ProszÄ™ skontaktować siÄ™ z autorem danego sterownika " +"(backendu)!" #. ERR_FAILED_EXEC_DOC_VIEWER msgid "Failed to execute documentation viewer:" @@ -2289,10 +2381,6 @@ msgstr "Nie powiodĹ‚o siÄ™ uruchomienie przeglÄ…darki faksĂłw:" msgid "Failed to execute fax command:" msgstr "Nie powiodĹ‚o siÄ™ uruchomienie programu faksujÄ…cego:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Nie powiodĹ‚o siÄ™ uruchomienie przeglÄ…darki obrazkĂłw:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Nie powiodĹ‚o siÄ™ uruchomienie programu OCR:" @@ -2342,14 +2430,6 @@ msgstr "PodglÄ…d nie radzi sobie z tÄ… gĹ‚Ä™bokoĹ›ciÄ… bitowÄ…" msgid "GIMP support missing" msgstr "Brak obsĹ‚ugi GIMPa" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Nie moĹĽna utworzyć tymczasowych plikĂłw podglÄ…du" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Nie moĹĽna nadać nazw plikom podglÄ…du" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Nie moĹĽna utworzyć dokumentu faksu" @@ -2478,8 +2558,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2496,11 +2577,11 @@ msgid "" " --sync request a synchronous connection with the X11 " "server" msgstr "" -"Uruchamia graficzny interfejs dla urzÄ…dzeĹ„ obsĹ‚ugiwanych przez Sane " -"(ScannerAccess Now Easy).\n" +"Uruchamia graficzny interfejs dla urzÄ…dzeĹ„ obsĹ‚ugiwanych przez SANE (Scanner " +"Access Now Easy).\n" "\n" -"Format [URZÄ„DZENIE] to sterownik:plik_urzÄ…dzenia (np. microtek2:/dev/sg2).\n" -"[OPCJE]... mogÄ… być kombinacjÄ… nastÄ™pujÄ…cych pozycji:\n" +"Format [URZÄ„DZENIE] to sterownik:plik_urzÄ…dzenia (np. umax:/dev/scanner).\n" +"[OPCJA]... moĹĽe być kombinacjÄ… nastÄ™pujÄ…cych pozycji:\n" " -h, --help wyĹ›wietl tÄ… wiadomość z pomocÄ… i zakoĹ„cz\n" " -v, --version wyĹ›wietl informacjÄ™ o wersji\n" " -l, --license wyĹ›wietl informacjÄ™ o licencji\n" @@ -2511,12 +2592,11 @@ msgstr "" " -V, --viewer rozpocznij w trybie podglÄ…du (domyĹ›lne)\n" " -s, --save rozpocznij w trybie zapisu\n" " -c, --copy rozpocznij w trybie kopiowania\n" +" -m, --multipage rozpocznij w trybie wielostronicowym\n" " -f, --fax rozpocznij w trybie faksu\n" -" -m, --mail rozpocznij w trybie wysyĹ‚ania poczty\n" +" -e, --email rozpocznij w trybie wysyĹ‚ania poczty\n" " -n, --no-mode-selection wyĹ‚Ä…cz menu wyboru trybu XSane\n" "\n" -" -M, --Medium-calibration wĹ‚Ä…cz tryb kalibracji materiaĹ‚u\n" -"\n" " -F, --Fixed staĹ‚y rozmiar gĹ‚Ăłwnego okna (ignoruje wartość " "z preferencji)\n" " -R, --Resizeable zmienialny rozmiar gĹ‚Ăłwnego okna z paskami " @@ -2524,11 +2604,12 @@ msgstr "" "\n" " -p, --print-filenames wyĹ›wietl nazwy obrazkĂłw utworzonych przez " "XSane\n" -" -N, --force-filename name force filename and disable user filename " -"selection\n" +" -N, --force-filename name wymuĹ› nazwÄ™ pliku i zablokuj wybĂłr przez " +"uĹĽytkownika\n" "\n" " --display X11-display przekieruj wyjĹ›cie na wyĹ›wietlacz X11\n" -" --no-xshm nie uĹĽywaj dla obrazkĂłw pamiÄ™ci współdzielonej " +" --no-xshm nie uĹĽywaj dla obrazkĂłw pamiÄ™ci " +"współdzielonej\n" "--sync ĹĽÄ…daj synchronicznego poĹ‚Ä…czenia z serwerem X11" #. strings for gimp plugin @@ -2696,66 +2777,75 @@ msgstr "negatyw Konica VX 100" msgid "Rossmann negative HR 100" msgstr "negatyw Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Dokument pocztowy nie utworzony" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt nie utworzony" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Dokument pocztowy utworzony" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt utworzony" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Dokument pocztowy zostaĹ‚ zmieniony" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt zmieniony" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "WprowadĹş nazwÄ™ projektu pocztowego" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "BĹ‚Ä…d w trakcie czytania projektu" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "BĹ‚Ä…d zapisu pliku" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Zapisywanie pliku" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Zapisywanie pliku anulowane" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Plik zostaĹ‚ zapisany" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "poĹ‚Ä…czenie POP3 nie powiodĹ‚o siÄ™" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "logowanie POP3 nie powiodĹ‚o siÄ™" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "poĹ‚Ä…czenie SMTP nie powiodĹ‚o siÄ™" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "poĹ‚Ä…czenie SMTP nie powiodĹ‚o siÄ™" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "NagĹ‚Ăłwek Od: odrzucony" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Odbiorca odrzucony" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" msgstr "Dane pocztowe odrzucone" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "WysyĹ‚anie poczty" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "Poczta zostaĹ‚a wysĹ‚ana" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Projekt faksowy nie utworzony" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Projekt faksowy utworzony" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Projekt faksowy zmieniony" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Kolejkowanie Faksu" @@ -2818,3 +2908,25 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Nie moĹĽna utworzyć tymczasowych plikĂłw podglÄ…du" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Nie moĹĽna nadać nazw plikom podglÄ…du" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Uwierzytelnianie POP3" + +#~ msgid "XSane mode" +#~ msgstr "Tryb XSane" + +#~ msgid "POP3 user:" +#~ msgstr "UĹĽytkownik POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "HasĹ‚o POP3:" Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-10-08 22:00+3\n" "Last-Translator: Yujo Rodrigues <yujo@comp.ufu.br>\n" "Language-Team: Portuguese <pt@li.org>\n" @@ -79,18 +79,26 @@ msgstr "renomeia página de fax" msgid "insert ps-file into fax" msgstr "insere arquivo-ps em um fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "projeto de e-mail" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "renomeia imagem de correio" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "insere arquivo no correio" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Apagar projeto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renomeia area predefinida" @@ -379,6 +387,11 @@ msgstr "Criar projeto" msgid "Send project" msgstr "Enviar projeto" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Salvar imagem" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Apagar projeto" @@ -419,8 +432,9 @@ msgstr "Escala cega" msgid "Fine mode" msgstr "Modo fino" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "Correio HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -435,6 +449,14 @@ msgstr "Aviso ao Sobregravar" msgid "Skip existing filenames" msgstr "Pular arquivos existentes" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Salvar pnm 16bits em formato ascii" @@ -467,10 +489,6 @@ msgstr "PrĂ©-seleciona área de digitalização" msgid "Autocorrect colors" msgstr "Corrigir cores" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Autenticação POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Usar barra gráfica de progresso" @@ -487,14 +505,6 @@ msgstr "Dispositivos disponĂveis:" msgid "XSane options" msgstr "Opções do XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Modo do XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Passo" - #. TEXT_FILETYPE msgid "Type" msgstr "Tipo" @@ -684,8 +694,9 @@ msgstr "" "SEM QUALQUER GARANTIA; nem mesmo a garantia implĂcita de\n" "OPERACIONALIDADE ou CAPACIDADE PARA UMA FINALIDADE PARTICULAR.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "E-mail:" #. TEXT_HOMEPAGE @@ -703,12 +714,13 @@ msgstr "Tradução:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "traduzido para o PortuguĂŞs\n" "por Yujo Rodrigues\n" @@ -722,20 +734,32 @@ msgstr "" msgid "Scanned pages: " msgstr "Páginas digitalizadas:" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Texto do e-mail:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Anexos:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Estado do projeto:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Tipo de arquivo da imagem de correio:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Uso:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Tipo de arquivo da imagem de correio:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -850,6 +874,10 @@ msgstr "Verde gama da Impressora:" msgid "Printer gamma blue:" msgstr "Azul gama da Impressora:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "DiretĂłrio temporário:" @@ -874,6 +902,11 @@ msgstr "CompressĂŁo da imagem PNG" msgid "Filename counter length" msgstr "Comprimento do contador de arquivo" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "CompressĂŁo de imagem TIFF 8 bits" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "CompressĂŁo de imagem TIFF 16 bits" @@ -914,10 +947,6 @@ msgstr "PrĂ©via azul gama:" msgid "Threshold option:" msgstr "Opção de Threshold:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Modo de Alimentação de Documento Automático" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "PrĂ©-visualiza a faixa da pipeta" @@ -970,6 +999,10 @@ msgstr "Configura os padrões do programa para:" msgid "Viewer (Postscript):" msgstr "Visualizador (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Servidor SMTP:" @@ -978,14 +1011,29 @@ msgstr "Servidor SMTP:" msgid "SMTP port:" msgstr "Porta SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "De:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Responder para:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Autenticação POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Uso:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Senha :" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Servidor POP3" @@ -994,18 +1042,6 @@ msgstr "Servidor POP3" msgid "POP3 port:" msgstr "Porta POP3" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Usuário POP3" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Senha POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visualizador (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Comando OCR:" @@ -1049,9 +1085,10 @@ msgstr "nova mĂdia" msgid "Save" msgstr "Salvar" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Imagem" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Arquivo" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1061,9 +1098,10 @@ msgstr "Copiar" msgid "Fax" msgstr "" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Correio" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "E-mail" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1077,9 +1115,9 @@ msgstr "VĂdeo" msgid "Enhancement" msgstr "Realçamento" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1225,6 +1263,11 @@ msgstr "CompressĂŁo DCT JPEG" msgid "pack bits" msgstr "empacota bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "pausada" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Rolamento (Escala)" @@ -1289,6 +1332,27 @@ msgstr "Move item para acima" msgid "Move item down" msgstr "Move item para abaixo" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Autenticação POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Digitalizando" @@ -1298,6 +1362,11 @@ msgstr "Digitalizando" msgid "Receiving %s data" msgstr "Recebendo dados %s" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "pacote" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Transferindo imagem" @@ -1359,9 +1428,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Cancelar prĂ©via <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "salvar-<Ctrl-s>, ver-<Ctrl-v>, fotocĂłpia-<Ctrl-c>, fax-<Ctrl-f> ou mail-" "<Ctrl-m>" @@ -1412,26 +1482,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Digite o nome do projeto de correio" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Digite o novo nome para a imagem de correio" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Digite o endereço de e-mail" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Digite o assunto do e-mail" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Selecione o tipoe de arquivo para anexos de imagem" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Digite o nome para a Ă rea prĂ©-selecionada" @@ -1665,6 +1749,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Caminho para o diretĂłrio temporário" @@ -1688,6 +1778,11 @@ msgstr "CompressĂŁo se imagem Ă© salvada como png" msgid "Minimum length of counter in filename" msgstr "Comprimento mĂnimo do contador no nome de arquivo" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Tipo de compressĂŁo se imagem de 8 bits Ă© salvada como tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Tipo de compressĂŁo se imagem de 16 bits Ă© salvada como tiff" @@ -1717,6 +1812,16 @@ msgstr "" "Se o contador do nome de arquivo Ă© auto-incrementado, nĂşmeros usados sĂŁo " "pulados" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1837,14 +1942,9 @@ msgstr "" "Deslocamento para fazer as variações de threshold de XSane e o do scaner " "serem as mesmas" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Seleciona a entrada do scaner para Alimentação Automática de Documento. Se " -"esta entradado scaner estiver selecionada XSane digitalizará atĂ© mensagem " -"\"sem papel\" ou algum erro." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1902,6 +2002,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Endereço IP ou nome de DomĂnio do servidor SMTP" @@ -1910,18 +2014,31 @@ msgstr "Endereço IP ou nome de DomĂnio do servidor SMTP" msgid "port to connect to SMTP server" msgstr "porta para conectar no servidor SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "entra seu endereço de e-mail" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "entra seu endereço de e-mail para e-mails respondidos" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentica com o servidor POP3 antes de enviar e-mail" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "nome de usuário para o servidor POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "senha para o servidor POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Endereço IP ou nome de DomĂnio do servidor POP3" @@ -1930,20 +2047,9 @@ msgstr "Endereço IP ou nome de DomĂnio do servidor POP3" msgid "port to connect to POP3 server" msgstr "porta para conectar no servidor POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "nome de usuário para o servidor POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "senha para o servidor POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Entra comando a ser executado para visualizar uma imagem de e-mail" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "Correio Ă© enviado no modo html, com imagem: <IMAGE>" #. DESC_OCR_COMMAND @@ -2166,8 +2272,12 @@ msgid "Filename too long" msgstr "Nome de arquivo longo demais" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "NĂŁo foi possĂvel criar arquivo temporário" +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" @@ -2291,10 +2401,6 @@ msgstr "Falha ao executar o visualizador de fax:" msgid "Failed to execute fax command:" msgstr "Falha ao executar o comando de fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Falha ao executar o visualizador de imagem do e-mail:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Falha ao executar o comando para ocr:" @@ -2344,15 +2450,6 @@ msgstr "PrĂ©-visualização nĂŁo pode usar profundidadde de bits" msgid "GIMP support missing" msgstr "Suporte ao gimp está faltando" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "NĂŁo foi possĂvel criar arquivos de prĂ©-visualização temporários" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" -"NĂŁo foi possĂvel criar nomes de arquivos para arquivos de prĂ©-visualização" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "NĂŁo foi possĂvel criar projeto de fax" @@ -2465,6 +2562,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPCAO]... [DISPOSITIVO]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2481,8 +2579,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2699,66 +2798,86 @@ msgstr "Negativo Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Negativo Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Projeto de correio nĂŁo foi criado" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Projeto de fax nĂŁo foi criado" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Projeto de correio criado" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Projeto de Fax criado" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Projeto de correio alterado" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Projeto de fax alterado" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Erro lendo projeto de correio" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "Correio foi enviado" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "ConexĂŁo POP3 falhou" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Login na conta POP3 falhou" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "ConexĂŁo SMTP falhou" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "ConexĂŁo SMTP falhou" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Entrada de remetente nĂŁo foi aceita" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Entrada de destinatário nĂŁo foi aceita" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "Dados do e-mail nĂŁo aceitados" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Enviando correio" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "Correio foi enviado" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Projeto de fax nĂŁo foi criado" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Projeto de Fax criado" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Projeto de fax alterado" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Enviado Fax para fila" @@ -2821,3 +2940,93 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "NĂŁo foi possĂvel criar arquivos de prĂ©-visualização temporários" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "" +#~ "NĂŁo foi possĂvel criar nomes de arquivos para arquivos de prĂ©-visualização" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Autenticação POP3" + +#~ msgid "XSane mode" +#~ msgstr "Modo do XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Usuário POP3" + +#~ msgid "POP3 password:" +#~ msgstr "Senha POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Modo de Alimentação de Documento Automático" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Seleciona a entrada do scaner para Alimentação Automática de Documento. " +#~ "Se esta entradado scaner estiver selecionada XSane digitalizará atĂ© " +#~ "mensagem \"sem papel\" ou algum erro." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Projeto de correio nĂŁo foi criado" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Projeto de correio criado" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Projeto de correio alterado" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Projeto de correio nĂŁo foi criado" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Projeto de correio criado" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Projeto de correio alterado" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Erro lendo projeto de correio" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Salvando imagem" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Projeto de correio criado" + +#~ msgid "Image" +#~ msgstr "Imagem" + +#~ msgid "Viewer (png):" +#~ msgstr "Visualizador (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Entra comando a ser executado para visualizar uma imagem de e-mail" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Falha ao executar o visualizador de imagem do e-mail:" + +#~ msgid "Step" +#~ msgstr "Passo" + +#~ msgid "Mail" +#~ msgstr "Correio" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo Binary files differindex bda227b..3579543 100644 --- a/po/pt_BR.gmo +++ b/po/pt_BR.gmo diff --git a/po/pt_BR.po b/po/pt_BR.po index 2075bae..c2956a9 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-10-08 22:00+3\n" "Last-Translator: Yujo Rodrigues <yujo@comp.ufu.br>\n" "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" @@ -79,18 +79,26 @@ msgstr "renomeia página de fax" msgid "insert ps-file into fax" msgstr "insere arquivo-ps em um fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "projeto de e-mail" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "renomeia imagem de correio" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "insere arquivo no correio" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Apagar projeto" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "renomeia area predefinida" @@ -379,6 +387,11 @@ msgstr "Criar projeto" msgid "Send project" msgstr "Enviar projeto" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Salvar imagem" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Apagar projeto" @@ -419,8 +432,9 @@ msgstr "Escala cega" msgid "Fine mode" msgstr "Modo fino" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "Correio HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -435,6 +449,14 @@ msgstr "Aviso ao Sobregravar" msgid "Skip existing filenames" msgstr "Pular arquivos existentes" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Salvar pnm 16bits em formato ascii" @@ -467,10 +489,6 @@ msgstr "PrĂ©-seleciona área de digitalização" msgid "Autocorrect colors" msgstr "Corrigir cores" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Autenticação POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Usar barra gráfica de progresso" @@ -487,14 +505,6 @@ msgstr "Dispositivos disponĂveis:" msgid "XSane options" msgstr "Opções do XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Modo do XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Passo" - #. TEXT_FILETYPE msgid "Type" msgstr "Tipo" @@ -684,8 +694,9 @@ msgstr "" "SEM QUALQUER GARANTIA; nem mesmo a garantia implĂcita de\n" "OPERACIONALIDADE ou CAPACIDADE PARA UMA FINALIDADE PARTICULAR.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "E-mail:" #. TEXT_HOMEPAGE @@ -703,12 +714,13 @@ msgstr "Tradução:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "traduzido para o PortuguĂŞs do Brasil\n" "por Yujo Rodrigues\n" @@ -722,20 +734,32 @@ msgstr "" msgid "Scanned pages: " msgstr "Páginas digitalizadas:" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Texto do e-mail:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Anexos:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Estado do projeto:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Tipo de arquivo da imagem de correio:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Uso:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Tipo de arquivo da imagem de correio:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -850,6 +874,10 @@ msgstr "Verde gama da Impressora:" msgid "Printer gamma blue:" msgstr "Azul gama da Impressora:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "DiretĂłrio temporário:" @@ -874,6 +902,11 @@ msgstr "CompressĂŁo da imagem PNG" msgid "Filename counter length" msgstr "Comprimento do contador de arquivo" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "CompressĂŁo de imagem TIFF 8 bits" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "CompressĂŁo de imagem TIFF 16 bits" @@ -914,10 +947,6 @@ msgstr "PrĂ©via azul gama:" msgid "Threshold option:" msgstr "Opção de Threshold:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Modo de Alimentação de Documento Automático" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "PrĂ©-visualiza a faixa da pipeta" @@ -970,6 +999,10 @@ msgstr "Configura os padrões do programa para:" msgid "Viewer (Postscript):" msgstr "Visualizador (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Servidor SMTP:" @@ -978,14 +1011,29 @@ msgstr "Servidor SMTP:" msgid "SMTP port:" msgstr "Porta SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "De:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Responder para:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Autenticação POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Uso:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Senha :" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Servidor POP3" @@ -994,18 +1042,6 @@ msgstr "Servidor POP3" msgid "POP3 port:" msgstr "Porta POP3" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Usuário POP3" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Senha POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visualizador (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Comando OCR:" @@ -1049,9 +1085,10 @@ msgstr "nova mĂdia" msgid "Save" msgstr "Salvar" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Imagem" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Arquivo" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1061,9 +1098,10 @@ msgstr "Copiar" msgid "Fax" msgstr "" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Correio" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "E-mail" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1077,9 +1115,9 @@ msgstr "VĂdeo" msgid "Enhancement" msgstr "Realçamento" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-mail" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1225,6 +1263,11 @@ msgstr "CompressĂŁo DCT JPEG" msgid "pack bits" msgstr "empacota bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "pausada" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Rolamento (Escala)" @@ -1289,6 +1332,27 @@ msgstr "Move item para acima" msgid "Move item down" msgstr "Move item para abaixo" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Autenticação POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Digitalizando" @@ -1298,6 +1362,11 @@ msgstr "Digitalizando" msgid "Receiving %s data" msgstr "Recebendo dados %s" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "pacote" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Transferindo imagem" @@ -1359,9 +1428,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Cancelar prĂ©via <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "salvar-<Ctrl-s>, ver-<Ctrl-v>, fotocĂłpia-<Ctrl-c>, fax-<Ctrl-f> ou mail-" "<Ctrl-m>" @@ -1412,26 +1482,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Digite o nome do projeto de correio" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Digite o novo nome para a imagem de correio" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Digite o endereço de e-mail" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Digite o assunto do e-mail" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Selecione o tipoe de arquivo para anexos de imagem" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Digite o nome para a Ă rea prĂ©-selecionada" @@ -1665,6 +1749,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Caminho para o diretĂłrio temporário" @@ -1688,6 +1778,11 @@ msgstr "CompressĂŁo se imagem Ă© salvada como png" msgid "Minimum length of counter in filename" msgstr "Comprimento mĂnimo do contador no nome de arquivo" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Tipo de compressĂŁo se imagem de 8 bits Ă© salvada como tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Tipo de compressĂŁo se imagem de 16 bits Ă© salvada como tiff" @@ -1717,6 +1812,16 @@ msgstr "" "Se o contador do nome de arquivo Ă© auto-incrementado, nĂşmeros usados sĂŁo " "pulados" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1837,14 +1942,9 @@ msgstr "" "Deslocamento para fazer as variações de threshold de XSane e o do scaner " "serem as mesmas" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Seleciona a entrada do scaner para Alimentação Automática de Documento. Se " -"esta entradado scaner estiver selecionada XSane digitalizará atĂ© mensagem " -"\"sem papel\" ou algum erro." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1902,6 +2002,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Endereço IP ou nome de DomĂnio do servidor SMTP" @@ -1910,18 +2014,31 @@ msgstr "Endereço IP ou nome de DomĂnio do servidor SMTP" msgid "port to connect to SMTP server" msgstr "porta para conectar no servidor SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "entra seu endereço de e-mail" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "entra seu endereço de e-mail para e-mails respondidos" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentica com o servidor POP3 antes de enviar e-mail" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "nome de usuário para o servidor POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "senha para o servidor POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Endereço IP ou nome de DomĂnio do servidor POP3" @@ -1930,20 +2047,9 @@ msgstr "Endereço IP ou nome de DomĂnio do servidor POP3" msgid "port to connect to POP3 server" msgstr "porta para conectar no servidor POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "nome de usuário para o servidor POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "senha para o servidor POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Entra comando a ser executado para visualizar uma imagem de e-mail" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "Correio Ă© enviado no modo html, com imagem: <IMAGE>" #. DESC_OCR_COMMAND @@ -2166,8 +2272,12 @@ msgid "Filename too long" msgstr "Nome de arquivo longo demais" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "NĂŁo foi possĂvel criar arquivo temporário" +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" @@ -2291,10 +2401,6 @@ msgstr "Falha ao executar o visualizador de fax:" msgid "Failed to execute fax command:" msgstr "Falha ao executar o comando de fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Falha ao executar o visualizador de imagem do e-mail:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Falha ao executar o comando para ocr:" @@ -2344,15 +2450,6 @@ msgstr "PrĂ©-visualização nĂŁo pode usar profundidadde de bits" msgid "GIMP support missing" msgstr "Suporte ao gimp está faltando" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "NĂŁo foi possĂvel criar arquivos de prĂ©-visualização temporários" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" -"NĂŁo foi possĂvel criar nomes de arquivos para arquivos de prĂ©-visualização" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "NĂŁo foi possĂvel criar projeto de fax" @@ -2465,6 +2562,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPCAO]... [DISPOSITIVO]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2481,8 +2579,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2699,66 +2798,86 @@ msgstr "Negativo Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Negativo Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Projeto de correio nĂŁo foi criado" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Projeto de fax nĂŁo foi criado" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Projeto de correio criado" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Projeto de Fax criado" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Projeto de correio alterado" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Projeto de fax alterado" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Erro lendo projeto de correio" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Salvando imagem" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "Correio foi enviado" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "ConexĂŁo POP3 falhou" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Login na conta POP3 falhou" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "ConexĂŁo SMTP falhou" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "ConexĂŁo SMTP falhou" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Entrada de remetente nĂŁo foi aceita" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Entrada de destinatário nĂŁo foi aceita" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "Dados do e-mail nĂŁo aceitados" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Enviando correio" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "Correio foi enviado" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Projeto de fax nĂŁo foi criado" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Projeto de Fax criado" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Projeto de fax alterado" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Enviado Fax para fila" @@ -2821,3 +2940,93 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "NĂŁo foi possĂvel criar arquivos de prĂ©-visualização temporários" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "" +#~ "NĂŁo foi possĂvel criar nomes de arquivos para arquivos de prĂ©-visualização" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Autenticação POP3" + +#~ msgid "XSane mode" +#~ msgstr "Modo do XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Usuário POP3" + +#~ msgid "POP3 password:" +#~ msgstr "Senha POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Modo de Alimentação de Documento Automático" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Seleciona a entrada do scaner para Alimentação Automática de Documento. " +#~ "Se esta entradado scaner estiver selecionada XSane digitalizará atĂ© " +#~ "mensagem \"sem papel\" ou algum erro." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Projeto de correio nĂŁo foi criado" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Projeto de correio criado" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Projeto de correio alterado" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Projeto de correio nĂŁo foi criado" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Projeto de correio criado" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Projeto de correio alterado" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Erro lendo projeto de correio" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Salvando imagem" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Projeto de correio criado" + +#~ msgid "Image" +#~ msgstr "Imagem" + +#~ msgid "Viewer (png):" +#~ msgstr "Visualizador (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Entra comando a ser executado para visualizar uma imagem de e-mail" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Falha ao executar o visualizador de imagem do e-mail:" + +#~ msgid "Step" +#~ msgstr "Passo" + +#~ msgid "Mail" +#~ msgstr "Correio" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-08-27 19:55+0300\n" "Last-Translator: \n" "Language-Team: <C@li.org>\n" @@ -81,18 +81,26 @@ msgstr "RedenumeĹźte pagina de fax" msgid "insert ps-file into fax" msgstr "Introduce fiĹźier ps Ă®n fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "Trimite proiect prin email" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "RedenumeĹźte imagine scrisoare" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "Introduce fiĹźier Ă®n email" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Ĺžterge proiect" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "RedenumeĹźte zone predefinite" @@ -381,6 +389,11 @@ msgstr "CreeazÄ proiect" msgid "Send project" msgstr "Trimite proiect" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "SalveazÄ imaginea" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Ĺžterge proiect" @@ -421,8 +434,9 @@ msgstr "Legare scalÄ" msgid "Fine mode" msgstr "Mod fin" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "Email HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -437,6 +451,14 @@ msgstr "Avertizare la suprascriere" msgid "Skip existing filenames" msgstr "Salt peste fiĹźierele existente" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "SalveazÄ pnm 16 biĹŁi Ă®n format ascii" @@ -469,10 +491,6 @@ msgstr "Preselectare zonÄ de scanare" msgid "Autocorrect colors" msgstr "CorecĹŁie automatÄ culori" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Autentificare POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "FoloseĹźte pipe GUI pt. evoluĹŁie" @@ -489,14 +507,6 @@ msgstr "Dispozitive disponibile" msgid "XSane options" msgstr "OpĹŁiuni XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Mod XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Pas" - #. TEXT_FILETYPE msgid "Type" msgstr "Tip" @@ -687,8 +697,9 @@ msgstr "" "Pentru a folosi acest program, trebuie sÄ citiĹŁi, Ă®nĹŁelegeĹŁi Ĺźi acceptaĹŁi\n" "urmÄtorul contract \"FÄ‚RÄ‚ GARANŢIE\".\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "Email:" #. TEXT_HOMEPAGE @@ -706,12 +717,13 @@ msgstr "Traducere:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Tradus Ă®n limba românÄ\n" "de Harald Ersch - 2002\n" @@ -725,20 +737,32 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Pagini scanate: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Text email:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "AtaĹźamente:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Stare proiect:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Tip fiĹźier mail imagine:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Utilizare:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Tip fiĹźier mail imagine:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -853,6 +877,10 @@ msgstr "Gamma - componentÄ verde - pt. imprimantÄ" msgid "Printer gamma blue:" msgstr "Gamma - componentÄ albastru - pt. imprimantÄ" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Director temporar" @@ -877,6 +905,11 @@ msgstr "Comprimare imagine PNG" msgid "Filename counter length" msgstr "Lungime contor pt. nume fiĹźier" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "Comprimare imagine TIFF pe 8 biĹŁi" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Comprimare imagine TIFF pe 16 biĹŁi" @@ -917,10 +950,6 @@ msgstr "Previzualizare gamma albastru:" msgid "Threshold option:" msgstr "OpĹŁiuni prag:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Mod Ă®ncÄrcare automatÄ documente:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Previzualizare gamÄ pipetÄ" @@ -973,6 +1002,10 @@ msgstr "SeteazÄ valori implicite Ă®n program pt.:" msgid "Viewer (Postscript):" msgstr "Vizualizator (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Server SMTP:" @@ -981,14 +1014,29 @@ msgstr "Server SMTP:" msgid "SMTP port:" msgstr "Port SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "De la:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "RÄspuns la:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Autentificare POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Utilizare:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "ParolÄ:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Server POP3:" @@ -997,18 +1045,6 @@ msgstr "Server POP3:" msgid "POP3 port:" msgstr "Port POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Utilizator POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Parola POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Vizualizator (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "ComandÄ OCR:" @@ -1052,9 +1088,10 @@ msgstr "mediu nou" msgid "Save" msgstr "Salvare" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Imagine" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "FiĹźier" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1064,9 +1101,10 @@ msgstr "Copiere" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "PoĹźtÄ" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "PoĹźta electronicÄ" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1080,9 +1118,9 @@ msgstr "AfiĹźare" msgid "Enhancement" msgstr "ĂŽmbunÄtÄĹŁire" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "PoĹźta electronicÄ" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1228,6 +1266,11 @@ msgstr "Compresie JPEG DCT" msgid "pack bits" msgstr "pack bits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "Ă®ntârziatÄ" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "AlunecÄtor (ScalÄ)" @@ -1292,6 +1335,27 @@ msgstr "MutÄ articol Ă®n sus" msgid "Move item down" msgstr "MutÄ articol Ă®n jos" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Autentificare POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Scanare..." @@ -1301,6 +1365,11 @@ msgstr "Scanare..." msgid "Receiving %s data" msgstr "Primesc date %s" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "Pachet" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Transfer imaginea" @@ -1362,9 +1431,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "RenunĹŁÄ la scanarea pt. previzualizare <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "Salvare-<Ctrl-s>, vizualizare-<Ctrl-v>, fotocopie-<Ctrl-c>, fax-<Ctrl-f> sau " "mail-<Ctrl-m>" @@ -1415,26 +1485,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "IntroduceĹŁi numele proiectului mail" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "IntroduceĹŁi numele imaginii pt. mail" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "IntroduceĹŁi adresa de email" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "IntroduceĹŁi subiectul email-ului" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "SelectaĹŁi tipul fiĹźierelor pentru ataĹźamentele imagine" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "IntroduceĹŁi numele noii zone predefinite" @@ -1668,6 +1752,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Calea cÄtre directorul temporar" @@ -1691,6 +1781,11 @@ msgstr "Compresie dacÄ imaginea este salvatÄ ca PNG" msgid "Minimum length of counter in filename" msgstr "Lungimea minimÄ a contorului Ă®n numele fiĹźierului" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Tip compresie dacÄ o imagine de 8 biĹŁi este salvatÄ ca TIFF" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Tip compresie dacÄ o imagine de 16 biĹŁi este salvatÄ ca TIFF" @@ -1720,6 +1815,16 @@ msgstr "" "Numerele folosite deja sunt sÄrite la incrementarea automatÄ a contorului " "numelui de fiĹźier" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1846,13 +1951,9 @@ msgstr "" "Deplasamentul necesar pt. a face gama pragurilor XSane egalÄ cu cea a " "scannerului" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"SelecteazÄ drept sursÄ Alimentatorul automat de documente. ĂŽn acest caz " -"XSane scaneazÄ pâna la apariĹŁia erorii \"terminare hârtie\"" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1906,6 +2007,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Adresa IP sau numele Ă®n domeniu a serverului SMTP" @@ -1914,18 +2019,31 @@ msgstr "Adresa IP sau numele Ă®n domeniu a serverului SMTP" msgid "port to connect to SMTP server" msgstr "portul de conectare la serverul SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "IntroduceĹŁi adresa dvs. de email" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "IntroduceĹŁi adresa de email pt. email-urile de rÄspuns" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentificare la serverul POP3 Ă®nainte de a trimite poĹźta" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "nume utilizator pt. serverul POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "Parola pt. serverul POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Adresa IP sau numele Ă®n domeniu a serverului POP3" @@ -1934,21 +2052,9 @@ msgstr "Adresa IP sau numele Ă®n domeniu a serverului POP3" msgid "port to connect to POP3 server" msgstr "portul de conectare la serverul POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "nume utilizator pt. serverul POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "Parola pt. serverul POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "" -"IntroduceĹŁi comanda ce va fi executatÄ pt. a vizualiza o imagine din mail" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "PoĹźta trimisÄ Ă®n mod HTML va afiĹźa imaginile cu <IMAGE>" #. DESC_OCR_COMMAND @@ -2172,8 +2278,12 @@ msgid "Filename too long" msgstr "Nume fiĹźier prea lung" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Nu am putut crea fiĹźierul temporar" +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" @@ -2297,10 +2407,6 @@ msgstr "Nu am putut lansa vizualizatorul de faxuri:" msgid "Failed to execute fax command:" msgstr "Nu am putut executa comanda de fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Nu am putut lansa vizualizatorul de imagini din poĹźtÄ:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Nu am putut executa comanda de OCR:" @@ -2350,14 +2456,6 @@ msgstr "Pevizualizarea nu poate manipula adâncimea" msgid "GIMP support missing" msgstr "LipseĹźte susĹŁinerea Gimp" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Nu am putut crea fiĹźierele temporare de previzualizare" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Nu am putut crea nume de fiĹźiere pt. previzualizare" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Nu am putut crea proiecul fax" @@ -2470,6 +2568,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[OPŢIUNE]... [DISPOZITIV]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2486,8 +2585,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2701,66 +2801,86 @@ msgstr "Negativ KONICA VX 100" msgid "Rossmann negative HR 100" msgstr "Negativ Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Proiectul mail nu a fost creat" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "Proiectul fax nu a fost creat" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Proiectul mail a fost creat" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Proiectul fax a fost creat" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Proiectul mail a fost modificat" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Proiectul fax a fost modificat" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Eroare de citire proiect mail" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Salvez imaginea" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Salvez imaginea" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Salvez imaginea" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "Mailul a fost trimis" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "Conexiune POP3 eĹźuatÄ" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Logare POP3 eĹźuatÄ" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "Conexiune SMTP eĹźuatÄ" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "Conexiune SMTP eĹźuatÄ" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Intrarea De la: inacceptabilÄ" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Intrarea Destinatar: inacceptabilÄ" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "Datele mailului inacceptabile" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Transmitere mail" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "Mailul a fost trimis" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Proiectul fax nu a fost creat" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Proiectul fax a fost creat" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Proiectul fax a fost modificat" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Faxul este trimis Ă®n coadÄ" @@ -2823,3 +2943,92 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Nu am putut crea fiĹźierele temporare de previzualizare" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Nu am putut crea nume de fiĹźiere pt. previzualizare" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "Autentificare POP3" + +#~ msgid "XSane mode" +#~ msgstr "Mod XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Utilizator POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "Parola POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Mod Ă®ncÄrcare automatÄ documente:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "SelecteazÄ drept sursÄ Alimentatorul automat de documente. ĂŽn acest caz " +#~ "XSane scaneazÄ pâna la apariĹŁia erorii \"terminare hârtie\"" + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Proiectul mail nu a fost creat" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Proiectul mail a fost creat" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Proiectul mail a fost modificat" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Proiectul mail nu a fost creat" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Proiectul mail a fost creat" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Proiectul mail a fost modificat" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Eroare de citire proiect mail" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Salvez imaginea" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Proiectul mail a fost creat" + +#~ msgid "Image" +#~ msgstr "Imagine" + +#~ msgid "Viewer (png):" +#~ msgstr "Vizualizator (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "" +#~ "IntroduceĹŁi comanda ce va fi executatÄ pt. a vizualiza o imagine din mail" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Nu am putut lansa vizualizatorul de imagini din poĹźtÄ:" + +#~ msgid "Step" +#~ msgstr "Pas" + +#~ msgid "Mail" +#~ msgstr "PoĹźtÄ" Binary files differ@@ -1,20 +1,21 @@ # Russian translation of XSANE. -# Copyright (C) 2001-2005, The Free Software Foundation # John Profic <profic@lrn.ru>, 2001, 2002. # Vitaly Lipatov <lav@altlinux.ru>, 2002, 2003, 2004. # Vitaly Lipatov <lav@etersoft.ru>, 2005. +# Copyright (C) 2001-2005, The Free Software Foundation msgid "" msgstr "" -"Project-Id-Version: XSANE 0.98\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2005-10-30 11:52+0300\n" +"Project-Id-Version: XSANE 0.99\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-31 15:46+0300\n" "Last-Translator: Vitaly Lipatov <lav@etersoft.ru>\n" "Language-Team: Russian <ru@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.10.1\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: KBabel 1.11\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR @@ -82,17 +83,21 @@ msgstr "переименование Ń„Đ°ĐşŃимильной Ńтраницы" msgid "insert ps-file into fax" msgstr "добавление PS-файла в Ń„Đ°ĐşŃимильное поŃлание" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "электронное пиŃŃŚĐĽĐľ" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "Đлектронное пиŃŃŚĐĽĐľ" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "переименовать изображение в пиŃьме" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" -msgstr "добавить файл в поŃлание" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "добавить файл в пиŃŃŚĐĽĐľ" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "многоŃтраничный проект" #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -382,6 +387,10 @@ msgstr "Создать поŃлание" msgid "Send project" msgstr "Отправить поŃлание" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Сохранить многоŃтраничный файл" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Удалить поŃлание" @@ -422,9 +431,9 @@ msgstr "ЗафикŃировать ĐĽĐ°ŃŃтаб" msgid "Fine mode" msgstr "Режим хороŃего качеŃтва" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "Отправлять текŃŃ‚ как HTML" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "Отправлять текŃŃ‚ в HTML" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" @@ -438,6 +447,14 @@ msgstr "ПредŃпреждать при перезапиŃи" msgid "Skip existing filenames" msgstr "ПропŃŃкать ŃŃщеŃтвŃющие" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Сохранять Postscript (level 3) Ńжатым Ń ĐżĐľĐĽĐľŃ‰ŃŚŃŽ zlib" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Сохранять PDF Ńжатым Ń ĐżĐľĐĽĐľŃ‰ŃŚŃŽ zlib" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Сохранять 16-битные pnm в формате ASCII" @@ -470,10 +487,6 @@ msgstr "Đвтовыбор облаŃти Ńканирования" msgid "Autocorrect colors" msgstr "Đвтокоррекция цвета" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "ĐŃпользовать авторизацию POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "ĐŃпользовать канал GUI" @@ -490,14 +503,6 @@ msgstr "ДоŃŃ‚Ńпные ŃŃтройŃтва:" msgid "XSane options" msgstr "Общие параметры" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Режим" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Шаг" - #. TEXT_FILETYPE msgid "Type" msgstr "Формат" @@ -687,9 +692,9 @@ msgstr "" "Đ“ĐĐ ĐНТĐРТОВĐРНОГО СОСТОЯНĐĐŻ ПРРПРОДĐĐ–Đ•\n" "и ПРĐГОДНОСТРДЛЯ ĐСПОЛЬЗОВĐĐťĐĐŻ Đ’ КОНКРЕТНЫХ ЦЕЛЯХ.\n" -#. TEXT_EMAIL -msgid "Email:" -msgstr "E-mail:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "ĐĐ». почта:" #. TEXT_HOMEPAGE msgid "Homepage:" @@ -706,18 +711,16 @@ msgstr "Перевод:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Ń€ŃŃŃкий перевод:\n" -"John Profic <profic@lrn.ru>\n" -"\n" -"дополнения и обновления:\n" "Виталий Липатов <lav@altlinux.ru>\n" +"John Profic <profic@lrn.ru>\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -727,29 +730,38 @@ msgstr "0x0: 0Кбайт" msgid "Scanned pages: " msgstr "ОтŃканировано Ńтраниц: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "ТекŃŃ‚ пиŃŃŚĐĽĐ°:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Đзображения:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "СоŃтояние поŃлания:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. 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 #, c-format -msgid "Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s" +msgid "" +"Size %d x %d pixel, %d bit/color, %d colors, %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" @@ -854,6 +866,10 @@ msgstr "Значение зелёного компонента гаммы для msgid "Printer gamma blue:" msgstr "Значение Ńинего компонента гаммы для принтера:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "Создать Postscript (level 3) для печати, Ńжатый zlib" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Временный каталог" @@ -878,6 +894,10 @@ msgstr "Степень Ńжатия изображения PNG" msgid "Filename counter length" msgstr "Длина Ńчётчика файлов" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "Сжатие zip для изображения TIFF" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Сжатие для 16-битного изображения TIFF" @@ -918,10 +938,6 @@ msgstr "Значение Ńинего компонента гаммы для ĐżŃ msgid "Threshold option:" msgstr "Параметры Ńправления порогом:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Режим автоподатчика бŃмаги:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Размер пипетки для предварительного Ńканирования" @@ -974,6 +990,10 @@ msgstr "ĐŁŃтановить Ńмолчания для:" msgid "Viewer (Postscript):" msgstr "Программа проŃмотра PostScript-файлов:" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "Создать Postscript (level 3), Ńжатый zlip, для отправки по Ń„Đ°ĐşŃŃ" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Сервер SMTP:" @@ -982,14 +1002,26 @@ msgstr "Сервер SMTP:" msgid "SMTP port:" msgstr "Порт SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Отправитель:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. 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:" @@ -998,18 +1030,6 @@ msgstr "Сервер POP3:" msgid "POP3 port:" msgstr "Порт POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Пользователь POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Пароль POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Программа проŃмотра файлов PNG:" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Команда раŃпознавания текŃŃ‚Đ°:" @@ -1053,9 +1073,9 @@ msgstr "новый ноŃитель" msgid "Save" msgstr "Файл" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Đзображение" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Тип файла" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1065,9 +1085,9 @@ msgstr "Копирование" msgid "Fax" msgstr "ФакŃ" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "ПиŃŃŚĐĽĐľ" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "ĐĐ». почта" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1081,9 +1101,9 @@ msgstr "Вид" msgid "Enhancement" msgstr "Прочее" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Почта" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "МногоŃтраничный" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1229,6 +1249,10 @@ msgstr "Ńжатие JPEG DCT" msgid "pack bits" msgstr "Ńпаковывать биты" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "deflate" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Слайдер (Đзменение размера)" @@ -1293,6 +1317,26 @@ msgstr "На позицию вверх" msgid "Move item down" msgstr "На позицию вниз" +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "без авторизации" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 перед SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "проŃтой ASMTP" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "Учётная запиŃŃŚ ASMTP" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Сканирование" @@ -1302,6 +1346,10 @@ msgstr "Сканирование" msgid "Receiving %s data" msgstr "Приём данных %s" +#. PROGRESS_PAGE +msgid "page" +msgstr "Ńтраница" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Передача изображения" @@ -1364,11 +1412,12 @@ msgstr "Отменить предварительное Ńканирование #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"Сохранить-<Ctrl-s>, проŃмотреть-<Ctrl-v>, Ńкопировать-<Ctrl-c>, отправить по " -"Ń„Đ°ĐşŃŃ-<Ctrl-f> или отправить пиŃŃŚĐĽĐľ-<Ctrl-m>" +"Сохранить-<Ctrl-s>, проŃмотреть-<Ctrl-v>, Напечатать копию-<Ctrl-c>, " +"многоŃтраничный-<Ctrl-m>, отправить по Ń„Đ°ĐşŃŃ-<Ctrl-f> или отправить пиŃŃŚĐĽĐľ-" +"<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1386,7 +1435,8 @@ msgstr "" #. DESC_FILENAME_COUNTER_STEP msgid "Value that is added to filenamecounter after scan" -msgstr "Значение, на которое изменяетŃŃŹ Ńчётчик в названии файла поŃле Ńканирования" +msgstr "" +"Значение, на которое изменяетŃŃŹ Ńчётчик в названии файла поŃле Ńканирования" #. DESC_BROWSE_FILENAME msgid "Browse for image filename" @@ -1416,26 +1466,34 @@ msgstr "Название Ń„Đ°ĐşŃимильной Ńтраницы" msgid "Enter receiver phone number or address" msgstr "Номер телефона или Đ°Đ´Ń€ĐµŃ Đ´Đ»ŃŹ отправки" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" msgstr "Название почтового Ńообщения" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "Название файла для отправляемого изображения" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" msgstr "ĐĐ´Ń€ĐµŃ ŃŤĐ»ĐµĐşŃ‚Ń€ĐľĐ˝Đ˝ĐľĐą почты" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "Тема пиŃŃŚĐĽĐ°" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "Выберите формат файла для вложения изображения" +#. DESC_MULTIPAGE_PROJECT +msgid "Enter name of multipage project" +msgstr "Название многоŃтраничного почтового Ńообщения" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Выберите формат файла для многоŃтраничного изображения" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Новое название для облаŃти" @@ -1619,13 +1677,15 @@ msgid "Enter option for copy numbers" msgstr "Параметр для Ńказания количеŃтва копий" #. DESC_PRINTER_LINEART_RESOLUTION -msgid "Resolution with which lineart images are printed and saved in postscript" +msgid "" +"Resolution with which lineart images are printed and saved in postscript" msgstr "" "РазреŃение, Ń ĐşĐľŃ‚ĐľŃ€Ń‹ĐĽ Ńтриховые изображения печатаютŃŃŹ и ŃохраняютŃŃŹ в " "PostScript" #. DESC_PRINTER_GRAYSCALE_RESOLUTION -msgid "Resolution with which grayscale images are printed and saved in postscript" +msgid "" +"Resolution with which grayscale images are printed and saved in postscript" msgstr "" "РазреŃение, Ń ĐşĐľŃ‚ĐľŃ€Ń‹ĐĽ чёрно-белые изображения печатаютŃŃŹ и ŃохраняютŃŃŹ в " "PostScript" @@ -1668,6 +1728,15 @@ msgstr "Дополнительное значение зелёного компРmsgid "Additional gamma value for blue component for photocopy" msgstr "Дополнительное значение Ńинего компонента гаммы при копировании" +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Создаём Ńжатое Ń ĐżĐľĐĽĐľŃ‰ŃŚŃŽ zlib Postscript-изображение для принтера " +"(flatdecode).\n" +"Принтер должен понимать postscript level 3!" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "ĐźŃŃ‚ŃŚ Đş ĐşĐ°Ń‚Đ°Đ»ĐľĐłŃ Đ´Đ»ŃŹ временных файлов" @@ -1677,7 +1746,8 @@ msgid "Browse for temporary directory" msgstr "Указать временный каталог" #. DESC_JPEG_QUALITY -msgid "Quality in percent if image is saved as jpeg or tiff with jpeg compression" +msgid "" +"Quality in percent if image is saved as jpeg or tiff with jpeg compression" msgstr "КачеŃтво в процентах для формата JPEG или TIFF Ń JPEG-Ńжатием" #. DESC_PNG_COMPRESSION @@ -1688,6 +1758,10 @@ msgstr "Сжатие для формата PNG" msgid "Minimum length of counter in filename" msgstr "Минимальная длина Ńчётчика в названии файла" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Степень Ńжатия для Ńжатых zip изображений TIFF (deflate)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Тип Ńжатия для формата TIFF при глŃбине цвета 16 бит" @@ -1702,18 +1776,33 @@ msgstr "Тип Ńжатия для формата TIFF при Ńохранени #. DESC_SAVE_DEVPREFS_AT_EXIT msgid "Save device dependant preferences in default file at exit of xsane" -msgstr "Сохранять параметры ŃŃтройŃтва в файле по Ńмолчанию при выходе из XSane" +msgstr "" +"Сохранять параметры ŃŃтройŃтва в файле по Ńмолчанию при выходе из XSane" #. 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" +msgid "" +"If filename counter is automatically increased, used numbers are skipped" msgstr "" "При иŃпользовании Ńчётчика в названии файла Ńже иŃпользованные номера " "пропŃŃкаютŃŃŹ" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "Ńжимает изображение PDF по Đ°Đ»ĐłĐľŃ€Đ¸Ń‚ĐĽŃ zlib (flatdecode)." + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1822,20 +1911,18 @@ 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" +msgid "" +"Multiplier to make XSane threshold range and scanner threshold range the same" msgstr "Множитель для Ńравнивания порогов XSane и Ńканера" #. DESC_PREVIEW_THRESHOLD_OFF -msgid "Offset to make XSane threshold range and scanner threshold range the same" +msgid "" +"Offset to make XSane threshold range and scanner threshold range the same" msgstr "Смещение для Ńравнивания порогов XSane и Ńканера" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"ĐŃточник для автоматичеŃкого податчика бŃмаги. Đ•Ńли иŃточник выбран, XSane " -"бŃдет Ńканировать Đ´Đľ конца пачки бŃмаги или ĐľŃибки." +#. 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" @@ -1844,8 +1931,10 @@ msgstr "" "цвета при его полŃчении Ń ĐżĐľĐĽĐľŃ‰ŃŚŃŽ пипетки" #. DESC_DOC_VIEWER -msgid "Enter command to be executed to display helpfiles, must be a html-viewer!" -msgstr "Команда для отображения файлов Ńправки, должна Ńметь отображать файлы HTML" +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" @@ -1853,11 +1942,13 @@ msgstr "Đзменять значение гаммы при нажатии кнР#. DESC_PRESELECT_SCANAREA msgid "Select scanarea after preview scan has finished" -msgstr "Выделять облаŃŃ‚ŃŚ Ńканирования поŃле заверŃения предварительного Ńканирования" +msgstr "" +"Выделять облаŃŃ‚ŃŚ Ńканирования поŃле заверŃения предварительного Ńканирования" #. DESC_AUTOCORRECT_COLORS msgid "Do color correction after preview scan has finished" -msgstr "Выполнять цветовŃŃŽ коррекцию поŃле заверŃения предварительного Ńканирования" +msgstr "" +"Выполнять цветовŃŃŽ коррекцию поŃле заверŃения предварительного Ńканирования" #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" @@ -1885,7 +1976,12 @@ msgstr "Команда для проŃмотра Ń„Đ°ĐşŃимильного по #. DESC_FAX_FINE_MODE msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" -msgstr "ОтŃылать Ń„Đ°ĐşŃ Ń Đ˛Ń‹Ńоким вертикальным разреŃением (196 lpi вмеŃŃ‚Đľ 98 lpi)" +msgstr "" +"ОтŃылать Ń„Đ°ĐşŃ Ń Đ˛Ń‹Ńоким вертикальным разреŃением (196 lpi вмеŃŃ‚Đľ 98 lpi)" + +#. DESC_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image for fax (flatdecode)" +msgstr "Создаёт Ńжатое zlib изображение postscript для Ń„Đ°ĐşŃĐ° (flatdecode)" #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" @@ -1895,17 +1991,25 @@ msgstr "IP-Đ°Đ´Ń€ĐµŃ Đ¸Đ»Đ¸ название домена SMTP-Ńервера" msgid "port to connect to SMTP server" msgstr "Порт для SMTP-Ńервера" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "Đ’Đ°Ń ŃŤĐ»ĐµĐşŃ‚Ń€ĐľĐ˝Đ˝Ń‹Đą адреŃ" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" msgstr "ĐĐ´Ń€ĐµŃ Đ´Đ»ŃŹ ответа" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "ĐвторизоватьŃŃŹ на POP3-Ńервере перед отправкой пиŃŃŚĐĽĐ°" +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Тип авторизации перед отправкой пиŃŃŚĐĽĐ°" + +#. DESC_EMAIL_AUTH_USER +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" @@ -1915,21 +2019,10 @@ msgstr "IP-Đ°Đ´Ń€ĐµŃ Đ¸Đ»Đ¸ название домена POP3-Ńервера" msgid "port to connect to POP3 server" msgstr "Порт для POP3-Ńервера" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "ĐĐĽŃŹ пользователя для POP3-Ńервера" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "Пароль для POP3-Ńервера" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Введите ĐşĐľĐĽĐ°Đ˝Đ´Ń Đ´Đ»ŃŹ проŃмотра почтовых вложений" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" -msgstr "ПиŃŃŚĐĽĐľ отправлено в виде HTML-докŃмента, размещение изображения: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" +msgstr "" +"ПиŃŃŚĐĽĐľ отправлено в виде HTML-докŃмента, размещение изображения: <IMAGE>" #. DESC_OCR_COMMAND msgid "Enter command to start ocr program" @@ -1950,7 +2043,8 @@ msgstr "" "выполнения" #. DESC_OCR_OUTFD_OPT -msgid "Enter option of the ocr program to define output filedescripor in GUI mode" +msgid "" +"Enter option of the ocr program to define output filedescripor in GUI mode" msgstr "" "Укажите параметр для программы раŃпознавания текŃŃ‚Đ°, определяющий выходной " "файловый деŃкриптор в режиме GUI." @@ -2153,8 +2247,12 @@ msgid "Filename too long" msgstr "Название файла ŃлиŃком длинное" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Невозможно Ńоздать временный файл" +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" @@ -2277,10 +2375,6 @@ msgstr "Невозможно вызвать ĐżŃ€ĐľĐłŃ€Đ°ĐĽĐĽŃ ĐżŃ€ĐľŃмотрРmsgid "Failed to execute fax command:" msgstr "Невозможно выполнить ĐşĐľĐĽĐ°Đ˝Đ´Ń ĐľŃ‚ĐżŃ€Đ°Đ˛ĐşĐ¸ Ń„Đ°ĐşŃимильного поŃлания" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Невозможно вызвать ĐżŃ€ĐľĐłŃ€Đ°ĐĽĐĽŃ ĐżŃ€ĐľŃмотра почтовых изображений" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Невозможно выполнить ĐşĐľĐĽĐ°Đ˝Đ´Ń Ń€Đ°Ńпознавания текŃŃ‚Đ°:" @@ -2330,14 +2424,6 @@ msgstr "Окно предварительного Ńканирования не msgid "GIMP support missing" msgstr "Поддержка программы GIMP отŃŃŃ‚ŃтвŃет" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Невозможно Ńоздать временный файл для предварительного Ńканирования" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Невозможно Ńгенерировать название файла для предварительного Ńканирования" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Невозможно Ńоздать проект Ń„Đ°ĐşŃимильного поŃлания" @@ -2466,8 +2552,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2488,7 +2575,7 @@ msgstr "" "Access Now Easy).\n" "\n" "Формат [УСТРОЙСТВО]: драйвер:файл_ŃŃтройŃтва (например, umax:/dev/scanner).\n" -"[ĐźĐĐ ĐМЕТРЫ]... любая комбинация из ŃледŃющих:\n" +"[КЛЮЧĐ]... любая комбинация из ŃледŃющих:\n" " -h, --help вывеŃти ŃŤŃ‚Đľ Ńообщение и выйти\n" " -v, --version вывеŃти информации Đľ верŃии\n" " -l, --license вывеŃти информации Đľ лицензии\n" @@ -2500,7 +2587,8 @@ msgstr "" " -s, --save Đ·Đ°ĐżŃŃтить в режиме Ńканирования\n" " -c, --copy Đ·Đ°ĐżŃŃтить в режиме копирования\n" " -f, --fax Đ·Đ°ĐżŃŃтить в режиме Ń„Đ°ĐşŃĐ°\n" -" -m, --mail Đ·Đ°ĐżŃŃтить в режиме почты\n" +" -m, --multipage Đ·Đ°ĐżŃŃтить в многоŃтраничном режиме\n" +" -e, --email Đ·Đ°ĐżŃŃтить в режиме почты\n" " -n, --no-mode-selection отключить меню выбора режима XSane\n" "\n" " -F, --Fixed не позволять менять размер главного окна " @@ -2682,66 +2770,74 @@ msgstr "Негатив Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Негатив Rossmann HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "ПиŃŃŚĐĽĐľ не Ńоздано" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Проект Ńоздан" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Đлектронное пиŃŃŚĐĽĐľ Ńоздано" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Проект Ńоздан" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Đлектронное пиŃŃŚĐĽĐľ изменено" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Проект изменён" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "ĐžŃибка при чтении почтового проекта" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "ĐžŃибка при чтении проекта" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. 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_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "Неверное имя пользователя для POP3" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. 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_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Đнформация об отправителе не принята" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "ĐĐ´Ń€ĐµŃ ĐżĐľĐ»Ńчателя не принят" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" msgstr "Данные в пиŃьме не приняты" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "ОтправляетŃŃŹ пиŃŃŚĐĽĐľ" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "ПиŃŃŚĐĽĐľ было отправлено" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "ФакŃимильное поŃлание не Ńоздано" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Создано Ń„Đ°ĐşŃимильное поŃлание" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "ФакŃимильное поŃлание изменено" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "Помещаем Ń„Đ°ĐşŃ Đ˛ очередь на отправкŃ" @@ -2805,3 +2901,12 @@ 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 "" +#~ "Невозможно Ńгенерировать название файла для предварительного Ńканирования" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: xsane\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2005-11-01 18:58+0100\n" "Last-Translator: \n" "Language-Team: <sk@li.org>\n" @@ -14,7 +14,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10.2\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR @@ -82,18 +83,26 @@ msgstr "premenovaĹĄ faxovĂş stránku" msgid "insert ps-file into fax" msgstr "vloĹľiĹĄ ps-sĂşbor do faxu" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "poštovĂ˝ projekt" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "premenovaĹĄ obrázok do pošty" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "vloĹľiĹĄ obrázok do pošty" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "ZmazaĹĄ projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "premenovaĹĄ predvolaná oblasĹĄ" @@ -382,6 +391,11 @@ msgstr "VytvoriĹĄ projekt" msgid "Send project" msgstr "PoslaĹĄ projekt" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "UloĹľiĹĄ obrázok" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "ZmazaĹĄ projekt" @@ -422,8 +436,9 @@ msgstr "ZviazaĹĄ zmenu veÄľkosti" msgid "Fine mode" msgstr "JemnĂ˝ reĹľim" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "HTML pošta" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -438,6 +453,14 @@ msgstr "Varovanie o prepĂsanĂ" msgid "Skip existing filenames" msgstr "PreskoÄŤiĹĄ existujĂşce názvy sĂşborov" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "UloĹľiĹĄ 16 bitovĂ© pnm v ascii formáte" @@ -470,10 +493,6 @@ msgstr "PredvoÄľba skenovacej plochy" msgid "Autocorrect colors" msgstr "Automatická korekcia farieb" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 autentifikácia" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "PouĹľiĹĄ GUI rĂşru postupu" @@ -490,14 +509,6 @@ msgstr "DostupnĂ© zariadenia:" msgid "XSane options" msgstr "Nastavenia XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane reĹľim" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Krok" - #. TEXT_FILETYPE msgid "Type" msgstr "Typ" @@ -687,8 +698,9 @@ msgstr "" "ktorá sa tĂ˝ka OBCHODOVATEÄ˝NOSTI alebo VHODNOSTI\n" "PRE KONKRÉTNY ÚČEL.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "Email:" #. TEXT_HOMEPAGE @@ -706,12 +718,13 @@ msgstr "Preklad:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "pĂ´vodnĂ˝ nepreloĹľenĂ˝ anglickĂ˝ text\n" "je od Olivera Raucha\n" @@ -725,20 +738,32 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "SkenovanĂ© stránky: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Text emailu:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "PrĂlohy:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Stav projektu:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "SĂşborovĂ˝ typ obrázka e-mailu:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "PouĹľitie:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "SĂşborovĂ˝ typ obrázka e-mailu:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -747,8 +772,11 @@ msgstr "Názov mĂ©dia:" #. 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" -msgstr "VeÄľkosĹĄ v bodoch: %d Ă— %d, bitov/farbu: %d, farieb: %d, %1.0f dpi Ă— %1.0f dpi, %1.1f %s" +msgid "" +"Size %d x %d pixel, %d bit/color, %d colors, %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" #. TEXT_DESPECKLE_RADIUS msgid "Despeckle radius:" @@ -850,6 +878,10 @@ msgstr "Zelená gama tlaÄŤiarne:" msgid "Printer gamma blue:" msgstr "Modrá gama tlaÄŤiarne:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "DoÄŤasnĂ˝ prieÄŤinok" @@ -874,6 +906,11 @@ msgstr "Kompresia PNG obrázka" msgid "Filename counter length" msgstr "Dĺžka poÄŤĂtadla názvov sĂşborov" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "Kompresia 8 bitovĂ©ho TIFF obrázka" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "Kompresia 16 bitovĂ©ho TIFF obrázka" @@ -914,10 +951,6 @@ msgstr "Modrá gama náhÄľadu:" msgid "Threshold option:" msgstr "Nastavenie prahu:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "ReĹľim automatickĂ©ho podávaÄŤa dokumentov:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "NáhÄľad rozsahu pipety" @@ -970,6 +1003,10 @@ msgstr "Ĺ tandardnĂ© nastavenia programu pre:" msgid "Viewer (Postscript):" msgstr "PrehliadaÄŤ (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server:" @@ -978,14 +1015,29 @@ msgstr "SMTP server:" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Od:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "OdpovedaĹĄ na:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3 autentifikácia" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "PouĹľitie:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Heslo :" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -994,18 +1046,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 pouĹľĂvateÄľ:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 heslo:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "PrehliadaÄŤ (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR prĂkaz:" @@ -1049,9 +1089,10 @@ msgstr "novĂ© mĂ©dium" msgid "Save" msgstr "Ukladanie" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Obrázok" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "SĂşbor" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1061,9 +1102,10 @@ msgstr "KopĂrovanie" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Pošta" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "Email" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1077,9 +1119,9 @@ msgstr "Zobrazenie" msgid "Enhancement" msgstr "Vylepšenie" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Email" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1226,6 +1268,11 @@ msgstr "Kompresia JPEG DCT" msgid "pack bits" msgstr "bitová kompresia" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "omeškaná" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "BehúŠ(Mierka)" @@ -1291,6 +1338,27 @@ msgstr "Posunúť poloĹľku hore" msgid "Move item down" msgstr "Posunúť poloĹľku dole" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3 autentifikácia" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skenovanie" @@ -1300,6 +1368,11 @@ msgstr "Skenovanie" msgid "Receiving %s data" msgstr "PrijĂmanie %s dát" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "balĂk" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Prenášanie obrázka" @@ -1361,18 +1434,27 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Prerušenie skenovanie náhÄľadu <Alt-ESC>" #. DESC_XSANE_MODE -msgid "save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-m>" -msgstr "uloĹľiĹĄ<Ctrl-s>, zobraziĹĄ-<Ctrl-v>, fotokĂłpia-<Ctrl-c>, fax-<Ctrl-f> alebo pošta-<Ctrl-m>" +#, fuzzy +msgid "" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" +msgstr "" +"uloĹľiĹĄ<Ctrl-s>, zobraziĹĄ-<Ctrl-v>, fotokĂłpia-<Ctrl-c>, fax-<Ctrl-f> alebo " +"pošta-<Ctrl-m>" #. 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." +"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 "" "Vyberte typ zdrojovĂ©ho mĂ©dia.\n" -"Na premenovanie, preusporiadanie alebo zmazanie záznamu pouĹľite kontextovĂş ponuku (pravĂ© tlaÄŤidlo myši).\n" -"Na vytvorenie mĂ©dia povoÄľte nastavenie upraviĹĄ definĂciu mĂ©dia v ponuke nastavenia." +"Na premenovanie, preusporiadanie alebo zmazanie záznamu pouĹľite kontextovĂş " +"ponuku (pravĂ© tlaÄŤidlo myši).\n" +"Na vytvorenie mĂ©dia povoÄľte nastavenie upraviĹĄ definĂciu mĂ©dia v ponuke " +"nastavenia." #. DESC_FILENAME_COUNTER_STEP msgid "Value that is added to filenamecounter after scan" @@ -1387,8 +1469,11 @@ msgid "Filename for scanned image" msgstr "Názov sĂşboru pre skenovanĂ˝ obrázok" #. DESC_FILETYPE -msgid "Type of image format, the suitable filename extension is automatically added to the filename" -msgstr "Typ formátu obrázku; vhodná koncovka je automaticky pridaná k názvu sĂşboru." +msgid "" +"Type of image format, the suitable filename extension is automatically added " +"to the filename" +msgstr "" +"Typ formátu obrázku; vhodná koncovka je automaticky pridaná k názvu sĂşboru." #. DESC_FAXPROJECT msgid "Enter name of fax project" @@ -1402,26 +1487,40 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "VloĹľte názov poštovĂ©ho projektu" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "VloĹľte novĂ˝ názov pre poštovĂ˝ obrázok" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "VloĹľte emailovĂş adresu" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "VloĹľte predmet správy" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Vyberte si typ sĂşboru pre obrázkovĂ© prĂlohy k e-mailom" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "VloĹľte novĂ˝ názov pre predvolenĂş oblasĹĄ" @@ -1532,12 +1631,14 @@ msgstr "Nastavenie prahu" # DESC_RGB_DEFAULT #. DESC_RGB_DEFAULT msgid "" -"RGB default: Set enhancement values for red, green and blue to default values <Ctrl-b>:\n" +"RGB default: Set enhancement values for red, green and blue to default " +"values <Ctrl-b>:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0" msgstr "" -"RGB štandard: Nastavenie štandardnĂ˝ch hodnĂ´t pre ÄŤervenĂş, zelenĂş a modrĂş <Ctrl-b>:\n" +"RGB štandard: Nastavenie štandardnĂ˝ch hodnĂ´t pre ÄŤervenĂş, zelenĂş a modrĂş " +"<Ctrl-b>:\n" " gama = 1.0\n" " jas = 0\n" " kontrast = 0" @@ -1604,23 +1705,30 @@ msgstr "DefinovaĹĄ názov pre vĂ˝ber tejto definĂcie" #. DESC_PRINTER_COMMAND msgid "Enter command to be executed in copy mode (e.g. \"lpr\")" -msgstr "VloĹľte prĂkaz, ktorĂ˝ bude vykonanĂ˝ v kopĂrovacom reĹľime (napr. \"lpr\")" +msgstr "" +"VloĹľte prĂkaz, ktorĂ˝ bude vykonanĂ˝ v kopĂrovacom reĹľime (napr. \"lpr\")" #. DESC_COPY_NUMBER_OPTION msgid "Enter option for copy numbers" msgstr "VloĹľte nastavenie pre poÄŤet kĂłpiĂ" #. DESC_PRINTER_LINEART_RESOLUTION -msgid "Resolution with which lineart images are printed and saved in postscript" -msgstr "RozlĂšenie, v ktorom bude ÄŤiarová grafika tlaÄŤená a uloĹľená do postscriptu" +msgid "" +"Resolution with which lineart images are printed and saved in postscript" +msgstr "" +"RozlĂšenie, v ktorom bude ÄŤiarová grafika tlaÄŤená a uloĹľená do postscriptu" #. DESC_PRINTER_GRAYSCALE_RESOLUTION -msgid "Resolution with which grayscale images are printed and saved in postscript" -msgstr "RozlĂšenie, v ktorom budĂş obrázky v stupĹoch šedi tlaÄŤenĂ© a uloĹľenĂ© do postscriptu" +msgid "" +"Resolution with which grayscale images are printed and saved in postscript" +msgstr "" +"RozlĂšenie, v ktorom budĂş obrázky v stupĹoch šedi tlaÄŤenĂ© a uloĹľenĂ© do " +"postscriptu" #. DESC_PRINTER_COLOR_RESOLUTION msgid "Resolution with which color images are printed and saved in postscript" -msgstr "RozlĂšenie, v ktorom budĂş farebnĂ© obrázky tlaÄŤenĂ© a uloĹľenĂ© do postscriptu" +msgstr "" +"RozlĂšenie, v ktorom budĂş farebnĂ© obrázky tlaÄŤenĂ© a uloĹľenĂ© do postscriptu" #. DESC_PRINTER_WIDTH msgid "Width of printable area" @@ -1654,6 +1762,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Cesta k doÄŤasnĂ©mu prieÄŤinku" @@ -1663,8 +1777,11 @@ msgid "Browse for temporary directory" msgstr "VyhÄľadaĹĄ pomocnĂ˝ prieÄŤinok" #. DESC_JPEG_QUALITY -msgid "Quality in percent if image is saved as jpeg or tiff with jpeg compression" -msgstr "Kvalita v percentách, ak obrázok je uloĹľenĂ˝ ako jpeg alebo tiff s jpeg kompresiou" +msgid "" +"Quality in percent if image is saved as jpeg or tiff with jpeg compression" +msgstr "" +"Kvalita v percentách, ak obrázok je uloĹľenĂ˝ ako jpeg alebo tiff s jpeg " +"kompresiou" #. DESC_PNG_COMPRESSION msgid "Compression if image is saved as png" @@ -1674,6 +1791,11 @@ msgstr "Kompresia, ak obrázok je uloĹľenĂ˝ ako png" msgid "Minimum length of counter in filename" msgstr "Minimálna dĺžka poÄŤĂtadla názvov sĂşborov" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Typ kompresie, ak obrázok je uloĹľenĂ˝ ako 8 bitovĂ˝ TIFF" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Typ kompresie, ak obrázok je uloĹľenĂ˝ ako 16 bitovĂ˝ TIFF" @@ -1688,23 +1810,46 @@ msgstr "Typ kompresie, ak je obrázok uloĹľenĂ˝ ako TIFF ÄŤiarová grafika" #. DESC_SAVE_DEVPREFS_AT_EXIT msgid "Save device dependant preferences in default file at exit of xsane" -msgstr "UloĹľiĹĄ nastavenia závislĂ© na zariadenĂ v štandardnom sĂşbore pri ukonÄŤenĂ XSane" +msgstr "" +"UloĹľiĹĄ nastavenia závislĂ© na zariadenĂ v štandardnom sĂşbore pri ukonÄŤenĂ " +"XSane" #. DESC_OVERWRITE_WARNING msgid "Warn before overwriting an existing file" msgstr "VarovaĹĄ pred prepĂsanĂm existujĂşceho sĂşbor" #. DESC_SKIP_EXISTING -msgid "If filename counter is automatically increased, used numbers are skipped" -msgstr "Ak poÄŤĂtadlo sĂşborov automaticky zväčšovanĂ˝, pouĹľitĂ© ÄŤĂsla sĂş preskoÄŤenĂ©" +msgid "" +"If filename counter is automatically increased, used numbers are skipped" +msgstr "" +"Ak poÄŤĂtadlo sĂşborov automaticky zväčšovanĂ˝, pouĹľitĂ© ÄŤĂsla sĂş preskoÄŤenĂ©" + +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +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 "KeÄŹ ukladáte 16 bitovĂ˝ obrázok vo formáte pnm, tak by ste mali pouĹľiĹĄ ascii formát namiesto binárneho formátu. Binárny formát je novĂ˝m formátom a nie je podporovanĂ˝ všetkĂ˝mi programami. Ascii formát je podporovanĂ˝ oveÄľa väčšĂm poÄŤtom programov, ale vytvára skutoÄŤne veÄľkĂ© sĂşbory!!!" +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 "" +"KeÄŹ ukladáte 16 bitovĂ˝ obrázok vo formáte pnm, tak by ste mali pouĹľiĹĄ ascii " +"formát namiesto binárneho formátu. Binárny formát je novĂ˝m formátom a nie je " +"podporovanĂ˝ všetkĂ˝mi programami. Ascii formát je podporovanĂ˝ oveÄľa väčšĂm " +"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" -msgstr "Ak skener pošle farebnĂ˝ 16 bitovĂ˝ obrázok, zapĂsaĹĄ obrázok v bitoch/farbu" +msgstr "" +"Ak skener pošle farebnĂ˝ 16 bitovĂ˝ obrázok, zapĂsaĹĄ obrázok v bitoch/farbu" #. DESC_PSFILE_WIDTH msgid "Width of paper for postscript files" @@ -1715,16 +1860,24 @@ msgid "Height of paper for postscript files" msgstr "Výška papiera pre postscriptovĂ© sĂşbory" #. DESC_PSFILE_LEFTOFFSET -msgid "Left offset from the edge of the paper to the usable area for postscript files" -msgstr "Posun od Äľavej hrany papiera po pouĹľiteÄľnĂş oblasĹĄ pre postscriptovĂ© sĂşbory" +msgid "" +"Left offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Posun od Äľavej hrany papiera po pouĹľiteÄľnĂş oblasĹĄ pre postscriptovĂ© sĂşbory" #. DESC_PSFILE_BOTTOMOFFSET -msgid "Bottom offset from the edge of the paper to the usable area for postscript files" -msgstr "Posun od dolnej hrany papiera po pouĹľiteÄľnĂş oblasĹĄ pre postscriptovĂ© sĂşbory" +msgid "" +"Bottom offset from the edge of the paper to the usable area for postscript " +"files" +msgstr "" +"Posun od dolnej hrany papiera po pouĹľiteÄľnĂş oblasĹĄ pre postscriptovĂ© sĂşbory" #. DESC_MAIN_WINDOW_FIXED msgid "Use fixed main window size or scrolled, resizable main window" -msgstr "PouĹľiĹĄ pevnĂş veÄľkosĹĄ hlavnĂ©ho okna alebo okna s posuvnĂkmi a premennou veÄľkosĹĄou" +msgstr "" +"PouĹľiĹĄ pevnĂş veÄľkosĹĄ hlavnĂ©ho okna alebo okna s posuvnĂkmi a premennou " +"veÄľkosĹĄou" #. DESC_DISABLE_GIMP_PREVIEW_GAMMA msgid "Disable preview gamma when XSane runs as gimp plugin" @@ -1748,23 +1901,31 @@ msgstr "Nastavenie hodnotu gama korekcie pre náhÄľad na obrázok" #. DESC_PREVIEW_GAMMA_RED msgid "Set gamma correction value for red component of preview image" -msgstr "NastaviĹĄ hodnotu gama korekcie pre ÄŤervenĂ˝ komponent pre náhÄľad na obrázok" +msgstr "" +"NastaviĹĄ hodnotu gama korekcie pre ÄŤervenĂ˝ komponent pre náhÄľad na obrázok" #. DESC_PREVIEW_GAMMA_GREEN msgid "Set gamma correction value for green component of preview image" -msgstr "NastaviĹĄ hodnotu gama korekcie pre zelenĂ˝ komponent pre náhÄľad na obrázok" +msgstr "" +"NastaviĹĄ hodnotu gama korekcie pre zelenĂ˝ komponent pre náhÄľad na obrázok" #. DESC_PREVIEW_GAMMA_BLUE msgid "Set gamma correction value for blue component of preview image" -msgstr "NastaviĹĄ hodnotu gama korekcie pre modrĂ˝ komponent pre náhÄľad na obrázok" +msgstr "" +"NastaviĹĄ hodnotu gama korekcie pre modrĂ˝ komponent pre náhÄľad na obrázok" #. DESC_LINEART_MODE msgid "Define the way XSane shall handle the threshold option" msgstr "Definovanie spĂ´sobu ako sa XSane vysporiada s nastavenĂm prahu" #. DESC_GRAYSCALE_SCANMODE -msgid "Select grayscale scanmode. This scanmode is used for lineart preview scan when transformation from grayscale to lineart is enabled" -msgstr "VĂ˝ber skenovacieho reĹľimu v odtieĹoch šedej. Tento skenovacĂ reĹľim sa pouĹľĂva pre náhÄľad na ÄŤiarovĂş grafiku, keÄŹ je povolená transformácia z odtieĹov šedej." +msgid "" +"Select grayscale scanmode. This scanmode is used for lineart preview scan " +"when transformation from grayscale to lineart is enabled" +msgstr "" +"VĂ˝ber skenovacieho reĹľimu v odtieĹoch šedej. Tento skenovacĂ reĹľim sa " +"pouĹľĂva pre náhÄľad na ÄŤiarovĂş grafiku, keÄŹ je povolená transformácia z " +"odtieĹov šedej." #. DESC_PREVIEW_THRESHOLD_MIN #, no-c-format @@ -1777,24 +1938,30 @@ msgid "The scanner's maximum threshold level in %" msgstr "Maximálna ĂşroveĹ prahu skeneru v %" #. DESC_PREVIEW_THRESHOLD_MUL -msgid "Multiplier to make XSane threshold range and scanner threshold range the same" +msgid "" +"Multiplier to make XSane threshold range and scanner threshold range the same" msgstr "NásobiteÄľ, ktorĂ˝ nastavĂ rovnakĂ˝ rozsah prahov XSane a skeneru" #. DESC_PREVIEW_THRESHOLD_OFF -msgid "Offset to make XSane threshold range and scanner threshold range the same" +msgid "" +"Offset to make XSane threshold range and scanner threshold range the same" msgstr "Posun, ktorĂ˝ nastavĂ rovnakĂ˝ rozsah prahu XSane a rozsah prahu skeneru" -#. DESC_ADF_MODE -msgid "Select scansource for Automatic Document feeder. If this scansource is selected XSane scans until \"out of paper\" or error." -msgstr "VĂ˝ber zdroja skenovania pre automatickĂ˝ podávaÄŤ dokumentov. PokiaÄľ je táto voÄľba nastavená, XSane skenuje, pokiaÄľ nenastane stav \"nie je papier\" alebo chyba" +#. 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 "rozmery štvorca, ktorĂ˝ je pouĹľitĂ˝ k spriemerovaniu farby pre funkciu pipety" +msgstr "" +"rozmery štvorca, ktorĂ˝ je pouĹľitĂ˝ k spriemerovaniu farby pre funkciu pipety" #. DESC_DOC_VIEWER -msgid "Enter command to be executed to display helpfiles, must be a html-viewer!" -msgstr "Nastavenie prĂkazu k zobrazeniu sĂşborov pomocnĂka - musĂ to byĹĄ html prehliadaÄŤ!" +msgid "" +"Enter command to be executed to display helpfiles, must be a html-viewer!" +msgstr "" +"Nastavenie prĂkazu k zobrazeniu sĂşborov pomocnĂka - musĂ to byĹĄ html " +"prehliadaÄŤ!" #. DESC_AUTOENHANCE_GAMMA msgid "Change gamma value when autoenhancement button is pressed" @@ -1836,6 +2003,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP adresa alebo názov domĂ©ny SMTP servera" @@ -1844,18 +2015,31 @@ msgstr "IP adresa alebo názov domĂ©ny SMTP servera" msgid "port to connect to SMTP server" msgstr "port na pripojenie sa k SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "vloĹľte svoju emailovĂş adresu" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "vloĹľte svoju emailovĂş adresu pre odpoveÄŹ" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentifikácia na POP3 servery pre odoslanĂm emailu" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "pouĹľĂvateÄľskĂ© meno pre POP3 server" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "heslo pre POP3 server" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "IP adresa alebo názov domĂ©ny POP3 servera" @@ -1864,20 +2048,9 @@ msgstr "IP adresa alebo názov domĂ©ny POP3 servera" msgid "port to connect to POP3 server" msgstr "port na pripojenie sa k POP3 serveru" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "pouĹľĂvateÄľskĂ© meno pre POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "heslo pre POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Nastavenie prĂkazu, ktorĂ˝ ma byĹĄ spustenĂ˝ k zobrazeniu obrázku v emaily" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "E-mail je poslanĂ˝ v html reĹľime, umiestnite obrázok pomocou: <IMAGE>" #. DESC_OCR_COMMAND @@ -1897,12 +2070,15 @@ msgid "Define if the ocr program supports gui progress pipe" msgstr "UrÄŤenie, ÄŤi ocr program podporuje gui rĂşru postupu" #. DESC_OCR_OUTFD_OPT -msgid "Enter option of the ocr program to define output filedescripor in GUI mode" -msgstr "VloĹľiĹĄ nastavenie ocr programu urÄŤujĂşci vĂ˝stupnĂ˝ popis sĂşboru v GUI reĹľime" +msgid "" +"Enter option of the ocr program to define output filedescripor in GUI mode" +msgstr "" +"VloĹľiĹĄ nastavenie ocr programu urÄŤujĂşci vĂ˝stupnĂ˝ popis sĂşboru v GUI reĹľime" #. DESC_OCR_PROGRESS_KEYWORD msgid "Define Keyword that is used to mark progress information" -msgstr "UrÄŤenie KľúčovĂ©ho slova, ktorĂ© sa pouĹľije na oznaÄŤenie informáciĂ o postupe" +msgstr "" +"UrÄŤenie KľúčovĂ©ho slova, ktorĂ© sa pouĹľije na oznaÄŤenie informáciĂ o postupe" #. DESC_PERMISSION_READ msgid "read" @@ -1973,10 +2149,12 @@ msgstr "ZmazaĹĄ pamäť náhÄľadu" #. DESC_PRESET_AREA msgid "" "Preset area:\n" -"To add new area or edit an existing area use contect menu (right mouse button)." +"To add new area or edit an existing area use contect menu (right mouse " +"button)." msgstr "" "Predvolená oblasĹĄ:\n" -"Na pridanie novej oblasti alebo Ăşpravy existujĂşcej oblasti pouĹľite kontextovĂş ponuku (pravĂ© tlaÄŤidlo myši)." +"Na pridanie novej oblasti alebo Ăşpravy existujĂşcej oblasti pouĹľite " +"kontextovĂş ponuku (pravĂ© tlaÄŤidlo myši)." #. DESC_ROTATION msgid "Rotate preview and scan" @@ -2098,8 +2276,12 @@ msgid "Filename too long" msgstr "Názov sĂşboru prĂliš dlhĂ˝" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Nie je moĹľnĂ© vytvoriĹĄ doÄŤasnĂ˝ sĂşbor" +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" @@ -2223,10 +2405,6 @@ msgstr "Zlyhalo spustenie prehliadaÄŤa faxov:" msgid "Failed to execute fax command:" msgstr "Zlyhalo spustenie faxovĂ©ho prĂkazu:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Zlyhalo spustenie prehliadaÄŤa obrázkov e emaily:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Zlyhalo spustenie ocr prĂkazu:" @@ -2276,14 +2454,6 @@ msgstr "NáhÄľad nepodporuje bitovĂş hÄşbku" msgid "GIMP support missing" msgstr "ChĂ˝ba podpora pre GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Nie je moĹľnĂ© vytvoriĹĄ doÄŤasnĂ© sĂşbory pre náhÄľad" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Nie je moĹľnĂ© vytvoriĹĄ názvy sĂşborov pre náhÄľad" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Nie je moĹľnĂ© vytvoriĹĄ fax projekt" @@ -2397,8 +2567,10 @@ msgstr "[VOÄ˝BA]... [ZARIADENIE]" # TEXT_HELP #. TEXT_HELP +#, fuzzy msgid "" -"Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n" +"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" @@ -2406,34 +2578,42 @@ msgid "" " -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" +" -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" -" -m, --mail start with mail-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" +" -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, --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" +" --sync request a synchronous connection with the X11 " +"server" msgstr "" "Spustenie grafickĂ©ho rozhrania pre prĂstup k SANE zariadeniam.\n" "\n" -"Formát [ZARIADENIA] je názov_ovládaÄŤa:názov zariadenia (napr. umax:/dev/scanner).\n" +"Formát [ZARIADENIA] je názov_ovládaÄŤa:názov zariadenia (napr. umax:/dev/" +"scanner).\n" "[VOÄ˝BA]... mĂ´Ĺľe maĹĄ kombináciu nasledovnĂ˝ch poloĹľiek:\n" " -h, --help zobrazĂ tohoto pomocnĂka a skonÄŤĂ\n" " -v, --version vypĂše informácie o verziĂ\n" " -l, --license vypĂše informáciu o licenciĂ\n" "\n" -" -d, --device-settings file naÄŤĂta nastavenia zariadenia zo sĂşboru (bez \".drc\")\n" +" -d, --device-settings file naÄŤĂta nastavenia zariadenia zo sĂşboru (bez \"." +"drc\")\n" "\n" " -V, --viewer spustĂ v reĹľime prehliadaÄŤ (štandardnĂ©)\n" " -s, --save spustĂ v reĹľime ukladania\n" @@ -2461,8 +2641,13 @@ msgid "Front-end to the SANE interface" msgstr "PouĹľĂvateÄľskĂ˝ program k rozhraniu 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 "Táto funkcia poskytuje prĂstup k skenerom a ostatnĂ˝m zariadeniam na zĂskavanie obrázkov cez rozhranie SANE (Scanner Access Now Easy - prĂstup k skeneru je teraz jednoduchĂ˝)" +msgid "" +"This function provides access to scanners and other image acquisition " +"devices through the SANE (Scanner Access Now Easy) interface." +msgstr "" +"Táto funkcia poskytuje prĂstup k skenerom a ostatnĂ˝m zariadeniam na " +"zĂskavanie obrázkov cez rozhranie SANE (Scanner Access Now Easy - prĂstup k " +"skeneru je teraz jednoduchĂ˝)" #. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" #. XSANE_GIMP_MENU_DIALOG @@ -2486,7 +2671,8 @@ 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" +"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" @@ -2494,7 +2680,8 @@ msgstr "" "MoĹľnĂ© dĂ´vody:\n" "1) SkutoÄŤne neexituje zariadenie, ktorĂ© je podporovanĂ© v SANE\n" "2) PodporovanĂ© zariadenie sa pouĹľĂva\n" -"3) Práva zariadenia vám nepovoÄľujĂş jeho pouĹľĂvanie - vyskúšajte SANE spustiĹĄ ako root\n" +"3) Práva zariadenia vám nepovoÄľujĂş jeho pouĹľĂvanie - vyskúšajte SANE spustiĹĄ " +"ako root\n" "4) Backend nie je naÄŤĂtanĂ˝ pomocou SANE (man sane-dll)\n" "5) Backend nie je správne nakonfigurovanĂ˝ (man sane-\"názovbackendu\")\n" "6) Pravdepodobne viac ako len jedna verzia SANE je nainštalovaná" @@ -2613,66 +2800,86 @@ msgstr "Konica negatĂv VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negatĂv HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "E-mailovĂ˝ projekt nebol vytvorenĂ˝" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "FaxovĂ˝ projekt nebol vytvorenĂ˝" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "E-mailovĂ˝ projekt vytvorenĂ˝" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "FaxovĂ˝ projekt vytvorenĂ˝" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "E-mailovĂ˝ projekt zmenenĂ˝" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "FaxovĂ˝ projekt zmenenĂ˝" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Chyba pri ÄŤĂtanĂ e-mailovĂ©ho projektu" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Ukladanie obrázka" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Ukladanie obrázka" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Ukladanie obrázka" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "E-mail bol poslanĂ˝" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3 pripojenie zlyhalo" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3 prihlásenie zlyhalo" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "SMTP pripojenie zlyhalo" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP pripojenie zlyhalo" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "PoloĹľka Od je neakceptovaná" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "PoloĹľka PrĂjemca je neakceptovaná" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "E-mailovĂ© dáta neakceptovanĂ©" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Posielanie e-mailu" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "E-mail bol poslanĂ˝" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "FaxovĂ˝ projekt nebol vytvorenĂ˝" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "FaxovĂ˝ projekt vytvorenĂ˝" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "FaxovĂ˝ projekt zmenenĂ˝" - #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" msgstr "ZaraÄŹovanie faxu do fronty" @@ -2736,3 +2943,92 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Nie je moĹľnĂ© vytvoriĹĄ doÄŤasnĂ© sĂşbory pre náhÄľad" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Nie je moĹľnĂ© vytvoriĹĄ názvy sĂşborov pre náhÄľad" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "POP3 autentifikácia" + +#~ msgid "XSane mode" +#~ msgstr "XSane reĹľim" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 pouĹľĂvateÄľ:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 heslo:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "ReĹľim automatickĂ©ho podávaÄŤa dokumentov:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "VĂ˝ber zdroja skenovania pre automatickĂ˝ podávaÄŤ dokumentov. PokiaÄľ je " +#~ "táto voÄľba nastavená, XSane skenuje, pokiaÄľ nenastane stav \"nie je papier" +#~ "\" alebo chyba" + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "E-mailovĂ˝ projekt nebol vytvorenĂ˝" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "E-mailovĂ˝ projekt vytvorenĂ˝" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "E-mailovĂ˝ projekt zmenenĂ˝" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "E-mailovĂ˝ projekt nebol vytvorenĂ˝" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "E-mailovĂ˝ projekt vytvorenĂ˝" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "E-mailovĂ˝ projekt zmenenĂ˝" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Chyba pri ÄŤĂtanĂ e-mailovĂ©ho projektu" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Ukladanie obrázka" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "E-mailovĂ˝ projekt vytvorenĂ˝" + +#~ msgid "Image" +#~ msgstr "Obrázok" + +#~ msgid "Viewer (png):" +#~ msgstr "PrehliadaÄŤ (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "" +#~ "Nastavenie prĂkazu, ktorĂ˝ ma byĹĄ spustenĂ˝ k zobrazeniu obrázku v emaily" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Zlyhalo spustenie prehliadaÄŤa obrázkov e emaily:" + +#~ msgid "Step" +#~ msgstr "Krok" + +#~ msgid "Mail" +#~ msgstr "Pošta" Binary files differ@@ -1,23 +1,26 @@ +# translation of xsane.po to slovenščina # Slovenian translation for XSane. -# Copyright (C) 2001 Free Software Foundation, Inc. -# Ales Kosir <ales.kosir@lugos.si>, 2001. +# Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc. # # +# Ales Kosir <ales.kosir@lugos.si>, 2001. +# Dušan VejnoviÄŤ <dusan@vejnovic.com>, 2005, 2006. msgid "" msgstr "" -"Project-Id-Version: XSANE 0.84\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2001-02-25 14:06+01:00\n" -"Last-Translator: Ales Kosir <ales.kosir@lugos.si>\n" -"Language-Team: Slovenian <sl@li.org>\n" +"Project-Id-Version: xsane\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2006-01-02 17:48+0100\n" +"Last-Translator: Dušan VejnoviÄŤ <dusan@vejnovic.com>\n" +"Language-Team: slovenščina <sl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11\n" #. Please translate this to the correct directory name (eg. german=>de) #. XSANE_LANGUAGE_DIR msgid "language_dir" -msgstr "" +msgstr "sl" #. XSANE_COPYRIGHT_SIGN msgid "(c)" @@ -26,7 +29,7 @@ msgstr "(c)" #. can be translated with \251 #. FILENAME_PREFIX_CLONE_OF msgid "clone-of-" -msgstr "" +msgstr "klon od" #. WINDOW_ABOUT_XSANE msgid "About" @@ -42,11 +45,11 @@ msgstr "avtorizacija" #. WINDOW_GPL msgid "GPL - the license" -msgstr "" +msgstr "GPL licenca" #. WINDOW_EULA msgid "End User License Agreement" -msgstr "" +msgstr "LicenÄŤna pogodba za konÄŤnega uporabnika" #. WINDOW_INFO msgid "info" @@ -54,24 +57,23 @@ msgstr "podatki" #. WINDOW_LOAD_BATCH_LIST msgid "load batch list" -msgstr "" +msgstr "naloĹľi paketni seznam" #. WINDOW_SAVE_BATCH_LIST msgid "save batch list" -msgstr "" +msgstr "shrani paketni seznam" #. WINDOW_BATCH_SCAN msgid "batch scan" msgstr "paketno skeniranje" #. WINDOW_BATCH_RENAME -#, fuzzy msgid "rename batch area" -msgstr "Zbriši projekt" +msgstr "preimenuj paketno podroÄŤje" #. WINDOW_FAX_PROJECT msgid "fax project" -msgstr "fax" +msgstr "faks projekt" #. WINDOW_FAX_RENAME msgid "rename fax page" @@ -79,41 +81,39 @@ msgstr "preimenuj stran s faksom" #. WINDOW_FAX_INSERT msgid "insert ps-file into fax" -msgstr "" +msgstr "vstavi ps-datoteko v faks" -#. WINDOW_MAIL_PROJECT -#, fuzzy -msgid "mail project" -msgstr "fax" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-poštni projekt" -#. WINDOW_MAIL_RENAME -#, fuzzy -msgid "rename mail image" -msgstr "preimenuj stran s faksom" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "preimenuj e-poštno sliko" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" -msgstr "" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "vstavi datoteko v e-pošto" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "veÄŤstranski projekt" #. WINDOW_PRESET_AREA_RENAME -#, fuzzy msgid "rename preset area" -msgstr "preimenuj stran s faksom" +msgstr "preimenuj prednastavljeno obmoÄŤje" #. WINDOW_PRESET_AREA_ADD -#, fuzzy msgid "add preset area" -msgstr "preimenuj stran s faksom" +msgstr "dodaj prednastavljeno obmoÄŤje" #. WINDOW_MEDIUM_RENAME -#, fuzzy msgid "rename medium" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "preimenuj medij" #. WINDOW_MEDIUM_ADD -#, fuzzy msgid "add new medium" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "dodaj novi medij" #. WINDOW_SETUP msgid "setup" @@ -141,26 +141,23 @@ msgstr "izbiranje naprave" #. WINDOW_PREVIEW msgid "Preview" -msgstr "Ogled" +msgstr "Predogled" #. WINDOW_VIEWER -#, fuzzy msgid "Viewer" -msgstr "Pogled" +msgstr "Pregledovalnik" #. WINDOW_VIEWER_OUTPUT_FILENAME -#, fuzzy msgid "Viewer: select output filename" -msgstr "izbiranje izhodne datoteke" +msgstr "Pregledovalnik: izberi ime izhodne datoteke" #. WINDOW_OCR_OUTPUT_FILENAME -#, fuzzy msgid "Select output filename for OCR text file" -msgstr "izbiranje izhodne datoteke" +msgstr "Izberi ime izhodne datoteke za OCR tekstovno datoteko" #. WINDOW_OUTPUT_FILENAME msgid "select output filename" -msgstr "izbiranje izhodne datoteke" +msgstr "izberi ime izhodne datoteke" #. WINDOW_SAVE_SETTINGS msgid "save device settings" @@ -176,32 +173,27 @@ msgstr "spremeni delovni imenik" #. WINDOW_TMP_PATH msgid "select temporary directory" -msgstr "izberi imenik z zaÄŤasnimi datotekami" +msgstr "izberi zaÄŤasni imenik" #. WINDOW_SCALE -#, fuzzy msgid "Scale image" -msgstr "Surova slika" +msgstr "Skaliraj sliko" #. WINDOW_DESPECKLE -#, fuzzy msgid "Despeckle image" -msgstr "Zbriši projekt" +msgstr "Odstrani packe iz slike" #. WINDOW_BLUR -#, fuzzy msgid "Blur image" -msgstr "Zbriši projekt" +msgstr "Zamegli sliko" #. WINDOW_STORE_MEDIUM -#, fuzzy msgid "Store medium definition" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Shrani izbiro medija" #. WINDOW_NO_DEVICES -#, fuzzy msgid "No devices available" -msgstr "na voljo ni nobene naprave" +msgstr "Na voljo ni nobene naprave" #. MENU_FILE msgid "File" @@ -217,7 +209,7 @@ msgstr "Pogled" #. MENU_WINDOW msgid "Window" -msgstr "" +msgstr "Okno" #. MENU_HELP msgid "Help" @@ -225,16 +217,15 @@ msgstr "PomoÄŤ" #. MENU_EDIT msgid "Edit" -msgstr "" +msgstr "Urejanje" #. MENU_FILTERS -#, fuzzy msgid "Filters" -msgstr "Datoteka" +msgstr "Filtri" #. MENU_GEOMETRY msgid "Geometry" -msgstr "" +msgstr "Goemetrija" #. MENU_ITEM_ABOUT_XSANE msgid "About XSane" @@ -249,23 +240,20 @@ msgid "Quit" msgstr "Izhod" #. MENU_ITEM_SAVE_IMAGE -#, fuzzy msgid "Save image" -msgstr "Surova slika" +msgstr "Shrani slika" #. MENU_ITEM_OCR msgid "OCR - save as text" -msgstr "" +msgstr "OCR - shrani kot tekst" #. MENU_ITEM_CLONE -#, fuzzy msgid "Clone" -msgstr "Zapri" +msgstr "Kloniraj" #. MENU_ITEM_SCALE -#, fuzzy msgid "Scale" -msgstr "Skeniraj" +msgstr "Skaliraj" #. MENU_ITEM_CLOSE msgid "Close" @@ -273,37 +261,35 @@ msgstr "Zapri" #. MENU_ITEM_UNDO msgid "Undo" -msgstr "" +msgstr "IzniÄŤi" #. MENU_ITEM_DESPECKLE msgid "Despeckle" -msgstr "" +msgstr "Odstrani packe" #. MENU_ITEM_BLUR msgid "Blur" -msgstr "" +msgstr "Zamegli" #. MENU_ITEM_ROTATE90 msgid "Rotate 90" -msgstr "" +msgstr "Rotiraj 90" #. MENU_ITEM_ROTATE180 msgid "Rotate 180" -msgstr "" +msgstr "Rotiraj 180" #. MENU_ITEM_ROTATE270 msgid "Rotate 270" -msgstr "" +msgstr "Rotiraj 270" #. MENU_ITEM_MIRROR_X -#, fuzzy msgid "Mirror |" -msgstr "napaka" +msgstr "Zrcali |" #. MENU_ITEM_MIRROR_Y -#, fuzzy msgid "Mirror -" -msgstr "napaka" +msgstr "Zrcali -" #. FRAME_RAW_IMAGE msgid "Raw image" @@ -314,9 +300,8 @@ msgid "Enhanced image" msgstr "Obdelana slika" #. BUTTON_SCAN -#, fuzzy msgid "Scan" -msgstr "Skeniram" +msgstr "Skeniraj" #. BUTTON_OK msgid "Ok" @@ -324,11 +309,11 @@ msgstr "V redu" #. BUTTON_ACCEPT msgid "Accept" -msgstr "" +msgstr "Sprejmi" #. BUTTON_NOT_ACCEPT msgid "Not accept" -msgstr "" +msgstr "Ne sprejmi" #. BUTTON_APPLY msgid "Apply" @@ -340,11 +325,11 @@ msgstr "PrekliÄŤi" #. BUTTON_REDUCE msgid "Reduce" -msgstr "" +msgstr "Zmanjšaj" #. BUTTON_CONT_AT_OWN_RISK msgid "Continue at your own risk" -msgstr "Nadaljevanje je na lastno odgovornost" +msgstr "Nadaljevanje na lastno odgovornost" #. BUTTON_BROWSE msgid "Browse" @@ -355,53 +340,44 @@ msgid "Overwrite" msgstr "Prepiši" #. BUTTON_BATCH_LIST_SCAN -#, fuzzy msgid "Scan batch list" -msgstr "Namigi za skeniranje" +msgstr "Skeniraj paketni seznam" #. BUTTON_BATCH_AREA_SCAN -#, fuzzy msgid "Scan selected area" -msgstr "PribliĹľaj izbrano obmoÄŤje" +msgstr "Skeniraj izbrano obmoÄŤje" #. BUTTON_PAGE_DELETE -#, fuzzy msgid "Delete page" -msgstr "Zbriši projekt" +msgstr "Zbriši stran" #. BUTTON_PAGE_SHOW -#, fuzzy msgid "Show page" -msgstr "PrikaĹľi predogled" +msgstr "PrikaĹľi stran" #. BUTTON_PAGE_RENAME -#, fuzzy msgid "Rename page" -msgstr "preimenuj stran s faksom" +msgstr "Preimenuj stran" #. BUTTON_IMAGE_DELETE -#, fuzzy msgid "Delete image" -msgstr "Zbriši projekt" +msgstr "Zbriši sliko" #. BUTTON_IMAGE_SHOW -#, fuzzy msgid "Show image" -msgstr "PrikaĹľi predogled" +msgstr "PrikaĹľi sliko" #. BUTTON_IMAGE_EDIT -#, fuzzy msgid "Edit image" -msgstr "Obdelana slika" +msgstr "Uredi sliko" #. BUTTON_IMAGE_RENAME -#, fuzzy msgid "Rename image" -msgstr "preimenuj stran s faksom" +msgstr "Preimenuj sliko" #. BUTTON_FILE_INSERT msgid "Insert file" -msgstr "" +msgstr "Vstavi datoteko" #. BUTTON_CREATE_PROJECT msgid "Create project" @@ -411,6 +387,10 @@ msgstr "Ustvari projekt" msgid "Send project" msgstr "Pošlji projekt" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Shrani veÄŤstransko datoteko" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Zbriši projekt" @@ -424,44 +404,40 @@ msgid "Delete printer" msgstr "Odstrani tiskalnik" #. BUTTON_PREVIEW_ACQUIRE -#, fuzzy msgid "Acquire preview" -msgstr "Ustvari predogled" +msgstr "Pridobi predogled" #. BUTTON_PREVIEW_CANCEL -#, fuzzy msgid "Cancel preview" -msgstr "Odstrani predogled" +msgstr "Prekini predogled" #. BUTTON_DISCARD_IMAGE -#, fuzzy msgid "Discard image" -msgstr "Zbriši projekt" +msgstr "Zbriši sliko" #. BUTTON_DISCARD_ALL_IMAGES -#, fuzzy msgid "Discard all images" -msgstr "Zbriši projekt" +msgstr "Zbriši vse slike" #. BUTTON_DO_NOT_CLOSE msgid "Do not close" -msgstr "" +msgstr "Ne zapri" #. BUTTON_SCALE_BIND msgid "Bind scale" -msgstr "" +msgstr "PoveĹľi skalo" #. RADIO_BUTTON_FINE_MODE msgid "Fine mode" -msgstr "NatanÄŤnejše nastavljanje" +msgstr "NatanÄŤnejši naÄŤin" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML e-pošta" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" -msgstr "" +msgstr "Shrani nastavitve naprave ob izhodu" #. RADIO_BUTTON_OVERWRITE_WARNING msgid "Overwrite warning" @@ -469,76 +445,71 @@ msgstr "Prepiši opozorilo" #. RADIO_BUTTON_SKIP_EXISTING_NRS msgid "Skip existing filenames" -msgstr "PreskoÄŤi obstojeÄŤe datoteke" +msgstr "PreskoÄŤi obstojeÄŤa imena datotek" + +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "Shrani postscript stisnjen z zlib (ps stopnja 3)" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "Shrani PDF stisnjen z zlib" #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" -msgstr "" +msgstr "Shrani 16 bitni pnm v ASCII formatu" #. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT msgid "Reduce 16 bit image to 8 bit" -msgstr "" +msgstr "Zmanjšaj 16 bitno sliko na 8 bitno" #. RADIO_BUTTON_WINDOW_FIXED msgid "Main window size fixed" -msgstr "Velikost glavnega okna je popravljena" +msgstr "Fiksiraj velikost glavnega okna" #. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA msgid "Disable gimp preview gamma" -msgstr "OnemogoÄŤi popravljanje gama pri predogledu v gimpu" +msgstr "OnemogoÄŤi faktor gama pri predogledu v gimpu" #. RADIO_BUTTON_PRIVATE_COLORMAP msgid "Use private colormap" -msgstr "Uporabi lastno paleto" +msgstr "Uporabi lastno paleto barv" #. RADIO_BUTTON_AUTOENHANCE_GAMMA msgid "Autoenhance gamma" msgstr "Samodejno izboljšaj faktor gama" #. RADIO_BUTTON_PRESELECT_SCANAREA -#, fuzzy msgid "Preselect scanarea" -msgstr "Samodejno doloÄŤi obmoÄŤje skeniranja" +msgstr "Predizbrano obmoÄŤje skeniranja" #. RADIO_BUTTON_AUTOCORRECT_COLORS msgid "Autocorrect colors" -msgstr "" - -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "" +msgstr "Avtomatska korekcija barv" #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" -msgstr "" +msgstr "Uporabi GUI cevovod napredka" #. TEXT_SCANNING_DEVICES msgid "scanning for devices" -msgstr "iskanje naprave" +msgstr "iskanje naprav" #. TEXT_AVAILABLE_DEVICES msgid "Available devices:" -msgstr "Naprave na voljo:" +msgstr "RazpoloĹľljive naprave:" #. TEXT_XSANE_OPTIONS msgid "XSane options" msgstr "Izbire XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "NaÄŤin delovanja XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Korak" - #. TEXT_FILETYPE msgid "Type" -msgstr "Vrsta" +msgstr "Tip" #. TEXT_SCANNER_BACKEND msgid "Scanner and backend:" -msgstr "Skener in proces v ozadju" +msgstr "Skener in program ozadju:" #. TEXT_VENDOR msgid "Vendor:" @@ -550,7 +521,7 @@ msgstr "Model:" #. TEXT_TYPE msgid "Type:" -msgstr "Vrsta:" +msgstr "Tip:" #. TEXT_DEVICE msgid "Device:" @@ -558,11 +529,11 @@ msgstr "Naprava:" #. TEXT_LOADED_BACKEND msgid "Loaded backend:" -msgstr "NaloĹľen proces v ozadju:" +msgstr "NaloĹľen program v ozadju:" #. TEXT_SANE_VERSION msgid "Sane version:" -msgstr "RazliÄŤica programa sane:" +msgstr "RazliÄŤica programa Sane:" #. TEXT_RECENT_VALUES msgid "Recent values:" @@ -577,9 +548,8 @@ msgid "scanner" msgstr "skener" #. TEXT_SOFTWARE_XSANE -#, fuzzy msgid "software (XSane)" -msgstr "programska oprema (xsane)" +msgstr "programska oprema (X Sane)" #. TEXT_NONE msgid "none" @@ -599,31 +569,35 @@ msgstr "Globina izhoda skenerja: " #. TEXT_OUTPUT_FORMATS msgid "XSane output formats:" -msgstr "Izhodni zapisi programa XSane:" +msgstr "Izhodni formati programa XSane:" #. TEXT_8BIT_FORMATS msgid "8 bit output formats:" -msgstr "8-bitni izhodni zapisi:" +msgstr "8-bitni izhodni formati:" #. TEXT_16BIT_FORMATS msgid "16 bit output formats:" -msgstr "16-bitni izhodni zapisi:" +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.<br>Ali Ĺľelite zmanjšati barvno " +"globino na 8 bitov?" #. 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?" msgstr "" +"16 bitna barvna globina ni podprta za ta izhodni format.<br>Ali Ĺľelite " +"zmanjšati barvno globino na 8 bitov?" #. TEXT_AUTHORIZATION_REQ msgid "Authorization required for" -msgstr "Zahtevana potrditev za" +msgstr "Avtorizacija je potrebna za " #. TEXT_AUTHORIZATION_SECURE msgid "Password transmission is secure" @@ -631,7 +605,7 @@ msgstr "Prenos gesla je varen" #. TEXT_AUTHORIZATION_INSECURE msgid "Backend requests plain-text password" -msgstr "Proces v ozadju zahteva nekodirano geslo" +msgstr "Program v ozadju zahteva nekodirano geslo" #. TEXT_USERNAME msgid "Username :" @@ -687,6 +661,17 @@ msgid "" "have to read, understand and accept the following\n" "\"NO WARRANTY\" agreement.\n" msgstr "" +"XSane je distribuiran pod pogoji GNU GPL licence,\n" +"ki jo objavlja Free Software Foundation; licence verzije 2,\n" +"ali (po vašem mnenju) katerekoli kasnejše verzije.\n" +"\n" +"Ta program je distribuiran v upanju, da bo uporaben, toda\n" +"BREZ VSAKEGA JAMSTVA.\n" +"Ker je program lahko pomankljiv, vi nase sprejemate stroške\n" +"vseh nepotrebnih servisov, popravil ali nastavitev.\n" +"Da lahko uporabljate ta program, morate\n" +"prebrati, razumeti in sprejeti naslednji\n" +"\"NO WARRANTY\" sporazum.\n" #. TEXT_GPL msgid "" @@ -698,10 +683,16 @@ msgid "" "WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" +"XSane je distribuiran pod pogoji GNU GPL licence,\n" +"ki jo objavlja Free Software Foundation; licence verzije 2,\n" +"ali (po vašem mnenju) katerekoli kasnejše verzije.\n" +"\n" +"Ta program je distribuiran v upanju, da bo uporaben, toda\n" +"BREZ VSAKEGA JAMSTVA.\n" -#. TEXT_EMAIL -msgid "Email:" -msgstr "Epošta:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "E-pošta:" #. TEXT_HOMEPAGE msgid "Homepage:" @@ -718,17 +709,16 @@ msgstr "Prevod:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO -#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "prevod iz angleškega izvirnika\n" -"Aleš Košir\n" -"Epošta: ales.kosir@lugos.si\n" +"Dušan VejnoviÄŤ\n" +"E-pošta: dusan@vejnovic.com\n" #. TEXT_INFO_BOX msgid "0x0: 0KB" @@ -738,80 +728,81 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Poskenirane strani: " -#. TEXT_MAIL_TEXT -#, fuzzy -msgid "Email text:" -msgstr "Epošta:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "Tekst e-pošte:" #. TEXT_ATTACHMENTS msgid "Attachments:" -msgstr "" +msgstr "Priponke:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" -msgstr "" +msgstr "Status projekta:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "Tip datoteke slike e-pošte:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Strani:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Tip datoteke veÄŤstranskega dokumenta:" #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" -msgstr "" +msgstr "Ime mdeija:" #. 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" msgstr "" +"Velikost %d x %d pikslov, %d bitov/barvo, %d barv, %1.0f dpi x %1.0f dpi, %" +"1.1f %s" #. TEXT_DESPECKLE_RADIUS -#, fuzzy msgid "Despeckle radius:" -msgstr "Zbriši projekt" +msgstr "Radij zmanjševanja pack:" #. TEXT_BLUR_RADIUS msgid "Blur radius:" -msgstr "" +msgstr "Radij zamegljevanja:" #. TEXT_BATCH_AREA_DEFAULT_NAME -#, fuzzy msgid "(no name)" -msgstr "(nobeno)" +msgstr "(brez imena)" #. TEXT_BATCH_LIST_AREANAME -#, fuzzy msgid "Area name:" -msgstr "Uporabnik:" +msgstr "Ime podroÄŤja:" #. TEXT_BATCH_LIST_SCANMODE -#, fuzzy msgid "Scanmode:" -msgstr "NaÄŤin delovanja XSane" +msgstr "NaÄŤin skeniranja:" #. TEXT_BATCH_LIST_GEOMETRY_TL msgid "Top left:" -msgstr "" +msgstr "Zgoraj levo:" #. TEXT_BATCH_LIST_GEOMETRY_SIZE -#, fuzzy msgid "Size:" -msgstr "Datoteka:" +msgstr "Velikost:" #. TEXT_BATCH_LIST_RESOLUTION -#, fuzzy msgid "Resolution:" -msgstr "Izbira praga:" +msgstr "LoÄŤljivost:" #. TEXT_BATCH_LIST_BIT_DEPTH -#, fuzzy msgid "Bit depth:" -msgstr "Globina vhoda gama:" +msgstr "Bitna globina:" #. TEXT_BATCH_LIST_BY_GUI -#, fuzzy msgid "as selected" -msgstr "PribliĹľaj izbrano obmoÄŤje" +msgstr "kot je izbrano" #. TEXT_SETUP_PRINTER_SEL msgid "Printer selection:" @@ -831,35 +822,31 @@ msgstr "Ĺ tevilo kopij:" #. TEXT_SETUP_PRINTER_LINEART_RES msgid "Lineart resolution (dpi):" -msgstr "LoÄŤljivost v ÄŤrnobelem naÄŤinu Lineart (dpi)" +msgstr "ÄŚrnobela loÄŤljivost (dpi):" #. TEXT_SETUP_PRINTER_GRAYSCALE_RES msgid "Grayscale resolution (dpi):" -msgstr "LoÄŤljivost v sivinskem naÄŤinu (dpi):" +msgstr "Sivinska loÄŤljivost (dpi):" #. TEXT_SETUP_PRINTER_COLOR_RES msgid "Color resolution (dpi):" -msgstr "LoÄŤljivost v barvnem naÄŤinu (dpi):" +msgstr "Barvna loÄŤljivost (dpi):" #. TEXT_SETUP_PRINTER_WIDTH -#, fuzzy msgid "Width" -msgstr "Ĺ irina [mm]:" +msgstr "Ĺ irina" #. TEXT_SETUP_PRINTER_HEIGHT -#, fuzzy msgid "Height" -msgstr "Višina [mm]:" +msgstr "Višina" #. TEXT_SETUP_PRINTER_LEFT -#, fuzzy msgid "Left offset" -msgstr "Levi odmik [mm]:" +msgstr "Levi odmik" #. TEXT_SETUP_PRINTER_BOTTOM -#, fuzzy msgid "Bottom offset" -msgstr "Odmik spodaj [mm]:" +msgstr "Odmik spodaj" #. TEXT_SETUP_PRINTER_GAMMA msgid "Printer gamma value:" @@ -867,15 +854,19 @@ msgstr "Vrednost gama za tiskalnik:" #. TEXT_SETUP_PRINTER_GAMMA_RED msgid "Printer gamma red:" -msgstr "Vrednost gama rdeÄŤe barve za tiskalnik:" +msgstr "Gama rdeÄŤa za tiskalnik:" #. TEXT_SETUP_PRINTER_GAMMA_GREEN msgid "Printer gamma green:" -msgstr "Vrednost gama zelene barve za tiskalnik:" +msgstr "Gama zelena za tiskalnik:" #. TEXT_SETUP_PRINTER_GAMMA_BLUE msgid "Printer gamma blue:" -msgstr "Vrednost gama modre barve za tiskalnik:" +msgstr "Gama modra za tiskalnik:" + +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "Ustvari stisnjeno postscriptno sliko z zlib (ps stopnja 3) za tiskanje" #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" @@ -883,72 +874,71 @@ msgstr "ZaÄŤasni imenik" #. TEXT_SETUP_IMAGE_PERMISSION msgid "Image-file permissions" -msgstr "Dovoljenja dostopa do slikovne datoteke" +msgstr "Dovoljenja slikovne datoteke" #. TEXT_SETUP_DIR_PERMISSION msgid "Directory permissions" -msgstr "Dovoljenja dostopa do imenika" +msgstr "Dovoljenja imenika" #. TEXT_SETUP_JPEG_QUALITY msgid "JPEG image quality" -msgstr "Kakovost slike v zapisu JPEG" +msgstr "JPEG kvaliteta slike" #. TEXT_SETUP_PNG_COMPRESSION msgid "PNG image compression" -msgstr "Stopnja stiskanja v zapisu PNG" +msgstr "stiskanje PNG slike" #. TEXT_SETUP_FILENAME_COUNTER_LEN msgid "Filename counter length" -msgstr "število znakov pri oštevilÄŤenju slik" +msgstr "DolĹľina števca imena datoteke" + +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip stopnja stiskanja" #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" -msgstr "Stiskanje v 16-bitnem zapisu TIFF" +msgstr "stiskanje TIFF 16 bitne slike" #. TEXT_SETUP_TIFF_COMPRESSION_8 msgid "TIFF 8 bit image compression" -msgstr "Stiskanje v 8-bitnem zapisu TIFF" +msgstr "stiskanje TIFF 8 bitne slike" #. TEXT_SETUP_TIFF_COMPRESSION_1 msgid "TIFF lineart image compression" -msgstr "Stiskanje v naÄŤinu Lineart v zapisu TIFF" +msgstr "stiskanje TIFF lineart slike" #. TEXT_SETUP_SHOW_RANGE_MODE -#, fuzzy msgid "Show range as:" -msgstr "PrikaĹľi predogled" +msgstr "PrikaĹľi obmoÄŤje kot:" #. TEXT_SETUP_PREVIEW_OVERSAMPLING msgid "Preview oversampling:" -msgstr "Prekomerno vzorÄŤenje pri predogledu:" +msgstr "Predogled prekomernega vzorÄŤenja:" #. TEXT_SETUP_PREVIEW_GAMMA msgid "Preview gamma:" -msgstr "Faktor gama pri preodgledu:" +msgstr "Predogled gama:" #. TEXT_SETUP_PREVIEW_GAMMA_RED msgid "Preview gamma red:" -msgstr "Faktor gama za rdeÄŤo barvo pri preodgledu:" +msgstr "Predogled gama rdeÄŤ:" #. TEXT_SETUP_PREVIEW_GAMMA_GREEN msgid "Preview gamma green:" -msgstr "Faktor gama za zeleno barvo pri preodgledu:" +msgstr "Predogled gama zelen:" #. TEXT_SETUP_PREVIEW_GAMMA_BLUE msgid "Preview gamma blue:" -msgstr "Faktor gama za modro barvo pri preodgledu:" +msgstr "Predogled gama moder:" #. TEXT_SETUP_LINEART_MODE msgid "Threshold option:" msgstr "Izbira praga:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Samodejno podajanje dokumentov:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" -msgstr "Velikost obmoÄŤja pri zajemanju barve v predogledu" +msgstr "Predogled velikosti obmoÄŤja zajemanja barv" #. TEXT_SETUP_THRESHOLD_MIN msgid "Threshold minimum:" @@ -972,7 +962,7 @@ msgstr "Ime sivinskega naÄŤina skeniranja:" #. TEXT_SETUP_HELPFILE_VIEWER msgid "Helpfile viewer (HTML):" -msgstr "Ime programa za prikaz pomoÄŤi v zapisu HTML:" +msgstr "Ime programa za prikaz pomoÄŤi (HTML):" #. TEXT_SETUP_FAX_RECEIVER_OPTION msgid "Receiver option:" @@ -992,77 +982,75 @@ msgstr "Izbire pri podrobnem naÄŤinu:" #. TEXT_SETUP_FAX_PROGRAM_DEFAULTS msgid "Set program defaults for:" -msgstr "" +msgstr "Nastavi privzete nastavitve programa za:" #. TEXT_SETUP_FAX_VIEWER msgid "Viewer (Postscript):" -msgstr "Ogledovalnik za zapis postscript" +msgstr "Ogledovalnik (postscript):" + +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "Ustvari stisnjeno postscriptno sliko z zlib (ps stopnja 3) za faks" #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" -msgstr "" +msgstr "SMTP streĹľnik:" #. TEXT_SETUP_SMTP_PORT msgid "SMTP port:" -msgstr "" +msgstr "SMTP vrata:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" -msgstr "" +msgstr "Od:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" -msgstr "" +msgstr "Odgovori:" + +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" +msgstr "avtentifikacija za e-pošto" + +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" +msgstr "Uporabnik:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" +msgstr "Geslo:" #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" -msgstr "" +msgstr "POP3 streĹľnik:" #. TEXT_SETUP_POP3_PORT msgid "POP3 port:" -msgstr "" - -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "" - -#. TEXT_SETUP_POP3_PASS -#, fuzzy -msgid "POP3 password:" -msgstr "Geslo:" - -#. TEXT_SETUP_MAIL_VIEWER -#, fuzzy -msgid "Viewer (png):" -msgstr "Ogledovalnik za zapis postscript" +msgstr "POP3 vrata:" #. TEXT_SETUP_OCR_COMMAND -#, fuzzy msgid "OCR Command:" -msgstr "Ukaz:" +msgstr "OCR ukaz:" #. TEXT_SETUP_OCR_INPUTFILE_OPT -#, fuzzy msgid "Inputfile option:" -msgstr "Izbire pri postscriptni datoteki:" +msgstr "Izbire pri vhodni datoteki:" #. TEXT_SETUP_OCR_OUTPUTFILE_OPT -#, fuzzy msgid "Outputfile option:" -msgstr "Izbire pri postscriptni datoteki:" +msgstr "Izbire pri izhodni datoteki:" #. TEXT_SETUP_OCR_USE_GUI_PIPE_OPT msgid "Use GUI progress pipe:" -msgstr "" +msgstr "Uporabi GUI cevovod napredka:" #. TEXT_SETUP_OCR_OUTFD_OPT -#, fuzzy msgid "GUI output-fd option:" -msgstr "Izbire pri postscriptni datoteki:" +msgstr "GUI -fd izhodna izbira:" #. TEXT_SETUP_OCR_PROGRESS_KEYWORD msgid "Progress keyword:" -msgstr "" +msgstr "Beseda napredka:" #. TEXT_SETUP_PERMISSION_USER msgid "user" @@ -1077,15 +1065,15 @@ msgid "all" msgstr "vsi" msgid "new media" -msgstr "" +msgstr "novi medij" #. NOTEBOOK_SAVING_OPTIONS msgid "Save" -msgstr "" +msgstr "Shrani" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Tip datoteke" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1095,29 +1083,25 @@ msgstr "Kopiraj" msgid "Fax" msgstr "Faks" -#. NOTEBOOK_MAIL_OPTIONS -#, fuzzy -msgid "Mail" -msgstr "Epošta:" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "E-pošta:" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" -msgstr "" +msgstr "OCR" #. NOTEBOOK_DISPLAY_OPTIONS -#, fuzzy msgid "Display" -msgstr "Prikaz izbir" +msgstr "PrikaĹľi" #. NOTEBOOK_ENHANCE_OPTIONS -#, fuzzy msgid "Enhancement" -msgstr "Izbire za izboljševanje" +msgstr "Razširitev" -#. MENU_ITEM_MAIL -#, fuzzy -msgid "Email" -msgstr "Epošta:" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "VeÄŤstransko" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1133,12 +1117,11 @@ msgstr "PrikaĹľi histogram" #. MENU_ITEM_SHOW_GAMMA msgid "Show gamma curve" -msgstr "PrikaĹľi krivuljo gama" +msgstr "PrikaĹľi gama krivuljo" #. MENU_ITEM_SHOW_BATCH_SCAN -#, fuzzy msgid "Show batch scan" -msgstr "paketno skeniranje" +msgstr "PrikaĹľi paketno skeniranje" #. MENU_ITEM_SHOW_STANDARDOPTIONS msgid "Show standard options" @@ -1146,7 +1129,7 @@ msgstr "PrikaĹľi obiÄŤajne izbire" #. MENU_ITEM_SHOW_ADVANCEDOPTIONS msgid "Show advanced options" -msgstr "PrikaĹľi napredne moĹľnosti" +msgstr "PrikaĹľi napredne izbire" #. MENU_ITEM_SETUP msgid "Setup" @@ -1190,12 +1173,11 @@ msgstr "PrikaĹľi seznam loÄŤljivosti" #. MENU_ITEM_PAGE_ROTATE msgid "Rotate postscript" -msgstr "ZasuÄŤi postscript" +msgstr "Rotiraj postscript" #. MENU_ITEM_EDIT_MEDIUM_DEF -#, fuzzy msgid "Edit medium definition" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Uredi izbire za medij" #. MENU_ITEM_SAVE_DEVICE_SETTINGS msgid "Save device settings" @@ -1210,26 +1192,24 @@ msgid "Change directory" msgstr "Spremeni imenik" #. MENU_ITEM_XSANE_EULA -#, fuzzy msgid "Show EULA" -msgstr "PrikaĹľi" +msgstr "PrikaĹľi EULA" #. MENU_ITEM_XSANE_GPL msgid "Show license (GPL)" -msgstr "" +msgstr "PrilaĹľi licenco (GPL)" #. MENU_ITEM_XSANE_DOC -#, fuzzy msgid "XSane doc" -msgstr "Navodila za uporabo XSane" +msgstr "XSane dokument" #. MENU_ITEM_BACKEND_DOC msgid "Backend doc" -msgstr "Navodila za uporabo procesa v ozadju" +msgstr "Navodilo za uporabo programa v ozadju" #. MENU_ITEM_AVAILABLE_BACKENDS msgid "Available backends" -msgstr "Procesi v ozadju, ki so na voljo" +msgstr "RazpoloĹľljivi programi v ozadju" #. MENU_ITEM_SCANTIPS msgid "Scantips" @@ -1249,55 +1229,59 @@ msgstr "brez stiskanja" #. MENU_ITEM_TIFF_COMP_CCITTRLE msgid "CCITT 1D Huffman compression" -msgstr "Huffmanovo stiskanje CCITT 1D" +msgstr "CCITT 1D Huffmanovo stiskanje" #. MENU_ITEM_TIFF_COMP_CCITFAX3 msgid "CCITT Group 3 Fax compression" -msgstr "Stiskanje za fakse po CCITT Group 3" +msgstr "CCITT Group 3 stiskanje za fakse" #. MENU_ITEM_TIFF_COMP_CCITFAX4 msgid "CCITT Group 4 Fax compression" -msgstr "Stiskanje za fakse po CCITT Group 4" +msgstr "CCITT Group 4 stiskanje za fakse" #. MENU_ITEM_TIFF_COMP_JPEG msgid "JPEG DCT compression" -msgstr "Stiskanje JPEG DCT" +msgstr "JPEG DCT stiskanje" #. MENU_ITEM_TIFF_COMP_PACKBITS msgid "pack bits" msgstr "stisni bite" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "zmanjšanje" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" -msgstr "" +msgstr "Drsnik (skala)" #. MENU_ITEM_RANGE_SCROLLBAR msgid "Slider (Scrollbar)" -msgstr "" +msgstr "Drsnik (drsni trak)" #. MENU_ITEM_RANGE_SPINBUTTON msgid "Spinbutton" -msgstr "" +msgstr "Gumb za vrtenje" #. MENU_ITEM_RANGE_SCALE_SPIN msgid "Scale and Spinbutton" -msgstr "" +msgstr "Skala in tipka za vrtenje" #. MENU_ITEM_RANGE_SCROLL_SPIN msgid "Scrollbar and Spinbutton" -msgstr "" +msgstr "Drsni trak in tipka za vrtenje" #. MENU_ITEM_LINEART_MODE_STANDARD msgid "Standard options window (lineart)" -msgstr "Okno z obiÄŤajnimi nastavitvami za naÄŤin lineart" +msgstr "Okno z obiÄŤajnimi nastavitvami (lineart)" #. MENU_ITEM_LINEART_MODE_XSANE msgid "XSane main window (lineart)" -msgstr "Osrednje okno programa XSane v naÄŤinu lineart" +msgstr "Osrednje okno programa XSane (lineart)" #. MENU_ITEM_LINEART_MODE_GRAY msgid "XSane main window (grayscale->lineart)" -msgstr "Osrednje okno programa XSane v naÄŤinu sivinski -> lineart" +msgstr "Osrednje okno programa XSane (sivinsko -> lineart)" #. MENU_ITEM_SELECTION_NONE msgid "(none)" @@ -1309,30 +1293,47 @@ msgstr "po konÄŤnici" #. MENU_ITEM_PRESET_AREA_ADD_SEL msgid "Add selection to list" -msgstr "" +msgstr "Dodaj izbiro h spisku" #. MENU_ITEM_MEDIUM_ADD -#, fuzzy msgid "Add medium definition" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Dodaj Izbor za medij" #. MENU_ITEM_RENAME -#, fuzzy msgid "Rename item" -msgstr "preimenuj stran s faksom" +msgstr "Preimenuj elemnt" #. MENU_ITEM_DELETE -#, fuzzy msgid "Delete item" -msgstr "Odstrani tiskalnik" +msgstr "Odstrani element" #. MENU_ITEM_MOVE_UP msgid "Move item up" -msgstr "" +msgstr "Premakni element navzgor" #. MENU_ITEM_MOVE_DWN msgid "Move item down" -msgstr "" +msgstr "Premakni element navzdol" + +#. MENU_ITEM_AUTH_NONE +msgid "no authentication" +msgstr "brez avtentifikacije" + +#. MENU_ITEM_AUTH_POP3 +msgid "POP3 before SMTP" +msgstr "POP3 pred SMTP" + +#. MENU_ITEM_AUTH_ASMTP_PLAIN +msgid "ASMTP Plain" +msgstr "ASMTP nešifrirano" + +#. MENU_ITEM_AUTH_ASMTP_LOGIN +msgid "ASMTP Login" +msgstr "ASMTP prijava" + +#. MENU_ITEM_AUTH_ASMTP_CRAM_MD5 +msgid "ASMTP CRAM-MD5" +msgstr "ASMTP CRAM-MD5" #. PROGRESS_SCANNING msgid "Scanning" @@ -1343,81 +1344,77 @@ msgstr "Skeniram" msgid "Receiving %s data" msgstr "Prejemam %s podatke" +#. PROGRESS_PAGE +msgid "page" +msgstr "stran" + #. PROGRESS_TRANSFERING_DATA -#, fuzzy msgid "Transfering image" -msgstr "Shranjujem sliko" +msgstr "Prenašam sliko" #. PROGRESS_ROTATING_DATA msgid "Rotating image" msgstr "SuÄŤem sliko" #. PROGRESS_MIRRORING_DATA -#, fuzzy msgid "Mirroring image" -msgstr "SuÄŤem sliko" +msgstr "Zrcalim sliko" #. PROGRESS_PACKING_DATA msgid "Packing image" -msgstr "Stiskam sliko" +msgstr "Pakiram sliko" #. PROGRESS_CONVERTING_DATA -#, fuzzy msgid "Converting image" -msgstr "Pretvarjam podatke" +msgstr "Pretvarjam sliko" #. PROGRESS_SAVING_DATA -#, fuzzy msgid "Saving image" -msgstr "Surova slika" +msgstr "Shranjujem sliko" #. PROGRESS_CLONING_DATA -#, fuzzy msgid "Cloning image" -msgstr "SuÄŤem sliko" +msgstr "Kloniram sliko" #. PROGRESS_SCALING_DATA -#, fuzzy msgid "Scaling image" -msgstr "Surova slika" +msgstr "Skaliram sliko" #. PROGRESS_DESPECKLING_DATA -#, fuzzy msgid "Despeckling image" -msgstr "Zbriši projekt" +msgstr "Odstrani packe iz slike" #. PROGRESS_BLURING_DATA -#, fuzzy msgid "Bluring image" -msgstr "Zbriši projekt" +msgstr "Zamegli sliko" #. PROGRESS_OCR msgid "OCR in progress" -msgstr "" +msgstr "OCR napredek" #. DESC_SCAN_START msgid "Start scan <Ctrl-Enter>" -msgstr "" +msgstr "ZaÄŤni skeniranje <Ctrl-Enter>" #. DESC_SCAN_CANCEL msgid "Cancel scan <ESC>" -msgstr "" +msgstr "Prekini skeniranje <ESC>" #. DESC_PREVIEW_ACQUIRE -#, fuzzy msgid "Acquire preview scan <Alt-p>" -msgstr "Ustvari predogled" +msgstr "Pridobi predogled skeniranja" #. DESC_PREVIEW_CANCEL -#, fuzzy msgid "Cancel preview scan <Alt-ESC>" -msgstr "Odstrani predogled" +msgstr "Odstrani predogled skeniranja" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" +"pregledovalnik-<Ctrl-v>, shrani-<Ctrl-s>, fotokopija-<Ctrl-c>, veÄŤstransko-" +"<Ctrl-m>, faks-<Ctrl-f> ali e-pošta-<Ctrl-m>" #. DESC_XSANE_MEDIUM msgid "" @@ -1427,24 +1424,31 @@ msgid "" "To create a medium enable the option edit medium definition in preferences " "menu." msgstr "" +"Izberi tip izvirnega medija.\n" +"Za preimenovanje, razvrščanje ali brisanje vnosa uporabi vsebinski meni " +"(desni gumb miške).\n" +"Za kreiranje medija omogoÄŤi izbiro, tako da urediš izbiro medija v " +"nastavitvah menija." #. DESC_FILENAME_COUNTER_STEP msgid "Value that is added to filenamecounter after scan" -msgstr "Vrednost, za katero se poveÄŤa števec datotek po skeniranju" +msgstr "Vrednost, za katero se poveÄŤa števec imena datotek po skeniranju" #. DESC_BROWSE_FILENAME msgid "Browse for image filename" -msgstr "PoĹľeni brskalnik za imena datotek s slikami " +msgstr "Išči slike po imenih datotek" #. DESC_FILENAME msgid "Filename for scanned image" -msgstr "Ime datoteke s sliko" +msgstr "Ime datoteke za skenirano sliko" #. DESC_FILETYPE msgid "" "Type of image format, the suitable filename extension is automatically added " "to the filename" -msgstr "NaÄŤin zapisa; ime datoteke se samodejno dopolni s konÄŤnico" +msgstr "" +"Tip formata zapisa slike, ime datoteke se samodejno dopolni z odgovarjajoÄŤo " +"konÄŤnico" #. DESC_FAXPROJECT msgid "Enter name of fax project" @@ -1456,54 +1460,55 @@ msgstr "Vnesite novo ime za stran s faksom" #. DESC_FAXRECEIVER msgid "Enter receiver phone number or address" -msgstr "Vnesite telefonsko številko ali naslov prejemnika faksa" +msgstr "Vnesite telefonsko številko ali naslov prejemnika" -#. DESC_MAILPROJECT -#, fuzzy -msgid "Enter name of mail project" -msgstr "Vnesite ime projekta za faks" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "Vnesite ime projekta za e-pošto" -#. DESC_MAILIMAGENAME -#, fuzzy -msgid "Enter new name for mail image" -msgstr "Vnesite novo ime za stran s faksom" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "Vnesite novo ime za sliko e-pošte" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "Vnesite naslov e-pošte" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" -msgstr "" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "Vnesite zadevo e-pošte" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" -msgstr "" +msgstr "Izberite tip datoteke za priponko slike" + +#. DESC_MULTIPAGE_PROJECT +msgid "Enter name of multipage project" +msgstr "Vnesite ime veÄŤstranskega projekta" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Izberite tip datoteke za veÄŤstransko datoteko" #. DESC_PRESET_AREA_RENAME -#, fuzzy msgid "Enter new name for preset area" -msgstr "Vnesite novo ime za stran s faksom" +msgstr "Vnesite novo ime za prednastavljeno obmoÄŤje" #. DESC_PRESET_AREA_ADD -#, fuzzy msgid "Enter name for new preset area" -msgstr "Vnesite novo ime za stran s faksom" +msgstr "Vnesite ime za novo prednastavljeno obmoÄŤje" #. DESC_MEDIUM_RENAME -#, fuzzy msgid "Enter new name for medium definition" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Vnesite novo ime za izbiro medija" #. DESC_MEDIUM_ADD -#, fuzzy msgid "Enter name for new medium definition" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Vnesite ime za novo izbiro medija" #. DESC_PRINTER_SELECT -#, fuzzy msgid "Select printerdefinition <Shift-F1/F2/...>" -msgstr "Izberite tiskalnik" +msgstr "Izberite tiskalnik <Shift-F1/F2/...>" #. DESC_RESOLUTION msgid "Set scan resolution" @@ -1534,11 +1539,8 @@ msgid "Set number of copies" msgstr "Nastavitev števila kopij" #. DESC_NEGATIVE -#, fuzzy msgid "Negative: Invert colors for scanning negatives <Ctrl-n>" -msgstr "" -"Negativ: invertiranje barv za pripravo negativov\n" -"na primer z zamenjavo bele in ÄŤrne barve" +msgstr "Negativ: invertiranje barv za pripravo negativov <Ctrl-n>" #. DESC_GAMMA msgid "Set gamma value" @@ -1546,15 +1548,15 @@ msgstr "Nastavitev vrednosti gama" #. DESC_GAMMA_R msgid "Set gamma value for red component" -msgstr "Nastavitev vrednosti gama za rdeÄŤo barvo" +msgstr "Nastavitev vrednosti gama za rdeÄŤo komponento" #. DESC_GAMMA_G msgid "Set gamma value for green component" -msgstr "Nastavitev vrednosti gama za zeleno barvo" +msgstr "Nastavitev vrednosti gama za zeleno komponento" #. DESC_GAMMA_B msgid "Set gamma value for blue component" -msgstr "Nastavitev vrednosti gama za modro barvo" +msgstr "Nastavitev vrednosti gama za modro komponento" #. DESC_BRIGHTNESS msgid "Set brightness" @@ -1562,15 +1564,15 @@ msgstr "Nastavitev svetlosti" #. DESC_BRIGHTNESS_R msgid "Set brightness for red component" -msgstr "Nastavitev svetlosti za rdeÄŤo barvo" +msgstr "Nastavitev svetlosti za rdeÄŤo komponento" #. DESC_BRIGHTNESS_G msgid "Set brightness for green component" -msgstr "Nastavitev svetlosti za zeleno barvo" +msgstr "Nastavitev svetlosti za zeleno komponento" #. DESC_BRIGHTNESS_B msgid "Set brightness for blue component" -msgstr "Nastavitev svetlosti za modro barvo" +msgstr "Nastavitev svetlosti za modro komponento" #. DESC_CONTRAST msgid "Set contrast" @@ -1578,22 +1580,21 @@ msgstr "Nastavitev kontrasta" #. DESC_CONTRAST_R msgid "Set contrast for red component" -msgstr "Nastavitev kontrasta za rdeÄŤo barvo" +msgstr "Nastavitev kontrasta za rdeÄŤo komponento" #. DESC_CONTRAST_G msgid "Set contrast for green component" -msgstr "Nastavitev kontrasta za zeleno barvo" +msgstr "Nastavitev kontrasta za zeleno komponento" #. DESC_CONTRAST_B msgid "Set contrast for blue component" -msgstr "Nastavitev kontrasta za modro barvo" +msgstr "Nastavitev kontrasta za modro komponento" #. DESC_THRESHOLD msgid "Set threshold" msgstr "Nastavitev praga" #. DESC_RGB_DEFAULT -#, fuzzy msgid "" "RGB default: Set enhancement values for red, green and blue to default " "values <Ctrl-b>:\n" @@ -1601,122 +1602,106 @@ msgid "" " brightness = 0\n" " contrast = 0" msgstr "" -"Privzete vrednosti za RGB: Nastavitev privzetih vrednosti za rdeÄŤo, zeleno " -"in modro:\n" +"Privzete vrednosti za RGB: Nastavitev razširjenih vrednosti za rdeÄŤo, zeleno " +"in modro k privzetim vrednostim <Ctrl-b>:\n" " gama = 1.0\n" " svetlost = 0\n" " kontrast = 0" #. DESC_ENH_AUTO -#, fuzzy msgid "Autoadjust gamma, brightness and contrast <Ctrl-e>" -msgstr "" -"Samonastavi vrednost gama, svetlost in kontrast v odvisnosti od izbranega " -"obmoÄŤja" +msgstr "Samonastavi vrednost gama, svetlost in kontrasta <Ctrl-e>" #. DESC_ENH_DEFAULT -#, fuzzy msgid "" "Set default enhancement values <Ctrl-0>:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0" msgstr "" -"Ponastavi vrednosti za obdelavo slike:\n" +"Nastavitev privzetih razširjenih vrednosti <Ctrl-0>:\n" "gama = 1.0\n" "svetlost = 0\n" -"kontrastt = 0" +"kontrast = 0" #. DESC_ENH_RESTORE -#, fuzzy msgid "Restore enhancement values from preferences <Ctrl-r>" -msgstr "Obnovi vrednosti za obdelavo slike iz shranjenih vrednosti" +msgstr "Obnovi razširjeni vrednosti iz nastavitev <Ctrl-r>" #. DESC_ENH_STORE -#, fuzzy msgid "Store active enhancement values to preferences <Ctrl-+>" -msgstr "Shrani vrednosti za obdelavo slike" +msgstr "Shrani aktivne razširjene vrednosti v nastavitve <Ctrl-+>" #. DESC_HIST_INTENSITY -#, fuzzy msgid "Show histogram of intensity/gray <Alt-i>" -msgstr "Prikaz histograma svetlosti in sivin" +msgstr "Prikaz histograma svetlosti/sivin <Alt-i>" #. DESC_HIST_RED -#, fuzzy msgid "Show histogram of red component <Alt-r>" -msgstr "Prikaz histograma rdeÄŤe barve" +msgstr "Prikaz histograma rdeÄŤe komponente <Alt-r>" #. DESC_HIST_GREEN -#, fuzzy msgid "Show histogram of green component <Alt-g>" -msgstr "Prikaz histograma zelene barve" +msgstr "Prikaz histograma zelene komponente <Alt-g>" #. DESC_HIST_BLUE -#, fuzzy msgid "Show histogram of blue component <Alt-b>" -msgstr "Prikaz histograma modre barve" +msgstr "Prikaz histograma modre komponente <Alt-b>" #. DESC_HIST_PIXEL -#, fuzzy msgid "Display mode: show histogram with lines instead of pixels <Alt-m>" -msgstr "Prikaz histograma s stolpci namesto pik" +msgstr "Zaslonski naÄŤin: prikaz histograma s ÄŤrtami namesto s pikami <Alt-m>" #. DESC_HIST_LOG -#, fuzzy msgid "Show logarithm of pixelcount <Alt-l>" -msgstr "Prikaz histograma v logaritemskem merilu" +msgstr "Prikaz logaritma števca pikslov <Alt-l>" #. DESC_PRINTER_SETUP msgid "Select definition to change" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Izbor nastavitve za prilagoditev" #. DESC_PRINTER_NAME msgid "Define a name for the selection of this definition" -msgstr "Vnos imena tiskalnika za prilagoditev" +msgstr "Definiraj ime za izbiro te nastavitve" #. DESC_PRINTER_COMMAND -#, fuzzy msgid "Enter command to be executed in copy mode (e.g. \"lpr\")" -msgstr "Vnesite ukaz, ki se izvede pri kopiranju (na primer \"lpr -\")" +msgstr "Vnesite ukaz, ki se izvede pri kopiranju (na primer \"lpr\")" #. DESC_COPY_NUMBER_OPTION msgid "Enter option for copy numbers" -msgstr "Vnesite število kopij" +msgstr "Vnesite izbiro za število kopij" #. DESC_PRINTER_LINEART_RESOLUTION msgid "" "Resolution with which lineart images are printed and saved in postscript" -msgstr "LoÄŤljivost, v kateri natisnemo in shranimo slike v naÄŤinu lineart" +msgstr "LoÄŤljivost, v kateri natisnemo in shranimo lineart slike v postskriptu" #. DESC_PRINTER_GRAYSCALE_RESOLUTION msgid "" "Resolution with which grayscale images are printed and saved in postscript" -msgstr "LoÄŤljivost, v kateri natisnemo in shranimo slike v naÄŤinu grayscale" +msgstr "" +"LoÄŤljivost, v kateri natisnemo in shranimo sivinske slike v postskriptu" #. DESC_PRINTER_COLOR_RESOLUTION msgid "Resolution with which color images are printed and saved in postscript" -msgstr "LoÄŤljivost, v kateri natisnemo in shranimo slike v naÄŤinu color" +msgstr "LoÄŤljivost, v kateri natisnemo in shranimo barvne slike v postskriptu" #. DESC_PRINTER_WIDTH -#, fuzzy msgid "Width of printable area" -msgstr "Ĺ irina obmoÄŤja, ki se natisne [mm]" +msgstr "Ĺ irina obmoÄŤja za tiskanje" #. DESC_PRINTER_HEIGHT -#, fuzzy msgid "Height of printable area" -msgstr "Višina obmoÄŤja, ki se natisne [mm]" +msgstr "Višina obmoÄŤja za tiskanje" #. DESC_PRINTER_LEFTOFFSET -#, fuzzy msgid "Left offset from the edge of the paper to the printable area" -msgstr "Odmik obmoÄŤja, ki se natisne, od levega roba papirja [mm]" +msgstr "Razdalja od levega roba papirja do obmoÄŤja za tiskanje" #. DESC_PRINTER_BOTTOMOFFSET -#, fuzzy msgid "Bottom offset from the edge of the paper to the printable area" -msgstr "Odmik obmoÄŤja, ki se natisne, od spodnjega roba papirja [mm]" +msgstr "Razdalja od spodnjega roba papirja do obmoÄŤja za tiskanje" #. DESC_PRINTER_GAMMA msgid "Additional gamma value for photocopy" @@ -1724,46 +1709,58 @@ msgstr "Dodatna vrednost gama pri fotokopiranju" #. DESC_PRINTER_GAMMA_RED msgid "Additional gamma value for red component for photocopy" -msgstr "Dodatna vrednost gama za rdeÄŤo barvo pri fotokopiranju" +msgstr "Dodatna vrednost gama za komponento pri fotokopiranju" #. DESC_PRINTER_GAMMA_GREEN msgid "Additional gamma value for green component for photocopy" -msgstr "Dodatna vrednost gama za zeleno barvo pri fotokopiranju" +msgstr "Dodatna vrednost gama za zeleno komponento pri fotokopiranju" #. DESC_PRINTER_GAMMA_BLUE msgid "Additional gamma value for blue component for photocopy" -msgstr "Dodatna vrednost gama za modro barvo pri fotokopiranju" +msgstr "Dodatna vrednost gama za modro komponento pri fotokopiranju" + +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" +"Ustvari stisnjeno postscriptno sliko z zlib za tiskalnik.\n" +"Tiskalnik mora razumeti postscript stopnjo 3!" #. DESC_TMP_PATH msgid "Path to temp directory" -msgstr "Pot do imenika z zaÄŤasnimi datotekami" +msgstr "Pot do zaÄŤasnega imenika" #. DESC_BUTTON_TMP_PATH_BROWSE msgid "Browse for temporary directory" -msgstr "Pobrskaj za imenikom z zaÄŤasnimi datotekami" +msgstr "Prebrskaj zaÄŤasni imenik" #. DESC_JPEG_QUALITY msgid "" "Quality in percent if image is saved as jpeg or tiff with jpeg compression" msgstr "" -"Kakovost slike v odstotkih, ÄŤe sliko shranjujemo v zapisih TIFF ali JPEG pri " +"Kakovost v odstotkih, ÄŤe sliko shranjujemo v zapisih TIFF ali JPEG pri " "stiskanju z JPEG" #. DESC_PNG_COMPRESSION msgid "Compression if image is saved as png" -msgstr "Stopnja stiskanja ob shranjevanju slike v zapisu PNG" +msgstr "Stiskanje, ÄŤe je slika shranjena kot png" #. DESC_FILENAME_COUNTER_LEN msgid "Minimum length of counter in filename" -msgstr "Najkrajša dolĹľina oznake s števcem datotek" +msgstr "Najkrajša dolĹľina števca v imenu datoteke" + +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Stopnja stiskanja za zip stiskani TIFF (zmanjšanje)" #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" -msgstr "Vrsta stiskanja pri shranjevanju 16-bitnih slik v zapisu TIFF" +msgstr "Vrsta stiskanja, ÄŤe je 16 bitna slika shranjena kot tiff" #. DESC_TIFF_COMPRESSION_8 msgid "Compression type if 8 bit image is saved as tiff" -msgstr "Vrsta stiskanja pri shranjevanju 8-bitnih slik v zapisu TIFF" +msgstr "Vrsta stiskanja, ÄŤe je 8 bitna slika shranjena kot tiff" #. DESC_TIFF_COMPRESSION_1 msgid "Compression type if lineart image is saved as tiff" @@ -1771,7 +1768,7 @@ msgstr "Vrsta stiskanja pri shranjevanju slik v naÄŤinu lineart v zapisu TIFF" #. DESC_SAVE_DEVPREFS_AT_EXIT msgid "Save device dependant preferences in default file at exit of xsane" -msgstr "" +msgstr "Shrani odgovarjajoÄŤe nastavitve naprave v privzeto datoteko ob izhodu" #. DESC_OVERWRITE_WARNING msgid "Warn before overwriting an existing file" @@ -1780,7 +1777,21 @@ msgstr "Opozori pri pisanju prek obstojeÄŤe datoteke" #. DESC_SKIP_EXISTING msgid "" "If filename counter is automatically increased, used numbers are skipped" -msgstr "Pri samodejnem poveÄŤevanju števca datotek se zasedene oznake preskoÄŤi" +msgstr "" +"ÄŚe je števec imena datoteke samodejno poveÄŤan, se uporabljene številke " +"preskoÄŤijo" + +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "stiskanje PDFslike z zlib algoritmom." #. DESC_SAVE_PNM16_AS_ASCII msgid "" @@ -1789,266 +1800,262 @@ msgid "" "supported by all programs. The ascii format is supported by more programs " "but it produces really huge files!!!" msgstr "" +"ÄŚe naj bo 16 bitna slika shranjena v pnm formatu, uporabi ASCII format " +"namesto binarnega formata. Binarni format je nov format, katerega ne " +"podpirajo vsi programi. ASCII format podpira veÄŤ programov, toda lahko je " +"zelo velika datoteka!!!" #. DESC_REDUCE_16BIT_TO_8BIT msgid "If scanner sends image with 16 bits/color save image with 8 bits/color" -msgstr "" +msgstr "ÄŚe skener pošilja sliko z 16 bitov/barvo, shrani sliko z 8 bitov/barvo" #. DESC_PSFILE_WIDTH -#, fuzzy msgid "Width of paper for postscript files" -msgstr "Ĺ irina papirja pri tiskanju v postscriptnem zapisu [mm]" +msgstr "Ĺ irina papirja za postscriptne datoteke" #. DESC_PSFILE_HEIGHT -#, fuzzy msgid "Height of paper for postscript files" -msgstr "Višina papirja pri tiskanju v postscriptnem zapisu [mm]" +msgstr "Višina papirja za postscriptne datoteke" #. DESC_PSFILE_LEFTOFFSET -#, fuzzy msgid "" "Left offset from the edge of the paper to the usable area for postscript " "files" msgstr "" -"Odmik slike od levega roba papirja pri tiskanju v postscriptnem zapisu [mm]" +"Odmik od levega roba papirja k uporabnemu obmoÄŤju za postscriptne datoteke" #. DESC_PSFILE_BOTTOMOFFSET -#, fuzzy msgid "" "Bottom offset from the edge of the paper to the usable area for postscript " "files" msgstr "" -"Odmik slike od levega roba papirja pri tiskanju v postscriptnem zapisu [mm]" +"Odmik od spodnjega roba papirja k uporabnemu obmoÄŤju za postscriptne datoteke" #. DESC_MAIN_WINDOW_FIXED 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 -#, fuzzy msgid "Disable preview gamma when XSane runs as gimp plugin" -msgstr "OnemogoÄŤi pretvorbo z gamo, ÄŤe xsane uporabljamo kot vmesnik za gimp" +msgstr "OnemogoÄŤi predogled gama, ko X Sane teÄŤe kot vstavek za gimp" #. DESC_PREVIEW_COLORMAP msgid "Use an own colormap for preview if display depth is 8 bpp" -msgstr "Uporabi lastno paleto za ogled slike pri 8-bitni globini" +msgstr "Uporabi lastno paleto barv za predogled, ÄŤe je globina ekrana 8bitov" #. DESC_SHOW_RANGE_MODE msgid "Select how a range is displayed" -msgstr "" +msgstr "Izberi, kako je obmoÄŤje prikazano" #. DESC_PREVIEW_OVERSAMPLING msgid "Value with that the calculated preview resolution is multiplied" -msgstr "Faktor prekomernega vzorÄŤenja" +msgstr "Vrednost, s katero je izraÄŤunana loÄŤljivost predogleda pomnoĹľena" #. DESC_PREVIEW_GAMMA msgid "Set gamma correction value for preview image" -msgstr "Nastavitev vrednosti gama pri predogledu slike" +msgstr "Nastavitev popravka vrednosti gama za predogledu slike" #. DESC_PREVIEW_GAMMA_RED msgid "Set gamma correction value for red component of preview image" -msgstr "Nastavitev vrednosti gama za rdeÄŤo barvo pri predogledu slike" +msgstr "" +"Nastavitev popravka vrednosti gama za rdeÄŤo komponento predogleda slike" #. DESC_PREVIEW_GAMMA_GREEN msgid "Set gamma correction value for green component of preview image" -msgstr "Nastavitev vrednosti gama za zeleno barvo pri predogledu slike" +msgstr "" +"Nastavitev popravka vrednosti gama za zeleno komponento predogleda slike" #. DESC_PREVIEW_GAMMA_BLUE msgid "Set gamma correction value for blue component of preview image" -msgstr "Nastavitev vrednosti gama za modro barvo pri predogledu slike" +msgstr "" +"Nastavitev popravka vrednosti gama za modro komponento predogleda slike" #. DESC_LINEART_MODE -#, fuzzy msgid "Define the way XSane shall handle the threshold option" -msgstr "Opredelite, kako naj xsane ravna z izbiro praga" +msgstr "Definirajte naÄŤin, kako naj X Sane ravna z izbiro praga" #. DESC_GRAYSCALE_SCANMODE msgid "" "Select grayscale scanmode. This scanmode is used for lineart preview scan " "when transformation from grayscale to lineart is enabled" msgstr "" -"Sivinski naÄŤin skeniranja. Ta naÄŤin je v rabi pri preogledu slike,zajete v " -"naÄŤinu lineart, ÄŤe je omogoÄŤen pretvorbaiz sivinskega naÄŤina v lineart" +"Izberi sivinski naÄŤin skeniranja. Ta naÄŤin je uporabljeni pri lineart " +"predogledu, ÄŤe je omogoÄŤena pretvorba iz sivinskega naÄŤina v lineart" #. DESC_PREVIEW_THRESHOLD_MIN #, no-c-format msgid "The scanner's minimum threshold level in %" -msgstr "Spodnja vrednost praga v %" +msgstr "Minimalna vrednost praga skenerja v %" #. DESC_PREVIEW_THRESHOLD_MAX #, no-c-format msgid "The scanner's maximum threshold level in %" -msgstr "Zgornja vrednost praga v %" +msgstr "Maksimalna vrednost praga skenerja v %" #. DESC_PREVIEW_THRESHOLD_MUL -#, fuzzy msgid "" "Multiplier to make XSane threshold range and scanner threshold range the same" msgstr "" -"PomnoĹľevalnik, s katerim poenotimo obmoÄŤje praga v skenerju in programu xsane" +"PomnoĹľevalnik, s katerim izenaÄŤimo obmoÄŤje praga skenerja in programa X Sane" #. DESC_PREVIEW_THRESHOLD_OFF -#, fuzzy msgid "" "Offset to make XSane threshold range and scanner threshold range the same" -msgstr "Odmik, s katerim poenotimo obmoÄŤje praga v skenerju in programu xsane" +msgstr "Odmik, s katerim izenaÄŤimo obmoÄŤje praga skenerja in programa X Sane" -#. DESC_ADF_MODE -#, fuzzy -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Skeniranje s samodejnim podajanjem dokumentov. Program xsane bo zajemal " -"slike do obvestila \"out of paper\" ali prve napake." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Ĺ tevilo strani za skeniranje" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" -msgstr "Velikost kvadrata, v katerem povpreÄŤimo barvo pri zajemu s pipeto." +msgstr "velikost kvadrata, v katerem povpreÄŤimo barvo pri zajemu s pipeto." #. DESC_DOC_VIEWER msgid "" "Enter command to be executed to display helpfiles, must be a html-viewer!" -msgstr "Podajte ukaz, s katerim prikaĹľemo datoteke s pomoÄŤjo v zapisu HTML." +msgstr "" +"Podajte ukaz, s katerim prikaĹľemo datoteke za pomoÄŤ, mora biti ogledovalnik " +"HTML kode!" #. DESC_AUTOENHANCE_GAMMA msgid "Change gamma value when autoenhancement button is pressed" msgstr "" -"Prilagodi vrednost gama pri uporabi gumba za samodejno izboljševanje slike" +"Spremeni vrednost gama, ko je pritisnjen gumb za samodejno izboljševanje" #. DESC_PRESELECT_SCANAREA msgid "Select scanarea after preview scan has finished" -msgstr "" +msgstr "Izberi podroÄŤje skeniranja, potem ko je predogled skeniranja zakljuÄŤen" #. DESC_AUTOCORRECT_COLORS msgid "Do color correction after preview scan has finished" -msgstr "" +msgstr "Izvedi korekcijo barv, potem ko je predogled skeniranja zakljuÄŤen" #. DESC_FAX_COMMAND msgid "Enter command to be executed in fax mode" -msgstr "Podajte ukaz za rabo pri pošiljanju faksa" +msgstr "Podajte ukaz, ki naj bo izveden v faks naÄŤinu" #. DESC_FAX_RECEIVER_OPT msgid "Enter option to specify receiver" -msgstr "Podajte izbiro, s katero doloÄŤite prejemnika" +msgstr "Podajte izbiro za doloÄŤitev prejemnika" #. DESC_FAX_POSTSCRIPT_OPT msgid "Enter option to specify postscript files following" -msgstr "Podajte izbiro za doloÄŤitev spremljajoÄŤih datotek v zapisu postscript" +msgstr "Podajte izbiro za doloÄŤitev spremljajoÄŤih postscript datotek" #. DESC_FAX_NORMAL_OPT msgid "Enter option to specify normal mode (low resolution)" -msgstr "Podajte izbiro za obiÄŤajni naÄŤin pri nizki loÄŤljivosti" +msgstr "Podajte izbiro za obiÄŤajni naÄŤin (nizka loÄŤljivosti)" #. DESC_FAX_FINE_OPT msgid "Enter option to specify fine mode (high resolution)" -msgstr "Podajte izbiro za obiÄŤajni naÄŤin pri visoki loÄŤljivosti" +msgstr "Podajte izbiro za fini naÄŤin (visoka loÄŤljivosti)" #. DESC_FAX_VIEWER msgid "Enter command to be executed to view a fax" -msgstr "Podajte ukaz za prikaz faksa" +msgstr "Podajte ukaz, ki naj bo izveden za prikaz faksa" #. DESC_FAX_FINE_MODE msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)" -msgstr "Odpošlji faks v visoki loÄŤljivosti po osi y (196 lpi namesto 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)" +msgstr "Ustvari stisnjeno postscriptno sliko z zlib za faks" #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" -msgstr "" +msgstr "IP naslov ali ime domene SMTP streĹľnika" #. DESC_SMTP_PORT msgid "port to connect to SMTP server" -msgstr "" +msgstr "vrata za povezavo do SMTP streĹľnika" -#. DESC_MAIL_FROM -msgid "enter your email address" -msgstr "" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "vpišite vaš naslov e-pošte" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "vpišite naslov e-pošte za pošto z odgovori" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "" +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" +msgstr "Tip avtentikacije pred pošiljanjem pošte" + +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" +msgstr "uporabniško ime za poštni streĹľnik" + +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" +msgstr "geslo za poštni streĹľnik" #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" -msgstr "" +msgstr "IP naslov ali ime domene POP3 streĹľnika" #. DESC_POP3_PORT msgid "port to connect to POP3 server" -msgstr "" - -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "" +msgstr "vrata za povezavo do POP3 streĹľnika" -#. DESC_MAIL_VIEWER -#, fuzzy -msgid "Enter command to be executed to view a mail image" -msgstr "Podajte ukaz za prikaz faksa" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" -msgstr "" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" +msgstr "Pošta je poslana v html naÄŤinu, postavi sliko z: <IMAGE>" #. DESC_OCR_COMMAND msgid "Enter command to start ocr program" -msgstr "" +msgstr "Podajte ukaz za zagon ocr programa" #. DESC_OCR_INPUTFILE_OPT msgid "Enter option of the ocr program to define input file" -msgstr "" +msgstr "Podajte izbiro ocr programa za doloÄŤitev vhodne datoteke" #. DESC_OCR_OUTPUTFILE_OPT msgid "Enter option of the ocr program to define output file" -msgstr "" +msgstr "Podajte izbiro ocr programa za doloÄŤitev izhodne datoteke" #. DESC_OCR_USE_GUI_PIPE_OPT msgid "Define if the ocr program supports gui progress pipe" -msgstr "" +msgstr "DoloÄŤi, ÄŤe ocr program podpira GUI cevovod napredka" #. DESC_OCR_OUTFD_OPT msgid "" "Enter option of the ocr program to define output filedescripor in GUI mode" msgstr "" +"Podajte izbiro ocr programa za doloÄŤitev opisa izhodne datoteke v GUI naÄŤinu" #. DESC_OCR_PROGRESS_KEYWORD msgid "Define Keyword that is used to mark progress information" -msgstr "" +msgstr "DoloÄŤi besedo, ki je uporabljena pri oznaÄŤitvi informacije napredka" #. DESC_PERMISSION_READ msgid "read" -msgstr "beriljiva" +msgstr "preberi" #. DESC_PERMISSION_WRITE msgid "write" -msgstr "pisljiva" +msgstr "zapiši" #. DESC_PERMISSION_EXECUTE msgid "execute" -msgstr "izvedljiva" +msgstr "izvedi" #. DESC_ADD_BATCH msgid "Add selection for batch scan" -msgstr "" +msgstr "Dodaj izbiro za paketno skeniranje" #. DESC_PIPETTE_WHITE msgid "Pick white point" -msgstr "Izberite toÄŤko v beli barvi" +msgstr "Izberite belo toÄŤko" #. DESC_PIPETTE_GRAY msgid "Pick gray point" -msgstr "Izberite toÄŤko v sivi barvi" +msgstr "Izberite sivo toÄŤko" #. DESC_PIPETTE_BLACK msgid "Pick black point" -msgstr "Izberite toÄŤko v ÄŤrni barvi" +msgstr "Izberite ÄŤrno toÄŤko" #. DESC_ZOOM_FULL msgid "Use full scanarea" @@ -2057,19 +2064,19 @@ msgstr "Uporabi celotno obmoÄŤje " #. DESC_ZOOM_OUT #, no-c-format msgid "Zoom 20% out" -msgstr "PribliĹľaj za 20 %" +msgstr "Pomanjšaj za 20 %" #. DESC_ZOOM_IN msgid "Click at position to zoom to" -msgstr "" +msgstr "Klikni na pozicijo za poveÄŤanje k" #. DESC_ZOOM_AREA msgid "Zoom into selected area" -msgstr "PribliĹľaj izbrano obmoÄŤje" +msgstr "PoveÄŤaj v izbrano obmoÄŤje" #. DESC_ZOOM_UNDO msgid "Undo last zoom" -msgstr "PrekliÄŤi zadnje pribliĹľanje" +msgstr "PrekliÄŤi zadnje poveÄŤanje" #. DESC_FULL_PREVIEW_AREA msgid "Select visible area" @@ -2080,14 +2087,12 @@ msgid "Autoselect scanarea" msgstr "Samodejno doloÄŤi obmoÄŤje skeniranja" #. DESC_AUTORAISE_SCANAREA -#, fuzzy msgid "Autoraise scanarea" -msgstr "Samodejno doloÄŤi obmoÄŤje skeniranja" +msgstr "Samodejno poveÄŤaj obmoÄŤje skeniranja" #. DESC_DELETE_IMAGES -#, fuzzy msgid "Delete preview image cache" -msgstr "ZasuÄŤi preodgled in sliko" +msgstr "Izbriši predpomnilnik predogleda slike" #. DESC_PRESET_AREA msgid "" @@ -2095,139 +2100,133 @@ msgid "" "To add new area or edit an existing area use contect menu (right mouse " "button)." msgstr "" +"Prednastavljeno obmoÄŤje:\n" +"Da dodaš novo obmoÄŤje oziroma da urediš obstojeÄŤe obmoÄŤje, uporabi vsebinski " +"meni (desni gumb miške)" #. DESC_ROTATION msgid "Rotate preview and scan" -msgstr "ZasuÄŤi preodgled in sliko" +msgstr "Rotiraj predogled in skeniraj" #. DESC_RATIO msgid "Aspect ratio of selection" -msgstr "" +msgstr "Razmerje podobe izbire" #. DESC_PAPER_ORIENTATION msgid "Define image position for printing" -msgstr "" +msgstr "DoloÄŤi poloĹľaj slike za tiskanje" #. DESC_VIEWER_OCR msgid "Optical Character Recognition" -msgstr "" +msgstr "OptiÄŤno razpoznavanje znakov" #. DESC_VIEWER_UNDO -#, fuzzy msgid "Undo last change" -msgstr "PrekliÄŤi zadnje pribliĹľanje" +msgstr "PrekliÄŤi zadnjo spremembo" #. DESC_VIEWER_CLONE -#, fuzzy msgid "Clone image" -msgstr "Zbriši projekt" +msgstr "Kloniraj sliko" #. DESC_ROTATE90 -#, fuzzy msgid "Rotate image 90 degree" -msgstr "SuÄŤem sliko" +msgstr "Rotiraj sliko za 90 stopinj" #. DESC_ROTATE180 msgid "Rotate image 180 degree" -msgstr "" +msgstr "Rotiraj sliko za 180 stopinj" #. DESC_ROTATE270 msgid "Rotate image 270 degree" -msgstr "" +msgstr "Rotiraj sliko za 270 stopinj" #. DESC_MIRROR_X msgid "Mirror image at vertical axis" -msgstr "" +msgstr "Zrcali sliko preko vertikalne osi" #. DESC_MIRROR_Y msgid "Mirror image at horizontal axis" -msgstr "" +msgstr "Zrcali sliko preko horizontalne osi" #. DESC_VIEWER_ZOOM -#, fuzzy msgid "Zoom image" -msgstr "PrikaĹľi predogled" +msgstr "PoveÄŤaj sliko" #. DESC_STORE_MEDIUM -#, fuzzy msgid "Store medium" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Shrani medij" #. DESC_DELETE_MEDIUM -#, fuzzy msgid "Delete active medium" -msgstr "Izbor tiskalnika za prilagoditev" +msgstr "Izbriši aktivni medij" #. DESC_SCALE_FACTOR -#, fuzzy msgid "Scale factor" -msgstr "Nastavitev stopnje poveÄŤave" +msgstr "Faktor skeliranja" #. DESC_X_SCALE_FACTOR -#, fuzzy msgid "X-Scale factor" -msgstr "Nastavitev stopnje poveÄŤave" +msgstr "Faktor skeliranja X" #. DESC_Y_SCALE_FACTOR -#, fuzzy msgid "Y-Scale factor" -msgstr "Nastavitev stopnje poveÄŤave" +msgstr "Faktor skeliranja Y" #. DESC_SCALE_WIDTH msgid "Scale image to width [in pixel]" -msgstr "" +msgstr "Skeliraj sliko v dolĹľino [v pikslih]" #. DESC_SCALE_HEIGHT msgid "Scale image to height [in pixel]" -msgstr "" +msgstr "Skeliraj sliko v višino [v pikslih]" #. DESC_BATCH_LIST_EMPTY -#, fuzzy msgid "Empty batch list" -msgstr "Namigi za skeniranje" +msgstr "Izprazni paketni seznam" #. DESC_BATCH_LIST_SAVE msgid "Save batch list" -msgstr "" +msgstr "Shrani paketni seznam" #. DESC_BATCH_LIST_LOAD msgid "Load batch list" -msgstr "" +msgstr "NaloĹľi paketni seznam" #. DESC_BATCH_RENAME -#, fuzzy msgid "Rename area" -msgstr "preimenuj stran s faksom" +msgstr "Preimenuj obmoÄŤje" #. DESC_BATCH_ADD -#, fuzzy msgid "Add selected preview area to batch list" -msgstr "ZasuÄŤi preodgled in sliko" +msgstr "Dodaj izbrani predogled h paketnemu seznamu" #. DESC_BATCH_DEL msgid "Delete selected area from batch list" -msgstr "" +msgstr "Izbriši izbrani predogled iz paketnega seznama" #. DESC_AUTOMATIC msgid "Turns on automatic mode" -msgstr "" +msgstr "VkljuÄŤi avtomatski naÄŤin" #. ERR_HOME_DIR msgid "Failed to determine home directory:" -msgstr "DoloÄŤitev domaÄŤega imenika se ni posreÄŤila:" +msgstr "Napaka pri doloÄŤitvi domaÄŤega imenika:" #. ERR_CHANGE_WORKING_DIR msgid "Failed to change working directory to" -msgstr "Sprememba domaÄŤega imenika se ni posreÄŤila:" +msgstr "Napaka pri spremembi domaÄŤega imenika v" #. ERR_FILENAME_TOO_LONG msgid "Filename too long" msgstr "Predolgo ime datoteke" #. ERR_CREATE_TEMP_FILE -#, fuzzy -msgid "Could not create temporary file" -msgstr "Ustvari projekt" +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" @@ -2255,20 +2254,20 @@ msgstr "Napaka pri branju:" #. ERR_DURING_SAVE msgid "Error during save:" -msgstr "Napaka pri shranjevanju" +msgstr "Napaka pri shranjevanju:" #. ERR_BAD_DEPTH msgid "Can't handle depth" msgstr "Napaka pri ravnanju z globino" #. ERR_GIMP_BAD_DEPTH -#, fuzzy, c-format +#, c-format msgid "GIMP can't handle depth %d bits/color" -msgstr "GIMP ne more ravnati z globino" +msgstr "GIMP ne more ravnati z globino %d bitov/barvo" #. ERR_UNKNOWN_SAVING_FORMAT msgid "Unknown file format for saving" -msgstr "Neznan zapis za shranjevanje" +msgstr "Neznan datoteÄŤni format za shranjevanje" #. ERR_OPEN_FAILED msgid "Failed to open" @@ -2276,15 +2275,15 @@ msgstr "Napaka pri odpiranju" #. ERR_CREATE_SECURE_FILE msgid "Could not create secure file (may be a link does exist):" -msgstr "" +msgstr "Ne morem ustvariti varne datoteke (mogoÄŤe povezava ne obstaja):" #. ERR_FAILED_PRINTER_PIPE msgid "Failed to open pipe for executing printercommand" -msgstr "Napaka pri odpiranju cevovoda za tiskanje" +msgstr "Napaka pri odpiranju cevovoda za izvajanje ukaza za tiskanje" #. ERR_FAILED_EXEC_PRINTER_CMD msgid "Failed to execute printercommand:" -msgstr "Napaka pri izvajanju ukaza za tiskanje" +msgstr "Napaka pri izvajanju ukaza za tiskanje:" #. ERR_FAILED_START_SCANNER msgid "Failed to start scanner:" @@ -2296,7 +2295,7 @@ msgstr "Napaka pri pridobivanju parametrov:" #. ERR_NO_OUTPUT_FORMAT msgid "No output format given" -msgstr "Izhodni zapis ni podan" +msgstr "Izhodni format zapisa ni podan" #. ERR_NO_MEM msgid "out of memory" @@ -2305,6 +2304,7 @@ msgstr "zmanjkalo je pomnilnika" #. ERR_TOO_MUCH_DATA msgid "Backend sends more image data than it defined in parameters" msgstr "" +"Program v ozadju pošilja veÄŤ podatkov slike kot je to definirano v parametrih" #. ERR_LIBTIFF msgid "LIBTIFF reports error" @@ -2315,29 +2315,28 @@ msgid "LIBPNG reports error" msgstr "LIBPNG sporoÄŤa napako" #. ERR_LIBJPEG -#, fuzzy msgid "LIBJPEG reports error" -msgstr "LIBPNG sporoÄŤa napako" +msgstr "LIBJPEG sporoÄŤa napako" #. ERR_ZLIB msgid "ZLIB error or memory allocation problem" -msgstr "" +msgstr "ZLIB napaka ali problem razporeditve spomina" #. ERR_UNKNOWN_TYPE msgid "unknown type" -msgstr "neznana vrsta" +msgstr "neznani tip" #. ERR_UNKNOWN_CONSTRAINT_TYPE msgid "unknown constraint type" -msgstr "neznana vrsta omejitve" +msgstr "neznani tip omejitve" #. ERR_OPTION_NAME_NULL msgid "Option has empty name (NULL)." -msgstr "" +msgstr "Izbira ima prazno ime (NULL)" #. ERR_BACKEND_BUG msgid "This is a backend bug. Please inform the author of the backend!" -msgstr "" +msgstr "To je hrošč programa v ozadju. Prosim, ÄŤe obvestiš avtorja programa!" #. ERR_FAILED_EXEC_DOC_VIEWER msgid "Failed to execute documentation viewer:" @@ -2348,23 +2347,16 @@ msgid "Failed to execute fax viewer:" msgstr "Napaka pri zagonu pregledovalnika faksov:" #. ERR_FAILED_EXEC_FAX_CMD -#, fuzzy msgid "Failed to execute fax command:" msgstr "Napaka pri zagonu ukaza za faskiranje:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -#, fuzzy -msgid "Failed to execute mail image viewer:" -msgstr "Napaka pri zagonu pregledovalnika faksov:" - #. ERR_FAILED_EXEC_OCR_CMD -#, fuzzy msgid "Failed to execute ocr command:" -msgstr "Napaka pri zagonu ukaza za faskiranje:" +msgstr "Napaka pri zagonu ocr ukaza:" #. ERR_BAD_FRAME_FORMAT msgid "bad frame format" -msgstr "pokravjen zapis okvira" +msgstr "slab format okvirja" #. ERR_FAILED_SET_RESOLUTION msgid "unable to set resolution" @@ -2373,7 +2365,7 @@ msgstr "loÄŤljivosti ni moÄŤ nastaviti" #. ERR_PASSWORD_FILE_INSECURE #, c-format msgid "Password file (%s) is insecure, use permission x00\n" -msgstr "Datoteka z gesli (%s) ni varna, uporabljam dovoljenja x00\n" +msgstr "Datoteka z gesli (%s) ni varna, uporabi dovoljenje x00\n" #. ERR_ERROR msgid "error" @@ -2381,16 +2373,15 @@ msgstr "napaka" #. ERR_MAJOR_VERSION_NR_CONFLICT msgid "Sane major version number mismatch!" -msgstr "Glavna razliÄŤica sane se ne ujema" +msgstr "Ĺ tevilka glavne verzije sane se ne ujema!" #. ERR_XSANE_MAJOR_VERSION -#, fuzzy msgid "XSane major version =" -msgstr "glavna razliÄŤica xsane =" +msgstr "X Sane glavna verzija =" #. ERR_BACKEND_MAJOR_VERSION msgid "backend major version =" -msgstr "glavna razliÄŤica programa v ozadju =" +msgstr "glavna verzija programa v ozadju =" #. ERR_PROGRAM_ABORTED msgid "*** PROGRAM ABORTED ***" @@ -2406,31 +2397,21 @@ msgstr "Predogled ne podpira bitne globine" #. ERR_GIMP_SUPPORT_MISSING msgid "GIMP support missing" -msgstr "ManjkajoÄŤa podpora za GIMP" - -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" +msgstr "Manjka podpora za GIMP" #. ERR_CREATE_FAX_PROJECT -#, fuzzy msgid "Could not create faxproject" -msgstr "Ustvari projekt" +msgstr "Ne morem ustvariti faks projekta" #. WARN_COUNTER_UNDERRUN msgid "Filename counter underrun" -msgstr "Ĺ tevec datotek je prekoraÄŤil obseg" +msgstr "Ĺ tevec imen datotek je prekoraÄŤil obseg" #. WARN_NO_VALUE_CONSTRAINT msgid "warning: option has no value constraint" -msgstr "opozorilo: izbira nima omejitve" +msgstr "opozorilo: izbira nima vrednosti omejitve" #. WARN_XSANE_AS_ROOT -#, fuzzy msgid "" "You try to run XSane as ROOT, that really is DANGEROUS!\n" "\n" @@ -2438,9 +2419,9 @@ msgid "" "have any problem while running XSane as root:\n" "YOU ARE ALONE!" msgstr "" -"Program xsane ste Ĺľelleli pognati kot skrbnik, to pa je nevarno!\n" +"X Sane ste poskušali pognati kot korenski uporabnik, to je zares NEVARNO!\n" "\n" -"ÄŚe pri tem pride do napake, ne po;siljajte sporoÄŤil o napakah!\n" +"ÄŚe pri tem pride do napake, ne pošiljajte sporoÄŤil o hroščih!\n" "Bili ste opozorjeni, znajti se morate sami!" #. ERR_HEADER_ERROR @@ -2457,7 +2438,7 @@ msgstr "Obvestilo" #. ERR_HEADER_CHILD_PROCESS_ERROR msgid "Child process error" -msgstr "" +msgstr "Napaka podrejena procesa" #. ERR_FAILED_CREATE_FILE msgid "Failed to create file:" @@ -2469,15 +2450,15 @@ msgstr "Napaka pri nalaganju nastavitev za napravo:" #. ERR_NO_DRC_FILE msgid "is not a device-rc-file !!!" -msgstr "ni datoteka s podatki o device-rc" +msgstr "ni datoteka s podatki o device-rc!!!" #. ERR_NETSCAPE_EXECUTE_FAIL msgid "Failed to execute netscape!" -msgstr "Napaka pri zagonu programa netscape" +msgstr "Napaka pri zagonu programa netscape!" #. ERR_SENDFAX_RECEIVER_MISSING msgid "Send fax: no receiver defined" -msgstr "Napaka pri pošiljanju faksa: prejemnik ni podan" +msgstr "Pošlji faks: prejemnik ni podan" #. ERR_CREATED_FOR_DEVICE msgid "has been created for device" @@ -2485,16 +2466,16 @@ msgstr "je bila ustvarjena za napravo" #. ERR_USED_FOR_DEVICE msgid "you want to use it for device" -msgstr "Ĺľeleli ste uporabiti napravo" +msgstr "Ĺľeleli ste jo uporabiti za napravo" #. ERR_MAY_CAUSE_PROBLEMS msgid "this may cause problems!" -msgstr "to lahko povzroÄŤi teĹľave" +msgstr "to lahko povzroÄŤi teĹľave!" #. WARN_UNSAVED_IMAGES #, c-format msgid "There are %d unsaved images" -msgstr "" +msgstr "Tukaj je %d neshranjenih slik" #. WARN_FILE_EXISTS #, c-format @@ -2502,23 +2483,23 @@ msgid "File %s already exists" msgstr "Datoteka %s Ĺľe obstaja" #. ERR_FILE_NOT_EXISTS -#, fuzzy, c-format +#, c-format msgid "File %s does not exist" -msgstr "Datoteka %s Ĺľe obstaja" +msgstr "Datoteka %s ne obstaja" #. ERR_FILE_NOT_POSTSCRIPT -#, fuzzy, c-format +#, c-format msgid "File %s is not a postscript file" -msgstr "Ĺ irina papirja pri tiskanju v postscriptnem zapisu [mm]" +msgstr "Datoteka %s ni postscript datoteka" #. ERR_UNSUPPORTED_OUTPUT_FORMAT #, c-format msgid "Unsupported %d-bit output format: %s" -msgstr "Nepodprti %d-bitni izhodni zapis: %s" +msgstr "Nepodprti %d-bitni izhodni format zapisa: %s" #. WARN_VIEWER_IMAGE_NOT_SAVED msgid "viewer image is not saved" -msgstr "" +msgstr "slika predogleda ni shranjena" #. TEXT_USAGE msgid "Usage:" @@ -2526,10 +2507,9 @@ msgstr "Uporaba:" #. TEXT_USAGE_OPTIONS msgid "[OPTION]... [DEVICE]" -msgstr "[izbire]... [naprava]" +msgstr "[OPTION]... [DEVICE]" #. TEXT_HELP -#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2546,8 +2526,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2564,48 +2545,51 @@ msgid "" " --sync request a synchronous connection with the X11 " "server" msgstr "" -"Zagon grafiÄŤnega uporabniškega vmesnika za dostop do naprav SANE (Scanner " -"Access Now Easy).\n" +"Zagon grafiÄŤnega uporabniškega vmesnika za dostop SANE (Scanner Access Now " +"Easy).\n" "\n" -"Zapis [naprave] je ime programa v ozadju v obliki naprava: (na primer umax:/" -"dev/scanner).\n" -"[izbira]... je sestava naslednjih gradnikov:\n" +"Format [DEVICE] je ime programa v ozadju:naprava (na primer umax:/dev/" +"scanner).\n" +"[OPTION]... je lahko kombinacija naslednjih gradnikov:\n" " -h, --help prikaĹľe to sporoÄŤilo in konÄŤa\n" " -v, --version izpiše podatke o razliÄŤici\n" +" -l, --license izpiše podatke o licenci\n" "\n" -" -d, --device-settings datoteka prebere nastavitve o napravi z datoteke " -"(brez konÄŤnice \".drc\")\n" +" -d, --device-settings file prebere nastavitve o napravi iz datoteke (brez " +"\".drc\")\n" "\n" -" -s, --scan uporabi naÄŤin za zkeniranje\n" -" -c, --copy uporabi naÄŤin za kopiranje\n" -" -f, --fax uporabi naÄŤin za pošiljanje faksov\n" -" -n, --no-mode-selection onemogoÄŤi menu za izbiranje naÄŤina dela v " -"xsane\n" +" -V, --viewer uporabi aktivni naÄŤin predogleda (privzeto)\n" +" -s, --save uporabi aktivni naÄŤin za shranjevanje\n" +" -c, --copy uporabi aktivni naÄŤin za kopiranje\n" +" -m, --mail uporabi aktivni naÄŤin za veÄŤ strani\n" +" -f, --fax uporabi aktivni naÄŤin za faks\n" +" -n, --no-mode-selection onemogoÄŤi meni za izbiranje naÄŤina dela v X " +"Sane\n" "\n" " -F, --Fixed glavno okno je stalne velikosti (prepiši " -"zeljene vrednosti)\n" -" -R, --Resizeable glavno okno je spremenljive velikosti (prepisi " -"Ĺľeljene vrednosti)\n" +"vrednosti nastavitev)\n" +" -R, --Resizeable glavno okno je spremenljive velikosti (prepiši " +"vrednosti nastavitev)\n" "\n" -" -p, --print-filenames izpiši imena datotek, ki jih ustvari xsane\n" +" -p, --print-filenames izpiši imena datotek, ki jih ustvari X Sane\n" " -N, --force-filename name vsili imena datotek in onemogoÄŤi uporabniška " "imena\n" "\n" -" --display X11-display preusmeri izhod na podani prikazovalnik X11\n" +" --display X11-display preusmeri izhod na zaslon X11\n" " --no-xshm ne uporabi slik z deljenim pomnilnikom\n" -" --sync zahtevaj sinhrono povezavo s streĹľnikom za X11" +" --sync zahtevaj sinhrono povezavo s streĹľnikom X11" #. strings for gimp plugin #. XSANE_GIMP_INSTALL_BLURB msgid "Front-end to the SANE interface" -msgstr "GrafiÄŤni vmesnik do SANE" +msgstr "GrafiÄŤni vmesnik do SANE vmesnika" #. 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 "" -"Ta funkcija omogoÄŤa dostop do skenerjev in drugih naprav zazajem slik z " +"Ta funkcija omogoÄŤa dostop do skenerjev in drugih naprav za zajem slik z " "vmesnikom SANE (Scanner Access Now Easy)." #. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" @@ -2615,7 +2599,7 @@ msgstr "<Toolbox>/File/Acquire/XSane: Pogovor z napravo..." #. XSANE_GIMP_MENU msgid "<Toolbox>/File/Acquire/XSane: " -msgstr "<Toolbox>/File/Acquire/XSane:" +msgstr "<Toolbox>/File/Acquire/XSane: " #. XSANE_GIMP_MENU_DIALOG_OLD msgid "<Toolbox>/Xtns/XSane/Device dialog..." @@ -2636,6 +2620,14 @@ msgid "" "5) The backend is not configured correct (man sane-\"backendname\")\n" "6) Possibly there is more than one SANE version installed" msgstr "" +"MogoÄŤi vzroki:\n" +"1) Tukaj zares ni naprave, ki jo podpira SANE\n" +"2) Podprte naprave so zasedene\n" +"3) Dovoljenja za datoteko naprave ne dovoljujejo, da jo uporabite - " +"poskusite kot korenski uporabnik (root)\n" +"4) Program v ozadju ni zagnal SANE (man sane-dll)\n" +"5) Program v ozadju ni pravilno nastavljen (man sane-\"backendname\")\n" +"6) MogoÄŤe je nameščenih veÄŤ verzij SANE" #. 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 @@ -2645,196 +2637,187 @@ msgstr "polna velikost" #. MENU_ITEM_SURFACE_DIN_A3P msgid "DIN A3 port." -msgstr "vzdolĹľno A3" +msgstr "DIN A3 pokonÄŤno" #. MENU_ITEM_SURFACE_DIN_A3L msgid "DIN A3 land." -msgstr "preÄŤno A3" +msgstr "DIN A3 leĹľeÄŤe" #. MENU_ITEM_SURFACE_DIN_A4P msgid "DIN A4 port." -msgstr "vzdolĹľno A4" +msgstr "DIN A4 pokonÄŤno" #. MENU_ITEM_SURFACE_DIN_A4L msgid "DIN A4 land." -msgstr "preÄŤno A4" +msgstr "DIN A4 leĹľeÄŤe" #. MENU_ITEM_SURFACE_DIN_A5P msgid "DIN A5 port." -msgstr "vzdolĹľno A5" +msgstr "DIN A5 pokonÄŤno" #. MENU_ITEM_SURFACE_DIN_A5L msgid "DIN A5 land." -msgstr "preÄŤno A5" +msgstr "DIN A5 leĹľeÄŤe" #. MENU_ITEM_SURFACE_13cmx18cm -#, fuzzy msgid "13cm x 18cm" -msgstr "13 cm x 9 cm" +msgstr "13cm x 18cm" #. MENU_ITEM_SURFACE_18cmx13cm -#, fuzzy msgid "18cm x 13cm" -msgstr "9 cm x 13 cm" +msgstr "18cm x 13cm" #. MENU_ITEM_SURFACE_10cmx15cm -#, fuzzy msgid "10cm x 15cm" -msgstr "9 cm x 13 cm" +msgstr "10cm x 15cm" #. MENU_ITEM_SURFACE_15cmx10cm -#, fuzzy msgid "15cm x 10cm" -msgstr "9 cm x 13 cm" +msgstr "15cm x 10cm" #. MENU_ITEM_SURFACE_9cmx13cm msgid "9cm x 13cm" -msgstr "9 cm x 13 cm" +msgstr "9cm x 13cm" #. MENU_ITEM_SURFACE_13cmx9cm msgid "13cm x 9cm" -msgstr "13 cm x 9 cm" +msgstr "13cm x 9cm" #. MENU_ITEM_SURFACE_legal_P msgid "legal port." -msgstr "vzdolĹľno legal" +msgstr "legal pokonÄŤno" #. MENU_ITEM_SURFACE_legal_L msgid "legal land." -msgstr "preÄŤno legal" +msgstr "legal leĹľeÄŤe" #. MENU_ITEM_SURFACE_letter_P msgid "letter port." -msgstr "vzdolĹľno pisemsko" +msgstr "pisemsko pokonÄŤno" #. MENU_ITEM_SURFACE_letter_L msgid "letter land." -msgstr "preÄŤno pisemsko" +msgstr "pisemsko leĹľeÄŤe" #. MENU_ITEM_MEDIUM_FULL_COLOR_RANGE msgid "Full color range" -msgstr "" +msgstr "Celotno barvno obmoÄŤje" #. MENU_ITEM_MEDIUM_SLIDE msgid "Slide" -msgstr "" +msgstr "Diapozitiv" #. MENU_ITEM_MEDIUM_STANDARD_NEG -#, fuzzy msgid "Standard negative" -msgstr "ObiÄŤajne izbire" +msgstr "Standardni negativ" #. MENU_ITEM_MEDIUM_AGFA_NEG msgid "Agfa negative" -msgstr "" +msgstr "Agfa negativ" #. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4 msgid "Agfa negative XRG 200-4" -msgstr "" +msgstr "Agfa negativ XRG 200-4" #. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100 msgid "Agfa negative HDC 100" -msgstr "" +msgstr "Agfa negativ HDC 100" #. MENU_ITEM_MEDIUM_FUJI_NEG -#, fuzzy msgid "Fuji negative" -msgstr "nedejaven" +msgstr "Fuji negativ" #. MENU_ITEM_MEDIUM_KODAK_NEG msgid "Kodak negative" -msgstr "" +msgstr "Kodak negativ" #. MENU_ITEM_MEDIUM_KONICA_NEG -#, fuzzy msgid "Konica negative" -msgstr "nedejaven" +msgstr "Konica negativ" #. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 -#, fuzzy msgid "Konica negative VX 100" -msgstr "nedejaven" +msgstr "Konica negativ VX 100" #. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 msgid "Rossmann negative HR 100" -msgstr "" +msgstr "Rossmann negativ HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -#, fuzzy -msgid "Mail project not created" -msgstr "beriljiva" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Projekt ni bil ustvarjen" -#. TEXT_MAIL_STATUS_CREATED -#, fuzzy -msgid "Mail project created" -msgstr "beriljiva" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Projekt je bil ustvarjen" -#. TEXT_MAIL_STATUS_CHANGED -#, fuzzy -msgid "Mail project changed" -msgstr "Samodejno doloÄŤi obmoÄŤje skeniranja" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Projekt je bil spremenjen" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -#, fuzzy -msgid "Error reading mailproject" -msgstr "Vnesite ime projekta za faks" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Napaka pri branju projekta" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Napaka pri shranjevanju projekta" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Shranjujem datoteko" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "PredÄŤasna prekinitev shranjevanja datoteke" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Datoteka je bila shranjena" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" -msgstr "" +msgstr "POP3 povezava ni uspela" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" -msgstr "" +msgstr "POP3 prijava ni uspela" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "ASMTP povezava ni uspela" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" -msgstr "" +msgstr "SMTP povezava ni uspela" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM -#, fuzzy +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" -msgstr "beriljiva" +msgstr "Vnosa pošiljatelja ni odobren" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT -#, fuzzy +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" -msgstr "beriljiva" +msgstr "Vnos prejemnika ni odobren" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "Podatki e-pošte niso odobreni" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "Pošiljanje e-pošte" -#. TEXT_FAX_STATUS_NOT_CREATED -#, fuzzy -msgid "Fax project not created" -msgstr "beriljiva" - -#. TEXT_FAX_STATUS_CREATED -#, fuzzy -msgid "Fax project created" -msgstr "beriljiva" - -#. TEXT_FAX_STATUS_CHANGED -#, fuzzy -msgid "Fax project changed" -msgstr "Samodejno doloÄŤi obmoÄŤje skeniranja" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "E-pošta je bila poslana" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" -msgstr "" +msgstr "Preverjanje ÄŤakalne vrste faksa" #. TEXT_FAX_STATUS_FAX_QUEUED msgid "Fax is queued" -msgstr "" +msgstr "ÄŚakalna vrsta faksa je preverjena" #. Sane backend messages msgid "flatbed scanner" @@ -2856,7 +2839,7 @@ msgid "virtual device" msgstr "navidezna naprava" msgid "Success" -msgstr "Opravljeno" +msgstr "Uspešno" msgid "Operation not supported" msgstr "Operacija ni podprta" @@ -2889,4 +2872,13 @@ msgid "Out of memory" msgstr "Zmanjkalo je pomnilnika" msgid "Access to resource has been denied" -msgstr "Dostop do vira je ni dovoljen." +msgstr "Dostop do vira je bil zavrnjen" + +#~ msgid "Could not create temporary file" +#~ msgstr "Ne morem ustvariti zaÄŤasno datoteko" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Ne morem ustvariti zaÄŤasnih datotek predogleda" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Ne morem ustvariti imen datotek za datoteke predogledov" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.76\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2002-01-17 00:47GMT\n" "Last-Translator: Rusmir Duško <drusmir@gmx.ch>\n" "Language-Team: srpski <sr@li.org>\n" @@ -82,18 +82,26 @@ msgstr "preimenuj stranu sa faksom" msgid "insert ps-file into fax" msgstr "unesi ps-fajl u faks" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "e-pošta" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "preimenuj stranu sa e-poštom" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "unesi sliku u e-poštu" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Izbriši projekat" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "preimenuj prepodešavanja" @@ -395,6 +403,11 @@ msgstr "Uradi projekat" msgid "Send project" msgstr "Pošalji projekat" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Zapamti sliku" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Izbriši projekat" @@ -435,8 +448,9 @@ msgstr "PoveĹľi skaliranja" msgid "Fine mode" msgstr "TaÄŤan modus" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "HTML e-pošta" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -451,6 +465,14 @@ msgstr "Prepiši upozorenje" msgid "Skip existing filenames" msgstr "PreskoÄŤi postojeće nazive fajli" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "" @@ -483,10 +505,6 @@ msgstr "Automatsko biranje površine skeniranja" msgid "Autocorrect colors" msgstr "Autokorektura boja" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 autentifikacija" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "" @@ -503,14 +521,6 @@ msgstr "Dostupni ureÄ‘aji" msgid "XSane options" msgstr "XSane opcije" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "NaÄŤin rada XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Korak" - #. TEXT_FILETYPE msgid "Type" msgstr "Vrsta" @@ -681,8 +691,9 @@ msgid "" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "E-pošta:" #. TEXT_HOMEPAGE @@ -700,12 +711,13 @@ msgstr "Prevod:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "prevod iz engleskog teksta\n" "Rusmir Duško\n" @@ -719,20 +731,30 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Skenirane strane: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "E-pošta:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Dodatci:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Status projekta:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Upotreba:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" msgstr "" #. TEXT_MEDIUM_DEFINITION_NAME @@ -854,6 +876,10 @@ msgstr "Vrednost gama zelene boje za štampaÄŤ:" msgid "Printer gamma blue:" msgstr "Vrednost gama plave boje za štampaÄŤ:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Privremeni direktorijum" @@ -878,6 +904,11 @@ msgstr "PNG kompresija slike" msgid "Filename counter length" msgstr "BrojaÄŤ duĹľine naziva fajla" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "TIFF 8 bitna kompresija slike" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16-bitna kompresija slike" @@ -919,10 +950,6 @@ msgstr "Faktor gama za plavu boja pri pregledu:" msgid "Threshold option:" msgstr "Opcije praga šuma:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Automatsko uvlaÄŤenje dokumenata:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Opsega ÄŤetkice pri pregledu" @@ -975,6 +1002,10 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "PrikazivaÄŤ (postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server" @@ -983,14 +1014,29 @@ msgstr "SMTP server" msgid "SMTP port:" msgstr "SMTP port:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Pošiljalac:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Adresa za odgovor:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3 autentifikacija" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Upotreba:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Lozinka:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -999,18 +1045,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 korisnik:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 lozinka:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "PrikazivaÄŤ (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR komanda:" @@ -1055,9 +1089,10 @@ msgstr "" msgid "Save" msgstr "SaÄŤuvaj" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Slika" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Fajl" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1067,8 +1102,9 @@ msgstr "Kopiraj" msgid "Fax" msgstr "Faks" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" msgstr "E-pošta:" #. NOTEBOOK_OCR_OPTIONS @@ -1083,9 +1119,9 @@ msgstr "Prikaz" msgid "Enhancement" msgstr "Poboljšavanje" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-pošta:" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1233,6 +1269,11 @@ msgstr "JPEG DCT kompresija" msgid "pack bits" msgstr "zapakovani biti" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "zadrĹľano" + #. MENU_ITEM_RANGE_SCALE #, fuzzy msgid "Slider (Scale)" @@ -1303,6 +1344,27 @@ msgstr "Pomeri na gore" msgid "Move item down" msgstr "Pomeri na dole" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3 autentifikacija" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Skeniranje" @@ -1312,6 +1374,11 @@ msgstr "Skeniranje" msgid "Receiving %s data" msgstr "Primam %s podatke" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "paket" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Sliku preneti" @@ -1374,8 +1441,8 @@ msgstr "Prekini pregled <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" #. DESC_XSANE_MEDIUM @@ -1418,26 +1485,40 @@ msgstr "Unesi novo ime za stranu sa faksom" msgid "Enter receiver phone number or address" msgstr "Unesi telefonski broj ili adresu prijemnika" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Unesi ime projekta za E-poštu" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Unesi novo ime za sliku u E-pošti" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Unesi email adresu" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Unesi temu od E-pošte" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "" +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter name of multipage project" +msgstr "Unesi ime projekta za E-poštu" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Izaberi izlazni naziv fajla za OCR tekst fajl" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Unesi novo ime za opseg konfiguracija" @@ -1675,6 +1756,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Put do privremenog direktorijuma" @@ -1698,6 +1785,11 @@ msgstr "Kompresija ako je slika zapamćena kao PNG" msgid "Minimum length of counter in filename" msgstr "Najkraća duĹľina brojaÄŤa u nazivu fajla" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Vrsta kompresije ako se 8-bitn-a slika pamti kao TIFF" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Vrsta kompresije ako se 16-bitn-a slika pamti kao TIFF" @@ -1727,6 +1819,16 @@ msgstr "" "Ako je brojaÄŤ naziva fajle automatski povećan, postojeći brojevi se " "automatski preskaÄŤu" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1829,13 +1931,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "Odmak, koji prag šuma skenera i programa Xsane usklaÄ‘uje" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Odredi izvor skeniranja za automatsko dodavanje dokumenata. Ako je taj izvor " -"izabran onda Xsane skenira do obaveštenja \"out of paper\" ili dogreške." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1887,6 +1985,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP adresa ili ime domena SMTP servera" @@ -1895,18 +1997,31 @@ msgstr "IP adresa ili ime domena SMTP servera" msgid "port to connect to SMTP server" msgstr "port na kojem SMTP server treba da bude povezan" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "unesite vašu e-poštansku adresu" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "unesite e-poštansku adresu za odgovore na ovu adresu" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentifikaciju POP3 servera isvršiti pre slanja e-pošte" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "korisniÄŤko ime za POP3 server" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "lozinka za POP3 server" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "IP adresa ili ime domena POP3 servera" @@ -1915,21 +2030,9 @@ msgstr "IP adresa ili ime domena POP3 servera" msgid "port to connect to POP3 server" msgstr "port na kojem POP3 server treba da bude povezan" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "korisniÄŤko ime za POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "lozinka za POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Komanda za prikaz slike iz e-pošte" - -#. DESC_HTML_MAIL +#. DESC_HTML_EMAIL #, fuzzy -msgid "Mail is sent in html mode, place image with: <IMAGE>" +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "e-pošta je poslata u html modusu, slike su prikazane direktno" #. DESC_OCR_COMMAND @@ -2158,8 +2261,12 @@ msgid "Filename too long" msgstr "Naziv fajla je predugaÄŤak" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Ne mogu da napravim privremeni fajl" +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" @@ -2284,10 +2391,6 @@ msgstr "Greška pri izvršenju prikazivaÄŤa faksova:" msgid "Failed to execute fax command:" msgstr "Greška pri izvršenju komande za faks:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Greška pri izvršenju prikazivaÄŤa e-pošte:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Greška pri izvršenju komande za OCR:" @@ -2337,14 +2440,6 @@ msgstr "Pregled ne nepodrĹľava dubinu bita" msgid "GIMP support missing" msgstr "Nedostaje podrĹľavanje za GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Ne mogu da napravim privremeni fajl za pregled" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Ne mogu da napravim naziv fajla za fajlove za pregled" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Ne mogu napraviti faks projekat" @@ -2475,8 +2570,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2687,74 +2783,84 @@ msgstr "Konica negativ" msgid "Rossmann negative HR 100" msgstr "" -#. TEXT_MAIL_STATUS_NOT_CREATED +#. TEXT_PROJECT_STATUS_NOT_CREATED #, fuzzy -msgid "Mail project not created" +msgid "Project not created" msgstr "ÄŤitati" -#. TEXT_MAIL_STATUS_CREATED +#. TEXT_PROJECT_STATUS_CREATED #, fuzzy -msgid "Mail project created" +msgid "Project created" msgstr "ÄŤitati" -#. TEXT_MAIL_STATUS_CHANGED +#. TEXT_PROJECT_STATUS_CHANGED #, fuzzy -msgid "Mail project changed" +msgid "Project changed" msgstr "Automatsko biranje površine skeniranja" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT #, fuzzy -msgid "Error reading mailproject" +msgid "Error reading project" msgstr "Unesi ime projekta za E-poštu" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Sliku zapamtiti" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Sliku zapamtiti" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Sliku zapamtiti" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "POP3 autentifikacija" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM #, fuzzy msgid "From entry not accepted" msgstr "ÄŤitati" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT #, fuzzy msgid "Receiver entry not accepted" msgstr "ÄŤitati" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "" - -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "" - -#. TEXT_FAX_STATUS_NOT_CREATED +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA #, fuzzy -msgid "Fax project not created" +msgid "E-mail data not accepted" msgstr "ÄŤitati" -#. TEXT_FAX_STATUS_CREATED -#, fuzzy -msgid "Fax project created" -msgstr "ÄŤitati" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "" -#. TEXT_FAX_STATUS_CHANGED -#, fuzzy -msgid "Fax project changed" -msgstr "Automatsko biranje površine skeniranja" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2818,3 +2924,92 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Ne mogu da napravim privremeni fajl za pregled" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Ne mogu da napravim naziv fajla za fajlove za pregled" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "POP3 autentifikacija" + +#~ msgid "XSane mode" +#~ msgstr "NaÄŤin rada XSane" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 korisnik:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 lozinka:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Automatsko uvlaÄŤenje dokumenata:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Odredi izvor skeniranja za automatsko dodavanje dokumenata. Ako je taj " +#~ "izvor izabran onda Xsane skenira do obaveštenja \"out of paper\" ili " +#~ "dogreške." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "ÄŤitati" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "ÄŤitati" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Automatsko biranje površine skeniranja" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "ÄŤitati" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "ÄŤitati" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Automatsko biranje površine skeniranja" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Unesi ime projekta za E-poštu" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Sliku zapamtiti" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "ÄŤitati" + +#~ msgid "Image" +#~ msgstr "Slika" + +#~ msgid "Viewer (png):" +#~ msgstr "PrikazivaÄŤ (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Komanda za prikaz slike iz e-pošte" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Greška pri izvršenju prikazivaÄŤa e-pošte:" + +#~ msgid "Step" +#~ msgstr "Korak" + +#~ msgid "Mail" +#~ msgstr "E-pošta:" Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.92\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2003-08-03 14:12+01:00\n" "Last-Translator: Johan Bengtsson <jb@goteborg.bostream.se>\n" "Language-Team: LANGUAGE <sv@li.org>\n" @@ -79,18 +79,26 @@ msgstr "byt namn pĂĄ faxsida" msgid "insert ps-file into fax" msgstr "infoga ps-fil i fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "brevprojekt" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "byt namn pĂĄ brevbild" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "infoga fil i brev" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "Ta bort projekt" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "byt namn pĂĄ det förinställda omrĂĄdet" @@ -387,6 +395,11 @@ msgstr "Skapa projekt" msgid "Send project" msgstr "Skicka projekt" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "Spara bild" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Ta bort projekt" @@ -427,8 +440,9 @@ msgstr "Bind skala" msgid "Fine mode" msgstr "Högkvalitetsläge" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "HTML brev" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -443,6 +457,14 @@ msgstr "Ă–verskriftsvarning" msgid "Skip existing filenames" msgstr "Hoppa över existerande filnamn" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "Spara 16bits pnm i ascii format" @@ -475,10 +497,6 @@ msgstr "Förval av inläsningsyta" msgid "Autocorrect colors" msgstr "Autokorrigera färger" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 autentisering" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "Använd GUI statuslinje" @@ -495,14 +513,6 @@ msgstr "Tillgängliga enheter:" msgid "XSane options" msgstr "XSane-inställningar" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane-läge" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Steg" - #. TEXT_FILETYPE msgid "Type" msgstr "Typ" @@ -691,8 +701,9 @@ msgstr "" "UTAN NĂ…GON GARANTI; utan ens nĂĄgon underförstĂĄdd garanti för dess\n" "HANDELSBARHETET eller DUGLIGHET FĂ–R NĂ…GOT SĂ„RSKILT Ă„NDAMĂ…L.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "Epost:" #. TEXT_HOMEPAGE @@ -710,12 +721,13 @@ msgstr "Ă–versättning:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Svensk översättning\n" "av Johan Bengtsson\n" @@ -729,20 +741,30 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Inlästa sidor: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "Epost text:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Bilagor:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Projekt status:" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Användning:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" msgstr "" #. TEXT_MEDIUM_DEFINITION_NAME @@ -857,6 +879,10 @@ msgstr "Skrivargamma grön:" msgid "Printer gamma blue:" msgstr "Skrivargamma blĂĄ:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Temporär katalog" @@ -881,6 +907,11 @@ msgstr "PNG bildkompression" msgid "Filename counter length" msgstr "Filnamnsräknarens längd" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "TIFF 8 bit bildkompression" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16 bit bildkompression" @@ -921,10 +952,6 @@ msgstr "Förhandsgranskningsgamma blĂĄ:" msgid "Threshold option:" msgstr "Inställning av tröskelvärde:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Automatisk Dokument Matar Modus:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Pipettstorlek vid förhandsgranskning" @@ -977,6 +1004,10 @@ msgstr "Sätt standardinställningar för:" msgid "Viewer (Postscript):" msgstr "Visare (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP server" @@ -985,14 +1016,29 @@ msgstr "SMTP server" msgid "SMTP port:" msgstr "SMTP port" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "FrĂĄn:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Svara till:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3 autentisering" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Användning:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Lösenord:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 server:" @@ -1001,18 +1047,6 @@ msgstr "POP3 server:" msgid "POP3 port:" msgstr "POP3 port:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 användare:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 lösenord:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Visare (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR Kommando:" @@ -1056,9 +1090,10 @@ msgstr "" msgid "Save" msgstr "Spara" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Bild" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Arkiv" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1068,9 +1103,10 @@ msgstr "Kopiera" msgid "Fax" msgstr "Faxa" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "Post" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "Epost" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1084,9 +1120,9 @@ msgstr "Visa" msgid "Enhancement" msgstr "Bearbetning" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Epost" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1232,6 +1268,11 @@ msgstr "JPEG DCT kompression" msgid "pack bits" msgstr "packbits" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "fördröjd" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Linje (Skala)" @@ -1301,6 +1342,27 @@ msgstr "Flytta upp" msgid "Move item down" msgstr "Flytta ner" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3 autentisering" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Läser in" @@ -1310,6 +1372,11 @@ msgstr "Läser in" msgid "Receiving %s data" msgstr "Tar emot %s data" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "paket" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "För över bild" @@ -1371,9 +1438,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "Avbryt förhandsgranskning <Alt-ESC>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "spara-<Ctrl-s>, visa-<Ctrl-v>, fotokopia-<Ctrl-c>, faxa-<Ctrl-f> eller posta-" "<Ctrl-" @@ -1418,26 +1486,40 @@ msgstr "Skriv in nytt namn för faxsida" msgid "Enter receiver phone number or address" msgstr "Skriv in mottagarens telefonnummer eller adress" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Skriv in namn för brevprojekt" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Skriv in nytt namn för brevbild" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Skriv in epost adress" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Skriv in ämne för epost" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "" +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter name of multipage project" +msgstr "Skriv in namn för brevprojekt" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Välj utmatingsfilnamn för OCR textfil" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Skriv in nytt namn för förinställt omrĂĄde" @@ -1671,6 +1753,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Sökväg till temporärkatalogen" @@ -1693,6 +1781,11 @@ msgstr "Kompression om bilden sparas som png" msgid "Minimum length of counter in filename" msgstr "Minimum längd för räknaren i filnamn" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Kompressionstyp om 8-bits bild sparas som tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Kompressionstyp om 16-bits bild sparas som tiff" @@ -1719,6 +1812,16 @@ msgid "" msgstr "" "Om filnamnsräknaren automatiskt uppdateras, sĂĄ hoppas använda nummer över" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1839,14 +1942,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "Offset som synkroniserar tröskelomfĂĄngen frĂĄn bildläsaren och XSane" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Välj inläsningskälla för Automatisk Dokument Matare. Om denna\n" -"inläsningskälla är vald läser XSane in framtill \"out of paper\" eller " -"felmeddelande." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1901,6 +1999,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "SMTP serverns IP adress eller domän" @@ -1909,18 +2011,31 @@ msgstr "SMTP serverns IP adress eller domän" msgid "port to connect to SMTP server" msgstr "port som kopplar upp mot SMTP server" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "skriv in din epost adress" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "skriv in epost adress för besvarad epost" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Autentiserna mot POP3 server innan post skickas" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "användarnamn för POP3 server" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "lösenord för POP3 server" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "POP3 serverns IP adress eller domän" @@ -1929,21 +2044,9 @@ msgstr "POP3 serverns IP adress eller domän" msgid "port to connect to POP3 server" msgstr "port som kopplar upp mot POP3 server" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "användarnamn för POP3 server" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "lösenord för POP3 server" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Kommando som körs för att visa en brevbild" - -#. DESC_HTML_MAIL +#. DESC_HTML_EMAIL #, fuzzy -msgid "Mail is sent in html mode, place image with: <IMAGE>" +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "Post sänds i htmlläge, bilder visas direkt" #. DESC_OCR_COMMAND @@ -2161,8 +2264,12 @@ msgid "Filename too long" msgstr "Filnamnet är för lĂĄngt" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Kunde inte skapa temporär fil" +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" @@ -2286,10 +2393,6 @@ msgstr "Kunde inte starta faxvisare:" msgid "Failed to execute fax command:" msgstr "Kunde inte exekvera faxkommando:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "Kunde inte starta brevbildsvisare:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "Kunde inte exekvera ocrkommando:" @@ -2339,14 +2442,6 @@ msgstr "Förhandsgranskning kan inte hantera bit-djup" msgid "GIMP support missing" msgstr "Stöd för GIMP saknas" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Kunde inte skapa temporär förhandsgranskningsfil" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Kunde inte skapa filnamn för förhandsgranskningsfiler" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Kunde inte skapa faxprojekt" @@ -2459,6 +2554,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[FLAGGA]... [ENHET]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2475,8 +2571,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2689,74 +2786,84 @@ msgstr "Konica negativ VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negativ HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED +#. TEXT_PROJECT_STATUS_NOT_CREATED #, fuzzy -msgid "Mail project not created" +msgid "Project not created" msgstr "läs" -#. TEXT_MAIL_STATUS_CREATED +#. TEXT_PROJECT_STATUS_CREATED #, fuzzy -msgid "Mail project created" +msgid "Project created" msgstr "läs" -#. TEXT_MAIL_STATUS_CHANGED +#. TEXT_PROJECT_STATUS_CHANGED #, fuzzy -msgid "Mail project changed" +msgid "Project changed" msgstr "Förval av inläsningsyta" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT #, fuzzy -msgid "Error reading mailproject" +msgid "Error reading project" msgstr "Skriv in namn för brevprojekt" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Sparar bild" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Sparar bild" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Sparar bild" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "POP3 autentisering" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM #, fuzzy msgid "From entry not accepted" msgstr "läs" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT #, fuzzy msgid "Receiver entry not accepted" msgstr "läs" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "" - -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "" - -#. TEXT_FAX_STATUS_NOT_CREATED +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA #, fuzzy -msgid "Fax project not created" +msgid "E-mail data not accepted" msgstr "läs" -#. TEXT_FAX_STATUS_CREATED -#, fuzzy -msgid "Fax project created" -msgstr "läs" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "" -#. TEXT_FAX_STATUS_CHANGED -#, fuzzy -msgid "Fax project changed" -msgstr "Förval av inläsningsyta" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2820,3 +2927,92 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Kunde inte skapa temporär förhandsgranskningsfil" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Kunde inte skapa filnamn för förhandsgranskningsfiler" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "POP3 autentisering" + +#~ msgid "XSane mode" +#~ msgstr "XSane-läge" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 användare:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 lösenord:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Automatisk Dokument Matar Modus:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Välj inläsningskälla för Automatisk Dokument Matare. Om denna\n" +#~ "inläsningskälla är vald läser XSane in framtill \"out of paper\" eller " +#~ "felmeddelande." + +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "läs" + +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "läs" + +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Förval av inläsningsyta" + +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "läs" + +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "läs" + +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Förval av inläsningsyta" + +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Skriv in namn för brevprojekt" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Sparar bild" + +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "läs" + +#~ msgid "Image" +#~ msgstr "Bild" + +#~ msgid "Viewer (png):" +#~ msgstr "Visare (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Kommando som körs för att visa en brevbild" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "Kunde inte starta brevbildsvisare:" + +#~ msgid "Step" +#~ msgstr "Steg" + +#~ msgid "Mail" +#~ msgstr "Post" Binary files differ@@ -1,13 +1,14 @@ +# translation of xsane_tr.po to Turkish # translation of tr.po to Turkish # Turkish Translation for XSane # TOGAN MUFTUOGLU <toganm@yahoo.com>, 2000. -# Togan Muftuoglu <toganm@yahoo.com>, 2004 +# Togan Muftuoglu <toganm@yahoo.com>, 2004,2005 # msgid "" msgstr "" -"Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" -"PO-Revision-Date: 2004-08-26 11:08+0200\n" +"Project-Id-Version: xsane_tr\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" +"PO-Revision-Date: 2005-12-22 10:01+0100\n" "Last-Translator: Togan Muftuoglu <toganm@yahoo.com>\n" "Language-Team: Turkish <kde-i18n-tr@kde.org>\n" "MIME-Version: 1.0\n" @@ -81,17 +82,21 @@ msgstr "fax sayfasını yeniden isimlendir" msgid "insert ps-file into fax" msgstr "ps-dosyasını faxa yerleĹźtirin" -#. WINDOW_MAIL_PROJECT -msgid "mail project" -msgstr "posta projesi" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" +msgstr "E-posta projesi" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" -msgstr "posta resmini yeniden isimlendir" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" +msgstr "E-posta resmini yeniden isimlendir" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" -msgstr "dosyayı postaya yerleĹźtirin" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "dosyayı E-postaya yerleĹźtirin" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" +msgstr "Çok sayfalı proje" #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -381,6 +386,10 @@ msgstr "Proje yarat" msgid "Send project" msgstr "Projeyi gönder" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "Çok sayfalı dosyayı kaydet" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "Projeyi sil" @@ -421,9 +430,9 @@ msgstr "Boyutları tut" msgid "Fine mode" msgstr "Fine modu" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" -msgstr "HTML e-posta" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" +msgstr "HTML E-posta" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT msgid "Save device preferences at exit" @@ -437,6 +446,14 @@ msgstr "Ăśzerine yazma uyarısı" msgid "Skip existing filenames" msgstr "Varolan dosya isimlerini atla" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +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 +msgid "Save PDF zlib compressed" +msgstr "PDF dosyayı zlib sıkıştırmalı kaydet" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "16bit pnm'yi ascii formatında sakla" @@ -469,10 +486,6 @@ msgstr "Tarama alanını önceden seç" msgid "Autocorrect colors" msgstr "Renkleri otomatik dĂĽzelt" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "POP3 otorizasyon" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "GUI ilerleme çubuÄźunu kullan" @@ -489,14 +502,6 @@ msgstr "Varolan aygıtlar" msgid "XSane options" msgstr "Xsane seçenekleri" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Xsane modu" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "Sayaç" - #. TEXT_FILETYPE msgid "Type" msgstr "Tip" @@ -685,9 +690,9 @@ msgstr "" "HİÇBÄ°R GARANTÄ° İÇERMEZ; hatta HERHANGÄ° BÄ°R AMACA \n" "UYGUNLUÄžU VEYA ĂśRĂśNLEĹžTÄ°RÄ°LMESÄ°NÄ° bile.\n" -#. TEXT_EMAIL -msgid "Email:" -msgstr "Eposta:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" +msgstr "E-posta:" #. TEXT_HOMEPAGE msgid "Homepage:" @@ -704,14 +709,14 @@ msgstr "TercĂĽme:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" -"TĂĽrkçe'ye çevrim\n" +"TĂĽrkçe'ye çevrim \n" "Togan MĂĽftĂĽoÄźlu\n" "E-posta: toganm@yahoo.com\n" @@ -723,21 +728,29 @@ msgstr "0x0:0KB" msgid "Scanned pages: " msgstr "Taranan sayfalar: " -#. TEXT_MAIL_TEXT -msgid "Email text:" -msgstr "Eposta metni" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" +msgstr "E-posta metni" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "Ekler" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Proje durumu" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" -msgstr "Postalanacak resim dosya tipi:" +#. TEXT_EMAIL_FILETYPE +msgid "E-mail image filetype:" +msgstr "E-Postada bulunacak resim dosya tipi:" + +#. TEXT_PAGES +msgid "Pages:" +msgstr "Sayfalar:" + +#. TEXT_MULTIPAGE_FILETYPE +msgid "Multipage document filetype:" +msgstr "Çok sayfalı dokĂĽman dosya tipi:" #. TEXT_MEDIUM_DEFINITION_NAME msgid "Medium Name:" @@ -851,6 +864,11 @@ msgstr "Yazıcı mavi gamma:" msgid "Printer gamma blue:" msgstr "Yazıcı mavi gamma:" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +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 " + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "Geçici dizin" @@ -873,7 +891,11 @@ msgstr "PNG resim sıkıştırması" #. TEXT_SETUP_FILENAME_COUNTER_LEN msgid "Filename counter length" -msgstr "Dosya adı sayac uzunluÄźu" +msgstr "Dosya adı sayaç uzunluÄźu" + +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "TIFF zip sıkıştırma oranı" #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" @@ -915,10 +937,6 @@ msgstr "Ă–nizleme mavi gamma" msgid "Threshold option:" msgstr "Threshold seçeneÄźi" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Otomatik DokĂĽman Besleyici modu" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Ă–nizleme pipette aralığı:" @@ -971,6 +989,10 @@ msgstr "Program öntanımlılarını belirle:" msgid "Viewer (Postscript):" msgstr "Ä°zleyici (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +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 " + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP sunucu" @@ -979,14 +1001,29 @@ msgstr "SMTP sunucu" msgid "SMTP port:" msgstr "SMTP portu" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Kimden" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Yanıt Adresi" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "POP3 otorizasyon" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Kullanım:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Ĺžifre:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 Sunucu" @@ -995,18 +1032,6 @@ msgstr "POP3 Sunucu" msgid "POP3 port:" msgstr "POP3 Portu" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 kullanıcı:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3 Ĺžifre:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Gösterici (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR Komutu:" @@ -1050,9 +1075,9 @@ msgstr "Yeni medya" msgid "Save" msgstr "Kaydet" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Resim" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" +msgstr "Dosya tipi" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1062,9 +1087,9 @@ msgstr "Kopyala" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "E-posta:" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" +msgstr "E-posta" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1078,9 +1103,9 @@ msgstr "Göster" msgid "Enhancement" msgstr "GeliĹźtirme " -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "E-posta:" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "Çok sayfa" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1226,6 +1251,10 @@ msgstr "JPEG DCT sıkıştırması" msgid "pack bits" msgstr "bitleri paketle" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "indirge" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Ă–lçek ÇubuÄźu" @@ -1290,6 +1319,27 @@ msgstr "Yukarı taşı" msgid "Move item down" msgstr "AĹźağı taşı" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "POP3 otorizasyon" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "tarıyor" @@ -1299,6 +1349,10 @@ msgstr "tarıyor" msgid "Receiving %s data" msgstr "%s data alıyor" +#. PROGRESS_PAGE +msgid "page" +msgstr "sayfa" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Resmi aktarıyor" @@ -1361,11 +1415,11 @@ msgstr "Ă–nizlemeyi iptal et <Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" -"sakla-<Ctrl-s>, izle-<Ctrl-v>, fotokopi-<Ctrl-c>, fax-<Ctrl-f> veyamail-" -"<Ctrl-m>" +"izle-<Ctrl-v>, sakla-<Ctrl-s>,fotokopi-<Ctrl-c>, çoklusayfa-<Ctrl-m>,fax-" +"<Ctrl-f> veya email-<Ctrl-e>" #. DESC_XSANE_MEDIUM msgid "" @@ -1413,26 +1467,34 @@ 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_MAILPROJECT -msgid "Enter name of mail project" -msgstr "E-Posta projesinin adını girin" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" +msgstr "E-Posta projesinin adını girin " -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" -msgstr "E-Posta resmi için yeni isimgirin" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" +msgstr "E-Posta resmi için yeni isim girin" -#. DESC_MAILRECEIVER -msgid "Enter email address" -msgstr "E-posta adresi girin" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" +msgstr "E-posta adresi girin " -#. DESC_MAILSUBJECT -msgid "Enter subject of email" -msgstr "E-Posta konusu girin" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" +msgstr "E-Posta konusu girin " -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE 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" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "Çoklu sayfa için dosya tipini seçin" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "Ă–ncden belirlenen alan için yeni isim gir" @@ -1665,6 +1727,14 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\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" +"Yazıcı postscript 3 dilini anlamalı " + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Geçici dizin yolu" @@ -1688,6 +1758,10 @@ msgstr "EÄźer resim png olarak saklanırsa sıkıştırma" msgid "Minimum length of counter in filename" msgstr "Dosya adı sayacının mimum uzunluÄźu" +#. DESC_TIFF_ZIP_COMPRESSION +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Zip sıkıştırmalı tiff sıkıştırma oranı (indirgeme)" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "EÄźer 16 bit resim tiff olarak saklanacaksa sıkıştırma tipi" @@ -1715,6 +1789,19 @@ msgstr "" "EÄźer dosya adı sayacı otomatik olarak artırılıyorsa, kullanılan rakamlar " "atlanır" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "PDF dosyayı zlib algoritması ile sıkıştır (indirge)" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1827,14 +1914,9 @@ msgid "" msgstr "" "Xsane threshold aralığı ile tarayıcı threshold aralığını aynı yapacak rakam" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." -msgstr "" -"Otomatik DökĂĽman besyleyici için tarama kaynağını belirleyiniz. EÄźer tarama " -"kaynağı seçilirse, Xsane hata veya \"kağıt kalmadı\" mesajına kadar " -"tarayacaktır" +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" +msgstr "Taranacak sayfa adedi" #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1887,6 +1969,10 @@ 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)" +msgstr "Faks için zlib sıkıştırlmış postscript görĂĽntĂĽ yarat (flatdecode)" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "SMTP sunucusunun IP adresi veya Alan Adı" @@ -1895,17 +1981,28 @@ msgstr "SMTP sunucusunun IP adresi veya Alan Adı" msgid "port to connect to SMTP server" msgstr "SMTP Sunucusuna baÄźlanacak port" -#. DESC_MAIL_FROM -msgid "enter your email address" -msgstr "E-Posta adresinizi yazın" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" +msgstr "E-Posta adresinizi girin" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" -msgstr "Yanıtlama Adresini girin " +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" +msgstr "Yanıtlama adresini girin " -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" -msgstr "E-posta yollamadan önce POP3 sunucusunda otorizayon yap" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" +msgstr "E-posta yollamadan önce POP3 sunucusundan otorizayon iste" + +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "POP3 sunucusundaki kullanıcı adı" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "POP3 sunucusu için Ĺźifre" #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" @@ -1915,20 +2012,8 @@ msgstr "POP3 Sunucusunun IP adresini veya Alan Adını yazın" msgid "port to connect to POP3 server" msgstr "POP3 sunusunda baÄźlanılacak port" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "POP3 sunucusundaki kullanıcı adı" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "POP3 sunucusu için Ĺźifre" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "E-posta resmini görmek için çalıştırılacak komutu yazın" - -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "E-Posta HTML olarak yollandı, resmi yerleĹźtirmek için :<IMAGE>" #. DESC_OCR_COMMAND @@ -2151,8 +2236,12 @@ msgid "Filename too long" msgstr "Dosya adı çok uzun" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "Geçici dosya yaratılamadı" +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" @@ -2247,7 +2336,7 @@ msgstr "LIBJPEG hata veriyor" #. ERR_ZLIB msgid "ZLIB error or memory allocation problem" -msgstr "" +msgstr "ZLIB hatası veya hafıza paylaşımı hatası" #. ERR_UNKNOWN_TYPE msgid "unknown type" @@ -2277,10 +2366,6 @@ msgstr "Faks göstericisini çalıştıramadı:" msgid "Failed to execute fax command:" msgstr "faks komutunu çalıştıramadı:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "E-posta göstericisini çalıştıramadı:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "ocr komutunu çalıştıramadı:" @@ -2330,14 +2415,6 @@ msgstr "Ă–nizleme bit derinliÄźini kullanamaz" msgid "GIMP support missing" msgstr "GIMP desteÄźi kayıp" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "Geçici önizleme dosyaları yaratılamadı" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "Ă–nizleme dosyaları için dosya isimleri yaratılamadı" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "Fax projesi yaratılamadı" @@ -2466,8 +2543,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2500,7 +2578,8 @@ msgstr "" " -s, --save saklama modu aktif olarak baĹźla\n" " -c, --copy kopyalama modu aktif olarak baĹźla\n" " -f, --fax faks modu aktif olarak baĹźla\n" -" -m, --mail e-posta modu aktif olarak baĹźla\n" +" -e, --mail e-posta modu aktif olarak baĹźla\n" +"-m, --multipage çok sayfalı modunda baĹźla\n" " -n, --no-mode-selection xsane mod seçimi menĂĽsĂĽnĂĽ pasif kıl\n" "\n" "-, --Fixed sabit ana pencere boyutu (tercihler deÄźerinin " @@ -2679,65 +2758,74 @@ msgstr "Konica negatif VX 100" msgid "Rossmann negative HR 100" msgstr "Rossmann negatif HR 100" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "E-Posta projesi yaratılmadı" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" +msgstr "Proje yaratılmadı" + +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" +msgstr "Proje yaratıldı" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "E-Posta projesi yaratıldı" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" +msgstr "Proje deÄźiĹźtirildi" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "E-Posta projesi deÄźiĹźti" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" +msgstr "Projeyi okumada hata" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" -msgstr "E-Posta projesini okumada hata" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" +msgstr "Dosya saklama da hata" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" +msgstr "Dosya saklanıyor" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" +msgstr "Dosya sakla iptal edildi" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" +msgstr "Dosya saklandı" + +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "POP3 baÄźlantısı kurulamadı" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "POP3 login hatalı" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "SMTP baÄźlantısı yapılamadı" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "SMTP baÄźlantısı yapılamadı" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "Gönderen girdisi kabul edilmedi" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "Alıcı girdisi kabul edilmedi" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "Posta bilgisi kabul edilmedi" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" +msgstr "E-Posta bilgisi kabul edilmedi" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "Posta gönderiliyor" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" +msgstr "E-Posta gönderiliyor" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "Posta gönderildi" - -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "Faks projesi yaratılamadı" - -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Faks projesi yaratıldı" - -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Faks projesi deÄźiĹźtirildi" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" +msgstr "E-Posta gönderildi" #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2801,3 +2889,25 @@ 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ı" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "Geçici önizleme dosyaları yaratılamadı" + +#~ msgid "Could not create filenames for preview files" +#~ msgstr "Ă–nizleme dosyaları için dosya isimleri yaratılamadı" + +#, fuzzy +#~ msgid "POP3 authentication" +#~ msgstr "POP3 otorizasyon" + +#~ msgid "XSane mode" +#~ msgstr "Xsane modu" + +#~ msgid "POP3 user:" +#~ msgstr "POP3 kullanıcı:" + +#~ msgid "POP3 password:" +#~ msgstr "POP3 Ĺžifre:" Binary files differ@@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2004-08-26 23:33+0700\n" "Last-Translator: Trinh Minh Thanh <tmthanh@yahoo.com>\n" "Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n" @@ -84,18 +84,26 @@ msgstr "đổi tĂŞn trang fax" msgid "insert ps-file into fax" msgstr "chèn táşp tin ps vĂ o fax" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "dá»± án thĆ°" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "đổi tĂŞn ảnh thĆ°" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "chèn táşp tin vĂ o thĆ°" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "XĂła dá»± án" + # WINDOW_PRESET_AREA_RENAME #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" @@ -398,6 +406,11 @@ msgstr "Tạo dá»± án" msgid "Send project" msgstr "Gá»i dá»± án" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "LĆ°u ảnh" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "XĂła dá»± án" @@ -438,8 +451,9 @@ msgstr "Giá»›i hạn cân chỉnh" msgid "Fine mode" msgstr "Cháşż Ä‘á»™ tinh xảo" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "ThĆ° dạng html" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -454,6 +468,14 @@ 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 +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "LĆ°u 16bit pnm theo định dạng ascii" @@ -486,10 +508,6 @@ msgstr "Chọn trĆ°á»›c vĂąng quĂ©t" msgid "Autocorrect colors" msgstr "Tá»± Ä‘á»™ng hiệu chỉnh mĂ u" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "Chứng thá»±c POP3" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "DĂąng pipe tiáşżn trình đồ họa" @@ -506,14 +524,6 @@ msgstr "Thiáşżt bị hiện cĂł:" msgid "XSane options" msgstr "TĂąy chọn XSane" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "Cháşż Ä‘á»™ XSane" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "bĆ°á»›c" - #. TEXT_FILETYPE msgid "Type" msgstr "Loại" @@ -699,8 +709,9 @@ msgstr "" "nhĆ°ng khĂ´ng kèm theo bảo đảm nĂ o, tháşm chĂ khĂ´ng cĂł Ă˝ lĂ sáş˝\n" "đảm bảo cho việc thương mại hay cho má»™t mục Ä‘Ăch Ä‘áş·c biệt nĂ o.\n" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "ThĆ°:" #. TEXT_HOMEPAGE @@ -718,12 +729,13 @@ msgstr "Dịch thuáşt:" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "Dịch sang tiáşżng Việt bởi:\n" "Trịnh Minh Thanh\n" @@ -737,21 +749,34 @@ msgstr "0x0: 0KB" msgid "Scanned pages: " msgstr "Trang Ä‘ĂŁ quĂ©t: " -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "VÄn bản email:" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "ÄĂnh kèm:" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "Tình trạng dá»± án:" # TEXT_MAIL_FILETYPE -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "Loại táşp tin Ä‘Ănh kèm:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "Cách dĂąng:" + +# TEXT_MAIL_FILETYPE +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "Loại táşp tin Ä‘Ănh kèm:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -865,6 +890,10 @@ 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 +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "ThĆ° mục tạm" @@ -889,6 +918,11 @@ msgstr "NĂ©n ảnh PNG" msgid "Filename counter length" msgstr "Äá»™ dĂ i bá»™ Ä‘áşżm tĂŞn táşp tin" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "NĂ©n ảnh 8 bit TIFF" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "NĂ©n ảnh 16 bit TIFF" @@ -929,10 +963,6 @@ msgstr "Xanh da trời gamma Xem TrĆ°á»›c:" msgid "Threshold option:" msgstr "TĂąy chọn ngưỡng:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "Bá»™ Khay Nạp TĂ i Liệu Tá»± Äá»™ng:" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "Xem trĆ°á»›c khoảng pipette" @@ -985,6 +1015,10 @@ msgstr "Äáş·t máş·c định chương trình cho:" msgid "Viewer (Postscript):" msgstr "Trình xem (Postscript):" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "Máy chủ SMTP:" @@ -993,14 +1027,29 @@ msgstr "Máy chủ SMTP:" msgid "SMTP port:" msgstr "Cổng SMTP:" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "Từ:" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "Trả lời:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "Chứng thá»±c POP3" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "Cách dĂąng:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "Máşt kháş©u:" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "Máy chủ POP3:" @@ -1009,18 +1058,6 @@ msgstr "Máy chủ POP3:" msgid "POP3 port:" msgstr "Cổng POP3:" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "Người dĂąng POP3:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "Máşt kháş©u POP3:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "Trình xem (png):" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "Lệnh OCR:" @@ -1064,9 +1101,10 @@ msgstr "phương tiện má»›i" msgid "Save" msgstr "LĆ°u" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "Ảnh" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "Tệp" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1076,9 +1114,10 @@ msgstr "Sao chĂ©p" msgid "Fax" msgstr "Fax" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" -msgstr "ThĆ°" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" +msgstr "Email" #. NOTEBOOK_OCR_OPTIONS msgid "OCR" @@ -1092,9 +1131,9 @@ msgstr "Hiá»n thị" msgid "Enhancement" msgstr "Cải thiện" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "Email" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1240,6 +1279,11 @@ msgstr "NĂ©n JPEG DCT" msgid "pack bits" msgstr "gĂłi các bit" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "Äá» trá»…" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "Con trượt (Cân chỉnh)" @@ -1309,6 +1353,27 @@ msgstr "Chuyá»n mục lĂŞn" msgid "Move item down" msgstr "Chuyá»n mục xuống" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +msgid "no authentication" +msgstr "Chứng thá»±c POP3" + +#. 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "Äang quĂ©t" @@ -1318,6 +1383,11 @@ msgstr "Äang quĂ©t" msgid "Receiving %s data" msgstr "Äang nháşn dữ liệu %s" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "gĂłi tin" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "Äang truyá»n ảnh" @@ -1379,9 +1449,10 @@ msgid "Cancel preview scan <Alt-ESC>" msgstr "ThĂ´i quĂ©t Xem TrĆ°á»›c <Alt-Esc>" #. DESC_XSANE_MODE +#, fuzzy msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" "lĆ°u-<Ctrl-s>, xem-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> hay thĆ°-<Ctrl-m>" @@ -1432,27 +1503,42 @@ 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_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "Nháşp tĂŞn dá»± án thĆ°" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "Nháşp tĂŞn má»›i cho ảnh trong thĆ°" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "Nháşp địa chỉ thĆ°" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "Nháşp chủ Ä‘á» thĆ°" # DESC_MAIL_FILETYPE -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" 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Ć°" + +# DESC_MAIL_FILETYPE +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "Chọn loại táşp tin cho ảnh Ä‘Ănh kèm" + # DESC_PRESET_AREA_RENAME #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" @@ -1684,6 +1770,12 @@ 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 +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "Äường dáş«n tá»›i thĆ° mục tạm" @@ -1706,6 +1798,11 @@ msgstr "NĂ©n náşżu ảnh được lĆ°u dạng png" msgid "Minimum length of counter in filename" msgstr "Äá»™ dĂ i tối thiá»u của bá»™ Ä‘áşżm trong tĂŞn táşp tin" +#. DESC_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "Compression rate for zip compressed tiff (deflate)" +msgstr "Kiá»u nĂ©n náşżu ảnh 8 bit được lĆ°u lĂ tiff" + #. DESC_TIFF_COMPRESSION_16 msgid "Compression type if 16 bit image is saved as tiff" msgstr "Kiá»u nĂ©n náşżu ảnh 16 bit được lĆ°u lĂ tiff" @@ -1733,6 +1830,16 @@ 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 +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1841,13 +1948,9 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "Offset Ä‘á» tạo khoảng ngưỡng của XSane vĂ máy quĂ©t lĂ nhĆ° nhau" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" -"Chọn nguồn quĂ©t cho khay nạp tĂ i liệu tá»± Ä‘á»™ng. Náşżu nguồn quĂ©t nĂ y được XSane " -"chọn quĂ©t Ä‘áşżn khi \"Háşżt giấy\" hay khi gáş·p lá»—i." #. DESC_PREVIEW_PIPETTE_RANGE msgid "dimension of square that is used to average color for pipette function" @@ -1899,6 +2002,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "Äịa chỉ IP hay tĂŞn miá»n của máy chủ SMTP" @@ -1907,18 +2014,31 @@ msgstr "Äịa chỉ IP hay tĂŞn miá»n của máy chủ SMTP" msgid "port to connect to SMTP server" msgstr "cổng nối tá»›i máy chủ SMTP" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "nháşp địa chỉ email của bạn" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_REPLY_TO +#, fuzzy +msgid "enter e-mail address for replied e-mails" msgstr "nháşp địa chỉ email cho các email được trả lời" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_AUTHENTICATION +#, fuzzy +msgid "Type of authentication before sending e-mail" msgstr "Chứng thá»±c tại máy chủ POP3 trĆ°á»›c khi gá»i thĆ°" +#. DESC_EMAIL_AUTH_USER +#, fuzzy +msgid "user name for e-mail server" +msgstr "tĂŞn người dĂąng cho máy chủ POP3" + +#. DESC_EMAIL_AUTH_PASS +#, fuzzy +msgid "password for e-mail server" +msgstr "máşt kháş©u cho máy chủ POP3" + #. DESC_POP3_SERVER msgid "IP Address or Domain name of POP3 server" msgstr "Äịa chỉ IP hay tĂŞn miá»n của máy chủ POP3" @@ -1927,21 +2047,10 @@ msgstr "Äịa chỉ IP hay tĂŞn miá»n của máy chủ POP3" msgid "port to connect to POP3 server" msgstr "cổng nối tá»›i máy chủ POP3" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "tĂŞn người dĂąng cho máy chủ POP3" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "máşt kháş©u cho máy chủ POP3" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "Nháşp lệnh được thá»±c thi Ä‘á» xem ảnh trong thĆ°" - # DESC_HTML_MAIL -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "ThĆ° gá»i theo phương thức HTML, thay ảnh báş±ng: <IMAGE>" #. DESC_OCR_COMMAND @@ -2167,8 +2276,12 @@ msgid "Filename too long" msgstr "TĂŞn táşp tin quá dĂ i" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "KhĂ´ng tạo được táşp tin tạm thời" +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" @@ -2294,10 +2407,6 @@ msgstr "KhĂ´ng thá»±c thi được trình xem Fax:" msgid "Failed to execute fax command:" msgstr "KhĂ´ng thá»±c thi được lệnh Fax:" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "KhĂ´ng thá»±c thi được trình xem ảnh trong thĆ°:" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "KhĂ´ng thá»±c thi được lệnh OCR:" @@ -2347,14 +2456,6 @@ msgstr "Xem trĆ°á»›c khĂ´ng thá» xá» lĂ˝ Ä‘á»™ sâu bit" msgid "GIMP support missing" msgstr "Thiáşżu há»— trợ GIMP" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "KhĂ´ng thá» tạo táşp tin xem trĆ°á»›c tạm thời" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "KhĂ´ng thá» tạo tĂŞn cho táşp tin xem trĆ°á»›c" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "KhĂ´ng thá» tạo dá»± án fax" @@ -2466,6 +2567,7 @@ msgid "[OPTION]... [DEVICE]" msgstr "[TĂ™Y CHỌN]... [THIáşľT BỊ]" #. TEXT_HELP +#, fuzzy msgid "" "Start up graphical user interface to access SANE (Scanner Access Now Easy) " "devices.\n" @@ -2482,8 +2584,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2698,81 +2801,100 @@ msgstr "Ă‚m bản Konica VX 100" msgid "Rossmann negative HR 100" msgstr "Ă‚m bản Rossmann HR 100" -# TEXT_MAIL_STATUS_NOT_CREATED -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" -msgstr "Mail project chĆ°a tạo" +# TEXT_FAX_STATUS_NOT_CREATED +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" +msgstr "ChĆ°a tạo Fax project" -# TEXT_MAIL_STATUS_CREATED -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" -msgstr "Mail project được tạo" +# TEXT_FAX_STATUS_CREATED +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" +msgstr "Fax project Ä‘ĂŁ tạo" -# TEXT_MAIL_STATUS_CHANGED -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" -msgstr "Mail project Ä‘ĂŁ đổi" +# TEXT_FAX_STATUS_CHANGED +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" +msgstr "Fax project Ä‘ĂŁ thay đổi" # TEXT_MAIL_STATUS_ERR_READ_PROJECT -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" msgstr "Lá»—i đọc mailproject" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "Äang lĆ°u ảnh" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "Äang lĆ°u ảnh" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "Äang lĆ°u ảnh" + +# TEXT_MAIL_STATUS_SENT +#. TEXT_PROJECT_STATUS_FILE_SAVED +#, fuzzy +msgid "File has been saved" +msgstr "ThĆ° Ä‘ĂŁ được gá»i" + # TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "KhĂ´ng káşżt nối POP3 được" # TEXT_MAIL_STATUS_POP3_LOGIN_FAILED -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "KhĂ´ng Ä‘Äng nháşp POP3 được" # TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +#, fuzzy +msgid "ASMTP authentication failed" +msgstr "KhĂ´ng káşżt nối SMTP được" + +# TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "KhĂ´ng káşżt nối SMTP được" # TEXT_MAIL_STATUS_SMTP_ERR_FROM -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "KhĂ´ng chấp nháşn mục Từ" # TEXT_MAIL_STATUS_SMTP_ERR_RCPT -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "KhĂ´ng chấp nháşn mục người nháşn" # TEXT_MAIL_STATUS_SMTP_ERR_DATA -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" msgstr "KhĂ´ng chấp nháşn dữ liệu thĆ°" # TEXT_MAIL_STATUS_SENDING -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SENDING +#, fuzzy +msgid "Sending e-mail" msgstr "Gá»i thĆ°" # TEXT_MAIL_STATUS_SENT -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SENT +#, fuzzy +msgid "E-mail has been sent" msgstr "ThĆ° Ä‘ĂŁ được gá»i" -# TEXT_FAX_STATUS_NOT_CREATED -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "ChĆ°a tạo Fax project" - -# TEXT_FAX_STATUS_CREATED -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" -msgstr "Fax project Ä‘ĂŁ tạo" - -# TEXT_FAX_STATUS_CHANGED -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" -msgstr "Fax project Ä‘ĂŁ thay đổi" - # TEXT_FAX_STATUS_QUEUEING_FAX #. TEXT_FAX_STATUS_QUEUEING_FAX msgid "Queueing Fax" @@ -2837,3 +2959,99 @@ 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" + +#~ msgid "Could not create temporary preview files" +#~ msgstr "KhĂ´ng thá» tạo táşp tin xem trĆ°á»›c tạm thời" + +#~ 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 "POP3 authentication" +#~ msgstr "Chứng thá»±c POP3" + +#~ msgid "XSane mode" +#~ msgstr "Cháşż Ä‘á»™ XSane" + +#~ msgid "POP3 user:" +#~ msgstr "Người dĂąng POP3:" + +#~ msgid "POP3 password:" +#~ msgstr "Máşt kháş©u POP3:" + +#~ msgid "Automatic Document Feeder Modus:" +#~ msgstr "Bá»™ Khay Nạp TĂ i Liệu Tá»± Äá»™ng:" + +#~ msgid "" +#~ "Select scansource for Automatic Document feeder. If this scansource is " +#~ "selected XSane scans until \"out of paper\" or error." +#~ msgstr "" +#~ "Chọn nguồn quĂ©t cho khay nạp tĂ i liệu tá»± Ä‘á»™ng. Náşżu nguồn quĂ©t nĂ y được " +#~ "XSane chọn quĂ©t Ä‘áşżn khi \"Háşżt giấy\" hay khi gáş·p lá»—i." + +# TEXT_MAIL_STATUS_NOT_CREATED +#, fuzzy +#~ msgid "E-mail project not created" +#~ msgstr "Mail project chĆ°a tạo" + +# TEXT_MAIL_STATUS_CREATED +#, fuzzy +#~ msgid "E-mail project created" +#~ msgstr "Mail project được tạo" + +# TEXT_MAIL_STATUS_CHANGED +#, fuzzy +#~ msgid "E-mail project changed" +#~ msgstr "Mail project Ä‘ĂŁ đổi" + +# TEXT_MAIL_STATUS_NOT_CREATED +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "Mail project chĆ°a tạo" + +# TEXT_MAIL_STATUS_CREATED +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "Mail project được tạo" + +# TEXT_MAIL_STATUS_CHANGED +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "Mail project Ä‘ĂŁ đổi" + +# TEXT_MAIL_STATUS_ERR_READ_PROJECT +#, fuzzy +#~ msgid "Error reading multipage project" +#~ msgstr "Lá»—i đọc mailproject" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "Äang lĆ°u ảnh" + +# TEXT_MAIL_STATUS_CREATED +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "Mail project được tạo" + +#~ msgid "Image" +#~ msgstr "Ảnh" + +#~ msgid "Viewer (png):" +#~ msgstr "Trình xem (png):" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "Nháşp lệnh được thá»±c thi Ä‘á» xem ảnh trong thĆ°" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "KhĂ´ng thá»±c thi được trình xem ảnh trong thĆ°:" + +#~ msgid "Step" +#~ msgstr "bĆ°á»›c" + +#~ msgid "Mail" +#~ msgstr "ThĆ°" diff --git a/po/xsane.pot b/po/xsane.pot index 697ba84..323832f 100644 --- a/po/xsane.pot +++ b/po/xsane.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -81,16 +81,20 @@ msgstr "" msgid "insert ps-file into fax" msgstr "" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +msgid "E-mail project" msgstr "" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +msgid "rename e-mail image" msgstr "" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +msgid "insert file into e-mail" +msgstr "" + +#. WINDOW_MULTIPAGE_PROJECT +msgid "multipage project" msgstr "" #. WINDOW_PRESET_AREA_RENAME @@ -381,6 +385,10 @@ msgstr "" msgid "Send project" msgstr "" +#. BUTTON_SAVE_MULTIPAGE +msgid "Save multipage file" +msgstr "" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "" @@ -421,8 +429,8 @@ msgstr "" msgid "Fine mode" msgstr "" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +msgid "HTML e-mail" msgstr "" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -437,6 +445,14 @@ msgstr "" msgid "Skip existing filenames" msgstr "" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "" @@ -469,10 +485,6 @@ msgstr "" msgid "Autocorrect colors" msgstr "" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "" @@ -489,14 +501,6 @@ msgstr "" msgid "XSane options" msgstr "" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "" - #. TEXT_FILETYPE msgid "Type" msgstr "" @@ -663,8 +667,8 @@ msgid "" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +msgid "E-mail:" msgstr "" #. TEXT_HOMEPAGE @@ -682,12 +686,12 @@ msgstr "" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" #. TEXT_INFO_BOX @@ -698,20 +702,28 @@ msgstr "" msgid "Scanned pages: " msgstr "" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +msgid "E-mail text:" msgstr "" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. 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 @@ -824,6 +836,10 @@ msgstr "" msgid "Printer gamma blue:" msgstr "" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "" @@ -848,6 +864,10 @@ msgstr "" msgid "Filename counter length" msgstr "" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +msgid "TIFF zip compression rate" +msgstr "" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "" @@ -888,10 +908,6 @@ msgstr "" msgid "Threshold option:" msgstr "" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "" @@ -944,6 +960,10 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "" @@ -952,32 +972,32 @@ msgstr "" msgid "SMTP port:" msgstr "" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "" -#. TEXT_SETUP_POP3_SERVER -msgid "POP3 server:" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +msgid "E-mail authentication" msgstr "" -#. TEXT_SETUP_POP3_PORT -msgid "POP3 port:" +#. TEXT_SETUP_EMAIL_AUTH_USER +msgid "User:" msgstr "" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" +#. TEXT_SETUP_EMAIL_AUTH_PASS +msgid "Password:" msgstr "" -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" +#. TEXT_SETUP_POP3_SERVER +msgid "POP3 server:" msgstr "" -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" +#. TEXT_SETUP_POP3_PORT +msgid "POP3 port:" msgstr "" #. TEXT_SETUP_OCR_COMMAND @@ -1023,8 +1043,8 @@ msgstr "" msgid "Save" msgstr "" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" +#. NOTEBOOK_FILETYPE_OPTIONS +msgid "Filetype" msgstr "" #. NOTEBOOK_COPY_OPTIONS @@ -1035,8 +1055,8 @@ msgstr "" msgid "Fax" msgstr "" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +msgid "E-mail" msgstr "" #. NOTEBOOK_OCR_OPTIONS @@ -1051,8 +1071,8 @@ msgstr "" msgid "Enhancement" msgstr "" -#. MENU_ITEM_MAIL -msgid "Email" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS @@ -1199,6 +1219,10 @@ msgstr "" msgid "pack bits" msgstr "" +#. MENU_ITEM_TIFF_COMP_DEFLATE +msgid "deflate" +msgstr "" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "" @@ -1263,6 +1287,26 @@ msgstr "" 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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "" @@ -1272,6 +1316,10 @@ msgstr "" msgid "Receiving %s data" msgstr "" +#. PROGRESS_PAGE +msgid "page" +msgstr "" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "" @@ -1334,8 +1382,8 @@ msgstr "" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" #. DESC_XSANE_MEDIUM @@ -1377,26 +1425,34 @@ msgstr "" msgid "Enter receiver phone number or address" msgstr "" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +msgid "Enter name of e-mail project" msgstr "" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +msgid "Enter new name for e-mail image" msgstr "" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +msgid "Enter e-mail address" msgstr "" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +msgid "Enter subject of e-mail" msgstr "" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "" +#. DESC_MULTIPAGE_PROJECT +msgid "Enter name of multipage project" +msgstr "" + +#. DESC_MULTIPAGE_FILETYPE +msgid "Select filetype for multipage file" +msgstr "" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "" @@ -1616,6 +1672,12 @@ msgstr "" msgid "Additional gamma value for blue component for photocopy" msgstr "" +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "" @@ -1637,6 +1699,10 @@ msgstr "" 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 "" @@ -1662,6 +1728,16 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1760,10 +1836,8 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" #. DESC_PREVIEW_PIPETTE_RANGE @@ -1815,6 +1889,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "" @@ -1823,40 +1901,36 @@ msgstr "" msgid "port to connect to SMTP server" msgstr "" -#. DESC_MAIL_FROM -msgid "enter your email address" -msgstr "" - -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. DESC_EMAIL_FROM +msgid "enter your e-mail address" msgstr "" -#. DESC_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. DESC_EMAIL_REPLY_TO +msgid "enter e-mail address for replied e-mails" msgstr "" -#. DESC_POP3_SERVER -msgid "IP Address or Domain name of POP3 server" +#. DESC_EMAIL_AUTHENTICATION +msgid "Type of authentication before sending e-mail" msgstr "" -#. DESC_POP3_PORT -msgid "port to connect to POP3 server" +#. DESC_EMAIL_AUTH_USER +msgid "user name for e-mail server" msgstr "" -#. DESC_POP3_USER -msgid "user name for POP3 server" +#. DESC_EMAIL_AUTH_PASS +msgid "password for e-mail server" msgstr "" -#. DESC_POP3_PASS -msgid "password for POP3 server" +#. DESC_POP3_SERVER +msgid "IP Address or Domain name of POP3 server" msgstr "" -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" +#. DESC_POP3_PORT +msgid "port to connect to POP3 server" msgstr "" -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "" #. DESC_OCR_COMMAND @@ -2073,7 +2147,11 @@ msgid "Filename too long" msgstr "" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary 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 @@ -2197,10 +2275,6 @@ msgstr "" msgid "Failed to execute fax command:" msgstr "" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "" @@ -2250,14 +2324,6 @@ msgstr "" msgid "GIMP support missing" msgstr "" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "" @@ -2381,8 +2447,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2554,64 +2621,72 @@ msgstr "" msgid "Rossmann negative HR 100" msgstr "" -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" +#. TEXT_PROJECT_STATUS_NOT_CREATED +msgid "Project not created" msgstr "" -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" +#. TEXT_PROJECT_STATUS_CREATED +msgid "Project created" msgstr "" -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" +#. TEXT_PROJECT_STATUS_CHANGED +msgid "Project changed" msgstr "" -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +msgid "Error reading project" msgstr "" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED -msgid "POP3 connection failed" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +msgid "Error saving file" msgstr "" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED -msgid "POP3 login failed" +#. TEXT_PROJECT_STATUS_FILE_SAVING +msgid "Saving file" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED -msgid "SMTP connection failed" +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +msgid "Aborted saving file" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM -msgid "From entry not accepted" +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT -msgid "Receiver entry not accepted" +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED +msgid "POP3 connection failed" +msgstr "" + +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED +msgid "POP3 login failed" +msgstr "" + +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED +msgid "SMTP connection failed" msgstr "" -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM +msgid "From entry not accepted" msgstr "" -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT +msgid "Receiver entry not accepted" msgstr "" -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +msgid "E-mail data not accepted" msgstr "" -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "" -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "" #. TEXT_FAX_STATUS_QUEUEING_FAX Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XSANE 0.96\n" -"POT-Creation-Date: 2005-10-23 00:20+0200\n" +"POT-Creation-Date: 2006-01-07 00:26+0100\n" "PO-Revision-Date: 2003-03-27 12:00+0100\n" "Last-Translator: Wang leolarrel <leolarrel@yahoo.com.tw>\n" "Language-Team: zh_TW<zh_TW@li.org>\n" @@ -79,18 +79,26 @@ msgstr "ć›´ĺŤĺ‚łçśźĺ°ćˇ" msgid "insert ps-file into fax" msgstr "插入ps檔ćˇĺ°ĺ‚łçśź" -#. WINDOW_MAIL_PROJECT -msgid "mail project" +#. WINDOW_EMAIL_PROJECT +#, fuzzy +msgid "E-mail project" msgstr "é›»ĺéµä»¶ĺ°ćˇ" -#. WINDOW_MAIL_RENAME -msgid "rename mail image" +#. WINDOW_EMAIL_RENAME +#, fuzzy +msgid "rename e-mail image" msgstr "ć›´ĺŤé›»ĺéµä»¶ĺ°ćˇ" -#. WINDOW_MAIL_INSERT -msgid "insert file into mail" +#. WINDOW_EMAIL_INSERT +#, fuzzy +msgid "insert file into e-mail" msgstr "插入檔ćˇĺ°é›»ĺéµä»¶" +#. WINDOW_MULTIPAGE_PROJECT +#, fuzzy +msgid "multipage project" +msgstr "ĺŞé™¤ĺ°ćˇ" + #. WINDOW_PRESET_AREA_RENAME msgid "rename preset area" msgstr "ć›´ĺŤé č¨ĺŤ€" @@ -386,6 +394,11 @@ msgstr "建立ĺ°ćˇ" msgid "Send project" msgstr "ĺ‚łé€ĺ°ćˇ" +#. BUTTON_SAVE_MULTIPAGE +#, fuzzy +msgid "Save multipage file" +msgstr "儲ĺĺ˝±ĺŹ" + #. BUTTON_DELETE_PROJECT msgid "Delete project" msgstr "ĺŞé™¤ĺ°ćˇ" @@ -426,8 +439,9 @@ msgstr "" msgid "Fine mode" msgstr "" -#. RADIO_BUTTON_HTML_MAIL -msgid "HTML mail" +#. RADIO_BUTTON_HTML_EMAIL +#, fuzzy +msgid "HTML e-mail" msgstr "HTMLéµä»¶" #. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT @@ -442,6 +456,14 @@ msgstr "覆寫č¦ĺ‘Š" msgid "Skip existing filenames" msgstr "çśç•Ąĺ·˛ĺ在的檔ćˇ" +#. RADIO_BUTTON_SAVE_PS_FLATDECODED +msgid "Save postscript zlib compressed (ps level 3)" +msgstr "" + +#. RADIO_BUTTON_SAVE_PDF_FLATDECODED +msgid "Save PDF zlib compressed" +msgstr "" + #. RADIO_BUTTON_SAVE_PNM16_AS_ASCII msgid "Save 16bit pnm in ascii format" msgstr "儲ĺ16位ĺ…pnm在asciić ĽĺĽŹ" @@ -474,10 +496,6 @@ msgstr "é ĺ…é¸ć“‡ćŽćŹŹĺŤ€" msgid "Autocorrect colors" msgstr "自動修ćŁéˇŹč‰˛" -#. RADIO_BUTTON_POP3_AUTHENTIFICATION -msgid "POP3 authentification" -msgstr "" - #. RADIO_BUTTON_OCR_USE_GUI_PIPE msgid "Use GUI progress pipe" msgstr "" @@ -494,14 +512,6 @@ msgstr "可用的裝置有:" msgid "XSane options" msgstr "XSane é¸é …" -#. TEXT_XSANE_MODE -msgid "XSane mode" -msgstr "XSane 模式" - -#. TEXT_FILENAME_COUNTER_STEP -msgid "Step" -msgstr "ćĄé©ź" - #. TEXT_FILETYPE msgid "Type" msgstr "ĺž‹ć…‹" @@ -672,8 +682,9 @@ msgid "" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -#. TEXT_EMAIL -msgid "Email:" +#. TEXT_EMAIL_ADR +#, fuzzy +msgid "E-mail:" msgstr "é›»ĺéµä»¶" #. TEXT_HOMEPAGE @@ -691,12 +702,13 @@ msgstr "çż»čŻ" #. Please translate this to something like #. translation to YOUR LANGUAGE\n #. by YOUR NAME\n -#. Email: your.name@yourdomain.com\n +#. E-mail: your.name@yourdomain.com\n #. TEXT_TRANSLATION_INFO +#, fuzzy msgid "" "untranslated original english text\n" "by Oliver Rauch\n" -"Email: Oliver.Rauch@rauch-domain.de\n" +"E-mail: Oliver.Rauch@rauch-domain.de\n" msgstr "" "çż»čŻ: 王耀仲\n" "如有任何翻čŻçš„問題,ć–者您有更貼ĺ‡çš„翻法,č«‹ç”±ä¸‹ĺ— e-mail čŻçµˇ\n" @@ -710,20 +722,32 @@ msgstr "" msgid "Scanned pages: " msgstr "ćŽćŹŹçš„é 面" -#. TEXT_MAIL_TEXT -msgid "Email text:" +#. TEXT_EMAIL_TEXT +#, fuzzy +msgid "E-mail text:" msgstr "éµä»¶çš„內容" #. TEXT_ATTACHMENTS msgid "Attachments:" msgstr "附件" -#. TEXT_MAIL_STATUS +#. TEXT_EMAIL_STATUS msgid "Project status:" msgstr "ĺ°ćˇç‹€ć…‹" -#. TEXT_MAIL_FILETYPE -msgid "Mail image filetype:" +#. TEXT_EMAIL_FILETYPE +#, fuzzy +msgid "E-mail image filetype:" +msgstr "信件影ĺŹćŞ”ćˇĺž‹ć…‹:" + +#. TEXT_PAGES +#, fuzzy +msgid "Pages:" +msgstr "使用:" + +#. TEXT_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Multipage document filetype:" msgstr "信件影ĺŹćŞ”ćˇĺž‹ć…‹:" #. TEXT_MEDIUM_DEFINITION_NAME @@ -837,6 +861,10 @@ msgstr "ĺ—表機 ç¶ č‰˛gamma" msgid "Printer gamma blue:" msgstr "ĺ—表機 藍色gamma" +#. TEXT_SETUP_PRINTER_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for printing" +msgstr "" + #. TEXT_SETUP_TMP_PATH msgid "Temporary directory" msgstr "ćš«ĺ目錄" @@ -861,6 +889,11 @@ msgstr "PNGĺ˝±ĺŹĺŁ“縮" msgid "Filename counter length" msgstr "檔ĺŤč¨ć•¸é•·ĺş¦" +#. TEXT_SETUP_TIFF_ZIP_COMPRESSION +#, fuzzy +msgid "TIFF zip compression rate" +msgstr "TIFF 8 位ĺ…ĺ˝±ĺŹĺŁ“縮" + #. TEXT_SETUP_TIFF_COMPRESSION_16 msgid "TIFF 16 bit image compression" msgstr "TIFF 16 位ĺ…ĺ˝±ĺŹĺŁ“縮" @@ -901,10 +934,6 @@ msgstr "é 覽 藍色gamma" msgid "Threshold option:" msgstr "é‚Šç•Śé¸é …:" -#. TEXT_SETUP_ADF_MODE -msgid "Automatic Document Feeder Modus:" -msgstr "" - #. TEXT_SETUP_PREVIEW_PIPETTE_RANGE msgid "Preview pipette range" msgstr "é 覽ĺ¸ĺŹ–範圍" @@ -957,6 +986,10 @@ msgstr "" msgid "Viewer (Postscript):" msgstr "檢視器(Postscript)" +#. TEXT_SETUP_FAX_PS_FLATDECODED +msgid "Create zlib compressed postscript image (ps level 3) for fax" +msgstr "" + #. TEXT_SETUP_SMTP_SERVER msgid "SMTP server:" msgstr "SMTP伺服器:" @@ -965,14 +998,29 @@ msgstr "SMTP伺服器:" msgid "SMTP port:" msgstr "SMTPé€šč¨Šĺź :" -#. TEXT_SETUP_MAIL_FROM +#. TEXT_SETUP_EMAIL_FROM msgid "From:" msgstr "ĺľž" -#. TEXT_SETUP_MAIL_REPLY_TO +#. TEXT_SETUP_EMAIL_REPLY_TO msgid "Reply to:" msgstr "回覆ĺ°" +#. TEXT_SETUP_EMAIL_AUTHENTICATION +#, fuzzy +msgid "E-mail authentication" +msgstr "éµä»¶çš„內容" + +#. TEXT_SETUP_EMAIL_AUTH_USER +#, fuzzy +msgid "User:" +msgstr "使用:" + +#. TEXT_SETUP_EMAIL_AUTH_PASS +#, fuzzy +msgid "Password:" +msgstr "密碼" + #. TEXT_SETUP_POP3_SERVER msgid "POP3 server:" msgstr "POP3 伺服器:" @@ -981,18 +1029,6 @@ msgstr "POP3 伺服器:" msgid "POP3 port:" msgstr "POP3é€šč¨Šĺź :" -#. TEXT_SETUP_POP3_USER -msgid "POP3 user:" -msgstr "POP3 帳號:" - -#. TEXT_SETUP_POP3_PASS -msgid "POP3 password:" -msgstr "POP3密碼:" - -#. TEXT_SETUP_MAIL_VIEWER -msgid "Viewer (png):" -msgstr "檢視器(png)" - #. TEXT_SETUP_OCR_COMMAND msgid "OCR Command:" msgstr "OCR 命令" @@ -1036,9 +1072,10 @@ msgstr "" msgid "Save" msgstr "儲ĺ" -#. NOTEBOOK_IMAGE_OPTIONS -msgid "Image" -msgstr "ĺ˝±ĺŹ" +#. NOTEBOOK_FILETYPE_OPTIONS +#, fuzzy +msgid "Filetype" +msgstr "檔ćˇ" #. NOTEBOOK_COPY_OPTIONS msgid "Copy" @@ -1048,8 +1085,9 @@ msgstr "複製" msgid "Fax" msgstr "ĺ‚łçśź" -#. NOTEBOOK_MAIL_OPTIONS -msgid "Mail" +#. NOTEBOOK_EMAIL_OPTIONS +#, fuzzy +msgid "E-mail" msgstr "é›»ĺéµä»¶" #. NOTEBOOK_OCR_OPTIONS @@ -1064,9 +1102,9 @@ msgstr "顯示" msgid "Enhancement" msgstr "增強" -#. MENU_ITEM_MAIL -msgid "Email" -msgstr "é›»ĺéµä»¶" +#. MENU_ITEM_MULTIPAGE +msgid "Multipage" +msgstr "" #. MENU_ITEM_SHOW_TOOLTIPS msgid "Show tooltips" @@ -1214,6 +1252,11 @@ msgstr "" msgid "pack bits" msgstr "" +#. MENU_ITEM_TIFF_COMP_DEFLATE +#, fuzzy +msgid "deflate" +msgstr "延é˛" + #. MENU_ITEM_RANGE_SCALE msgid "Slider (Scale)" msgstr "滑棒(Scale)" @@ -1283,6 +1326,27 @@ msgstr "往上移動" msgid "Move item down" msgstr "往下移動" +#. MENU_ITEM_AUTH_NONE +#, fuzzy +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 "" + #. PROGRESS_SCANNING msgid "Scanning" msgstr "ćŽćŹŹä¸" @@ -1292,6 +1356,11 @@ msgstr "ćŽćŹŹä¸" msgid "Receiving %s data" msgstr "接收%s資料" +#. PROGRESS_PAGE +#, fuzzy +msgid "page" +msgstr "包裝" + #. PROGRESS_TRANSFERING_DATA msgid "Transfering image" msgstr "傳輸影ĺŹä¸" @@ -1354,8 +1423,8 @@ msgstr "取ć¶é 覽影ĺŹ<Alt-ESC>" #. DESC_XSANE_MODE msgid "" -"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or mail-<Ctrl-" -"m>" +"viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, multipage-<Ctrl-m>, fax-" +"<Ctrl-f> or e-mail-<Ctrl-e>" msgstr "" #. DESC_XSANE_MEDIUM @@ -1397,26 +1466,40 @@ msgstr "輸入傳真ĺ°ćˇçš„ć–°ĺŤç¨±" msgid "Enter receiver phone number or address" msgstr "輸入接收的電話號碼ć–位址" -#. DESC_MAILPROJECT -msgid "Enter name of mail project" +#. DESC_EMAIL_PROJECT +#, fuzzy +msgid "Enter name of e-mail project" msgstr "輸入éµä»¶ĺ°ćˇçš„ĺŤç¨±" -#. DESC_MAILIMAGENAME -msgid "Enter new name for mail image" +#. DESC_EMAIL_IMAGENAME +#, fuzzy +msgid "Enter new name for e-mail image" msgstr "輸入éµä»¶ĺ°ćˇçš„ć–°ĺŤç¨±" -#. DESC_MAILRECEIVER -msgid "Enter email address" +#. DESC_EMAIL_RECEIVER +#, fuzzy +msgid "Enter e-mail address" msgstr "輸入éµä»¶ä˝Ťĺť€" -#. DESC_MAILSUBJECT -msgid "Enter subject of email" +#. DESC_EMAIL_SUBJECT +#, fuzzy +msgid "Enter subject of e-mail" msgstr "輸入éµä»¶çš„標題" -#. DESC_MAIL_FILETYPE +#. DESC_EMAIL_FILETYPE msgid "Select filetype for image attachments" msgstr "" +#. DESC_MULTIPAGE_PROJECT +#, fuzzy +msgid "Enter name of multipage project" +msgstr "輸入éµä»¶ĺ°ćˇçš„ĺŤç¨±" + +#. DESC_MULTIPAGE_FILETYPE +#, fuzzy +msgid "Select filetype for multipage file" +msgstr "ç‚şOCRć–‡ĺ—檔é¸ć“‡čĽ¸ĺ‡şćŞ”ĺŤ" + #. DESC_PRESET_AREA_RENAME msgid "Enter new name for preset area" msgstr "輸入é č¨ĺŤ€çš„ć–°ĺŤç¨±" @@ -1640,6 +1723,12 @@ msgstr "" msgid "Additional gamma value for blue component for photocopy" msgstr "" +#. DESC_PRINTER_PS_FLATDECODED +msgid "" +"Create zlib compressed postscript image for printer (flatdecode).\n" +"The printer has to understand postscript level 3!" +msgstr "" + #. DESC_TMP_PATH msgid "Path to temp directory" msgstr "ćš«ĺ目錄的路徑" @@ -1661,6 +1750,10 @@ msgstr "如果ĺćpng檔的話,就壓縮" 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 "" @@ -1686,6 +1779,16 @@ msgid "" "If filename counter is automatically increased, used numbers are skipped" msgstr "" +#. DESC_SAVE_PS_FLATDECODED +msgid "" +"compress postscript image with zlib algorithm (flatdecode). 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)." +msgstr "" + #. DESC_SAVE_PNM16_AS_ASCII msgid "" "When a 16 bit image shall be saved in pnm format then use ascii format " @@ -1784,10 +1887,8 @@ msgid "" "Offset to make XSane threshold range and scanner threshold range the same" msgstr "" -#. DESC_ADF_MODE -msgid "" -"Select scansource for Automatic Document feeder. If this scansource is " -"selected XSane scans until \"out of paper\" or error." +#. DESC_ADF_PAGES_MAX +msgid "Number of pages to scan" msgstr "" #. DESC_PREVIEW_PIPETTE_RANGE @@ -1839,6 +1940,10 @@ 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)" +msgstr "" + #. DESC_SMTP_SERVER msgid "IP Address or Domain name of SMTP server" msgstr "IP 位址ć–SMTP伺服器的主機ĺŤç¨±" @@ -1847,16 +1952,27 @@ msgstr "IP 位址ć–SMTP伺服器的主機ĺŤç¨±" msgid "port to connect to SMTP server" msgstr "" -#. DESC_MAIL_FROM -msgid "enter your email address" +#. DESC_EMAIL_FROM +#, fuzzy +msgid "enter your e-mail address" msgstr "čĽ¸ĺ…Ąä˝ çš„äżˇä»¶ä˝Ťĺť€" -#. DESC_MAIL_REPLY_TO -msgid "enter email address for replied emails" +#. 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_POP3_AUTHENTIFICATION -msgid "Authentificate at POP3 server before sending mail" +#. 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 @@ -1867,21 +1983,10 @@ msgstr "" msgid "port to connect to POP3 server" msgstr "" -#. DESC_POP3_USER -msgid "user name for POP3 server" -msgstr "" - -#. DESC_POP3_PASS -msgid "password for POP3 server" -msgstr "" - -#. DESC_MAIL_VIEWER -msgid "Enter command to be executed to view a mail image" -msgstr "輸入當檢視一個éµä»¶ĺ˝±ĺŹć™‚č¦ĺź·čˇŚçš„命令" - # -#. DESC_HTML_MAIL -msgid "Mail is sent in html mode, place image with: <IMAGE>" +#. DESC_HTML_EMAIL +#, fuzzy +msgid "E-mail is sent in html mode, place image with: <IMAGE>" msgstr "éµä»¶ä»ĄHTMLĺ‚łé€,ĺ˝±ĺŹç›´ćŽĄéˇŻç¤ş" #. DESC_OCR_COMMAND @@ -2098,8 +2203,12 @@ msgid "Filename too long" msgstr "檔ĺŤĺ¤Şé•·" #. ERR_CREATE_TEMP_FILE -msgid "Could not create temporary file" -msgstr "不č˝ĺ»şç«‹ćš«ĺ檔" +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" @@ -2222,10 +2331,6 @@ msgstr "不č˝ĺź·čˇŚĺ‚łçśźćŞ˘č¦–ĺ™¨" msgid "Failed to execute fax command:" msgstr "不č˝ĺź·čˇŚĺ‚łçśźĺ‘˝ä»¤" -#. ERR_FAILED_EXEC_MAIL_VIEWER -msgid "Failed to execute mail image viewer:" -msgstr "不č˝ĺź·čˇŚéµä»¶ĺ˝±ĺŹćŞ˘č¦–ĺ™¨" - #. ERR_FAILED_EXEC_OCR_CMD msgid "Failed to execute ocr command:" msgstr "不č˝ĺź·čˇŚocr命令" @@ -2275,14 +2380,6 @@ msgstr "é 覽不č˝ĺŹ–得位ĺ…深度" msgid "GIMP support missing" msgstr "GIMP支援éşĺ¤±" -#. ERR_CREATE_PREVIEW_FILE -msgid "Could not create temporary preview files" -msgstr "不č˝ĺ»şç«‹ćš«ĺé 覽檔" - -#. ERR_CREATE_PREVIEW_FILENAME -msgid "Could not create filenames for preview files" -msgstr "不č˝ĺ»şç«‹é 覽檔的檔ĺŤ" - #. ERR_CREATE_FAX_PROJECT msgid "Could not create faxproject" msgstr "不č˝ĺ»şç«‹ĺ‚łçśźĺ°ćˇ" @@ -2406,8 +2503,9 @@ msgid "" " -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" -" -m, --mail start with mail-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 " @@ -2580,72 +2678,85 @@ msgid "Rossmann negative HR 100" msgstr "" # -#. TEXT_MAIL_STATUS_NOT_CREATED -msgid "Mail project not created" +#. TEXT_PROJECT_STATUS_NOT_CREATED +#, fuzzy +msgid "Project not created" msgstr "信件ĺ°ćˇćśŞĺ»şç«‹" # -#. TEXT_MAIL_STATUS_CREATED -msgid "Mail project created" +#. TEXT_PROJECT_STATUS_CREATED +#, fuzzy +msgid "Project created" msgstr "信件ĺ°ćˇĺ·˛ĺ»şç«‹" # -#. TEXT_MAIL_STATUS_CHANGED -msgid "Mail project changed" +#. TEXT_PROJECT_STATUS_CHANGED +#, fuzzy +msgid "Project changed" msgstr "信件ĺ°ćˇć›´ć”ąäş†" -# -#. TEXT_MAIL_STATUS_ERR_READ_PROJECT -msgid "Error reading mailproject" +#. TEXT_PROJECT_STATUS_ERR_READ_PROJECT +#, fuzzy +msgid "Error reading project" +msgstr "輸入éµä»¶ĺ°ćˇçš„ĺŤç¨±" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ERROR +#, fuzzy +msgid "Error saving file" +msgstr "儲ĺĺ˝±ĺŹ" + +#. TEXT_PROJECT_STATUS_FILE_SAVING +#, fuzzy +msgid "Saving file" +msgstr "儲ĺĺ˝±ĺŹ" + +#. TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED +#, fuzzy +msgid "Aborted saving file" +msgstr "儲ĺĺ˝±ĺŹ" + +#. TEXT_PROJECT_STATUS_FILE_SAVED +msgid "File has been saved" msgstr "" -#. TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED msgid "POP3 connection failed" msgstr "" -#. TEXT_MAIL_STATUS_POP3_LOGIN_FAILED +#. TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED msgid "POP3 login failed" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED +#. TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED +msgid "ASMTP authentication failed" +msgstr "" + +#. TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED msgid "SMTP connection failed" msgstr "" # -#. TEXT_MAIL_STATUS_SMTP_ERR_FROM +#. TEXT_EMAIL_STATUS_SMTP_ERR_FROM msgid "From entry not accepted" msgstr "" # -#. TEXT_MAIL_STATUS_SMTP_ERR_RCPT +#. TEXT_EMAIL_STATUS_SMTP_ERR_RCPT msgid "Receiver entry not accepted" msgstr "" -#. TEXT_MAIL_STATUS_SMTP_ERR_DATA -msgid "Mail data not accepted" -msgstr "" - -#. TEXT_MAIL_STATUS_SENDING -msgid "Sending mail" -msgstr "" - -#. TEXT_MAIL_STATUS_SENT -msgid "Mail has been sent" -msgstr "" - # -#. TEXT_FAX_STATUS_NOT_CREATED -msgid "Fax project not created" -msgstr "" +#. TEXT_EMAIL_STATUS_SMTP_ERR_DATA +#, fuzzy +msgid "E-mail data not accepted" +msgstr "信件ĺ°ćˇćśŞĺ»şç«‹" -# -#. TEXT_FAX_STATUS_CREATED -msgid "Fax project created" +#. TEXT_EMAIL_STATUS_SENDING +msgid "Sending e-mail" msgstr "" -# -#. TEXT_FAX_STATUS_CHANGED -msgid "Fax project changed" +#. TEXT_EMAIL_STATUS_SENT +msgid "E-mail has been sent" msgstr "" #. TEXT_FAX_STATUS_QUEUEING_FAX @@ -2710,3 +2821,69 @@ 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 "POP3 password:" +#~ msgstr "POP3密碼:" + +# +#, fuzzy +#~ msgid "Multipage project not created" +#~ msgstr "信件ĺ°ćˇćśŞĺ»şç«‹" + +# +#, fuzzy +#~ msgid "Multipage project created" +#~ msgstr "信件ĺ°ćˇĺ·˛ĺ»şç«‹" + +# +#, fuzzy +#~ msgid "Multipage project changed" +#~ msgstr "信件ĺ°ćˇć›´ć”ąäş†" + +#, fuzzy +#~ msgid "Saving multipage file" +#~ msgstr "儲ĺĺ˝±ĺŹ" + +# +#, fuzzy +#~ msgid "Multipage saving aborted" +#~ msgstr "信件ĺ°ćˇĺ·˛ĺ»şç«‹" + +#~ msgid "Image" +#~ msgstr "ĺ˝±ĺŹ" + +#~ msgid "Viewer (png):" +#~ msgstr "檢視器(png)" + +#, fuzzy +#~ msgid "Enter command to be executed to view an e-mail image" +#~ msgstr "輸入當檢視一個éµä»¶ĺ˝±ĺŹć™‚č¦ĺź·čˇŚçš„命令" + +#, fuzzy +#~ msgid "Failed to execute e-mail image viewer:" +#~ msgstr "不č˝ĺź·čˇŚéµä»¶ĺ˝±ĺŹćŞ˘č¦–ĺ™¨" + +#~ msgid "Step" +#~ msgstr "ćĄé©ź" + +#~ msgid "Mail" +#~ msgstr "é›»ĺéµä»¶" diff --git a/src/.xsane-front-gtk.h.swp b/src/.xsane-front-gtk.h.swp Binary files differdeleted file mode 100644 index d971345..0000000 --- a/src/.xsane-front-gtk.h.swp +++ /dev/null diff --git a/src/Makefile.in b/src/Makefile.in index 8df620f..5debbbb 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -49,6 +49,9 @@ LIBLIB = ../lib/liblib.a XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o \ xsane-preview.o xsane-viewer.o \ + xsane-fax-project.o \ + xsane-email-project.o \ + xsane-multipage-project.o \ xsane-rc-io.o xsane-device-preferences.o xsane-batch-scan.o \ xsane-preferences.o xsane-setup.o xsane-save.o xsane-scan.o \ xsane-icons.o xsane.o @XSANE_ICON@ @@ -60,37 +63,37 @@ XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o \ all: $(PROGRAMS) install: $(PROGRAMS) - $(MKINSTALLDIRS) $(bindir) $(sbindir) $(datadir) $(sanedatadir) $(xsanedocdir) $(sanedatadir)/xsane + $(MKINSTALLDIRS) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(datadir) $(DESTDIR)$(sanedatadir) $(DESTDIR)$(xsanedocdir) $(DESTDIR)$(sanedatadir)/xsane @for program in $(BINPROGS); do \ - $(INSTALL_PROGRAM) $${program} $(bindir)/$${program}; \ + $(INSTALL_PROGRAM) $${program} $(DESTDIR)$(bindir)/$${program}; \ done - $(INSTALL_DATA) $(srcdir)/xsane-style.rc $(sanedatadir)/xsane/xsane-style.rc - $(INSTALL_DATA) $(srcdir)/xsane-startimage.pnm $(sanedatadir)/xsane/xsane-startimage.pnm - $(INSTALL_DATA) $(srcdir)/xsane-calibration.pnm $(sanedatadir)/xsane/xsane-calibration.pnm - $(INSTALL_DATA) $(srcdir)/xsane-logo.xpm $(sanedatadir)/xsane/xsane-logo.xpm - $(INSTALL_DATA) $(srcdir)/xsane-gpl.txt $(sanedatadir)/xsane/xsane-gpl.txt - $(INSTALL_DATA) $(srcdir)/xsane-eula.txt $(sanedatadir)/xsane/xsane-eula.txt + $(INSTALL_DATA) $(srcdir)/xsane-style.rc $(DESTDIR)$(sanedatadir)/xsane/xsane-style.rc + $(INSTALL_DATA) $(srcdir)/xsane-startimage.pnm $(DESTDIR)$(sanedatadir)/xsane/xsane-startimage.pnm + $(INSTALL_DATA) $(srcdir)/xsane-calibration.pnm $(DESTDIR)$(sanedatadir)/xsane/xsane-calibration.pnm + $(INSTALL_DATA) $(srcdir)/xsane-logo.xpm $(DESTDIR)$(sanedatadir)/xsane/xsane-logo.xpm + $(INSTALL_DATA) $(srcdir)/xsane-gpl.txt $(DESTDIR)$(sanedatadir)/xsane/xsane-gpl.txt + $(INSTALL_DATA) $(srcdir)/xsane-eula.txt $(DESTDIR)$(sanedatadir)/xsane/xsane-eula.txt @for logo in *-logo.xpm; do \ - echo installing $(sanedatadir)/xsane/$${logo}; \ - $(INSTALL_DATA) $(srcdir)/$${logo} $(sanedatadir)/xsane/$${logo}; \ + echo installing $(DESTDIR)$(sanedatadir)/xsane/$${logo}; \ + $(INSTALL_DATA) $(srcdir)/$${logo} $(DESTDIR)$(sanedatadir)/xsane/$${logo}; \ done uninstall: @for program in $(BINPROGS); do \ - echo uninstalling $(bindir)/$${program}...; \ - rm -f $(bindir)/$${program}; \ + echo uninstalling $(DESTDIR)$(bindir)/$${program}...; \ + rm -f $(DESTDIR)$(bindir)/$${program}; \ done - echo uninstalling $(sanedatadir)/xsane/xsane-style.rc... - rm -f $(sanedatadir)/xsane/xsane-style.rc - echo uninstalling $(sanedatadir)/xsane/xsane-startimage.pnm... - rm -f $(sanedatadir)/xsane/xsane-startimage.pnm - echo uninstalling $(sanedatadir)/xsane/xsane-calibration.pnm... - rm -f $(sanedatadir)/xsane/xsane-calibration.pnm - echo uninstalling $(sanedatadir)/xsane/xsane-logo.xpm... - rm -f $(sanedatadir)/xsane/xsane-logo.xpm + echo uninstalling $(DESTDIR)$(sanedatadir)/xsane/xsane-style.rc... + rm -f $(DESTDIR)$(sanedatadir)/xsane/xsane-style.rc + echo uninstalling $(DESTDIR)$(sanedatadir)/xsane/xsane-startimage.pnm... + rm -f $(DESTDIR)$(sanedatadir)/xsane/xsane-startimage.pnm + echo uninstalling $(DESTDIR)$(sanedatadir)/xsane/xsane-calibration.pnm... + rm -f $(DESTDIR)$(sanedatadir)/xsane/xsane-calibration.pnm + echo uninstalling $(DESTDIR)$(sanedatadir)/xsane/xsane-logo.xpm... + rm -f $(DESTDIR)$(sanedatadir)/xsane/xsane-logo.xpm @for logo in *-logo.xpm; do \ - echo uninstalling $(sanedatadir)/xsane/$${logo}; \ - rm -f $(sanedatadir)/xsane/$${logo}; \ + echo uninstalling $(DESTDIR)$(sanedatadir)/xsane/$${logo}; \ + rm -f $(DESTDIR)$(sanedatadir)/xsane/$${logo}; \ done xsane: $(XSANE_OBJS) $(LIBLIB) @@ -125,12 +128,17 @@ xsane.o: xsane-device-preferences.h xsane.o: xsane-preferences.h xsane.o: xsane-icons.h xsane.o: xsane-batch-scan.h +xsane.o: xsane-multipage-project.h +xsane.o: xsane-fax-project.h +xsane.o: xsane-email-project.h +xsane.o: xsane-text.h xsane-back-gtk.o: xsane.h xsane-back-gtk.o: xsane-back-gtk.h xsane-back-gtk.o: xsane-front-gtk.h xsane-back-gtk.o: xsane-preferences.h xsane-back-gtk.o: xsane-gamma.h +xsane-back-gtk.o: xsane-text.h xsane-front-gtk.o: xsane.h xsane-front-gtk.o: xsane-back-gtk.h @@ -139,6 +147,7 @@ xsane-front-gtk.o: xsane-preview.h xsane-front-gtk.o: xsane-save.h xsane-front-gtk.o: xsane-gamma.h xsane-front-gtk.o: xsane-setup.h +xsane-front-gtk.o: xsane-text.h xsane-batch-scan.o: xsane.h xsane-batch-scan.o: xsane-scan.h @@ -148,6 +157,7 @@ xsane-batch-scan.o: xsane-front-gtk.h xsane-batch-scan.o: xsane-rc-io.h xsane-batch-scan.o: xsane-preview.h xsane-batch-scan.o: xsane-gamma.h +xsane-batch-scan.o: xsane-text.h xsane-preview.o: xsane.h xsane-preview.o: xsane-back-gtk.h @@ -156,6 +166,7 @@ xsane-preview.o: xsane-batch-scan.h xsane-preview.o: xsane-preview.h xsane-preview.o: xsane-preferences.h xsane-preview.o: xsane-gamma.h +xsane-preview.o: xsane-text.h xsane-preferecnes.o: xsane.h xsane-preferecnes.o: xsane-preferences.h @@ -183,6 +194,8 @@ xsane-scan.o: xsane-viewer.h xsane-scan.o: xsane-save.h xsane-scan.o: xsane-gamma.h xsane-scan.o: xsane-setup.h +xsane-scan.o: xsane-email-project.h +xsane-scan.o: xsane-text.h xsane-gamma.o: xsane.h xsane-gamma.o: xsane-back-gtk.h @@ -190,6 +203,7 @@ xsane-gamma.o: xsane-front-gtk.h xsane-gamma.o: xsane-preferences.h xsane-gamma.o: xsane-preview.h xsane-gamma.o: xsane-save.h +xsane-gamma.o: xsane-text.h xsane-setup.o: xsane.h xsane-setup.o: xsane-back-gtk.h @@ -200,6 +214,7 @@ xsane-setup.o: xsane-preview.h xsane-setup.o: xsane-save.h xsane-setup.o: xsane-gamma.h xsane-setup.o: xsane-batch-scan.h +xsane-setup.o: xsane-text.h xsane-viewer.o: xsane.h xsane-viewer.o: xsane-back-gtk.h @@ -209,6 +224,26 @@ xsane-viewer.o: xsane-viewer.h xsane-viewer.o: xsane-gamma.h xsane-viewer.o: xsane-icons.h xsane-viewer.o: xsane-save.h - - +xsane-viewer.o: xsane-text.h + +xsane-multipage-project.o: xsane.h +xsane-multipage-project.o: xsane-back-gtk.h +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-fax-project.o: xsane.h +xsane-fax-project.o: xsane-back-gtk.h +xsane-fax-project.o: xsane-front-gtk.h +xsane-fax-project.o: xsane-preferences.h +xsane-fax-project.o: xsane-fax-project.h +xsane-fax-project.o: xsane-text.h + +xsane-email-project.o: xsane.h +xsane-email-project.o: xsane-back-gtk.h +xsane-email-project.o: xsane-front-gtk.h +xsane-email-project.o: xsane-preferences.h +xsane-email-project.o: xsane-email-project.h +xsane-email-project.o: xsane-text.h diff --git a/src/Makefile.in.orig b/src/Makefile.in.orig index b171027..a0b0244 100644 --- a/src/Makefile.in.orig +++ b/src/Makefile.in.orig @@ -31,8 +31,8 @@ INSTALL_DATA = @INSTALL_DATA@ CC = @CC@ INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include @INCLUDES@ -DEFS = @DEFS@ -DLOCALEDIR=$(datadir)/locale -CPPFLAGS = @CPPFLAGS@ -DPATH_XSANE_DOC_DIR=\$(xsanedocdir) -DPATH_SANE_DATA_DIR=\$(sanedatadir) +DEFS = @DEFS@ -DLOCALEDIR=$(datadir)/locale -DSANELOCALEDIR=$(sane_prefix)/share/locale +CPPFLAGS = @CPPFLAGS@ -DPATH_XSANE_DOC_DIR=$(xsanedocdir) -DPATH_SANE_DATA_DIR=$(sanedatadir) CFLAGS = @CFLAGS@ @SANE_CFLAGS@ @GIMP_CFLAGS@ @GTK_CFLAGS@ LDFLAGS = @LDFLAGS@ @SANE_LDFLAGS@ LIBS = @SANE_LIBS@ @GIMP_LIBS@ @GTK_LIBS@ @INTLLIBS@ @LIBS@ @@ -49,9 +49,12 @@ LIBLIB = ../lib/liblib.a XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o \ xsane-preview.o xsane-viewer.o \ + xsane-fax-project.o \ + xsane-email-project.o \ + xsane-multipage-project.o \ xsane-rc-io.o xsane-device-preferences.o xsane-batch-scan.o \ xsane-preferences.o xsane-setup.o xsane-save.o xsane-scan.o \ - xsane-icons.o xsane.o + xsane-icons.o xsane.o @XSANE_ICON@ .c.o: @@ -97,6 +100,8 @@ xsane: $(XSANE_OBJS) $(LIBLIB) $(LINK) $(XSANE_OBJS) \ $(LIBLIB) $(LIBS) $(SANE_LIBS) +xsane-icon.opc: xsane-icon.rc xsane.ico + windres -i xsane-icon.rc -o xsane-icon.opc clean: rm -f *.o *~ .*~ *.bak @@ -123,6 +128,10 @@ xsane.o: xsane-device-preferences.h xsane.o: xsane-preferences.h xsane.o: xsane-icons.h xsane.o: xsane-batch-scan.h +xsane.o: xsane-multipage-project.h +xsane.o: xsane-fax-project.h +xsane.o: xsane-email-project.h +xsane.o: xsane-text.h xsane-back-gtk.o: xsane.h xsane-back-gtk.o: xsane-back-gtk.h @@ -146,6 +155,7 @@ xsane-batch-scan.o: xsane-front-gtk.h xsane-batch-scan.o: xsane-rc-io.h xsane-batch-scan.o: xsane-preview.h xsane-batch-scan.o: xsane-gamma.h +xsane-batch-scan.o: xsane-text.h xsane-preview.o: xsane.h xsane-preview.o: xsane-back-gtk.h @@ -154,6 +164,7 @@ xsane-preview.o: xsane-batch-scan.h xsane-preview.o: xsane-preview.h xsane-preview.o: xsane-preferences.h xsane-preview.o: xsane-gamma.h +xsane-preview.o: xsane-text.h xsane-preferecnes.o: xsane.h xsane-preferecnes.o: xsane-preferences.h @@ -181,6 +192,8 @@ xsane-scan.o: xsane-viewer.h xsane-scan.o: xsane-save.h xsane-scan.o: xsane-gamma.h xsane-scan.o: xsane-setup.h +xsane-scan.o: xsane-email-project.h +xsane-scan.o: xsane-text.h xsane-gamma.o: xsane.h xsane-gamma.o: xsane-back-gtk.h @@ -188,6 +201,7 @@ xsane-gamma.o: xsane-front-gtk.h xsane-gamma.o: xsane-preferences.h xsane-gamma.o: xsane-preview.h xsane-gamma.o: xsane-save.h +xsane-gamma.o: xsane-text.h xsane-setup.o: xsane.h xsane-setup.o: xsane-back-gtk.h @@ -198,6 +212,7 @@ xsane-setup.o: xsane-preview.h xsane-setup.o: xsane-save.h xsane-setup.o: xsane-gamma.h xsane-setup.o: xsane-batch-scan.h +xsane-setup.o: xsane-text.h xsane-viewer.o: xsane.h xsane-viewer.o: xsane-back-gtk.h @@ -207,7 +222,26 @@ xsane-viewer.o: xsane-viewer.h xsane-viewer.o: xsane-gamma.h xsane-viewer.o: xsane-icons.h xsane-viewer.o: xsane-save.h - - - +xsane-viewer.o: xsane-text.h + +xsane-multipage-project.o: xsane.h +xsane-multipage-project.o: xsane-back-gtk.h +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-fax-project.o: xsane.h +xsane-fax-project.o: xsane-back-gtk.h +xsane-fax-project.o: xsane-front-gtk.h +xsane-fax-project.o: xsane-preferences.h +xsane-fax-project.o: xsane-fax-project.h +xsane-fax-project.o: xsane-text.h + +xsane-email-project.o: xsane.h +xsane-email-project.o: xsane-back-gtk.h +xsane-email-project.o: xsane-front-gtk.h +xsane-email-project.o: xsane-preferences.h +xsane-email-project.o: xsane-email-project.h +xsane-email-project.o: xsane-text.h diff --git a/src/xsane-back-gtk.c b/src/xsane-back-gtk.c index c4ddeef..6599c98 100644 --- a/src/xsane-back-gtk.c +++ b/src/xsane-back-gtk.c @@ -269,7 +269,7 @@ int xsane_back_gtk_make_path(size_t buf_size, char *buf, const char *prog_name, { snprintf(buf, buf_size-2, "%s", STRINGIFY(PATH_SANE_DATA_DIR)); } - else /* make path to temporary file */ + else /* make path to temporary file XSANE_PATH_TMP */ { snprintf(buf, buf_size-2, "%s", preferences.tmp_path); } @@ -2138,7 +2138,7 @@ void xsane_set_sensitivity(SANE_Int sensitivity) { DBG(DBG_proc, "xsane_set_sensitivity(%d)\n", sensitivity); - if (xsane.shell) + if (xsane.dialog) { /* clear or rebuild histogram */ if (sensitivity) @@ -2154,8 +2154,8 @@ void xsane_set_sensitivity(SANE_Int sensitivity) gtk_widget_set_sensitive(xsane.menubar, sensitivity); gtk_widget_set_sensitive(xsane.xsane_window, sensitivity); gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), sensitivity); - gtk_widget_set_sensitive(xsane.standard_options_shell, sensitivity); - gtk_widget_set_sensitive(xsane.advanced_options_shell, sensitivity); + gtk_widget_set_sensitive(xsane.standard_options_dialog, sensitivity); + gtk_widget_set_sensitive(xsane.advanced_options_dialog, sensitivity); gtk_widget_set_sensitive(xsane.histogram_dialog, sensitivity); #ifdef HAVE_WORKING_GTK_GAMMACURVE gtk_widget_set_sensitive(xsane.gamma_dialog, sensitivity); @@ -2172,22 +2172,13 @@ void xsane_set_sensitivity(SANE_Int sensitivity) gtk_widget_set_sensitive(xsane.preview->start, sensitivity); /* Acquire preview button */ } - if (xsane.fax_dialog) + if (xsane.project_dialog) { - /* do not change sensitivity of fax_dialog, we want the progress bar */ + /* do not change sensitivity of project_dialog, we want the progress bar */ /* to be sensitive */ - gtk_widget_set_sensitive(xsane.fax_project_box, sensitivity); - gtk_widget_set_sensitive(xsane.fax_project_exists, sensitivity); - gtk_widget_set_sensitive(xsane.fax_project_entry_box, sensitivity); - } - - if (xsane.mail_dialog) - { - /* do not change sensitivity of mail_dialog, we want the progress bar */ - /* to be sensitive */ - gtk_widget_set_sensitive(xsane.mail_project_box, sensitivity); - gtk_widget_set_sensitive(xsane.mail_project_exists, sensitivity); - gtk_widget_set_sensitive(xsane.mail_project_entry_box, sensitivity); + gtk_widget_set_sensitive(xsane.project_box, sensitivity); + gtk_widget_set_sensitive(xsane.project_exists, sensitivity); + gtk_widget_set_sensitive(xsane.project_entry_box, sensitivity); } if (xsane.batch_scan_dialog) diff --git a/src/xsane-batch-scan.c b/src/xsane-batch-scan.c index c7ae532..a356612 100644 --- a/src/xsane-batch-scan.c +++ b/src/xsane-batch-scan.c @@ -447,7 +447,7 @@ static void xsane_batch_scan_scan_list(void) GList *list = GTK_LIST(xsane.batch_scan_list)->children; Batch_Scan_Parameters *parameters = NULL; SANE_Int val_start = SANE_TRUE; - SANE_Int val_loop = SANE_TRUE; + SANE_Int val_loop = BATCH_MODE_LOOP; SANE_Int val_end = SANE_FALSE; SANE_Word val_next_tl_y = SANE_FIX(0.0); @@ -463,7 +463,7 @@ static void xsane_batch_scan_scan_list(void) { if (!list->next) /* last scan */ { - val_loop = SANE_FALSE; + val_loop = BATCH_MODE_LAST_SCAN; val_end = SANE_TRUE; val_next_tl_y = SANE_FIX(0.0); } @@ -501,7 +501,7 @@ static void xsane_batch_scan_scan_list(void) gtk_main_iteration(); } - xsane_scan_dialog(); + xsane_scan_dialog(NULL); while (xsane.scanning) { @@ -533,7 +533,7 @@ static void xsane_batch_scan_scan_list(void) xsane_control_option(xsane.dev, xsane.well_known.batch_scan_end, SANE_ACTION_SET_VALUE, &val_end, NULL); xsane_control_option(xsane.dev, xsane.well_known.batch_scan_next_tl_y, SANE_ACTION_SET_VALUE, &val_next_tl_y, NULL); - xsane.batch_loop = FALSE; /* make sure we reset the batch scan loop flag */ + xsane.batch_loop = BATCH_MODE_OFF; /* make sure we reset the batch scan loop flag */ if (parameters) { @@ -561,7 +561,11 @@ static void xsane_batch_scan_scan_selected(void) xsane_batch_scan_establish_parameters(parameters, TRUE); } - xsane_scan_dialog(); + xsane.batch_loop = BATCH_MODE_LAST_SCAN; /* to make sure we do not scan multiple times */ + + xsane_scan_dialog(NULL); + + xsane.batch_loop = BATCH_MODE_OFF; /* make sure we reset the batch scan loop flag */ } } @@ -939,6 +943,12 @@ static gint xsane_batch_scan_win_delete(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_batch_scan_win_delete\n"); + if (preferences.show_batch_scan) + { + xsane_window_get_position(xsane.batch_scan_dialog, &xsane.batch_dialog_posx, &xsane.batch_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.batch_scan_dialog), xsane.batch_dialog_posx, xsane.batch_dialog_posy); + } + gtk_widget_hide(widget); preferences.show_batch_scan = FALSE; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_batch_scan_widget), preferences.show_batch_scan); diff --git a/src/xsane-batch-scan.h b/src/xsane-batch-scan.h index 7437ae8..03b018d 100644 --- a/src/xsane-batch-scan.h +++ b/src/xsane-batch-scan.h @@ -30,6 +30,14 @@ #include <sane/sane.h> /* ---------------------------------------------------------------------------------------------------------------------- */ +typedef enum +{ + BATCH_MODE_OFF = 0, + BATCH_MODE_LAST_SCAN, + BATCH_MODE_LOOP +} BATCH_MODE_T; + +/* ---------------------------------------------------------------------------------------------------------------------- */ typedef struct { diff --git a/src/xsane-device-preferences.c b/src/xsane-device-preferences.c index f70590b..57c5ae8 100644 --- a/src/xsane-device-preferences.c +++ b/src/xsane-device-preferences.c @@ -47,17 +47,20 @@ static struct } desc_xsane_device[] = { - {"xsane-main-window-x-position", xsane_rc_pref_int, DPOFFSET(shell_posx)}, - {"xsane-main-window-y-position", xsane_rc_pref_int, DPOFFSET(shell_posy)}, + {"xsane-main-window-x-position", xsane_rc_pref_int, DPOFFSET(dialog_posx)}, + {"xsane-main-window-y-position", xsane_rc_pref_int, DPOFFSET(dialog_posy)}, - {"xsane-main-window-width", xsane_rc_pref_int, DPOFFSET(shell_width)}, - {"xsane-main-window-height", xsane_rc_pref_int, DPOFFSET(shell_height)}, + {"xsane-main-window-width", xsane_rc_pref_int, DPOFFSET(dialog_width)}, + {"xsane-main-window-height", xsane_rc_pref_int, DPOFFSET(dialog_height)}, - {"xsane-standard-options-window-x-position", xsane_rc_pref_int, DPOFFSET(standard_options_shell_posx)}, - {"xsane-standard-options-window-y-position", xsane_rc_pref_int, DPOFFSET(standard_options_shell_posy)}, + {"xsane-project-window-x-position", xsane_rc_pref_int, DPOFFSET(project_dialog_posx)}, + {"xsane-project-window-y-position", xsane_rc_pref_int, DPOFFSET(project_dialog_posy)}, - {"xsane-advanced-options-window-x-position", xsane_rc_pref_int, DPOFFSET(advanced_options_shell_posx)}, - {"xsane-advanced-options-window-y-position", xsane_rc_pref_int, DPOFFSET(advanced_options_shell_posy)}, + {"xsane-standard-options-window-x-position", xsane_rc_pref_int, DPOFFSET(standard_options_dialog_posx)}, + {"xsane-standard-options-window-y-position", xsane_rc_pref_int, DPOFFSET(standard_options_dialog_posy)}, + + {"xsane-advanced-options-window-x-position", xsane_rc_pref_int, DPOFFSET(advanced_options_dialog_posx)}, + {"xsane-advanced-options-window-y-position", xsane_rc_pref_int, DPOFFSET(advanced_options_dialog_posy)}, {"xsane-histogram-window-x-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posx)}, {"xsane-histogram-window-y-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posy)}, @@ -96,8 +99,6 @@ desc_xsane_device[] = {"xsane-threshold-offset", xsane_rc_pref_double, DPOFFSET(threshold_off)}, {"xsane-grayscale-scanmode", xsane_rc_pref_string, DPOFFSET(grayscale_scanmode)}, - {"xsane-adf-scansource", xsane_rc_pref_string, DPOFFSET(adf_scansource)}, - {"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)}, @@ -376,30 +377,37 @@ void xsane_device_preferences_load_file(char *filename) DBG(DBG_proc, "xsane_device_preferences_load_file\n"); /* set geometry and position to standard values */ - xsane.shell_posx = XSANE_SHELL_POS_X; - xsane.shell_posy = XSANE_SHELL_POS_Y; - xsane.shell_width = XSANE_SHELL_WIDTH; - xsane.shell_height = XSANE_SHELL_HEIGHT; + xsane.dialog_posx = XSANE_DIALOG_POS_X; + xsane.dialog_posy = XSANE_DIALOG_POS_Y; + xsane.dialog_width = XSANE_DIALOG_WIDTH; + xsane.dialog_height = XSANE_DIALOG_HEIGHT; + + xsane.project_dialog_posx = XSANE_PROJECT_DIALOG_POS_X; + xsane.project_dialog_posy = XSANE_PROJECT_DIALOG_POS_Y; + + xsane.standard_options_dialog_posx = XSANE_STD_OPTIONS_DIALOG_POS_X; + xsane.standard_options_dialog_posy = XSANE_STD_OPTIONS_DIALOG_POS_Y; - xsane.standard_options_shell_posx = XSANE_STD_OPTIONS_POS_X; - xsane.standard_options_shell_posy = XSANE_STD_OPTIONS_POS_Y; + xsane.advanced_options_dialog_posx = XSANE_ADV_OPTIONS_DIALOG_POS_X; + xsane.advanced_options_dialog_posy = XSANE_ADV_OPTIONS_DIALOG_POS_Y; - xsane.advanced_options_shell_posx = XSANE_ADV_OPTIONS_POS_X; - xsane.advanced_options_shell_posy = XSANE_ADV_OPTIONS_POS_Y; + xsane.histogram_dialog_posx = XSANE_HISTOGRAM_DIALOG_POS_X; + xsane.histogram_dialog_posy = XSANE_HISTOGRAM_DIALOG_POS_Y; - xsane.histogram_dialog_posx = XSANE_HISTOGRAM_POS_X; - xsane.histogram_dialog_posy = XSANE_HISTOGRAM_POS_Y; + xsane.gamma_dialog_posx = XSANE_GAMMA_DIALOG_POS_X; + xsane.gamma_dialog_posy = XSANE_GAMMA_DIALOG_POS_Y; - xsane.gamma_dialog_posx = XSANE_GAMMA_POS_X; - xsane.gamma_dialog_posy = XSANE_GAMMA_POS_Y; + xsane.batch_dialog_posx = XSANE_BATCH_DIALOG_POS_X; + xsane.batch_dialog_posy = XSANE_BATCH_DIALOG_POS_Y; - xsane.batch_dialog_posx = XSANE_BATCH_POS_X; - xsane.batch_dialog_posy = XSANE_BATCH_POS_Y; + xsane.preview_dialog_posx = XSANE_PREVIEW_DIALOG_POS_X; + xsane.preview_dialog_posy = XSANE_PREVIEW_DIALOG_POS_Y; + xsane.preview_dialog_width = XSANE_PREVIEW_DIALOG_WIDTH; + xsane.preview_dialog_height = XSANE_PREVIEW_DIALOG_HEIGHT; - xsane.preview_dialog_posx = XSANE_PREVIEW_POS_X; - xsane.preview_dialog_posy = XSANE_PREVIEW_POS_Y; - xsane.preview_dialog_width = XSANE_PREVIEW_WIDTH; - xsane.preview_dialog_height = XSANE_PREVIEW_HEIGHT; + xsane.resolution = 1.0; + xsane.resolution_x = 1.0; + xsane.resolution_y = 1.0; xsane.gamma = 1.0; xsane.gamma_red = 1.0; @@ -424,8 +432,6 @@ void xsane_device_preferences_load_file(char *filename) xsane.threshold_mul = 1.0; xsane.threshold_off = 0.0; - xsane.adf_scansource = 0; /* Empty String => keeps adf scansource */ - xsane.enhancement_rgb_default = 1; xsane.negative = 0; xsane.show_preview = 1; @@ -552,17 +558,27 @@ void xsane_device_preferences_load_file(char *filename) } } } - gtk_window_move(GTK_WINDOW(xsane.shell), xsane.shell_posx, xsane.shell_posy); - gtk_window_set_default_size(GTK_WINDOW(xsane.shell), xsane.shell_width, xsane.shell_height); - gtk_window_move(GTK_WINDOW(xsane.standard_options_shell), xsane.standard_options_shell_posx, xsane.standard_options_shell_posy); - gtk_window_move(GTK_WINDOW(xsane.advanced_options_shell), xsane.advanced_options_shell_posx, xsane.advanced_options_shell_posy); + gtk_window_move(GTK_WINDOW(xsane.dialog), xsane.dialog_posx, xsane.dialog_posy); + gtk_window_set_default_size(GTK_WINDOW(xsane.dialog), xsane.dialog_width, xsane.dialog_height); + + if (xsane.project_dialog) + { + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); + } + + gtk_window_move(GTK_WINDOW(xsane.standard_options_dialog), xsane.standard_options_dialog_posx, xsane.standard_options_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.advanced_options_dialog), xsane.advanced_options_dialog_posx, xsane.advanced_options_dialog_posy); gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), xsane.histogram_dialog_posx, xsane.histogram_dialog_posy); #if 0 gtk_window_move(GTK_WINDOW(xsane.gamma_dialog), xsane.gamma_dialog_posx, xsane.gamma_dialog_posy); #endif gtk_window_move(GTK_WINDOW(xsane.batch_scan_dialog), xsane.batch_dialog_posx, xsane.batch_dialog_posy); gtk_window_move(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_posx, xsane.preview_dialog_posy); +#ifdef HAVE_GTK2 + gtk_window_resize(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height); +#else gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height); +#endif xsane_update_param(0); xsane_refresh_dialog(); @@ -655,34 +671,66 @@ void xsane_device_preferences_save_file(char *filename) XSANE_RC_IO_W_STRINGCONST(&w, XSANE_VERSION); /* make geometry and position values up to date */ - xsane_window_get_position(xsane.shell, &xsane.shell_posx, &xsane.shell_posy); - gdk_drawable_get_size(xsane.shell->window, &xsane.shell_width, &xsane.shell_height); - gtk_window_move(GTK_WINDOW(xsane.shell), xsane.shell_posx, xsane.shell_posy); /* geometry used when window closed and opened again */ - gtk_window_set_default_size(GTK_WINDOW(xsane.shell), xsane.shell_width, xsane.shell_height); + xsane_window_get_position(xsane.dialog, &xsane.dialog_posx, &xsane.dialog_posy); + gdk_drawable_get_size(xsane.dialog->window, &xsane.dialog_width, &xsane.dialog_height); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.dialog), xsane.dialog_posx, xsane.dialog_posy); /* geometry used when window closed and opened again */ + gtk_window_set_default_size(GTK_WINDOW(xsane.dialog), xsane.dialog_width, xsane.dialog_height); +#endif - xsane_window_get_position(xsane.standard_options_shell, &xsane.standard_options_shell_posx, &xsane.standard_options_shell_posy); - gtk_window_move(GTK_WINDOW(xsane.standard_options_shell), xsane.standard_options_shell_posx, xsane.standard_options_shell_posy); + if (xsane.project_dialog) + { + xsane_window_get_position(xsane.project_dialog, &xsane.project_dialog_posx, &xsane.project_dialog_posy); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); +#endif + } - xsane_window_get_position(xsane.advanced_options_shell, &xsane.advanced_options_shell_posx, &xsane.advanced_options_shell_posy); - gtk_window_move(GTK_WINDOW(xsane.advanced_options_shell), xsane.advanced_options_shell_posx, xsane.advanced_options_shell_posy); + if (preferences.show_standard_options) + { + xsane_window_get_position(xsane.standard_options_dialog, &xsane.standard_options_dialog_posx, &xsane.standard_options_dialog_posy); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.standard_options_dialog), xsane.standard_options_dialog_posx, xsane.standard_options_dialog_posy); +#endif + } - xsane_window_get_position(xsane.histogram_dialog, &xsane.histogram_dialog_posx, &xsane.histogram_dialog_posy); - gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), xsane.histogram_dialog_posx, xsane.histogram_dialog_posy); + if (preferences.show_advanced_options) + { + xsane_window_get_position(xsane.advanced_options_dialog, &xsane.advanced_options_dialog_posx, &xsane.advanced_options_dialog_posy); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.advanced_options_dialog), xsane.advanced_options_dialog_posx, xsane.advanced_options_dialog_posy); +#endif + } + + if (preferences.show_histogram) + { + xsane_window_get_position(xsane.histogram_dialog, &xsane.histogram_dialog_posx, &xsane.histogram_dialog_posy); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), xsane.histogram_dialog_posx, xsane.histogram_dialog_posy); +#endif + } #if 0 xsane_window_get_position(xsane.gamma_dialog, &xsane.gamma_dialog_posx, &xsane.gamma_dialog_posy); gtk_window_move(GTK_WINDOW(xsane.gamma_dialog), xsane.gamma_dialog_posx, xsane.gamma_dialog_posy); #endif - xsane_window_get_position(xsane.batch_scan_dialog, &xsane.batch_dialog_posx, &xsane.batch_dialog_posy); - gtk_window_move(GTK_WINDOW(xsane.batch_scan_dialog), xsane.batch_dialog_posx, xsane.batch_dialog_posy); + if (preferences.show_batch_scan) + { + xsane_window_get_position(xsane.batch_scan_dialog, &xsane.batch_dialog_posx, &xsane.batch_dialog_posy); +#if 0 /* TO BE REMOVED */ + gtk_window_move(GTK_WINDOW(xsane.batch_scan_dialog), xsane.batch_dialog_posx, xsane.batch_dialog_posy); +#endif + } if (xsane.preview) { xsane_window_get_position(xsane.preview->top, &xsane.preview_dialog_posx, &xsane.preview_dialog_posy); gdk_drawable_get_size(xsane.preview->top->window, &xsane.preview_dialog_width, &xsane.preview_dialog_height); +#if 0 gtk_window_move(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_posx, xsane.preview_dialog_posy); gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height); +#endif } xsane_device_preferences_save_values(&w, xsane.dev); diff --git a/src/xsane-email-project.c b/src/xsane-email-project.c new file mode 100644 index 0000000..67713ec --- /dev/null +++ b/src/xsane-email-project.c @@ -0,0 +1,1912 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-email-project.c + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + 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 "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBPNG +#ifdef HAVE_LIBZ +#include <png.h> +#include <zlib.h> +#endif +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifdef XSANE_ACTIVATE_EMAIL + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static guint xsane_email_send_timer = 0; + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* forward declarations: */ + +void xsane_email_project_save(void); +void xsane_email_dialog(void); + +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_changed_callback(GtkWidget *widget, gpointer data); +static void xsane_email_html_mode_callback(GtkWidget *widget); +static void xsane_email_project_display_status(void); +static void xsane_email_project_load(void); +static void xsane_email_project_delete(void); +static void xsane_email_project_update_project_status(); +static void xsane_email_project_create(void); +static void xsane_email_entry_move_up_callback(GtkWidget *widget, gpointer list); +static void xsane_email_entry_move_down_callback(GtkWidget *widget, gpointer list); +static void xsane_email_entry_rename_callback(GtkWidget *widget, gpointer list); +static void xsane_email_entry_delete_callback(GtkWidget *widget, gpointer list); +static void xsane_email_show_callback(GtkWidget *widget, gpointer data); +#if 0 +static void xsane_email_edit_callback(GtkWidget *widget, gpointer data); +#endif +static void xsane_email_send_process(void); +static void xsane_email_send(void); + + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static gint xsane_email_dialog_delete() +{ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_filetype_callback(GtkWidget *filetype_option_menu, char *filetype) +{ + DBG(DBG_proc, "xsane_email_filetype_callback(%s)\n", filetype); + + if (preferences.email_filetype) + { + free(preferences.email_filetype); + } + preferences.email_filetype = strdup(filetype); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_email_dialog() +{ + GtkWidget *email_dialog, *email_scan_vbox, *email_project_vbox; + GtkWidget *email_project_exists_hbox, *button; + GtkWidget *hbox; + GtkWidget *scrolled_window, *list; + GtkWidget *pixmapwidget, *text; + GtkWidget *attachment_frame, *text_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; + + DBG(DBG_proc, "xsane_email_dialog\n"); + + if (xsane.project_dialog) + { + return; /* window already is open */ + } + + /* GTK_WINDOW_TOPLEVEL looks better but does not place it nice*/ + email_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + + snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_EMAIL_PROJECT); + gtk_window_set_title(GTK_WINDOW(email_dialog), buf); + g_signal_connect(GTK_OBJECT(email_dialog), "delete_event", (GtkSignalFunc) xsane_email_dialog_delete, NULL); + xsane_set_window_icon(email_dialog, 0); + gtk_window_add_accel_group(GTK_WINDOW(email_dialog), xsane.accelerator_group); + + /* set the main vbox */ + email_scan_vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(email_scan_vbox), 0); + gtk_container_add(GTK_CONTAINER(email_dialog), email_scan_vbox); + gtk_widget_show(email_scan_vbox); + + + /* email project */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(email_scan_vbox), hbox, FALSE, FALSE, 1); + + 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); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_PROJECT); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_project); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_email_project_changed_callback, NULL); + + xsane.project_entry = text; + xsane.project_entry_box = hbox; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + email_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(email_scan_vbox), email_project_vbox, TRUE, TRUE, 0); + gtk_widget_show(email_project_vbox); + + + /* email receiver */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(email_project_vbox), hbox, FALSE, FALSE, 1); + + gtk_widget_realize(email_dialog); + + pixmap = gdk_pixmap_create_from_xpm_d(email_dialog->window, &mask, xsane.bg_trans, (gchar **) emailreceiver_xpm); + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gdk_drawable_unref(pixmap); + + text = gtk_entry_new(); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_RECEIVER); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_email_receiver_changed_callback, NULL); + + xsane.email_receiver_entry = text; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + + /* subject */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(email_project_vbox), hbox, FALSE, FALSE, 1); + + gtk_widget_realize(email_dialog); + + pixmap = gdk_pixmap_create_from_xpm_d(email_dialog->window, &mask, xsane.bg_trans, (gchar **) subject_xpm); + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gdk_drawable_unref(pixmap); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_SUBJECT); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_email_subject_changed_callback, NULL); + + xsane.email_subject_entry = text; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + + /* email text frame */ + text_frame = gtk_frame_new(TEXT_EMAIL_TEXT); + gtk_box_pack_start(GTK_BOX(email_project_vbox), text_frame, TRUE, TRUE, 2); + gtk_widget_show(text_frame); + + /* email text box */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 4); + gtk_container_add(GTK_CONTAINER(text_frame), hbox); + gtk_widget_show(hbox); + +#ifdef HAVE_GTK_TEXT_VIEW_H + { + GtkWidget *scrolled_window, *text_view, *text_buffer; + + /* create a scrolled window to get a vertical scrollbar */ + scrolled_window = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + gtk_container_add(GTK_CONTAINER(hbox), scrolled_window); + gtk_widget_show(scrolled_window); + + /* create the gtk_text_view widget */ + text_view = gtk_text_view_new(); + gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), TRUE); + gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view), GTK_WRAP_WORD); + gtk_container_add(GTK_CONTAINER(scrolled_window), text_view); + gtk_widget_show(text_view); + + /* get the text_buffer widget and insert the text from file */ + text_buffer = (GtkWidget *) gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); + + xsane.email_text_widget = text_buffer; + } +#else + { + GtkWidget *vscrollbar; + + /* Create the GtkText widget */ + text = gtk_text_new(NULL, NULL); + gtk_text_set_editable(GTK_TEXT(text), TRUE); /* text is editable */ + gtk_text_set_word_wrap(GTK_TEXT(text), TRUE); /* wrap complete words */ + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0); + gtk_widget_show(text); + xsane.email_text_widget = text; + + /* Add a vertical scrollbar to the GtkText widget */ + vscrollbar = gtk_vscrollbar_new(GTK_TEXT(text)->vadj); + gtk_box_pack_start(GTK_BOX(hbox), vscrollbar, FALSE, FALSE, 0); + gtk_widget_show(vscrollbar); + } +#endif + + + /* html email */ + button = gtk_check_button_new_with_label(RADIO_BUTTON_HTML_EMAIL); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_HTML_EMAIL); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), xsane.email_html_mode); + gtk_box_pack_start(GTK_BOX(email_project_vbox), button, FALSE, FALSE, 2); + gtk_widget_show(button); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_html_mode_callback, NULL); + xsane.email_html_mode_widget = button; + + /* FILETYPE MENU */ + /* button box, active when project exists */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(email_project_vbox), hbox, FALSE, FALSE, 1); + gtk_widget_show(hbox); + + filetype_menu = gtk_menu_new(); + + filetype_nr = -1; + select_item = 0; + +#ifdef HAVE_LIBJPEG + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_JPEG); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_email_filetype_callback, (void *) XSANE_FILETYPE_JPEG); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.email_filetype) && (!strcasecmp(preferences.email_filetype, XSANE_FILETYPE_JPEG)) ) + { + select_item = filetype_nr; + } +#endif + + + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PDF); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_email_filetype_callback, (void *) XSANE_FILETYPE_PDF); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.email_filetype) && (!strcasecmp(preferences.email_filetype, XSANE_FILETYPE_PDF)) ) + { + select_item = filetype_nr; + } + + +#ifdef HAVE_LIBPNG +#ifdef HAVE_LIBZ + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNG); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_email_filetype_callback, (void *) XSANE_FILETYPE_PNG); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.email_filetype) && (!strcasecmp(preferences.email_filetype, XSANE_FILETYPE_PNG)) ) + { + select_item = filetype_nr; + } +#endif +#endif + + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PS); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_email_filetype_callback, (void *) XSANE_FILETYPE_PS); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.email_filetype) && (!strcasecmp(preferences.email_filetype, XSANE_FILETYPE_PS)) ) + { + select_item = filetype_nr; + } + + +#ifdef HAVE_LIBTIFF + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_TIFF); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_email_filetype_callback, (void *) XSANE_FILETYPE_TIFF); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.email_filetype) && (!strcasecmp(preferences.email_filetype, XSANE_FILETYPE_TIFF)) ) + { + select_item = filetype_nr; + } +#endif + + label = gtk_label_new(TEXT_EMAIL_FILETYPE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + filetype_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, filetype_option_menu, DESC_EMAIL_FILETYPE); + gtk_option_menu_set_menu(GTK_OPTION_MENU(filetype_option_menu), filetype_menu); + if (select_item >= 0) + { + gtk_option_menu_set_history(GTK_OPTION_MENU(filetype_option_menu), select_item); + } + gtk_box_pack_end(GTK_BOX(hbox), filetype_option_menu, FALSE, FALSE, 2); + gtk_widget_show(filetype_menu); + gtk_widget_show(filetype_option_menu); + + + /* attachment frame */ + attachment_frame = gtk_frame_new(TEXT_ATTACHMENTS); + gtk_box_pack_start(GTK_BOX(email_project_vbox), attachment_frame, FALSE, FALSE, 2); + gtk_widget_show(attachment_frame); + + /* attachment list */ + scrolled_window = gtk_scrolled_window_new(0, 0); + gtk_widget_set_size_request(scrolled_window, 200, 100); + gtk_container_add(GTK_CONTAINER(attachment_frame), scrolled_window); + gtk_widget_show(scrolled_window); + + list = gtk_list_new(); +/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */ + + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list); + gtk_widget_show(list); + xsane.project_list = list; + + + /* button box, active when project exists */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(email_project_vbox), hbox, FALSE, FALSE, 1); + + button = gtk_button_new_with_label(BUTTON_IMAGE_SHOW); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_show_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + +#if 0 + /* before we enable the edit function we have to make sure that the rename function + does also rename the image name of the opened viewer */ + button = gtk_button_new_with_label(BUTTON_IMAGE_EDIT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_edit_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); +#endif + + button = gtk_button_new_with_label(BUTTON_IMAGE_RENAME); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_rename_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_IMAGE_DELETE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_entry_delete_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + xsane_button_new_with_pixmap(email_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_email_entry_move_up_callback, list); + xsane_button_new_with_pixmap(email_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_email_entry_move_down_callback, list); + + gtk_widget_show(hbox); + + xsane.project_box = email_project_vbox; + + + /* set the main hbox */ + hbox = gtk_hbox_new(FALSE, 0); + xsane_separator_new(email_project_vbox, 2); + gtk_box_pack_end(GTK_BOX(email_scan_vbox), hbox, FALSE, FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); + gtk_widget_show(hbox); + + + email_project_exists_hbox = gtk_hbox_new(FALSE, 2); + gtk_box_pack_start(GTK_BOX(hbox), email_project_exists_hbox, TRUE, TRUE, 0); + + button = gtk_button_new_with_label(BUTTON_SEND_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_send, NULL); + gtk_box_pack_start(GTK_BOX(email_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_project_delete, NULL); + gtk_box_pack_start(GTK_BOX(email_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + gtk_widget_show(email_project_exists_hbox); + xsane.project_exists = email_project_exists_hbox; + + button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_email_project_create, NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + xsane.project_not_exists = button; + + /* progress bar */ + xsane.project_progress_bar = (GtkProgressBar *) gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(email_scan_vbox), (GtkWidget *) xsane.project_progress_bar, FALSE, FALSE, 0); + gtk_progress_set_show_text(GTK_PROGRESS(xsane.project_progress_bar), TRUE); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_widget_show(GTK_WIDGET(xsane.project_progress_bar)); + + + xsane.project_dialog = email_dialog; + + xsane_email_project_load(); + + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); + gtk_widget_show(email_dialog); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_set_sensitive(int sensitive) +{ + gtk_widget_set_sensitive(xsane.project_box, sensitive); + gtk_widget_set_sensitive(xsane.project_exists, sensitive); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_display_status() +{ + FILE *lockfile; + char buf[256]; + char filename[PATH_MAX]; + int val; + int i, c; + + DBG(DBG_proc, "xsane_email_project_display_status\n"); + + snprintf(filename, sizeof(filename), "%s/lockfile", preferences.email_project); + lockfile = fopen(filename, "rb"); /* read binary (b for win32) */ + + if (lockfile) + { + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* first line is email status */ + { + c = fgetc(lockfile); + buf[i++] = c; + } + buf[i-1] = 0; + + fscanf(lockfile, "%d\n", &val); + + fclose(lockfile); + + if ( (!strcmp(buf, TEXT_EMAIL_STATUS_SENDING)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SENT)) || + (!strcmp(buf, TEXT_PROJECT_STATUS_ERR_READ_PROJECT)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SMTP_ERR_FROM)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SMTP_ERR_RCPT)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SMTP_ERR_DATA)) || + (!strcmp(buf, TEXT_EMAIL_STATUS_SENT)) ) + { + if (strcmp(xsane.email_status, buf)) + { + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(buf); + + if (xsane.project_progress_bar) + { + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status)); + } + } + + xsane.email_progress_val = val / 100.0; + if (xsane.project_progress_bar) + { + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), xsane.email_progress_val); + } + + DBG(DBG_info, "reading from lockfile: email_status %s, email_progress_val %1.3f\n" , xsane.email_status, xsane.email_progress_val); + + if (strcmp(xsane.email_status, TEXT_EMAIL_STATUS_SENDING)) /* not sending */ + { + DBG(DBG_info, "removing %s\n", filename); + remove(filename); /* remove lockfile */ + + xsane.email_progress_val = 0.0; + + xsane_email_project_update_project_status(); + + if (xsane.project_dialog) + { + xsane_email_project_load(); + + xsane_email_project_set_sensitive(TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); + } + } + } + } + else + { + DBG(DBG_info, "no lockfile present\n"); + if (xsane.project_progress_bar) + { + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), xsane.email_progress_val); + } + + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static gint xsane_email_send_timer_callback(gpointer data) +{ + xsane_email_project_display_status(); + + if (strcmp(xsane.email_status, TEXT_EMAIL_STATUS_SENDING)) /* not sending */ + { + if (xsane_email_send_timer) + { + DBG(DBG_info, "disabling email send timer\n"); + xsane_email_send_timer = 0; + } + } + + return xsane_email_send_timer; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_load() +{ + FILE *projectfile; + char page[256]; + char *type; + char *extension; + char buf[256]; + char filename[PATH_MAX]; + GtkWidget *list_item; + int i; + int c; + + DBG(DBG_proc, "xsane_email_project_load\n"); + + if (xsane.email_status) + { + free(xsane.email_status); + xsane.email_status = NULL; + } + + if (xsane.email_receiver) + { + free(xsane.email_receiver); + xsane.email_receiver = NULL; + } + + if (xsane.email_filename) + { + free(xsane.email_filename); + xsane.email_filename = NULL; + } + + if (xsane.email_subject) + { + free(xsane.email_subject); + xsane.email_subject = NULL; + } + + g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.email_receiver_entry), GTK_SIGNAL_FUNC(xsane_email_receiver_changed_callback), 0); + g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.email_subject_entry), GTK_SIGNAL_FUNC(xsane_email_subject_changed_callback), 0); + g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.email_html_mode_widget), GTK_SIGNAL_FUNC(xsane_email_html_mode_callback), 0); + +#ifdef HAVE_GTK_TEXT_VIEW_H + gtk_text_buffer_set_text(GTK_TEXT_BUFFER(xsane.email_text_widget), "", 0); +#else + gtk_text_set_point(GTK_TEXT(xsane.email_text_widget), 0); + gtk_text_forward_delete(GTK_TEXT(xsane.email_text_widget), gtk_text_get_length(GTK_TEXT(xsane.email_text_widget))); +#endif + gtk_list_remove_items(GTK_LIST(xsane.project_list), GTK_LIST(xsane.project_list)->children); + + snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.email_project); + projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ + + if ((!projectfile) || (feof(projectfile))) + { + snprintf(filename, sizeof(filename), "%s/image-1.pnm", preferences.email_project); + xsane.email_filename=strdup(filename); + xsane_update_counter_in_filename(&xsane.email_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */ + + xsane.email_status=strdup(TEXT_PROJECT_STATUS_NOT_CREATED); + xsane.email_progress_val = 0.0; + + xsane.email_receiver=strdup(""); + gtk_entry_set_text(GTK_ENTRY(xsane.email_receiver_entry), (char *) xsane.email_receiver); + + xsane.email_subject=strdup(""); + gtk_entry_set_text(GTK_ENTRY(xsane.email_subject_entry), (char *) xsane.email_subject); + + gtk_widget_hide(xsane.project_exists); + gtk_widget_show(xsane.project_not_exists); + + gtk_widget_set_sensitive(xsane.project_box, FALSE); + gtk_widget_set_sensitive(xsane.project_exists, FALSE); + /* do not change sensitivity of email_project_entry_box here !!! */ + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + + xsane.email_project_save = 0; + } + else + { + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* first line is email status */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + if (strchr(page, '@')) + { + *strchr(page, '@') = 0; + } + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(page); + xsane.email_progress_val = 0.0; + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* second line is email address */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + xsane.email_receiver=strdup(page); + gtk_entry_set_text(GTK_ENTRY(xsane.email_receiver_entry), (char *) xsane.email_receiver); + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* third line is next email filename */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + snprintf(filename, sizeof(filename), "%s/%s", preferences.email_project, page); + xsane.email_filename=strdup(filename); + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* fourth line is subject */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + xsane.email_subject=strdup(page); + gtk_entry_set_text(GTK_ENTRY(xsane.email_subject_entry), (char *) xsane.email_subject); + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* fifth line is html/ascii */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + if (!strcasecmp("html", page)) + { + xsane.email_html_mode = 1; + } + else + { + xsane.email_html_mode = 0; + } + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane.email_html_mode_widget), xsane.email_html_mode); + + + while (!feof(projectfile)) + { + i=0; + c=0; + + while ((i<255) && (c != 10) && (c != EOF)) + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1]=0; + + if (!strcmp("mailtext:", page)) + { + break; /* emailtext follows */ + } + + extension = strrchr(page, '.'); + if (extension) + { + type = strdup(extension); + *extension = 0; + } + else + { + type = strdup(""); + } + + if (c > 1) + { + list_item = gtk_list_item_new_with_label(page); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); + gtk_widget_show(list_item); + } + } + + while (!feof(projectfile)) + { + i = fread(buf, 1, sizeof(buf), projectfile); +#ifdef HAVE_GTK_TEXT_VIEW_H + gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(xsane.email_text_widget), buf, i); +#else + gtk_text_insert(GTK_TEXT(xsane.email_text_widget), NULL, NULL, NULL, buf, i); +#endif + } + + if (!strcmp(xsane.email_status, TEXT_EMAIL_STATUS_SENDING)) /* email project is locked (sending) */ + { + xsane_email_project_set_sensitive(FALSE); + gtk_widget_set_sensitive(xsane.project_entry_box, TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + + if (xsane_email_send_timer == 0) + { + xsane_email_send_timer = gtk_timeout_add(100, (GtkFunction) xsane_email_send_timer_callback, NULL); + DBG(DBG_info, "enabling email send timer (%d)\n", xsane_email_send_timer); + } + } + else + { + xsane_email_project_set_sensitive(TRUE); + gtk_widget_set_sensitive(xsane.project_entry_box, TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); + } + + gtk_widget_show(xsane.project_exists); + gtk_widget_hide(xsane.project_not_exists); + + xsane.email_project_save = 1; + } + + if (projectfile) + { + fclose(projectfile); + } + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), xsane.email_progress_val); + + xsane_email_project_display_status(); + + g_signal_connect(GTK_OBJECT(xsane.email_html_mode_widget), "clicked", (GtkSignalFunc) xsane_email_html_mode_callback, NULL); + g_signal_connect(GTK_OBJECT(xsane.email_receiver_entry), "changed", (GtkSignalFunc) xsane_email_receiver_changed_callback, NULL); + g_signal_connect(GTK_OBJECT(xsane.email_subject_entry), "changed", (GtkSignalFunc) xsane_email_subject_changed_callback, NULL); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_delete() +{ + char *page; + char *type; + char file[256]; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + + DBG(DBG_proc, "xsane_email_project_delete\n"); + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(file, sizeof(file), "%s/%s%s", preferences.email_project, page, type); + free(page); + free(type); + remove(file); + list = list->next; + } + snprintf(file, sizeof(file), "%s/xsane-mail-list", preferences.email_project); + remove(file); + snprintf(file, sizeof(file), "%s", preferences.email_project); + rmdir(file); + + xsane_email_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_update_project_status() +{ + FILE *projectfile; + char filename[PATH_MAX]; + char buf[256]; + + snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.email_project); + projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */ + + snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */ + fprintf(projectfile, "%s\n", buf); /* first line is status of email */ + + fclose(projectfile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_email_project_save() +{ + FILE *projectfile; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + char *page; + char *type; + gchar *email_text; + char filename[256]; + + DBG(DBG_proc, "xsane_email_project_save\n"); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + mkdir(preferences.email_project, 0777); /* make sure directory exists */ + + snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.email_project); + + if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security */ + { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename); + xsane_back_gtk_error(buf, TRUE); + return; /* error */ + } + + projectfile = fopen(filename, "wb"); /* write binary (b for win32) */ + + if (xsane.email_status) + { + char buf[256]; + + snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */ + fprintf(projectfile, "%s\n", buf); /* first line is status of email */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + else + { + fprintf(projectfile, " \n"); /* no email status */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + + if (xsane.email_receiver) + { + fprintf(projectfile, "%s\n", xsane.email_receiver); /* second line is receiver phone number or address */ + } + else + { + fprintf(projectfile, "\n"); + } + + if (xsane.email_filename) + { + fprintf(projectfile, "%s\n", strrchr(xsane.email_filename, '/')+1); /* third line is next email filename */ + } + else + { + fprintf(projectfile, "\n"); + } + + if (xsane.email_subject) + { + fprintf(projectfile, "%s\n", xsane.email_subject); /* fourth line is subject */ + } + else + { + fprintf(projectfile, "\n"); + } + + if (xsane.email_html_mode) /* fith line is mode html/ascii */ + { + fprintf(projectfile, "html\n"); + } + else + { + fprintf(projectfile, "ascii\n"); + } + + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = (char *) gtk_object_get_data(list_item, "list_item_data"); + type = (char *) gtk_object_get_data(list_item, "list_item_type"); + fprintf(projectfile, "%s%s\n", page, type); + list = list->next; + } + + /* save email text */ + fprintf(projectfile, "mailtext:\n"); +#ifdef HAVE_GTK_TEXT_VIEW_H + { + GtkTextIter start, end; + + gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(xsane.email_text_widget), &start); + gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(xsane.email_text_widget), &end); + email_text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(xsane.email_text_widget), &start, &end, FALSE); + } +#else + email_text = gtk_editable_get_chars(GTK_EDITABLE(xsane.email_text_widget), 0, -1); +#endif + fprintf(projectfile, "%s", email_text); + + fclose(projectfile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_create() +{ + DBG(DBG_proc, "xsane_email_project_create\n"); + + if (strlen(preferences.email_project)) + { + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CREATED); + xsane_email_project_save(); + xsane_email_project_load(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_receiver_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_email_receiver_changed_callback\n"); + + if (xsane.email_receiver) + { + free((void *) xsane.email_receiver); + } + xsane.email_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane.email_project_save = 1; + xsane_email_project_display_status(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_subject_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_email_subject_changed_callback\n"); + + if (xsane.email_subject) + { + free((void *) xsane.email_subject); + } + xsane.email_subject = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane.email_project_save = 1; + xsane_email_project_display_status(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_project_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_email_project_changed_callback\n"); + + if (xsane.email_project_save) + { + xsane.email_project_save = 0; + xsane_email_project_save(); + } + + if (preferences.email_project) + { + free((void *) preferences.email_project); + } + preferences.email_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + xsane_email_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_html_mode_callback(GtkWidget * widget) +{ + DBG(DBG_proc, "xsane_email_html_mode_callback\n"); + + xsane.email_html_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0); + + /* we can save it because this routine is only called when the project already exists */ + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane.email_project_save = 1; + xsane_email_project_display_status(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_entry_move_up_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_email_entry_move_up\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position--; /* move up */ + newpos = position; + + if (position >= 0) + { + while (position>0) + { + item = item->next; + position--; + } + + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_email_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_entry_move_down_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_email_entry_move_down\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position++; /* move down */ + newpos = position; + + while ((position>0) && (item)) + { + item = item->next; + position--; + } + + if (item) + { + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_email_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +int xsane_email_entry_rename; + +static void xsane_email_entry_rename_button_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_email_entry_rename\n"); + + xsane_email_entry_rename = (int) data; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_entry_rename_callback(GtkWidget *widget, gpointer list) +{ + GtkWidget *list_item; + GList *select; + char *oldpage; + char *newpage; + char *type; + char oldfile[256]; + char newfile[256]; + + DBG(DBG_proc, "xsane_email_entry_rename_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + GtkWidget *rename_dialog; + GtkWidget *text; + GtkWidget *button; + GtkWidget *vbox, *hbox; + char filename[PATH_MAX]; + + list_item = select->data; + oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data")); + type = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_type")); + + xsane_set_sensitivity(FALSE); + + rename_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + xsane_set_window_icon(rename_dialog, 0); + + /* set the main vbox */ + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 0); + gtk_container_add(GTK_CONTAINER(rename_dialog), vbox); + gtk_widget_show(vbox); + + /* set the main hbox */ + hbox = gtk_hbox_new(FALSE, 0); + xsane_separator_new(vbox, 2); + gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); + gtk_widget_show(hbox); + + gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); + snprintf(filename, sizeof(filename), "%s %s", xsane.prog_name, WINDOW_EMAIL_RENAME); + gtk_window_set_title(GTK_WINDOW(rename_dialog), filename); + g_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_email_entry_rename_button_callback, (void *) -1); + gtk_widget_show(rename_dialog); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_IMAGENAME); + gtk_entry_set_max_length(GTK_ENTRY(text), 64); + gtk_entry_set_text(GTK_ENTRY(text), oldpage); + gtk_widget_set_size_request(text, 300, -1); + 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); +#else + 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); + 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); +#else + 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); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + + xsane_email_entry_rename = 0; + + while (xsane_email_entry_rename == 0) + { + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + } + + newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text))); + + if (xsane_email_entry_rename == 1) + { + gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage)); + + xsane_convert_text_to_filename(&oldpage); + xsane_convert_text_to_filename(&newpage); + snprintf(oldfile, sizeof(oldfile), "%s/%s%s", preferences.email_project, oldpage, type); + snprintf(newfile, sizeof(newfile), "%s/%s%s", preferences.email_project, newpage, type); + + rename(oldfile, newfile); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_email_project_save(); + } + + free(oldpage); + free(newpage); + + gtk_widget_destroy(rename_dialog); + + xsane_set_sensitivity(TRUE); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_entry_delete_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char file[256]; + + DBG(DBG_proc, "xsane_email_entry_delete_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(file, sizeof(file), "%s/%s%s", preferences.email_project, page, type); + free(page); + free(type); + remove(file); + gtk_widget_destroy(GTK_WIDGET(list_item)); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_email_project_save(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_show_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[256]; + + DBG(DBG_proc, "xsane_email_entry_show_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.email_project, page, type); + free(page); + free(type); + + xsane_viewer_new(filename, NULL, FALSE, filename, VIEWER_NO_MODIFICATION, IMAGE_SAVED); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#if 0 +static void xsane_email_edit_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[256]; + char outfilename[256]; + Image_info image_info; + int cancel_save = 0; + + DBG(DBG_proc, "xsane_email_entry_show_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.email_project, page, type); + free(page); + free(type); + + xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".pnm", XSANE_PATH_TMP); + xsane_copy_file_by_name(outfilename, filename, xsane.multipage_progress_bar, &cancel_save); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + xsane_viewer_new(outfilename, NULL, FALSE, filename, VIEWER_NO_NAME_MODIFICATION, IMAGE_SAVED); + } +} +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_create_email(int fd) +{ + FILE *attachment_file; + FILE *projectfile; + char *boundary="-----partseparator"; + char *image_filename; + char *email_text = NULL; + char *email_text_pos = NULL; + char **attachment_filename = NULL; + char *mime_type = NULL; + char buf[256]; + char filename[256]; + char content_id[256]; + char image[256]; + int i, j; + int c; + int attachments = 0; + int use_attachment = 0; + int email_text_size = 0; + int display_images_inline = FALSE; + + DBG(DBG_proc, "xsane_create_email\n"); + + snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.email_project); + projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ + + if ((!projectfile) || (feof(projectfile))) + { + DBG(DBG_error, "could not open email project file %s\n", filename); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_PROJECT_STATUS_ERR_READ_PROJECT); + xsane.email_progress_val = 0.0; + xsane_front_gtk_email_project_update_lockfile_status(); + + return; + } + + for (i=0; i<5; i++) /* skip 5 lines */ + { + j=0; + c=0; + while ((j<255) && (c != 10) && (c != EOF)) /* first line is email status */ + { + c = fgetc(projectfile); + j++; + } + } + + if (!strcmp(preferences.email_filetype, XSANE_FILETYPE_PNG)) + { + mime_type = "image/png"; + display_images_inline = TRUE; + } + else if (!strcmp(preferences.email_filetype, XSANE_FILETYPE_JPEG)) + { + mime_type = "image/jpeg"; + display_images_inline = TRUE; + } + else if (!strcmp(preferences.email_filetype, XSANE_FILETYPE_TIFF)) + { + mime_type = "image/tiff"; + display_images_inline = TRUE; + } + else if (!strcmp(preferences.email_filetype, XSANE_FILETYPE_PDF)) + { + mime_type = "doc/pdf"; + display_images_inline = FALSE; + } + else if (!strcmp(preferences.email_filetype, XSANE_FILETYPE_PS)) + { + mime_type = "doc/postscript"; + display_images_inline = FALSE; + } + else + { + mime_type = "doc/unknown"; + display_images_inline = FALSE; + } + + DBG(DBG_info, "reading list of attachments:\n"); + /* read list of attachments */ + while (!feof(projectfile)) + { + /* read next attachment line */ + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) + { + c = fgetc(projectfile); + image[i++] = c; + } + image[i-1]=0; + + if (strcmp("mailtext:", image) && (c > 1)) + { + char imagename[256]; + char *filename; + char *extension; + + DBG(DBG_info, " - %s\n", image); + + extension = strrchr(image, '.'); + if (extension) + { + *extension = 0; + } + + snprintf(imagename, sizeof(imagename), "%s%s", image, preferences.email_filetype); + filename=strdup(imagename); + xsane_convert_text_to_filename(&filename); + attachment_filename = realloc(attachment_filename, (attachments+1)*sizeof(void *)); + attachment_filename[attachments++] = strdup(filename); + free(filename); + } + else + { + break; + } + } + + /* read email text */ + while (!feof(projectfile)) + { + email_text = realloc(email_text, email_text_size+1025); /* increase email_text by 1KB */ + email_text_size += fread(email_text+email_text_size, 1, 1024, projectfile); /* read next KB */ + } + DBG(DBG_info, "%d bytes emailtext read\n", email_text_size); + + *(email_text + email_text_size) = 0; /* set end of text marker */ + email_text_pos = email_text; + + if (xsane.email_html_mode) /* create html email */ + { + DBG(DBG_info, "sending email in html format\n"); + + write_email_header(fd, preferences.email_from, preferences.email_reply_to, xsane.email_receiver, xsane.email_subject, boundary, 1 /* related */); + write_email_mime_html(fd, boundary); + + DBG(DBG_info, "sending email text\n"); + while (*email_text_pos != 0) + { + if (!strncasecmp("<image>", email_text_pos, 7)) /* insert image */ + { + email_text_pos += 6; /* <image> is 7 characters, 6 additional ones */ + + if (use_attachment < attachments) + { + image_filename = attachment_filename[use_attachment++]; + DBG(DBG_info, "inserting image cid for %s\n", image_filename); + snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ + + /* doc files like ps and pdf can not be displayed inline in html email */ + if (display_images_inline) + { + snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id); + } + write(fd, buf, strlen(buf)); + } + else /* more images selected than available */ + { + } + } + else if (*email_text_pos == 10) /* new line */ + { + snprintf(buf, sizeof(buf), "<br>\n"); + write(fd, buf, strlen(buf)); + } + else + { + write(fd, email_text_pos, 1); + } + email_text_pos++; + } + + while (use_attachment < attachments) /* append not already referenced images */ + { + image_filename = attachment_filename[use_attachment++]; + DBG(DBG_info, "appending image cid for %s\n", image_filename); + snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ + + /* doc files like ps and pdf can not be displayed inline in html email */ + if (display_images_inline) + { + snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id); + } + write(fd, buf, strlen(buf)); + } + + snprintf(buf, sizeof(buf), "</html>\n"); + write(fd, buf, strlen(buf)); + + + for (i=0; i<attachments; i++) + { + image_filename = attachment_filename[i]; + snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ + snprintf(filename, sizeof(filename), "%s/mail-%s", preferences.email_project, image_filename); + attachment_file = fopen(filename, "rb"); /* read, b=binary for win32 */ + + if (attachment_file) + { + DBG(DBG_info, "attaching file \"%s\" as \"%s\" with type %s\n", filename, image_filename, preferences.email_filetype); + write_email_attach_image(fd, boundary, content_id, mime_type, attachment_file, image_filename); + + remove(filename); + } + else /* could not open attachment file */ + { + DBG(DBG_error, "could not open attachment file \"%s\"\n", filename); + } + + free(attachment_filename[i]); + } + free(attachment_filename); + + write_email_footer(fd, boundary); + } + else /* ascii email */ + { + DBG(DBG_info, "sending email in ascii format\n"); + + write_email_header(fd, preferences.email_from, preferences.email_reply_to, xsane.email_receiver, xsane.email_subject, boundary, 0 /* not related */); + write_email_mime_ascii(fd, boundary); + + write(fd, email_text, strlen(email_text)); + write(fd, "\n\n", 2); + + for (i=0; i<attachments; i++) + { + image_filename = strdup(attachment_filename[i]); + snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ + snprintf(filename, sizeof(filename), "%s/mail-%s", preferences.email_project, image_filename); + attachment_file = fopen(filename, "rb"); /* read, b=binary for win32 */ + + if (attachment_file) + { + DBG(DBG_info, "attaching file \"%s\" as \"%s\" with type %s\n", filename, image_filename, preferences.email_filetype); + write_email_attach_image(fd, boundary, content_id, mime_type, attachment_file, image_filename); + + remove(filename); + } + else /* could not open attachment file */ + { + DBG(DBG_error, "could not oppen attachment png file \"%s\"\n", filename); + } + + free(image_filename); + free(attachment_filename[i]); + } + free(attachment_filename); + + write_email_footer(fd, boundary); + } + + free(email_text); + + if (projectfile) + { + fclose(projectfile); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_send_process() +{ + int fd_socket; + int status; + char *password; + int i; + + DBG(DBG_proc, "xsane_email_send_process\n"); + + password = strdup(preferences.email_auth_pass); + + for (i=0; i<strlen(password); i++) + { + password[i] ^= 0x53; + } + + /* pop3 authentication */ + if (preferences.email_authentication == EMAIL_AUTH_POP3) + { + fd_socket = open_socket(preferences.email_pop3_server, preferences.email_pop3_port); + + if (fd_socket < 0) /* could not open socket */ + { + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED); + xsane.email_progress_val = 0.0; + xsane_front_gtk_email_project_update_lockfile_status(); + + free(password); + + return; + } + + status = pop3_login(fd_socket, preferences.email_auth_user, password); + + close(fd_socket); + + if (status == -1) + { + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED); + xsane.email_progress_val = 0.0; + xsane_front_gtk_email_project_update_lockfile_status(); + + free(password); + + return; + } + + DBG(DBG_info, "POP3 authentication done\n"); + } + + + + /* smtp email */ + fd_socket = open_socket(preferences.email_smtp_server, preferences.email_smtp_port); + + if (fd_socket < 0) /* could not open socket */ + { + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED); + xsane.email_progress_val = 0.0; + xsane_front_gtk_email_project_update_lockfile_status(); + + free(password); + + return; + } + + + status = write_smtp_header(fd_socket, preferences.email_from, xsane.email_receiver, + preferences.email_authentication, preferences.email_auth_user, password); + if (status == -1) + { + return; + } + + + xsane_create_email(fd_socket); /* create email and write to socket */ + + write_smtp_footer(fd_socket); + + close(fd_socket); + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SENT); + xsane.email_progress_val = 1.0; + xsane_front_gtk_email_project_update_lockfile_status(); + + free(password); + + _exit(0); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_email_send() +{ + pid_t pid; + char *image; + char *type; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + char source_filename[PATH_MAX]; + char email_filename[PATH_MAX]; + int output_format; + int cancel_save = 0; + + DBG(DBG_proc, "xsane_email_send\n"); + + xsane_set_sensitivity(FALSE); /* do not allow changing xsane mode */ + + while (gtk_events_pending()) + { + DBG(DBG_info, "calling gtk_main_iteration\n"); + gtk_main_iteration(); + } + + if (xsane.email_project_save) + { + xsane.email_project_save = 0; + xsane_email_project_save(); + } + + xsane.email_progress_size = 0; + xsane.email_progress_bytes = 0; + + while (list) + { + list_item = GTK_OBJECT(list->data); + image = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&image); + snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.email_project, image, type); + snprintf(email_filename, sizeof(email_filename), "%s/mail-%s%s", preferences.email_project, image, preferences.email_filetype); + free(image); + free(type); + DBG(DBG_info, "converting %s to %s\n", source_filename, email_filename); + output_format = xsane_identify_output_format(email_filename, NULL, NULL); + xsane_save_image_as(email_filename, source_filename, output_format, xsane.project_progress_bar, &cancel_save); + list = list->next; + xsane.email_progress_size += xsane_get_filesize(email_filename); + } + + + if (xsane.email_status) + { + free(xsane.email_status); + } + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SENDING); + xsane.email_progress_val = 0.0; + xsane_email_project_display_status(); /* display status before creating lockfile! */ + xsane_front_gtk_email_project_update_lockfile_status(); /* create lockfile and update status */ + + pid = fork(); + + if (pid == 0) /* new process */ + { + FILE *ipc_file = NULL; + + if (xsane.ipc_pipefd[0]) + { + close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ + ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); + } + + 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()); + + xsane_email_send_process(); + + _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */ + } + else /* parent process */ + { + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ + } + + xsane_email_send_timer = gtk_timeout_add(100, (GtkFunction) xsane_email_send_timer_callback, NULL); + DBG(DBG_info, "enabling email send timer (%d)\n", xsane_email_send_timer); + + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ +#if 0 + gtk_widget_set_sensitive(xsane.project_entry_box, TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + gtk_widget_set_sensitive(xsane.project_box, FALSE); +#endif + xsane_email_project_set_sensitive(FALSE); +} + +#endif diff --git a/src/xsane-email-project.h b/src/xsane-email-project.h new file mode 100644 index 0000000..2148ef2 --- /dev/null +++ b/src/xsane-email-project.h @@ -0,0 +1,61 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-email-project.h + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + 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. */ + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifndef HAVE_XSANE_EMAIL_PROJECT_H +#define HAVE_XSANE_EMAIL_PROJECT_H + + +#include "xsane.h" +#include "xsane-back-gtk.h" +#include "xsane-front-gtk.h" +#include "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBPNG +# ifdef HAVE_LIBZ +# include <png.h> +# include <zlib.h> +# endif +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifdef XSANE_ACTIVATE_EMAIL + +extern void xsane_email_dialog(void); +extern void xsane_email_project_save(void); + +#endif + +#endif diff --git a/src/xsane-fax-project.c b/src/xsane-fax-project.c new file mode 100644 index 0000000..0d0e4dc --- /dev/null +++ b/src/xsane-fax-project.c @@ -0,0 +1,1312 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-fax-project.c + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + 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 "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-multipage-project.h" +#include "xsane-fax-project.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBPNG +#ifdef HAVE_LIBZ +#include <png.h> +#include <zlib.h> +#endif +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* forward declarations: */ + +void xsane_fax_dialog(void); +void xsane_fax_project_save(void); + +static gint xsane_fax_dialog_delete(); +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); +static void xsane_fax_project_update_project_status(); +static void xsane_fax_project_load(void); +static void xsane_fax_project_delete(void); +static void xsane_fax_project_create(void); +static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_show_callback(GtkWidget *widget, gpointer data); +static void xsane_fax_send(void); + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static gint xsane_fax_dialog_delete() +{ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +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 *pages_frame; + GdkBitmap *mask; + GdkPixmap *pixmap; + + DBG(DBG_proc, "xsane_fax_dialog\n"); + + if (xsane.project_dialog) + { + return; /* window already is open */ + } + + /* GTK_WINDOW_TOPLEVEL looks better but does not place it nice*/ + fax_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + + snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_FAX_PROJECT); + gtk_window_set_title(GTK_WINDOW(fax_dialog), buf); + g_signal_connect(GTK_OBJECT(fax_dialog), "delete_event", (GtkSignalFunc) xsane_fax_dialog_delete, NULL); + xsane_set_window_icon(fax_dialog, 0); + gtk_window_add_accel_group(GTK_WINDOW(fax_dialog), xsane.accelerator_group); + + /* set the main vbox */ + fax_scan_vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(fax_scan_vbox), 0); + gtk_container_add(GTK_CONTAINER(fax_dialog), fax_scan_vbox); + gtk_widget_show(fax_scan_vbox); + + /* fax project */ + + hbox = gtk_hbox_new(FALSE, 2); + 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); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPROJECT); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_project); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_project_changed_callback, NULL); + + xsane.project_entry = text; + xsane.project_entry_box = hbox; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + fax_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(fax_scan_vbox), fax_project_vbox, TRUE, TRUE, 0); + gtk_widget_show(fax_project_vbox); + + /* fax receiver */ + + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 1); + + gtk_widget_realize(fax_dialog); + + pixmap = gdk_pixmap_create_from_xpm_d(fax_dialog->window, &mask, xsane.bg_trans, (gchar **) faxreceiver_xpm); + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gdk_drawable_unref(pixmap); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXRECEIVER); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL); + + xsane.fax_receiver_entry = text; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + /* fine mode */ + button = gtk_check_button_new_with_label(RADIO_BUTTON_FINE_MODE); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_FINE_MODE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.fax_fine_mode); + gtk_box_pack_start(GTK_BOX(fax_project_vbox), button, FALSE, FALSE, 2); + gtk_widget_show(button); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_fine_mode_callback, NULL); + + + /* pages frame */ + pages_frame = gtk_frame_new(TEXT_PAGES); + gtk_box_pack_start(GTK_BOX(fax_project_vbox), pages_frame, TRUE, TRUE, 2); + gtk_widget_show(pages_frame); + + scrolled_window = gtk_scrolled_window_new(0, 0); + gtk_widget_set_size_request(scrolled_window, 200, 100); + gtk_container_add(GTK_CONTAINER(pages_frame), scrolled_window); + gtk_widget_show(scrolled_window); + + list = gtk_list_new(); +/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */ + + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list); + + gtk_widget_show(list); + + xsane.project_list = list; + + + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 1); + + button = gtk_button_new_with_label(BUTTON_FILE_INSERT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_insert_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_PAGE_SHOW); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_show_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_PAGE_RENAME); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_PAGE_DELETE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_delete_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_up_callback, list); + xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_down_callback, list); + + gtk_widget_show(hbox); + + xsane.project_box = fax_project_vbox; + + /* set the main hbox */ + hbox = gtk_hbox_new(FALSE, 0); + xsane_separator_new(fax_project_vbox, 2); + gtk_box_pack_end(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); + gtk_widget_show(hbox); + + + fax_project_exists_hbox = gtk_hbox_new(FALSE, 2); + gtk_box_pack_start(GTK_BOX(hbox), fax_project_exists_hbox, TRUE, TRUE, 0); + + button = gtk_button_new_with_label(BUTTON_SEND_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_send, NULL); + gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_delete, NULL); + gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + gtk_widget_show(fax_project_exists_hbox); + xsane.project_exists = fax_project_exists_hbox; + + button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_create, NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + xsane.project_not_exists = button; + + /* progress bar */ + xsane.project_progress_bar = (GtkProgressBar *) gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(fax_scan_vbox), (GtkWidget *) xsane.project_progress_bar, FALSE, FALSE, 0); + gtk_progress_set_show_text(GTK_PROGRESS(xsane.project_progress_bar), TRUE); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_widget_show(GTK_WIDGET(xsane.project_progress_bar)); + + + xsane.project_dialog = fax_dialog; + + xsane_fax_project_load(); + + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); + gtk_widget_show(fax_dialog); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_load() +{ + FILE *projectfile; + char page[256]; + char filename[PATH_MAX]; + GtkWidget *list_item; + int i; + int c; + + DBG(DBG_proc, "xsane_fax_project_load\n"); + + if (xsane.fax_status) + { + free(xsane.fax_status); + xsane.fax_status = NULL; + } + + if (xsane.fax_receiver) + { + free(xsane.fax_receiver); + xsane.fax_receiver = NULL; + } + + g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.fax_receiver_entry), GTK_SIGNAL_FUNC(xsane_fax_receiver_changed_callback), 0); + gtk_list_remove_items(GTK_LIST(xsane.project_list), GTK_LIST(xsane.project_list)->children); + + snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); + projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ + + if ((!projectfile) || (feof(projectfile))) + { + xsane.fax_status=strdup(TEXT_PROJECT_STATUS_NOT_CREATED); + + snprintf(filename, sizeof(filename), "%s/page-1.pnm", preferences.fax_project); + xsane.fax_filename=strdup(filename); + xsane_update_counter_in_filename(&xsane.fax_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */ + + xsane.fax_receiver=strdup(""); + gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver); + + gtk_widget_set_sensitive(xsane.project_box, FALSE); + gtk_widget_hide(xsane.project_exists); + gtk_widget_show(xsane.project_not_exists); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + } + else + { + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* first line is fax status */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + if (strchr(page, '@')) + { + *strchr(page, '@') = 0; + } + xsane.fax_status = strdup(page); + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* second line is receiver phone number or address */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + xsane.fax_receiver=strdup(page); + gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver); + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* third line is next fax filename */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + snprintf(filename, sizeof(filename), "%s/%s", preferences.fax_project, page); + xsane.fax_filename=strdup(filename); + + while (!feof(projectfile)) + { + i=0; + c=0; + + while ((i<255) && (c != 10) && (c != EOF)) + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1]=0; + + if (c > 1) + { + char *type; + char *extension; + + extension = strrchr(page, '.'); + if (extension) + { + type = strdup(extension); + *extension = 0; + } + else + { + type = strdup(""); + } + + list_item = gtk_list_item_new_with_label(page); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); + gtk_widget_show(list_item); + } + } + gtk_widget_set_sensitive(xsane.project_box, TRUE); + gtk_widget_show(xsane.project_exists); + gtk_widget_hide(xsane.project_not_exists); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); + } + + if (projectfile) + { + fclose(projectfile); + } + + g_signal_connect(GTK_OBJECT(xsane.fax_receiver_entry), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_delete() +{ + char *page; + char file[256]; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + + DBG(DBG_proc, "xsane_fax_project_delete\n"); + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + xsane_convert_text_to_filename(&page); + snprintf(file, sizeof(file), "%s/%s.pnm", preferences.fax_project, page); + free(page); + remove(file); + list = list->next; + } + snprintf(file, sizeof(file), "%s/xsane-fax-list", preferences.fax_project); + remove(file); + snprintf(file, sizeof(file), "%s", preferences.fax_project); + rmdir(file); + + xsane_fax_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_update_project_status() +{ + FILE *projectfile; + char filename[PATH_MAX]; + char buf[256]; + + snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); + projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */ + + snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */ + fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ + + fclose(projectfile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_fax_project_save() +{ + FILE *projectfile; + char *page; + char *type; + char filename[256]; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + + DBG(DBG_proc, "xsane_fax_project_save\n"); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + mkdir(preferences.fax_project, 0777); /* make sure directory exists */ + + snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); + + if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security +*/ + { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename); + xsane_back_gtk_error(buf, TRUE); + return; /* error */ + } + projectfile = fopen(filename, "wb"); /* write binary (b for win32) */ + + if (!projectfile) + { + xsane_back_gtk_error(ERR_CREATE_FAX_PROJECT, TRUE); + + return; + } + + if (xsane.fax_status) + { + char buf[256]; + + snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */ + fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + else + { + fprintf(projectfile, " \n"); /* no mail status */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + + if (xsane.fax_receiver) + { + fprintf(projectfile, "%s\n", xsane.fax_receiver); /* first line is receiver phone number or address */ + } + else + { + fprintf(projectfile, "\n"); + } + + if (xsane.fax_filename) + { + fprintf(projectfile, "%s\n", strrchr(xsane.fax_filename, '/')+1); /* second line is next fax filename */ + } + else + { + fprintf(projectfile, "\n"); + } + + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = (char *) gtk_object_get_data(list_item, "list_item_data"); + type = (char *) gtk_object_get_data(list_item, "list_item_type"); + fprintf(projectfile, "%s%s\n", page, type); + list = list->next; + } + fclose(projectfile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_create() +{ + DBG(DBG_proc, "xsane_fax_project_create\n"); + + if (strlen(preferences.fax_project)) + { + if (xsane.fax_status) + { + free(xsane.fax_status); + } + xsane.fax_status = strdup(TEXT_PROJECT_STATUS_CREATED); + xsane_fax_project_save(); + xsane_fax_project_load(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_fax_receiver_changed_callback\n"); + + if (xsane.fax_status) + { + free(xsane.fax_status); + } + xsane.fax_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + + if (xsane.fax_receiver) + { + free((void *) xsane.fax_receiver); + } + xsane.fax_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + xsane_fax_project_save(); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_fax_project_changed_callback\n"); + + if (preferences.fax_project) + { + free((void *) preferences.fax_project); + } + preferences.fax_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + xsane_fax_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_fine_mode_callback(GtkWidget * widget) +{ + DBG(DBG_proc, "xsane_fax_fine_mode_callback\n"); + + preferences.fax_fine_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_fax_entry_move_up\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position--; /* move up */ + newpos = position; + + if (position >= 0) + { + while (position>0) + { + item = item->next; + position--; + } + + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + xsane_fax_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_fax_entry_move_down\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position++; /* move down */ + newpos = position; + + while ((position>0) && (item)) + { + item = item->next; + position--; + } + + if (item) + { + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + xsane_fax_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +int xsane_fax_entry_rename; + +static void xsane_fax_entry_rename_button_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_fax_entry_rename\n"); + + xsane_fax_entry_rename = (int) data; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list) +{ + GtkWidget *list_item; + GList *select; + char *oldpage; + char *newpage; + char *type; + char oldfile[256]; + char newfile[256]; + + DBG(DBG_proc, "xsane_fax_entry_rename_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + GtkWidget *rename_dialog; + GtkWidget *text; + GtkWidget *button; + GtkWidget *vbox, *hbox; + char filename[PATH_MAX]; + + list_item = select->data; + oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data")); + type = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_type")); + + xsane_set_sensitivity(FALSE); + + rename_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + xsane_set_window_icon(rename_dialog, 0); + + /* set the main vbox */ + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 0); + gtk_container_add(GTK_CONTAINER(rename_dialog), vbox); + gtk_widget_show(vbox); + + /* set the main hbox */ + hbox = gtk_hbox_new(FALSE, 0); + xsane_separator_new(vbox, 2); + gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); + gtk_widget_show(hbox); + + gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); + snprintf(filename, sizeof(filename), "%s %s", xsane.prog_name, WINDOW_FAX_RENAME); + gtk_window_set_title(GTK_WINDOW(rename_dialog), filename); + g_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_fax_entry_rename_button_callback,(void *) -1); + gtk_widget_show(rename_dialog); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPAGENAME); + gtk_entry_set_max_length(GTK_ENTRY(text), 64); + gtk_entry_set_text(GTK_ENTRY(text), oldpage); + gtk_widget_set_size_request(text, 300, -1); + 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); +#else + 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); + 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); +#else + 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); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + + xsane_fax_entry_rename = 0; + + while (xsane_fax_entry_rename == 0) + { + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + } + + newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text))); + + if (xsane_fax_entry_rename == 1) + { + gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage)); + + xsane_convert_text_to_filename(&oldpage); + xsane_convert_text_to_filename(&newpage); + snprintf(oldfile, sizeof(oldfile), "%s/%s%s", preferences.fax_project, oldpage, type); + snprintf(newfile, sizeof(newfile), "%s/%s%s", preferences.fax_project, newpage, type); + + rename(oldfile, newfile); + + xsane_fax_project_save(); + } + + free(oldpage); + free(newpage); + free(type); + + gtk_widget_destroy(rename_dialog); + + xsane_set_sensitivity(TRUE); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list) +{ + GtkWidget *list_item; + char filename[PATH_MAX]; + char windowname[255]; + + DBG(DBG_proc, "xsane_fax_entry_insert_callback\n"); + + xsane_set_sensitivity(FALSE); + + snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_FAX_INSERT, preferences.fax_project); + filename[0] = 0; + + 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 */ + { + FILE *sourcefile; + + sourcefile = fopen(filename, "rb"); /* read binary (b for win32) */ + if (sourcefile) /* file exists */ + { + char buf[1024]; + + fgets(buf, sizeof(buf), sourcefile); + + if (!strncmp("%!PS", buf, 4)) + { + FILE *destfile; + char destpath[PATH_MAX]; + char *destfilename; + char *destfiletype; + char *extension; + + destfilename = strdup(strrchr(filename, '/')+1); + extension = strrchr(destfilename, '.'); + if (extension) + { + destfiletype = strdup(extension); + *extension = 0; + } + else + { + destfiletype = strdup(""); + } + + snprintf(destpath, sizeof(destpath), "%s/%s%s", preferences.fax_project, destfilename, destfiletype); + /* copy file to project directory */ + if (xsane_create_secure_file(destpath)) /* remove possibly existing symbolic links for security +*/ + { + fclose(sourcefile); + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, destpath); + xsane_back_gtk_error(buf, TRUE); + return; /* error */ + } + + destfile = fopen(destpath, "wb"); /* write binary (b for win32) */ + + if (destfile) /* file is created */ + { + fprintf(destfile, "%s\n", buf); + + while (!feof(sourcefile)) + { + fgets(buf, sizeof(buf), sourcefile); + fprintf(destfile, "%s", buf); + } + + fclose(destfile); + + + /* add filename to fax page list */ + list_item = gtk_list_item_new_with_label(destfilename); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(destfilename)); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(destfiletype)); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); + gtk_widget_show(list_item); + + xsane_update_counter_in_filename(&xsane.fax_filename, TRUE, 1, preferences.filename_counter_len); + xsane_fax_project_save(); + free(destfilename); + } + else /* file could not be created */ + { + snprintf(buf, sizeof(buf), "%s %s", ERR_OPEN_FAILED, filename); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + } + } + else + { + snprintf(buf, sizeof(buf), ERR_FILE_NOT_POSTSCRIPT, filename); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + } + + fclose(sourcefile); + } + else + { + char buf[256]; + snprintf(buf, sizeof(buf), ERR_FILE_NOT_EXISTS, filename); + xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); + } + } + + umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ + + xsane_set_sensitivity(TRUE); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[PATH_MAX]; + + DBG(DBG_proc, "xsane_fax_entry_delete_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.fax_project, page, type); + free(page); + free(type); + remove(filename); + gtk_widget_destroy(GTK_WIDGET(list_item)); + xsane_fax_project_save(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_show_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[256]; + + DBG(DBG_proc, "xsane_fax_entry_show_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.fax_project, page, type); + + if (!strncmp(type, ".pnm", 4)) + { + /* when we do not allow any modification then we can work with the original file */ + /* so we do not have to copy the image into a dummy file here! */ + + xsane_viewer_new(filename, NULL, FALSE, filename, VIEWER_NO_MODIFICATION, IMAGE_SAVED); + } + else if (!strncmp(type, ".ps", 3)) + { + char *arg[100]; + int argnr; + pid_t pid; + + argnr = xsane_parse_options(preferences.fax_viewer, arg); + arg[argnr++] = filename; + arg[argnr] = 0; + + pid = fork(); + + if (pid == 0) /* new process */ + { + FILE *ipc_file = NULL; + + if (xsane.ipc_pipefd[0]) + { + close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ + ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); + } + + DBG(DBG_info, "trying to change user id fo 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_FAX_VIEWER, preferences.fax_viewer); + + /* send error message via IPC pipe to parent process */ + if (ipc_file) + { + fprintf(ipc_file, "%s %s:\n%s", ERR_FAILED_EXEC_FAX_VIEWER, preferences.fax_viewer, 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 /* parent process */ + { + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ + } + } + + free(page); + free(type); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static int xsane_fax_convert_pnm_to_ps(char *source_filename, char *fax_filename) +{ + FILE *outfile; + FILE *infile; + Image_info image_info; + char buf[256]; + int cancel_save; + + /* open progressbar */ + snprintf(buf, sizeof(buf), "%s - %s", PROGRESS_CONVERTING_DATA, source_filename); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), buf); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + while (gtk_events_pending()) + { + DBG(DBG_info, "calling gtk_main_iteration\n"); + gtk_main_iteration(); + } + + infile = fopen(source_filename, "rb"); /* read binary (b for win32) */ + if (infile != 0) + { + xsane_read_pnm_header(infile, &image_info); + + umask((mode_t) preferences.image_umask); /* define image file permissions */ + outfile = fopen(fax_filename, "wb"); /* b = binary mode for win32 */ + umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ + if (outfile != 0) + { + 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 */ + + DBG(DBG_info, "imagewidth = %f 1/72 inch\n", imagewidth); + DBG(DBG_info, "imageheight = %f 1/72 inch\n", imageheight); + + xsane_save_ps(outfile, infile, + &image_info, + imagewidth, imageheight, + preferences.fax_leftoffset * 72.0/MM_PER_INCH, /* paper_left_margin */ + preferences.fax_bottomoffset * 72.0/MM_PER_INCH, /* paper_bottom_margin */ + 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 */ + xsane.project_progress_bar, + &cancel_save); + fclose(outfile); + } + else + { + char buf[256]; + + DBG(DBG_info, "open of faxfile `%s'failed : %s\n", fax_filename, strerror(errno)); + + snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, fax_filename, strerror(errno)); + xsane_back_gtk_error(buf, TRUE); + } + + fclose(infile); + } + else + { + char buf[256]; + + DBG(DBG_info, "open of faxfile `%s'failed : %s\n", source_filename, strerror(errno)); + + snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, source_filename, strerror(errno)); + xsane_back_gtk_error(buf, TRUE); + } + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + while (gtk_events_pending()) + { + DBG(DBG_info, "calling gtk_main_iteration\n"); + gtk_main_iteration(); + } + + return 0; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_fax_send() +{ + char *page; + char *type; + char *fax_type=".ps"; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + pid_t pid; + char *arg[1000]; + char buf[256]; + char source_filename[PATH_MAX]; + char fax_filename[PATH_MAX]; + int argnr = 0; + int i; + + DBG(DBG_proc, "xsane_fax_send\n"); + + if (list) + { + if (!xsane_front_gtk_option_defined(xsane.fax_receiver)) + { + snprintf(buf, sizeof(buf), "%s\n", ERR_SENDFAX_RECEIVER_MISSING); + xsane_back_gtk_error(buf, TRUE); + return; + } + + xsane_set_sensitivity(FALSE); + /* gtk_widget_set_sensitive(xsane.project_dialog, FALSE); */ + + argnr = xsane_parse_options(preferences.fax_command, arg); + + if (preferences.fax_fine_mode) /* fine mode */ + { + if (xsane_front_gtk_option_defined(preferences.fax_fine_option)) + { + arg[argnr++] = strdup(preferences.fax_fine_option); + } + } + else /* normal mode */ + { + if (xsane_front_gtk_option_defined(preferences.fax_normal_option)) + { + arg[argnr++] = strdup(preferences.fax_normal_option); + } + } + + if (xsane_front_gtk_option_defined(preferences.fax_receiver_option)) + { + arg[argnr++] = strdup(preferences.fax_receiver_option); + } + arg[argnr++] = strdup(xsane.fax_receiver); + + if (xsane_front_gtk_option_defined(preferences.fax_postscript_option)) + { + arg[argnr++] = strdup(preferences.fax_postscript_option); + } + + while ((list) && (argnr<999)) /* add pages to options */ + { + list_item = GTK_OBJECT(list->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.fax_project, page, type); + snprintf(fax_filename, sizeof(fax_filename), "%s/%s-fax%s", preferences.fax_project, page, fax_type); + if (xsane_create_secure_file(fax_filename)) /* remove possibly existing symbolic links for security */ + { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, fax_filename); + xsane_back_gtk_error(buf, TRUE); + return; /* error */ + } + + if (!strncmp(type, ".pnm", 4)) + { + DBG(DBG_info, "converting %s to %s\n", source_filename, fax_filename); + xsane_fax_convert_pnm_to_ps(source_filename, fax_filename); + } + else if (!strncmp(type, ".ps", 3)) + { + int cancel_save = 0; + xsane_copy_file_by_name(fax_filename, source_filename, xsane.project_progress_bar, &cancel_save); + } + arg[argnr++] = strdup(fax_filename); + list = list->next; + free(page); + free(type); + } + + arg[argnr] = 0; + + pid = fork(); + + if (pid == 0) /* new process */ + { + FILE *ipc_file = NULL; + + if (xsane.ipc_pipefd[0]) + { + close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ + ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); + } + + 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_FAX_CMD, preferences.fax_command); + + /* send error message via IPC pipe to parent process */ + if (ipc_file) + { + fprintf(ipc_file, "%s %s:\n%s", ERR_FAILED_EXEC_FAX_CMD, preferences.fax_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 /* parent process */ + { + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ + } + + for (i=0; i<argnr; i++) + { + free(arg[i]); + } + + if (xsane.fax_status) + { + free(xsane.fax_status); + } + xsane.fax_status = strdup(TEXT_FAX_STATUS_QUEUEING_FAX); + xsane_fax_project_update_project_status(); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + while (pid) + { + int status = 0; + pid_t pid_status = waitpid(pid, &status, WNOHANG); + + if ( (pid_status < 0 ) || (pid == pid_status) ) + { + pid = 0; /* ok, child process has terminated */ + } + + while (gtk_events_pending()) + { + gtk_main_iteration(); + } + } + + /* delete created fax files */ + list = (GList *) GTK_LIST(xsane.project_list)->children; + while (list) + { + list_item = GTK_OBJECT(list->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + xsane_convert_text_to_filename(&page); + snprintf(fax_filename, sizeof(fax_filename), "%s/%s-fax%s", preferences.fax_project, page, fax_type); + free(page); + + DBG(DBG_info, "removing %s\n", fax_filename); + remove(fax_filename); + + list = list->next; + } + + xsane.fax_status = strdup(TEXT_FAX_STATUS_FAX_QUEUED); + xsane_fax_project_update_project_status(); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + xsane_set_sensitivity(TRUE); + + /* gtk_widget_set_sensitive(xsane.project_dialog, TRUE); */ + } + + DBG(DBG_info, "xsane_fax_send: done\n"); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-fax-project.h b/src/xsane-fax-project.h new file mode 100644 index 0000000..775aafc --- /dev/null +++ b/src/xsane-fax-project.h @@ -0,0 +1,78 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-fax-project.h + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + 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. */ + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifndef HAVE_XSANE_FAX_PROJECT_H +#define HAVE_XSANE_FAX_PROJECT_H + +#include "xsane.h" +#include "xsane-back-gtk.h" +#include "xsane-front-gtk.h" +#include "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-multipage-project.h" +#include "xsane-fax-project.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBPNG +#ifdef HAVE_LIBZ +#include <png.h> +#include <zlib.h> +#endif +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +extern void xsane_fax_dialog(void); +extern void xsane_fax_project_save(void); + +#if 0 +static gint xsane_fax_dialog_delete(); +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); +static void xsane_fax_project_update_project_status(); +static void xsane_fax_project_load(void); +static void xsane_fax_project_delete(void); +static void xsane_fax_project_create(void); +static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list); +static void xsane_fax_show_callback(GtkWidget *widget, gpointer data); +static void xsane_fax_send(void); +#endif + +#endif diff --git a/src/xsane-front-gtk.c b/src/xsane-front-gtk.c index 3e9196c..4eb4add 100644 --- a/src/xsane-front-gtk.c +++ b/src/xsane-front-gtk.c @@ -356,9 +356,18 @@ void xsane_set_all_resolutions(void) if (new_resolution < 0) /* set y resolution not possible */ { new_resolution = xsane_set_resolution(xsane.well_known.dpi, xsane.resolution); /* set common resolution if necessary */ - xsane.resolution = new_resolution; - xsane.resolution_x = new_resolution; - xsane.resolution_y = new_resolution; + if (new_resolution > 0) + { + xsane.resolution = new_resolution; + xsane.resolution_x = new_resolution; + xsane.resolution_y = new_resolution; + } + else + { + xsane.resolution = 72.0; + xsane.resolution_x = 72.0; + xsane.resolution_y = 72.0; + } } else /* we were able to set y resolution */ { @@ -441,7 +450,7 @@ void xsane_define_maximum_output_size() preview_set_maximum_output_size(xsane.preview, preferences.fax_width, preferences.fax_height, 0); break; - case XSANE_MAIL: + case XSANE_EMAIL: preview_set_maximum_output_size(xsane.preview, INF, INF, 0); break; @@ -1396,6 +1405,9 @@ void xsane_outputfilename_new(GtkWidget *vbox) GtkWidget *xsane_filename_counter_step_menu; GtkWidget *xsane_filename_counter_step_item; GtkWidget *xsane_label; + GtkWidget *pixmapwidget; + GdkBitmap *mask; + GdkPixmap *pixmap; gchar buf[200]; int i,j; int select_item = 0; @@ -1432,13 +1444,15 @@ void xsane_outputfilename_new(GtkWidget *vbox) 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, 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 1); /* filename counter step */ - - xsane_label = gtk_label_new(TEXT_FILENAME_COUNTER_STEP); - gtk_box_pack_start(GTK_BOX(hbox), xsane_label, FALSE, FALSE, 2); - gtk_widget_show(xsane_label); + + pixmap = gdk_pixmap_create_from_xpm_d(xsane.xsane_window->window, &mask, xsane.bg_trans, (gchar **) step_xpm); + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gtk_widget_show(pixmapwidget); + gdk_drawable_unref(pixmap); xsane_filename_counter_step_option_menu = gtk_option_menu_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_filename_counter_step_option_menu, DESC_FILENAME_COUNTER_STEP); @@ -1689,7 +1703,7 @@ int xsane_identify_output_format(char *filename, char *filetype, char **ext) DBG(DBG_proc, "xsane_identify_output_format\n"); - if ((filetype) && (*filetype)) + if ((filetype) && (*filetype) && (!xsane.force_filename)) { extension = filetype+1; /* go to filetype, skip leading dot */ } @@ -1897,7 +1911,7 @@ int xsane_display_eula(int ask_for_accept) XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT, TEXT_EULA, TEXT_HOMEPAGE, XSANE_HOMEPAGE, - TEXT_EMAIL, XSANE_EMAIL); + TEXT_EMAIL_ADR, XSANE_EMAIL_ADR); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); @@ -2141,7 +2155,7 @@ void xsane_display_gpl(void) XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT, TEXT_GPL, TEXT_HOMEPAGE, XSANE_HOMEPAGE, - TEXT_EMAIL, XSANE_EMAIL); + TEXT_EMAIL_ADR, XSANE_EMAIL_ADR); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); @@ -2433,24 +2447,105 @@ int xsane_front_gtk_getname_dialog(const char *dialog_title, const char *desc_te } /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef XSANE_ACTIVATE_MAIL -void xsane_front_gtk_mail_project_update_lockfile_status() + +void xsane_front_gtk_list_entries_swap(GtkWidget *list_item_1, GtkWidget *list_item_2) +{ + char *page1; + char *page2; + char *type1; + char *type2; + + DBG(DBG_proc, "xsane_front_gtk_list_entries_swap\n"); + + page1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_data"); + type1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_type"); + page2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_data"); + type2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_type"); + + gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_1))->data), page2); + gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_2))->data), page1); + gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_data", page2); + gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_type", type2); + gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_data", page1); + gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_type", type1); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_front_gtk_add_process_to_list(pid_t pid) +{ + XsaneChildprocess *newprocess; + + DBG(DBG_proc, "xsane_front_gtk_add_process_to_list(%d)\n", pid); + + newprocess = malloc(sizeof(XsaneChildprocess)); + newprocess->pid = pid; + newprocess->next = xsane.childprocess_list; + xsane.childprocess_list = newprocess; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +int xsane_front_gtk_option_defined(char *string) +{ + if (string) + { + while (*string == ' ') /* skip spaces */ + { + string++; + } + if (*string != 0) + { + return 1; + } + } + return 0; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ +#ifdef XSANE_ACTIVATE_EMAIL +void xsane_front_gtk_email_project_update_lockfile_status() { FILE *lockfile; char filename[PATH_MAX]; - snprintf(filename, sizeof(filename), "%s/lockfile", preferences.mail_project); + snprintf(filename, sizeof(filename), "%s/lockfile", preferences.email_project); lockfile = fopen(filename, "wb"); if (lockfile) { - fprintf(lockfile, "%s\n", xsane.mail_status); /* first line is status of mail */ - fprintf(lockfile, "%3d\n", (int) (xsane.mail_progress_val * 100)); + fprintf(lockfile, "%s\n", xsane.email_status); /* first line is status of mail */ + fprintf(lockfile, "%3d\n", (int) (xsane.email_progress_val * 100)); } fclose(lockfile); } #endif /* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_project_dialog_close() +{ + DBG(DBG_proc, "xsane_project_dialog_close\n"); + + if (xsane.project_dialog == NULL) + { + return; + } + + if (xsane.project_dialog) + { + xsane_window_get_position(xsane.project_dialog, &xsane.project_dialog_posx, &xsane.project_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); + } + + gtk_widget_destroy(xsane.project_dialog); + + xsane.project_dialog = NULL; + xsane.project_list = NULL; + xsane.project_progress_bar = NULL; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + diff --git a/src/xsane-front-gtk.h b/src/xsane-front-gtk.h index 53d63a6..1db2b7b 100644 --- a/src/xsane-front-gtk.h +++ b/src/xsane-front-gtk.h @@ -81,7 +81,11 @@ extern void xsane_display_gpl(void); extern void xsane_window_get_position(GtkWidget *gtk_window, gint *x, gint *y); extern void xsane_widget_test_uposition(GtkWidget *gtk_window); extern int xsane_front_gtk_getname_dialog(const char *dialog_title, const char *desc_text, char *oldname, char **newname); -extern void xsane_front_gtk_mail_project_update_lockfile_status(); +extern void xsane_front_gtk_list_entries_swap(GtkWidget *list_item_1, GtkWidget *list_item_2); +extern void xsane_front_gtk_add_process_to_list(pid_t pid); +extern int xsane_front_gtk_option_defined(char *string); +extern void xsane_front_gtk_email_project_update_lockfile_status(void); +extern void xsane_project_dialog_close(void); /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-gamma.c b/src/xsane-gamma.c index d43eecf..fdae222 100644 --- a/src/xsane-gamma.c +++ b/src/xsane-gamma.c @@ -2157,6 +2157,12 @@ static gint xsane_histogram_win_delete(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_histogram_win_delete\n"); + if (preferences.show_histogram) + { + xsane_window_get_position(xsane.histogram_dialog, &xsane.histogram_dialog_posx, &xsane.histogram_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), xsane.histogram_dialog_posx, xsane.histogram_dialog_posy); + } + gtk_widget_hide(widget); preferences.show_histogram = FALSE; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_histogram_widget), preferences.show_histogram); @@ -2183,7 +2189,7 @@ void xsane_create_histogram_dialog(const char *devicetext) xsane.histogram_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable(GTK_WINDOW(xsane.histogram_dialog), FALSE); - gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), XSANE_HISTOGRAM_POS_X, XSANE_HISTOGRAM_POS_Y); + gtk_window_move(GTK_WINDOW(xsane.histogram_dialog), XSANE_HISTOGRAM_DIALOG_POS_X, XSANE_HISTOGRAM_DIALOG_POS_Y); g_signal_connect(GTK_OBJECT(xsane.histogram_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_histogram_win_delete), NULL); sprintf(windowname, "%s %s", WINDOW_HISTOGRAM, devicetext); gtk_window_set_title(GTK_WINDOW(xsane.histogram_dialog), windowname); diff --git a/src/xsane-icons.c b/src/xsane-icons.c index b09d2f4..f06e3cd 100644 --- a/src/xsane-icons.c +++ b/src/xsane-icons.c @@ -905,7 +905,7 @@ const char *person_xpm[] = /* --------------------------------------------------- */ -const char *mail_xpm[] = +const char *email_xpm[] = { /* width height num_colors chars_per_pixel */ " 20 20 4 1", @@ -939,7 +939,7 @@ const char *mail_xpm[] = /* --------------------------------------------------- */ -const char *mailreceiver_xpm[] = +const char *emailreceiver_xpm[] = { /* width height num_colors chars_per_pixel */ " 20 20 3 1", @@ -1005,6 +1005,110 @@ const char *subject_xpm[] = /* --------------------------------------------------- */ +const char *adf_xpm[] = +{ +/* width height num_colors chars_per_pixel */ +" 20 20 4 1", +/* colors */ +"* c #000000", +". c #ffffff", +"- c #e0e0e0", +" none", +/* pixels */ +" ************", +" *..........*", +" ***..........*", +" *.*..........*", +" ***.*..........*", +" *.*.*..........*", +" ***.*.*..........*", +" *.*.*.*..........*", +" *.*.*.*..........*", +" *.*.*.*..........*", +" *.*.*.*..........*", +" *.*.*.*..........*", +" *.*.*.*..........*", +" *.*.*.************", +" *.*.*..........* ", +" *.*.************ ", +" *.*..........* ", +" *.************ ", +" *..........* ", +" ************ " +}; + +/* --------------------------------------------------- */ + + +const char *target_xpm[] = +{ +/* width height num_colors chars_per_pixel */ +" 20 20 4 1", +/* colors */ +"+ c #101010", +"* c #d06060", +". c #ffffff", +" none", +/* pixels */ +" ** ", +" ++**++ ", +" ++..**..++ ", +" +....**....+ ", +" +...++**++...+ ", +" +...+..**..+...+ ", +" +..+...**...+..+ ", +" +..+...+**+...+..+ ", +" +..+..+.**.+..+..+ ", +"*********..*********", +"*********..*********", +" +..+..+.**.+..+..+ ", +" +..+...+**+...+..+ ", +" +..+...**...+..+ ", +" +...+..**..+...+ ", +" +...++**++...+ ", +" +....**....+ ", +" ++..**..++ ", +" ++**++ ", +" ** " +}; + +/* --------------------------------------------------- */ + +const char *multipage_xpm[] = +{ +/* width height num_colors chars_per_pixel */ +" 20 20 5 1", +/* colors */ +"* c #000000", +". c #ffffff", +"- c #e0e0e0", +"# c #90a0b0", +" none", +/* pixels */ +"--------------------", +"-######************-", +"-######*..........*-", +"-###****..........*-", +"-###*..*..........*-", +"-****..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..*..........*-", +"-*..*..************-", +"-*..*..........*###-", +"-*..************###-", +"-*..........*######-", +"-************######-", +"--------------------" +}; + +/* --------------------------------------------------- */ + const char *colormode_xpm[] = { /* width height num_colors chars_per_pixel */ " 20 20 23 1", @@ -1057,6 +1161,38 @@ const char *colormode_xpm[] = { /* --------------------------------------------------- */ +const char *step_xpm[] = { +/* width height num_colors chars_per_pixel */ +" 20 20 3 1", +/* colors */ +". c #000000", +"# c #a0a0a0", +" none", +/* pixels */ +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ...... ", +" ...... ", +" .....#. ", +" ......#. ", +" ........#. ", +" .........#....... ", +" .................. ", +" .................. ", +" .................. ", +" ...... ....... ", +" ", +" ", +" " +}; + +/* --------------------------------------------------- */ + const char *medium_xpm[] = { /* width height num_colors chars_per_pixel */ " 20 20 3 1", diff --git a/src/xsane-icons.h b/src/xsane-icons.h index 900ad17..1e4e1a1 100644 --- a/src/xsane-icons.h +++ b/src/xsane-icons.h @@ -60,10 +60,14 @@ extern const char *mirror_x_xpm[]; extern const char *mirror_y_xpm[]; extern const char *fax_xpm[]; extern const char *faxreceiver_xpm[]; -extern const char *mail_xpm[]; -extern const char *mailreceiver_xpm[]; +extern const char *email_xpm[]; +extern const char *emailreceiver_xpm[]; extern const char *subject_xpm[]; +extern const char *adf_xpm[]; +extern const char *target_xpm[]; +extern const char *multipage_xpm[]; extern const char *colormode_xpm[]; +extern const char *step_xpm[]; extern const char *medium_xpm[]; extern const char *medium_edit_xpm[]; extern const char *medium_delete_xpm[]; diff --git a/src/xsane-multipage-project.c b/src/xsane-multipage-project.c new file mode 100644 index 0000000..5a6f1ab --- /dev/null +++ b/src/xsane-multipage-project.c @@ -0,0 +1,1087 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-multipage-project.c + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + Copyright (C) 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 "stdio.h" +#include "xsane.h" +#include "xsane-back-gtk.h" +#include "xsane-front-gtk.h" +#include "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBTIFF +# include "tiffio.h" +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* forward declarations: */ + + +void xsane_multipage_dialog(void); +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_changed_callback(GtkWidget *widget, gpointer data); +static void xsane_multipage_project_load(void); +static void xsane_multipage_project_delete(void); +static void xsane_multipage_project_create(void); +static void xsane_multipage_entry_move_up_callback(GtkWidget *widget, gpointer list); +static void xsane_multipage_entry_move_down_callback(GtkWidget *widget, gpointer list); +static void xsane_multipage_entry_delete_callback(GtkWidget *widget, gpointer list); +static void xsane_multipage_show_callback(GtkWidget *widget, gpointer data); +static void xsane_multipage_edit_callback(GtkWidget *widget, gpointer data); +static void xsane_multipage_save_file(void); + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static gint xsane_multipage_dialog_delete() +{ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_filetype_callback(GtkWidget *filetype_option_menu, char *filetype) +{ + DBG(DBG_proc, "xsane_multipage_filetype_callback(%s)\n", filetype); + + if (preferences.multipage_filetype) + { + free(preferences.multipage_filetype); + } + preferences.multipage_filetype = strdup(filetype); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_multipage_dialog() +{ + GtkWidget *multipage_dialog, *multipage_scan_vbox, *multipage_project_vbox; + GtkWidget *multipage_project_exists_hbox, *button; + GtkWidget *hbox; + GtkWidget *scrolled_window, *list; + GtkWidget *pixmapwidget, *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; + + DBG(DBG_proc, "xsane_multipage_dialog\n"); + + if (xsane.project_dialog) + { + return; /* window already is open */ + } + + /* GTK_WINDOW_TOPLEVEL looks better but does not place it nice*/ + multipage_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + + snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_MULTIPAGE_PROJECT); + gtk_window_set_title(GTK_WINDOW(multipage_dialog), buf); + g_signal_connect(GTK_OBJECT(multipage_dialog), "delete_event", (GtkSignalFunc) xsane_multipage_dialog_delete, NULL); + xsane_set_window_icon(multipage_dialog, 0); + gtk_window_add_accel_group(GTK_WINDOW(multipage_dialog), xsane.accelerator_group); + + /* set the main vbox */ + multipage_scan_vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(multipage_scan_vbox), 0); + gtk_container_add(GTK_CONTAINER(multipage_dialog), multipage_scan_vbox); + gtk_widget_show(multipage_scan_vbox); + + + /* multipage project */ + hbox = gtk_hbox_new(FALSE, 2); + 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); + + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MULTIPAGE_PROJECT); + gtk_entry_set_max_length(GTK_ENTRY(text), 128); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.multipage_project); + gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); + g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_multipage_project_changed_callback, NULL); + + xsane.project_entry = text; + xsane.project_entry_box = hbox; + + gtk_widget_show(pixmapwidget); + gtk_widget_show(text); + gtk_widget_show(hbox); + + multipage_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(multipage_scan_vbox), multipage_project_vbox, TRUE, TRUE, 0); + gtk_widget_show(multipage_project_vbox); + + + /* FILETYPE MENU */ + /* button box, active when project exists */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(multipage_project_vbox), hbox, FALSE, FALSE, 1); + gtk_widget_show(hbox); + + filetype_menu = gtk_menu_new(); + + filetype_nr = -1; + select_item = 0; + + + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PDF); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_multipage_filetype_callback, (void *) XSANE_FILETYPE_PDF); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.multipage_filetype) && (!strcasecmp(preferences.multipage_filetype, XSANE_FILETYPE_PDF)) ) + { + select_item = filetype_nr; + } + + + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PS); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_multipage_filetype_callback, (void *) XSANE_FILETYPE_PS); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.multipage_filetype) && (!strcasecmp(preferences.multipage_filetype, XSANE_FILETYPE_PS)) ) + { + select_item = filetype_nr; + } + + +#ifdef HAVE_LIBTIFF + filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_TIFF); + gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); + g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_multipage_filetype_callback, (void *) XSANE_FILETYPE_TIFF); + gtk_widget_show(filetype_item); + filetype_nr++; + if ( (preferences.multipage_filetype) && (!strcasecmp(preferences.multipage_filetype, XSANE_FILETYPE_TIFF)) ) + { + select_item = filetype_nr; + } +#endif + + label = gtk_label_new(TEXT_MULTIPAGE_FILETYPE); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); + + filetype_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, filetype_option_menu, DESC_MULTIPAGE_FILETYPE); + gtk_option_menu_set_menu(GTK_OPTION_MENU(filetype_option_menu), filetype_menu); + if (select_item >= 0) + { + gtk_option_menu_set_history(GTK_OPTION_MENU(filetype_option_menu), select_item); + } + gtk_box_pack_end(GTK_BOX(hbox), filetype_option_menu, FALSE, FALSE, 2); + gtk_widget_show(filetype_menu); + gtk_widget_show(filetype_option_menu); + + + /* pages frame */ + pages_frame = gtk_frame_new(TEXT_PAGES); + gtk_box_pack_start(GTK_BOX(multipage_project_vbox), pages_frame, TRUE, TRUE, 2); + gtk_widget_show(pages_frame); + + /* pages list */ + scrolled_window = gtk_scrolled_window_new(0, 0); + gtk_widget_set_size_request(scrolled_window, 200, 100); + gtk_container_add(GTK_CONTAINER(pages_frame), scrolled_window); + gtk_widget_show(scrolled_window); + + list = gtk_list_new(); +/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */ + + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list); + gtk_widget_show(list); + xsane.project_list = list; + + + /* button box, active when project exists */ + hbox = gtk_hbox_new(FALSE, 2); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); + gtk_box_pack_start(GTK_BOX(multipage_project_vbox), hbox, FALSE, FALSE, 1); + + button = gtk_button_new_with_label(BUTTON_IMAGE_SHOW); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_show_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_IMAGE_EDIT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_edit_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_IMAGE_DELETE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_entry_delete_callback, list); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + xsane_button_new_with_pixmap(multipage_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_multipage_entry_move_up_callback, list); + xsane_button_new_with_pixmap(multipage_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_multipage_entry_move_down_callback, list); + + gtk_widget_show(hbox); + + xsane.project_box = multipage_project_vbox; + + /* set the main hbox */ + hbox = gtk_hbox_new(FALSE, 0); + xsane_separator_new(multipage_scan_vbox, 2); + gtk_box_pack_end(GTK_BOX(multipage_scan_vbox), hbox, FALSE, FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); + gtk_widget_show(hbox); + + + multipage_project_exists_hbox = gtk_hbox_new(FALSE, 2); + gtk_box_pack_start(GTK_BOX(hbox), multipage_project_exists_hbox, TRUE, TRUE, 0); + + button = gtk_button_new_with_label(BUTTON_SAVE_MULTIPAGE); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_save_file, NULL); + gtk_box_pack_start(GTK_BOX(multipage_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_project_delete, NULL); + gtk_box_pack_start(GTK_BOX(multipage_project_exists_hbox), button, TRUE, TRUE, 0); + gtk_widget_show(button); + + gtk_widget_show(multipage_project_exists_hbox); + xsane.project_exists = multipage_project_exists_hbox; + + button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_multipage_project_create, NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); + xsane.project_not_exists = button; + + /* progress bar */ + xsane.project_progress_bar = (GtkProgressBar *) gtk_progress_bar_new(); + gtk_box_pack_start(GTK_BOX(multipage_scan_vbox), (GtkWidget *) xsane.project_progress_bar, FALSE, FALSE, 0); + gtk_progress_set_show_text(GTK_PROGRESS(xsane.project_progress_bar), TRUE); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_widget_show(GTK_WIDGET(xsane.project_progress_bar)); + + + xsane.project_dialog = multipage_dialog; + + xsane_multipage_project_load(); + + gtk_window_move(GTK_WINDOW(xsane.project_dialog), xsane.project_dialog_posx, xsane.project_dialog_posy); + gtk_widget_show(multipage_dialog); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_set_sensitive(int sensitive) +{ + gtk_widget_set_sensitive(xsane.project_box, sensitive); + gtk_widget_set_sensitive(xsane.project_exists, sensitive); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_load() +{ + FILE *projectfile; + char page[256]; + char filename[PATH_MAX]; + GtkWidget *list_item; + int i; + int c; + + DBG(DBG_proc, "xsane_multipage_project_load\n"); + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + xsane.multipage_status = NULL; + } + + if (xsane.multipage_filename) + { + free(xsane.multipage_filename); + xsane.multipage_filename = NULL; + } + + gtk_list_remove_items(GTK_LIST(xsane.project_list), GTK_LIST(xsane.project_list)->children); + + snprintf(filename, sizeof(filename), "%s/xsane-multipage-list", preferences.multipage_project); + projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ + + if ((!projectfile) || (feof(projectfile))) + { + snprintf(filename, sizeof(filename), "%s/image-1.pnm", preferences.multipage_project); + xsane.multipage_filename=strdup(filename); + xsane_update_counter_in_filename(&xsane.multipage_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */ + + xsane.multipage_status=strdup(TEXT_PROJECT_STATUS_NOT_CREATED); + + gtk_widget_hide(xsane.project_exists); + gtk_widget_show(xsane.project_not_exists); + + gtk_widget_set_sensitive(xsane.project_box, FALSE); + gtk_widget_set_sensitive(xsane.project_exists, FALSE); + /* do not change sensitivity of multipage_project_entry_box here !!! */ + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + } + else + { + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* first line is multipage status */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + if (strchr(page, '@')) + { + *strchr(page, '@') = 0; + } + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(page); + + + i=0; + c=0; + while ((i<255) && (c != 10) && (c != EOF)) /* second line is next multipage filename */ + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1] = 0; + + snprintf(filename, sizeof(filename), "%s/%s", preferences.multipage_project, page); + xsane.multipage_filename=strdup(filename); + + while (!feof(projectfile)) + { + i=0; + c=0; + + while ((i<255) && (c != 10) && (c != EOF)) + { + c = fgetc(projectfile); + page[i++] = c; + } + page[i-1]=0; + + if (c > 1) + { + char *type; + char *extension; + + extension = strrchr(page, '.'); + if (extension) + { + type = strdup(extension); + *extension = 0; + } + else + { + type = strdup(""); + } + + list_item = gtk_list_item_new_with_label(page); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); + gtk_widget_show(list_item); + } + } + + if (!strcmp(xsane.multipage_status, TEXT_PROJECT_STATUS_FILE_SAVING)) + { + xsane_multipage_project_set_sensitive(FALSE); + gtk_widget_set_sensitive(xsane.project_entry_box, TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); + } + else + { + xsane_multipage_project_set_sensitive(TRUE); + gtk_widget_set_sensitive(xsane.project_entry_box, TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); + } + + gtk_widget_show(xsane.project_exists); + gtk_widget_hide(xsane.project_not_exists); + } + + if (projectfile) + { + fclose(projectfile); + } + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_delete() +{ + char *page; + char *type; + char file[256]; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + + DBG(DBG_proc, "xsane_multipage_project_delete\n"); + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(file, sizeof(file), "%s/%s%s", preferences.multipage_project, page, type); + free(page); + free(type); + remove(file); + list = list->next; + } + snprintf(file, sizeof(file), "%s/xsane-multipage-list", preferences.multipage_project); + remove(file); + snprintf(file, sizeof(file), "%s", preferences.multipage_project); + rmdir(file); + + xsane_multipage_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_multipage_project_save() +{ + FILE *projectfile; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + char *page; + char *type; + char filename[256]; + + DBG(DBG_proc, "xsane_multipage_project_save\n"); + + umask((mode_t) preferences.directory_umask); /* define new file permissions */ + mkdir(preferences.multipage_project, 0777); /* make sure directory exists */ + + snprintf(filename, sizeof(filename), "%s/xsane-multipage-list", preferences.multipage_project); + + if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security */ + { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename); + xsane_back_gtk_error(buf, TRUE); + return; /* error */ + } + + projectfile = fopen(filename, "wb"); /* write binary (b for win32) */ + + if (xsane.multipage_status) + { + char buf[256]; + + snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.multipage_status); /* fill 32 characters status line */ + fprintf(projectfile, "%s\n", buf); /* first line is status of multipage */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + else + { + fprintf(projectfile, " \n"); /* no multipage status */ + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), ""); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } + + if (xsane.multipage_filename) + { + fprintf(projectfile, "%s\n", strrchr(xsane.multipage_filename, '/')+1); /* third line is next multipage filename */ + } + else + { + fprintf(projectfile, "\n"); + } + + while (list) + { + list_item = GTK_OBJECT(list->data); + page = (char *) gtk_object_get_data(list_item, "list_item_data"); + type = (char *) gtk_object_get_data(list_item, "list_item_type"); + fprintf(projectfile, "%s%s\n", page, type); + list = list->next; + } + + fclose(projectfile); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_create() +{ + DBG(DBG_proc, "xsane_multipage_project_create\n"); + + if (strlen(preferences.multipage_project)) + { + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CREATED); + xsane_multipage_project_save(); + xsane_multipage_project_load(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_project_changed_callback(GtkWidget *widget, gpointer data) +{ + DBG(DBG_proc, "xsane_multipage_project_changed_callback\n"); + + if (preferences.multipage_project) + { + free((void *) preferences.multipage_project); + } + preferences.multipage_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); + + xsane_multipage_project_load(); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_entry_move_up_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_multipage_entry_move_up\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position--; /* move up */ + newpos = position; + + if (position >= 0) + { + while (position>0) + { + item = item->next; + position--; + } + + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_multipage_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_entry_move_down_callback(GtkWidget *widget, gpointer list) +{ + GList *select; + GList *item = GTK_LIST(list)->children; + GtkWidget *list_item_1; + GtkWidget *list_item_2; + int position; + int newpos; + + DBG(DBG_proc, "xsane_multipage_entry_move_down\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item_1 = select->data; + + position = gtk_list_child_position(GTK_LIST(list), list_item_1); + position++; /* move down */ + newpos = position; + + while ((position>0) && (item)) + { + item = item->next; + position--; + } + + if (item) + { + list_item_2 = item->data; + if (list_item_2) + { + xsane_front_gtk_list_entries_swap(list_item_1, list_item_2); + gtk_list_select_item(GTK_LIST(list), newpos); + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_multipage_project_save(); + } + } + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_entry_delete_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char file[256]; + + DBG(DBG_proc, "xsane_multipage_entry_delete_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(file, sizeof(file), "%s/%s%s", preferences.multipage_project, page, type); + free(page); + free(type); + remove(file); + gtk_widget_destroy(GTK_WIDGET(list_item)); + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_multipage_project_save(); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_show_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[256]; + + DBG(DBG_proc, "xsane_multipage_entry_show_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.multipage_project, page, type); + free(page); + free(type); + + xsane_viewer_new(filename, NULL, FALSE, filename, VIEWER_NO_MODIFICATION, IMAGE_SAVED); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_edit_callback(GtkWidget *widget, gpointer list) +{ + GtkObject *list_item; + GList *select; + char *page; + char *type; + char filename[PATH_MAX]; + char outfilename[PATH_MAX]; + int cancel_save = 0; + + DBG(DBG_proc, "xsane_multipage_entry_show_callback\n"); + + select = GTK_LIST(list)->selection; + if (select) + { + list_item = GTK_OBJECT(select->data); + page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&page); + snprintf(filename, sizeof(filename), "%s/%s%s", preferences.multipage_project, page, type); + free(page); + free(type); + + xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".pnm", XSANE_PATH_TMP); + xsane_copy_file_by_name(outfilename, filename, xsane.project_progress_bar, &cancel_save); + + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + xsane_multipage_project_save(); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + xsane_viewer_new(outfilename, NULL, FALSE, filename, VIEWER_NO_NAME_MODIFICATION, IMAGE_SAVED); + } +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_multipage_save_file() +{ + char *image; + char *type; + GList *list = (GList *) GTK_LIST(xsane.project_list)->children; + GtkObject *list_item; + char source_filename[PATH_MAX]; + char multipage_filename[PATH_MAX]; + int output_format; + int cancel_save = 0; + int page, pages = 0; + FILE *outfile = NULL, *imagefile = NULL; +#ifdef HAVE_LIBTIFF + TIFF *tiffile = NULL; +#endif + Image_info image_info; + long int source_size = 0; + float imagewidth, imageheight; + char buf[255]; + struct pdf_xref xref; + + DBG(DBG_proc, "xsane_multipage_save_file\n"); + + xsane_set_sensitivity(FALSE); /* do not allow changing xsane mode */ + xsane_multipage_project_set_sensitive(FALSE); + + while (gtk_events_pending()) + { + DBG(DBG_info, "calling gtk_main_iteration\n"); + gtk_main_iteration(); + } + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVING); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + + snprintf(multipage_filename, sizeof(multipage_filename), "%s%s", preferences.multipage_project, preferences.multipage_filetype); + output_format = xsane_identify_output_format(multipage_filename, NULL, NULL); + + while (list) + { + list_item = GTK_OBJECT(list->data); + image = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&image); + snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.multipage_project, image, type); + free(image); + free(type); + list = list->next; + pages++; + source_size += xsane_get_filesize(source_filename); + } + + + if ( (preferences.overwrite_warning) ) /* test if filename already used */ + { + FILE *testfile; + + testfile = fopen(multipage_filename, "rb"); /* read binary (b for win32) */ + if (testfile) /* filename used: skip */ + { + char buf[256]; + + fclose(testfile); + + snprintf(buf, sizeof(buf), WARN_FILE_EXISTS, multipage_filename); + if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_OVERWRITE, BUTTON_CANCEL, TRUE /* wait */) == FALSE) + { + xsane_set_sensitivity(TRUE); + xsane_multipage_project_set_sensitive(TRUE); + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + return; + } + } + } + + + if (xsane_create_secure_file(multipage_filename)) /* remove possibly existing symbolic links for security */ + { + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, multipage_filename); + xsane_back_gtk_error(buf, TRUE); + xsane_multipage_project_set_sensitive(TRUE); + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ + return; + } + + DBG(DBG_info, "xsane_multipage_save_file: created %s\n", multipage_filename); + + + if ((output_format == XSANE_PS) || (output_format == XSANE_PDF)) + { + outfile = fopen(multipage_filename, "wb"); /* b = binary mode for win32 */ + if (!outfile) + { + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, multipage_filename); + xsane_back_gtk_error(buf, TRUE); + xsane_multipage_project_set_sensitive(TRUE); + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVING_ERROR); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + return; + } + + if (output_format == XSANE_PS) + { + xsane_save_ps_create_document_header(outfile, pages, preferences.save_ps_flatdecoded); + } + else if (output_format == XSANE_PDF) + { + xsane_save_pdf_create_document_header(outfile, &xref, pages, preferences.save_pdf_flatdecoded); + } + } +#ifdef HAVE_LIBTIFF + else if (output_format == XSANE_TIFF) + { + tiffile = TIFFOpen(multipage_filename, "w"); + if (!tiffile) + { + snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_OPEN_FAILED, multipage_filename); + xsane_back_gtk_error(buf, TRUE); + xsane_multipage_project_set_sensitive(TRUE); + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVING_ERROR); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + return; + } + } +#endif + else + { + snprintf(buf, sizeof(buf), "%s unsupported multipage fileformat\n", ERR_DURING_SAVE); + xsane_back_gtk_error(buf, TRUE); + xsane_multipage_project_set_sensitive(TRUE); + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVING_ERROR); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + return; + } + + + list = (GList *) GTK_LIST(xsane.project_list)->children; + + page = 1; + while (list) + { + list_item = GTK_OBJECT(list->data); + image = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); + type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); + xsane_convert_text_to_filename(&image); + snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.multipage_project, image, type); + + snprintf(buf, sizeof(buf), "%s %s %d/%d", _(xsane.multipage_status), PROGRESS_PAGE, page, pages); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), buf); + + imagefile = fopen(source_filename, "rb"); /* read binary (b for win32) */ + if (!imagefile) + { + DBG(DBG_error, "could not read imagefile %s\n", source_filename); + return; + } + + xsane_read_pnm_header(imagefile, &image_info); + + if (output_format == XSANE_PS) + { + 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_page(outfile, page, + imagefile, &image_info, imagewidth, imageheight, + 0, 0, imagewidth, imageheight, 0 /* portrait top left */, + preferences.save_ps_flatdecoded, + xsane.project_progress_bar, &cancel_save); + } + else if (output_format == XSANE_PDF) + { + 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_page(outfile, &xref, page, + imagefile, &image_info, imagewidth, imageheight, + 0, 0, imagewidth, imageheight, 0 /* portrait top left */, + preferences.save_pdf_flatdecoded, + 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, + xsane.project_progress_bar, &cancel_save); + } +#endif + + free(image); + free(type); + list = list->next; + + page++; + } + + if (output_format == XSANE_PS) + { + 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; + } + + fclose(outfile); + } + else if (output_format == XSANE_PDF) + { + xsane_save_pdf_create_document_trailer(outfile, &xref, pages); + + 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; + } + + fclose(outfile); + } +#ifdef HAVE_LIBTIFF + else if (output_format == XSANE_TIFF) + { + TIFFClose(tiffile); + } +#endif + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + xsane.multipage_status = NULL; + } + + if (cancel_save) + { + xsane.multipage_status = strdup(ERR_DURING_SAVE); + } + else + { + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_FILE_SAVED); + } + xsane_multipage_project_save(); + + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + + xsane_multipage_project_set_sensitive(TRUE); + xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ +} + + diff --git a/src/xsane-multipage-project.h b/src/xsane-multipage-project.h new file mode 100644 index 0000000..5f945eb --- /dev/null +++ b/src/xsane-multipage-project.h @@ -0,0 +1,58 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-multipage-project.h + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + Copyright (C) 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. */ + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifndef HAVE_XSANE_MULTIPAGE_PROJECT_H +#define HAVE_XSANE_MULTIPAGE_PROJECT_H + + +#include "xsane.h" +#include "xsane-back-gtk.h" +#include "xsane-front-gtk.h" +#include "xsane-preview.h" +#include "xsane-save.h" +#include "xsane-gamma.h" +#include "xsane-setup.h" +#include "xsane-scan.h" +#include "xsane-rc-io.h" +#include "xsane-device-preferences.h" +#include "xsane-preferences.h" +#include "xsane-icons.h" +#include "xsane-batch-scan.h" + +#ifdef HAVE_LIBPNG +# ifdef HAVE_LIBZ +# include <png.h> +# include <zlib.h> +# endif +#endif + +#include <sys/wait.h> + +/* ---------------------------------------------------------------------------------------------------------------------- */ + + +extern void xsane_multipage_dialog(void); +extern void xsane_multipage_project_save(void); + +#endif diff --git a/src/xsane-preferences.c b/src/xsane-preferences.c index b38cdbb..011e802 100644 --- a/src/xsane-preferences.c +++ b/src/xsane-preferences.c @@ -69,20 +69,22 @@ Preferences preferences = 0.0, /* fax_leftoffset */ 0.0, /* fax_bottomoffset */ 1, /* fax_fine_mode */ -#ifdef XSANE_ACTIVATE_MAIL + 1, /* fax_ps_flatdecoded */ +#ifdef XSANE_ACTIVATE_EMAIL 0, /* no default from email address */ 0, /* no default reply to email address */ 0, /* no default smtp server */ 25, /* default smtp port */ - 0, /* no pop3 authentification */ + 0, /* no email authentication */ + 0, /* no default email authorization user */ + 0, /* no default email authorization passsword */ 0, /* no default pop3 server */ 110, /* default pop3 port */ - 0, /* no default pop3 user */ - 0, /* no default pop3 passsword */ - 0, /* no mail project */ - 0, /* no mail viewer */ - 0, /* no mail filetype */ + 0, /* no email project */ + 0, /* no email filetype */ #endif + 0, /* no multipage project */ + 0, /* no multipage filetype */ 0, /* no default ocrcommand */ 0, /* no default ocr input file option */ 0, /* no default ocr output file option */ @@ -92,16 +94,20 @@ Preferences preferences = 0, /* no doc viewer */ 80.0, /* jpeg_quality */ 7.0, /* png_compression */ + 6.0, /* tiff_zip_compression */ COMPRESSION_PACKBITS, /* tiff_compression16_nr */ COMPRESSION_JPEG, /* tiff_compression8_nr */ COMPRESSION_CCITTFAX3, /* tiff_compression1_nr */ 1, /* save_devprefs_at_exit */ 1, /* overwrite_warning */ 1, /* skip_existing_numbers */ + 1, /* save_ps_flatdecoded */ + 1, /* save_pdf_flatdecoded */ 0, /* save_pnm16_as_ascii */ 0, /* reduce_16bit_to_8bit */ 1, /* filename_counter_step */ 4, /* filename_counter_len */ + 1, /* adf_pages_max */ 6, /* show_range_mode */ 1, /* tooltips enabled */ 1, /* show histogram */ @@ -176,20 +182,22 @@ 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)}, -#ifdef XSANE_ACTIVATE_MAIL - {"mail-from", xsane_rc_pref_string, POFFSET(mail_from)}, - {"mail-reply-to", xsane_rc_pref_string, POFFSET(mail_reply_to)}, - {"mail-smtp-server", xsane_rc_pref_string, POFFSET(mail_smtp_server)}, - {"mail-smtp-port", xsane_rc_pref_int, POFFSET(mail_smtp_port)}, - {"mail-pop3-authentification", xsane_rc_pref_int, POFFSET(mail_pop3_authentification)}, - {"mail-pop3-server", xsane_rc_pref_string, POFFSET(mail_pop3_server)}, - {"mail-pop3-port", xsane_rc_pref_int, POFFSET(mail_pop3_port)}, - {"mail-pop3-user", xsane_rc_pref_string, POFFSET(mail_pop3_user)}, - {"mail-pop3-pass", xsane_rc_pref_string, POFFSET(mail_pop3_pass)}, - {"mail-project", xsane_rc_pref_string, POFFSET(mail_project)}, - {"mail-viewer", xsane_rc_pref_string, POFFSET(mail_viewer)}, - {"mail-filetype", xsane_rc_pref_string, POFFSET(mail_filetype)}, + {"fax-ps-flatdecoded", xsane_rc_pref_int, POFFSET(fax_ps_flatdecoded)}, +#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)}, + {"e-mail-smtp-server", xsane_rc_pref_string, POFFSET(email_smtp_server)}, + {"e-mail-smtp-port", xsane_rc_pref_int, POFFSET(email_smtp_port)}, + {"e-mail-authentication", xsane_rc_pref_int, POFFSET(email_authentication)}, + {"e-mail-auth-user", xsane_rc_pref_string, POFFSET(email_auth_user)}, + {"e-mail-auth-pass", xsane_rc_pref_string, POFFSET(email_auth_pass)}, + {"e-mail-pop3-server", xsane_rc_pref_string, POFFSET(email_pop3_server)}, + {"e-mail-pop3-port", xsane_rc_pref_int, POFFSET(email_pop3_port)}, + {"e-mail-project", xsane_rc_pref_string, POFFSET(email_project)}, + {"e-mail-filetype", xsane_rc_pref_string, POFFSET(email_filetype)}, #endif + {"multipage-project", xsane_rc_pref_string, POFFSET(multipage_project)}, + {"multipage-filetype", xsane_rc_pref_string, POFFSET(multipage_filetype)}, {"ocr-command", xsane_rc_pref_string, POFFSET(ocr_command)}, {"ocr-inputfile-option", xsane_rc_pref_string, POFFSET(ocr_inputfile_option)}, {"ocr-outputfile-options", xsane_rc_pref_string, POFFSET(ocr_outputfile_option)}, @@ -199,16 +207,20 @@ desc[] = {"browser", xsane_rc_pref_string, POFFSET(browser)}, {"jpeg-quality", xsane_rc_pref_double, POFFSET(jpeg_quality)}, {"png-compression", xsane_rc_pref_double, POFFSET(png_compression)}, + {"tiff-zip-compression", xsane_rc_pref_double, POFFSET(tiff_zip_compression)}, {"tiff-compression16_nr", xsane_rc_pref_int, POFFSET(tiff_compression16_nr)}, {"tiff-compression8_nr", xsane_rc_pref_int, POFFSET(tiff_compression8_nr)}, {"tiff-compression1_nr", xsane_rc_pref_int, POFFSET(tiff_compression1_nr)}, {"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-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)}, {"filename-counter-len", xsane_rc_pref_int, POFFSET(filename_counter_len)}, + {"adf-pages-max", xsane_rc_pref_int, POFFSET(adf_pages_max)}, {"show-range-mode", xsane_rc_pref_int, POFFSET(show_range_mode)}, {"tool-tips", xsane_rc_pref_int, POFFSET(tooltips_enabled)}, {"show-histogram", xsane_rc_pref_int, POFFSET(show_histogram)}, @@ -276,7 +288,8 @@ desc_printer[] = {"printer-gamma", xsane_rc_pref_double, PRTOFFSET(gamma)}, {"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-gamma-blue", xsane_rc_pref_double, PRTOFFSET(gamma_blue)}, + {"printer-ps-flatdecoded", xsane_rc_pref_int, PRTOFFSET(ps_flatdecoded)} }; /* --------------------------------------------------------------------- */ @@ -385,6 +398,7 @@ void preferences_restore(int fd) SANE_String name; Wire w; int i, n; + int item_identified = 1; DBG(DBG_proc, "preferences_restore\n"); @@ -428,7 +442,7 @@ void preferences_restore(int fd) } } - if (!strcmp(name, "printerdefinitions")) + if ( (!strcmp(name, "printer-name")) || (!strcmp(name, "preset-area-name")) ) { break; } @@ -440,12 +454,35 @@ void preferences_restore(int fd) } } - preferences.printer = calloc(preferences.printerdefinitions, sizeof(void *)); - n=0; - while (n < preferences.printerdefinitions) + preferences.printer = NULL; + preferences.printer = calloc(1, sizeof(void *)); + n=-1; + item_identified = 1; + while (item_identified) { - preferences.printer[n] = calloc(sizeof(Preferences_printer_t), 1); - for (i = 0; i < NELEMS(desc_printer); ++i) + if (strcmp(name, desc_printer[0].name) == 0) + { + n++; + preferences.printer = realloc(preferences.printer, (n+1)*sizeof(void *)); + preferences.printer[n] = calloc(sizeof(Preferences_printer_t), 1); + (*desc_printer[0].codec) (&w, preferences.printer[n], desc_printer[0].offset); + DBG(DBG_info2, "reading preferences printer definition %s\n", preferences.printer[n]->name); + item_identified = 1; + } + else + { + item_identified = 0; + for (i = 1; i < NELEMS(desc_printer); ++i) + { + if (strcmp(name, desc_printer[i].name) == 0) + { + (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset); + item_identified = 1; + } + } + } + + if (item_identified) { xsane_rc_io_w_space(&w, 3); if (w.status) @@ -460,23 +497,19 @@ void preferences_restore(int fd) xsane_rc_io_w_exit(&w); return; } - - if (strcmp(name, desc_printer[i].name) == 0) - { - (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset); - } - else - { - break; - } } - DBG(DBG_info2, "preferences printer definition %s read\n", preferences.printer[n]->name); - n++; } + preferences.printerdefinitions = n+1; + /* finished reading printer definitions */ + - if (preferences.preset_area_definitions) + + n=-1; + if (strcmp(name, desc_preset_area[0].name) == 0) /* at least one preset area definition ? */ { - preferences.preset_area = calloc(preferences.preset_area_definitions, sizeof(void *)); + /* then we define "Full size" as definition 0 */ + n++; + preferences.preset_area = calloc(1, sizeof(void *)); preferences.preset_area[0] = calloc(sizeof(Preferences_preset_area_t), 1); preferences.preset_area[0]->name = strdup(_(MENU_ITEM_SURFACE_FULL_SIZE)); @@ -484,41 +517,54 @@ void preferences_restore(int fd) preferences.preset_area[0]->yoffset = 0.0; preferences.preset_area[0]->width = INF; preferences.preset_area[0]->height = INF; + } - n=1; - while (n < preferences.preset_area_definitions) + item_identified = 1; + while (item_identified) + { + if (strcmp(name, desc_preset_area[0].name) == 0) { + n++; + preferences.preset_area = realloc(preferences.preset_area, (n+1) * sizeof(void *)); preferences.preset_area[n] = calloc(sizeof(Preferences_preset_area_t), 1); - for (i = 0; i < NELEMS(desc_preset_area); ++i) - { - xsane_rc_io_w_space(&w, 3); - if (w.status) - { - xsane_rc_io_w_exit(&w); - return; - } - - xsane_rc_io_w_string(&w, &name); - if (w.status || !name) - { - xsane_rc_io_w_exit(&w); - return; - } + (*desc_preset_area[0].codec) (&w, preferences.preset_area[n], desc_preset_area[0].offset); + DBG(DBG_info2, "reading preset area definition %s\n", preferences.preset_area[n]->name); + item_identified = 1; + } + else + { + item_identified = 0; + for (i = 1; i < NELEMS(desc_preset_area); ++i) + { if (strcmp(name, desc_preset_area[i].name) == 0) { (*desc_preset_area[i].codec) (&w, preferences.preset_area[n], desc_preset_area[i].offset); - } - else - { - break; + item_identified = 1; } } - DBG(DBG_info2, "preferences preset area definition %s read\n", preferences.preset_area[n]->name); - n++; + } + + if (item_identified) + { + xsane_rc_io_w_space(&w, 3); + if (w.status) + { + xsane_rc_io_w_exit(&w); + return; + } + + xsane_rc_io_w_string(&w, &name); + if (w.status || !name) + { + xsane_rc_io_w_exit(&w); + return; + } } } + preferences.preset_area_definitions = n+1; + xsane_rc_io_w_exit(&w); } diff --git a/src/xsane-preferences.h b/src/xsane-preferences.h index e59a66c..9f0e442 100644 --- a/src/xsane-preferences.h +++ b/src/xsane-preferences.h @@ -48,6 +48,7 @@ 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 */ } Preferences_printer_t; @@ -107,21 +108,23 @@ 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 */ - -#ifdef XSANE_ACTIVATE_MAIL - char *mail_from; /* email address of sender */ - char *mail_reply_to; /* email address for replied emails */ - char *mail_smtp_server; /* ip address or domain name of smtp server */ - int mail_smtp_port; /* port to connect to smtp sever */ - int mail_pop3_authentification; /* use pop3 login for authentification */ - char *mail_pop3_server; /* ip address or domain name of pop3 server */ - int mail_pop3_port; /* port to connect to pop3 server */ - char *mail_pop3_user; /* user name for pop3 server */ - char *mail_pop3_pass; /* password for pop3 server */ - char *mail_project; /* mail project */ - char *mail_viewer; /* mail viewer */ - char *mail_filetype; /* mail filetype */ + int fax_ps_flatdecoded; /* use postscript level 3 zlib compression */ + +#ifdef XSANE_ACTIVATE_EMAIL + char *email_from; /* email address of sender */ + char *email_reply_to; /* email address for replied emails */ + char *email_smtp_server; /* ip address or domain name of smtp server */ + int email_smtp_port; /* port to connect to smtp sever */ + int email_authentication; /* type for email authentication */ + char *email_auth_user; /* user name for email authorization */ + char *email_auth_pass; /* password for email authorization */ + char *email_pop3_server; /* ip address or domain name of pop3 server */ + int email_pop3_port; /* port to connect to pop3 server */ + char *email_project; /* mail project */ + char *email_filetype; /* mail filetype */ #endif + char *multipage_project; /* multipage project */ + char *multipage_filetype; /* multipage filetype */ char *ocr_command; /* ocrcommand */ char *ocr_inputfile_option; /* option for input file */ @@ -134,16 +137,20 @@ typedef struct double jpeg_quality; /* quality when saving image as jpeg */ double png_compression; /* compression when saving image as pnm */ + double tiff_zip_compression; /* compression rate for tiff zip (deflate) */ int tiff_compression16_nr; /* compression type nr when saving 16i bit image as tiff */ int tiff_compression8_nr; /* compression type nr when saving 8 bit image as tiff */ int tiff_compression1_nr; /* compression type nr when saving 1 bit image as tiff */ 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_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; */ int filename_counter_len; /* minimum length of filename_counter */ + int adf_pages_max; /* maximum pages to scan in adf mode */ int show_range_mode; /* how to show a range */ int tooltips_enabled; /* should tooltips be disabled? */ diff --git a/src/xsane-preview.c b/src/xsane-preview.c index 5bd6457..b59ef1b 100644 --- a/src/xsane-preview.c +++ b/src/xsane-preview.c @@ -2405,12 +2405,22 @@ int preview_create_batch_icon_from_file(Preview *p, FILE *in, Batch_Scan_Paramet void preview_create_batch_icon(Preview *p, Batch_Scan_Parameters *parameters) { - FILE *in; + FILE *in = NULL; int quality = 0; int time = 0; + int level; - in = fopen(xsane.preview->filename[0], "rb"); - quality = preview_create_batch_icon_from_file(xsane.preview, in, parameters, quality, &time); + for(level = 2; level >= 0; level--) + { + if (p->filename[level]) + { + in = fopen(p->filename[level], "rb"); /* read binary (b for win32) */ + if (in) + { + quality = preview_create_batch_icon_from_file(xsane.preview, in, parameters, quality, &time); + } + } + } if (quality <= 0) { @@ -2430,7 +2440,6 @@ void preview_create_batch_icon(Preview *p, Batch_Scan_Parameters *parameters) } fclose(in); } - /* ---------------------------------------------------------------------------------------------------------------------- */ static int preview_restore_image_from_file(Preview *p, FILE *in, int min_quality, int *min_time) @@ -4122,8 +4131,6 @@ static void preview_create_preset_area_menu(Preview *p, int selection) void preview_generate_preview_filenames(Preview *p) { char filename[PATH_MAX]; - char buf[256]; - int error_flag = 0; int i; DBG(DBG_proc, "preview_generate_preview_filenames\n"); @@ -4143,30 +4150,23 @@ void preview_generate_preview_filenames(Preview *p) } else { - p->filename[i] = NULL; /* mark filename does not exist */ DBG(DBG_error, "ERROR: could not create preview file %s\n", filename); - error_flag = 1; + p->filename[0] = NULL; /* mark filename does not exist */ + p->filename[1] = NULL; /* mark filename does not exist */ + p->filename[2] = NULL; /* mark filename does not exist */ + break; /* do not try next preview level, one error is enough */ } } else { DBG(DBG_error, "ERROR: could not create filename for preview level %d\n", i); - p->filename[i] = NULL; - error_flag = 2; + p->filename[0] = NULL; /* mark filename does not exist */ + p->filename[1] = NULL; /* mark filename does not exist */ + p->filename[2] = NULL; /* mark filename does not exist */ + break; /* do not try next preview level, one error is enough */ } } - if (error_flag == 1) - { - snprintf(buf, sizeof(buf), ERR_CREATE_PREVIEW_FILE); - xsane_back_gtk_error(buf, TRUE); - } - else if (error_flag == 2) - { - snprintf(buf, sizeof(buf), ERR_CREATE_PREVIEW_FILENAME); - xsane_back_gtk_error(buf, TRUE); - } - return; } @@ -4526,17 +4526,6 @@ Preview *preview_new(void) gtk_container_add(GTK_CONTAINER(frame), p->zoom); gtk_widget_show(p->zoom); -#if 0 - /* the RGB label */ - frame = gtk_frame_new(0); - gtk_box_pack_start(GTK_BOX(p->menu_box), frame, FALSE, FALSE, 3); - gtk_widget_show(frame); - p->rgb_label = gtk_label_new(0); - gtk_container_add(GTK_CONTAINER(frame), p->rgb_label); - gtk_widget_show(p->rgb_label); - preview_display_color_components(p, -1, -1); /* display "###, ###, ###" */ -#endif - gtk_widget_show(p->menu_box); /* the menu box is ready */ @@ -4592,7 +4581,6 @@ Preview *preview_new(void) gtk_widget_show(p->cancel); gtk_widget_set_sensitive(p->cancel, FALSE); -#if 1 /* the RGB label */ frame = gtk_frame_new(0); gtk_box_pack_start(GTK_BOX(action_box), frame, FALSE, FALSE, 3); @@ -4601,14 +4589,13 @@ Preview *preview_new(void) gtk_container_add(GTK_CONTAINER(frame), p->rgb_label); gtk_widget_show(p->rgb_label); preview_display_color_components(p, -1, -1); /* display "###, ###, ###" */ -#endif preview_update_surface(p, 0); gtk_widget_show(p->window); gtk_widget_show(p->top); - cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW); /* set default curosr */ + cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW); /* set default cursor */ gdk_window_set_cursor(p->window->window, cursor); gdk_cursor_unref(cursor); p->cursornr = XSANE_CURSOR_PREVIEW; @@ -4622,7 +4609,7 @@ Preview *preview_new(void) preview_display_valid(p); - return p; + return p; } diff --git a/src/xsane-save.c b/src/xsane-save.c index 2567898..9c3784b 100644 --- a/src/xsane-save.c +++ b/src/xsane-save.c @@ -25,6 +25,7 @@ #include "xsane.h" #include "xsane-back-gtk.h" #include "xsane-front-gtk.h" +#include "xsane-save.h" #include <time.h> #include <sys/wait.h> @@ -666,10 +667,10 @@ void xsane_write_pnm_header(FILE *file, Image_info *image_info, int save_pnm16_a int xsane_copy_file(FILE *outfile, FILE *infile, GtkProgressBar *progress_bar, int *cancel_save) { - int size; - int bytes; - int bytes_sum = 0; - char buf[65536]; + long size; + long bytes_sum = 0; + size_t bytes; + unsigned char buf[65536]; DBG(DBG_proc, "copying file\n"); @@ -700,6 +701,17 @@ int xsane_copy_file(FILE *outfile, FILE *infile, GtkProgressBar *progress_bar, i 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]; @@ -721,12 +733,12 @@ int xsane_copy_file(FILE *outfile, FILE *infile, GtkProgressBar *progress_bar, i if (size != bytes_sum) { - DBG(DBG_info, "copy errro, not complete, %d bytes of %d bytes copied\n", bytes_sum, size); + 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, %d bytes copied\n", bytes_sum); + DBG(DBG_info, "copy complete, %ld bytes copied\n", bytes_sum); return (*cancel_save); } @@ -1373,11 +1385,10 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info int x, y, sx, sy; int xmin, xmax; int ymin, ymax; - float val, norm; + double val, norm, outer_factor; unsigned char *line_cache; int bytespp = 1; int intradius; - float outer_factor; int xmin_flag; int xmax_flag; int ymin_flag; @@ -1498,7 +1509,7 @@ int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info } fputc((char) ((int) (val/norm)), outfile); } - else + else /* bytespp == 2 */ { guint16 *line_cache16 = (guint16 *) line_cache; guint16 val16; @@ -2216,17 +2227,74 @@ int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_in /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_save_ps_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, - GtkProgressBar *progress_bar) +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_header\n"); + DBG(DBG_proc, "xsane_save_ps_create_page_header\n"); switch (paper_orientation) { @@ -2312,19 +2380,9 @@ static void xsane_save_ps_create_header(FILE *outfile, Image_info *image_info, depth = 8; } - 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"); - fprintf(outfile, "%%%%LanguageLevel: 2\n"); - fprintf(outfile, "%%%%Pages: 1\n"); - fprintf(outfile, "%%%%BoundingBox: %d %d %d %d\n", box_left, box_bottom, box_right, box_top); - fprintf(outfile, "%%%%EndComments\n"); fprintf(outfile, "\n"); - fprintf(outfile, "/origstate save def\n"); - fprintf(outfile, "20 dict begin\n"); - fprintf(outfile, "%%%%Page: 1 1\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) { @@ -2341,7 +2399,10 @@ static void xsane_save_ps_create_header(FILE *outfile, Image_info *image_info, fprintf(outfile, "currentfile\n"); fprintf(outfile, "/ASCII85Decode filter\n"); #ifdef HAVE_LIBZ - fprintf(outfile, "/FlateDecode filter\n"); + if (flatdecode) + { + fprintf(outfile, "/FlateDecode filter\n"); + } #endif if (image_info->colors == 3) /* what about RGBA here ? */ @@ -2358,28 +2419,35 @@ static void xsane_save_ps_create_header(FILE *outfile, Image_info *image_info, /* ---------------------------------------------------------------------------------------------------------------------- */ +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(FILE *outfile, unsigned char *line, int len, int finish) +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; -#ifdef HAVE_LIBZ static int init = 0; static z_stream s; int ret; int flush; -#endif 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"); + DBG(DBG_proc, "xsane_write_compressed_a85_flatdecode\n"); -#ifdef HAVE_LIBZ if (linelen != len) { linelen = len; @@ -2436,10 +2504,6 @@ static int xsane_write_compressed_a85(FILE *outfile, unsigned char *line, int le } outlen = cbuflen - s.avail_out; -#else - cbuf = line; - outlen = len; -#endif /* HAVE_LIBZ */ /* ASCII85 (base 85) encoding */ for (i = 0; i < outlen; i++) @@ -2504,9 +2568,7 @@ static int xsane_write_compressed_a85(FILE *outfile, unsigned char *line, int le break; } } -#ifdef HAVE_LIBZ } while (s.avail_out == 0); -#endif if (finish) { @@ -2538,12 +2600,135 @@ static int xsane_write_compressed_a85(FILE *outfile, unsigned char *line, int le fprintf(outfile, "\n"); } fprintf(outfile, "~>\n"); -#ifdef HAVE_LIBZ 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; @@ -2556,7 +2741,7 @@ 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, GtkProgressBar *progress_bar, int *cancel_save) +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; @@ -2593,7 +2778,16 @@ static int xsane_save_ps_pdf_bw(FILE *outfile, FILE *imagefile, Image_info *imag line[x] = fgetc(imagefile) ^ 255; } - ret = xsane_write_compressed_a85(outfile, line, bytes_per_line, (y == image_info->image_height - 1)); +#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))) { @@ -2628,7 +2822,7 @@ 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, GtkProgressBar *progress_bar, int *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; @@ -2671,7 +2865,16 @@ static int xsane_save_ps_pdf_gray(FILE *outfile, FILE *imagefile, Image_info *im } } - ret = xsane_write_compressed_a85(outfile, line, image_info->image_width, (y == image_info->image_height - 1)); +#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))) { @@ -2712,7 +2915,7 @@ 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, GtkProgressBar *progress_bar, int *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; @@ -2769,7 +2972,16 @@ static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *i } } - ret = xsane_write_compressed_a85(outfile, line, (image_info->image_width * 3), (y == image_info->image_height - 1)); +#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))) { @@ -2804,40 +3016,37 @@ static int xsane_save_ps_pdf_color(FILE *outfile, FILE *imagefile, Image_info *i /* ---------------------------------------------------------------------------------------------------------------------- */ -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, - GtkProgressBar *progress_bar, int *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 paperwidth, int paperheight, int paper_orientation, + int flatdecode, + GtkProgressBar *progress_bar, int *cancel_save) { - DBG(DBG_proc, "xsane_save_ps\n"); + DBG(DBG_proc, "xsane_save_ps_page\n"); - *cancel_save = 0; - - xsane_save_ps_create_header(outfile, image_info, width, height, - paper_left_margin, paper_bottom_margin, paperheight, paperwidth, paper_orientation, - progress_bar); + xsane_save_ps_create_page_header(outfile, page, + image_info, width, height, + paper_left_margin, paper_bottom_margin, paperwidth, paperheight, 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, progress_bar, cancel_save); + 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, progress_bar, cancel_save); + 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, progress_bar, cancel_save); + xsane_save_ps_pdf_color(outfile, imagefile, image_info, flatdecode, progress_bar, cancel_save); } - fprintf(outfile, "\n"); - fprintf(outfile, "showpage\n"); - fprintf(outfile, "end\n"); - fprintf(outfile, "origstate restore\n"); - fprintf(outfile, "%%%%EOF\n"); - fprintf(outfile, "\n"); + xsane_save_ps_create_page_trailer(outfile); if (ferror(outfile)) { @@ -2854,31 +3063,94 @@ int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, float /* ---------------------------------------------------------------------------------------------------------------------- */ -/* 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 +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, + GtkProgressBar *progress_bar, int *cancel_save) { - 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 */ -}; + 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, paperwidth, paperheight, 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); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +void xsane_save_pdf_create_document_header(FILE *outfile, struct pdf_xref *xref, int pages, int flatdecode) +{ + int i; + + DBG(DBG_proc, "xsane_save_pdf_create_document_header\n"); + + fprintf(outfile, "%%PDF-1.4\n"); + fprintf(outfile, "\n"); + xref->obj[1] = ftell(outfile); + 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"); + xref->obj[2] = ftell(outfile); + 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"); + xref->obj[3] = ftell(outfile); + fprintf(outfile, "3 0 obj\n"); + fprintf(outfile, " << /Type /Pages\n"); + fprintf(outfile, " /Kids [\n"); + for (i=0; i < pages; i++) + { + fprintf(outfile, " %d 0 R\n", i * 2 + 4); + } + fprintf(outfile, " ]\n"); + fprintf(outfile, " /Count %d\n", pages); + fprintf(outfile, " >>\n"); + fprintf(outfile, "endobj\n"); + fprintf(outfile, "\n"); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ -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, - GtkProgressBar *progress_bar, struct pdf_xref *xref) +/* page = [1 .. pages] */ +static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xref, 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 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"); + DBG(DBG_proc, "xsane_save_pdf_create_page_header\n"); switch (paper_orientation) { @@ -2964,42 +3236,21 @@ static void xsane_save_pdf_create_header(FILE *outfile, Image_info *image_info, 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"); + xref->obj[page * 2 + 2] = ftell(outfile); + fprintf(outfile, "%d 0 obj\n", page * 2 + 2); 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, " /Contents %d 0 R\n", page * 2 + 3); + fprintf(outfile, " /Resources << /ProcSet %d 0 R >>\n", page * 2 + 4); fprintf(outfile, " >>\n"); fprintf(outfile, "endobj\n"); fprintf(outfile, "\n"); /* Offset of object 5, for xref */ - xref->obj5 = ftell(outfile); + xref->obj[page * 2 + 3] = ftell(outfile); - fprintf(outfile, "5 0 obj\n"); + fprintf(outfile, "%d 0 obj\n", page * 2 + 3); fprintf(outfile, " << /Length >>\n"); /* Position of the stream length, to be written later on */ @@ -3035,73 +3286,42 @@ static void xsane_save_pdf_create_header(FILE *outfile, Image_info *image_info, } #ifdef HAVE_LIBZ + if (flatdecode) + { fprintf(outfile, " /F [/A85 /FlateDecode]\n"); -#else + } + else + { fprintf(outfile, " /F /A85\n"); + } +#else + fprintf(outfile, " /F /A85\n"); #endif - fprintf(outfile, "ID\n"); + 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, - GtkProgressBar *progress_bar, int *cancel_save) +void xsane_save_pdf_create_document_trailer(FILE *outfile, struct pdf_xref *xref, int pages) { - 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, - 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, progress_bar, cancel_save); - } - else /* grayscale */ - { - xsane_save_ps_pdf_gray(outfile, imagefile, image_info, progress_bar, cancel_save); - } - } - else /* color RGB */ - { - xsane_save_ps_pdf_color(outfile, imagefile, image_info, progress_bar, cancel_save); - } - - /* PDF trailer */ - fprintf(outfile, "EI\n"); - fprintf(outfile, "Q\n"); + struct tm *t; + time_t tt; + int i; - /* 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"); + /* PDF document trailer */ /* Offset of object 6, for xref */ - xref.obj6 = ftell(outfile); + xref->obj[pages * 2 + 4] = ftell(outfile); - fprintf(outfile, "6 0 obj\n"); + fprintf(outfile, "%d 0 obj\n", pages * 2 + 4); fprintf(outfile, " [/PDF]\n"); fprintf(outfile, "endobj\n"); fprintf(outfile, "\n"); /* Offset of object 7, for xref */ - xref.obj7 = ftell(outfile); + xref->obj[pages * 2 + 5] = ftell(outfile); - fprintf(outfile, "7 0 obj\n"); + fprintf(outfile, "%d 0 obj\n", pages * 2 + 5); fprintf(outfile, " << /Title (XSane scanned image)\n"); fprintf(outfile, " /Creator (XSane version %s (sane %d.%d) - by Oliver Rauch)\n", VERSION, @@ -3119,27 +3339,117 @@ int xsane_save_pdf(FILE *outfile, FILE *imagefile, Image_info *image_info, float fprintf(outfile, "\n"); /* Offset of xref, for startxref below */ - xref.xref = ftell(outfile); + xref->xref = ftell(outfile); fprintf(outfile, "xref\n"); - fprintf(outfile, "0 8\n"); + fprintf(outfile, "0 %d\n", pages * 2 + 6); 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); + + for (i=1; i <= pages * 2 + 5; i++) + { + fprintf(outfile, "%010lu 00000 n \n", xref->obj[i]); + } + fprintf(outfile, "\n"); fprintf(outfile, "trailer\n"); - fprintf(outfile, " << /Size 8\n"); + fprintf(outfile, " << /Size %d\n", pages * 2 + 6); fprintf(outfile, " /Root 1 0 R\n"); - fprintf(outfile, " /Info 7 0 R\n"); + fprintf(outfile, " /Info %d 0 R\n", pages * 2 + 5); fprintf(outfile, " >>\n"); fprintf(outfile, "startxref\n"); - fprintf(outfile, "%lu\n", xref.xref); + fprintf(outfile, "%lu\n", xref->xref); fprintf(outfile, "%%%%EOF\n"); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +static void xsane_save_pdf_create_page_trailer(FILE *outfile, struct pdf_xref *xref) +{ + /* PDF page 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"); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +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, + GtkProgressBar *progress_bar, int *cancel_save) +{ + + DBG(DBG_proc, "xsane_save_pdf_page\n"); + + xsane_save_pdf_create_page_header(outfile, xref, page, + image_info, width, height, + paper_left_margin, paper_bottom_margin, paperwidth, paperheight, 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_pdf_create_page_trailer(outfile, xref); + + 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_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, + GtkProgressBar *progress_bar, int *cancel_save) +{ + struct pdf_xref xref; + + DBG(DBG_proc, "xsane_save_pdf\n"); + + *cancel_save = 0; + + xsane_save_pdf_create_document_header(outfile, &xref, 1, flatdecode); + + xsane_save_pdf_page(outfile, &xref, 1, + imagefile, image_info, width, height, + paper_left_margin, paper_bottom_margin, paperwidth, paperheight, paper_orientation, + flatdecode, + progress_bar, cancel_save); + + xsane_save_pdf_create_document_trailer(outfile, &xref, 1); if (ferror(outfile)) { @@ -3243,6 +3553,11 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int cinfo.X_density = image_info->resolution_x; cinfo.Y_density = image_info->resolution_y; +#if 0 + cinfo.smoothing_factor = 0.0; /* 0 .. 100 */ + cinfo.dct_method = JDCT_FLOAT; /* JDCT_ISLOW, JDCT_IFAST, JDCT_FLOAT */ +#endif + jpeg_start_compress(&cinfo, TRUE); for (y = 0; y < image_info->image_height; y++) @@ -3313,9 +3628,11 @@ int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int /* ---------------------------------------------------------------------------------------------------------------------- */ #ifdef HAVE_LIBTIFF -int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save) +/* 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) { - TIFF *tiffile; char *data; char buf[256]; int y, w; @@ -3325,7 +3642,7 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ struct tm *ptm; time_t now; - DBG(DBG_proc, "xsane_save_tiff\n"); + DBG(DBG_proc, "xsane_save_tiff_page(%d/%d\n", page, pages); *cancel_save = 0; @@ -3361,26 +3678,7 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ bytes = 2; } - if (xsane_create_secure_file(outfilename)) /* remove possibly existing symbolic links for security */ - { - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, outfilename); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - - tiffile = TIFFOpen(outfilename, "w"); - if (!tiffile) - { - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_OPEN_FAILED, outfilename); - xsane_back_gtk_error(buf, TRUE); - return -1; /* error */ - } - -#if 0 - data = malloc(pixel_width * components * bytes); -#else data = (char *)_TIFFmalloc(image_info->image_width * components * bytes); -#endif if (!data) { @@ -3391,11 +3689,11 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ TIFFSetField(tiffile, TIFFTAG_IMAGEWIDTH, image_info->image_width); TIFFSetField(tiffile, TIFFTAG_IMAGELENGTH, image_info->image_height); - TIFFSetField(tiffile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); 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_SAMPLESPERPIXEL, components); TIFFSetField(tiffile, TIFFTAG_SOFTWARE, "xsane"); time(&now); @@ -3403,19 +3701,33 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ 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); - TIFFSetField(tiffile, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH); - TIFFSetField(tiffile, TIFFTAG_XRESOLUTION, image_info->resolution_x); - TIFFSetField(tiffile, TIFFTAG_YRESOLUTION, image_info->resolution_y); + 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) + if (compression == COMPRESSION_DEFLATE) + { + TIFFSetField(tiffile, TIFFTAG_ZIPQUALITY, (int) preferences.tiff_zip_compression); + } + else 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); + if (compression == COMPRESSION_JPEG) + { + TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_YCBCR); + TIFFSetField(tiffile, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB); /* convert from RGB (to YCBCR) */ + } + else /* no jpeg compression */ + { + TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); + } } else { @@ -3425,12 +3737,19 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ } else /* grayscale */ { - TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + /* we have to do nothing special for jpeg! */ } } 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++) @@ -3460,12 +3779,12 @@ int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_ } } - TIFFClose(tiffile); -#if 0 - free(data); -#else + if (pages) + { + TIFFWriteDirectory(tiffile); + } + _TIFFfree(data); -#endif return (*cancel_save); } #endif @@ -4278,7 +4597,26 @@ int xsane_save_image_as(char *output_filename, char *input_filename, int output_ #ifdef HAVE_LIBTIFF if (output_format == XSANE_TIFF) /* routines that want to have filename for saving */ { - xsane_save_tiff(output_filename, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save); + 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 */ @@ -4347,6 +4685,7 @@ 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, progress_bar, cancel_save); } @@ -4367,6 +4706,7 @@ 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, progress_bar, cancel_save); } @@ -5039,7 +5379,7 @@ int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, i /* ---------------------------------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef XSANE_ACTIVATE_MAIL +#ifdef XSANE_ACTIVATE_EMAIL /* character base of base64 coding */ static const char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; @@ -5074,6 +5414,41 @@ 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) +{ + int i; + int pad; + unsigned char c1, c2, c3; + + for (i = 0; i < len; i+=3) + { + c1 = string[i]; + c2 = string[i+1]; + c3 = string[i+2]; + + pad = i - len + 3; + + if (pad < 0) + { + pad = 0; + } + else if (pad) + { + c3 = 0; + + if (pad == 2) + { + c2 = 0; + } + } + + write_3chars_as_base64(c1, c2, c3, pad, fd_socket); + } + write(fd_socket, "\r\n", 2); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + void write_base64(int fd_socket, FILE *infile) { int c1, c2, c3; @@ -5107,11 +5482,11 @@ void write_base64(int fd_socket, FILE *infile) 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.email_progress_bytes += 3; + if ((int) ((xsane.email_progress_bytes * 100) / xsane.email_progress_size) != (int) (xsane.email_progress_val * 100)) { - xsane.mail_progress_val = (float) xsane.mail_progress_bytes / xsane.mail_progress_size; - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_progress_val = (float) xsane.email_progress_bytes / xsane.email_progress_size; + xsane_front_gtk_email_project_update_lockfile_status(); } } @@ -5120,13 +5495,13 @@ void write_base64(int fd_socket, FILE *infile) write(fd_socket, "\n", 1); } - xsane.mail_progress_val = 1.0; - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_progress_val = 1.0; + xsane_front_gtk_email_project_update_lockfile_status(); } /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related) +void write_email_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related) { char buf[1024]; @@ -5162,7 +5537,7 @@ void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_footer(int fd_socket, char *boundary) +void write_email_footer(int fd_socket, char *boundary) { char buf[1024]; @@ -5172,7 +5547,7 @@ void write_mail_footer(int fd_socket, char *boundary) /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_mime_ascii(int fd_socket, char *boundary) +void write_email_mime_ascii(int fd_socket, char *boundary) { char buf[1024]; @@ -5191,7 +5566,7 @@ void write_mail_mime_ascii(int fd_socket, char *boundary) /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_mime_html(int fd_socket, char *boundary) +void write_email_mime_html(int fd_socket, char *boundary) { char buf[1024]; @@ -5216,7 +5591,7 @@ void write_mail_mime_html(int fd_socket, char *boundary) /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_attach_image(int fd_socket, char *boundary, char *content_id, char *content_type, FILE *infile, char *filename) +void write_email_attach_image(int fd_socket, char *boundary, char *content_id, char *content_type, FILE *infile, char *filename) { char buf[1024]; @@ -5249,7 +5624,7 @@ void write_mail_attach_image(int fd_socket, char *boundary, char *content_id, ch /* ---------------------------------------------------------------------------------------------------------------------- */ -void write_mail_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename) +void write_email_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename) { char buf[1024]; @@ -5392,9 +5767,103 @@ int pop3_login(int fd_socket, char *user, char *passwd) /* ---------------------------------------------------------------------------------------------------------------------- */ +int asmtp_authentication(int fd_socket, int auth_type, char *user, char *passwd) +{ + int len; + char buf[1024]; + + DBG(DBG_proc, "asmtp_authentication\n"); + + switch (auth_type) + { + case EMAIL_AUTH_ASMTP_PLAIN: + snprintf(buf, sizeof(buf), "AUTH PLAIN "); + DBG(DBG_info2, "> %s\\0(USER)\\0(PASSWORD)\n", buf); + write(fd_socket, buf, strlen(buf)); + snprintf(buf, sizeof(buf), "%c%s%c%s", 0, user, 0, passwd); + write_string_base64(fd_socket, buf, strlen(user)+strlen(passwd)+2); + len = read(fd_socket, buf, sizeof(buf)); + if (len >= 0) + { + buf[len] = 0; + } + DBG(DBG_info2, "< %s", buf); + break; + + case EMAIL_AUTH_ASMTP_LOGIN: + snprintf(buf, sizeof(buf), "AUTH LOGIN\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", buf); + if (buf[0] != '3') + { + DBG(DBG_info, "=> error\n"); + return (-1); + } + + DBG(DBG_info2, "> (USERNAME)\n"); + write_string_base64(fd_socket, user, strlen(user)); + + len = read(fd_socket, buf, sizeof(buf)); + if (len >= 0) + { + buf[len] = 0; + } + DBG(DBG_info2, "< %s", buf); + if (buf[0] != '3') + { + DBG(DBG_info, "=> error\n"); + return (-1); + } + + DBG(DBG_info2, "> (PASSWORD)\n"); + write_string_base64(fd_socket, passwd, strlen(passwd)); + + len = read(fd_socket, buf, sizeof(buf)); + if (len >= 0) + { + buf[len] = 0; + } + DBG(DBG_info2, "< %s", buf); + if (buf[0] != '2') + { + DBG(DBG_info, "=> error\n"); + return (-1); + } + break; + +#if 0 + case EMAIL_AUTH_ASMTP_CRAM_MD5: + snprintf(buf, sizeof(buf), "AUTH CRAM-MD5\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", buf); + break; +#endif + + default: + DBG(DBG_proc, "no valid asmtp authentication type\n"); + break; + } + + 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) +int write_smtp_header(int fd_socket, char *from, char *to, int auth_type, char *user, char *passwd) { char buf[1024]; int len; @@ -5406,7 +5875,14 @@ int write_smtp_header(int fd_socket, char *from, char *to) } DBG(DBG_info2, "< %s\n", buf); - snprintf(buf, sizeof(buf), "helo localhost\r\n"); + if (auth_type < EMAIL_AUTH_ASMTP_PLAIN) + { + snprintf(buf, sizeof(buf), "HELO localhost\r\n"); + } + else + { + snprintf(buf, sizeof(buf), "EHLO localhost\r\n"); + } DBG(DBG_info2, "> %s", buf); write(fd_socket, buf, strlen(buf)); len = read(fd_socket, buf, sizeof(buf)); @@ -5420,12 +5896,19 @@ int write_smtp_header(int fd_socket, char *from, char *to) { DBG(DBG_info, "=> error\n"); - if (xsane.mail_status) + if (xsane.email_status) { - free(xsane.mail_status); + free(xsane.email_status); } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED); - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED); + xsane_front_gtk_email_project_update_lockfile_status(); + return -1; + } + + if (asmtp_authentication(fd_socket, auth_type, user, passwd)) + { + xsane.email_status = strdup(TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED); + xsane_front_gtk_email_project_update_lockfile_status(); return -1; } @@ -5443,12 +5926,12 @@ int write_smtp_header(int fd_socket, char *from, char *to) { DBG(DBG_info, "=> error\n"); - if (xsane.mail_status) + if (xsane.email_status) { - free(xsane.mail_status); + free(xsane.email_status); } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_FROM); - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SMTP_ERR_FROM); + xsane_front_gtk_email_project_update_lockfile_status(); return -1; } @@ -5467,12 +5950,12 @@ int write_smtp_header(int fd_socket, char *from, char *to) { DBG(DBG_info, "=> error\n"); - if (xsane.mail_status) + if (xsane.email_status) { - free(xsane.mail_status); + free(xsane.email_status); } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_RCPT); - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SMTP_ERR_RCPT); + xsane_front_gtk_email_project_update_lockfile_status(); return -1; } @@ -5490,12 +5973,12 @@ int write_smtp_header(int fd_socket, char *from, char *to) { DBG(DBG_info, "=> error\n"); - if (xsane.mail_status) + if (xsane.email_status) { - free(xsane.mail_status); + free(xsane.email_status); } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_ERR_DATA); - xsane_front_gtk_mail_project_update_lockfile_status(); + xsane.email_status = strdup(TEXT_EMAIL_STATUS_SMTP_ERR_DATA); + xsane_front_gtk_email_project_update_lockfile_status(); return -1; } @@ -5534,4 +6017,5 @@ int write_smtp_footer(int fd_socket) } #endif + /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-save.c.orig b/src/xsane-save.c.orig new file mode 100644 index 0000000..a495e1c --- /dev/null +++ b/src/xsane-save.c.orig @@ -0,0 +1,5801 @@ +/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend + + xsane-save.c + + Oliver Rauch <Oliver.Rauch@rauch-domain.de> + 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 <time.h> +#include <sys/wait.h> + +/* the following test is always false */ +#ifdef _native_WIN32 +# include <winsock.h> +#else +# include <sys/socket.h> +# include <netinet/in.h> +# include <netdb.h> +#endif + +#ifdef HAVE_LIBJPEG +#include <jpeglib.h> +#endif + +#ifdef HAVE_LIBZ +#include <zlib.h> +#endif + +#ifdef HAVE_LIBPNG +#include <png.h> +#endif + +#ifdef HAVE_LIBTIFF +#include <tiffio.h> +#endif + +#ifdef HAVE_MMAP +#include <sys/mman.h> +#endif + +#ifdef HAVE_OS2_H +#include <process.h> +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#ifdef HAVE_ANY_GIMP + +#include <libgimp/gimp.h> + +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; i<bytespp; i++) + { + fputc(*p++, outfile); + } + } + else +#endif + { + 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 1: /* 90 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=0; x<pixel_width; x++) + { + gtk_progress_bar_update(progress_bar, (float) 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; + + case 2: /* 180 degree */ + xsane_write_pnm_header(outfile, image_info, 0); + + for (y = pixel_height-1; y >= 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<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 6: /* 180 degree, x mirror */ + xsane_write_pnm_header(outfile, image_info, 0); + + for (y = pixel_height-1; y >= 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<argnr; i++) + { + free(arg[i]); + } + + if (ocr_progress) /* pipe available */ + { + gtk_progress_bar_update(GTK_PROGRESS_BAR(progress_bar), 0.0); + + while (!feof(ocr_progress)) + { + int progress, subprogress; + float fprogress; + + fgets(buf, sizeof(buf), ocr_progress); + + if (!strncmp(preferences.ocr_progress_keyword, buf, strlen(preferences.ocr_progress_keyword))) + { + sscanf(buf + strlen(preferences.ocr_progress_keyword), "%d %d", &progress, &subprogress); + + snprintf(buf, sizeof(buf), "%s (%d:%d)", PROGRESS_OCR, progress, subprogress); + gtk_progress_set_format_string(GTK_PROGRESS(progress_bar), buf); + + fprogress = progress / 100.0; + + if (fprogress < 0.0) + { + fprogress = 0.0; + } + + if (fprogress > 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), "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">\n"); + write(fd_socket, buf, strlen(buf)); + + snprintf(buf, sizeof(buf), "<html>\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 e2f1458..553fbd5 100644 --- a/src/xsane-save.h +++ b/src/xsane-save.h @@ -22,6 +22,33 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifndef HAVE_XSANE_SAVE_H +#define HAVE_XSANE_SAVE_H + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +#include <xsane.h> +#ifdef HAVE_LIBTIFF +# include "tiffio.h" +#endif + +/* ---------------------------------------------------------------------------------------------------------------------- */ + +/* 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 + */ +#define PDF_PAGES_MAX 1000 +struct pdf_xref +{ + unsigned long obj[PDF_PAGES_MAX * 2 + 6]; + unsigned long xref; /* xref table */ + unsigned long slen; /* length of image stream */ + unsigned long slenp; /* position of image stream length */ +}; + +/* ---------------------------------------------------------------------------------------------------------------------- */ + + extern int xsane_create_secure_file(const char *filename); extern void xsane_cancel_save(); extern void xsane_convert_text_to_filename(char **filename); @@ -38,35 +65,57 @@ extern int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *i 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(FILE *outfile, FILE *imagefile, Image_info *image_info, +extern void xsane_save_ps_create_document_header(FILE *outfile, int pages, int flatdecode); +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, + 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, + 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_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, + 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, GtkProgressBar *progress_bar, int *cancel_save); -extern void 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, - GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save); -extern void xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, 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); +#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); +#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_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 void null_print_func(gchar *msg); extern int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save); extern void write_base64(int fd_socket, FILE *infile); -extern void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related); -extern void write_mail_footer(int fd_socket, char *boundary); -extern void write_mail_mime_ascii(int fd_socket, char *boundary); -extern void write_mail_mime_html(int fd_socket, char *boundary); -extern void write_mail_attach_image(int fd_socket, char *boundary, char *content_id, char *content_type, FILE *infile, char *filename); -extern void write_mail_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename); +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); +extern void write_email_mime_ascii(int fd_socket, char *boundary); +extern void write_email_mime_html(int fd_socket, char *boundary); +extern void write_email_attach_image(int fd_socket, char *boundary, char *content_id, char *content_type, FILE *infile, char *filename); +extern void write_email_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename); extern int open_socket(char *server, int port); extern int pop3_login(int fd_socket, char *user, char *passwd); -extern int write_smtp_header(int fd_socket, char *from, char *to); +extern int write_smtp_header(int fd_socket, char *from, char *to, int auth_type, char *user, char *pass); extern int write_smtp_footer(int fd_socket); - +/* ---------------------------------------------------------------------------------------------------------------------- */ +#endif /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-scan.c b/src/xsane-scan.c index 7888a16..bf054dc 100644 --- a/src/xsane-scan.c +++ b/src/xsane-scan.c @@ -31,6 +31,9 @@ #include "xsane-save.h" #include "xsane-gamma.h" #include "xsane-setup.h" +#include "xsane-multipage-project.h" +#include "xsane-fax-project.h" +#include "xsane-email-project.h" #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ @@ -50,7 +53,7 @@ static int xsane_test_multi_scan(void); void xsane_scan_done(SANE_Status status); void xsane_cancel(void); static void xsane_start_scan(void); -void xsane_scan_dialog(void); +gint xsane_scan_dialog(gpointer *data); static void xsane_create_internal_gamma_tables(void); /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -99,6 +102,13 @@ static int xsane_generate_dummy_filename(int conversion_level) return TRUE; } + else if (xsane.xsane_mode == XSANE_MULTIPAGE) /* no conversion following, save directly to the selected filename */ + { + xsane.dummy_filename = strdup(xsane.multipage_filename); + DBG(DBG_info, "xsane.dummy_filename = %s\n", xsane.dummy_filename); + + return FALSE; + } else if (xsane.xsane_mode == XSANE_FAX) /* no conversion following, save directly to the selected filename */ { xsane.dummy_filename = strdup(xsane.fax_filename); @@ -106,9 +116,9 @@ static int xsane_generate_dummy_filename(int conversion_level) return FALSE; } - else if (xsane.xsane_mode == XSANE_MAIL) /* no conversion following, save directly to the selected filename */ + else if (xsane.xsane_mode == XSANE_EMAIL) /* no conversion following, save directly to the selected filename */ { - xsane.dummy_filename = strdup(xsane.mail_filename); + xsane.dummy_filename = strdup(xsane.email_filename); DBG(DBG_info, "xsane.dummy_filename = %s\n", xsane.dummy_filename); return FALSE; @@ -896,36 +906,26 @@ static RETSIGTYPE xsane_sigpipe_handler(int signal) static int xsane_test_multi_scan(void) { - char *set; - SANE_Status status; - const SANE_Option_Descriptor *opt; - DBG(DBG_proc, "xsane_test_multi_scan\n"); - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); - if (opt) + if (xsane.mode == XSANE_GIMP_EXTENSION) { - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - if (opt->constraint_type == SANE_CONSTRAINT_STRING_LIST) - { - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); + return FALSE; + } - if (status == SANE_STATUS_GOOD) - { - if (xsane.adf_scansource) - { - if (!strcmp(set, xsane.adf_scansource)) - { - free(set); - return TRUE; - } - } - } - free(set); - } - } + if (xsane.batch_loop) + { + return FALSE; + } + + if (xsane.adf_page_counter+1 < preferences.adf_pages_max) + { + return TRUE; + } + else + { + xsane.adf_page_counter = 0; + return FALSE; } #if 0 /* this is planned for the next sane-standard */ @@ -1187,11 +1187,19 @@ void xsane_scan_done(SANE_Status status) if (xsane.xsane_mode == XSANE_VIEWER) { - xsane_viewer_new(xsane.dummy_filename, TRUE, NULL, VIEWER_FULL_MODIFICATION); + if (!xsane.force_filename) /* user filename selection active */ + { + xsane_viewer_new(xsane.dummy_filename, preferences.filetype, TRUE, preferences.filename, VIEWER_FULL_MODIFICATION, IMAGE_NOT_SAVED); + } + else + { + xsane_viewer_new(xsane.dummy_filename, NULL, TRUE, xsane.external_filename, VIEWER_NO_NAME_MODIFICATION, IMAGE_NOT_SAVED); + } + xsane.expand_lineart_to_grayscale = 0; } - if ((xsane.xsane_mode == XSANE_FAX) || (xsane.xsane_mode == XSANE_MAIL)) + if ((xsane.xsane_mode == XSANE_MULTIPAGE) || (xsane.xsane_mode == XSANE_FAX) || (xsane.xsane_mode == XSANE_EMAIL)) { xsane.expand_lineart_to_grayscale = 0; } @@ -1336,6 +1344,7 @@ 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 */ xsane.progress_bar, &xsane.cancel_save); } @@ -1378,7 +1387,7 @@ void xsane_scan_done(SANE_Status status) } } - if ( (xsane.xsane_mode == XSANE_SAVE) && (xsane.mode == XSANE_STANDALONE) ) + if ( ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) ) && (xsane.mode == XSANE_STANDALONE) ) { if (!xsane.force_filename) /* user filename selection active */ { @@ -1395,6 +1404,47 @@ void xsane_scan_done(SANE_Status status) xsane_update_counter_in_filename(&xsane.external_filename, TRUE, 1, 0); } } + else if (xsane.xsane_mode == XSANE_MULTIPAGE) + { + GtkWidget *list_item; + char *page; + char *type; + char *extension; + + page = strdup(strrchr(xsane.multipage_filename,'/')+1); + extension = strrchr(page, '.'); + if (extension) + { + type = strdup(extension); + *extension = 0; + } + else + { + type = ""; + } + + list_item = gtk_list_item_new_with_label(page); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); + gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); + gtk_widget_show(list_item); + + xsane_update_counter_in_filename(&xsane.multipage_filename, TRUE, 1, preferences.filename_counter_len); + xsane_multipage_project_save(); + free(page); + free(type); + + if (xsane.multipage_status) + { + free(xsane.multipage_status); + } + xsane.multipage_status = strdup(TEXT_PROJECT_STATUS_CHANGED); + + xsane_multipage_project_save(); + + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); + } else if (xsane.xsane_mode == XSANE_FAX) { GtkWidget *list_item; @@ -1417,7 +1467,7 @@ void xsane_scan_done(SANE_Status status) list_item = gtk_list_item_new_with_label(page); gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); - gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); gtk_widget_show(list_item); xsane_update_counter_in_filename(&xsane.fax_filename, TRUE, 1, preferences.filename_counter_len); @@ -1429,22 +1479,22 @@ void xsane_scan_done(SANE_Status status) { free(xsane.fax_status); } - xsane.fax_status = strdup(TEXT_FAX_STATUS_CHANGED); + xsane.fax_status = strdup(TEXT_PROJECT_STATUS_CHANGED); xsane_fax_project_save(); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); } -#ifdef XSANE_ACTIVATE_MAIL - else if (xsane.xsane_mode == XSANE_MAIL) +#ifdef XSANE_ACTIVATE_EMAIL + else if (xsane.xsane_mode == XSANE_EMAIL) { GtkWidget *list_item; char *page; char *type; char *extension; - page = strdup(strrchr(xsane.mail_filename,'/')+1); + page = strdup(strrchr(xsane.email_filename,'/')+1); extension = strrchr(page, '.'); if (extension) { @@ -1459,24 +1509,24 @@ void xsane_scan_done(SANE_Status status) list_item = gtk_list_item_new_with_label(page); gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); - gtk_container_add(GTK_CONTAINER(xsane.mail_list), list_item); + gtk_container_add(GTK_CONTAINER(xsane.project_list), list_item); gtk_widget_show(list_item); - xsane_update_counter_in_filename(&xsane.mail_filename, TRUE, 1, preferences.filename_counter_len); - xsane_mail_project_save(); + xsane_update_counter_in_filename(&xsane.email_filename, TRUE, 1, preferences.filename_counter_len); + xsane_email_project_save(); free(page); free(type); - if (xsane.mail_status) + if (xsane.email_status) { - free(xsane.mail_status); + free(xsane.email_status); } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); + xsane.email_status = strdup(TEXT_PROJECT_STATUS_CHANGED); - xsane_mail_project_save(); + xsane_email_project_save(); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), _(xsane.mail_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), 0.0); + gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status)); + gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0); } #endif } @@ -1509,15 +1559,16 @@ void xsane_scan_done(SANE_Status status) DBG(DBG_info, "ADF mode end of scan: increment page counter and restart scan\n"); xsane.adf_page_counter += 1; - g_signal_emit_by_name(xsane.start_button, "clicked"); /* press START button */ + gtk_timeout_add(100, (GtkFunction)xsane_scan_dialog, NULL); /* wait 100ms then call xsane_scan_dialog(); */ } - else if ( ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) && (xsane.batch_loop) ) + else if ( ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) && (xsane.batch_loop == BATCH_MODE_LOOP) ) { /* batch scan loop, this is not the last scan */ DBG(DBG_info, "Batch mode end of scan\n"); sane_cancel(xsane.dev); /* we have to call sane_cancel otherwise we are not able to set new parameters */ } - else if ( ( (status != SANE_STATUS_GOOD) && (status != SANE_STATUS_EOF) ) || (!xsane.batch_loop) ) /* last scan: update histogram */ +// else if ( ( (status != SANE_STATUS_GOOD) && (status != SANE_STATUS_EOF) ) || (!xsane.batch_loop) ) /* last scan: update histogram */ + else { DBG(DBG_info, "Normal end of scan\n"); xsane_set_sensitivity(TRUE); /* reactivate buttons etc */ @@ -1630,7 +1681,7 @@ static void xsane_start_scan(void) if ((xsane.param.depth == 1) && ((xsane.scan_rotation) || (xsane.xsane_mode == XSANE_VIEWER) || (xsane.xsane_mode == XSANE_FAX) || - (xsane.xsane_mode == XSANE_MAIL)) + (xsane.xsane_mode == XSANE_EMAIL)) ) /* We want to do a transformation with a lineart scan */ /* or use the viewer to display a lineart scan, */ /* so we save it as grayscale */ @@ -1715,7 +1766,24 @@ static void xsane_start_scan(void) xsane.pixelcolor = 0; snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_FRAME_DATA, _(frame_type)); - xsane_progress_new(buf, PROGRESS_SCANNING, (GtkSignalFunc) xsane_cancel, NULL); + + if (preferences.adf_pages_max > 1) + { + char buf2[255]; + if (preferences.adf_pages_max > 1) + { + snprintf(buf2, sizeof(buf), "%s (%d/%d)", PROGRESS_SCANNING, xsane.adf_page_counter+1, preferences.adf_pages_max); + } + else + { + snprintf(buf2, sizeof(buf), "%s (%d)", PROGRESS_SCANNING, xsane.adf_page_counter+1); + } + xsane_progress_new(buf, buf2, (GtkSignalFunc) xsane_cancel, NULL); + } + else + { + xsane_progress_new(buf, PROGRESS_SCANNING, (GtkSignalFunc) xsane_cancel, NULL); + } while (gtk_events_pending()) { @@ -1742,7 +1810,9 @@ static void xsane_start_scan(void) /* Invoked when the scan button is pressed */ /* or by scan_done if automatic document feeder is selected */ -void xsane_scan_dialog(void) +/* always returns 0 beacause ADF function calls it as timeout function */ +/* and return value 0 is used to tell the timeout handler to stop timer */ +gint xsane_scan_dialog(gpointer *data) { char buf[256]; const SANE_Option_Descriptor *opt; @@ -1755,12 +1825,13 @@ void xsane_scan_dialog(void) sane_get_parameters(xsane.dev, &xsane.param); /* update xsane.param */ - if ( (xsane.mode == XSANE_STANDALONE) && (xsane.xsane_mode == XSANE_SAVE) ) + if ( ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) ) && (xsane.mode == XSANE_STANDALONE) ) { /* correct length of filename counter if it is shorter than minimum length */ if (!xsane.force_filename) { - if (xsane.batch_loop) /* we are doing a batch scan, so we need a counter in the filename */ + /* when we are doing an adf or batch scan then we need a counter in the filename */ + if ((xsane.batch_loop) || (preferences.adf_pages_max > 1)) { xsane_ensure_counter_in_filename(&preferences.filename, preferences.filename_counter_len); } @@ -1791,7 +1862,7 @@ void xsane_scan_dialog(void) if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_OVERWRITE, BUTTON_CANCEL, TRUE /* wait */) == FALSE) { xsane_set_sensitivity(TRUE); - return; + return FALSE; } } } @@ -1812,7 +1883,7 @@ void xsane_scan_dialog(void) } xsane_back_gtk_error(buf, TRUE); xsane_set_sensitivity(TRUE); - return; + return FALSE; } #if 0 /* this is not necessary any more because the saving routines do the conversion */ else if ( ( ( (xsane.xsane_output_format == XSANE_JPEG) && xsane.param.depth == 16) || @@ -1824,7 +1895,7 @@ void xsane_scan_dialog(void) if (xsane_back_gtk_decision(ERR_HEADER_INFO, (gchar **) info_xpm, buf, BUTTON_REDUCE, BUTTON_CANCEL, TRUE /* wait */) == FALSE) { xsane_set_sensitivity(TRUE); - return; + return FALSE; } xsane.reduce_16bit_to_8bit = TRUE; } @@ -1836,7 +1907,7 @@ void xsane_scan_dialog(void) snprintf(buf, sizeof(buf), "No RGBA data format !!!"); /* user selected output format RGBA, scanner uses other format */ xsane_back_gtk_error(buf, TRUE); xsane_set_sensitivity(TRUE); - return; + return FALSE; } #endif } @@ -1846,7 +1917,7 @@ void xsane_scan_dialog(void) snprintf(buf, sizeof(buf), "Special format RGBA only supported in scan mode !!!"); xsane_back_gtk_error(buf, TRUE); xsane_set_sensitivity(TRUE); - return; + return FALSE; } #endif @@ -1858,7 +1929,7 @@ void xsane_scan_dialog(void) snprintf(buf, sizeof(buf), "Image data of type SANE_FRAME_RGBA\ncan only be saved in rgba or png format"); xsane_back_gtk_error(buf, TRUE); xsane_set_sensitivity(TRUE); - return; + return FALSE; } } #endif @@ -1886,7 +1957,7 @@ void xsane_scan_dialog(void) if (xsane_back_gtk_decision(ERR_HEADER_INFO, (gchar **) info_xpm, buf, BUTTON_REDUCE, BUTTON_CANCEL, TRUE /* wait */) == FALSE) { xsane_set_sensitivity(TRUE); - return; + return FALSE; } xsane.reduce_16bit_to_8bit = TRUE; } @@ -1895,7 +1966,7 @@ void xsane_scan_dialog(void) snprintf(buf, sizeof(buf), ERR_GIMP_BAD_DEPTH, xsane.param.depth); xsane_back_gtk_error(buf, TRUE); xsane_set_sensitivity(TRUE); - return; + return FALSE; } } } @@ -2060,6 +2131,7 @@ void xsane_scan_dialog(void) xsane.scanning = TRUE; /* set marker that scan has been initiated */ xsane_start_scan(); + return FALSE; } /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-scan.h b/src/xsane-scan.h index 3cacb55..b46d5e0 100644 --- a/src/xsane-scan.h +++ b/src/xsane-scan.h @@ -28,6 +28,6 @@ extern void xsane_scan_done(SANE_Status status); extern void xsane_cancel(void); -extern void xsane_scan_dialog(void); +extern gint xsane_scan_dialog(gpointer *data); /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-setup.c b/src/xsane-setup.c index b420643..f97e7ef 100644 --- a/src/xsane-setup.c +++ b/src/xsane-setup.c @@ -31,6 +31,7 @@ #include "xsane-save.h" #include "xsane-gamma.h" #include "xsane-batch-scan.h" +#include "xsane-setup.h" #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ @@ -72,21 +73,22 @@ static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data); -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data); +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_setup_email_apply_changes(GtkWidget *widget, gpointer data); #endif static void xsane_setup_ocr_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data); static void xsane_printer_notebook(GtkWidget *notebook); static void xsane_saving_notebook(GtkWidget *notebook); -static void xsane_image_notebook(GtkWidget *notebook); +static void xsane_filetype_notebook(GtkWidget *notebook); static void xsane_fax_notebook(GtkWidget *notebook); -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_mail_notebook(GtkWidget *notebook); +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_email_notebook(GtkWidget *notebook); #endif static void xsane_display_notebook(GtkWidget *notebook); static void xsane_enhance_notebook_sensitivity(int lineart_mode); +static void xsane_setup_authentication_type_callback(GtkWidget *widget, gpointer data); 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); @@ -133,6 +135,7 @@ 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; } else { @@ -272,6 +275,9 @@ 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_LIBZ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_ps_flatdecoded_button), preferences.printer[preferences.printernr]->ps_flatdecoded); +#endif } /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -348,6 +354,10 @@ 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_LIBZ + xsane_update_bool(xsane_setup.printer_ps_flatdecoded_button, &preferences.printer[preferences.printernr]->ps_flatdecoded); +#endif + if (option_menu) { xsane_setup_printer_menu_build(option_menu); @@ -509,31 +519,6 @@ static void xsane_setup_enhance_apply_changes(GtkWidget *widget, gpointer data) xsane.grayscale_scanmode = strdup(xsane_setup.grayscale_scanmode); } - - if (xsane.adf_scansource) - { - if (xsane_setup.adf_scansource) - { - device_options_changed |= (strcmp(xsane_setup.adf_scansource, xsane.adf_scansource)); - } - else - { - device_options_changed |= 1; - } - - free((void *) xsane.adf_scansource); - xsane.adf_scansource = NULL; - } - else if (xsane_setup.adf_scansource) - { - device_options_changed |= 1; - } - - if (xsane_setup.adf_scansource) - { - xsane.adf_scansource = strdup(xsane_setup.adf_scansource); - } - preferences.preview_pipette_range = xsane_setup.preview_pipette_range; xsane_update_bool(xsane_setup.auto_enhance_gamma_button, &preferences.auto_enhance_gamma); @@ -597,18 +582,24 @@ static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data) #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ - xsane_update_scale(xsane_setup.pnm_image_compression_scale, &preferences.png_compression); + xsane_update_scale(xsane_setup.png_image_compression_scale, &preferences.png_compression); #endif #endif #ifdef HAVE_LIBTIFF + xsane_update_scale(xsane_setup.tiff_image_zip_compression_scale, &preferences.tiff_zip_compression); preferences.tiff_compression16_nr = xsane_setup.tiff_compression16_nr; preferences.tiff_compression8_nr = xsane_setup.tiff_compression8_nr; preferences.tiff_compression1_nr = xsane_setup.tiff_compression1_nr; #endif - xsane_update_bool(xsane_setup.save_pnm16_as_ascii_button, &preferences.save_pnm16_as_ascii); xsane_update_bool(xsane_setup.reduce_16bit_to_8bit_button, &preferences.reduce_16bit_to_8bit); + 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); +#endif xsane_define_maximum_output_size(); } @@ -635,36 +626,41 @@ static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data) xsane_update_geometry_double(xsane_setup.fax_width_entry, &preferences.fax_width, preferences.length_unit); 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); +#endif + xsane_define_maximum_output_size(); } /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data) +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_setup_email_apply_changes(GtkWidget *widget, gpointer data) { int i; - DBG(DBG_proc, "xsane_setup_mail_apply_changes\n"); + DBG(DBG_proc, "xsane_setup_email_apply_changes\n"); - preferences.mail_from = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_from_entry))); - preferences.mail_reply_to = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_reply_to_entry))); - preferences.mail_smtp_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_smtp_server_entry))); - preferences.mail_pop3_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_server_entry))); - preferences.mail_pop3_user = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_user_entry))); - preferences.mail_pop3_pass = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_pass_entry))); - preferences.mail_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_viewer_entry))); + preferences.email_from = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_from_entry))); + preferences.email_reply_to = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_reply_to_entry))); + preferences.email_smtp_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_smtp_server_entry))); + preferences.email_auth_user = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_auth_user_entry))); + preferences.email_auth_pass = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_auth_pass_entry))); + preferences.email_pop3_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_pop3_server_entry))); /* make sure password is not stored in ascii text */ /* this is very simple but better than nothing */ - for (i=0; i<strlen(preferences.mail_pop3_pass); i++) + for (i=0; i<strlen(preferences.email_auth_pass); i++) { - preferences.mail_pop3_pass[i] ^= 0x53; + preferences.email_auth_pass[i] ^= 0x53; } - xsane_update_bool(xsane_setup.mail_pop3_authentification_entry, &preferences.mail_pop3_authentification); - xsane_update_int(xsane_setup.mail_smtp_port_entry, &preferences.mail_smtp_port); - xsane_update_int(xsane_setup.mail_pop3_port_entry, &preferences.mail_pop3_port); +// xsane_update_bool(xsane_setup.email_authentication_entry, &preferences.email_authentication); + xsane_update_int(xsane_setup.email_smtp_port_entry, &preferences.email_smtp_port); + xsane_update_int(xsane_setup.email_pop3_port_entry, &preferences.email_pop3_port); + + preferences.email_authentication = xsane_setup.email_authentication; } #endif @@ -719,8 +715,8 @@ static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data) xsane_setup_saving_apply_changes(0, 0); xsane_setup_image_apply_changes(0, 0); xsane_setup_fax_apply_changes(0, 0); -#ifdef XSANE_ACTIVATE_MAIL - xsane_setup_mail_apply_changes(0, 0); +#ifdef XSANE_ACTIVATE_EMAIL + xsane_setup_email_apply_changes(0, 0); #endif xsane_setup_ocr_apply_changes(0, 0); @@ -730,13 +726,6 @@ static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data) xsane_setup.grayscale_scanmode = NULL; } - if (xsane_setup.adf_scansource) - { - free((void *) xsane_setup.adf_scansource); - xsane_setup.adf_scansource = NULL; - } - - xsane_pref_save(); gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */ @@ -1285,6 +1274,25 @@ static void xsane_printer_notebook(GtkWidget *notebook) xsane_setup.printer_gamma_blue_entry = text; + +#ifdef HAVE_LIBZ + xsane_separator_new(vbox, 2); + + + + /* flatdecoded = 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); + 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; +#endif + + xsane_separator_new(vbox, 4); /* "apply" "add printer" "delete printer" */ @@ -1506,12 +1514,12 @@ static void xsane_saving_notebook(GtkWidget *notebook) /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_image_notebook(GtkWidget *notebook) +static void xsane_filetype_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *frame; +#ifdef HAVE_LIBTIFF int i, select = 1; -#ifdef HAVE_LIBTIFF GtkWidget *tiff_compression_option_menu, *tiff_compression_menu, *tiff_compression_item; typedef struct tiff_compression_t @@ -1520,8 +1528,8 @@ static void xsane_image_notebook(GtkWidget *notebook) int number; } tiff_compression; -#define TIFF_COMPRESSION16_NUMBER 2 -#define TIFF_COMPRESSION8_NUMBER 3 +#define TIFF_COMPRESSION16_NUMBER 3 +#define TIFF_COMPRESSION8_NUMBER 4 #define TIFF_COMPRESSION1_NUMBER 6 tiff_compression tiff_compression16_strings[TIFF_COMPRESSION16_NUMBER]; @@ -1532,6 +1540,8 @@ static void xsane_image_notebook(GtkWidget *notebook) tiff_compression16_strings[0].number = COMPRESSION_NONE; tiff_compression16_strings[1].name = MENU_ITEM_TIFF_COMP_PACKBITS; tiff_compression16_strings[1].number = COMPRESSION_PACKBITS; + tiff_compression16_strings[2].name = MENU_ITEM_TIFF_COMP_DEFLATE; + tiff_compression16_strings[2].number = COMPRESSION_DEFLATE; tiff_compression8_strings[0].name = MENU_ITEM_TIFF_COMP_NONE; tiff_compression8_strings[0].number = COMPRESSION_NONE; @@ -1539,6 +1549,8 @@ static void xsane_image_notebook(GtkWidget *notebook) tiff_compression8_strings[1].number = COMPRESSION_JPEG; tiff_compression8_strings[2].name = MENU_ITEM_TIFF_COMP_PACKBITS; tiff_compression8_strings[2].number = COMPRESSION_PACKBITS; + tiff_compression8_strings[3].name = MENU_ITEM_TIFF_COMP_DEFLATE; + tiff_compression8_strings[3].number = COMPRESSION_DEFLATE; tiff_compression1_strings[0].name = MENU_ITEM_TIFF_COMP_NONE; tiff_compression1_strings[0].number = COMPRESSION_NONE; @@ -1555,12 +1567,12 @@ static void xsane_image_notebook(GtkWidget *notebook) #endif /* HAVE_LIBTIFF */ - DBG(DBG_proc, "xsane_image_notebook\n"); + DBG(DBG_proc, "xsane_filetype_notebook\n"); /* Image options notebook page */ setup_vbox = gtk_vbox_new(FALSE, 5); - label = gtk_label_new(NOTEBOOK_IMAGE_OPTIONS); + label = gtk_label_new(NOTEBOOK_FILETYPE_OPTIONS); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label); gtk_widget_show(setup_vbox); @@ -1575,6 +1587,21 @@ static void xsane_image_notebook(GtkWidget *notebook) gtk_widget_show(vbox); + /* reduce 16bit to 8bit */ + 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_REDUCE_16BIT_TO_8BIT); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_REDUCE_16BIT_TO_8BIT); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.reduce_16bit_to_8bit); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.reduce_16bit_to_8bit_button = button; + + + xsane_separator_new(vbox, 4); + + /* save pnm16 as ascii */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); @@ -1586,16 +1613,31 @@ static void xsane_image_notebook(GtkWidget *notebook) gtk_widget_show(hbox); xsane_setup.save_pnm16_as_ascii_button = button; - /* reduce 16bit to 8bit */ + +#ifdef HAVE_LIBZ + /* save ps with zlib compression / flatdecode = 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_REDUCE_16BIT_TO_8BIT); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_REDUCE_16BIT_TO_8BIT); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.reduce_16bit_to_8bit); + 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); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.reduce_16bit_to_8bit_button = button; + xsane_setup.save_ps_flatdecoded_button = button; + + + /* save pdf with zlib compression / flatdecode */ + 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); + 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; +#endif #ifdef HAVE_LIBJPEG @@ -1625,11 +1667,14 @@ static void xsane_image_notebook(GtkWidget *notebook) #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.pnm_image_compression_scale, 0, TRUE); + &preferences.png_compression, (GtkObject **) &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); + /* TIFF 16 BIT IMAGES COMPRESSION */ hbox = gtk_hbox_new(FALSE, 2); @@ -2033,8 +2078,27 @@ static void xsane_fax_notebook(GtkWidget *notebook) gtk_widget_show(hbox); xsane_setup.fax_bottomoffset_entry = text; + +#ifdef HAVE_LIBZ xsane_separator_new(vbox, 4); + + /* flatdecoded = 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); + 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; +#endif + + + xsane_separator_new(vbox, 4); + + /* apply button */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -2054,30 +2118,32 @@ static void xsane_fax_notebook(GtkWidget *notebook) /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_setup_pop3_authentification_callback(GtkWidget *widget, gpointer data) -{ - GtkWidget *pop3_vbox = (GtkWidget *) data; +#ifdef XSANE_ACTIVATE_EMAIL - gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(widget)->active != 0)); -} +static void xsane_email_notebook(GtkWidget *notebook) +{ + typedef struct show_range_mode_t + { + char *name; + int number; + } authentication_type; -/* ---------------------------------------------------------------------------------------------------------------------- */ +#define AUTHENTICATION_NUMBER 4 -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_mail_notebook(GtkWidget *notebook) -{ GtkWidget *setup_vbox, *vbox, *pop3_vbox, *hbox, *button, *label, *text, *frame; + GtkWidget *authentication_option_menu, *authentication_menu, *authentication_menu_item; char buf[64]; char *password; - int i; + authentication_type authentication_strings[AUTHENTICATION_NUMBER]; + int i, select = 0; - DBG(DBG_proc, "xsane_mail_notebook\n"); + DBG(DBG_proc, "xsane_email_notebook\n"); /* Mail options notebook page */ setup_vbox = gtk_vbox_new(FALSE, 5); - label = gtk_label_new(NOTEBOOK_MAIL_OPTIONS); + label = gtk_label_new(NOTEBOOK_EMAIL_OPTIONS); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label); gtk_widget_show(setup_vbox); @@ -2096,36 +2162,36 @@ static void xsane_mail_notebook(GtkWidget *notebook) hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_FROM); + label = gtk_label_new(TEXT_SETUP_EMAIL_FROM); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_FROM); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_FROM); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_from); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_from); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_from_entry = text; + xsane_setup.email_from_entry = text; /* reply to */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_REPLY_TO); + label = gtk_label_new(TEXT_SETUP_EMAIL_REPLY_TO); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_REPLY_TO); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_REPLY_TO); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_reply_to); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_reply_to); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_reply_to_entry = text; + xsane_setup.email_reply_to_entry = text; xsane_separator_new(vbox, 2); @@ -2142,11 +2208,11 @@ static void xsane_mail_notebook(GtkWidget *notebook) text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_SERVER); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_smtp_server); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_smtp_server); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_smtp_server_entry = text; + xsane_setup.email_smtp_server_entry = text; /* smtp port */ @@ -2160,12 +2226,12 @@ static void xsane_mail_notebook(GtkWidget *notebook) text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_PORT); gtk_widget_set_size_request(text, 50, -1); - snprintf(buf, sizeof(buf), "%d", preferences.mail_smtp_port); + snprintf(buf, sizeof(buf), "%d", preferences.email_smtp_port); gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_smtp_port_entry = text; + xsane_setup.email_smtp_port_entry = text; xsane_separator_new(vbox, 2); @@ -2175,79 +2241,72 @@ static void xsane_mail_notebook(GtkWidget *notebook) pop3_vbox = gtk_vbox_new(FALSE, 5); gtk_widget_show(pop3_vbox); - /* pop3 authentification */ + /* email authentication */ 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_POP3_AUTHENTIFICATION); - g_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_setup_pop3_authentification_callback, (void *) pop3_vbox); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_POP3_AUTHENTIFICATION); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.mail_pop3_authentification); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); - gtk_widget_show(button); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_authentification_entry = button; - - /* place vbox for pop3 settings after check_button */ - gtk_box_pack_start(GTK_BOX(vbox), pop3_vbox, FALSE, FALSE, 2); - gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(button)->active != 0)); - - /* pop3 server */ - hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_SERVER); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTHENTICATION); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_SERVER); - gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_server); - gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); - gtk_widget_show(text); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_server_entry = text; + authentication_strings[0].name = MENU_ITEM_AUTH_NONE; + authentication_strings[0].number = EMAIL_AUTH_NONE; + authentication_strings[1].name = MENU_ITEM_AUTH_POP3; + authentication_strings[1].number = EMAIL_AUTH_POP3; + authentication_strings[2].name = MENU_ITEM_AUTH_ASMTP_PLAIN; + authentication_strings[2].number = EMAIL_AUTH_ASMTP_PLAIN; + authentication_strings[3].name = MENU_ITEM_AUTH_ASMTP_LOGIN; + authentication_strings[3].number = EMAIL_AUTH_ASMTP_LOGIN; +#if 0 + authentication_strings[4].name = MENU_ITEM_AUTH_ASMTP_CRAM_MD5; + authentication_strings[4].number = EMAIL_AUTH_ASMTP_CRAM_MD5; +#endif + authentication_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, authentication_option_menu, DESC_EMAIL_AUTHENTICATION); + gtk_box_pack_end(GTK_BOX(hbox), authentication_option_menu, FALSE, FALSE, 2); + gtk_widget_show(authentication_option_menu); + gtk_widget_show(hbox); - /* pop3 port */ - hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + authentication_menu = gtk_menu_new(); - label = gtk_label_new(TEXT_SETUP_POP3_PORT); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - gtk_widget_show(label); + for (i=1; i <= AUTHENTICATION_NUMBER; i++) + { + authentication_menu_item = gtk_menu_item_new_with_label(authentication_strings[i-1].name); + gtk_container_add(GTK_CONTAINER(authentication_menu), authentication_menu_item); + g_signal_connect(GTK_OBJECT(authentication_menu_item), "activate", (GtkSignalFunc) xsane_setup_authentication_type_callback, (void *) authentication_strings[i-1].number); + gtk_widget_show(authentication_menu_item); + if (authentication_strings[i-1].number == preferences.email_authentication) + { + select = i-1; + } + } - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PORT); - gtk_widget_set_size_request(text, 50, -1); - snprintf(buf, sizeof(buf), "%d", preferences.mail_pop3_port); - gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); - gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); - gtk_widget_show(text); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_port_entry = text; + gtk_option_menu_set_menu(GTK_OPTION_MENU(authentication_option_menu), authentication_menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(authentication_option_menu), select); + xsane_setup.email_authentication = preferences.email_authentication; - /* pop3 username */ + /* email authorization username */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_USER); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTH_USER); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_USER); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_AUTH_USER); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_user); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_auth_user); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_pop3_user_entry = text; + xsane_setup.email_auth_user_entry = text; - /* pop3 password */ - password = strdup(preferences.mail_pop3_pass); + /* email authorization password */ + password = strdup(preferences.email_auth_pass); for (i=0; i<strlen(password); i++) { @@ -2255,44 +2314,66 @@ static void xsane_mail_notebook(GtkWidget *notebook) } hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_PASS); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTH_PASS); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PASS); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_AUTH_PASS); gtk_widget_set_size_request(text, 250, -1); gtk_entry_set_text(GTK_ENTRY(text), (char *) password); gtk_entry_set_visibility(GTK_ENTRY(text), 0); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_pop3_pass_entry = text; + xsane_setup.email_auth_pass_entry = text; free(password); + /* place vbox for pop3 settings after check_button */ + gtk_box_pack_start(GTK_BOX(vbox), pop3_vbox, FALSE, FALSE, 2); + gtk_widget_set_sensitive(pop3_vbox, preferences.email_authentication == EMAIL_AUTH_POP3); - xsane_separator_new(vbox, 2); + /* pop3 server */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + label = gtk_label_new(TEXT_SETUP_POP3_SERVER); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); - /* mailviewer */ + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_SERVER); + gtk_widget_set_size_request(text, 250, -1); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_pop3_server); + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); + gtk_widget_show(text); + gtk_widget_show(hbox); + xsane_setup.email_pop3_server_entry = text; + + + /* pop3 port */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_VIEWER); + label = gtk_label_new(TEXT_SETUP_POP3_PORT); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_VIEWER); - gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_viewer); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PORT); + gtk_widget_set_size_request(text, 50, -1); + snprintf(buf, sizeof(buf), "%d", preferences.email_pop3_port); + gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_viewer_entry = text; + xsane_setup.email_pop3_port_entry = text; + + + xsane_setup.pop3_vbox = pop3_vbox; xsane_separator_new(vbox, 4); @@ -2307,7 +2388,7 @@ static void xsane_mail_notebook(GtkWidget *notebook) #else button = gtk_button_new_with_label(BUTTON_APPLY); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_mail_apply_changes, NULL); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_email_apply_changes, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -2768,6 +2849,15 @@ static void xsane_enhance_notebook_sensitivity(int lineart_mode) /* ---------------------------------------------------------------------------------------------------------------------- */ +static void xsane_setup_authentication_type_callback(GtkWidget *widget, gpointer data) +{ + xsane_setup.email_authentication = (int) data; + + gtk_widget_set_sensitive(xsane_setup.pop3_vbox, (xsane_setup.email_authentication == EMAIL_AUTH_POP3)); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_setup_show_range_mode_callback(GtkWidget *widget, gpointer data) { xsane_setup.show_range_mode = (int) data; @@ -2805,27 +2895,10 @@ static void xsane_setup_preview_pipette_range_callback(GtkWidget *widget, gpoint /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_setup_adf_mode_callback(GtkWidget *widget, gpointer data) -{ - if (xsane_setup.adf_scansource) - { - free(xsane_setup.adf_scansource); - xsane_setup.adf_scansource = NULL; - } - - if (data) - { - xsane_setup.adf_scansource = strdup( (char *) data); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - static void xsane_enhance_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame; GtkWidget *lineart_mode_option_menu, *lineart_mode_menu, *lineart_mode_item; - GtkWidget *adf_option_menu, *adf_menu, *adf_item; GtkWidget *gray_option_menu, *gray_menu, *gray_item; GtkWidget *preview_pipette_range_option_menu, *preview_pipette_range_menu, *preview_pipette_range_item; const SANE_Option_Descriptor *opt; @@ -3130,87 +3203,6 @@ static void xsane_enhance_notebook(GtkWidget *notebook) xsane_separator_new(vbox, 4); - /* ADF modus 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(TEXT_SETUP_ADF_MODE); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - gtk_widget_show(label); - - if (xsane.adf_scansource) - { - xsane_setup.adf_scansource = strdup(xsane.adf_scansource); - } - else - { - xsane_setup.adf_scansource = NULL; - } - - select = 0; - adf_menu = gtk_menu_new(); - - adf_item = gtk_menu_item_new_with_label(MENU_ITEM_SELECTION_NONE); - gtk_container_add(GTK_CONTAINER(adf_menu), adf_item); - g_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, NULL); - gtk_widget_show(adf_item); - - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); - if (opt) - { - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - switch (opt->constraint_type) - { - case SANE_CONSTRAINT_STRING_LIST: - { - char *set; - SANE_Status status; - - /* use a "list-selection" widget */ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); - - for (i=0; opt->constraint.string_list[i]; i++) - { - adf_item = gtk_menu_item_new_with_label(_BGT(opt->constraint.string_list[i])); - gtk_container_add(GTK_CONTAINER(adf_menu), adf_item); - g_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, (void *) opt->constraint.string_list[i]); - - gtk_widget_show(adf_item); - - if (xsane.adf_scansource) - { - if (!strcmp(opt->constraint.string_list[i], xsane.adf_scansource)) - { - select = i+1; - } - } - } - } - break; - - default: - DBG(DBG_error, "adf_scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type); - } - } - } - - adf_option_menu = gtk_option_menu_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, adf_option_menu, DESC_ADF_MODE); - gtk_box_pack_end(GTK_BOX(hbox), adf_option_menu, FALSE, FALSE, 2); - gtk_option_menu_set_menu(GTK_OPTION_MENU(adf_option_menu), adf_menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(adf_option_menu), select); - gtk_widget_show(hbox); - - gtk_widget_show(adf_option_menu); - - - xsane_separator_new(vbox, 4); - - /* apply button */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -3266,11 +3258,11 @@ void xsane_setup_dialog(GtkWidget *widget, gpointer data) xsane_saving_notebook(notebook); - xsane_image_notebook(notebook); + xsane_filetype_notebook(notebook); xsane_printer_notebook(notebook); xsane_fax_notebook(notebook); -#ifdef XSANE_ACTIVATE_MAIL - xsane_mail_notebook(notebook); +#ifdef XSANE_ACTIVATE_EMAIL + xsane_email_notebook(notebook); #endif xsane_ocr_notebook(notebook); xsane_display_notebook(notebook); diff --git a/src/xsane-setup.h b/src/xsane-setup.h index 06e2949..8055dfb 100644 --- a/src/xsane-setup.h +++ b/src/xsane-setup.h @@ -26,8 +26,12 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ +#ifndef XSANE_SETUP_H +# define XSANE_SETUP_H + extern void xsane_new_printer(void); extern void xsane_update_int(GtkWidget *widget, int *val); extern void xsane_setup_dialog(GtkWidget *widget, gpointer data); +#endif /* ---------------------------------------------------------------------------------------------------------------------- */ diff --git a/src/xsane-text.h b/src/xsane-text.h index 3334f14..7614bfc 100644 --- a/src/xsane-text.h +++ b/src/xsane-text.h @@ -48,9 +48,10 @@ #define WINDOW_FAX_PROJECT _("fax project") #define WINDOW_FAX_RENAME _("rename fax page") #define WINDOW_FAX_INSERT _("insert ps-file into fax") -#define WINDOW_MAIL_PROJECT _("mail project") -#define WINDOW_MAIL_RENAME _("rename mail image") -#define WINDOW_MAIL_INSERT _("insert file into mail") +#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") @@ -134,6 +135,7 @@ #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") @@ -145,10 +147,12 @@ #define BUTTON_SCALE_BIND _("Bind scale") #define RADIO_BUTTON_FINE_MODE _("Fine mode") -#define RADIO_BUTTON_HTML_MAIL _("HTML mail") +#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") @@ -157,14 +161,11 @@ #define RADIO_BUTTON_AUTOENHANCE_GAMMA _("Autoenhance gamma") #define RADIO_BUTTON_PRESELECT_SCANAREA _("Preselect scanarea") #define RADIO_BUTTON_AUTOCORRECT_COLORS _("Autocorrect colors") -#define RADIO_BUTTON_POP3_AUTHENTIFICATION _("POP3 authentification") #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_XSANE_MODE _("XSane mode") -#define TEXT_FILENAME_COUNTER_STEP _("Step") #define TEXT_FILETYPE _("Type") #define TEXT_SCANNER_BACKEND _("Scanner and backend:") #define TEXT_VENDOR _("Vendor:") @@ -219,7 +220,7 @@ "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 _("Email:") +#define TEXT_EMAIL_ADR _("E-mail:") #define TEXT_HOMEPAGE _("Homepage:") #define TEXT_FILE _("File:") #define TEXT_TRANSLATION _("Translation:") @@ -227,19 +228,22 @@ /* Please translate this to something like */ /* translation to YOUR LANGUAGE\n */ /* by YOUR NAME\n */ -/* Email: your.name@yourdomain.com\n */ +/* E-mail: your.name@yourdomain.com\n */ #define TEXT_TRANSLATION_INFO _("untranslated original english text\n" \ "by Oliver Rauch\n" \ - "Email: Oliver.Rauch@rauch-domain.de\n") + "E-mail: Oliver.Rauch@rauch-domain.de\n") #define TEXT_INFO_BOX _("0x0: 0KB") #define TEXT_ADF_PAGES_SCANNED _("Scanned pages: ") -#define TEXT_MAIL_TEXT _("Email text:") +#define TEXT_EMAIL_TEXT _("E-mail text:") #define TEXT_ATTACHMENTS _("Attachments:") -#define TEXT_MAIL_STATUS _("Project status:") -#define TEXT_MAIL_FILETYPE _("Mail image filetype:") +#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:") @@ -270,12 +274,14 @@ #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") @@ -286,7 +292,6 @@ #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_ADF_MODE _("Automatic Document Feeder Modus:") #define TEXT_SETUP_PREVIEW_PIPETTE_RANGE _("Preview pipette range") #define TEXT_SETUP_THRESHOLD_MIN _("Threshold minimum:") #define TEXT_SETUP_THRESHOLD_MAX _("Threshold maximum:") @@ -305,15 +310,16 @@ #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_MAIL_FROM _("From:") -#define TEXT_SETUP_MAIL_REPLY_TO _("Reply to:") +#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_POP3_USER _("POP3 user:") -#define TEXT_SETUP_POP3_PASS _("POP3 password:") -#define TEXT_SETUP_MAIL_VIEWER _("Viewer (png):") #define TEXT_SETUP_OCR_COMMAND _("OCR Command:") #define TEXT_SETUP_OCR_INPUTFILE_OPT _("Inputfile option:") #define TEXT_SETUP_OCR_OUTPUTFILE_OPT _("Outputfile option:") @@ -326,10 +332,10 @@ #define TEXT_NEW_MEDIA_NAME _("new media") #define NOTEBOOK_SAVING_OPTIONS _("Save") -#define NOTEBOOK_IMAGE_OPTIONS _("Image") +#define NOTEBOOK_FILETYPE_OPTIONS _("Filetype") #define NOTEBOOK_COPY_OPTIONS _("Copy") #define NOTEBOOK_FAX_OPTIONS _("Fax") -#define NOTEBOOK_MAIL_OPTIONS _("Mail") +#define NOTEBOOK_EMAIL_OPTIONS _("E-mail") #define NOTEBOOK_OCR_OPTIONS _("OCR") #define NOTEBOOK_DISPLAY_OPTIONS _("Display") #define NOTEBOOK_ENHANCE_OPTIONS _("Enhancement") @@ -337,8 +343,9 @@ #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_MAIL _("Email") +#define MENU_ITEM_EMAIL _("E-mail") #define MENU_ITEM_SHOW_TOOLTIPS _("Show tooltips") #define MENU_ITEM_SHOW_PREVIEW _("Show preview") @@ -379,6 +386,7 @@ #define MENU_ITEM_TIFF_COMP_CCITFAX4 _("CCITT Group 4 Fax compression") #define MENU_ITEM_TIFF_COMP_JPEG _("JPEG DCT compression") #define MENU_ITEM_TIFF_COMP_PACKBITS _("pack bits") +#define MENU_ITEM_TIFF_COMP_DEFLATE _("deflate") #define MENU_ITEM_RANGE_SCALE _("Slider (Scale)") #define MENU_ITEM_RANGE_SCROLLBAR _("Slider (Scrollbar)") @@ -401,8 +409,15 @@ #define MENU_ITEM_MOVE_UP _("Move item up") #define MENU_ITEM_MOVE_DWN _("Move item down") +#define MENU_ITEM_AUTH_NONE _("no authentication") +#define MENU_ITEM_AUTH_POP3 _("POP3 before SMTP") +#define MENU_ITEM_AUTH_ASMTP_PLAIN _("ASMTP Plain") +#define MENU_ITEM_AUTH_ASMTP_LOGIN _("ASMTP Login") +#define MENU_ITEM_AUTH_ASMTP_CRAM_MD5 _("ASMTP CRAM-MD5") + #define PROGRESS_SCANNING _("Scanning") #define PROGRESS_RECEIVING_FRAME_DATA _("Receiving %s data") +#define PROGRESS_PAGE _("page") #define PROGRESS_TRANSFERING_DATA _("Transfering image") #define PROGRESS_ROTATING_DATA _("Rotating image") @@ -420,8 +435,8 @@ #define DESC_SCAN_CANCEL _("Cancel scan <ESC>") #define DESC_PREVIEW_ACQUIRE _("Acquire preview scan <Alt-p>") #define DESC_PREVIEW_CANCEL _("Cancel preview scan <Alt-ESC>") -#define DESC_XSANE_MODE _("save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, " \ - "fax-<Ctrl-f> or mail-<Ctrl-m>") +#define DESC_XSANE_MODE _("viewer-<Ctrl-v>, save-<Ctrl-s>, photocopy-<Ctrl-c>, " \ + "multipage-<Ctrl-m>, fax-<Ctrl-f> or e-mail-<Ctrl-e>") #define DESC_XSANE_MEDIUM _("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.") @@ -433,11 +448,13 @@ #define DESC_FAXPROJECT _("Enter name of fax project") #define DESC_FAXPAGENAME _("Enter new name for faxpage") #define DESC_FAXRECEIVER _("Enter receiver phone number or address") -#define DESC_MAILPROJECT _("Enter name of mail project") -#define DESC_MAILIMAGENAME _("Enter new name for mail image") -#define DESC_MAILRECEIVER _("Enter email address") -#define DESC_MAILSUBJECT _("Enter subject of email") -#define DESC_MAIL_FILETYPE _("Select filetype for image attachments") +#define DESC_EMAIL_PROJECT _("Enter name of e-mail project") +#define DESC_EMAIL_IMAGENAME _("Enter new name for e-mail image") +#define DESC_EMAIL_RECEIVER _("Enter e-mail address") +#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_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") #define DESC_MEDIUM_RENAME _("Enter new name for medium definition") @@ -508,17 +525,23 @@ #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" \ + "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") #define DESC_JPEG_QUALITY _("Quality in percent if image is saved as jpeg or tiff with jpeg compression") #define DESC_PNG_COMPRESSION _("Compression if image is saved as png") #define DESC_FILENAME_COUNTER_LEN _("Minimum length of counter in filename") +#define DESC_TIFF_ZIP_COMPRESSION _("Compression rate for zip compressed tiff (deflate)") #define DESC_TIFF_COMPRESSION_16 _("Compression type if 16 bit image is saved as tiff") #define DESC_TIFF_COMPRESSION_8 _("Compression type if 8 bit image is saved as tiff") #define DESC_TIFF_COMPRESSION_1 _("Compression type if lineart image is saved as tiff") #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). " \ + "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_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 " \ @@ -545,8 +568,7 @@ #define DESC_PREVIEW_THRESHOLD_MAX _("The scanner's maximum threshold level in %") #define DESC_PREVIEW_THRESHOLD_MUL _("Multiplier to make XSane threshold range and scanner threshold range the same") #define DESC_PREVIEW_THRESHOLD_OFF _("Offset to make XSane threshold range and scanner threshold range the same") -#define DESC_ADF_MODE _("Select scansource for Automatic Document feeder. " \ - "If this scansource is selected XSane scans until \"out of paper\" or error.") +#define DESC_ADF_PAGES_MAX _("Number of pages to scan") #define DESC_PREVIEW_PIPETTE_RANGE _("dimension of square that is used to average color for pipette function") #define DESC_DOC_VIEWER _("Enter command to be executed to display helpfiles, must be a html-viewer!") #define DESC_AUTOENHANCE_GAMMA _("Change gamma value when autoenhancement button is pressed") @@ -564,17 +586,17 @@ #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_SMTP_SERVER _("IP Address or Domain name of SMTP server") #define DESC_SMTP_PORT _("port to connect to SMTP server") -#define DESC_MAIL_FROM _("enter your email address") -#define DESC_MAIL_REPLY_TO _("enter email address for replied emails") -#define DESC_POP3_AUTHENTIFICATION _("Authentificate at POP3 server before sending mail") +#define DESC_EMAIL_FROM _("enter your e-mail address") +#define DESC_EMAIL_REPLY_TO _("enter e-mail address for replied e-mails") +#define DESC_EMAIL_AUTHENTICATION _("Type of authentication before sending e-mail") +#define DESC_EMAIL_AUTH_USER _("user name for e-mail server") +#define DESC_EMAIL_AUTH_PASS _("password for e-mail server") #define DESC_POP3_SERVER _("IP Address or Domain name of POP3 server") #define DESC_POP3_PORT _("port to connect to POP3 server") -#define DESC_POP3_USER _("user name for POP3 server") -#define DESC_POP3_PASS _("password for POP3 server") -#define DESC_MAIL_VIEWER _("Enter command to be executed to view a mail image") -#define DESC_HTML_MAIL _("Mail is sent in html mode, place image with: <IMAGE>") +#define DESC_HTML_EMAIL _("E-mail is sent in html mode, place image with: <IMAGE>") #define DESC_OCR_COMMAND _("Enter command to start ocr program") #define DESC_OCR_INPUTFILE_OPT _("Enter option of the ocr program to define input file") #define DESC_OCR_OUTPUTFILE_OPT _("Enter option of the ocr program to define output file") @@ -639,7 +661,10 @@ #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") -#define ERR_CREATE_TEMP_FILE _("Could not create temporary file") +#define ERR_CREATE_TEMP_FILE _("Could not create temporary file.\n\ +Open Menue Preferences->Setup Tab Save and\n\ +select a temporary directory where you have\n\ +write permissions." ) #define ERR_SET_OPTION _("Failed to set value of option") #define ERR_GET_OPTION _("Failed to obtain value of option") #define ERR_OPTION_COUNT _("Error obtaining option count") @@ -670,7 +695,6 @@ #define ERR_FAILED_EXEC_DOC_VIEWER _("Failed to execute documentation viewer:") #define ERR_FAILED_EXEC_FAX_VIEWER _("Failed to execute fax viewer:") #define ERR_FAILED_EXEC_FAX_CMD _("Failed to execute fax command:") -#define ERR_FAILED_EXEC_MAIL_VIEWER _("Failed to execute mail image viewer:") #define ERR_FAILED_EXEC_OCR_CMD _("Failed to execute ocr command:") #define ERR_BAD_FRAME_FORMAT _("bad frame format") #define ERR_FAILED_SET_RESOLUTION _("unable to set resolution") @@ -686,9 +710,6 @@ #define ERR_PREVIEW_BAD_DEPTH _("Preview cannot handle bit depth") #define ERR_GIMP_SUPPORT_MISSING _("GIMP support missing") -#define ERR_CREATE_PREVIEW_FILE _("Could not create temporary preview files") -#define ERR_CREATE_PREVIEW_FILENAME _("Could not create filenames for preview files") - #define ERR_CREATE_FAX_PROJECT _("Could not create faxproject") #define WARN_COUNTER_UNDERRUN _("Filename counter underrun") @@ -738,8 +759,9 @@ The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\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\ - -m, --mail start with mail-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\ @@ -805,22 +827,26 @@ The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n\ #define MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 N_("Konica negative VX 100") #define MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 N_("Rossmann negative HR 100") -#define TEXT_MAIL_STATUS_NOT_CREATED N_("Mail project not created") -#define TEXT_MAIL_STATUS_CREATED N_("Mail project created") -#define TEXT_MAIL_STATUS_CHANGED N_("Mail project changed") -#define TEXT_MAIL_STATUS_ERR_READ_PROJECT N_("Error reading mailproject") -#define TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED N_("POP3 connection failed") -#define TEXT_MAIL_STATUS_POP3_LOGIN_FAILED N_("POP3 login failed") -#define TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED N_("SMTP connection failed") -#define TEXT_MAIL_STATUS_SMTP_ERR_FROM N_("From entry not accepted") -#define TEXT_MAIL_STATUS_SMTP_ERR_RCPT N_("Receiver entry not accepted") -#define TEXT_MAIL_STATUS_SMTP_ERR_DATA N_("Mail data not accepted") -#define TEXT_MAIL_STATUS_SENDING N_("Sending mail") -#define TEXT_MAIL_STATUS_SENT N_("Mail has been sent") - -#define TEXT_FAX_STATUS_NOT_CREATED N_("Fax project not created") -#define TEXT_FAX_STATUS_CREATED N_("Fax project created") -#define TEXT_FAX_STATUS_CHANGED N_("Fax project changed") +#define TEXT_PROJECT_STATUS_NOT_CREATED N_("Project not created") +#define TEXT_PROJECT_STATUS_CREATED N_("Project created") +#define TEXT_PROJECT_STATUS_CHANGED N_("Project changed") +#define TEXT_PROJECT_STATUS_ERR_READ_PROJECT N_("Error reading project") + +#define TEXT_PROJECT_STATUS_FILE_SAVING_ERROR N_("Error saving file") +#define TEXT_PROJECT_STATUS_FILE_SAVING N_("Saving file") +#define TEXT_PROJECT_STATUS_FILE_SAVING_ABORTED N_("Aborted saving file") +#define TEXT_PROJECT_STATUS_FILE_SAVED N_("File has been saved") + +#define TEXT_EMAIL_STATUS_POP3_CONNECTION_FAILED N_("POP3 connection failed") +#define TEXT_EMAIL_STATUS_POP3_LOGIN_FAILED N_("POP3 login failed") +#define TEXT_EMAIL_STATUS_ASMTP_AUTH_FAILED N_("ASMTP authentication failed") +#define TEXT_EMAIL_STATUS_SMTP_CONNECTION_FAILED N_("SMTP connection failed") +#define TEXT_EMAIL_STATUS_SMTP_ERR_FROM N_("From entry not accepted") +#define TEXT_EMAIL_STATUS_SMTP_ERR_RCPT N_("Receiver entry not accepted") +#define TEXT_EMAIL_STATUS_SMTP_ERR_DATA N_("E-mail data not accepted") +#define TEXT_EMAIL_STATUS_SENDING N_("Sending e-mail") +#define TEXT_EMAIL_STATUS_SENT N_("E-mail has been sent") + #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 6a58f8b..718ab6d 100644 --- a/src/xsane-viewer.c +++ b/src/xsane-viewer.c @@ -65,7 +65,8 @@ static GtkWidget *xsane_viewer_file_build_menu(Viewer *v); static GtkWidget *xsane_viewer_edit_build_menu(Viewer *v); static GtkWidget *xsane_viewer_filters_build_menu(Viewer *v); static int xsane_viewer_read_image(Viewer *v); -Viewer *xsane_viewer_new(char *filename, int allow_reduction_to_lineart, char *output_filename, viewer_modification allow_modification); +Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_reduction_to_lineart, + char *output_filename, viewer_modification allow_modification, int image_saved); /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -281,7 +282,7 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_VIEWER_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, &preferences.filetype, TRUE, TRUE, FALSE, TRUE); + abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, &v->selection_filetype, TRUE, TRUE, FALSE, TRUE); umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ if (abort) @@ -297,9 +298,14 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) } v->output_filename = strdup(outputfilename); + +#if 0 + /* to be removed */ xsane_update_counter_in_filename(&v->output_filename, FALSE, 0, preferences.filename_counter_len); /* set correct counter length */ +#endif - if (preferences.overwrite_warning) /* test if filename already used */ + + if ((preferences.overwrite_warning) && (!v->keep_viewer_pnm_format)) /* test if filename already used when filename can be changed by user */ { FILE *testfile; @@ -320,9 +326,10 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) inputfilename = strdup(v->filename); - output_format = xsane_identify_output_format(v->output_filename, preferences.filetype, 0); + output_format = xsane_identify_output_format(v->output_filename, v->selection_filetype, 0); - if ((!v->allow_reduction_to_lineart) && (output_format == XSANE_PNM)) /* save PNM but do not reduce to lineart (if lineart) */ + if (((!v->allow_reduction_to_lineart) && (output_format == XSANE_PNM)) || /* save PNM but do not reduce to lineart (if lineart) */ + (v->keep_viewer_pnm_format)) /* we have to make sure that we save in viewer pnm format */ { if (xsane_create_secure_file(v->output_filename)) /* remove possibly existing symbolic links for security */ { @@ -352,7 +359,21 @@ static void xsane_viewer_save_callback(GtkWidget *window, gpointer data) snprintf(buf, sizeof(buf), "%s %s - %s", WINDOW_VIEWER, v->last_saved_filename, xsane.device_text); gtk_window_set_title(GTK_WINDOW(v->top), buf); - xsane_update_counter_in_filename(&v->output_filename, preferences.skip_existing_numbers, 1, preferences.filename_counter_len); + if (xsane.print_filenames) /* print created filenames to stdout? */ + { + if (v->output_filename[0] != '/') /* relative path */ + { + char pathname[512]; + getcwd(pathname, sizeof(pathname)); + printf("XSANE_IMAGE_FILENAME: %s/%s\n", pathname, v->output_filename); + fflush(stdout); + } + else /* absolute path */ + { + printf("XSANE_IMAGE_FILENAME: %s\n", v->output_filename); + fflush(stdout); + } + } xsane_viewer_set_sensitivity(v, TRUE); } @@ -437,11 +458,11 @@ static void xsane_viewer_clone_callback(GtkWidget *window, gpointer data) { char buf[256]; snprintf(buf, sizeof(buf), "%s%s", FILENAME_PREFIX_CLONE_OF, v->last_saved_filename); - xsane_viewer_new(outfilename, v->allow_reduction_to_lineart, buf, v->allow_modification); + xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, buf, v->allow_modification, IMAGE_NOT_SAVED); } else { - xsane_viewer_new(outfilename, v->allow_reduction_to_lineart, NULL, v->allow_modification); + xsane_viewer_new(outfilename, v->selection_filetype, v->allow_reduction_to_lineart, NULL, v->allow_modification, IMAGE_NOT_SAVED); } } @@ -1783,6 +1804,11 @@ static int xsane_viewer_read_image(Viewer *v) size *= 2.0; } + if ((v->allow_reduction_to_lineart) && (image_info.reduce_to_lineart)) + { + size /= 8.0; + } + size_unit = "B"; if (size >= 1024 * 1024) @@ -1796,7 +1822,7 @@ static int xsane_viewer_read_image(Viewer *v) size_unit = "KB"; } - if (v->allow_reduction_to_lineart) + if ((v->allow_reduction_to_lineart) && (image_info.reduce_to_lineart)) { 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); @@ -1841,7 +1867,8 @@ static int xsane_viewer_read_image(Viewer *v) /* ---------------------------------------------------------------------------------------------------------------------- */ -Viewer *xsane_viewer_new(char *filename, int allow_reduction_to_lineart, char *output_filename, viewer_modification allow_modification) +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[256]; Viewer *v; @@ -1866,14 +1893,25 @@ Viewer *xsane_viewer_new(char *filename, int allow_reduction_to_lineart, char *o v->undo_filename = NULL; v->allow_reduction_to_lineart = allow_reduction_to_lineart; v->zoom = 1.0; - v->image_saved = FALSE; + v->image_saved = image_saved; + v->keep_viewer_pnm_format = FALSE; v->allow_modification = allow_modification; v->next_viewer = xsane.viewer_list; + if (selection_filetype) + { + v->selection_filetype = strdup(selection_filetype); + } + else + { + v->selection_filetype = NULL; + } + xsane.viewer_list = v; - if (v->allow_modification == VIEWER_NO_MODIFICATION) + if (v->allow_modification != VIEWER_FULL_MODIFICATION) { - v->image_saved = TRUE; + v->keep_viewer_pnm_format = TRUE; + v->last_saved_filename = strdup(output_filename); /* output_filename MUST be defined in this case */ } if (output_filename) diff --git a/src/xsane-viewer.h b/src/xsane-viewer.h index 31d87bc..373fd31 100644 --- a/src/xsane-viewer.h +++ b/src/xsane-viewer.h @@ -45,8 +45,10 @@ typedef struct Viewer char *output_filename; char *last_saved_filename; char *undo_filename; + char *selection_filetype; int allow_reduction_to_lineart; + int keep_viewer_pnm_format; float zoom; int image_saved; int cancel_save; @@ -102,6 +104,7 @@ typedef struct Viewer } Viewer; -extern Viewer *xsane_viewer_new(char *filename, int reduce_to_lineart, char *output_filename, viewer_modification allow_modification); +extern Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_reduction_to_lineart, + char *output_filename, viewer_modification allow_modification, int image_saved); #endif diff --git a/src/xsane.c b/src/xsane.c index 30e093c..279df23 100644 --- a/src/xsane.c +++ b/src/xsane.c @@ -30,6 +30,9 @@ #include "xsane-gamma.h" #include "xsane-setup.h" #include "xsane-scan.h" +#include "xsane-multipage-project.h" +#include "xsane-fax-project.h" +#include "xsane-email-project.h" #include "xsane-rc-io.h" #include "xsane-device-preferences.h" #include "xsane-preferences.h" @@ -57,8 +60,9 @@ struct option long_options[] = {"viewer", no_argument, 0, 'V'}, {"copy", no_argument, 0, 'c'}, {"fax", no_argument, 0, 'f'}, -#ifdef XSANE_ACTIVATE_MAIL - {"mail", no_argument, 0, 'm'}, + {"multipage", no_argument, 0, 'm'}, +#ifdef XSANE_ACTIVATE_EMAIL + {"email", no_argument, 0, 'e'}, #endif {"no-mode-selection", no_argument, 0, 'n'}, {"Fixed", no_argument, 0, 'F'}, @@ -114,7 +118,6 @@ static const Preferences_medium_t pref_default_medium[]= int DBG_LEVEL = 0; static guint xsane_resolution_timer = 0; -static guint xsane_mail_send_timer = 0; /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -122,7 +125,7 @@ struct Xsane xsane; /* most xsane dependant values */ /* ---------------------------------------------------------------------------------------------------------------------- */ -int xsane_scanmode_number[] = { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_FAX, XSANE_MAIL }; +int xsane_scanmode_number[] = { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_MULTIPAGE, XSANE_FAX, XSANE_EMAIL }; /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -138,7 +141,6 @@ int xsane_scanmode_number[] = { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_FAX, /* forward declarations: */ -static int xsane_option_defined(char *string); static void xsane_zoom_update(GtkAdjustment *adj_data, double *val); static void xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val); static void xsane_threshold_changed(void); @@ -179,51 +181,6 @@ static gint xsane_close_info_callback(GtkWidget *widget, gpointer data); static void xsane_info_dialog(GtkWidget *widget, gpointer data); static void xsane_about_dialog(GtkWidget *widget, gpointer data); static void xsane_about_translation_dialog(GtkWidget *widget, gpointer data); -static gint xsane_fax_dialog_delete(); -static void xsane_fax_dialog(void); -static void xsane_fax_dialog_close(void); -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); -static void xsane_fax_project_update_project_status(); -void xsane_fax_project_save(void); -static void xsane_fax_project_load(void); -static void xsane_fax_project_delete(void); -static void xsane_fax_project_create(void); -static void xsane_list_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2); -static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list); -static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list); -static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list); -static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list); -static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list); -static void xsane_fax_show_callback(GtkWidget *widget, gpointer data); -static void xsane_fax_send(void); -#ifdef XSANE_ACTIVATE_MAIL -static gint xsane_mail_dialog_delete(); -static void xsane_mail_filetype_callback(GtkWidget *filetype_option_menu, char *filetype); -static void xsane_mail_dialog(void); -static void xsane_mail_dialog_close(void); -static void xsane_mail_receiver_changed_callback(GtkWidget *widget, gpointer data); -static void xsane_mail_subject_changed_callback(GtkWidget *widget, gpointer data); -static void xsane_mail_project_changed_callback(GtkWidget *widget, gpointer data); -static void xsane_mail_html_mode_callback(GtkWidget *widget); -void xsane_mail_project_save(void); -static void xsane_mail_project_display_status(void); -static void xsane_mail_project_load(void); -static void xsane_mail_project_delete(void); -static void xsane_mail_project_update_project_status(); -static void xsane_mail_project_create(void); -static void xsane_mail_entry_move_up_callback(GtkWidget *widget, gpointer list); -static void xsane_mail_entry_move_down_callback(GtkWidget *widget, gpointer list); -static void xsane_mail_entry_rename_callback(GtkWidget *widget, gpointer list); -static void xsane_mail_entry_delete_callback(GtkWidget *widget, gpointer list); -static void xsane_mail_show_callback(GtkWidget *widget, gpointer data); -#if 0 -static void xsane_mail_edit_callback(GtkWidget *widget, gpointer data); -#endif -static void xsane_mail_send_process(void); -static void xsane_mail_send(void); -#endif static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data); static void xsane_show_eula(GtkWidget *widget, gpointer data); static void xsane_show_gpl(GtkWidget *widget, gpointer data); @@ -260,24 +217,6 @@ void xsane_debug_message(int level, const char *fmt, ...) /* ---------------------------------------------------------------------------------------------------------------------- */ -static int xsane_option_defined(char *string) -{ - if (string) - { - while (*string == ' ') /* skip spaces */ - { - string++; - } - if (*string != 0) - { - return 1; - } - } - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - static void xsane_threshold_changed() { DBG(DBG_proc, "xsane_threshold_changed\n"); @@ -328,7 +267,11 @@ static void xsane_set_modus_defaults(void) { DBG(DBG_proc, "xsane_set_modus_defaults\n"); - switch(xsane.xsane_mode) + if (xsane.mode == XSANE_GIMP_EXTENSION) + { + xsane_define_maximum_output_size(); + } + else switch(xsane.xsane_mode) { case XSANE_VIEWER: xsane_define_maximum_output_size(); @@ -383,7 +326,7 @@ static void xsane_set_modus_defaults(void) preview_select_full_preview_area(xsane.preview); break; - case XSANE_MAIL: + case XSANE_EMAIL: xsane_define_maximum_output_size(); break; @@ -401,32 +344,26 @@ static void xsane_modus_callback(GtkWidget *xsane_parent, int *num) xsane.xsane_mode = *num; preferences.xsane_mode = *num; - xsane_set_modus_defaults(); /* set defaults and maximum output size */ - xsane_refresh_dialog(); - if ((xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) || (xsane.xsane_mode == XSANE_COPY)) { gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); } - if (xsane.xsane_mode != XSANE_FAX) +#ifdef XSANE_ACTIVATE_EMAIL + if (xsane.xsane_mode != XSANE_EMAIL) { - xsane_fax_dialog_close(); - } - -#ifdef XSANE_ACTIVATE_MAIL - if (xsane.xsane_mode != XSANE_MAIL) - { - if (xsane.mail_project_save) + if (xsane.email_project_save) { - xsane.mail_project_save = 0; - xsane_mail_project_save(); + xsane.email_project_save = 0; + xsane_email_project_save(); } - - xsane_mail_dialog_close(); } #endif + xsane_project_dialog_close(); /* close project dialog when one is open */ + xsane_set_modus_defaults(); /* set defaults and maximum output size */ + xsane_refresh_dialog(); + /* make sure dialogs are rebuild, otherwise we can get in trouble */ while (gtk_events_pending()) { @@ -551,11 +488,11 @@ static void xsane_show_standard_options_callback(GtkWidget * widget) preferences.show_standard_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0); if (preferences.show_standard_options) { - gtk_widget_show(xsane.standard_options_shell); + gtk_widget_show(xsane.standard_options_dialog); } else { - gtk_widget_hide(xsane.standard_options_shell); + gtk_widget_hide(xsane.standard_options_dialog); } } @@ -568,11 +505,11 @@ static void xsane_show_advanced_options_callback(GtkWidget * widget) preferences.show_advanced_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0); if (preferences.show_advanced_options) { - gtk_widget_show(xsane.advanced_options_shell); + gtk_widget_show(xsane.advanced_options_dialog); } else { - gtk_widget_hide(xsane.advanced_options_shell); + gtk_widget_hide(xsane.advanced_options_dialog); } } @@ -1243,20 +1180,32 @@ static void xsane_scanmode_menu_callback(GtkWidget *widget, gpointer data) /* ---------------------------------------------------------------------------------------------------------------------- */ +static void xsane_adf_pages_max_callback(GtkWidget *widget, gpointer data) +{ + xsane_update_int(xsane.adf_pages_max_entry, &preferences.adf_pages_max); /* get adf pages maximum */ +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ { + GtkWidget *hbox; GtkWidget *xsane_vbox, *xsane_hbox; GtkWidget *xsane_modus_menu; GtkWidget *xsane_modus_item; GtkWidget *xsane_modus_option_menu; GtkWidget *xsane_vbox_xsane_modus; - GtkWidget *xsane_hbox_xsane_modus; - GtkWidget *xsane_label; - GtkWidget *xsane_text; + GtkWidget *xsane_spinbutton; GtkWidget *xsane_hbox_xsane_enhancement; GtkWidget *xsane_frame; + GtkWidget *xsane_medium_option_menu, *xsane_medium_menu, *xsane_medium_item; GtkWidget *button; - gchar buf[256]; + GtkWidget *pixmapwidget; + GdkBitmap *mask; + GdkPixmap *pixmap; + GtkObject *adjustment; + const SANE_Option_Descriptor *opt; + int i; DBG(DBG_proc, "xsane_update_xsane_callback\n"); @@ -1278,8 +1227,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ gtk_box_pack_start(GTK_BOX(xsane_vbox), xsane_frame, TRUE, TRUE, 0); /* sizeable framehight */ gtk_widget_show(xsane_frame); -/* xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 5); */ - xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 1); + xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 1); gtk_container_add(GTK_CONTAINER(xsane_frame), xsane_vbox_xsane_modus); gtk_widget_show(xsane_vbox_xsane_modus); @@ -1287,13 +1235,26 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ if ( (xsane.mode == XSANE_STANDALONE) && (xsane.mode_selection) ) /* display xsane mode selection menu */ { - xsane_hbox_xsane_modus = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(xsane_hbox_xsane_modus), 2); - gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_modus, FALSE, FALSE, 0); + 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); - xsane_label = gtk_label_new(TEXT_XSANE_MODE); - gtk_box_pack_start(GTK_BOX(xsane_hbox_xsane_modus), xsane_label, FALSE, FALSE, 2); - gtk_widget_show(xsane_label); + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) adf_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); + + /* adf pages maximum */ + adjustment = gtk_adjustment_new(preferences.adf_pages_max, 1, 9999, 1, 10, 1); + xsane_spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 0, 0); + gtk_widget_set_size_request(xsane_spinbutton, 55, -1); + gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(xsane_spinbutton), FALSE); + xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_spinbutton, DESC_ADF_PAGES_MAX); + g_signal_connect(GTK_OBJECT(xsane_spinbutton), "changed", (GtkSignalFunc) xsane_adf_pages_max_callback, NULL); + xsane.adf_pages_max_entry = xsane_spinbutton; + gtk_box_pack_start(GTK_BOX(hbox), xsane_spinbutton, FALSE, FALSE, 10); + gtk_widget_show(xsane_spinbutton); xsane_modus_menu = gtk_menu_new(); @@ -1319,184 +1280,50 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ g_signal_connect(GTK_OBJECT(xsane_modus_item), "activate", (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_COPY]); gtk_widget_show(xsane_modus_item); + xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_MULTIPAGE); + gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_M, GDK_CONTROL_MASK, DEF_GTK_MENU_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); + gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item); + g_signal_connect(GTK_OBJECT(xsane_modus_item), "activate", (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_MULTIPAGE]); + gtk_widget_show(xsane_modus_item); + xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_FAX); gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_F, GDK_CONTROL_MASK, DEF_GTK_MENU_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item); g_signal_connect(GTK_OBJECT(xsane_modus_item), "activate", (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_FAX]); gtk_widget_show(xsane_modus_item); -#ifdef XSANE_ACTIVATE_MAIL - xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_MAIL); - gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_M, GDK_CONTROL_MASK, DEF_GTK_MENU_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); +#ifdef XSANE_ACTIVATE_EMAIL + xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_EMAIL); + gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_E, GDK_CONTROL_MASK, DEF_GTK_MENU_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item); - g_signal_connect(GTK_OBJECT(xsane_modus_item), "activate", (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_MAIL]); + g_signal_connect(GTK_OBJECT(xsane_modus_item), "activate", (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_EMAIL]); gtk_widget_show(xsane_modus_item); #endif xsane_modus_option_menu = gtk_option_menu_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_modus_option_menu, DESC_XSANE_MODE); - gtk_box_pack_end(GTK_BOX(xsane_hbox_xsane_modus), xsane_modus_option_menu, FALSE, FALSE, 2); + gtk_box_pack_end(GTK_BOX(hbox), xsane_modus_option_menu, FALSE, FALSE, 2); gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_modus_option_menu), xsane_modus_menu); gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_modus_option_menu), xsane.xsane_mode); gtk_widget_show(xsane_modus_option_menu); - gtk_widget_show(xsane_hbox_xsane_modus); - - xsane.xsanemode_widget = xsane_modus_option_menu; - } - - { - GtkWidget *pixmapwidget; - GdkBitmap *mask; - GdkPixmap *pixmap; - GtkWidget *hbox; - GtkWidget *xsane_medium_option_menu, *xsane_medium_menu, *xsane_medium_item; - const SANE_Option_Descriptor *opt; - int i; - - - /* scanmode */ - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scanmode); - if (opt) - { - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - 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, 2); - - pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) colormode_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); - - switch (opt->constraint_type) - { - case SANE_CONSTRAINT_STRING_LIST: - { - char *set; - SANE_Status status; - - /* use a "list-selection" widget */ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0); - - xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scanmode, - _BGT(opt->desc), xsane_scanmode_menu_callback, SANE_OPTION_IS_SETTABLE(opt->cap), 0); - } - break; - - default: - DBG(DBG_error, "scanmode_selection: %s %d\n", ERR_UNKNOWN_TYPE, opt->type); - } - gtk_widget_show(hbox); - } - } - - - /* input selection */ - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); - if (opt) - { - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - 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, 2); - - pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) scanner_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); - - switch (opt->constraint_type) - { - case SANE_CONSTRAINT_STRING_LIST: - { - char *set; - SANE_Status status; - - /* use a "list-selection" widget */ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); - - xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scansource, - _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0); - } - break; - - default: - DBG(DBG_error, "scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type); - } - gtk_widget_show(hbox); - } - } - - - if (xsane.param.depth != 1) /* show medium selection of not lineart mode */ - { - /* medium selection */ - 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, 2); - - if (xsane.medium_calibration) - { - pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) medium_edit_xpm); - } - else - { - pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) medium_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_medium_menu = gtk_menu_new(); - - for (i=0; i<preferences.medium_definitions; i++) - { - xsane_medium_item = gtk_menu_item_new_with_label(preferences.medium[i]->name); - gtk_menu_append(GTK_MENU(xsane_medium_menu), xsane_medium_item); - g_signal_connect(GTK_OBJECT(xsane_medium_item), "button_press_event", (GtkSignalFunc) xsane_medium_context_menu_callback, (void *) i); - g_signal_connect(GTK_OBJECT(xsane_medium_item), "activate", (GtkSignalFunc) xsane_set_medium_callback, (void *) i); - gtk_object_set_data(GTK_OBJECT(xsane_medium_item), "Selection", (void *) i); - - gtk_widget_show(xsane_medium_item); - } - - gtk_widget_show(xsane_medium_menu); - xsane_medium_option_menu = gtk_option_menu_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_medium_option_menu, DESC_XSANE_MEDIUM); - gtk_box_pack_end(GTK_BOX(hbox), xsane_medium_option_menu, FALSE, FALSE, 2); - gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_medium_option_menu), xsane_medium_menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_medium_option_menu), preferences.medium_nr); - gtk_widget_show(xsane_medium_option_menu); - gtk_widget_show(hbox); + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) target_xpm); /* XSANE_MODE */ + pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); + gtk_box_pack_end(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); + gdk_drawable_unref(pixmap); + gtk_widget_show(pixmapwidget); - xsane.medium_widget = xsane_medium_option_menu; + gtk_widget_show(hbox); - if (xsane.medium_calibration) /* are we running in medium calibration mode? */ - { - xsane_apply_medium_definition_as_enhancement(preferences.medium[preferences.medium_nr]); - xsane_set_medium(NULL); - } - else - { - xsane_set_medium(preferences.medium[preferences.medium_nr]); - } - } - else /* no medium selextion for lineart mode: use Full range gamma curve */ - { - xsane_set_medium(preferences.medium[0]); /* make sure Full range is active */ - } + xsane.xsanemode_widget = xsane_modus_option_menu; } +#if 0 if (xsane.xsane_mode == XSANE_SAVE) +#else + if ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) ) +#endif { xsane.copy_number_entry = NULL; @@ -1505,29 +1332,10 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane_outputfilename_new(xsane_vbox_xsane_modus); /* create filename box, step and type menu */ } } - - if ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) ) - { - /* resolution selection */ - if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm, - DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */ - { - xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm, - DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */ - } - else /* no x resolution, so lets draw common resolution widget */ - { - xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.resolution, resolution_xpm, - DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION); - } - } else if (xsane.xsane_mode == XSANE_COPY) { - GtkWidget *pixmapwidget, *hbox, *xsane_printer_option_menu, *xsane_printer_menu, *xsane_printer_item; - GdkBitmap *mask; - GdkPixmap *pixmap; + GtkWidget *xsane_printer_option_menu, *xsane_printer_menu, *xsane_printer_item; GtkWidget *paper_orientation_option_menu, *paper_orientation_menu, *paper_orientation_item; - int i; hbox = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); @@ -1655,16 +1463,176 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_printer_option_menu), preferences.printernr); /* number of copies */ - xsane_text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_text, DESC_COPY_NUMBER); - gtk_widget_set_size_request(xsane_text, 25, -1); - snprintf(buf, sizeof(buf), "%d", xsane.copy_number); - gtk_entry_set_text(GTK_ENTRY(xsane_text), (char *) buf); - gtk_box_pack_end(GTK_BOX(hbox), xsane_text, FALSE, FALSE, 10); - gtk_widget_show(xsane_text); + adjustment = gtk_adjustment_new(xsane.copy_number, 1, 99, 1, 10, 1); + xsane_spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 0, 0); + gtk_widget_set_size_request(xsane_spinbutton, 40, -1); + gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(xsane_spinbutton), FALSE); + xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_spinbutton, DESC_COPY_NUMBER); + xsane.copy_number_entry = xsane_spinbutton; + gtk_box_pack_start(GTK_BOX(hbox), xsane_spinbutton, FALSE, FALSE, 10); + gtk_widget_show(xsane_spinbutton); + } + + + /* input selection */ + opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); + if (opt) + { + if (SANE_OPTION_IS_ACTIVE(opt->cap)) + { + 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); + + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) scanner_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); + + switch (opt->constraint_type) + { + case SANE_CONSTRAINT_STRING_LIST: + { + char *set; + SANE_Status status; + + /* use a "list-selection" widget */ + set = malloc(opt->size); + status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); + + xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scansource, + _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0); + } + break; + + default: + DBG(DBG_error, "scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type); + } + gtk_widget_show(hbox); + } + } + + + /* scanmode */ + opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scanmode); + if (opt) + { + if (SANE_OPTION_IS_ACTIVE(opt->cap)) + { + 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); + + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) colormode_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); + + switch (opt->constraint_type) + { + case SANE_CONSTRAINT_STRING_LIST: + { + char *set; + SANE_Status status; + + /* use a "list-selection" widget */ + set = malloc(opt->size); + status = xsane_control_option(xsane.dev, xsane.well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0); + + xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scanmode, + _BGT(opt->desc), xsane_scanmode_menu_callback, SANE_OPTION_IS_SETTABLE(opt->cap), 0); + } + break; + + default: + DBG(DBG_error, "scanmode_selection: %s %d\n", ERR_UNKNOWN_TYPE, opt->type); + } + + gtk_widget_show(hbox); + } + } + + + if (xsane.param.depth != 1) /* show medium selection of not lineart mode */ + { + /* medium selection */ + 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); + + if (xsane.medium_calibration) + { + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) medium_edit_xpm); + } + else + { + pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) medium_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_medium_menu = gtk_menu_new(); + + for (i=0; i<preferences.medium_definitions; i++) + { + xsane_medium_item = gtk_menu_item_new_with_label(preferences.medium[i]->name); + gtk_menu_append(GTK_MENU(xsane_medium_menu), xsane_medium_item); + g_signal_connect(GTK_OBJECT(xsane_medium_item), "button_press_event", (GtkSignalFunc) xsane_medium_context_menu_callback, (void *) i); + g_signal_connect(GTK_OBJECT(xsane_medium_item), "activate", (GtkSignalFunc) xsane_set_medium_callback, (void *) i); + gtk_object_set_data(GTK_OBJECT(xsane_medium_item), "Selection", (void *) i); + + gtk_widget_show(xsane_medium_item); + } + + gtk_widget_show(xsane_medium_menu); + + xsane_medium_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_medium_option_menu, DESC_XSANE_MEDIUM); + gtk_box_pack_end(GTK_BOX(hbox), xsane_medium_option_menu, FALSE, FALSE, 2); + gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_medium_option_menu), xsane_medium_menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_medium_option_menu), preferences.medium_nr); + gtk_widget_show(xsane_medium_option_menu); + xsane.medium_widget = xsane_medium_option_menu; + gtk_widget_show(hbox); - xsane.copy_number_entry = xsane_text; + if (xsane.medium_calibration) /* are we running in medium calibration mode? */ + { + xsane_apply_medium_definition_as_enhancement(preferences.medium[preferences.medium_nr]); + xsane_set_medium(NULL); + } + else + { + xsane_set_medium(preferences.medium[preferences.medium_nr]); + } + } + else /* no medium selextion for lineart mode: use Full range gamma curve */ + { + xsane_set_medium(preferences.medium[0]); /* make sure Full range is active */ + } + + + if ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) ) + { + /* resolution selection */ + if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm, + DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */ + { + xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm, + DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */ + } + else /* no x resolution, so lets draw common resolution widget */ + { + xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.resolution, resolution_xpm, + DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION); + } + } + else if (xsane.xsane_mode == XSANE_COPY) + { /* zoom selection */ if (!xsane_zoom_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.zoom_x, xsane.resolution_x, zoom_x_xpm, DESC_ZOOM_X)) @@ -1678,6 +1646,25 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane.resolution, zoom_xpm, DESC_ZOOM); } } + else if (xsane.xsane_mode == XSANE_MULTIPAGE) + { + xsane.copy_number_entry = NULL; + + /* resolution selection */ + if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm, + DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */ + { + xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm, + DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */ + } + else /* no x resolution, so lets draw common resolution widget */ + { + xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.resolution, resolution_xpm, + DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION); + } + + xsane_multipage_dialog(); + } else if (xsane.xsane_mode == XSANE_FAX) { xsane.copy_number_entry = NULL; @@ -1689,8 +1676,8 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ xsane_fax_dialog(); } -#ifdef XSANE_ACTIVATE_MAIL - else if (xsane.xsane_mode == XSANE_MAIL) +#ifdef XSANE_ACTIVATE_EMAIL + else if (xsane.xsane_mode == XSANE_EMAIL) { xsane.copy_number_entry = NULL; @@ -1707,7 +1694,7 @@ GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */ DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION); } - xsane_mail_dialog(); + xsane_email_dialog(); } #endif @@ -2043,53 +2030,58 @@ static int xsane_pref_restore(void) preferences.fax_fine_option = strdup(FAXFINEOPT); } -#ifdef XSANE_ACTIVATE_MAIL - if (!preferences.mail_smtp_server) + if (!preferences.fax_viewer) { - preferences.mail_smtp_server = strdup(""); + preferences.fax_viewer = strdup(FAXVIEWER); } - if (!preferences.mail_from) +#ifdef XSANE_ACTIVATE_EMAIL + if (!preferences.email_smtp_server) { - preferences.mail_from = strdup(""); + preferences.email_smtp_server = strdup(""); } - if (!preferences.mail_reply_to) + if (!preferences.email_from) { - preferences.mail_reply_to = strdup(""); + preferences.email_from = strdup(""); } - if (!preferences.mail_pop3_server) + if (!preferences.email_reply_to) { - preferences.mail_pop3_server = strdup(""); + preferences.email_reply_to = strdup(""); } - if (!preferences.mail_pop3_user) + if (!preferences.email_pop3_server) { - preferences.mail_pop3_user = strdup(""); + preferences.email_pop3_server = strdup(""); } - if (!preferences.mail_pop3_pass) + if (!preferences.email_auth_user) { - preferences.mail_pop3_pass = strdup(""); + preferences.email_auth_user = strdup(""); } - if (!preferences.mail_project) + if (!preferences.email_auth_pass) { - preferences.mail_project = strdup(MAILPROJECT); + preferences.email_auth_pass = strdup(""); } - if (!preferences.mail_viewer) + if (!preferences.email_project) { - preferences.mail_viewer = strdup(MAILVIEWER); + preferences.email_project = strdup(EMAILPROJECT); } - if (!preferences.mail_filetype) + if (!preferences.email_filetype) { - preferences.mail_filetype = strdup(XSANE_DEFAULT_MAILTYPE); + preferences.email_filetype = strdup(XSANE_DEFAULT_EMAIL_TYPE); } #endif + if (!preferences.multipage_project) + { + preferences.multipage_project = strdup(MULTIPAGEPROJECT); + } + if (!preferences.ocr_command) { preferences.ocr_command = strdup(OCRCOMMAND); @@ -2225,20 +2217,6 @@ static RETSIGTYPE xsane_quit_handler(int signal) /* ---------------------------------------------------------------------------------------------------------------------- */ -void xsane_add_process_to_list(pid_t pid) -{ - XsaneChildprocess *newprocess; - - DBG(DBG_proc, "xsane_add_process_to_list(%d)\n", pid); - - newprocess = malloc(sizeof(XsaneChildprocess)); - newprocess->pid = pid; - newprocess->next = xsane.childprocess_list; - xsane.childprocess_list = newprocess; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - static RETSIGTYPE xsane_sigchld_handler(int signal) { int status; @@ -2304,11 +2282,11 @@ static void xsane_quit(void) preview_destroy(preview); } -#ifdef XSANE_ACTIVATE_MAIL - if (xsane.mail_project_save) +#ifdef XSANE_ACTIVATE_EMAIL + if (xsane.email_project_save) { - xsane.mail_project_save = 0; - xsane_mail_project_save(); + xsane.email_project_save = 0; + xsane_email_project_save(); } #endif @@ -2380,6 +2358,12 @@ static gint xsane_standard_option_win_delete(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_standard_option_win_delete\n"); + if (preferences.show_standard_options) + { + xsane_window_get_position(xsane.standard_options_dialog, &xsane.standard_options_dialog_posx, &xsane.standard_options_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.standard_options_dialog), xsane.standard_options_dialog_posx, xsane.standard_options_dialog_posy); + } + gtk_widget_hide(widget); preferences.show_standard_options = FALSE; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_standard_options_widget), preferences.show_standard_options); @@ -2392,6 +2376,12 @@ static gint xsane_advanced_option_win_delete(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_advanced_option_win_delete\n"); + if (preferences.show_advanced_options) + { + xsane_window_get_position(xsane.advanced_options_dialog, &xsane.advanced_options_dialog_posx, &xsane.advanced_options_dialog_posy); + gtk_window_move(GTK_WINDOW(xsane.advanced_options_dialog), xsane.advanced_options_dialog_posx, xsane.advanced_options_dialog_posy); + } + gtk_widget_hide(widget); preferences.show_advanced_options = FALSE; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_advanced_options_widget), preferences.show_advanced_options); @@ -3409,7 +3399,7 @@ static void xsane_about_dialog(GtkWidget *widget, gpointer data) TEXT_VERSION, XSANE_VERSION, XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT, TEXT_HOMEPAGE, XSANE_HOMEPAGE, - TEXT_EMAIL, XSANE_EMAIL); + TEXT_EMAIL_ADR, XSANE_EMAIL_ADR); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); @@ -3531,3142 +3521,6 @@ static void xsane_about_translation_dialog(GtkWidget *widget, gpointer data) /* ---------------------------------------------------------------------------------------------------------------------- */ -static gint xsane_fax_dialog_delete() -{ - return TRUE; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static 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; - GdkBitmap *mask; - GdkPixmap *pixmap; - - DBG(DBG_proc, "xsane_fax_dialog\n"); - - if (xsane.fax_dialog) - { - return; /* window already is open */ - } - - /* GTK_WINDOW_TOPLEVEL looks better but does not place it nice*/ - fax_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_FAX_PROJECT); - gtk_window_set_title(GTK_WINDOW(fax_dialog), buf); - g_signal_connect(GTK_OBJECT(fax_dialog), "delete_event", (GtkSignalFunc) xsane_fax_dialog_delete, NULL); - xsane_set_window_icon(fax_dialog, 0); - gtk_window_add_accel_group(GTK_WINDOW(fax_dialog), xsane.accelerator_group); - - /* set the main vbox */ - fax_scan_vbox = gtk_vbox_new(FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(fax_scan_vbox), 0); - gtk_container_add(GTK_CONTAINER(fax_dialog), fax_scan_vbox); - gtk_widget_show(fax_scan_vbox); - - /* fax project */ - - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 2); - - pixmap = gdk_pixmap_create_from_xpm_d(xsane.shell->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); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPROJECT); - gtk_entry_set_max_length(GTK_ENTRY(text), 128); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_project); - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); - g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_project_changed_callback, NULL); - - xsane.fax_project_entry = text; - xsane.fax_project_entry_box = hbox; - - gtk_widget_show(pixmapwidget); - gtk_widget_show(text); - gtk_widget_show(hbox); - - fax_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(fax_scan_vbox), fax_project_vbox, TRUE, TRUE, 0); - gtk_widget_show(fax_project_vbox); - - /* fax receiver */ - - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2); - - gtk_widget_realize(fax_dialog); - - pixmap = gdk_pixmap_create_from_xpm_d(fax_dialog->window, &mask, xsane.bg_trans, (gchar **) faxreceiver_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXRECEIVER); - gtk_entry_set_max_length(GTK_ENTRY(text), 128); - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); - g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL); - - xsane.fax_receiver_entry = text; - - gtk_widget_show(pixmapwidget); - gtk_widget_show(text); - gtk_widget_show(hbox); - - /* fine mode */ - button = gtk_check_button_new_with_label(RADIO_BUTTON_FINE_MODE); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_FINE_MODE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.fax_fine_mode); - gtk_box_pack_start(GTK_BOX(fax_project_vbox), button, FALSE, FALSE, 2); - gtk_widget_show(button); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_fine_mode_callback, NULL); - - - scrolled_window = gtk_scrolled_window_new(0, 0); - gtk_widget_set_size_request(scrolled_window, 200, 100); - gtk_container_add(GTK_CONTAINER(fax_project_vbox), scrolled_window); - gtk_widget_show(scrolled_window); - - list = gtk_list_new(); -/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */ - - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list); - - gtk_widget_show(list); - - xsane.fax_list = list; - - - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2); - - button = gtk_button_new_with_label(BUTTON_FILE_INSERT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_insert_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_PAGE_SHOW); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_show_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_PAGE_RENAME); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_PAGE_DELETE); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_delete_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_up_callback, list); - xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_down_callback, list); - - gtk_widget_show(hbox); - - xsane.fax_project_box = fax_project_vbox; - - /* set the main hbox */ - hbox = gtk_hbox_new(FALSE, 0); - xsane_separator_new(fax_project_vbox, 2); - gtk_box_pack_end(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); - gtk_widget_show(hbox); - - - fax_project_exists_hbox = gtk_hbox_new(FALSE, 2); - gtk_box_pack_start(GTK_BOX(hbox), fax_project_exists_hbox, TRUE, TRUE, 0); - - button = gtk_button_new_with_label(BUTTON_SEND_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_send, NULL); - gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_delete, NULL); - gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - gtk_widget_show(fax_project_exists_hbox); - xsane.fax_project_exists = fax_project_exists_hbox; - - button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_create, NULL); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - xsane.fax_project_not_exists = button; - - /* progress bar */ - xsane.fax_progress_bar = (GtkProgressBar *) gtk_progress_bar_new(); - gtk_box_pack_start(GTK_BOX(fax_scan_vbox), (GtkWidget *) xsane.fax_progress_bar, FALSE, FALSE, 0); - gtk_progress_set_show_text(GTK_PROGRESS(xsane.fax_progress_bar), TRUE); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), ""); - gtk_widget_show(GTK_WIDGET(xsane.fax_progress_bar)); - - - xsane.fax_dialog = fax_dialog; - - xsane_fax_project_load(); - - gtk_widget_show(fax_dialog); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_dialog_close() -{ - DBG(DBG_proc, "xsane_fax_dialog_close\n"); - - if (xsane.fax_dialog == NULL) - { - return; - } - - gtk_widget_destroy(xsane.fax_dialog); - - xsane.fax_dialog = NULL; - xsane.fax_list = NULL; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_project_load() -{ - FILE *projectfile; - char page[256]; - char filename[PATH_MAX]; - GtkWidget *list_item; - int i; - int c; - - DBG(DBG_proc, "xsane_fax_project_load\n"); - - if (xsane.fax_status) - { - free(xsane.fax_status); - xsane.fax_status = NULL; - } - - if (xsane.fax_receiver) - { - free(xsane.fax_receiver); - xsane.fax_receiver = NULL; - } - - g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.fax_receiver_entry), GTK_SIGNAL_FUNC(xsane_fax_receiver_changed_callback), 0); - gtk_list_remove_items(GTK_LIST(xsane.fax_list), GTK_LIST(xsane.fax_list)->children); - - snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); - projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ - - if ((!projectfile) || (feof(projectfile))) - { - xsane.fax_status=strdup(TEXT_FAX_STATUS_NOT_CREATED); - - snprintf(filename, sizeof(filename), "%s/page-1.pnm", preferences.fax_project); - xsane.fax_filename=strdup(filename); - xsane_update_counter_in_filename(&xsane.fax_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */ - - xsane.fax_receiver=strdup(""); - gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver); - - gtk_widget_set_sensitive(xsane.fax_project_box, FALSE); - gtk_widget_hide(xsane.fax_project_exists); - gtk_widget_show(xsane.fax_project_not_exists); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); - } - else - { - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* first line is receiver phone number or address */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - if (strchr(page, '@')) - { - *strchr(page, '@') = 0; - } - xsane.fax_status = strdup(page); - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* first line is receiver phone number or address */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - xsane.fax_receiver=strdup(page); - gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver); - - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* second line is next fax filename */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - snprintf(filename, sizeof(filename), "%s/%s", preferences.fax_project, page); - xsane.fax_filename=strdup(filename); - - while (!feof(projectfile)) - { - i=0; - c=0; - - while ((i<255) && (c != 10) && (c != EOF)) - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1]=0; - - if (c > 1) - { - char *type; - char *extension; - - extension = strrchr(page, '.'); - if (extension) - { - type = strdup(extension); - *extension = 0; - } - else - { - type = strdup(""); - } - - list_item = gtk_list_item_new_with_label(page); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); - gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item); - gtk_widget_show(list_item); - } - } - gtk_widget_set_sensitive(xsane.fax_project_box, TRUE); - gtk_widget_show(xsane.fax_project_exists); - gtk_widget_hide(xsane.fax_project_not_exists); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); - } - - if (projectfile) - { - fclose(projectfile); - } - - g_signal_connect(GTK_OBJECT(xsane.fax_receiver_entry), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL); - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_project_delete() -{ - char *page; - char file[256]; - GList *list = (GList *) GTK_LIST(xsane.fax_list)->children; - GtkObject *list_item; - - DBG(DBG_proc, "xsane_fax_project_delete\n"); - - while (list) - { - list_item = GTK_OBJECT(list->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - xsane_convert_text_to_filename(&page); - snprintf(file, sizeof(file), "%s/%s.pnm", preferences.fax_project, page); - free(page); - remove(file); - list = list->next; - } - snprintf(file, sizeof(file), "%s/xsane-fax-list", preferences.fax_project); - remove(file); - snprintf(file, sizeof(file), "%s", preferences.fax_project); - rmdir(file); - - xsane_fax_project_load(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_project_update_project_status() -{ - FILE *projectfile; - char filename[PATH_MAX]; - char buf[256]; - - snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); - projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */ - - snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */ - fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ - - fclose(projectfile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_fax_project_save() -{ - FILE *projectfile; - char *page; - char *type; - char filename[256]; - GList *list = (GList *) GTK_LIST(xsane.fax_list)->children; - GtkObject *list_item; - - DBG(DBG_proc, "xsane_fax_project_save\n"); - - umask((mode_t) preferences.directory_umask); /* define new file permissions */ - mkdir(preferences.fax_project, 0777); /* make sure directory exists */ - - snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project); - - if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security -*/ - { - char buf[256]; - - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename); - xsane_back_gtk_error(buf, TRUE); - return; /* error */ - } - projectfile = fopen(filename, "wb"); /* write binary (b for win32) */ - - if (!projectfile) - { - xsane_back_gtk_error(ERR_CREATE_FAX_PROJECT, TRUE); - - return; - } - - if (xsane.fax_status) - { - char buf[256]; - - snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */ - fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - } - else - { - fprintf(projectfile, " \n"); /* no mail status */ - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - } - - if (xsane.fax_receiver) - { - fprintf(projectfile, "%s\n", xsane.fax_receiver); /* first line is receiver phone number or address */ - } - else - { - fprintf(projectfile, "\n"); - } - - if (xsane.fax_filename) - { - fprintf(projectfile, "%s\n", strrchr(xsane.fax_filename, '/')+1); /* second line is next fax filename */ - } - else - { - fprintf(projectfile, "\n"); - } - - - while (list) - { - list_item = GTK_OBJECT(list->data); - page = (char *) gtk_object_get_data(list_item, "list_item_data"); - type = (char *) gtk_object_get_data(list_item, "list_item_type"); - fprintf(projectfile, "%s%s\n", page, type); - list = list->next; - } - fclose(projectfile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_project_create() -{ - DBG(DBG_proc, "xsane_fax_project_create\n"); - - if (strlen(preferences.fax_project)) - { - if (xsane.fax_status) - { - free(xsane.fax_status); - } - xsane.fax_status = strdup(TEXT_FAX_STATUS_CREATED); - xsane_fax_project_save(); - xsane_fax_project_load(); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_fax_receiver_changed_callback\n"); - - if (xsane.fax_status) - { - free(xsane.fax_status); - } - xsane.fax_status = strdup(TEXT_FAX_STATUS_CHANGED); - - if (xsane.fax_receiver) - { - free((void *) xsane.fax_receiver); - } - xsane.fax_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); - - xsane_fax_project_save(); - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_fax_project_changed_callback\n"); - - if (preferences.fax_project) - { - free((void *) preferences.fax_project); - } - preferences.fax_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); - - xsane_fax_project_load(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_fine_mode_callback(GtkWidget * widget) -{ - DBG(DBG_proc, "xsane_fax_fine_mode_callback\n"); - - preferences.fax_fine_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_list_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2) -{ - char *page1; - char *page2; - char *type1; - char *type2; - - DBG(DBG_proc, "xsane_list_entrys_swap\n"); - - page1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_data"); - type1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_type"); - page2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_data"); - type2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_type"); - - gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_1))->data), page2); - gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_2))->data), page1); - gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_data", page2); - gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_type", type2); - gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_data", page1); - gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_type", type1); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list) -{ - GList *select; - GList *item = GTK_LIST(list)->children; - GtkWidget *list_item_1; - GtkWidget *list_item_2; - int position; - int newpos; - - DBG(DBG_proc, "xsane_fax_entry_move_up\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item_1 = select->data; - - position = gtk_list_child_position(GTK_LIST(list), list_item_1); - position--; /* move up */ - newpos = position; - - if (position >= 0) - { - while (position>0) - { - item = item->next; - position--; - } - - list_item_2 = item->data; - if (list_item_2) - { - xsane_list_entrys_swap(list_item_1, list_item_2); - gtk_list_select_item(GTK_LIST(list), newpos); - xsane_fax_project_save(); - } - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list) -{ - GList *select; - GList *item = GTK_LIST(list)->children; - GtkWidget *list_item_1; - GtkWidget *list_item_2; - int position; - int newpos; - - DBG(DBG_proc, "xsane_fax_entry_move_down\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item_1 = select->data; - - position = gtk_list_child_position(GTK_LIST(list), list_item_1); - position++; /* move down */ - newpos = position; - - while ((position>0) && (item)) - { - item = item->next; - position--; - } - - if (item) - { - list_item_2 = item->data; - if (list_item_2) - { - xsane_list_entrys_swap(list_item_1, list_item_2); - gtk_list_select_item(GTK_LIST(list), newpos); - xsane_fax_project_save(); - } - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_fax_entry_rename; - -static void xsane_fax_entry_rename_button_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_fax_entry_rename\n"); - - xsane_fax_entry_rename = (int) data; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list) -{ - GtkWidget *list_item; - GList *select; - char *oldpage; - char *newpage; - char *type; - char oldfile[256]; - char newfile[256]; - - DBG(DBG_proc, "xsane_fax_entry_rename_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - GtkWidget *rename_dialog; - GtkWidget *text; - GtkWidget *button; - GtkWidget *vbox, *hbox; - char filename[PATH_MAX]; - - list_item = select->data; - oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data")); - type = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_type")); - - xsane_set_sensitivity(FALSE); - - rename_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); - xsane_set_window_icon(rename_dialog, 0); - - /* set the main vbox */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 0); - gtk_container_add(GTK_CONTAINER(rename_dialog), vbox); - gtk_widget_show(vbox); - - /* set the main hbox */ - hbox = gtk_hbox_new(FALSE, 0); - xsane_separator_new(vbox, 2); - gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); - gtk_widget_show(hbox); - - gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER); - gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); - snprintf(filename, sizeof(filename), "%s %s", xsane.prog_name, WINDOW_FAX_RENAME); - gtk_window_set_title(GTK_WINDOW(rename_dialog), filename); - g_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_fax_entry_rename_button_callback,(void *) -1); - gtk_widget_show(rename_dialog); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPAGENAME); - gtk_entry_set_max_length(GTK_ENTRY(text), 64); - gtk_entry_set_text(GTK_ENTRY(text), oldpage); - gtk_widget_set_size_request(text, 300, -1); - 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); -#else - 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); - 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); -#else - 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); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - - xsane_fax_entry_rename = 0; - - while (xsane_fax_entry_rename == 0) - { - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - - newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text))); - - if (xsane_fax_entry_rename == 1) - { - gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage)); - - xsane_convert_text_to_filename(&oldpage); - xsane_convert_text_to_filename(&newpage); - snprintf(oldfile, sizeof(oldfile), "%s/%s%s", preferences.fax_project, oldpage, type); - snprintf(newfile, sizeof(newfile), "%s/%s%s", preferences.fax_project, newpage, type); - - rename(oldfile, newfile); - - xsane_fax_project_save(); - } - - free(oldpage); - free(newpage); - free(type); - - gtk_widget_destroy(rename_dialog); - - xsane_set_sensitivity(TRUE); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list) -{ - GtkWidget *list_item; - char filename[PATH_MAX]; - char windowname[255]; - - DBG(DBG_proc, "xsane_fax_entry_insert_callback\n"); - - xsane_set_sensitivity(FALSE); - - snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_FAX_INSERT, preferences.fax_project); - filename[0] = 0; - - 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 */ - { - FILE *sourcefile; - - sourcefile = fopen(filename, "rb"); /* read binary (b for win32) */ - if (sourcefile) /* file exists */ - { - char buf[1024]; - - fgets(buf, sizeof(buf), sourcefile); - - if (!strncmp("%!PS", buf, 4)) - { - FILE *destfile; - char destpath[PATH_MAX]; - char *destfilename; - char *destfiletype; - char *extension; - - destfilename = strdup(strrchr(filename, '/')+1); - extension = strrchr(destfilename, '.'); - if (extension) - { - destfiletype = strdup(extension); - *extension = 0; - } - else - { - destfiletype = strdup(""); - } - - snprintf(destpath, sizeof(destpath), "%s/%s%s", preferences.fax_project, destfilename, destfiletype); - /* copy file to project directory */ - if (xsane_create_secure_file(destpath)) /* remove possibly existing symbolic links for security -*/ - { - fclose(sourcefile); - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, destpath); - xsane_back_gtk_error(buf, TRUE); - return; /* error */ - } - - destfile = fopen(destpath, "wb"); /* write binary (b for win32) */ - - if (destfile) /* file is created */ - { - fprintf(destfile, "%s\n", buf); - - while (!feof(sourcefile)) - { - fgets(buf, sizeof(buf), sourcefile); - fprintf(destfile, "%s", buf); - } - - fclose(destfile); - - - /* add filename to fax page list */ - list_item = gtk_list_item_new_with_label(destfilename); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(destfilename)); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(destfiletype)); - gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item); - gtk_widget_show(list_item); - - xsane_update_counter_in_filename(&xsane.fax_filename, TRUE, 1, preferences.filename_counter_len); - xsane_fax_project_save(); - free(destfilename); - } - else /* file could not be created */ - { - snprintf(buf, sizeof(buf), "%s %s", ERR_OPEN_FAILED, filename); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - } - } - else - { - snprintf(buf, sizeof(buf), ERR_FILE_NOT_POSTSCRIPT, filename); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - } - - fclose(sourcefile); - } - else - { - char buf[256]; - snprintf(buf, sizeof(buf), ERR_FILE_NOT_EXISTS, filename); - xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */); - } - } - - umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ - - xsane_set_sensitivity(TRUE); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list) -{ - GtkObject *list_item; - GList *select; - char *page; - char *type; - char filename[PATH_MAX]; - - DBG(DBG_proc, "xsane_fax_entry_delete_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item = GTK_OBJECT(select->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(filename, sizeof(filename), "%s/%s%s", preferences.fax_project, page, type); - free(page); - free(type); - remove(filename); - gtk_widget_destroy(GTK_WIDGET(list_item)); - xsane_fax_project_save(); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_show_callback(GtkWidget *widget, gpointer list) -{ - GtkObject *list_item; - GList *select; - char *page; - char *type; - char filename[256]; - - DBG(DBG_proc, "xsane_fax_entry_show_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item = GTK_OBJECT(select->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(filename, sizeof(filename), "%s/%s%s", preferences.fax_project, page, type); - - if (!strncmp(type, ".pnm", 4)) - { - /* when we do not allow any modification then we can work with the original file */ - /* so we do not have to copy the image into a dummy file here! */ - - xsane_viewer_new(filename, FALSE, filename, VIEWER_NO_MODIFICATION); - } - else if (!strncmp(type, ".ps", 3)) - { - char *arg[100]; - int argnr; - pid_t pid; - - argnr = xsane_parse_options(preferences.fax_viewer, arg); - arg[argnr++] = filename; - arg[argnr] = 0; - - pid = fork(); - - if (pid == 0) /* new process */ - { - FILE *ipc_file = NULL; - - if (xsane.ipc_pipefd[0]) - { - close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ - ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); - } - - DBG(DBG_info, "trying to change user id fo 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_FAX_VIEWER, preferences.fax_viewer); - - /* send error message via IPC pipe to parent process */ - if (ipc_file) - { - fprintf(ipc_file, "%s %s:\n%s", ERR_FAILED_EXEC_FAX_VIEWER, preferences.fax_viewer, 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 /* parent process */ - { - xsane_add_process_to_list(pid); /* add pid to child process list */ - } - } - - free(page); - free(type); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static int xsane_fax_convert_pnm_to_ps(char *source_filename, char *fax_filename) -{ - FILE *outfile; - FILE *infile; - Image_info image_info; - char buf[256]; - int cancel_save; - - /* open progressbar */ - snprintf(buf, sizeof(buf), "%s - %s", PROGRESS_CONVERTING_DATA, source_filename); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), buf); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - - while (gtk_events_pending()) - { - DBG(DBG_info, "calling gtk_main_iteration\n"); - gtk_main_iteration(); - } - - infile = fopen(source_filename, "rb"); /* read binary (b for win32) */ - if (infile != 0) - { - xsane_read_pnm_header(infile, &image_info); - - umask((mode_t) preferences.image_umask); /* define image file permissions */ - outfile = fopen(fax_filename, "wb"); /* b = binary mode for win32 */ - umask(XSANE_DEFAULT_UMASK); /* define new file permissions */ - if (outfile != 0) - { - 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 */ - - DBG(DBG_info, "imagewidth = %f 1/72 inch\n", imagewidth); - DBG(DBG_info, "imageheight = %f 1/72 inch\n", imageheight); - - xsane_save_ps(outfile, infile, - &image_info, - imagewidth, imageheight, - preferences.fax_leftoffset * 72.0/MM_PER_INCH, /* paper_left_margin */ - preferences.fax_bottomoffset * 72.0/MM_PER_INCH, /* paper_bottom_margin */ - preferences.fax_width * 72.0/MM_PER_INCH, /* paper_width */ - preferences.fax_height * 72.0/MM_PER_INCH, /* paper_height */ - 0 /* portrait top left */, - xsane.fax_progress_bar, - &cancel_save); - fclose(outfile); - } - else - { - char buf[256]; - - DBG(DBG_info, "open of faxfile `%s'failed : %s\n", fax_filename, strerror(errno)); - - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, fax_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - } - - fclose(infile); - } - else - { - char buf[256]; - - DBG(DBG_info, "open of faxfile `%s'failed : %s\n", source_filename, strerror(errno)); - - snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, source_filename, strerror(errno)); - xsane_back_gtk_error(buf, TRUE); - } - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - - while (gtk_events_pending()) - { - DBG(DBG_info, "calling gtk_main_iteration\n"); - gtk_main_iteration(); - } - - return 0; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_fax_send() -{ - char *page; - char *type; - char *fax_type=".ps"; - GList *list = (GList *) GTK_LIST(xsane.fax_list)->children; - GtkObject *list_item; - pid_t pid; - char *arg[1000]; - char buf[256]; - char source_filename[PATH_MAX]; - char fax_filename[PATH_MAX]; - int argnr = 0; - int i; - - DBG(DBG_proc, "xsane_fax_send\n"); - - if (list) - { - if (!xsane_option_defined(xsane.fax_receiver)) - { - snprintf(buf, sizeof(buf), "%s\n", ERR_SENDFAX_RECEIVER_MISSING); - xsane_back_gtk_error(buf, TRUE); - return; - } - - xsane_set_sensitivity(FALSE); - /* gtk_widget_set_sensitive(xsane.fax_dialog, FALSE); */ - - argnr = xsane_parse_options(preferences.fax_command, arg); - - if (preferences.fax_fine_mode) /* fine mode */ - { - if (xsane_option_defined(preferences.fax_fine_option)) - { - arg[argnr++] = strdup(preferences.fax_fine_option); - } - } - else /* normal mode */ - { - if (xsane_option_defined(preferences.fax_normal_option)) - { - arg[argnr++] = strdup(preferences.fax_normal_option); - } - } - - if (xsane_option_defined(preferences.fax_receiver_option)) - { - arg[argnr++] = strdup(preferences.fax_receiver_option); - } - arg[argnr++] = strdup(xsane.fax_receiver); - - if (xsane_option_defined(preferences.fax_postscript_option)) - { - arg[argnr++] = strdup(preferences.fax_postscript_option); - } - - while ((list) && (argnr<999)) /* add pages to options */ - { - list_item = GTK_OBJECT(list->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.fax_project, page, type); - snprintf(fax_filename, sizeof(fax_filename), "%s/%s-fax%s", preferences.fax_project, page, fax_type); - if (xsane_create_secure_file(fax_filename)) /* remove possibly existing symbolic links for security */ - { - char buf[256]; - - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, fax_filename); - xsane_back_gtk_error(buf, TRUE); - return; /* error */ - } - - if (!strncmp(type, ".pnm", 4)) - { - DBG(DBG_info, "converting %s to %s\n", source_filename, fax_filename); - xsane_fax_convert_pnm_to_ps(source_filename, fax_filename); - } - else if (!strncmp(type, ".ps", 3)) - { - int cancel_save = 0; - xsane_copy_file_by_name(fax_filename, source_filename, xsane.fax_progress_bar, &cancel_save); - } - arg[argnr++] = strdup(fax_filename); - list = list->next; - free(page); - free(type); - } - - arg[argnr] = 0; - - pid = fork(); - - if (pid == 0) /* new process */ - { - FILE *ipc_file = NULL; - - if (xsane.ipc_pipefd[0]) - { - close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ - ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); - } - - 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_FAX_CMD, preferences.fax_command); - - /* send error message via IPC pipe to parent process */ - if (ipc_file) - { - fprintf(ipc_file, "%s %s:\n%s", ERR_FAILED_EXEC_FAX_CMD, preferences.fax_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 /* parent process */ - { - xsane_add_process_to_list(pid); /* add pid to child process list */ - } - - for (i=0; i<argnr; i++) - { - free(arg[i]); - } - - if (xsane.fax_status) - { - free(xsane.fax_status); - } - xsane.fax_status = strdup(TEXT_FAX_STATUS_QUEUEING_FAX); - xsane_fax_project_update_project_status(); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - - while (pid) - { - int status = 0; - pid_t pid_status = waitpid(pid, &status, WNOHANG); - - if ( (pid_status < 0 ) || (pid == pid_status) ) - { - pid = 0; /* ok, child process has terminated */ - } - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - - /* delete created fax files */ - list = (GList *) GTK_LIST(xsane.fax_list)->children; - while (list) - { - list_item = GTK_OBJECT(list->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - xsane_convert_text_to_filename(&page); - snprintf(fax_filename, sizeof(fax_filename), "%s/%s-fax%s", preferences.fax_project, page, fax_type); - free(page); - - DBG(DBG_info, "removing %s\n", fax_filename); - remove(fax_filename); - - list = list->next; - } - - xsane.fax_status = strdup(TEXT_FAX_STATUS_FAX_QUEUED); - xsane_fax_project_update_project_status(); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.fax_progress_bar), _(xsane.fax_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.fax_progress_bar), 0.0); - - xsane_set_sensitivity(TRUE); - - /* gtk_widget_set_sensitive(xsane.fax_dialog, TRUE); */ - } - - DBG(DBG_info, "xsane_fax_send: done\n"); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef XSANE_ACTIVATE_MAIL - -static gint xsane_mail_dialog_delete() -{ - return TRUE; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_filetype_callback(GtkWidget *filetype_option_menu, char *filetype) -{ - DBG(DBG_proc, "xsane_mail_filetype_callback(%s)\n", filetype); - - if (preferences.mail_filetype) - { - free(preferences.mail_filetype); - } - preferences.mail_filetype = strdup(filetype); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_dialog() -{ - GtkWidget *mail_dialog, *mail_scan_vbox, *mail_project_vbox; - GtkWidget *mail_project_exists_hbox, *button; - GtkWidget *hbox; - GtkWidget *scrolled_window, *list; - GtkWidget *pixmapwidget, *text; - GtkWidget *attachment_frame, *text_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; - - DBG(DBG_proc, "xsane_mail_dialog\n"); - - if (xsane.mail_dialog) - { - return; /* window already is open */ - } - - /* GTK_WINDOW_TOPLEVEL looks better but does not place it nice*/ - mail_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_MAIL_PROJECT); - gtk_window_set_title(GTK_WINDOW(mail_dialog), buf); - g_signal_connect(GTK_OBJECT(mail_dialog), "delete_event", (GtkSignalFunc) xsane_mail_dialog_delete, NULL); - xsane_set_window_icon(mail_dialog, 0); - gtk_window_add_accel_group(GTK_WINDOW(mail_dialog), xsane.accelerator_group); - - /* set the main vbox */ - mail_scan_vbox = gtk_vbox_new(FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(mail_scan_vbox), 0); - gtk_container_add(GTK_CONTAINER(mail_dialog), mail_scan_vbox); - gtk_widget_show(mail_scan_vbox); - - - /* mail project */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(mail_scan_vbox), hbox, FALSE, FALSE, 2); - - pixmap = gdk_pixmap_create_from_xpm_d(xsane.shell->window, &mask, xsane.bg_trans, (gchar **) mail_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILPROJECT); - gtk_entry_set_max_length(GTK_ENTRY(text), 128); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_project); - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); - g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_project_changed_callback, NULL); - - xsane.mail_project_entry = text; - xsane.mail_project_entry_box = hbox; - - gtk_widget_show(pixmapwidget); - gtk_widget_show(text); - gtk_widget_show(hbox); - - mail_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(mail_scan_vbox), mail_project_vbox, TRUE, TRUE, 0); - gtk_widget_show(mail_project_vbox); - - - /* mail receiver */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2); - - gtk_widget_realize(mail_dialog); - - pixmap = gdk_pixmap_create_from_xpm_d(mail_dialog->window, &mask, xsane.bg_trans, (gchar **) mailreceiver_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); - - text = gtk_entry_new(); - gtk_entry_set_max_length(GTK_ENTRY(text), 128); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILRECEIVER); - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); - g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_receiver_changed_callback, NULL); - - xsane.mail_receiver_entry = text; - - gtk_widget_show(pixmapwidget); - gtk_widget_show(text); - gtk_widget_show(hbox); - - - /* subject */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2); - - gtk_widget_realize(mail_dialog); - - pixmap = gdk_pixmap_create_from_xpm_d(mail_dialog->window, &mask, xsane.bg_trans, (gchar **) subject_xpm); - pixmapwidget = gtk_image_new_from_pixmap(pixmap, mask); - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gdk_drawable_unref(pixmap); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILSUBJECT); - gtk_entry_set_max_length(GTK_ENTRY(text), 128); - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4); - g_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_subject_changed_callback, NULL); - - xsane.mail_subject_entry = text; - - gtk_widget_show(pixmapwidget); - gtk_widget_show(text); - gtk_widget_show(hbox); - - - /* email text frame */ - text_frame = gtk_frame_new(TEXT_MAIL_TEXT); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), text_frame, TRUE, TRUE, 2); - gtk_widget_show(text_frame); - - /* email text box */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 4); - gtk_container_add(GTK_CONTAINER(text_frame), hbox); - gtk_widget_show(hbox); - -#ifdef HAVE_GTK_TEXT_VIEW_H - { - GtkWidget *scrolled_window, *text_view, *text_buffer; - - /* create a scrolled window to get a vertical scrollbar */ - scrolled_window = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - gtk_container_add(GTK_CONTAINER(hbox), scrolled_window); - gtk_widget_show(scrolled_window); - - /* create the gtk_text_view widget */ - text_view = gtk_text_view_new(); - gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), TRUE); - gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view), GTK_WRAP_WORD); - gtk_container_add(GTK_CONTAINER(scrolled_window), text_view); - gtk_widget_show(text_view); - - /* get the text_buffer widget and insert the text from file */ - text_buffer = (GtkWidget *) gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); - - xsane.mail_text_widget = text_buffer; - } -#else - { - GtkWidget *vscrollbar; - - /* Create the GtkText widget */ - text = gtk_text_new(NULL, NULL); - gtk_text_set_editable(GTK_TEXT(text), TRUE); /* text is editable */ - gtk_text_set_word_wrap(GTK_TEXT(text), TRUE); /* wrap complete words */ - gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0); - gtk_widget_show(text); - xsane.mail_text_widget = text; - - /* Add a vertical scrollbar to the GtkText widget */ - vscrollbar = gtk_vscrollbar_new(GTK_TEXT(text)->vadj); - gtk_box_pack_start(GTK_BOX(hbox), vscrollbar, FALSE, FALSE, 0); - gtk_widget_show(vscrollbar); - } -#endif - - - /* html mail */ - button = gtk_check_button_new_with_label(RADIO_BUTTON_HTML_MAIL); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_HTML_MAIL); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), xsane.mail_html_mode); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), button, FALSE, FALSE, 2); - gtk_widget_show(button); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_html_mode_callback, NULL); - xsane.mail_html_mode_widget = button; - - xsane_separator_new(mail_scan_vbox, 2); - - /* FILETYPE MENU */ - /* button box, active when project exists */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2); - gtk_widget_show(hbox); - - filetype_menu = gtk_menu_new(); - - filetype_nr = -1; - select_item = 0; - -#ifdef HAVE_LIBJPEG - filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_JPEG); - gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); - g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_mail_filetype_callback, (void *) XSANE_FILETYPE_JPEG); - gtk_widget_show(filetype_item); - filetype_nr++; - if ( (preferences.mail_filetype) && (!strcasecmp(preferences.mail_filetype, XSANE_FILETYPE_JPEG)) ) - { - select_item = filetype_nr; - } -#endif - - - filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PDF); - gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); - g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_mail_filetype_callback, (void *) XSANE_FILETYPE_PDF); - gtk_widget_show(filetype_item); - filetype_nr++; - if ( (preferences.mail_filetype) && (!strcasecmp(preferences.mail_filetype, XSANE_FILETYPE_PDF)) ) - { - select_item = filetype_nr; - } - - -#ifdef HAVE_LIBPNG -#ifdef HAVE_LIBZ - filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNG); - gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); - g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_mail_filetype_callback, (void *) XSANE_FILETYPE_PNG); - gtk_widget_show(filetype_item); - filetype_nr++; - if ( (preferences.mail_filetype) && (!strcasecmp(preferences.mail_filetype, XSANE_FILETYPE_PNG)) ) - { - select_item = filetype_nr; - } -#endif -#endif - - filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PS); - gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); - g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_mail_filetype_callback, (void *) XSANE_FILETYPE_PS); - gtk_widget_show(filetype_item); - filetype_nr++; - if ( (preferences.mail_filetype) && (!strcasecmp(preferences.mail_filetype, XSANE_FILETYPE_PS)) ) - { - select_item = filetype_nr; - } - - -#ifdef HAVE_LIBTIFF - filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_TIFF); - gtk_container_add(GTK_CONTAINER(filetype_menu), filetype_item); - g_signal_connect(GTK_OBJECT(filetype_item), "activate", (GtkSignalFunc) xsane_mail_filetype_callback, (void *) XSANE_FILETYPE_TIFF); - gtk_widget_show(filetype_item); - filetype_nr++; - if ( (preferences.mail_filetype) && (!strcasecmp(preferences.mail_filetype, XSANE_FILETYPE_TIFF)) ) - { - select_item = filetype_nr; - } -#endif - - label = gtk_label_new(TEXT_MAIL_FILETYPE); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - gtk_widget_show(label); - - filetype_option_menu = gtk_option_menu_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, filetype_option_menu, DESC_MAIL_FILETYPE); - gtk_option_menu_set_menu(GTK_OPTION_MENU(filetype_option_menu), filetype_menu); - if (select_item >= 0) - { - gtk_option_menu_set_history(GTK_OPTION_MENU(filetype_option_menu), select_item); - } - gtk_box_pack_end(GTK_BOX(hbox), filetype_option_menu, FALSE, FALSE, 2); - gtk_widget_show(filetype_menu); - gtk_widget_show(filetype_option_menu); - - - /* attachment frame */ - attachment_frame = gtk_frame_new(TEXT_ATTACHMENTS); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), attachment_frame, FALSE, FALSE, 2); - gtk_widget_show(attachment_frame); - - /* attachment list */ - scrolled_window = gtk_scrolled_window_new(0, 0); - gtk_widget_set_size_request(scrolled_window, 200, 100); - gtk_container_add(GTK_CONTAINER(attachment_frame), scrolled_window); - gtk_widget_show(scrolled_window); - - list = gtk_list_new(); -/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */ - - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list); - gtk_widget_show(list); - xsane.mail_list = list; - - - /* button box, active when project exists */ - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2); - - button = gtk_button_new_with_label(BUTTON_IMAGE_SHOW); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_show_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - -#if 0 - /* before we enable the edit function we have to make sure that the rename function - does also rename the image name of the opened viewer */ - button = gtk_button_new_with_label(BUTTON_IMAGE_EDIT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_edit_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); -#endif - - button = gtk_button_new_with_label(BUTTON_IMAGE_RENAME); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_rename_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_IMAGE_DELETE); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_delete_callback, list); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - xsane_button_new_with_pixmap(mail_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_mail_entry_move_up_callback, list); - xsane_button_new_with_pixmap(mail_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_mail_entry_move_down_callback, list); - - gtk_widget_show(hbox); - - xsane.mail_project_box = mail_project_vbox; - - xsane_separator_new(mail_scan_vbox, 2); - - - /* set the main hbox */ - hbox = gtk_hbox_new(FALSE, 0); - xsane_separator_new(mail_project_vbox, 2); - gtk_box_pack_end(GTK_BOX(mail_scan_vbox), hbox, FALSE, FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); - gtk_widget_show(hbox); - - - mail_project_exists_hbox = gtk_hbox_new(FALSE, 2); - gtk_box_pack_start(GTK_BOX(hbox), mail_project_exists_hbox, TRUE, TRUE, 0); - - button = gtk_button_new_with_label(BUTTON_SEND_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_send, NULL); - gtk_box_pack_start(GTK_BOX(mail_project_exists_hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_project_delete, NULL); - gtk_box_pack_start(GTK_BOX(mail_project_exists_hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - gtk_widget_show(mail_project_exists_hbox); - xsane.mail_project_exists = mail_project_exists_hbox; - - button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT); - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_project_create, NULL); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - xsane.mail_project_not_exists = button; - - /* progress bar */ - xsane.mail_progress_bar = (GtkProgressBar *) gtk_progress_bar_new(); - gtk_box_pack_start(GTK_BOX(mail_scan_vbox), (GtkWidget *) xsane.mail_progress_bar, FALSE, FALSE, 0); - gtk_progress_set_show_text(GTK_PROGRESS(xsane.mail_progress_bar), TRUE); - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), ""); - gtk_widget_show(GTK_WIDGET(xsane.mail_progress_bar)); - - - xsane.mail_dialog = mail_dialog; - - xsane_mail_project_load(); - - gtk_widget_show(mail_dialog); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_dialog_close() -{ - DBG(DBG_proc, "xsane_mail_dialog_close\n"); - - if (xsane.mail_dialog == NULL) - { - return; - } - - gtk_widget_destroy(xsane.mail_dialog); - - xsane.mail_dialog = NULL; - xsane.mail_list = NULL; - xsane.mail_progress_bar = NULL; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_set_sensitive(int sensitive) -{ - gtk_widget_set_sensitive(xsane.mail_project_box, sensitive); - gtk_widget_set_sensitive(xsane.mail_project_exists, sensitive); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_display_status() -{ - FILE *lockfile; - char buf[256]; - char filename[PATH_MAX]; - int val; - int i, c; - - DBG(DBG_proc, "xsane_mail_project_display_status\n"); - - snprintf(filename, sizeof(filename), "%s/lockfile", preferences.mail_project); - lockfile = fopen(filename, "rb"); /* read binary (b for win32) */ - - if (lockfile) - { - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* first line is mail status */ - { - c = fgetc(lockfile); - buf[i++] = c; - } - buf[i-1] = 0; - - fscanf(lockfile, "%d\n", &val); - - fclose(lockfile); - - if ( (!strcmp(buf, TEXT_MAIL_STATUS_SENDING)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SENT)) || - (!strcmp(buf, TEXT_MAIL_STATUS_ERR_READ_PROJECT)) || - (!strcmp(buf, TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED)) || - (!strcmp(buf, TEXT_MAIL_STATUS_POP3_LOGIN_FAILED)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SMTP_ERR_FROM)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SMTP_ERR_RCPT)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SMTP_ERR_DATA)) || - (!strcmp(buf, TEXT_MAIL_STATUS_SENT)) ) - { - if (strcmp(xsane.mail_status, buf)) - { - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(buf); - - if (xsane.mail_progress_bar) - { - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), _(xsane.mail_status)); - } - } - - xsane.mail_progress_val = val / 100.0; - if (xsane.mail_progress_bar) - { - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), xsane.mail_progress_val); - } - - DBG(DBG_info, "reading from lockfile: mail_status %s, mail_progress_val %1.3f\n" , xsane.mail_status, xsane.mail_progress_val); - - if (strcmp(xsane.mail_status, TEXT_MAIL_STATUS_SENDING)) /* not sending */ - { - DBG(DBG_info, "removing %s\n", filename); - remove(filename); /* remove lockfile */ - - xsane.mail_progress_val = 0.0; - - xsane_mail_project_update_project_status(); - - if (xsane.mail_dialog) - { - xsane_mail_project_load(); - - xsane_mail_project_set_sensitive(TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); - } - } - } - } - else - { - DBG(DBG_info, "no lockfile present\n"); - if (xsane.mail_progress_bar) - { - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), _(xsane.mail_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), xsane.mail_progress_val); - } - - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static gint xsane_mail_send_timer_callback(gpointer data) -{ - xsane_mail_project_display_status(); - - if (strcmp(xsane.mail_status, TEXT_MAIL_STATUS_SENDING)) /* not sending */ - { - if (xsane_mail_send_timer) - { - DBG(DBG_info, "disabling mail send timer\n"); - xsane_mail_send_timer = 0; - } - } - - return xsane_mail_send_timer; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_load() -{ - FILE *projectfile; - char page[256]; - char *type; - char *extension; - char buf[256]; - char filename[PATH_MAX]; - GtkWidget *list_item; - int i; - int c; - - DBG(DBG_proc, "xsane_mail_project_load\n"); - - if (xsane.mail_status) - { - free(xsane.mail_status); - xsane.mail_status = NULL; - } - - if (xsane.mail_receiver) - { - free(xsane.mail_receiver); - xsane.mail_receiver = NULL; - } - - if (xsane.mail_filename) - { - free(xsane.mail_filename); - xsane.mail_filename = NULL; - } - - if (xsane.mail_subject) - { - free(xsane.mail_subject); - xsane.mail_subject = NULL; - } - - g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.mail_receiver_entry), GTK_SIGNAL_FUNC(xsane_mail_receiver_changed_callback), 0); - g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.mail_subject_entry), GTK_SIGNAL_FUNC(xsane_mail_subject_changed_callback), 0); - g_signal_handlers_disconnect_by_func(GTK_OBJECT(xsane.mail_html_mode_widget), GTK_SIGNAL_FUNC(xsane_mail_html_mode_callback), 0); - -#ifdef HAVE_GTK_TEXT_VIEW_H - gtk_text_buffer_set_text(GTK_TEXT_BUFFER(xsane.mail_text_widget), "", 0); -#else - gtk_text_set_point(GTK_TEXT(xsane.mail_text_widget), 0); - gtk_text_forward_delete(GTK_TEXT(xsane.mail_text_widget), gtk_text_get_length(GTK_TEXT(xsane.mail_text_widget))); -#endif - gtk_list_remove_items(GTK_LIST(xsane.mail_list), GTK_LIST(xsane.mail_list)->children); - - snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.mail_project); - projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ - - if ((!projectfile) || (feof(projectfile))) - { - snprintf(filename, sizeof(filename), "%s/image-1.pnm", preferences.mail_project); - xsane.mail_filename=strdup(filename); - xsane_update_counter_in_filename(&xsane.mail_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */ - - xsane.mail_status=strdup(TEXT_MAIL_STATUS_NOT_CREATED); - xsane.mail_progress_val = 0.0; - - xsane.mail_receiver=strdup(""); - gtk_entry_set_text(GTK_ENTRY(xsane.mail_receiver_entry), (char *) xsane.mail_receiver); - - xsane.mail_subject=strdup(""); - gtk_entry_set_text(GTK_ENTRY(xsane.mail_subject_entry), (char *) xsane.mail_subject); - - gtk_widget_hide(xsane.mail_project_exists); - gtk_widget_show(xsane.mail_project_not_exists); - - gtk_widget_set_sensitive(xsane.mail_project_box, FALSE); - gtk_widget_set_sensitive(xsane.mail_project_exists, FALSE); - /* do not change sensitivity of mail_project_entry_box here !!! */ - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); - - xsane.mail_project_save = 0; - } - else - { - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* first line is mail status */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - if (strchr(page, '@')) - { - *strchr(page, '@') = 0; - } - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(page); - xsane.mail_progress_val = 0.0; - - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* second line is email address */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - xsane.mail_receiver=strdup(page); - gtk_entry_set_text(GTK_ENTRY(xsane.mail_receiver_entry), (char *) xsane.mail_receiver); - - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* third line is next mail filename */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - snprintf(filename, sizeof(filename), "%s/%s", preferences.mail_project, page); - xsane.mail_filename=strdup(filename); - - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* fourth line is subject */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - xsane.mail_subject=strdup(page); - gtk_entry_set_text(GTK_ENTRY(xsane.mail_subject_entry), (char *) xsane.mail_subject); - - - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) /* fifth line is html/ascii */ - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1] = 0; - - if (!strcasecmp("html", page)) - { - xsane.mail_html_mode = 1; - } - else - { - xsane.mail_html_mode = 0; - } - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane.mail_html_mode_widget), xsane.mail_html_mode); - - - while (!feof(projectfile)) - { - i=0; - c=0; - - while ((i<255) && (c != 10) && (c != EOF)) - { - c = fgetc(projectfile); - page[i++] = c; - } - page[i-1]=0; - - if (!strcmp("mailtext:", page)) - { - break; /* mailtext follows */ - } - - extension = strrchr(page, '.'); - if (extension) - { - type = strdup(extension); - *extension = 0; - } - else - { - type = strdup(""); - } - - if (c > 1) - { - list_item = gtk_list_item_new_with_label(page); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page)); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_type", strdup(type)); - gtk_container_add(GTK_CONTAINER(xsane.mail_list), list_item); - gtk_widget_show(list_item); - } - } - - while (!feof(projectfile)) - { - i = fread(buf, 1, sizeof(buf), projectfile); -#ifdef HAVE_GTK_TEXT_VIEW_H - gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(xsane.mail_text_widget), buf, i); -#else - gtk_text_insert(GTK_TEXT(xsane.mail_text_widget), NULL, NULL, NULL, buf, i); -#endif - } - - if (!strcmp(xsane.mail_status, TEXT_MAIL_STATUS_SENDING)) /* mail project is locked (sending) */ - { - xsane_mail_project_set_sensitive(FALSE); - gtk_widget_set_sensitive(xsane.mail_project_entry_box, TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); - - if (xsane_mail_send_timer == 0) - { - xsane_mail_send_timer = gtk_timeout_add(100, (GtkFunction) xsane_mail_send_timer_callback, NULL); - DBG(DBG_info, "enabling mail send timer (%d)\n", xsane_mail_send_timer); - } - } - else - { - xsane_mail_project_set_sensitive(TRUE); - gtk_widget_set_sensitive(xsane.mail_project_entry_box, TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE); - } - - gtk_widget_show(xsane.mail_project_exists); - gtk_widget_hide(xsane.mail_project_not_exists); - - xsane.mail_project_save = 1; - } - - if (projectfile) - { - fclose(projectfile); - } - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), _(xsane.mail_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), xsane.mail_progress_val); - - xsane_mail_project_display_status(); - - g_signal_connect(GTK_OBJECT(xsane.mail_html_mode_widget), "clicked", (GtkSignalFunc) xsane_mail_html_mode_callback, NULL); - g_signal_connect(GTK_OBJECT(xsane.mail_receiver_entry), "changed", (GtkSignalFunc) xsane_mail_receiver_changed_callback, NULL); - g_signal_connect(GTK_OBJECT(xsane.mail_subject_entry), "changed", (GtkSignalFunc) xsane_mail_subject_changed_callback, NULL); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_delete() -{ - char *page; - char *type; - char file[256]; - GList *list = (GList *) GTK_LIST(xsane.mail_list)->children; - GtkObject *list_item; - - DBG(DBG_proc, "xsane_mail_project_delete\n"); - - while (list) - { - list_item = GTK_OBJECT(list->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(file, sizeof(file), "%s/%s%s", preferences.mail_project, page, type); - free(page); - free(type); - remove(file); - list = list->next; - } - snprintf(file, sizeof(file), "%s/xsane-mail-list", preferences.mail_project); - remove(file); - snprintf(file, sizeof(file), "%s", preferences.mail_project); - rmdir(file); - - xsane_mail_project_load(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_update_project_status() -{ - FILE *projectfile; - char filename[PATH_MAX]; - char buf[256]; - - snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.mail_project); - projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */ - - snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.mail_status); /* fill 32 characters status line */ - fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ - - fclose(projectfile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -void xsane_mail_project_save() -{ - FILE *projectfile; - GList *list = (GList *) GTK_LIST(xsane.mail_list)->children; - GtkObject *list_item; - char *page; - char *type; - gchar *mail_text; - char filename[256]; - - DBG(DBG_proc, "xsane_mail_project_save\n"); - - umask((mode_t) preferences.directory_umask); /* define new file permissions */ - mkdir(preferences.mail_project, 0777); /* make sure directory exists */ - - snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.mail_project); - - if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security */ - { - char buf[256]; - - snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename); - xsane_back_gtk_error(buf, TRUE); - return; /* error */ - } - - projectfile = fopen(filename, "wb"); /* write binary (b for win32) */ - - if (xsane.mail_status) - { - char buf[256]; - - snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.mail_status); /* fill 32 characters status line */ - fprintf(projectfile, "%s\n", buf); /* first line is status of mail */ - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), _(xsane.mail_status)); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), 0.0); - } - else - { - fprintf(projectfile, " \n"); /* no mail status */ - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), 0.0); - } - - if (xsane.mail_receiver) - { - fprintf(projectfile, "%s\n", xsane.mail_receiver); /* second line is receiver phone number or address */ - } - else - { - fprintf(projectfile, "\n"); - } - - if (xsane.mail_filename) - { - fprintf(projectfile, "%s\n", strrchr(xsane.mail_filename, '/')+1); /* third line is next mail filename */ - } - else - { - fprintf(projectfile, "\n"); - } - - if (xsane.mail_subject) - { - fprintf(projectfile, "%s\n", xsane.mail_subject); /* fourth line is subject */ - } - else - { - fprintf(projectfile, "\n"); - } - - if (xsane.mail_html_mode) /* fith line is mode html/ascii */ - { - fprintf(projectfile, "html\n"); - } - else - { - fprintf(projectfile, "ascii\n"); - } - - - while (list) - { - list_item = GTK_OBJECT(list->data); - page = (char *) gtk_object_get_data(list_item, "list_item_data"); - type = (char *) gtk_object_get_data(list_item, "list_item_type"); - fprintf(projectfile, "%s%s\n", page, type); - list = list->next; - } - - /* save mail text */ - fprintf(projectfile, "mailtext:\n"); -#ifdef HAVE_GTK_TEXT_VIEW_H - { - GtkTextIter start, end; - - gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(xsane.mail_text_widget), &start); - gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(xsane.mail_text_widget), &end); - mail_text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(xsane.mail_text_widget), &start, &end, FALSE); - } -#else - mail_text = gtk_editable_get_chars(GTK_EDITABLE(xsane.mail_text_widget), 0, -1); -#endif - fprintf(projectfile, "%s", mail_text); - - fclose(projectfile); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_create() -{ - DBG(DBG_proc, "xsane_mail_project_create\n"); - - if (strlen(preferences.mail_project)) - { - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CREATED); - xsane_mail_project_save(); - xsane_mail_project_load(); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_receiver_changed_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_mail_receiver_changed_callback\n"); - - if (xsane.mail_receiver) - { - free((void *) xsane.mail_receiver); - } - xsane.mail_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane.mail_project_save = 1; - xsane_mail_project_display_status(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_subject_changed_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_mail_subject_changed_callback\n"); - - if (xsane.mail_subject) - { - free((void *) xsane.mail_subject); - } - xsane.mail_subject = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane.mail_project_save = 1; - xsane_mail_project_display_status(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_project_changed_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_mail_project_changed_callback\n"); - - if (xsane.mail_project_save) - { - xsane.mail_project_save = 0; - xsane_mail_project_save(); - } - - if (preferences.mail_project) - { - free((void *) preferences.mail_project); - } - preferences.mail_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget))); - - xsane_mail_project_load(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_html_mode_callback(GtkWidget * widget) -{ - DBG(DBG_proc, "xsane_mail_html_mode_callback\n"); - - xsane.mail_html_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0); - - /* we can save it because this routine is only called when the project already exists */ - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane.mail_project_save = 1; - xsane_mail_project_display_status(); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_entry_move_up_callback(GtkWidget *widget, gpointer list) -{ - GList *select; - GList *item = GTK_LIST(list)->children; - GtkWidget *list_item_1; - GtkWidget *list_item_2; - int position; - int newpos; - - DBG(DBG_proc, "xsane_mail_entry_move_up\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item_1 = select->data; - - position = gtk_list_child_position(GTK_LIST(list), list_item_1); - position--; /* move up */ - newpos = position; - - if (position >= 0) - { - while (position>0) - { - item = item->next; - position--; - } - - list_item_2 = item->data; - if (list_item_2) - { - xsane_list_entrys_swap(list_item_1, list_item_2); - gtk_list_select_item(GTK_LIST(list), newpos); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane_mail_project_save(); - } - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_entry_move_down_callback(GtkWidget *widget, gpointer list) -{ - GList *select; - GList *item = GTK_LIST(list)->children; - GtkWidget *list_item_1; - GtkWidget *list_item_2; - int position; - int newpos; - - DBG(DBG_proc, "xsane_mail_entry_move_down\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item_1 = select->data; - - position = gtk_list_child_position(GTK_LIST(list), list_item_1); - position++; /* move down */ - newpos = position; - - while ((position>0) && (item)) - { - item = item->next; - position--; - } - - if (item) - { - list_item_2 = item->data; - if (list_item_2) - { - xsane_list_entrys_swap(list_item_1, list_item_2); - gtk_list_select_item(GTK_LIST(list), newpos); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane_mail_project_save(); - } - } - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -int xsane_mail_entry_rename; - -static void xsane_mail_entry_rename_button_callback(GtkWidget *widget, gpointer data) -{ - DBG(DBG_proc, "xsane_mail_entry_rename\n"); - - xsane_mail_entry_rename = (int) data; -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_entry_rename_callback(GtkWidget *widget, gpointer list) -{ - GtkWidget *list_item; - GList *select; - char *oldpage; - char *newpage; - char *type; - char oldfile[256]; - char newfile[256]; - - DBG(DBG_proc, "xsane_mail_entry_rename_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - GtkWidget *rename_dialog; - GtkWidget *text; - GtkWidget *button; - GtkWidget *vbox, *hbox; - char filename[PATH_MAX]; - - list_item = select->data; - oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data")); - type = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_type")); - - xsane_set_sensitivity(FALSE); - - rename_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); - xsane_set_window_icon(rename_dialog, 0); - - /* set the main vbox */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 0); - gtk_container_add(GTK_CONTAINER(rename_dialog), vbox); - gtk_widget_show(vbox); - - /* set the main hbox */ - hbox = gtk_hbox_new(FALSE, 0); - xsane_separator_new(vbox, 2); - gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); - gtk_widget_show(hbox); - - gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER); - gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); - snprintf(filename, sizeof(filename), "%s %s", xsane.prog_name, WINDOW_MAIL_RENAME); - gtk_window_set_title(GTK_WINDOW(rename_dialog), filename); - g_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_mail_entry_rename_button_callback, (void *) -1); - gtk_widget_show(rename_dialog); - - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILIMAGENAME); - gtk_entry_set_max_length(GTK_ENTRY(text), 64); - gtk_entry_set_text(GTK_ENTRY(text), oldpage); - gtk_widget_set_size_request(text, 300, -1); - 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); -#else - button = gtk_button_new_with_label(BUTTON_OK); -#endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_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); -#else - button = gtk_button_new_with_label(BUTTON_CANCEL); -#endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_rename_button_callback,(void *) -1); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - - xsane_mail_entry_rename = 0; - - while (xsane_mail_entry_rename == 0) - { - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - } - - newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text))); - - if (xsane_mail_entry_rename == 1) - { - gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage); - gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage)); - - xsane_convert_text_to_filename(&oldpage); - xsane_convert_text_to_filename(&newpage); - snprintf(oldfile, sizeof(oldfile), "%s/%s%s", preferences.mail_project, oldpage, type); - snprintf(newfile, sizeof(newfile), "%s/%s%s", preferences.mail_project, newpage, type); - - rename(oldfile, newfile); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane_mail_project_save(); - } - - free(oldpage); - free(newpage); - - gtk_widget_destroy(rename_dialog); - - xsane_set_sensitivity(TRUE); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_entry_delete_callback(GtkWidget *widget, gpointer list) -{ - GtkObject *list_item; - GList *select; - char *page; - char *type; - char file[256]; - - DBG(DBG_proc, "xsane_mail_entry_delete_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item = GTK_OBJECT(select->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(file, sizeof(file), "%s/%s%s", preferences.mail_project, page, type); - free(page); - free(type); - remove(file); - gtk_widget_destroy(GTK_WIDGET(list_item)); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_CHANGED); - xsane_mail_project_save(); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_show_callback(GtkWidget *widget, gpointer list) -{ - GtkObject *list_item; - GList *select; - char *page; - char *type; - char filename[256]; - - DBG(DBG_proc, "xsane_mail_entry_show_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item = GTK_OBJECT(select->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(filename, sizeof(filename), "%s/%s%s", preferences.mail_project, page, type); - free(page); - free(type); - - xsane_viewer_new(filename, FALSE, filename, VIEWER_NO_MODIFICATION); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -#if 0 -static void xsane_mail_edit_callback(GtkWidget *widget, gpointer list) -{ - GtkObject *list_item; - GList *select; - char *page; - char *type; - char filename[256]; - FILE *outfile; - FILE *infile; - char outfilename[256]; - Image_info image_info; - int cancel_save; - - DBG(DBG_proc, "xsane_mail_entry_show_callback\n"); - - select = GTK_LIST(list)->selection; - if (select) - { - list_item = GTK_OBJECT(select->data); - page = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&page); - snprintf(filename, sizeof(filename), "%s/%s%s", preferences.mail_project, page, type); - free(page); - free(type); - - - infile = fopen(filename, "rb"); - if (!infile) - { - DBG(DBG_error, "could not load file %s\n", filename); - return; - } - - xsane_read_pnm_header(infile, &image_info); - - DBG(DBG_info, "copying image %s with geometry: %d x %d x %d, %d colors\n", filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors); - - xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".pnm", XSANE_PATH_TMP); - - outfile = fopen(outfilename, "wb"); - if (!outfile) - { - DBG(DBG_error, "could not save file %s\n", outfilename); - return; - } - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), PROGRESS_CLONING_DATA); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), 0.0); - - xsane_save_rotate_image(outfile, infile, &image_info, 0, xsane.mail_progress_bar, &cancel_save); - - fclose(infile); - fclose(outfile); - - gtk_progress_set_format_string(GTK_PROGRESS(xsane.mail_progress_bar), ""); - gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.mail_progress_bar), 0.0); - - xsane_viewer_new(outfilename, FALSE, filename, VIEWER_NO_NAME_MODIFICATION); - } -} -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_create_mail(int fd) -{ - FILE *attachment_file; - FILE *projectfile; - char *boundary="-----partseparator"; - char *image_filename; - char *mail_text = NULL; - char *mail_text_pos = NULL; - char **attachment_filename = NULL; - char *mime_type = NULL; - char buf[256]; - char filename[256]; - char content_id[256]; - char image[256]; - int i, j; - int c; - int attachments = 0; - int use_attachment = 0; - int mail_text_size = 0; - int display_images_inline = FALSE; - - DBG(DBG_proc, "xsane_create_mail\n"); - - snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.mail_project); - projectfile = fopen(filename, "rb"); /* read binary (b for win32) */ - - if ((!projectfile) || (feof(projectfile))) - { - DBG(DBG_error, "could not open mail project file %s\n", filename); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_ERR_READ_PROJECT); - xsane.mail_progress_val = 0.0; - xsane_front_gtk_mail_project_update_lockfile_status(); - - return; - } - - for (i=0; i<5; i++) /* skip 5 lines */ - { - j=0; - c=0; - while ((j<255) && (c != 10) && (c != EOF)) /* first line is mail status */ - { - c = fgetc(projectfile); - j++; - } - } - - if (!strcmp(preferences.mail_filetype, XSANE_FILETYPE_PNG)) - { - mime_type = "image/png"; - display_images_inline = TRUE; - } - else if (!strcmp(preferences.mail_filetype, XSANE_FILETYPE_JPEG)) - { - mime_type = "image/jpeg"; - display_images_inline = TRUE; - } - else if (!strcmp(preferences.mail_filetype, XSANE_FILETYPE_TIFF)) - { - mime_type = "image/tiff"; - display_images_inline = TRUE; - } - else if (!strcmp(preferences.mail_filetype, XSANE_FILETYPE_PDF)) - { - mime_type = "doc/pdf"; - display_images_inline = FALSE; - } - else if (!strcmp(preferences.mail_filetype, XSANE_FILETYPE_PS)) - { - mime_type = "doc/postscript"; - display_images_inline = FALSE; - } - else - { - mime_type = "doc/unknown"; - display_images_inline = FALSE; - } - - DBG(DBG_info, "reading list of attachments:\n"); - /* read list of attachments */ - while (!feof(projectfile)) - { - /* read next attachment line */ - i=0; - c=0; - while ((i<255) && (c != 10) && (c != EOF)) - { - c = fgetc(projectfile); - image[i++] = c; - } - image[i-1]=0; - - if (strcmp("mailtext:", image) && (c > 1)) - { - char imagename[256]; - char *filename; - char *extension; - - DBG(DBG_info, " - %s\n", image); - - extension = strrchr(image, '.'); - if (extension) - { - *extension = 0; - } - - snprintf(imagename, sizeof(imagename), "%s%s", image, preferences.mail_filetype); - filename=strdup(imagename); - xsane_convert_text_to_filename(&filename); - attachment_filename = realloc(attachment_filename, (attachments+1)*sizeof(void *)); - attachment_filename[attachments++] = strdup(filename); - free(filename); - } - else - { - break; - } - } - - /* read mail text */ - while (!feof(projectfile)) - { - mail_text = realloc(mail_text, mail_text_size+1025); /* increase mail_text by 1KB */ - mail_text_size += fread(mail_text+mail_text_size, 1, 1024, projectfile); /* read next KB */ - } - DBG(DBG_info, "%d bytes mailtext read\n", mail_text_size); - - *(mail_text + mail_text_size) = 0; /* set end of text marker */ - mail_text_pos = mail_text; - - if (xsane.mail_html_mode) /* create html mail */ - { - DBG(DBG_info, "sending mail in html format\n"); - - write_mail_header(fd, preferences.mail_from, preferences.mail_reply_to, xsane.mail_receiver, xsane.mail_subject, boundary, 1 /* related */); - write_mail_mime_html(fd, boundary); - - DBG(DBG_info, "sending mail text\n"); - while (*mail_text_pos != 0) - { - if (!strncasecmp("<image>", mail_text_pos, 7)) /* insert image */ - { - mail_text_pos += 6; /* <image> is 7 characters, 6 additional ones */ - - if (use_attachment < attachments) - { - image_filename = attachment_filename[use_attachment++]; - DBG(DBG_info, "inserting image cid for %s\n", image_filename); - snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ - - /* doc files like ps and pdf can not be displayed inline in html mail */ - if (display_images_inline) - { - snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id); - } - write(fd, buf, strlen(buf)); - } - else /* more images selected than available */ - { - } - } - else if (*mail_text_pos == 10) /* new line */ - { - snprintf(buf, sizeof(buf), "<br>\n"); - write(fd, buf, strlen(buf)); - } - else - { - write(fd, mail_text_pos, 1); - } - mail_text_pos++; - } - - while (use_attachment < attachments) /* append not already referenced images */ - { - image_filename = attachment_filename[use_attachment++]; - DBG(DBG_info, "appending image cid for %s\n", image_filename); - snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ - - /* doc files like ps and pdf can not be displayed inline in html mail */ - if (display_images_inline) - { - snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id); - } - write(fd, buf, strlen(buf)); - } - - snprintf(buf, sizeof(buf), "</html>\n"); - write(fd, buf, strlen(buf)); - - - for (i=0; i<attachments; i++) - { - image_filename = attachment_filename[i]; - snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ - snprintf(filename, sizeof(filename), "%s/mail-%s", preferences.mail_project, image_filename); - attachment_file = fopen(filename, "rb"); /* read, b=binary for win32 */ - - if (attachment_file) - { - DBG(DBG_info, "attaching file \"%s\" as \"%s\" with type %s\n", filename, image_filename, preferences.mail_filetype); - write_mail_attach_image(fd, boundary, content_id, mime_type, attachment_file, image_filename); - - remove(filename); - } - else /* could not open attachment file */ - { - DBG(DBG_error, "could not open attachment file \"%s\"\n", filename); - } - - free(attachment_filename[i]); - } - free(attachment_filename); - - write_mail_footer(fd, boundary); - } - else /* ascii mail */ - { - DBG(DBG_info, "sending mail in ascii format\n"); - - write_mail_header(fd, preferences.mail_from, preferences.mail_reply_to, xsane.mail_receiver, xsane.mail_subject, boundary, 0 /* not related */); - write_mail_mime_ascii(fd, boundary); - - write(fd, mail_text, strlen(mail_text)); - write(fd, "\n\n", 2); - - for (i=0; i<attachments; i++) - { - image_filename = strdup(attachment_filename[i]); - snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */ - snprintf(filename, sizeof(filename), "%s/mail-%s", preferences.mail_project, image_filename); - attachment_file = fopen(filename, "rb"); /* read, b=binary for win32 */ - - if (attachment_file) - { - DBG(DBG_info, "attaching file \"%s\" as \"%s\" with type %s\n", filename, image_filename, preferences.mail_filetype); - write_mail_attach_image(fd, boundary, content_id, mime_type, attachment_file, image_filename); - - remove(filename); - } - else /* could not open attachment file */ - { - DBG(DBG_error, "could not oppen attachment png file \"%s\"\n", filename); - } - - free(image_filename); - free(attachment_filename[i]); - } - free(attachment_filename); - - write_mail_footer(fd, boundary); - } - - free(mail_text); - - if (projectfile) - { - fclose(projectfile); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_send_process() -{ - int fd_socket; - int status; - - DBG(DBG_proc, "xsane_mail_send_process\n"); - - /* pop3 authentification */ - if (preferences.mail_pop3_authentification) - { - char *password; - int i; - - fd_socket = open_socket(preferences.mail_pop3_server, preferences.mail_pop3_port); - - if (fd_socket < 0) /* could not open socket */ - { - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_POP3_CONNECTION_FAILED); - xsane.mail_progress_val = 0.0; - xsane_front_gtk_mail_project_update_lockfile_status(); - - return; - } - - password = strdup(preferences.mail_pop3_pass); - - for (i=0; i<strlen(password); i++) - { - password[i] ^= 0x53; - } - - status = pop3_login(fd_socket, preferences.mail_pop3_user, password); - - free(password); - - close(fd_socket); - - if (status == -1) - { - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_POP3_LOGIN_FAILED); - xsane.mail_progress_val = 0.0; - xsane_front_gtk_mail_project_update_lockfile_status(); - - return; - } - } - - DBG(DBG_info, "POP3 authentification done\n"); - - - /* smtp mail */ - fd_socket = open_socket(preferences.mail_smtp_server, preferences.mail_smtp_port); - - if (fd_socket < 0) /* could not open socket */ - { - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SMTP_CONNECTION_FAILED); - xsane.mail_progress_val = 0.0; - xsane_front_gtk_mail_project_update_lockfile_status(); - - return; - } - - status = write_smtp_header(fd_socket, preferences.mail_from, xsane.mail_receiver); - if (status == -1) - { - return; - } - - xsane_create_mail(fd_socket); /* create mail and write to socket */ - - write_smtp_footer(fd_socket); - - close(fd_socket); - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SENT); - xsane.mail_progress_val = 1.0; - xsane_front_gtk_mail_project_update_lockfile_status(); - _exit(0); -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - -static void xsane_mail_send() -{ - pid_t pid; - char *image; - char *type; - GList *list = (GList *) GTK_LIST(xsane.mail_list)->children; - GtkObject *list_item; - char source_filename[PATH_MAX]; - char mail_filename[PATH_MAX]; - int output_format; - int cancel_save = 0; - - DBG(DBG_proc, "xsane_mail_send\n"); - - xsane_set_sensitivity(FALSE); /* do not allow changing xsane mode */ - - while (gtk_events_pending()) - { - DBG(DBG_info, "calling gtk_main_iteration\n"); - gtk_main_iteration(); - } - - if (xsane.mail_project_save) - { - xsane.mail_project_save = 0; - xsane_mail_project_save(); - } - - xsane.mail_progress_size = 0; - xsane.mail_progress_bytes = 0; - - while (list) - { - list_item = GTK_OBJECT(list->data); - image = strdup((char *) gtk_object_get_data(list_item, "list_item_data")); - type = strdup((char *) gtk_object_get_data(list_item, "list_item_type")); - xsane_convert_text_to_filename(&image); - snprintf(source_filename, sizeof(source_filename), "%s/%s%s", preferences.mail_project, image, type); - snprintf(mail_filename, sizeof(mail_filename), "%s/mail-%s%s", preferences.mail_project, image, preferences.mail_filetype); - free(image); - free(type); - DBG(DBG_info, "converting %s to %s\n", source_filename, mail_filename); - output_format = xsane_identify_output_format(mail_filename, NULL, NULL); - xsane_save_image_as(mail_filename, source_filename, output_format, xsane.mail_progress_bar, &cancel_save); - list = list->next; - xsane.mail_progress_size += xsane_get_filesize(mail_filename); - } - - - if (xsane.mail_status) - { - free(xsane.mail_status); - } - xsane.mail_status = strdup(TEXT_MAIL_STATUS_SENDING); - xsane.mail_progress_val = 0.0; - xsane_mail_project_display_status(); /* display status before creating lockfile! */ - xsane_front_gtk_mail_project_update_lockfile_status(); /* create lockfile and update status */ - - pid = fork(); - - if (pid == 0) /* new process */ - { - FILE *ipc_file = NULL; - - if (xsane.ipc_pipefd[0]) - { - close(xsane.ipc_pipefd[0]); /* close reading end of pipe */ - ipc_file = fdopen(xsane.ipc_pipefd[1], "w"); - } - - 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()); - - xsane_mail_send_process(); - - _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */ - } - else /* parent process */ - { - xsane_add_process_to_list(pid); /* add pid to child process list */ - } - - xsane_mail_send_timer = gtk_timeout_add(100, (GtkFunction) xsane_mail_send_timer_callback, NULL); - DBG(DBG_info, "enabling mail send timer (%d)\n", xsane_mail_send_timer); - - xsane_set_sensitivity(TRUE); /* allow changing xsane mode */ -#if 0 - gtk_widget_set_sensitive(xsane.mail_project_entry_box, TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE); - gtk_widget_set_sensitive(xsane.mail_project_box, FALSE); -#endif - xsane_mail_project_set_sensitive(FALSE); -} - -#endif -/* ---------------------------------------------------------------------------------------------------------------------- */ - static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data) { DBG(DBG_proc, "xsane_pref_toggle_tooltips\n"); @@ -6764,7 +3618,7 @@ static void xsane_show_doc_via_nsr(GtkWidget *widget, gpointer data) /* show via } else /* parent process */ { - xsane_add_process_to_list(pid); /* add pid to child process list */ + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ } } else /* netscape not running */ @@ -6806,7 +3660,7 @@ static void xsane_show_doc_via_nsr(GtkWidget *widget, gpointer data) /* show via } else /* parent process */ { - xsane_add_process_to_list(pid); /* add pid to child process list */ + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ } } @@ -6822,7 +3676,6 @@ static void xsane_show_doc_via_nsr(GtkWidget *widget, gpointer data) /* show via static char **xsane_parse_command(char *command_line, char *url) { char **argv = NULL; - //char *command = strdup(command_line); char command[1024]; char *command_pos = command; char *arg_end; @@ -6929,7 +3782,7 @@ static void xsane_show_doc(GtkWidget *widget, gpointer data) } else /* parent process */ { - xsane_add_process_to_list(pid); /* add pid to child process list */ + xsane_front_gtk_add_process_to_list(pid); /* add pid to child process list */ } } } @@ -6939,7 +3792,7 @@ static void xsane_show_doc(GtkWidget *widget, gpointer data) static void xsane_scan_callback(void) { xsane.scan_rotation = xsane.preview->rotation; - xsane_scan_dialog(); + xsane_scan_dialog(NULL); } /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -6976,6 +3829,7 @@ static GtkWidget *xsane_view_build_menu(void) gtk_widget_add_accelerator(xsane.show_resolution_list_widget, "activate", xsane.accelerator_group, GDK_L, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | DEF_GTK_ACCEL_LOCKED); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_resolution_list_widget), preferences.show_resolution_list); gtk_menu_append(GTK_MENU(menu), xsane.show_resolution_list_widget); + gtk_widget_set_sensitive(xsane.show_resolution_list_widget, FALSE); /* we only make it active when we have a resolution range */ gtk_widget_show(xsane.show_resolution_list_widget); g_signal_connect(GTK_OBJECT(xsane.show_resolution_list_widget), "toggled", (GtkSignalFunc) xsane_show_resolution_list_callback, NULL); @@ -7858,10 +4712,10 @@ void xsane_panel_build() /* connect to backend and create main dialogs: - sane_open - - create dialog xsane.shell + - create dialog xsane.dialog - build menues - - create dialog xsane.standard_options_shell - - create dialog xsane.advanced_options_shell + - create dialog xsane.standard_options_dialog + - create dialog xsane.advanced_options_dialog - create tooltip style - create dialog xsane.histogram_dialog - create dialog xsane.gamma_dialog @@ -8007,23 +4861,23 @@ static void xsane_device_dialog(void) /* create the xsane dialog box */ - xsane.shell = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_move(GTK_WINDOW(xsane.shell), XSANE_SHELL_POS_X, XSANE_SHELL_POS_Y); + xsane.dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_move(GTK_WINDOW(xsane.dialog), XSANE_DIALOG_POS_X, XSANE_DIALOG_POS_Y); sprintf(windowname, "%s %s %s", xsane.prog_name, XSANE_VERSION, xsane.device_text); - gtk_window_set_title(GTK_WINDOW(xsane.shell), (char *) windowname); - g_signal_connect(GTK_OBJECT(xsane.shell), "delete_event", GTK_SIGNAL_FUNC(xsane_scan_win_delete), NULL); + gtk_window_set_title(GTK_WINDOW(xsane.dialog), (char *) windowname); + g_signal_connect(GTK_OBJECT(xsane.dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_scan_win_delete), NULL); - xsane_set_window_icon(xsane.shell, 0); + xsane_set_window_icon(xsane.dialog, 0); /* create the xsane main window accelerator table */ xsane.accelerator_group = gtk_accel_group_new(); - gtk_window_add_accel_group(GTK_WINDOW(xsane.shell), xsane.accelerator_group); + gtk_window_add_accel_group(GTK_WINDOW(xsane.dialog), xsane.accelerator_group); /* set the main vbox */ xsane_window = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(xsane_window), 0); - gtk_container_add(GTK_CONTAINER(xsane.shell), xsane_window); + gtk_container_add(GTK_CONTAINER(xsane.dialog), xsane_window); gtk_widget_show(xsane_window); /* create the menubar */ @@ -8075,7 +4929,7 @@ static void xsane_device_dialog(void) if (xsane.main_window_fixed) /* fixed window: use it like it is */ { /* shrink grow auto_shrink */ - gtk_window_set_resizable(GTK_WINDOW(xsane.shell), FALSE); + gtk_window_set_resizable(GTK_WINDOW(xsane.dialog), FALSE); xsane_vbox_main = gtk_vbox_new(TRUE, 5); /* we need this to set the wanted borders */ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_main), 5); @@ -8083,10 +4937,10 @@ static void xsane_device_dialog(void) } else /* scrolled window: create a scrolled window and put it into the xsane dialog box */ { - gtk_window_set_default_size(GTK_WINDOW(xsane.shell), XSANE_SHELL_WIDTH, XSANE_SHELL_HEIGHT); /* set default size */ + gtk_window_set_default_size(GTK_WINDOW(xsane.dialog), XSANE_DIALOG_WIDTH, XSANE_DIALOG_HEIGHT); /* set default size */ /* shrink grow auto_shrink */ - gtk_window_set_resizable(GTK_WINDOW(xsane.shell), TRUE); /* allow resizing */ + gtk_window_set_resizable(GTK_WINDOW(xsane.dialog), TRUE); /* allow resizing */ xsane.main_dialog_scrolled = gtk_scrolled_window_new(0, 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(xsane.main_dialog_scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); @@ -8108,30 +4962,30 @@ static void xsane_device_dialog(void) #if 0 /* add vendor`s logo */ - xsane_vendor_pixmap_new(xsane.shell->window, xsane_window); + xsane_vendor_pixmap_new(xsane.dialog->window, xsane_window); #endif /* create the scanner standard options dialog box */ - xsane.standard_options_shell = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_move(GTK_WINDOW(xsane.standard_options_shell), XSANE_STD_OPTIONS_POS_X, XSANE_STD_OPTIONS_POS_Y); + xsane.standard_options_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_move(GTK_WINDOW(xsane.standard_options_dialog), XSANE_STD_OPTIONS_DIALOG_POS_X, XSANE_STD_OPTIONS_DIALOG_POS_Y); sprintf(windowname, "%s %s", WINDOW_STANDARD_OPTIONS, xsane.device_text); - gtk_window_set_title(GTK_WINDOW(xsane.standard_options_shell), (char *) windowname); + gtk_window_set_title(GTK_WINDOW(xsane.standard_options_dialog), (char *) windowname); - gtk_window_set_resizable(GTK_WINDOW(xsane.standard_options_shell), FALSE); - g_signal_connect(GTK_OBJECT(xsane.standard_options_shell), "delete_event", GTK_SIGNAL_FUNC(xsane_standard_option_win_delete), NULL); + gtk_window_set_resizable(GTK_WINDOW(xsane.standard_options_dialog), FALSE); + g_signal_connect(GTK_OBJECT(xsane.standard_options_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_standard_option_win_delete), NULL); - xsane_set_window_icon(xsane.standard_options_shell, 0); - gtk_window_add_accel_group(GTK_WINDOW(xsane.standard_options_shell), xsane.accelerator_group); + xsane_set_window_icon(xsane.standard_options_dialog, 0); + gtk_window_add_accel_group(GTK_WINDOW(xsane.standard_options_dialog), xsane.accelerator_group); xsane_vbox_standard = gtk_vbox_new(FALSE, 5); /* has been TRUE before I added backend pixmap */ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_standard), 5); - gtk_container_add(GTK_CONTAINER(xsane.standard_options_shell), xsane_vbox_standard); + gtk_container_add(GTK_CONTAINER(xsane.standard_options_dialog), xsane_vbox_standard); gtk_widget_show(xsane_vbox_standard); /* add vendor`s logo */ - xsane_vendor_pixmap_new(xsane.standard_options_shell->window, xsane_vbox_standard); + xsane_vendor_pixmap_new(xsane.standard_options_dialog->window, xsane_vbox_standard); /* create a subwindow so the standard dialog keeps its position on rebuilds: */ xsane.standard_window = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -8141,24 +4995,24 @@ static void xsane_device_dialog(void) /* create the scanner advanced options dialog box */ - xsane.advanced_options_shell = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_move(GTK_WINDOW(xsane.advanced_options_shell), XSANE_ADV_OPTIONS_POS_X, XSANE_ADV_OPTIONS_POS_Y); + xsane.advanced_options_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_move(GTK_WINDOW(xsane.advanced_options_dialog), XSANE_ADV_OPTIONS_DIALOG_POS_X, XSANE_ADV_OPTIONS_DIALOG_POS_Y); sprintf(windowname, "%s %s",WINDOW_ADVANCED_OPTIONS, xsane.device_text); - gtk_window_set_title(GTK_WINDOW(xsane.advanced_options_shell), (char *) windowname); + gtk_window_set_title(GTK_WINDOW(xsane.advanced_options_dialog), (char *) windowname); - gtk_window_set_resizable(GTK_WINDOW(xsane.advanced_options_shell), FALSE); - g_signal_connect(GTK_OBJECT(xsane.advanced_options_shell), "delete_event", GTK_SIGNAL_FUNC(xsane_advanced_option_win_delete), NULL); + gtk_window_set_resizable(GTK_WINDOW(xsane.advanced_options_dialog), FALSE); + g_signal_connect(GTK_OBJECT(xsane.advanced_options_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_advanced_option_win_delete), NULL); - xsane_set_window_icon(xsane.advanced_options_shell, 0); - gtk_window_add_accel_group(GTK_WINDOW(xsane.advanced_options_shell), xsane.accelerator_group); + xsane_set_window_icon(xsane.advanced_options_dialog, 0); + gtk_window_add_accel_group(GTK_WINDOW(xsane.advanced_options_dialog), xsane.accelerator_group); xsane_vbox_advanced = gtk_vbox_new(FALSE, 5); /* has been TRUE before I added backend pixmap */ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_advanced), 5); - gtk_container_add(GTK_CONTAINER(xsane.advanced_options_shell), xsane_vbox_advanced); + gtk_container_add(GTK_CONTAINER(xsane.advanced_options_dialog), xsane_vbox_advanced); gtk_widget_show(xsane_vbox_advanced); /* add vendor´s logo */ - xsane_vendor_pixmap_new(xsane.advanced_options_shell->window, xsane_vbox_advanced); + xsane_vendor_pixmap_new(xsane.advanced_options_dialog->window, xsane_vbox_advanced); /* create a subwindow so the advanced dialog keeps its position on rebuilds: */ xsane.advanced_window = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -8180,11 +5034,11 @@ static void xsane_device_dialog(void) if (xsane.main_window_fixed) { - gtk_widget_realize(xsane.shell); + gtk_widget_realize(xsane.dialog); } else { - gtk_widget_show(xsane.shell); + gtk_widget_show(xsane.dialog); /* the disadavantage of this is that the main window does not have the focus when every window is shown */ } @@ -8194,7 +5048,7 @@ static void xsane_device_dialog(void) /* define tooltips colors */ xsane.tooltips = gtk_tooltips_new(); - colormap = gdk_drawable_get_colormap(xsane.shell->window); + colormap = gdk_drawable_get_colormap(xsane.dialog->window); /* use black as foreground: */ xsane.tooltips_fg.red = 0; @@ -8306,17 +5160,17 @@ static void xsane_device_dialog(void) xsane_update_param(0); xsane_update_gamma_curve(TRUE); - gtk_widget_realize(xsane.standard_options_shell); /* is needed for saving window geometry */ - gtk_widget_realize(xsane.advanced_options_shell); + gtk_widget_realize(xsane.standard_options_dialog); /* is needed for saving window geometry */ + gtk_widget_realize(xsane.advanced_options_dialog); if (preferences.show_standard_options) { - gtk_widget_show(xsane.standard_options_shell); + gtk_widget_show(xsane.standard_options_dialog); } if (preferences.show_advanced_options) { - gtk_widget_show(xsane.advanced_options_shell); + gtk_widget_show(xsane.advanced_options_dialog); } if (preferences.show_batch_scan) @@ -8324,7 +5178,7 @@ static void xsane_device_dialog(void) gtk_widget_show(xsane.batch_scan_dialog); } - gtk_widget_show(xsane.shell); /* call as last so focus is on it */ + gtk_widget_show(xsane.dialog); /* call as last so focus is on it */ while (gtk_events_pending()) { @@ -8659,7 +5513,7 @@ static int xsane_init(int argc, char **argv) { int ch; - while((ch = getopt_long(argc, argv, "cd:fghlmnpsvFN:RV", long_options, 0)) != EOF) + while((ch = getopt_long(argc, argv, "cd:efghlmnpsvFN:RV", long_options, 0)) != EOF) { switch(ch) { @@ -8675,7 +5529,7 @@ static int xsane_init(int argc, char **argv) case 'v': /* --version */ g_print("%s-%s %s %s\n", xsane.prog_name, XSANE_VERSION, XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT); - g_print(" %s %s\n", TEXT_EMAIL, XSANE_EMAIL); + 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); @@ -8750,8 +5604,12 @@ static int xsane_init(int argc, char **argv) xsane.xsane_mode = XSANE_FAX; break; - case 'm': /* --mail */ - xsane.xsane_mode = XSANE_MAIL; + case 'm': /* --multipage */ + xsane.xsane_mode = XSANE_MULTIPAGE; + break; + + case 'e': /* --email */ + xsane.xsane_mode = XSANE_EMAIL; break; case 'n': /* --No-mode-selection */ @@ -9162,8 +6020,10 @@ int main(int argc, char **argv) #endif #ifdef HAVE_OS2_H +# ifndef HAVE_GTK2 /* don`t know why, but os2 does need this one, a bit different to WIN32 */ set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO); +# endif #endif #ifdef HAVE_GIMP_2 diff --git a/src/xsane.h b/src/xsane.h index 339cb49..abf8447 100644 --- a/src/xsane.h +++ b/src/xsane.h @@ -85,11 +85,11 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ -#define XSANE_VERSION "0.98" +#define XSANE_VERSION "0.99" #define XSANE_AUTHOR "Oliver Rauch" #define XSANE_COPYRIGHT "Oliver Rauch" #define XSANE_DATE "1998-2005" -#define XSANE_EMAIL "Oliver.Rauch@xsane.org" +#define XSANE_EMAIL_ADR "Oliver.Rauch@xsane.org" #define XSANE_HOMEPAGE "http://www.xsane.org" #define XSANE_COPYRIGHT_TXT XSANE_DATE " " XSANE_COPYRIGHT @@ -103,34 +103,46 @@ #define XSANE_DEFAULT_DEVICE "SANE_DEFAULT_DEVICE" #define XSANE_3PASS_BUFFER_RGB_SIZE 1024 +#ifndef M_PI_2 +# define M_PI_2 1.57079632679489661923 /* pi/2 */ +#endif + #ifdef HAVE_WINDOWS_H -# define BUGGY_GDK_INPUT_EXCEPTION # define _WIN32 #endif +#ifdef _WIN32 +# define BUGGY_GDK_INPUT_EXCEPTION +#endif + +#ifdef HAVE_OS2_H +# define BUGGY_GDK_INPUT_EXCEPTION +# define strcasecmp stricmp +#endif + #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ -# define XSANE_DEFAULT_MAILTYPE XSANE_FILETYPE_PNG -# define XSANE_ACTIVATE_MAIL +# define XSANE_DEFAULT_EMAIL_TYPE XSANE_FILETYPE_PNG +# define XSANE_ACTIVATE_EMAIL #endif #endif -#ifndef XSANE_DEFAULT_MAILTYPE +#ifndef XSANE_DEFAULT_EMAIL_TYPE #ifdef HAVE_LIBJPEG -# define XSANE_DEFAULT_MAILTYPE XSANE_FILETYPE_JPEG -# define XSANE_ACTIVATE_MAIL +# define XSANE_DEFAULT_EMAIL_TYPE XSANE_FILETYPE_JPEG +# define XSANE_ACTIVATE_EMAIL #endif #endif -#ifndef XSANE_DEFAULT_MAILTYPE +#ifndef XSANE_DEFAULT_EMAIL_TYPE #ifdef HAVE_LIBTIFF -# define XSANE_DEFAULT_MAILTYPE XSANE_FILETYPE_TIFF -# define XSANE_ACTIVATE_MAIL +# define XSANE_DEFAULT_EMAIL_TYPE XSANE_FILETYPE_TIFF +# define XSANE_ACTIVATE_EMAIL #endif #endif -#ifndef XSANE_DEFAULT_MAILTYPE -# define XSANE_DEFAULT_MAILTYPE XSANE_FILETYPE_PNM +#ifndef XSANE_DEFAULT_EMAIL_TYPE +# define XSANE_DEFAULT_EMAIL_TYPE XSANE_FILETYPE_PNM #endif @@ -237,6 +249,11 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ +#define IMAGE_SAVED TRUE +#define IMAGE_NOT_SAVED FALSE + +/* ---------------------------------------------------------------------------------------------------------------------- */ + #include "xsane-text.h" #include "xsane-fixedtext.h" #include "xsane-icons.h" @@ -281,12 +298,6 @@ /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef HAVE_OS2_H -# define strcasecmp stricmp -#endif - -/* ---------------------------------------------------------------------------------------------------------------------- */ - enum { XSANE_PATH_LOCAL_SANE = 0, @@ -432,15 +443,36 @@ Image_info; /* ---------------------------------------------------------------------------------------------------------------------- */ -enum { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_FAX, XSANE_MAIL }; -enum { XSANE_LINEART_STANDARD, XSANE_LINEART_XSANE, XSANE_LINEART_GRAYSCALE }; +enum +{ + XSANE_VIEWER, + XSANE_SAVE, + XSANE_COPY, + XSANE_MULTIPAGE, + XSANE_FAX, + XSANE_EMAIL +}; + +enum +{ + XSANE_LINEART_STANDARD, + XSANE_LINEART_XSANE, + XSANE_LINEART_GRAYSCALE +}; +enum +{ + EMAIL_AUTH_NONE = 0, + EMAIL_AUTH_POP3, + EMAIL_AUTH_ASMTP_PLAIN, + EMAIL_AUTH_ASMTP_LOGIN, + EMAIL_AUTH_ASMTP_CRAM_MD5 +}; + /* ---------------------------------------------------------------------------------------------------------------------- */ extern void xsane_pref_save(void); extern void xsane_interface(int argc, char **argv); -extern void xsane_fax_project_save(void); -extern void xsane_mail_project_save(void); extern void xsane_batch_scan_add(void); /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -464,10 +496,11 @@ extern void xsane_batch_scan_add(void); #define FAXPOSTSCRIPTOPT "" #define FAXNORMALOPT "-l" #define FAXFINEOPT "-m" +#define FAXVIEWER "ghostscript" #define FAXCONVERTPSTOPNM "gs -dNOPAUSE -dBATCH -q -r204 -sDEVICE=pnm -sOutputFile=" -#define MAILPROJECT "mailproject" -#define MAILCOMMAND "sendmail" -#define MAILVIEWER "xv" +#define EMAILPROJECT "emailproject" +#define EMAILCOMMAND "sendmail" +#define MULTIPAGEPROJECT "multipageproject" #define OCRCOMMAND "gocr" #define OCRINPUTFILEOPT "-i" #define OCROUTPUTFILEOPT "-o" @@ -489,26 +522,28 @@ extern void xsane_batch_scan_add(void); #define XSANE_GAMMA_MIN 0.3 #define XSANE_GAMMA_MAX 3.0 -#define HIST_WIDTH 256 -#define HIST_HEIGHT 100 -#define XSANE_SHELL_WIDTH 296 -#define XSANE_SHELL_HEIGHT 451 -#define XSANE_SHELL_POS_X 1 -#define XSANE_SHELL_POS_Y 50 -#define XSANE_HISTOGRAM_POS_X 280 -#define XSANE_HISTOGRAM_POS_Y 50 -#define XSANE_GAMMA_POS_X 280 -#define XSANE_GAMMA_POS_Y 420 -#define XSANE_BATCH_POS_X 480 -#define XSANE_BATCH_POS_Y 420 -#define XSANE_STD_OPTIONS_POS_X 1 -#define XSANE_STD_OPTIONS_POS_Y 400 -#define XSANE_ADV_OPTIONS_POS_X 280 -#define XSANE_ADV_OPTIONS_POS_Y 420 -#define XSANE_PREVIEW_POS_X 560 -#define XSANE_PREVIEW_POS_Y 50 -#define XSANE_PREVIEW_WIDTH 100 -#define XSANE_PREVIEW_HEIGHT 100 +#define HIST_WIDTH 256 +#define HIST_HEIGHT 100 +#define XSANE_DIALOG_WIDTH 296 +#define XSANE_DIALOG_HEIGHT 451 +#define XSANE_DIALOG_POS_X 1 +#define XSANE_DIALOG_POS_Y 50 +#define XSANE_HISTOGRAM_DIALOG_POS_X 280 +#define XSANE_HISTOGRAM_DIALOG_POS_Y 50 +#define XSANE_PROJECT_DIALOG_POS_X 280 +#define XSANE_PROJECT_DIALOG_POS_Y 425 +#define XSANE_GAMMA_DIALOG_POS_X 280 +#define XSANE_GAMMA_DIALOG_POS_Y 420 +#define XSANE_BATCH_DIALOG_POS_X 480 +#define XSANE_BATCH_DIALOG_POS_Y 420 +#define XSANE_STD_OPTIONS_DIALOG_POS_X 1 +#define XSANE_STD_OPTIONS_DIALOG_POS_Y 400 +#define XSANE_ADV_OPTIONS_DIALOG_POS_X 280 +#define XSANE_ADV_OPTIONS_DIALOG_POS_Y 420 +#define XSANE_PREVIEW_DIALOG_POS_X 560 +#define XSANE_PREVIEW_DIALOG_POS_Y 50 +#define XSANE_PREVIEW_DIALOG_WIDTH 100 +#define XSANE_PREVIEW_DIALOG_HEIGHT 100 #define XSANE_SLIDER_ACTIVE 0 #define XSANE_SLIDER_INACTIVE 4 @@ -634,10 +669,10 @@ typedef struct Xsane /* dialogs */ - GtkWidget *shell; + GtkWidget *dialog; GtkWidget *menubar; - GtkWidget *standard_options_shell; - GtkWidget *advanced_options_shell; + GtkWidget *standard_options_dialog; + GtkWidget *advanced_options_dialog; GtkWidget *main_dialog_scrolled; GtkWidget *histogram_dialog; GtkWidget *gamma_dialog; @@ -648,28 +683,21 @@ typedef struct Xsane GtkWidget *batch_scan_list; GtkAdjustment *batch_scan_vadjustment; - GtkWidget *fax_dialog; - GtkWidget *fax_list; - GtkWidget *fax_project_box; - GtkWidget *fax_project_exists; - GtkWidget *fax_project_not_exists; - GtkWidget *fax_project_entry; - GtkWidget *fax_project_entry_box; + GtkWidget *project_dialog; + GtkWidget *project_list; + GtkWidget *project_box; + GtkWidget *project_exists; + GtkWidget *project_not_exists; + GtkWidget *project_entry; + GtkWidget *project_entry_box; + GtkProgressBar *project_progress_bar; + GtkWidget *fax_receiver_entry; - GtkProgressBar *fax_progress_bar; - - GtkWidget *mail_dialog; - GtkWidget *mail_list; - GtkWidget *mail_project_box; - GtkWidget *mail_project_exists; - GtkWidget *mail_project_not_exists; - GtkWidget *mail_project_entry; - GtkWidget *mail_project_entry_box; - GtkWidget *mail_receiver_entry; - GtkWidget *mail_subject_entry; - GtkWidget *mail_text_widget; - GtkWidget *mail_html_mode_widget; - GtkProgressBar *mail_progress_bar; + + GtkWidget *email_receiver_entry; + GtkWidget *email_subject_entry; + GtkWidget *email_text_widget; + GtkWidget *email_html_mode_widget; GdkPixmap *window_icon_pixmap; GdkBitmap *window_icon_mask; @@ -807,10 +835,11 @@ typedef struct Xsane SANE_Bool scanner_gamma_color; SANE_Bool scanner_gamma_gray; - int mail_project_save; - int mail_html_mode; + int email_project_save; + int email_html_mode; GtkWidget *outputfilename_entry; + GtkWidget *adf_pages_max_entry; GtkWidget *copy_number_entry; gfloat *free_gamma_data, *free_gamma_data_red, *free_gamma_data_green, *free_gamma_data_blue; @@ -823,13 +852,16 @@ typedef struct Xsane char *fax_filename; char *fax_receiver; - float mail_progress_val; - int mail_progress_size; - int mail_progress_bytes; - char *mail_status; - char *mail_filename; - char *mail_receiver; - char *mail_subject; + float email_progress_val; + int email_progress_size; + int email_progress_bytes; + char *email_status; + char *email_filename; + char *email_receiver; + char *email_subject; + + char *multipage_status; + char *multipage_filename; int block_update_param; int block_enhancement_update; @@ -847,14 +879,16 @@ typedef struct Xsane rc_io-routintes that are based on double, int, ... */ /* window position and geometry */ - int shell_posx; - int shell_posy; - int shell_height; - int shell_width; - int standard_options_shell_posx; - int standard_options_shell_posy; - int advanced_options_shell_posx; - int advanced_options_shell_posy; + int dialog_posx; + int dialog_posy; + int dialog_height; + int dialog_width; + int project_dialog_posx; + int project_dialog_posy; + int standard_options_dialog_posx; + int standard_options_dialog_posy; + int advanced_options_dialog_posx; + int advanced_options_dialog_posy; int histogram_dialog_posx; int histogram_dialog_posy; int gamma_dialog_posx; @@ -914,7 +948,6 @@ typedef struct Xsane int print_filenames; int force_filename; char *external_filename; - char *adf_scansource; /* -------------------------------------------------- */ @@ -943,13 +976,17 @@ typedef struct XsaneSetup GtkWidget *printer_gamma_blue_entry; GtkWidget *printer_width_entry; GtkWidget *printer_height_entry; + GtkWidget *printer_ps_flatdecoded_button; GtkWidget *jpeg_image_quality_scale; - GtkWidget *pnm_image_compression_scale; + GtkWidget *png_image_compression_scale; + GtkWidget *tiff_image_zip_compression_scale; GtkWidget *save_devprefs_at_exit_button; 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_pnm16_as_ascii_button; GtkWidget *reduce_16bit_to_8bit_button; @@ -983,18 +1020,19 @@ typedef struct XsaneSetup GtkWidget *fax_leftoffset_entry; GtkWidget *fax_bottomoffset_entry; GtkWidget *fax_height_entry; + GtkWidget *fax_ps_flatdecoded_button; + GtkWidget *tmp_path_entry; - GtkWidget *mail_smtp_server_entry; - GtkWidget *mail_smtp_port_entry; - GtkWidget *mail_from_entry; - GtkWidget *mail_reply_to_entry; - GtkWidget *mail_pop3_authentification_entry; - GtkWidget *mail_pop3_server_entry; - GtkWidget *mail_pop3_port_entry; - GtkWidget *mail_pop3_user_entry; - GtkWidget *mail_pop3_pass_entry; - GtkWidget *mail_viewer_entry; + GtkWidget *email_smtp_server_entry; + GtkWidget *email_smtp_port_entry; + GtkWidget *email_from_entry; + GtkWidget *email_reply_to_entry; + GtkWidget *email_auth_user_entry; + GtkWidget *email_auth_pass_entry; + GtkWidget *email_pop3_server_entry; + GtkWidget *email_pop3_port_entry; + GtkWidget *pop3_vbox; GtkWidget *ocr_command_entry; GtkWidget *ocr_inputfile_option_entry; @@ -1009,6 +1047,8 @@ typedef struct XsaneSetup int tiff_compression8_nr; int tiff_compression1_nr; + int email_authentication; + int show_range_mode; int lineart_mode; @@ -1,6 +1,3 @@ -- preferecnes files are not read til the end when e.g. an unknown or old - varaiable name is found - - xsane dies without error message when saveing file to full disk - the SIGTERM handler is not called when gimp exits with xsane-plugin open. @@ -13,6 +10,10 @@ - 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 6eb2476..9c0bb17 100644 --- a/xsane.CHANGES +++ b/xsane.CHANGES @@ -2750,3 +2750,86 @@ xsane-0.98a -> 0.98b: from: int xsane_set_resolution(int well_known_option, double resolution); to: double xsane_set_resolution(int well_known_option, double resolution); + +xsane-0.98b -> 0.99: +-------------------- + + - added preferences/setup options: + - save_ps_flatdecoded + - save_pdf_flatdecoded + - fax_ps_flatdecoded + - printer[i].ps_flatdecoded + + - changed xsane-preferences reading routines for printer definitions and + preset area definitions + + - changed postscript and tiff saving routines: + - split in subroutines: + - create_document_header (ps, pdf) + - save image as page (ps, pdf, tiff) + - create_document_trailer (ps, pdf) + + - split xsane.c into xsane.c, xsane-fax-project.c and xsane-mail-project.c + + - created xsane-multipage.c that adds a multipage project dialog + supported file formats: + - ps + - pdf + - tiff + + - corrected viewer to display bits/sample and size correct + + - changed handling of viewer filename and filetype selection: + when a new viewer window is created then it copies the active + filename and filetype. Changing the viewer´s selection does not + change the prefered setting any more. + + - when no resolution option is available then xsane uses a resolution + of 72.0 dpi. This e.g. is used for postscript and PDF. + + - changed tiff saving routine: + - added deflate (zip) compression for 8 bit and 16 bit / sample images + - corrected jpeg rgb compression + + - changed mixed up e-mail names (mail, email, e-mail): + - all xsane internal names are: email + - all user visible texts are : e-mail + - changed acceleration key for email mode to GDK_E + - changed command line option from --mail and -m to --email and -e + + - changed name of notebook "image" to "filetype" + + - when force_filename is set then the filetype is defined by the filename + instead of preferences.filetype + + - project dialog position is saved in devices preferences now + + - when a dialog is closed then the position is stored in preferences + so it can be saved when the window is invisible at program exit + + - changed handling of ADF: + - removed ADF scanmode selection from setup + - added entry for number of pages to scan in xsane main dialog + - next scan is not started by + g_signal_emit_by_name(xsane.start_button, "clicked"); /* press START button */ + any more. This executed the next scan before all active scan subroutines + have been finished. Now we use + gtk_timeout_add(100, (GtkFunction)xsane_scan_dialog, NULL); + to start xsane_scan_dialog after 100ms. + + - batch scan window now uses preview levels (zoomed previews) to display batch icons + + - added ASMTP authentication PLAIN and LOGIN + + - changed size definition of preview window for GTK2 to gtk_window_resize() + + - added $(DESTDIR) before each destination path in all Makefile.in + + - made usage of MKINSTALLDIRS unique in all Makefile.in + + - cleaned up subdir intl + + - translations: U=updated (* for 0.99-pre1), N=not updated, A=added/new + cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh + U U U N N U N N U* U* N N N U N U N N U* N N +last upd 96 95 96 95 96 96 96 98 76 92 96 96 @@ -1,12 +1,11 @@ NEWS: - The medium definitions are stored in xsane.mdf instead - of xsane.rc now. There is no automatic transformation. - When you send your xsane.rc file (remove your mail password) - to me then I will create a xsane.mdf file for you. + Due to changes in the configuration file routines + you have to enter some data in preferences->setup. - no special you have to care about to get xsane to work. + In general there is nothing special you have to care + about to get xsane to work. Read xsane.CHANGES if you are interested in details of what has changed. @@ -10,15 +10,16 @@ Sign explaination: - list of last used filenames - enable filters in save mode? + projects: + # add selection for project directory to setup + # store mail, fax and multipage projects in project directory + # add buton "open project" to all project dialogs + # disable "scan batch" button when we are in project mode + and the project does not exist + scan-routines: # allow additional image data after each row (is sane standard conform) - save-subroutines: - # save several images into one file for: - - postscript - - pdf - - may be tiff - - may be pnm fax-function: ++ # add new image types to fax fileformat: tiff/pbm/g3 @@ -34,13 +35,12 @@ Sign explaination: email-function: # delete image/project: create dialog "really remove?" # test for existance of lockfile? - - ??? are there other ways than pop3 before smtp to identify yourself to - the smtp server? ??? + - add ASMTP CRAM-MD5 authentication - add cancel button while preparing mail images gamma function: # add target gamma (e.g. for web publishing) - # correct gtk custom gamma functions and include it + - correct gtk custom gamma functions and include it or better: write an own gamma curve widget medium selection: @@ -56,29 +56,25 @@ Sign explaination: this will not produce exact results with some scanners!!! viewer function: +++ # clone to 8 bit: reduce 16bit image to 8bit ++ # crop to new viewer ++ # fill rectangular area (e.g. for masking unwanted parts of a scanned fax) - # print image - # show histogram of viewer image - # add more filters (sharpen?) - suggestions? - ONLY REALLY IMPORTANT FILTERS, - FOR OTHER IMAGE MANIPULATION THERE IS THE GIMP ++ # print image +- # show histogram of viewer image internal: -++ # bindtextdomain for sane_backends must use sane-backends path ++ # add range check / valid value when reading xsane.rc/*.drc files # 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,...) + + 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 - - include much more parameters when saving images + - average of a multiple scan of the same image ??? + - include much more parameters when saving images - mostly done - add infrared filter for transmissive rgbi scans (sane-2): use next neighbour with high transmission(i) value (may be to viewer) - ? show scanned image in save mode or automatically save image in viewer mode? ? project save/load with preview image, scanmode, .... ??? @@ -1,5 +1,5 @@ %define name xsane -%define version 0.98b +%define version 0.99 %define release 1 %define prefix /usr |