summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMattia Rizzolo <mattia@mapreri.org>2014-10-03 14:05:18 +0000
committerMattia Rizzolo <mattia@mapreri.org>2014-10-03 14:05:18 +0000
commit7fad909266d49203537a28e6acc5d96b14bf4e7f (patch)
treeaa6e8fb2327f43f86562b3ccefda9f08fe767e4b
parent947f2ec5da522dbe5b474fc7031cd3f224bd7ead (diff)
Imported Upstream version 0.99upstream/0.99
-rw-r--r--Makefile.in2
-rwxr-xr-xconfigure2
-rw-r--r--configure.in2
-rw-r--r--doc/Makefile.in32
-rw-r--r--doc/sane-xsane-advanced-doc.html17
-rw-r--r--doc/sane-xsane-batch-scan-doc.html17
-rw-r--r--doc/sane-xsane-color-correction-doc.html19
-rw-r--r--doc/sane-xsane-copy-doc.html51
-rw-r--r--doc/sane-xsane-doc.html52
-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.html11
-rw-r--r--doc/sane-xsane-fax-doc.html70
-rw-r--r--doc/sane-xsane-gimp-doc.html55
-rw-r--r--doc/sane-xsane-guide-doc.html157
-rw-r--r--doc/sane-xsane-histogram-doc.html11
-rw-r--r--doc/sane-xsane-medium-definition-doc.html17
-rw-r--r--doc/sane-xsane-multipage-doc.html190
-rw-r--r--doc/sane-xsane-preview-doc.html17
-rw-r--r--doc/sane-xsane-save-doc.html77
-rw-r--r--doc/sane-xsane-scan-options-doc.html200
-rw-r--r--doc/sane-xsane-setup-copy-doc.html31
-rw-r--r--doc/sane-xsane-setup-display-doc.html29
-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.html30
-rw-r--r--doc/sane-xsane-setup-fax-doc.html31
-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.html37
-rw-r--r--doc/sane-xsane-standard-doc.html17
-rw-r--r--doc/sane-xsane-viewer-doc.html63
-rw-r--r--doc/xsane-adf-pages.jpgbin0 -> 1146 bytes
-rw-r--r--doc/xsane-color-correction.jpgbin0 -> 50687 bytes
-rw-r--r--doc/xsane-copy-number.jpgbin0 -> 947 bytes
-rw-r--r--doc/xsane-copy.jpgbin31627 -> 32105 bytes
-rw-r--r--doc/xsane-email-project.jpgbin0 -> 32280 bytes
-rw-r--r--doc/xsane-email.jpgbin0 -> 29906 bytes
-rw-r--r--doc/xsane-fax-project.jpgbin21489 -> 23336 bytes
-rw-r--r--doc/xsane-fax.jpgbin27505 -> 28055 bytes
-rw-r--r--doc/xsane-gimp.jpgbin44794 -> 43028 bytes
-rw-r--r--doc/xsane-guide-1-decoration.jpgbin0 -> 3193 bytes
-rw-r--r--doc/xsane-guide-10-scan.jpgbin0 -> 6009 bytes
-rw-r--r--doc/xsane-guide-2-menu.jpgbin0 -> 2558 bytes
-rw-r--r--doc/xsane-guide-3-options.jpgbin0 -> 1392 bytes
-rw-r--r--doc/xsane-guide-4.jpgbin0 -> 2329 bytes
-rw-r--r--doc/xsane-guide-4a-adf-pages.jpgbin0 -> 1188 bytes
-rw-r--r--doc/xsane-guide-4b-xsane-mode.jpgbin0 -> 1491 bytes
-rw-r--r--doc/xsane-guide-5-saving-options.jpgbin0 -> 4334 bytes
-rw-r--r--doc/xsane-guide-6-scan-options.jpgbin0 -> 3085 bytes
-rw-r--r--doc/xsane-guide-7-medium-selection.jpgbin0 -> 2190 bytes
-rw-r--r--doc/xsane-guide-8-resolution.jpgbin0 -> 2292 bytes
-rw-r--r--doc/xsane-guide-9-color-correction.jpgbin0 -> 9367 bytes
-rw-r--r--doc/xsane-mail-project.jpgbin33308 -> 0 bytes
-rw-r--r--doc/xsane-mail.jpgbin29070 -> 0 bytes
-rw-r--r--doc/xsane-multipage-project.jpgbin0 -> 21451 bytes
-rw-r--r--doc/xsane-multipage.jpgbin0 -> 30051 bytes
-rw-r--r--doc/xsane-save.jpgbin49624 -> 33879 bytes
-rw-r--r--doc/xsane-setup-copy.jpgbin42914 -> 47557 bytes
-rw-r--r--doc/xsane-setup-display.jpgbin36119 -> 36430 bytes
-rw-r--r--doc/xsane-setup-email.jpgbin0 -> 34748 bytes
-rw-r--r--doc/xsane-setup-enhancement.jpgbin39750 -> 36740 bytes
-rw-r--r--doc/xsane-setup-fax.jpgbin36986 -> 40439 bytes
-rw-r--r--doc/xsane-setup-filetype.jpgbin0 -> 44064 bytes
-rw-r--r--doc/xsane-setup-image.jpgbin37103 -> 0 bytes
-rw-r--r--doc/xsane-setup-mail.jpgbin35723 -> 0 bytes
-rw-r--r--doc/xsane-setup-ocr.jpgbin28786 -> 28882 bytes
-rw-r--r--doc/xsane-setup-save.jpgbin34550 -> 34461 bytes
-rw-r--r--doc/xsane-step.jpgbin0 -> 1037 bytes
-rw-r--r--doc/xsane-target.jpgbin0 -> 685 bytes
-rw-r--r--doc/xsane-viewer.jpgbin29127 -> 33953 bytes
-rw-r--r--include/config.h4
-rw-r--r--intl/Makefile.in75
-rw-r--r--intl/bindtextdom.obin19384 -> 0 bytes
-rw-r--r--intl/dcgettext.obin33180 -> 0 bytes
-rw-r--r--intl/dgettext.obin9852 -> 0 bytes
-rw-r--r--intl/explodename.obin11500 -> 0 bytes
-rw-r--r--intl/finddomain.obin27968 -> 0 bytes
-rw-r--r--intl/gettext.obin11172 -> 0 bytes
-rw-r--r--intl/intl-compat.obin10808 -> 0 bytes
-rw-r--r--intl/l10nflist.obin14276 -> 0 bytes
-rw-r--r--intl/libintl.abin200330 -> 0 bytes
-rw-r--r--intl/loadmsgcat.obin28236 -> 0 bytes
-rw-r--r--intl/localealias.obin21032 -> 0 bytes
-rw-r--r--intl/po2tbl.sed60
-rw-r--r--intl/po2tbl.sed.in102
-rw-r--r--intl/textdomain.obin11772 -> 0 bytes
-rw-r--r--intl/xopen-msg.sed104
-rw-r--r--po/Makefile.in41
-rw-r--r--po/cs.gmobin55323 -> 56989 bytes
-rw-r--r--po/cs.po487
-rw-r--r--po/da.gmobin53733 -> 55340 bytes
-rw-r--r--po/da.po453
-rw-r--r--po/de.gmobin54500 -> 56612 bytes
-rw-r--r--po/de.po425
-rw-r--r--po/es.gmobin57195 -> 49704 bytes
-rw-r--r--po/es.po499
-rw-r--r--po/fr.gmobin55910 -> 48987 bytes
-rw-r--r--po/fr.po500
-rw-r--r--po/hu.gmobin55149 -> 56759 bytes
-rw-r--r--po/hu.po399
-rw-r--r--po/it.gmobin57704 -> 50679 bytes
-rw-r--r--po/it.po503
-rw-r--r--po/ja.gmobin58883 -> 51593 bytes
-rw-r--r--po/ja.po493
-rw-r--r--po/nl.gmobin52503 -> 53588 bytes
-rw-r--r--po/nl.po418
-rw-r--r--po/pl.gmobin55663 -> 56700 bytes
-rw-r--r--po/pl.po478
-rw-r--r--po/pt.gmobin55042 -> 48268 bytes
-rw-r--r--po/pt.po499
-rw-r--r--po/pt_BR.gmobin55068 -> 48284 bytes
-rw-r--r--po/pt_BR.po499
-rw-r--r--po/ro.gmobin55956 -> 49186 bytes
-rw-r--r--po/ro.po497
-rw-r--r--po/ru.gmobin73933 -> 75865 bytes
-rw-r--r--po/ru.po461
-rw-r--r--po/sk.gmobin55840 -> 49080 bytes
-rw-r--r--po/sk.po690
-rw-r--r--po/sl.gmobin25452 -> 55736 bytes
-rw-r--r--po/sl.po1490
-rw-r--r--po/sr.gmobin38188 -> 35623 bytes
-rw-r--r--po/sr.po481
-rw-r--r--po/sv.gmobin50029 -> 44519 bytes
-rw-r--r--po/sv.po486
-rw-r--r--po/tr.gmobin54453 -> 55479 bytes
-rw-r--r--po/tr.po454
-rw-r--r--po/vi.gmobin57588 -> 50663 bytes
-rw-r--r--po/vi.po516
-rw-r--r--po/xsane.pot337
-rw-r--r--po/zh.gmobin27344 -> 25207 bytes
-rw-r--r--po/zh.po459
-rw-r--r--src/.xsane-front-gtk.h.swpbin16384 -> 0 bytes
-rw-r--r--src/Makefile.in83
-rw-r--r--src/Makefile.in.orig46
-rw-r--r--src/xsane-back-gtk.c27
-rw-r--r--src/xsane-batch-scan.c20
-rw-r--r--src/xsane-batch-scan.h8
-rw-r--r--src/xsane-device-preferences.c140
-rw-r--r--src/xsane-email-project.c1912
-rw-r--r--src/xsane-email-project.h61
-rw-r--r--src/xsane-fax-project.c1312
-rw-r--r--src/xsane-fax-project.h78
-rw-r--r--src/xsane-front-gtk.c129
-rw-r--r--src/xsane-front-gtk.h6
-rw-r--r--src/xsane-gamma.c8
-rw-r--r--src/xsane-icons.c140
-rw-r--r--src/xsane-icons.h8
-rw-r--r--src/xsane-multipage-project.c1087
-rw-r--r--src/xsane-multipage-project.h58
-rw-r--r--src/xsane-preferences.c172
-rw-r--r--src/xsane-preferences.h35
-rw-r--r--src/xsane-preview.c59
-rw-r--r--src/xsane-save.c962
-rw-r--r--src/xsane-save.c.orig5801
-rw-r--r--src/xsane-save.h85
-rw-r--r--src/xsane-scan.c200
-rw-r--r--src/xsane-scan.h2
-rw-r--r--src/xsane-setup.c502
-rw-r--r--src/xsane-setup.h4
-rw-r--r--src/xsane-text.h146
-rw-r--r--src/xsane-viewer.c64
-rw-r--r--src/xsane-viewer.h5
-rw-r--r--src/xsane.c3882
-rw-r--r--src/xsane.h238
-rw-r--r--xsane.BUGS7
-rw-r--r--xsane.CHANGES83
-rw-r--r--xsane.NEWS9
-rw-r--r--xsane.TODO34
-rw-r--r--xsane.spec2
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
diff --git a/configure b/configure
index 61f8ea2..489de61 100755
--- a/configure
+++ b/configure
@@ -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">
-&nbsp;&nbsp;
-<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">
&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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">
&nbsp;&nbsp;
<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">
-&nbsp;&nbsp;
-<b>Scanmode:</b>
-<blockquote>
-Select scanmode, e.g.: color, grayscale, halftone, lineart.
-</blockquote>
-
-<img SRC="xsane-scansource.jpg" alt="scansource">
-&nbsp;&nbsp;
-<b>Scansource:</b>
-<blockquote>
-Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
-</blockquote>
-
-<img SRC="xsane-medium.jpg" alt="medium">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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 &lt IMAGE &gt 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 &lt IMAGE &gt 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">
-&nbsp;&nbsp;
-<b>Scanmode:</b>
-<blockquote>
-Select scanmode, e.g.: color, grayscale, halftone, lineart.
-</blockquote>
-
-<img SRC="xsane-scansource.jpg" alt="scansource">
-&nbsp;&nbsp;
-<b>Scansource:</b>
-<blockquote>
-Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
-</blockquote>
-
-<img SRC="xsane-medium.jpg" alt="medium">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<b>Scanmode:</b>
-<blockquote>
-Select scanmode, e.g.: color, grayscale, halftone, lineart.
-</blockquote>
-<img SRC="xsane-scansource.jpg" alt="scansource">
-&nbsp;&nbsp;
-<b>Scansource:</b>
-<blockquote>
-Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
-</blockquote>
-
-<img SRC="xsane-medium.jpg" alt="medium">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<b>Scanmode:</b>
-<blockquote>
-Select scanmode, e.g.: color, grayscale, halftone, lineart.
-</blockquote>
-
-<img SRC="xsane-scansource.jpg" alt="scansource">
-&nbsp;&nbsp;
-<b>Scansource:</b>
-<blockquote>
-Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
-</blockquote>
-
-<img SRC="xsane-medium.jpg" alt="medium">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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">
&nbsp;&nbsp;
<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">
+&nbsp;&nbsp;
+<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">
+&nbsp;&nbsp;
+<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">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<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">
+&nbsp;&nbsp;
+<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&nbsp;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">
&nbsp;&nbsp;
-<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">
&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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">
-&nbsp;&nbsp;
-<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
new file mode 100644
index 0000000..ac37574
--- /dev/null
+++ b/doc/xsane-adf-pages.jpg
Binary files differ
diff --git a/doc/xsane-color-correction.jpg b/doc/xsane-color-correction.jpg
new file mode 100644
index 0000000..cc36b49
--- /dev/null
+++ b/doc/xsane-color-correction.jpg
Binary files differ
diff --git a/doc/xsane-copy-number.jpg b/doc/xsane-copy-number.jpg
new file mode 100644
index 0000000..f0efe08
--- /dev/null
+++ b/doc/xsane-copy-number.jpg
Binary files differ
diff --git a/doc/xsane-copy.jpg b/doc/xsane-copy.jpg
index 1c0686d..de7d3a9 100644
--- a/doc/xsane-copy.jpg
+++ b/doc/xsane-copy.jpg
Binary files differ
diff --git a/doc/xsane-email-project.jpg b/doc/xsane-email-project.jpg
new file mode 100644
index 0000000..95dc81d
--- /dev/null
+++ b/doc/xsane-email-project.jpg
Binary files differ
diff --git a/doc/xsane-email.jpg b/doc/xsane-email.jpg
new file mode 100644
index 0000000..6b49349
--- /dev/null
+++ b/doc/xsane-email.jpg
Binary files differ
diff --git a/doc/xsane-fax-project.jpg b/doc/xsane-fax-project.jpg
index e89f398..53a30fa 100644
--- a/doc/xsane-fax-project.jpg
+++ b/doc/xsane-fax-project.jpg
Binary files differ
diff --git a/doc/xsane-fax.jpg b/doc/xsane-fax.jpg
index ae77294..0fc3f5f 100644
--- a/doc/xsane-fax.jpg
+++ b/doc/xsane-fax.jpg
Binary files differ
diff --git a/doc/xsane-gimp.jpg b/doc/xsane-gimp.jpg
index a0babb2..1e27f12 100644
--- a/doc/xsane-gimp.jpg
+++ b/doc/xsane-gimp.jpg
Binary files differ
diff --git a/doc/xsane-guide-1-decoration.jpg b/doc/xsane-guide-1-decoration.jpg
new file mode 100644
index 0000000..38596da
--- /dev/null
+++ b/doc/xsane-guide-1-decoration.jpg
Binary files differ
diff --git a/doc/xsane-guide-10-scan.jpg b/doc/xsane-guide-10-scan.jpg
new file mode 100644
index 0000000..4795695
--- /dev/null
+++ b/doc/xsane-guide-10-scan.jpg
Binary files differ
diff --git a/doc/xsane-guide-2-menu.jpg b/doc/xsane-guide-2-menu.jpg
new file mode 100644
index 0000000..b97abe0
--- /dev/null
+++ b/doc/xsane-guide-2-menu.jpg
Binary files differ
diff --git a/doc/xsane-guide-3-options.jpg b/doc/xsane-guide-3-options.jpg
new file mode 100644
index 0000000..d7fa764
--- /dev/null
+++ b/doc/xsane-guide-3-options.jpg
Binary files differ
diff --git a/doc/xsane-guide-4.jpg b/doc/xsane-guide-4.jpg
new file mode 100644
index 0000000..b9f3a0a
--- /dev/null
+++ b/doc/xsane-guide-4.jpg
Binary files differ
diff --git a/doc/xsane-guide-4a-adf-pages.jpg b/doc/xsane-guide-4a-adf-pages.jpg
new file mode 100644
index 0000000..d4a2e91
--- /dev/null
+++ b/doc/xsane-guide-4a-adf-pages.jpg
Binary files differ
diff --git a/doc/xsane-guide-4b-xsane-mode.jpg b/doc/xsane-guide-4b-xsane-mode.jpg
new file mode 100644
index 0000000..e4c6697
--- /dev/null
+++ b/doc/xsane-guide-4b-xsane-mode.jpg
Binary files differ
diff --git a/doc/xsane-guide-5-saving-options.jpg b/doc/xsane-guide-5-saving-options.jpg
new file mode 100644
index 0000000..3f2bee9
--- /dev/null
+++ b/doc/xsane-guide-5-saving-options.jpg
Binary files differ
diff --git a/doc/xsane-guide-6-scan-options.jpg b/doc/xsane-guide-6-scan-options.jpg
new file mode 100644
index 0000000..3de4839
--- /dev/null
+++ b/doc/xsane-guide-6-scan-options.jpg
Binary files differ
diff --git a/doc/xsane-guide-7-medium-selection.jpg b/doc/xsane-guide-7-medium-selection.jpg
new file mode 100644
index 0000000..5d6fe2a
--- /dev/null
+++ b/doc/xsane-guide-7-medium-selection.jpg
Binary files differ
diff --git a/doc/xsane-guide-8-resolution.jpg b/doc/xsane-guide-8-resolution.jpg
new file mode 100644
index 0000000..f6523d1
--- /dev/null
+++ b/doc/xsane-guide-8-resolution.jpg
Binary files differ
diff --git a/doc/xsane-guide-9-color-correction.jpg b/doc/xsane-guide-9-color-correction.jpg
new file mode 100644
index 0000000..71888ef
--- /dev/null
+++ b/doc/xsane-guide-9-color-correction.jpg
Binary files differ
diff --git a/doc/xsane-mail-project.jpg b/doc/xsane-mail-project.jpg
deleted file mode 100644
index ff8cd0a..0000000
--- a/doc/xsane-mail-project.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-mail.jpg b/doc/xsane-mail.jpg
deleted file mode 100644
index 93163d8..0000000
--- a/doc/xsane-mail.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-multipage-project.jpg b/doc/xsane-multipage-project.jpg
new file mode 100644
index 0000000..c5a65f3
--- /dev/null
+++ b/doc/xsane-multipage-project.jpg
Binary files differ
diff --git a/doc/xsane-multipage.jpg b/doc/xsane-multipage.jpg
new file mode 100644
index 0000000..bd8cd7b
--- /dev/null
+++ b/doc/xsane-multipage.jpg
Binary files differ
diff --git a/doc/xsane-save.jpg b/doc/xsane-save.jpg
index 994f633..ff22036 100644
--- a/doc/xsane-save.jpg
+++ b/doc/xsane-save.jpg
Binary files differ
diff --git a/doc/xsane-setup-copy.jpg b/doc/xsane-setup-copy.jpg
index 7f5cbca..c097868 100644
--- a/doc/xsane-setup-copy.jpg
+++ b/doc/xsane-setup-copy.jpg
Binary files differ
diff --git a/doc/xsane-setup-display.jpg b/doc/xsane-setup-display.jpg
index 6997540..ae372f6 100644
--- a/doc/xsane-setup-display.jpg
+++ b/doc/xsane-setup-display.jpg
Binary files differ
diff --git a/doc/xsane-setup-email.jpg b/doc/xsane-setup-email.jpg
new file mode 100644
index 0000000..dbc876f
--- /dev/null
+++ b/doc/xsane-setup-email.jpg
Binary files differ
diff --git a/doc/xsane-setup-enhancement.jpg b/doc/xsane-setup-enhancement.jpg
index 2a2e67d..ade9c2f 100644
--- a/doc/xsane-setup-enhancement.jpg
+++ b/doc/xsane-setup-enhancement.jpg
Binary files differ
diff --git a/doc/xsane-setup-fax.jpg b/doc/xsane-setup-fax.jpg
index 113e950..984f629 100644
--- a/doc/xsane-setup-fax.jpg
+++ b/doc/xsane-setup-fax.jpg
Binary files differ
diff --git a/doc/xsane-setup-filetype.jpg b/doc/xsane-setup-filetype.jpg
new file mode 100644
index 0000000..c5bf70e
--- /dev/null
+++ b/doc/xsane-setup-filetype.jpg
Binary files differ
diff --git a/doc/xsane-setup-image.jpg b/doc/xsane-setup-image.jpg
deleted file mode 100644
index 2476862..0000000
--- a/doc/xsane-setup-image.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-setup-mail.jpg b/doc/xsane-setup-mail.jpg
deleted file mode 100644
index 7c6f176..0000000
--- a/doc/xsane-setup-mail.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-setup-ocr.jpg b/doc/xsane-setup-ocr.jpg
index 051ad42..df64bcc 100644
--- a/doc/xsane-setup-ocr.jpg
+++ b/doc/xsane-setup-ocr.jpg
Binary files differ
diff --git a/doc/xsane-setup-save.jpg b/doc/xsane-setup-save.jpg
index 556a025..a9dcf4b 100644
--- a/doc/xsane-setup-save.jpg
+++ b/doc/xsane-setup-save.jpg
Binary files differ
diff --git a/doc/xsane-step.jpg b/doc/xsane-step.jpg
new file mode 100644
index 0000000..3dc7e5c
--- /dev/null
+++ b/doc/xsane-step.jpg
Binary files differ
diff --git a/doc/xsane-target.jpg b/doc/xsane-target.jpg
new file mode 100644
index 0000000..ca74b5e
--- /dev/null
+++ b/doc/xsane-target.jpg
Binary files differ
diff --git a/doc/xsane-viewer.jpg b/doc/xsane-viewer.jpg
index 680a8f8..edf6cc1 100644
--- a/doc/xsane-viewer.jpg
+++ b/doc/xsane-viewer.jpg
Binary files differ
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
deleted file mode 100644
index c39ad91..0000000
--- a/intl/bindtextdom.o
+++ /dev/null
Binary files differ
diff --git a/intl/dcgettext.o b/intl/dcgettext.o
deleted file mode 100644
index 98629ad..0000000
--- a/intl/dcgettext.o
+++ /dev/null
Binary files differ
diff --git a/intl/dgettext.o b/intl/dgettext.o
deleted file mode 100644
index a7c7eef..0000000
--- a/intl/dgettext.o
+++ /dev/null
Binary files differ
diff --git a/intl/explodename.o b/intl/explodename.o
deleted file mode 100644
index 99ece7e..0000000
--- a/intl/explodename.o
+++ /dev/null
Binary files differ
diff --git a/intl/finddomain.o b/intl/finddomain.o
deleted file mode 100644
index 86b783b..0000000
--- a/intl/finddomain.o
+++ /dev/null
Binary files differ
diff --git a/intl/gettext.o b/intl/gettext.o
deleted file mode 100644
index b8c7d46..0000000
--- a/intl/gettext.o
+++ /dev/null
Binary files differ
diff --git a/intl/intl-compat.o b/intl/intl-compat.o
deleted file mode 100644
index 29fb312..0000000
--- a/intl/intl-compat.o
+++ /dev/null
Binary files differ
diff --git a/intl/l10nflist.o b/intl/l10nflist.o
deleted file mode 100644
index c3b96d3..0000000
--- a/intl/l10nflist.o
+++ /dev/null
Binary files differ
diff --git a/intl/libintl.a b/intl/libintl.a
deleted file mode 100644
index 7837b76..0000000
--- a/intl/libintl.a
+++ /dev/null
Binary files differ
diff --git a/intl/loadmsgcat.o b/intl/loadmsgcat.o
deleted file mode 100644
index 8c676cc..0000000
--- a/intl/loadmsgcat.o
+++ /dev/null
Binary files differ
diff --git a/intl/localealias.o b/intl/localealias.o
deleted file mode 100644
index 563801e..0000000
--- a/intl/localealias.o
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 795653e..0000000
--- a/intl/textdomain.o
+++ /dev/null
Binary files differ
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
diff --git a/po/cs.gmo b/po/cs.gmo
index b29c55a..c95e343 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 9d07a80..f2f6a8f 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -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"
diff --git a/po/da.gmo b/po/da.gmo
index bc1f827..79ae18a 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 793b5df..f96fde0 100644
--- a/po/da.po
+++ b/po/da.po
@@ -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"
diff --git a/po/de.gmo b/po/de.gmo
index a41c727..0eaec78 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 6d02d89..97820fe 100644
--- a/po/de.po
+++ b/po/de.po
@@ -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"
diff --git a/po/es.gmo b/po/es.gmo
index 63468c0..721476c 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 85ebf5c..ee2997b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -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"
diff --git a/po/fr.gmo b/po/fr.gmo
index ca4d919..c81ecee 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 9993b1a..043e34b 100644
--- a/po/fr.po
+++ b/po/fr.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: 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"
diff --git a/po/hu.gmo b/po/hu.gmo
index fb21941..15d2d77 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index f18c163..9cb952c 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -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"
diff --git a/po/it.gmo b/po/it.gmo
index 9cf78b9..062700c 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index d65bf35..fd57d21 100644
--- a/po/it.po
+++ b/po/it.po
@@ -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"
diff --git a/po/ja.gmo b/po/ja.gmo
index db78e21..3a4dd0b 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index f286028..e2d7130 100644
--- a/po/ja.po
+++ b/po/ja.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-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 "ăˇăĽă«"
diff --git a/po/nl.gmo b/po/nl.gmo
index 0b3fe91..28ea8f8 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index a83935d..071b06d 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -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:"
diff --git a/po/pl.gmo b/po/pl.gmo
index fa6b910..1fbebfd 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 14f348a..63f3dc6 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -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:"
diff --git a/po/pt.gmo b/po/pt.gmo
index d79ff5a..86b35cc 100644
--- a/po/pt.gmo
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
index 926b8d3..6a0e448 100644
--- a/po/pt.po
+++ b/po/pt.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: 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
index bda227b..3579543 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
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"
diff --git a/po/ro.gmo b/po/ro.gmo
index 6f6f2a9..c9cb1d0 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index eadf879..8fd7476 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -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Ä"
diff --git a/po/ru.gmo b/po/ru.gmo
index b561f9d..8238e46 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index c9368cb..a4486c8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -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 ""
+#~ "Невозможно Ńгенерировать название файла для предварительного Ńканирования"
diff --git a/po/sk.gmo b/po/sk.gmo
index 0ee05a9..74a4d0d 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 1c76dcf..e171c31 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -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"
diff --git a/po/sl.gmo b/po/sl.gmo
index 71abdca..f676a52 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index b24a82c..f4c3629 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -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"
diff --git a/po/sr.gmo b/po/sr.gmo
index a6ad24c..7686b4e 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index d6dc583..ac3e4b1 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -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:"
diff --git a/po/sv.gmo b/po/sv.gmo
index 0dced0d..6e28084 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index c45c243..bdb2c50 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -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"
diff --git a/po/tr.gmo b/po/tr.gmo
index 79186f0..0b5d922 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 3c065eb..3c9d7e1 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -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:"
diff --git a/po/vi.gmo b/po/vi.gmo
index 2716a57..148cb56 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 423137d..69b4456 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -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
diff --git a/po/zh.gmo b/po/zh.gmo
index 6160f73..609730e 100644
--- a/po/zh.gmo
+++ b/po/zh.gmo
Binary files differ
diff --git a/po/zh.po b/po/zh.po
index 0651204..071cf0a 100644
--- a/po/zh.po
+++ b/po/zh.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: 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
deleted file mode 100644
index d971345..0000000
--- a/src/.xsane-front-gtk.h.swp
+++ /dev/null
Binary files differ
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(&region, 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(&region, 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(&region, 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(&region, 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(&region, 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(&region, 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;
diff --git a/xsane.BUGS b/xsane.BUGS
index ed2710d..c924ed0 100644
--- a/xsane.BUGS
+++ b/xsane.BUGS
@@ -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
diff --git a/xsane.NEWS b/xsane.NEWS
index 6defa63..ad6a494 100644
--- a/xsane.NEWS
+++ b/xsane.NEWS
@@ -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.
diff --git a/xsane.TODO b/xsane.TODO
index 9c7174d..03b1128 100644
--- a/xsane.TODO
+++ b/xsane.TODO
@@ -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, .... ???
diff --git a/xsane.spec b/xsane.spec
index 559241b..145c492 100644
--- a/xsane.spec
+++ b/xsane.spec
@@ -1,5 +1,5 @@
%define name xsane
-%define version 0.98b
+%define version 0.99
%define release 1
%define prefix /usr