Some bug fixes of the last release
authorWerner Koch <wk@gnupg.org>
Tue, 10 Nov 1998 12:59:59 +0000 (12:59 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 10 Nov 1998 12:59:59 +0000 (12:59 +0000)
52 files changed:
ABOUT-NLS
ChangeLog
NEWS
PROJECTS
THANKS
TODO
VERSION
checks/genkey1024.test
checks/run-gpg.patterns
cipher/des.c
cipher/md.c
cipher/rand-dummy.c
configure.in
doc/HACKING
doc/gpg.1pod
g10/ChangeLog
g10/encode.c
g10/encr-data.c
g10/export.c
g10/g10.c
g10/getkey.c
g10/keyedit.c
g10/main.h
g10/mainproc.c
g10/misc.c
g10/options.skel
g10/parse-packet.c
g10/passphrase.c
g10/pkclist.c
g10/plaintext.c
g10/pubkey-enc.c
g10/revoke.c
g10/ringedit.c
g10/seckey-cert.c
g10/sig-check.c
g10/sign.c
g10/skclist.c
g10/status.c
g10/status.h
g10/tdbio.c
g10/trustdb.c
include/util.h
po/ChangeLog
po/POTFILES.in
po/de.po
po/en.po
po/fr.po
po/it.po
po/ru.po
util/ChangeLog
util/logger.c
util/strgutil.c

index 28d38c7..249a4b5 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -137,8 +137,7 @@ Each translation team has its own mailing list, courtesy of Linux
 International.  You may reach your translation team at the address
 `LL@li.org', replacing LL by the two-letter ISO 639 code for your
 language.  Language codes are *not* the same as the country codes given
-in ISO 3166.  The following translation teams exist, as of December
-1997:
+in ISO 3166.  The following translation teams exist, as of August 1998:
 
      Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
      Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
@@ -173,42 +172,79 @@ Available Packages
 ==================
 
    Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of December
-1997.  The matrix shows, in regard of each package, for which languages
+matrix shows the current state of internationalization, as of August
+1998.  The matrix shows, in regard of each package, for which languages
 PO files have been submitted to translation coordination.
 
-     Ready PO files    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
-                     .----------------------------------------------------.
-     bash            |       []          []          []                   |  3
-     bison           |       []          []          []                   |  3
-     clisp           |       [] [] []    []                               |  4
-     cpio            |       []    []    []       [] []    []             |  6
-     diffutils       |       []    []    []                []          [] |  5
-     enscript        |       []    [] [] []          []             []    |  6
-     fileutils       | []    []    []    []       [] []    [] []    [] [] | 10
-     findutils       |       []    []    [] []    [] []    []    []    [] |  9
-     flex            |             []    []       []                   [] |  4
-     gcal            |       []          []          []    []          [] |  5
-     gettext         |    [] []    []    []       [] [] [] [] []    [] [] | 12
-     grep            |       []    []    []       [] [] [] []    [] [] [] | 10
-     hello           |    [] []    []    []       [] [] [] [] []    [] [] | 11
-     id-utils        |       []          []                []             |  3
-     indent          |    [] []                   []       []    []       |  5
-     libc            |       []    []    []       [] []    []          [] |  7
-     m4              |       []          []    []    []          []    [] |  6
-     make            |       []    []    []       [] []    []             |  6
-     music           |                   []                []             |  2
-     ptx             |       []    []    []          [] [] [] []       [] |  8
-     recode          |    [] []    []    []          []    [] []    [] [] |  9
-     sh-utils        |       []    []    []          [] [] [] []       [] |  8
-     sharutils       | []    []    []    []          []                [] |  6
-     tar             | []    []          [] []    [] [] [] [] []    [] [] | 11
-     texinfo         | []    []          []                               |  3
-     textutils       | []    []    []    []       [] [] [] []          [] |  9
-     wdiff           | []    []    []    []          [] [] []          [] |  8
-                     `----------------------------------------------------'
-       17 languages    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
-       27 packages      6  4 25  1 18  1 26  2  1 12 20  9 19  7  4  7 17  179
+     Ready PO files    cs da de el en es fi fr it
+                     .----------------------------.
+     bash            |       []             []    |
+     bison           |       []             []    |
+     clisp           |       []    [] []    []    |
+     cpio            |       []       []    []    |
+     diffutils       |       []       []    []    |
+     enscript        |       []       [] [] []    |
+     fileutils       | []    []       []    []    |
+     findutils       |       []       []    [] [] |
+     flex            |                []    []    |
+     gcal            |       []             []    |
+     gettext         |    [] [] []    []    []    |
+     grep            |       [] []    []    []    |
+     hello           |    [] []       []    [] [] |
+     id-utils        |       []             []    |
+     indent          |    [] []                   |
+     libc            |       []       []    []    |
+     m4              |       []             []    |
+     make            |       []       []    []    |
+     music           |                      []    |
+     ptx             |       []       []    []    |
+     recode          |    [] []       []    []    |
+     sed             |                            |
+     sh-utils        |       []       []    []    |
+     sharutils       | []    [] []    []    []    |
+     tar             | []    []             [] [] |
+     texinfo         | []    []             []    |
+     textutils       | []    []       []    []    |
+     wdiff           | []    []       []    []    |
+     wget            | []    [] []             [] |
+                     `----------------------------'
+                       cs da de el en es fi fr it
+                        7  4 26  4  1 18  1 26  4
+     
+                       ja ko nl no pl pt ru sl sv
+                     .----------------------------.
+     bash            |       []                   |  3
+     bison           |       []                   |  3
+     clisp           |                            |  4
+     cpio            |    [] []    []             |  6
+     diffutils       |             []          [] |  5
+     enscript        |       []             []    |  6
+     fileutils       |    [] []    [] [] [] [] [] | 11
+     findutils       |    [] []    []    []    [] |  9
+     flex            |    []                   [] |  4
+     gcal            |       []    []          [] |  5
+     gettext         |    [] [] [] [] []    [] [] | 13
+     grep            |    [] [] [] []    [] [] [] | 11
+     hello           |    [] [] [] [] []    [] [] | 12
+     id-utils        |             []             |  3
+     indent          |    []       []    []       |  5
+     libc            |    [] [] [] []          [] |  8
+     m4              | []    []          []    [] |  6
+     make            |    [] []    []             |  6
+     music           |             []             |  2
+     ptx             |       [] [] [] []       [] |  8
+     recode          |       []    [] []    [] [] |  9
+     sed             |                            |  0
+     sh-utils        |       [] [] [] []       [] |  8
+     sharutils       |       []                [] |  7
+     tar             |    [] [] [] [] []    [] [] | 11
+     texinfo         |       []                   |  4
+     textutils       |    [] [] [] []          [] |  9
+     wdiff           |       [] [] []          [] |  8
+     wget            |          []                |  5
+                     `----------------------------'
+       18 teams        ja ko nl no pl pt ru sl sv
+       29 domains       1 12 21 11 19  7  5  7 17  191
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -221,6 +257,23 @@ distributed as such by its maintainer.  There might be an observable
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If December 1997 seems to be old, you may fetch a more recent copy
-of this `ABOUT-NLS' file on most GNU archive sites.
+   If August 1998 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites.
+
+Using `gettext' in new packages
+===============================
+
+   If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package.  Of course the GNU Public License applies to your sources from
+then if you include `gettext' directly in your distribution on but
+since you are writing free software anyway this is no restriction.
+
+   Once the sources are change appropriately and the setup can handle to
+use of `gettext' the only thing missing are the translations.  The Free
+Translation Project is also available for packages which are not
+developed inside the GNU project.  Therefore the information given above
+applies also for every other Free Software Project.  Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
 
index 479a2bb..4fd60bb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Nov 10 13:44:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * ABOUT-NLS: New
+       * configure-in (AC_REVISION): New.
+
 Sun Nov  8 18:20:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * VERSION: Set to 0.4.3
diff --git a/NEWS b/NEWS
index bcc9f4b..a860bdc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+This is NOT a released version!
+-------------------------------
+
+    * Add option --charset to support "koi8-r" encoding of user ids.
+      (Not yet tested).
+
+
+
 Noteworthy changes in version 0.4.3
 -----------------------------------
 
index 47ed1eb..842d2a3 100644 (file)
--- a/PROJECTS
+++ b/PROJECTS
@@ -1,4 +1,12 @@
 
+  * Urko Lusa <ulusa@lacueva.ddns.org> is working on es.po
+
+
+  * Check if an object (a message, detached sign, public key, or whatever)
+    is signed by definite user, i.e. define user
+    (userid, or any other unique identification) on command line.
+
+
   * abstraction of the MPI
 
   * Add a way to override the current cipher/md implementations
diff --git a/THANKS b/THANKS
index be08dde..123b60b 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -5,9 +5,11 @@ errors.
 
 Anand Kumria           wildfire@progsoc.uts.edu.au
 Ariel T Glenn          ariel@columbia.edu
+Bryan Fullerton        bryanf@samurai.com
 Brian Moore            bem@cmc.net
 Brian Warner           warner@lothar.com
 Caskey L. Dickson      caskey@technocage.com
+Cees van de Griend     cees-list@griend.xs4all.nl
 Charles Levert         charles@comm.polymtl.ca
 Christian von Roques   roques@pond.sub.org
 Christopher Oliver     oliver@fritz.traverse.net
diff --git a/TODO b/TODO
index 8e2d238..b0b835a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,23 +1,23 @@
 
+    * Update the keyring on ftp.ggug.de
+
+    * support for mpi/powerpc  split is still combined or whatever
+
+    * add a note, that gettext 10.35 is needed (for gettext) - and install
+      it on tobold.
+
     * use zlib 1.1.13 to avoid a bug with 13 bit windows
+      but there are more problems with large files
 
     * FreeBSD:
        #define USE_DYNAMIC_LINKING
        #define HAVE_DL_DLOPEN
        and the ld option -export-dynamic.
 
-    *
-     Well, there was one thing extra I needed to do.  While configure found the
-     gdbm library, it didn't add the path the the include file list.  I had to
-     re-run configure with CPPFLAGS set:
-
-     env CPPFLAGS='-I/usr/local/include' configure ...
-
-
     * clearsig: keep lineendings as they are. Remember that trailings
       blanks are not hashed.
 
-    * Fix ;) revocation and expire stuff.
+    * Check revocation and expire stuff.
 
     * check preferences (cipher and compress)
 
@@ -26,9 +26,6 @@
 
     * should we flush the getkey.c caches while doing an import?
 
-    * prefer a type 16 subkey for encryption because pgp cannot handle
-      type 20?
-
     * The critical bit of signature subpackets is not yet supported; i.e.
       it is ignored.
 
diff --git a/VERSION b/VERSION
index 17b2ccd..feb9497 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.3
+0.4.3a
index 2235549..b67626d 100755 (executable)
@@ -10,6 +10,8 @@ else
   exit 0
 fi
 
+LANG=
+LANGUAGE=
 
 
 expect - <<EOF
@@ -84,13 +86,13 @@ expect {
    -exact "o\r
 \r                                                     \rYou need a Passphrase to protect your secret key.\r
 \r
-Enter pass phrase: " { sleep 1; send -- "abc\r" }
+Enter passphrase: " { sleep 1; send -- "abc\r" }
     timeout { exit 1 } }
 expect {
-  -ex "\r                   \rRepeat pass phrase: " { sleep 1; send -- "abc\r" }
+  -ex "\r                  \rRepeat passphrase: " { sleep 1; send -- "abc\r" }
     timeout { exit 1 } }
 expect { 
-  -ex "\r                    \rWe need to generate a lot of random bytes. It is a good idea to perform\r
+  -ex "\r                   \rWe need to generate a lot of random bytes. It is a good idea to perform\r
 some other action (work in another window, move the mouse, utilize the\r
 network and the disks) during the prime generation; this gives the random\r
 number generator a better chance to gain enough entropy.\r" {}
index 5bb349c..8bf1af8 100644 (file)
@@ -1,7 +1,7 @@
 gpg: Good signature from
 gpg: Signature made
-gpg: note: cipher algorithm 3 not found in preferences
-gpg: note: cipher algorithm 4 not found in preferences
-gpg: note: secret key 2E5FA4F4 is NOT protected.
-gpg: note: secret key 439F02CA is NOT protected.
-gpg: warning: using insecure random number generator
+gpg: NOTE: cipher algorithm 3 not found in preferences
+gpg: NOTE: cipher algorithm 4 not found in preferences
+gpg: NOTE: secret key 2E5FA4F4 is NOT protected.
+gpg: NOTE: secret key 439F02CA is NOT protected.
+gpg: WARNING: using insecure random number generator
index ef8ce7d..f730568 100644 (file)
@@ -5,8 +5,8 @@
  *
  * According to the definition of DES in FIPS PUB 46-2 from December 1993.
  * For a description of triple encryption, see:
- *   Bruce Schneier: Applied Cryptography. Second Edition. John Wiley & Sons, 1996
- *   ISBN 0-471-12845-7. Pages 358 ff.
+ *   Bruce Schneier: Applied Cryptography. Second Edition.
+ *   John Wiley & Sons, 1996. ISBN 0-471-12845-7. Pages 358 ff.
  *
  * This file is part of GNUPG.
  *
index 819cc1d..9a2b179 100644 (file)
@@ -420,7 +420,7 @@ md_get_algo( MD_HANDLE a )
 
     if( (r=a->list) ) {
        if( r->next )
-           log_error("warning: more than algorithm in md_get_algo()\n");
+           log_error("WARNING: more than algorithm in md_get_algo()\n");
        return r->algo;
     }
     return 0;
@@ -440,7 +440,7 @@ md_digest_length( int algo )
                return r->mdlen;
        }
     } while( !r && load_digest_modules() );
-    log_error("warning: no length for md algo %d\n", algo);
+    log_error("WARNING: no length for md algo %d\n", algo);
     return 0;
 }
 
@@ -463,7 +463,7 @@ md_asn_oid( int algo, size_t *asnlen, size_t *mdlen )
            }
        }
     } while( !r && load_digest_modules() );
-    log_bug("warning: no asn for md algo %d\n", algo);
+    log_bug("no asn for md algo %d\n", algo);
     return NULL;
 }
 
index 2cb275b..093108b 100644 (file)
@@ -109,7 +109,7 @@ read_random_source( byte *buffer, size_t length, int level )
     static int initialized=0;
 
     if( !initialized ) {
-       log_info(_("warning: using insecure random number generator!!\n"));
+       log_info(_("WARNING: using insecure random number generator!!\n"));
        tty_printf(_("The random number generator is only a kludge to let\n"
                   "it compile - it is in no way a strong RNG!\n\n"
                   "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n\n"));
index 29a4395..e7fec0c 100644 (file)
@@ -2,6 +2,7 @@ dnl
 dnl Configure template for GNUPG
 dnl
 dnl (Process this file with autoconf to produce a configure script.)
+AC_REVISION($Revision$)dnl
 
 dnl Must reset CDPATH so that bash's cd does not print to stdout
 CDPATH=
index 4ae7e6e..f309284 100644 (file)
@@ -39,6 +39,8 @@ RFCs
 1423  Privacy Enhancement for Internet Electronic Mail:
       Part III: Algorithms, Modes, and Identifiers.
 
+1489  Registration of a Cyrillic Character Set.
+
 1750  Randomness Recommendations for Security.
 
 1991  PGP Message Exchange Formats.
@@ -47,6 +49,8 @@ RFCs
 
 2144  The CAST-128 Encryption Algorithm.
 
+2279  UTF-8, a transformation format of ISO 10646.
+
 
 
 
index 56d802b..aacefcb 100644 (file)
@@ -293,6 +293,13 @@ B<--homedir> I<dir>
     not make sense to use this in a options file. This
     also overrides the environment variable C<GNUPGHOME>.
 
+B<--charset> I<name>
+    Set the name of the native character set.  This is used
+    to convert some strings to proper UTF-8 encoding.
+    Valid values for I<name> are:
+      B<iso-8859-1>  This is the default.
+      B<koi8-r>      The usual Russian set (rfc1489).
+
 B<--options> I<file>
     Read options from I<file> and do not try to read
     them from the default options file in the homedir
index fb18fc7..af6daf0 100644 (file)
@@ -1,3 +1,27 @@
+Tue Nov 10 10:08:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * g10.c (g10_exit): Now looks at the new g10_errors_seen.
+       * mainproc.c (check_sig_and_print): Sets g10_errors_seen.
+
+       * *.c : i18n many more strings.
+
+       * ringedit.c (locate_keyblock_by_keyid): Add HAVE_LIBGDBM
+       (locate_keyblock_by_fpr): Ditto.
+
+       * g10.c (main): removed unsused "int errors".
+       (main): Add new option --charset.
+
+       * g10.c (main): special message for the unix newbie.
+
+Mon Nov  9 07:17:42 1998  Werner Koch  <werner.koch@guug.de>
+
+       * getkey.c (finish_lookup): Kludge to prefere algo 16.
+
+       * trustdb.c (new_lid_table): Clear cached item.
+
+       * status.c (cpr_get_utf8): New.
+       * pkclist.c (build_pk_list): Uses this.
+
 Sun Nov  8 17:20:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * mainproc.c (check_sig_and_print): Why did I use strlen()-1
index 371a237..b0cdd7e 100644 (file)
@@ -152,7 +152,7 @@ encode_simple( const char *filename, int mode )
     }
     if( filename ) {
        if( !(filesize = iobuf_get_filelength(inp)) )
-           log_info(_("%s: warning: empty file\n"), filename );
+           log_info(_("%s: WARNING: empty file\n"), filename );
     }
     else
        filesize = 0; /* stdin */
@@ -266,7 +266,7 @@ encode_crypt( const char *filename, STRLIST remusr )
     }
     if( filename ) {
        if( !(filesize = iobuf_get_filelength(inp)) )
-           log_info(_("%s: warning: empty file\n"), filename );
+           log_info(_("%s: WARNING: empty file\n"), filename );
     }
     else
        filesize = 0; /* stdin */
index c9fca4d..e5338c7 100644 (file)
@@ -56,9 +56,9 @@ decrypt_data( PKT_encrypted *ed, DEK *dek )
     if( opt.verbose ) {
        const char *s = cipher_algo_to_string( dek->algo );
        if( s )
-           log_info("%s encrypted data\n", s );
+           log_info(_("%s encrypted data\n"), s );
        else
-           log_info("encrypted with unknown algorithm %d\n", dek->algo );
+           log_info(_("encrypted with unknown algorithm %d\n"), dek->algo );
     }
     if( (rc=check_cipher_algo(dek->algo)) )
        return rc;
@@ -71,7 +71,7 @@ decrypt_data( PKT_encrypted *ed, DEK *dek )
     dfx.cipher_hd = cipher_open( dek->algo, CIPHER_MODE_AUTO_CFB, 1 );
     rc = cipher_setkey( dfx.cipher_hd, dek->key, dek->keylen );
     if( rc == G10ERR_WEAK_KEY )
-       log_info(_("Warning: Message was encrypted with "
+       log_info(_("WARNING: Message was encrypted with "
                    "a weak key in the symmetric cipher.\n"));
     else if( rc )
        log_error("key setup failed: %s\n", g10_errstr(rc) );
index 637f675..ff003cc 100644 (file)
@@ -32,6 +32,7 @@
 #include "memory.h"
 #include "util.h"
 #include "main.h"
+#include "i18n.h"
 
 static int do_export( STRLIST users, int secret );
 
@@ -158,7 +159,7 @@ do_export( STRLIST users, int secret )
     else
        iobuf_close(out);
     if( !any )
-       log_info("warning: nothing exported\n");
+       log_info(_("WARNING: nothing exported\n"));
     return rc;
 }
 
index 9d4f20d..7deb3da 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -144,6 +144,7 @@ enum cmd_and_opt_values { aNull = 0,
     oS2KMode,
     oS2KDigest,
     oS2KCipher,
+    oCharset,
 aTest };
 
 
@@ -220,6 +221,7 @@ static ARGPARSE_OPTS opts[] = {
     { oKeyring, "keyring"   ,2, N_("add this keyring to the list of keyrings")},
     { oSecretKeyring, "secret-keyring" ,2, N_("add this secret keyring to the list")},
     { oDefaultKey, "default-key" ,2, N_("|NAME|use NAME as default secret key")},
+    { oCharset, "charset"   , 2, N_("|NAME| set terminal charset to NAME") },
     { oOptions, "options"   , 2, N_("read options from file")},
 
     { oDebug, "debug"     ,4|16, N_("set debugging flags")},
@@ -295,6 +297,9 @@ static ARGPARSE_OPTS opts[] = {
 
 
 
+int g10_errors_seen = 0;
+
+
 static int maybe_setuid = 1;
 
 static char *build_list( const char *text,
@@ -488,7 +493,6 @@ main( int argc, char **argv )
     unsigned configlineno;
     int parse_debug = 0;
     int default_config =1;
-    int errors=0;
     int default_keyring = 1;
     int greeting = 1;
     enum cmd_and_opt_values cmd = 0;
@@ -599,7 +603,7 @@ main( int argc, char **argv )
        if( !configfp ) {
            if( default_config ) {
                if( parse_debug )
-                   log_info(_("note: no default option file '%s'\n"),
+                   log_info(_("NOTE: no default option file '%s'\n"),
                                                            configname );
            }
            else {
@@ -755,8 +759,13 @@ main( int argc, char **argv )
          case oNoSecmemWarn:
            break;  /* dummies */
        #endif
+         case oCharset:
+           if( set_native_charset( pargs.r.ret_str ) )
+               log_error(_("%s is not a valid character set\n"),
+                                                   pargs.r.ret_str);
+           break;
 
-         default : errors++; pargs.err = configfp? 1:2; break;
+         default : pargs.err = configfp? 1:2; break;
        }
     }
     if( configfp ) {
@@ -812,7 +821,7 @@ main( int argc, char **argv )
        log_error(_("marginals-needed must be greater than 1\n"));
     switch( opt.s2k_mode ) {
       case 0:
-       log_info(_("note: simple S2K mode (0) is strongly discouraged\n"));
+       log_info(_("NOTE: simple S2K mode (0) is strongly discouraged\n"));
        break;
       case 1: case 3: break;
       default:
@@ -1228,9 +1237,15 @@ main( int argc, char **argv )
        /* fixme: g10maint should do regular maintenace tasks here */
        if( argc > 1 )
            wrong_args(_("[filename]"));
+       /* Issue some output for the unix newbie */
+       if( !fname && !opt.outfile && isatty( fileno(stdin) )
+               && isatty( fileno(stdout) ) && isatty( fileno(stderr) ) )
+           log_info(_("Go ahead and type your message ...\n"));
+
        if( !(a = iobuf_open(fname)) )
            log_error(_("can't open '%s'\n"), print_fname_stdin(fname));
        else {
+
            if( !opt.no_armor ) {
                if( use_armor_filter( a ) ) {
                    memset( &afx, 0, sizeof afx);
@@ -1263,7 +1278,8 @@ g10_exit( int rc )
     if( opt.debug )
        secmem_dump_stats();
     secmem_term();
-    rc = rc? rc : log_get_errorcount(0)? 2:0;
+    rc = rc? rc : log_get_errorcount(0)? 2 :
+                       g10_errors_seen? 1 : 0;
     /*write_status( STATUS_LEAVE );*/
     exit(rc );
 }
index e322d60..dcc90a5 100644 (file)
@@ -160,7 +160,7 @@ cache_public_key( PKT_public_key *pk )
     if( pk_cache_entries >= MAX_PK_CACHE_ENTRIES ) {
        /* fixme: use another algorithm to free some cache slots */
        pk_cache_disabled=1;
-       log_info("too many entries in pk cache - disabled\n");
+       log_info(_("too many entries in pk cache - disabled\n"));
        return;
     }
     pk_cache_entries++;
@@ -258,7 +258,7 @@ get_pubkey( PKT_public_key *pk, u32 *keyid )
        ;
     else if( ++unk_cache_entries > MAX_UNK_CACHE_ENTRIES ) {
        unk_cache_disabled = 1;
-       log_info("too many entries in unk cache - disabled\n");
+       log_info(_("too many entries in unk cache - disabled\n"));
     }
     else {
        keyid_list_t kl;
@@ -937,12 +937,29 @@ finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash,
            /* if the usage is not correct, try to use a subkey */
            KBNODE save_k = k;
 
-           for( ; k; k = k->next ) {
-               if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY
-                   && !check_pubkey_algo2(
-                           k->pkt->pkt.public_key->pubkey_algo,
-                                            pk->pubkey_usage ) )
-                   break;
+           k = NULL;
+           /* kludge for pgp 5: which doesn't accept type 20:
+            * try to use a type 16 subkey instead */
+           if( pk->pubkey_usage == PUBKEY_USAGE_ENC ) {
+               for( k = save_k; k; k = k->next ) {
+                   if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY
+                       && k->pkt->pkt.public_key->pubkey_algo
+                           == PUBKEY_ALGO_ELGAMAL_E
+                       && !check_pubkey_algo2(
+                               k->pkt->pkt.public_key->pubkey_algo,
+                                                pk->pubkey_usage ) )
+                       break;
+               }
+           }
+
+           if( !k ) {
+               for(k = save_k ; k; k = k->next ) {
+                   if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY
+                       && !check_pubkey_algo2(
+                               k->pkt->pkt.public_key->pubkey_algo,
+                                                pk->pubkey_usage ) )
+                       break;
+               }
            }
            if( !k )
                k = save_k;
index 17838dc..2d3a0d0 100644 (file)
@@ -451,7 +451,8 @@ fix_keyblock( KBNODE keyblock )
            if( subkey ) {
                PKT_signature *sig = node->pkt->pkt.signature;
                if( sig->sig_class >= 0x10 && sig->sig_class <= 0x13 ) {
-                   log_info("moving a key signature to the correct place\n");
+                   log_info(_(
+                       "moving a key signature to the correct place\n"));
                    last->next = node->next;
                    node->next = subkey->next;
                    subkey->next = node;
index 5df7901..b950614 100644 (file)
@@ -38,6 +38,8 @@ typedef struct {
 
 
 /*-- g10.c --*/
+extern int g10_errors_seen;
+
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
   void g10_exit(int rc) __attribute__ ((noreturn));
 #else
index f12fae0..c857874 100644 (file)
@@ -195,7 +195,7 @@ proc_pubkey_enc( CTX c, PACKET *pkt )
        ;
     else if( !result ) {
        if( opt.verbose > 1 )
-           log_info( "pubkey_enc packet: Good DEK\n" );
+           log_info( _("public key encrypted data: Good DEK\n") );
     }
     else {
        log_error(_("public key decryption failed: %s\n"), g10_errstr(result));
@@ -225,7 +225,7 @@ proc_encrypted( CTX c, PACKET *pkt )
        ;
     else if( !result ) {
        if( opt.verbose > 1 )
-           log_info("decryption okay\n");
+           log_info(_("decryption okay\n"));
     }
     else {
        log_error(_("decryption failed: %s\n"), g10_errstr(result));
@@ -245,9 +245,9 @@ proc_plaintext( CTX c, PACKET *pkt )
     KBNODE n;
 
     if( pt->namelen == 8 && !memcmp( pt->name, "_CONSOLE", 8 ) )
-       log_info(_("note: sender requested \"for-your-eyes-only\"\n"));
+       log_info(_("NOTE: sender requested \"for-your-eyes-only\"\n"));
     else if( opt.verbose )
-       log_info("original file name='%.*s'\n", pt->namelen, pt->name);
+       log_info(_("original file name='%.*s'\n"), pt->namelen, pt->name);
     free_md_filter_context( &c->mfx );
     c->mfx.md = md_open( 0, 0);
     /* fixme: we may need to push the textfilter if we have sigclass 1
@@ -833,7 +833,7 @@ check_sig_and_print( CTX c, KBNODE node )
     int rc;
 
     if( opt.skip_verify ) {
-       log_info("signature verification suppressed\n");
+       log_info(_("signature verification suppressed\n"));
        return 0;
     }
 
@@ -854,6 +854,8 @@ check_sig_and_print( CTX c, KBNODE node )
        putc('\n', stderr);
        if( !rc )
            rc = check_signatures_trust( sig );
+       if( rc )
+           g10_errors_seen = 1;
        if( opt.batch && rc )
            g10_exit(1);
     }
@@ -932,12 +934,12 @@ proc_tree( CTX c, KBNODE node )
            }
        }
        else
-           log_info("old style signature\n");
+           log_info(_("old style (PGP 2.x) signature\n"));
 
        check_sig_and_print( c, node );
     }
     else
-       log_error("proc_tree: invalid root packet\n");
+       log_error(_("invalid root packet detected in proc_tree()\n"));
 
 }
 
index 6ae065a..3336f2b 100644 (file)
@@ -34,6 +34,7 @@
 #include "util.h"
 #include "main.h"
 #include "options.h"
+#include "i18n.h"
 
 
 const char *g10m_revision_string(int);
@@ -84,9 +85,9 @@ disable_core_dumps()
     limit.rlim_cur = 0;
     limit.rlim_max = 0;
     if( setrlimit( RLIMIT_CORE, &limit ) )
-       log_fatal("can't disable core dumps: %s\n", strerror(errno) );
+       log_fatal(_("can't disable core dumps: %s\n"), strerror(errno) );
   #else
-    log_info("WARNING: Program may create a core file!\n");
+    log_info(_("WARNING: Program may create a core file!\n"));
   #endif
 }
 
index 009ce9d..1d7ebd7 100644 (file)
@@ -35,3 +35,9 @@ force-v3-sigs
 
 compress-algo 1
 
+# If you do not use the Latin-1 (ISO-8859-1) charset, you should
+# tell GnuPG which is the native character set.  Please check
+# the man page for supported character sets.
+#charset koi8-r
+
+
index 1f19b05..1400df7 100644 (file)
@@ -33,6 +33,7 @@
 #include "filter.h"
 #include "options.h"
 #include "main.h"
+#include "i18n.h"
 
 static int mpi_print_mode = 0;
 static int list_mode = 0;
@@ -105,7 +106,7 @@ unknown_pubkey_warning( int algo )
     algo &= 0xff;
     if( !unknown_pubkey_algos[algo] ) {
        if( opt.verbose )
-           log_info("can't handle public key algorithm %d\n", algo );
+           log_info(_("can't handle public key algorithm %d\n"), algo );
        unknown_pubkey_algos[algo] = 1;
     }
 }
index 2e64911..a6901b1 100644 (file)
@@ -171,11 +171,11 @@ passphrase_to_dek( u32 *keyid, int cipher_algo, STRING2KEY *s2k, int mode )
     else if( opt.batch )
        log_fatal("Can't query password in batchmode\n");
     else {
-       pw = cpr_get_hidden(N_("passphrase.enter"), _("Enter pass phrase: ") );
+       pw = cpr_get_hidden(N_("passphrase.enter"), _("Enter passphrase: ") );
        tty_kill_prompt();
        if( mode == 2 && !cpr_enabled() ) {
            char *pw2 = cpr_get_hidden(N_("passphrase.repeat"),
-                                      _("Repeat pass phrase: ") );
+                                      _("Repeat passphrase: ") );
            tty_kill_prompt();
            if( strcmp(pw, pw2) ) {
                m_free(pw2);
index bef871c..2f39287 100644 (file)
@@ -180,7 +180,7 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
     int rc;
 
     if( (trustlevel & TRUST_FLAG_REVOKED) ) {
-       log_info("%08lX: key has been revoked!\n",
+       log_info(_("key %08lX: key has been revoked!\n"),
                                        (ulong)keyid_from_pk( pk, NULL) );
        if( opt.batch )
            return 0;
@@ -208,12 +208,13 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
        return do_we_trust( pk, trustlevel );
 
       case TRUST_EXPIRED:
-       log_info("%08lX: key has expired\n", (ulong)keyid_from_pk( pk, NULL) );
+       log_info(_("%08lX: key has expired\n"),
+                                   (ulong)keyid_from_pk( pk, NULL) );
        return 0; /* no */
 
       case TRUST_UNDEFINED:
        if( opt.batch || opt.answer_no )
-           log_info("%08lX: no info to calculate a trust probability\n",
+           log_info(_("%08lX: no info to calculate a trust probability\n"),
                                        (ulong)keyid_from_pk( pk, NULL) );
        else {
            rc = add_ownertrust( pk );
@@ -229,24 +230,24 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
        return 0;
 
       case TRUST_NEVER:
-       log_info("%08lX: We do NOT trust this key\n",
+       log_info(_("%08lX: We do NOT trust this key\n"),
                                        (ulong)keyid_from_pk( pk, NULL) );
        return 0; /* no */
 
       case TRUST_MARGINAL:
-       log_info("%08lX: I'm not sure whether this key really belongs to the owner\n"
-                "but I proceed anyway\n",
-                                       (ulong)keyid_from_pk( pk, NULL) );
+       log_info(
+       _("%08lX: It is not sure taht this key really belongs to the owner\n"
+        "but it is accepted anyway\n"), (ulong)keyid_from_pk( pk, NULL) );
        return 1; /* yes */
 
       case TRUST_FULLY:
        if( opt.verbose )
-           log_info("This key probably belongs to the owner\n");
+           log_info(_("This key probably belongs to the owner\n"));
        return 1; /* yes */
 
       case TRUST_ULTIMATE:
        if( opt.verbose )
-           log_info("This key belongs to us (we have the secret key)\n");
+           log_info(_("This key belongs to us (we have the secret key)\n"));
        return 1; /* yes */
 
       default: BUG();
@@ -422,8 +423,8 @@ build_pk_list( STRLIST remusr, PK_LIST *ret_pk_list, unsigned usage )
        for(;;) {
            rc = 0;
            m_free(answer);
-           answer = cpr_get(N_("pklist.user_id.enter"),
-                             _("Enter the user ID: "));
+           answer = cpr_get_utf8(N_("pklist.user_id.enter"),
+                                  _("Enter the user ID: "));
            trim_spaces(answer);
            cpr_kill_prompt();
            if( !*answer )
index b1201b8..a133f16 100644 (file)
@@ -233,7 +233,7 @@ ask_for_detached_datafile( md_filter_context_t *mfx, const char *inname )
 
     if( !fp ) {
        if( opt.verbose )
-           log_info("reading stdin ...\n");
+           log_info(_("reading stdin ...\n"));
        while( (c = getchar()) != EOF ) {
            if( mfx->md )
                md_putc(mfx->md, c );
index 2e9a14a..cb021c4 100644 (file)
@@ -81,7 +81,7 @@ get_session_key( PKT_pubkey_enc *k, DEK *dek )
            if( !rc )
                rc = get_it( k, dek, sk, keyid );
            if( !rc ) {
-               log_info( _("okay, we are the anonymous receiver.\n") );
+               log_info(_("okay, we are the anonymous receiver.\n") );
                break;
            }
        }
@@ -133,7 +133,7 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
     if( n + 7 > nframe )
        { rc = G10ERR_WRONG_SECKEY; goto leave; }
     if( frame[n] == 1 && frame[nframe-1] == 2 ) {
-       log_info("old encoding of DEK is not supported\n");
+       log_info(_("old encoding of the DEK is not supported\n"));
        rc = G10ERR_CIPHER_ALGO;
        goto leave;
     }
@@ -180,7 +180,7 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
            log_error("can't check algorithm against preferences\n");
        else if( dek->algo != CIPHER_ALGO_3DES
            && !is_algo_in_prefs( pk->local_id, PREFTYPE_SYM, dek->algo ) )
-           log_info(_("note: cipher algorithm %d not found in preferences\n"),
+           log_info(_("NOTE: cipher algorithm %d not found in preferences\n"),
                                                                 dek->algo );
        free_public_key( pk );
        rc = 0;
index 74c11cb..3d1eb44 100644 (file)
@@ -129,7 +129,7 @@ gen_revoke( const char *uname )
        rc = G10ERR_PUBKEY_ALGO;
        break;
       case 0:
-       tty_printf(_("note: This key is not protected!\n"));
+       tty_printf(_("NOTE: This key is not protected!\n"));
        break;
       default:
        rc = check_secret_key( sk, 0 );
index a8a661d..ebeceb1 100644 (file)
@@ -274,12 +274,13 @@ add_keyblock_resource( const char *url, int force, int secret )
 
            iobuf = iobuf_create( filename );
            if( !iobuf ) {
-               log_error("%s: can't create keyring: %s\n", filename, strerror(errno));
+               log_error(_("%s: can't create keyring: %s\n"),
+                                           filename, strerror(errno));
                rc = G10ERR_OPEN_FILE;
                goto leave;
            }
            else
-               log_info("%s: keyring created\n", filename );
+               log_info(_("%s: keyring created\n"), filename );
        }
       #ifdef __MINGW32__
        /* must close it again */
@@ -512,10 +513,12 @@ locate_keyblock_by_fpr( KBPOS *kbpos, const byte *fpr, int fprlen, int secret )
        if( rentry->used && !rentry->secret == !secret ) {
            kbpos->rt = rentry->rt;
            switch( rentry->rt ) {
+            #ifdef HAVE_LIBGDBM
              case rt_GDBM:
                any = 1;
                rc = do_gdbm_locate( rentry->dbf, kbpos, fpr, fprlen );
                break;
+            #endif
              default:
                rc = G10ERR_UNSUPPORTED;
                break;
@@ -551,10 +554,12 @@ locate_keyblock_by_keyid( KBPOS *kbpos, u32 *keyid, int shortkid, int secret )
        if( rentry->used && !rentry->secret == !secret ) {
            kbpos->rt = rentry->rt;
            switch( rentry->rt ) {
+            #ifdef HAVE_LIBGDBM
              case rt_GDBM:
                any = 1;
                rc = do_gdbm_locate_by_keyid( rentry->dbf, kbpos, keyid );
                break;
+            #endif
              default:
                rc = G10ERR_UNSUPPORTED;
                break;
@@ -1049,8 +1054,6 @@ keyring_enum( KBPOS *kbpos, KBNODE *ret_root, int skipsigs )
             * a start packet; issue a warning if it is not a comment */
            if( !root && pkt->pkttype != PKT_COMMENT
                      && pkt->pkttype != PKT_OLD_COMMENT ) {
-               log_info("keyring_enum: skipped packet of type %d\n",
-                           pkt->pkttype );
                break;
            }
            if( !root || (skipsigs && ( pkt->pkttype == PKT_SIGNATURE
@@ -1108,11 +1111,11 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root )
        /* insert: create a new file */
        newfp = iobuf_create( rentry->fname );
        if( !newfp ) {
-           log_error("%s: can't create: %s\n", rentry->fname, strerror(errno));
+           log_error(_("%s: can't create: %s\n"), rentry->fname, strerror(errno));
            return G10ERR_OPEN_FILE;
        }
        else
-           log_info("%s: keyring created\n", rentry->fname );
+           log_info(_("%s: keyring created\n"), rentry->fname );
 
        kbctx=NULL;
        while( (node = walk_kbnode( root, &kbctx, 0 )) ) {
@@ -1285,7 +1288,7 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root )
        rc = G10ERR_RENAME_FILE;
        if( rentry->secret ) {
            log_info(_(
-               "Warning: 2 files with confidential information exists.\n"));
+               "WARNING: 2 files with confidential information exists.\n"));
            log_info(_("%s is the unchanged one\n"), rentry->fname );
            log_info(_("%s is the new one\n"), tmpfname );
            log_info(_("Please fix this possible security flaw\n"));
@@ -1469,7 +1472,7 @@ do_gdbm_locate_by_keyid( GDBM_FILE dbf, KBPOS *kbpos, u32 *keyid )
        return G10ERR_INV_KEYRING;
     }
     if( content.dsize > 21 )
-       log_info("gdbm_fetch: warning: more than one fingerprint\n" );
+       log_info("gdbm_fetch: WARNING: more than one fingerprint\n" );
 
     rc = do_gdbm_locate( dbf, kbpos, content.dptr+1, 20 );
     free( content.dptr ); /* can't use m_free() here */
index d43f861..c7e0038 100644 (file)
@@ -212,7 +212,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
            cipher_hd = cipher_open( sk->protect.algo,
                                     CIPHER_MODE_AUTO_CFB, 1 );
            if( cipher_setkey( cipher_hd, dek->key, dek->keylen ) )
-               log_info(_("Warning: Weak key detected"
+               log_info(_("WARNING: Weak key detected"
                           " - please change passphrase again.\n"));
            cipher_setiv( cipher_hd, NULL );
            cipher_encrypt( cipher_hd, sk->protect.iv, sk->protect.iv, 8 );
index da732c4..1063555 100644 (file)
@@ -167,7 +167,7 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
     }
 
     if( pk->expiredate && pk->expiredate < cur_time ) {
-       log_info(_("warning: signature key expired %s\n"),
+       log_info(_("NOTE: signature key expired %s\n"),
                                        asctimestamp( pk->expiredate ) );
        write_status(STATUS_SIGEXPIRED);
     }
index db5272e..71b5108 100644 (file)
@@ -62,11 +62,11 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
     rc = pubkey_sign( sk->pubkey_algo, sig->data, frame, sk->skey );
     mpi_free(frame);
     if( rc )
-       log_error("pubkey_sign failed: %s\n", g10_errstr(rc) );
+       log_error(_("signing failed: %s\n"), g10_errstr(rc) );
     else {
        if( opt.verbose ) {
            char *ustr = get_user_id_string( sig->keyid );
-           log_info("%s signature from: %s\n",
+           log_info(_("%s signature from: %s\n"),
                      pubkey_algo_to_string(sk->pubkey_algo), ustr );
            m_free(ustr);
        }
@@ -197,12 +197,12 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
 
     if( outfile ) {
        if( !(out = iobuf_create( outfile )) ) {
-           log_error("can't create %s: %s\n", outfile, strerror(errno) );
+           log_error(_("can't create %s: %s\n"), outfile, strerror(errno) );
            rc = G10ERR_CREATE_FILE;
            goto leave;
        }
        else if( opt.verbose )
-           log_info("writing to '%s'\n", outfile );
+           log_info(_("writing to '%s'\n"), outfile );
     }
     else if( (rc = open_outfile( fname, opt.armor? 1: detached? 2:0, &out )))
        goto leave;
@@ -293,12 +293,13 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
            STRLIST sl;
 
            if( opt.verbose )
-               log_info("signing:" );
+               log_info(_("signing:") );
            /* must walk reverse trough this list */
            for( sl = strlist_last(filenames); sl;
                        sl = strlist_prev( filenames, sl ) ) {
                if( !(inp = iobuf_open(sl->d)) ) {
-                   log_error("can't open %s: %s\n", sl->d, strerror(errno) );
+                   log_error(_("can't open %s: %s\n"),
+                                           sl->d, strerror(errno) );
                    rc = G10ERR_OPEN_FILE;
                    goto leave;
                }
@@ -332,7 +333,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
        }
        if( fname ) {
            if( !(filesize = iobuf_get_filelength(inp)) )
-               log_info("warning: '%s' is an empty file\n", fname );
+               log_info(_("WARNING: '%s' is an empty file\n"), fname );
 
            /* because the text_filter modifies the length of the
             * data, it is not possible to know the used length
@@ -538,12 +539,12 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
 
     if( outfile ) {
        if( !(out = iobuf_create( outfile )) ) {
-           log_error("can't create %s: %s\n", outfile, strerror(errno) );
+           log_error(_("can't create %s: %s\n"), outfile, strerror(errno) );
            rc = G10ERR_CREATE_FILE;
            goto leave;
        }
        else if( opt.verbose )
-           log_info("writing to '%s'\n", outfile );
+           log_info(_("writing to '%s'\n"), outfile );
     }
     else if( (rc = open_outfile( fname, 1, &out )) )
        goto leave;
index efd97f3..caaab20 100644 (file)
@@ -31,6 +31,7 @@
 #include "keydb.h"
 #include "memory.h"
 #include "util.h"
+#include "i18n.h"
 
 
 void
@@ -90,14 +91,14 @@ build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock,
            sk->pubkey_usage = usage;
            if( (rc = get_seckey_byname( sk, locusr->d, unlock )) ) {
                free_secret_key( sk ); sk = NULL;
-               log_error("skipped '%s': %s\n", locusr->d, g10_errstr(rc) );
+               log_error(_("skipped '%s': %s\n"), locusr->d, g10_errstr(rc) );
            }
            else if( !(rc=check_pubkey_algo2(sk->pubkey_algo, usage)) ) {
                SK_LIST r;
                if( sk->version == 4 && (usage & PUBKEY_USAGE_SIG)
                    && sk->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E ) {
-                   log_info("skipped '%s': this is a PGP generated "
-                       "ElGamal key which is not secure for signatures!\n",
+                   log_info(_("skipped '%s': this is a PGP generated "
+                       "ElGamal key which is not secure for signatures!\n"),
                        locusr->d );
                    free_secret_key( sk ); sk = NULL;
                }
index 97b4fba..3fcf22b 100644 (file)
@@ -142,7 +142,7 @@ init_shm_coprocessing ( ulong requested_shm_size, int lock_mem )
     if ( shm_area == (char*)-1 )
        log_fatal("can't attach %uk shared memory: %s\n",
                                (unsigned)shm_size/1024, strerror(errno));
-    log_info("mapped %uk shared memory at %p, id=%d\n",
+    log_debug("mapped %uk shared memory at %p, id=%d\n",
                            (unsigned)shm_size/1024, shm_area, shm_id );
     if( lock_mem ) {
       #ifdef IPC_HAVE_SHM_LOCK
@@ -293,6 +293,19 @@ cpr_get( const char *keyword, const char *prompt )
 }
 
 char *
+cpr_get_utf8( const char *keyword, const char *prompt )
+{
+    char *p;
+    p = cpr_get( keyword, prompt );
+    if( p ) {
+       char *utf8 = native_to_utf8( p );
+       m_free( p );
+       p = utf8;
+    }
+    return p;
+}
+
+char *
 cpr_get_hidden( const char *keyword, const char *prompt )
 {
     char *p;
index e9ad819..4adce12 100644 (file)
@@ -60,6 +60,7 @@ void write_status_text ( int no, const char *text );
 
 int cpr_enabled(void);
 char *cpr_get( const char *keyword, const char *prompt );
+char *cpr_get_utf8( const char *keyword, const char *prompt );
 char *cpr_get_hidden( const char *keyword, const char *prompt );
 void cpr_kill_prompt(void);
 int  cpr_get_answer_is_yes( const char *keyword, const char *prompt );
index 424add4..11b2dcf 100644 (file)
@@ -215,8 +215,8 @@ put_record_into_cache( ulong recno, const char *data )
        /* but we can't do this while in a transaction
         * we increase the cache size instead */
        if( cache_entries < MAX_CACHE_ENTRIES_HARD ) { /* no */
-           if( !(cache_entries % 100) )
-               log_info("increasing tdbio cache size\n");
+           if( opt.debug && !(cache_entries % 100) )
+               log_debug("increasing tdbio cache size\n");
            r = m_alloc( sizeof *r );
            r->flags.used = 1;
            r->recno = recno;
@@ -228,7 +228,7 @@ put_record_into_cache( ulong recno, const char *data )
            cache_entries++;
            return 0;
        }
-       log_info("hard cache size limit reached\n");
+       log_info(_("trustdb transaction to large\n"));
        return G10ERR_RESOURCE_LIMIT;
     }
     if( dirty_count ) {
index bfecad2..c145525 100644 (file)
@@ -42,6 +42,7 @@
 #include "i18n.h"
 #include "tdbio.h"
 
+#define MAX_CERT_DEPTH 5
 
 #if MAX_FINGERPRINT_LEN > 20
   #error Must change structure of trustdb
@@ -139,7 +140,7 @@ read_record( ulong recno, TRUSTREC *rec, int rectype )
     int rc = tdbio_read_record( recno, rec, rectype );
     if( !rc )
        return;
-    log_error("trust record %lu, req type %d: read failed: %s\n",
+    log_error(_("trust record %lu, req type %d: read failed: %s\n"),
                                    recno, rectype,  g10_errstr(rc) );
     die_invalid_db();
 }
@@ -154,7 +155,7 @@ write_record( TRUSTREC *rec )
     int rc = tdbio_write_record( rec );
     if( !rc )
        return;
-    log_error("trust record %lu, type %d: write failed: %s\n",
+    log_error(_("trust record %lu, type %d: write failed: %s\n"),
                            rec->recnum, rec->rectype, g10_errstr(rc) );
     die_invalid_db();
 }
@@ -168,7 +169,7 @@ delete_record( ulong recno )
     int rc = tdbio_delete_record( recno );
     if( !rc )
        return;
-    log_error("trust record %lu: delete failed: %s\n",
+    log_error(_("trust record %lu: delete failed: %s\n"),
                                              recno, g10_errstr(rc) );
     die_invalid_db();
 }
@@ -182,7 +183,7 @@ do_sync( )
     int rc = tdbio_sync();
     if( !rc )
        return;
-    log_error("trust db: sync failed: %s\n", g10_errstr(rc) );
+    log_error(_("trust db: sync failed: %s\n"), g10_errstr(rc) );
     g10_exit(2);
 }
 
@@ -237,7 +238,7 @@ new_lid_table(void)
     a = unused_lid_tables;
     if( a ) {
        unused_lid_tables = a->next;
-       a->next = NULL;
+       memset( a, 0, sizeof *a );
     }
     else
        a = m_alloc_clear( sizeof *a );
@@ -311,24 +312,24 @@ keyid_from_lid( ulong lid, u32 *keyid )
 
     rc = tdbio_read_record( lid, &rec, 0 );
     if( rc ) {
-       log_error("error reading dir record for LID %lu: %s\n",
+       log_error(_("error reading dir record for LID %lu: %s\n"),
                                                    lid, g10_errstr(rc));
        return G10ERR_TRUSTDB;
     }
     if( rec.rectype == RECTYPE_SDIR )
        return 0;
     if( rec.rectype != RECTYPE_DIR ) {
-       log_error("lid %lu: expected dir record, got type %d\n",
+       log_error(_("lid %lu: expected dir record, got type %d\n"),
                                                    lid, rec.rectype );
        return G10ERR_TRUSTDB;
     }
     if( !rec.r.dir.keylist ) {
-       log_error("no primary key for LID %lu\n", lid );
+       log_error(_("no primary key for LID %lu\n"), lid );
        return G10ERR_TRUSTDB;
     }
     rc = tdbio_read_record( rec.r.dir.keylist, &rec, RECTYPE_KEY );
     if( rc ) {
-       log_error("error reading primary key for LID %lu: %s\n",
+       log_error(_("error reading primary key for LID %lu: %s\n"),
                                                    lid, g10_errstr(rc));
        return G10ERR_TRUSTDB;
     }
@@ -444,7 +445,7 @@ verify_own_keys()
            log_debug("key %08lX: checking secret key\n", (ulong)keyid[1] );
 
        if( is_secret_key_protected( sk ) < 1 )
-           log_info("note: secret key %08lX is NOT protected.\n",
+           log_info(_("NOTE: secret key %08lX is NOT protected.\n"),
                                                            (ulong)keyid[1] );
 
        /* see whether we can access the public key of this secret key */
@@ -484,7 +485,7 @@ verify_own_keys()
        if( ins_lid_table_item( ultikey_table, pk->local_id, 0 ) )
            log_error(_("key %08lX: already in secret key table\n"),
                                                        (ulong)keyid[1]);
-       else if( opt.verbose )
+       else if( opt.verbose > 1 )
            log_info(_("key %08lX: accepted as secret key.\n"),
                                                        (ulong)keyid[1]);
       skip:
@@ -492,7 +493,7 @@ verify_own_keys()
        release_public_key_parts( pk );
     }
     if( rc != -1 )
-       log_error(_("enum_secret_keys failed: %s\n"), g10_errstr(rc) );
+       log_error(_("enumerate secret keys failed: %s\n"), g10_errstr(rc) );
     else
        rc = 0;
 
@@ -666,7 +667,8 @@ list_records( ulong lid )
 
     rc = tdbio_read_record( lid, &dr, RECTYPE_DIR );
     if( rc ) {
-       log_error("lid %lu: read dir record failed: %s\n", lid, g10_errstr(rc));
+       log_error(_("lid %lu: read dir record failed: %s\n"),
+                                               lid, g10_errstr(rc));
        return rc;
     }
     tdbio_dump_record( &dr, stdout );
@@ -674,7 +676,7 @@ list_records( ulong lid )
     for( recno=dr.r.dir.keylist; recno; recno = rec.r.key.next ) {
        rc = tdbio_read_record( recno, &rec, 0 );
        if( rc ) {
-           log_error("lid %lu: read key record failed: %s\n",
+           log_error(_("lid %lu: read key record failed: %s\n"),
                                                lid, g10_errstr(rc));
            return rc;
        }
@@ -684,7 +686,7 @@ list_records( ulong lid )
     for( recno=dr.r.dir.uidlist; recno; recno = ur.r.uid.next ) {
        rc = tdbio_read_record( recno, &ur, RECTYPE_UID );
        if( rc ) {
-           log_error("lid %lu: read uid record failed: %s\n",
+           log_error(_("lid %lu: read uid record failed: %s\n"),
                                                lid, g10_errstr(rc));
            return rc;
        }
@@ -693,7 +695,7 @@ list_records( ulong lid )
        for(recno=ur.r.uid.prefrec; recno; recno = rec.r.pref.next ) {
            rc = tdbio_read_record( recno, &rec, RECTYPE_PREF );
            if( rc ) {
-               log_error("lid %lu: read pref record failed: %s\n",
+               log_error(_("lid %lu: read pref record failed: %s\n"),
                                                    lid, g10_errstr(rc));
                return rc;
            }
@@ -703,7 +705,7 @@ list_records( ulong lid )
        for(recno=ur.r.uid.siglist; recno; recno = rec.r.sig.next ) {
            rc = tdbio_read_record( recno, &rec, RECTYPE_SIG );
            if( rc ) {
-               log_error("lid %lu: read sig record failed: %s\n",
+               log_error(_("lid %lu: read sig record failed: %s\n"),
                                                    lid, g10_errstr(rc));
                return rc;
            }
@@ -893,15 +895,15 @@ static int
 do_check( TRUSTREC *dr, unsigned *trustlevel )
 {
     if( !dr->r.dir.keylist ) {
-       log_error("Ooops, no keys\n");
+       log_error(_("Ooops, no keys\n"));
        return G10ERR_TRUSTDB;
     }
     if( !dr->r.dir.uidlist ) {
-       log_error("Ooops, no user ids\n");
+       log_error(_("Ooops, no user ids\n"));
        return G10ERR_TRUSTDB;
     }
 
-    *trustlevel = verify_key( 5, dr );
+    *trustlevel = verify_key( MAX_CERT_DEPTH, dr );
 
     if( dr->r.dir.dirflags & DIRF_REVOKED )
        *trustlevel |= TRUST_FLAG_REVOKED;
@@ -955,25 +957,29 @@ list_trustdb( const char *username )
        ulong lid = atoi(username+1);
 
        if( (rc = list_records( lid)) )
-           log_error("user '%s' read problem: %s\n", username, g10_errstr(rc));
+           log_error(_("user '%s' read problem: %s\n"),
+                                           username, g10_errstr(rc));
        else if( (rc = list_sigs( lid )) )
-           log_error("user '%s' list problem: %s\n", username, g10_errstr(rc));
+           log_error(_("user '%s' list problem: %s\n"),
+                                           username, g10_errstr(rc));
     }
     else if( username ) {
        PKT_public_key *pk = m_alloc_clear( sizeof *pk );
        int rc;
 
        if( (rc = get_pubkey_byname( NULL, pk, username, NULL )) )
-           log_error("user '%s' not found: %s\n", username, g10_errstr(rc) );
+           log_error(_("user '%s' not found: %s\n"), username, g10_errstr(rc) );
        else if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 )
-           log_error("problem finding '%s' in trustdb: %s\n",
+           log_error(_("problem finding '%s' in trustdb: %s\n"),
                                                username, g10_errstr(rc));
        else if( rc == -1 )
-           log_error("user '%s' not in trustdb\n", username);
+           log_error(_("user '%s' not in trustdb\n"), username);
        else if( (rc = list_records( pk->local_id)) )
-           log_error("user '%s' read problem: %s\n", username, g10_errstr(rc));
+           log_error(_("user '%s' read problem: %s\n"),
+                                               username, g10_errstr(rc));
        else if( (rc = list_sigs( pk->local_id )) )
-           log_error("user '%s' list problem: %s\n", username, g10_errstr(rc));
+           log_error(_("user '%s' list problem: %s\n"),
+                                               username, g10_errstr(rc));
        free_public_key( pk );
     }
     else {
@@ -1002,20 +1008,20 @@ export_ownertrust()
     byte *p;
     int rc;
 
-    printf("# List of assigned trustvalues, created %s\n"
-          "# (Use \"gpgm --import-ownertrust\" to restore them)\n",
+    printf(_("# List of assigned trustvalues, created %s\n"
+            "# (Use \"gpgm --import-ownertrust\" to restore them)\n"),
           asctimestamp( make_timestamp() ) );
     for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) {
        if( rec.rectype == RECTYPE_DIR ) {
            if( !rec.r.dir.keylist ) {
-               log_error("Oops; directory record w/o primary key\n");
+               log_error(_("directory record w/o primary key\n"));
                continue;
            }
            if( !rec.r.dir.ownertrust )
                continue;
            rc = tdbio_read_record( rec.r.dir.keylist, &rec2, RECTYPE_KEY);
            if( rc ) {
-               log_error("error reading key record: %s\n", g10_errstr(rc));
+               log_error(_("error reading key record: %s\n"), g10_errstr(rc));
                continue;
            }
            p = rec2.r.key.fingerprint;
@@ -1055,7 +1061,7 @@ import_ownertrust( const char *fname )
            continue;
        n = strlen(line);
        if( line[n-1] != '\n' ) {
-           log_error_f(fname, "line to long\n" );
+           log_error_f(fname, _("line to long\n") );
            /* ... or last line does not have a LF */
            break; /* can't continue */
        }
@@ -1063,16 +1069,16 @@ import_ownertrust( const char *fname )
            if( !isxdigit(*p) )
                break;
        if( *p != ':' ) {
-           log_error_f(fname, "error: missing colon\n" );
+           log_error_f(fname, _("error: missing colon\n") );
            continue;
        }
        fprlen = p - line;
        if( fprlen != 32 && fprlen != 40 ) {
-           log_error_f(fname, "error: invalid fingerprint\n" );
+           log_error_f(fname, _("error: invalid fingerprint\n") );
            continue;
        }
        if( sscanf(p, ":%u:", &otrust ) != 1 ) {
-           log_error_f(fname, "error: no otrust value\n" );
+           log_error_f(fname, _("error: no ownertrust value\n") );
            continue;
        }
        if( !otrust )
@@ -1086,10 +1092,10 @@ import_ownertrust( const char *fname )
        rc = tdbio_search_dir_byfpr( line, fprlen, 0, &rec );
        if( !rc ) { /* found: update */
            if( rec.r.dir.ownertrust )
-               log_info("LID %lu: changing trust from %u to %u\n",
+               log_info(_("LID %lu: changing trust from %u to %u\n"),
                          rec.r.dir.lid, rec.r.dir.ownertrust, otrust );
            else
-               log_info("LID %lu: setting trust to %u\n",
+               log_info(_("LID %lu: setting trust to %u\n"),
                                   rec.r.dir.lid, otrust );
            rec.r.dir.ownertrust = otrust;
            write_record( &rec );
@@ -1097,25 +1103,25 @@ import_ownertrust( const char *fname )
        else if( rc == -1 ) { /* not found; get the key from the ring */
            PKT_public_key *pk = m_alloc_clear( sizeof *pk );
 
-           log_info_f(fname, "key not in trustdb, searching ring.\n");
+           log_info_f(fname, _("key not in trustdb, searching ring.\n"));
            rc = get_pubkey_byfprint( pk, line, fprlen );
            if( rc )
-               log_info_f(fname, "key not in ring: %s\n", g10_errstr(rc));
+               log_info_f(fname, _("key not in ring: %s\n"), g10_errstr(rc));
            else {
                rc = query_trust_record( pk );  /* only as assertion */
                if( rc != -1 )
-                   log_error_f(fname, "Oops: key is now in trustdb???\n");
+                   log_error_f(fname, _("Oops: key is now in trustdb???\n"));
                else {
                    rc = insert_trust_record( pk );
                    if( !rc )
                        goto repeat; /* update the ownertrust */
-                   log_error_f(fname, "insert trust record failed: %s\n",
+                   log_error_f(fname, _("insert trust record failed: %s\n"),
                                                           g10_errstr(rc) );
                }
            }
        }
        else /* error */
-           log_error_f(fname, "error finding dir record: %s\n",
+           log_error_f(fname, _("error finding dir record: %s\n"),
                                                    g10_errstr(rc));
     }
     if( ferror(fp) )
@@ -1166,15 +1172,16 @@ list_trust_path( int max_depth, const char *username )
     }
 
     if( (rc = get_pubkey_byname(NULL, pk, username, NULL )) )
-       log_error("user '%s' not found: %s\n", username, g10_errstr(rc) );
+       log_error(_("user '%s' not found: %s\n"), username, g10_errstr(rc) );
     else if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 )
-       log_error("problem finding '%s' in trustdb: %s\n",
+       log_error(_("problem finding '%s' in trustdb: %s\n"),
                                            username, g10_errstr(rc));
     else if( rc == -1 ) {
-       log_info("user '%s' not in trustdb - inserting\n", username);
+       log_info(_("user '%s' not in trustdb - inserting\n"), username);
        rc = insert_trust_record( pk );
        if( rc )
-           log_error("failed to put '%s' into trustdb: %s\n", username, g10_errstr(rc));
+           log_error(_("failed to put '%s' into trustdb: %s\n"),
+                                                   username, g10_errstr(rc));
        else {
            assert( pk->local_id );
        }
@@ -1217,7 +1224,7 @@ check_trustdb( const char *username )
        if( !rc )
            rc = read_keyblock( &kbpos, &keyblock );
        if( rc ) {
-           log_error("%s: keyblock read problem: %s\n",
+           log_error(_("%s: keyblock read problem: %s\n"),
                                    username, g10_errstr(rc));
        }
        else {
@@ -1231,12 +1238,12 @@ check_trustdb( const char *username )
 
            }
            if( rc )
-               log_error("%s: update failed: %s\n",
+               log_error(_("%s: update failed: %s\n"),
                                           username, g10_errstr(rc) );
            else if( modified )
-               log_info("%s: updated\n", username );
+               log_info(_("%s: updated\n"), username );
            else
-               log_info("%s: okay\n", username );
+               log_info(_("%s: okay\n"), username );
 
        }
        release_kbnode( keyblock ); keyblock = NULL;
@@ -1251,7 +1258,8 @@ check_trustdb( const char *username )
                int modified;
 
                if( !rec.r.dir.keylist ) {
-                   log_info("lid %lu: dir record w/o key - skipped\n", recnum);
+                   log_info(_("lid %lu: dir record w/o key - skipped\n"),
+                                                                 recnum);
                    count++;
                    skip_count++;
                    continue;
@@ -1263,7 +1271,7 @@ check_trustdb( const char *username )
                                            tmp.r.key.fingerprint,
                                            tmp.r.key.fingerprint_len );
                if( rc ) {
-                   log_error("lid %lu: keyblock not found: %s\n",
+                   log_error(_("lid %lu: keyblock not found: %s\n"),
                                                 recnum, g10_errstr(rc) );
                    count++;
                    skip_count++;
@@ -1272,17 +1280,17 @@ check_trustdb( const char *username )
 
                rc = update_trust_record( keyblock, 0, &modified );
                if( rc ) {
-                   log_error("lid %lu: update failed: %s\n",
+                   log_error(_("lid %lu: update failed: %s\n"),
                                                 recnum, g10_errstr(rc) );
                    err_count++;
                }
                else if( modified ) {
                    if( opt.verbose )
-                       log_info("lid %lu: updated\n", recnum );
+                       log_info(_("lid %lu: updated\n"), recnum );
                    upd_count++;
                }
                else if( opt.verbose > 1 )
-                   log_info("lid %lu: okay\n", recnum );
+                   log_info(_("lid %lu: okay\n"), recnum );
 
                release_kbnode( keyblock ); keyblock = NULL;
                if( !(++count % 100) )
@@ -1325,33 +1333,33 @@ update_trustdb( )
                                       ) ->pkt->pkt.public_key;
                rc = insert_trust_record( pk );
                if( rc && !pk->local_id ) {
-                   log_error("lid ?: insert failed: %s\n",
+                   log_error(_("lid ?: insert failed: %s\n"),
                                                     g10_errstr(rc) );
                    err_count++;
                }
                else if( rc ) {
-                   log_error("lid %lu: insert failed: %s\n",
+                   log_error(_("lid %lu: insert failed: %s\n"),
                                       pk->local_id, g10_errstr(rc) );
                    err_count++;
                }
                else {
                    if( opt.verbose )
-                       log_info("lid %lu: inserted\n", pk->local_id );
+                       log_info(_("lid %lu: inserted\n"), pk->local_id );
                    new_count++;
                }
            }
            else if( rc ) {
-               log_error("lid %lu: update failed: %s\n",
+               log_error(_("lid %lu: update failed: %s\n"),
                         lid_from_keyblock(keyblock), g10_errstr(rc) );
                err_count++;
            }
            else if( modified ) {
                if( opt.verbose )
-                   log_info("lid %lu: updated\n", lid_from_keyblock(keyblock));
+                   log_info(_("lid %lu: updated\n"), lid_from_keyblock(keyblock));
                upd_count++;
            }
            else if( opt.verbose > 1 )
-               log_info("lid %lu: okay\n", lid_from_keyblock(keyblock) );
+               log_info(_("lid %lu: okay\n"), lid_from_keyblock(keyblock) );
 
            release_kbnode( keyblock ); keyblock = NULL;
            if( !(++count % 100) )
@@ -1366,7 +1374,7 @@ update_trustdb( )
            log_info(_("\t%lu keys inserted\n"), new_count);
     }
     if( rc && rc != -1 )
-       log_error("enum_keyblocks failed: %s\n", g10_errstr(rc));
+       log_error(_("enumerate keyblocks failed: %s\n"), g10_errstr(rc));
 
     enum_keyblocks( 2, &kbpos, &keyblock ); /* close */
     release_kbnode( keyblock );
@@ -1411,7 +1419,7 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel )
     }
     else { /* no local_id: scan the trustdb */
        if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 ) {
-           log_error("check_trust: search dir record failed: %s\n",
+           log_error(_("check_trust: search dir record failed: %s\n"),
                                                            g10_errstr(rc));
            return rc;
        }
@@ -1501,8 +1509,46 @@ query_trust_info( PKT_public_key *pk )
 int
 enum_trust_web( void **context, ulong *lid )
 {
-    /* REPLACE THIS with a BETTER ONE  */
+  #if 0
+    struct {
+       int init;
+    } *ctx;
+    int rc;
+    int wipe=0;
+    TRUSTREC rec;
+    TRUST_INFO *tmppath;
+    TRUST_SEG_LIST trust_seg_list, tsl, tsl2;
+    PKT_public_key *pk = m_alloc_clear( sizeof *pk );
 
+    if( !*context ) {
+       asssert( *lid );
+
+       ctx = m_alloc_clear( sizeof *ctx );
+       *context = ctx;
+       /* collect the paths */
+       read_record( *lid, &rec, RECTYPE_DIR );
+       tmppath = m_alloc_clear( (MAX_CERT_DEPTH+1)* sizeof *tmppath );
+       trust_seg_list = NULL;
+       collect_paths( 0, MAX_CERT_DEPTH, 1, &rec, tmppath, &trust_seg_list );
+       m_free( tmppath );
+       /* and now print them */
+       for(tsl = trust_seg_list; tsl; tsl = tsl->next ) {
+           print_path( tsl->pathlen, tsl->path );
+       }
+    }
+    else
+       ctx = *context;
+
+    if( !lid ) {  /* release the context */
+       if( *
+        /* release the list */
+        for(tsl = trust_seg_list; tsl; tsl = tsl2 ) {
+            tsl2 = tsl->next;
+            m_free( tsl );
+        }
+        trust_seg_list = NULL;
+    }
+   #endif
     return -1; /* eof */
 }
 
@@ -1552,7 +1598,7 @@ get_pref_data( ulong lid, const byte *namehash, size_t *ret_n )
            /* found the correct one or the first one */
            read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF );
            if( rec.r.pref.next )
-               log_info("warning: can't yet handle long pref records\n");
+               log_info(_("WARNING: can't yet handle long pref records\n"));
            buf = m_alloc( ITEMS_PER_PREF_RECORD );
            memcpy( buf, rec.r.pref.data, ITEMS_PER_PREF_RECORD );
            *ret_n = ITEMS_PER_PREF_RECORD;
@@ -1581,7 +1627,7 @@ is_algo_in_prefs( ulong lid, int preftype, int algo )
        if( rec.r.uid.prefrec ) {
            read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF );
            if( rec.r.pref.next )
-               log_info("warning: can't yet handle long pref records\n");
+               log_info(_("WARNING: can't yet handle long pref records\n"));
            pref = rec.r.pref.data;
            for(i=0; i+1 < ITEMS_PER_PREF_RECORD; i+=2 ) {
                if( pref[i] == preftype && pref[i+1] == algo )
@@ -1603,7 +1649,7 @@ get_dir_record( PKT_public_key *pk, TRUSTREC *rec )
     }
     else { /* no local_id: scan the trustdb */
        if( (rc=tdbio_search_dir_bypk( pk, rec )) && rc != -1 )
-           log_error("get_dir_record: search_record failed: %s\n",
+           log_error(_("get_dir_record: search_record failed: %s\n"),
                                                            g10_errstr(rc));
     }
     return rc;
@@ -1663,11 +1709,11 @@ check_hint_sig( ulong lid, KBNODE keyblock, u32 *keyid, byte *uidrec_hash,
     int revoke = 0;
 
     if( sigrec->r.sig.sig[sigidx].flag & SIGF_CHECKED )
-       log_info(_("note: sig rec %lu[%d] in hintlist "
+       log_info(_("NOTE: sig rec %lu[%d] in hintlist "
                   "of %lu but marked as checked\n"),
                    sigrec->recnum, sigidx, hint_owner );
     if( !(sigrec->r.sig.sig[sigidx].flag & SIGF_NOPUBKEY) )
-       log_info(_("note: sig rec %lu[%d] in hintlist "
+       log_info(_("NOTE: sig rec %lu[%d] in hintlist "
                   "of %lu but not marked\n"),
                    sigrec->recnum, sigidx, hint_owner );
 
@@ -1866,7 +1912,7 @@ create_shadow_dir( PKT_signature *sig, ulong lid  )
     /* first see whether we already have such a record */
     rc = tdbio_search_sdir( sig->keyid, sig->pubkey_algo, &sdir );
     if( rc && rc != -1 ) {
-       log_error("tdbio_search_dir failed: %s\n", g10_errstr(rc));
+       log_error(_("tdbio_search_dir failed: %s\n"), g10_errstr(rc));
        die_invalid_db();
     }
     if( rc == -1 ) { /* not found: create */
@@ -2283,7 +2329,7 @@ upd_pref_record( TRUSTREC *urec, u32 *keyid, PKT_signature *sig )
            if( n_prefs_rec >= DIM(prefs_rec)-1 ) {
                log_info("uid %08lX.%lu/%02X%02X: %s\n",
                          (ulong)keyid[1], lid, uidhash[18], uidhash[19],
-                         _("Too many preferences items") );
+                         _("Too many preference items") );
                break;
            }
            prefs_rec[n_prefs_rec++] = prec.r.pref.data[i];
@@ -2304,7 +2350,7 @@ upd_pref_record( TRUSTREC *urec, u32 *keyid, PKT_signature *sig )
     }
 
     if( n_prefs_sig > ITEMS_PER_PREF_RECORD )
-       log_info("cannot yet handle long preferences");
+        log_info(_("WARNING: can't yet handle long pref records\n"));
 
     memset( &prec, 0, sizeof prec );
     prec.recnum = tdbio_new_recnum();
@@ -2452,7 +2498,7 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid,
                        log_info("sig %08lX.%lu/%02X%02X/%08lX: %s\n",
                                  (ulong)keyid[1], lid, uidhash[18],
                                 uidhash[19], (ulong)sig->keyid[1],
-                                _("public key lost") );
+                                _("Hmmm, public key lost?") );
                    rec.r.sig.sig[i].flag = SIGF_NOPUBKEY;
                    if( revoke )
                        rec.r.sig.sig[i].flag |= SIGF_REVOKED;
@@ -2477,8 +2523,8 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid,
                    && (!tmp.r.sdir.pubkey_algo
                         || tmp.r.sdir.pubkey_algo == sig->pubkey_algo )) {
                    if( !(rec.r.sig.sig[i].flag & SIGF_NOPUBKEY) )
-                       log_info("uid %08lX.%lu/%02X%02X: "
-                                "has shadow dir %lu but not yet marked.\n",
+                       log_info(_("uid %08lX.%lu/%02X%02X: "
+                               "has shadow dir %lu but is not yet marked.\n"),
                                (ulong)keyid[1], lid,
                                uidhash[18], uidhash[19], tmp.recnum );
                    rec.r.sig.sig[i].flag = SIGF_NOPUBKEY;
@@ -2491,7 +2537,7 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid,
                }
            }
            else {
-               log_error("sig record %lu[%d] points to wrong record.\n",
+               log_error(_("sig record %lu[%d] points to wrong record.\n"),
                            rec.r.sig.sig[i].lid, i );
                die_invalid_db();
            }
@@ -2733,7 +2779,7 @@ insert_trust_record( PKT_public_key *pk )
     /* get the keyblock which has the key */
     rc = get_keyblock_byfprint( &keyblock, fingerprint, fingerlen );
     if( rc ) { /* that should never happen */
-       log_error( "insert_trust_record: keyblock not found: %s\n",
+       log_error( _("insert_trust_record: keyblock not found: %s\n"),
                                                          g10_errstr(rc) );
        goto leave;
     }
@@ -2751,7 +2797,7 @@ insert_trust_record( PKT_public_key *pk )
        keyid_from_pk( pk, bkid );
 
        if( akid[0] != bkid[0] || akid[1] != bkid[1] ) {
-           log_error("did not use primary key for insert_trust_record()\n");
+           log_error(_("did not use primary key for insert_trust_record()\n"));
            rc = G10ERR_GENERAL;
            goto leave;
        }
@@ -2763,7 +2809,7 @@ insert_trust_record( PKT_public_key *pk )
      */
     rc = tdbio_search_sdir( pk->keyid, pk->pubkey_algo, &shadow );
     if( rc && rc != -1 ) {
-       log_error("tdbio_search_dir failed: %s\n", g10_errstr(rc));
+       log_error(_("tdbio_search_dir failed: %s\n"), g10_errstr(rc));
        die_invalid_db();
     }
     memset( &dirrec, 0, sizeof dirrec );
index 56098ae..6d39d23 100644 (file)
@@ -152,6 +152,7 @@ const char *memistr( const char *buf, size_t buflen, const char *sub );
 char *mem2str( char *, const void *, size_t);
 char *trim_spaces( char *string );
 int string_count_chr( const char *string, int c );
+int  set_native_charset( const char *newset );
 char *native_to_utf8( const char *string );
 char *utf8_to_native( const char *string );
 
index b9ec290..75b2f37 100644 (file)
@@ -1,3 +1,7 @@
+Tue Nov 10 10:48:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * it.po: Imported new version.
+
 Fri Oct 30 20:03:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * fr.po: Imported new version
index b8e3608..a3d2fad 100644 (file)
@@ -22,19 +22,26 @@ g10/pkclist.c
 g10/keygen.c
 g10/decrypt.c
 g10/encode.c
+g10/export.c
 g10/getkey.c
 g10/import.c
 g10/keyedit.c
 g10/keylist.c
 g10/mainproc.c
+g10/misc.c
+g10/parse-packet.c
 g10/passphrase.c
 g10/plaintext.c
+g10/pubkey-enc.c
 g10/pref.c
 g10/seckey-cert.c
 g10/sig-check.c
 g10/sign.c
+g10/tdbio.c
 g10/trustdb.c
 g10/verify.c
+g10/ringedit.c
+g10/skclist.c
 g10/status.c
 g10/pubkey-enc.c
 g10/openfile.c
index a7d1a73..69c835e 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-10-18 16:36+0200\n"
+"POT-Creation-Date: 1998-11-08 18:21+0100\n"
 "PO-Revision-Date: 1998-10-11 20:10+0200\n"
 "Last-Translator: Walter Koch <walterk@mail.dip.de>\n"
 "Language-Team: German <de@li.org>\n"
@@ -204,8 +204,8 @@ msgid "Weak key"
 msgstr "Schwacher Schlüssel"
 
 #: util/logger.c:177
-#, c-format
-msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n"
+#, fuzzy, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
 msgstr "Ohhh jeeee ... dies ist eine Wanze (Programmfehler) (%s:%d:%s)\n"
 
 #: util/logger.c:183
@@ -243,7 +243,7 @@ msgstr ""
 "Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
 "(Es werden noch %d Byte benötigt.)\n"
 
-#: g10/g10.c:149
+#: g10/g10.c:152
 msgid ""
 "@Commands:\n"
 " "
@@ -251,128 +251,128 @@ msgstr ""
 "@Kommandos:\n"
 " "
 
-#: g10/g10.c:152
+#: g10/g10.c:155
 #, fuzzy
 msgid "|[file]|make a signature"
 msgstr "|[FILE]|eine Signatur erzeugen"
 
-#: g10/g10.c:153
+#: g10/g10.c:156
 #, fuzzy
 msgid "|[file]|make a clear text signature"
 msgstr "|[FILE]|eine Klartextsignatur erzeugen"
 
-#: g10/g10.c:154
+#: g10/g10.c:157
 msgid "make a detached signature"
 msgstr "Eine abgetrennte Signatur erzeugen"
 
-#: g10/g10.c:155
+#: g10/g10.c:158
 msgid "encrypt data"
 msgstr "Daten verschlüsseln"
 
-#: g10/g10.c:156
+#: g10/g10.c:159
 msgid "encryption only with symmetric cipher"
 msgstr "Daten nur symmetrisch verschlüsseln"
 
-#: g10/g10.c:157
+#: g10/g10.c:160
 msgid "store only"
 msgstr "nur speichern"
 
-#: g10/g10.c:158
+#: g10/g10.c:161
 msgid "decrypt data (default)"
 msgstr "Daten entschlüsseln  (Voreinstellung)"
 
-#: g10/g10.c:159
+#: g10/g10.c:162
 msgid "verify a signature"
 msgstr "Signatur prüfen"
 
-#: g10/g10.c:161
+#: g10/g10.c:164
 msgid "list keys"
 msgstr "Liste der Schlüssel"
 
-#: g10/g10.c:162
+#: g10/g10.c:165
 msgid "list keys and signatures"
 msgstr "Liste der Schlüssel und ihrer Signaturen"
 
-#: g10/g10.c:163
+#: g10/g10.c:166
 msgid "check key signatures"
 msgstr "Signaturen der Schlüssel prüfen"
 
-#: g10/g10.c:164
+#: g10/g10.c:167
 msgid "list keys and fingerprints"
 msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 
-#: g10/g10.c:165
+#: g10/g10.c:168
 msgid "list secret keys"
 msgstr "Liste der geheimen Schlüssel"
 
-#: g10/g10.c:167
+#: g10/g10.c:170
 msgid "generate a new key pair"
 msgstr "Ein neues Schlüsselpaar erzeugen"
 
-#: g10/g10.c:169
+#: g10/g10.c:172
 msgid "remove key from the public keyring"
 msgstr "Schlüssel entfernen"
 
-#: g10/g10.c:171
+#: g10/g10.c:174
 msgid "sign or edit a key"
 msgstr "Unterschreiben oder Bearbeiten eines Schlüssels"
 
-#: g10/g10.c:172
+#: g10/g10.c:175
 msgid "generate a revocation certificate"
 msgstr "Einen Schlüsselwiderruf vornehmen"
 
-#: g10/g10.c:174
+#: g10/g10.c:177
 msgid "export keys"
 msgstr "Schlüssel exportieren"
 
-#: g10/g10.c:176
+#: g10/g10.c:179
 msgid "import/merge keys"
 msgstr "Schlüssel importieren/kombinieren"
 
-#: g10/g10.c:177
+#: g10/g10.c:181
 msgid "list only the sequence of packets"
 msgstr "Lediglich die Struktur der Datenpackete anzeigen"
 
-#: g10/g10.c:180
+#: g10/g10.c:184
 #, fuzzy
 msgid "export the ownertrust values"
 msgstr "Keine \"Owner trust\" Werte geändert.\n"
 
-#: g10/g10.c:182
+#: g10/g10.c:186
 #, fuzzy
 msgid "import ownertrust values"
 msgstr "Keine \"Owner trust\" Werte geändert.\n"
 
-#: g10/g10.c:184
+#: g10/g10.c:188
 #, fuzzy
 msgid "|[NAMES]|update the trust database"
 msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
 
-#: g10/g10.c:186
+#: g10/g10.c:190
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
 
-#: g10/g10.c:187
+#: g10/g10.c:191
 msgid "fix a corrupted trust database"
 msgstr "Reparieren einer beschädigten \"Trust\"-Datenbank"
 
-#: g10/g10.c:188
+#: g10/g10.c:192
 msgid "De-Armor a file or stdin"
 msgstr "Datei oder stdin von der ASCII-Hülle befreien"
 
-#: g10/g10.c:189
+#: g10/g10.c:193
 msgid "En-Armor a file or stdin"
 msgstr "Datei oder stdin in eine ASCII-Hülle einpacken"
 
-#: g10/g10.c:190
+#: g10/g10.c:194
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|Message-Digests für die Dateien ausgeben"
 
-#: g10/g10.c:191
+#: g10/g10.c:195
 msgid "print all message digests"
 msgstr "Message-Digests für die Eingabedaten ausgeben"
 
-#: g10/g10.c:198
+#: g10/g10.c:202
 msgid ""
 "@\n"
 "Options:\n"
@@ -382,133 +382,137 @@ msgstr ""
 "Optionen:\n"
 " "
 
-#: g10/g10.c:200
+#: g10/g10.c:204
 msgid "create ascii armored output"
 msgstr "Ausgabe mit ASCII-Hülle versehen"
 
-#: g10/g10.c:202
+#: g10/g10.c:206
 msgid "use this user-id to sign or decrypt"
 msgstr "Mit dieser User-ID signieren"
 
-#: g10/g10.c:203
+#: g10/g10.c:207
 msgid "use this user-id for encryption"
 msgstr "Verschlüsseln für diese User-ID"
 
-#: g10/g10.c:204
+#: g10/g10.c:208
 msgid "|N|set compress level N (0 disables)"
 msgstr "Kompressionsstufe auf N setzen (0 für keine Kompression)"
 
-#: g10/g10.c:205
+#: g10/g10.c:210
 msgid "use canonical text mode"
 msgstr "Textmodus benutzen"
 
-#: g10/g10.c:207
+#: g10/g10.c:212
 msgid "use as output file"
 msgstr "dies als Ausgabedatei benutzen"
 
-#: g10/g10.c:208
+#: g10/g10.c:213
 msgid "verbose"
 msgstr "detaillierte Informationen"
 
-#: g10/g10.c:209
+#: g10/g10.c:214
+msgid "be somewhat more quiet"
+msgstr ""
+
+#: g10/g10.c:215
 #, fuzzy
 msgid "force v3 signatures"
 msgstr "Signaturen der Schlüssel prüfen"
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:211
+#: g10/g10.c:217
 msgid "batch mode: never ask"
 msgstr "Stapelmodus: Keine Abfragen"
 
-#: g10/g10.c:212
+#: g10/g10.c:218
 msgid "assume yes on most questions"
 msgstr "\"Ja\" als Standardantwort annehmen"
 
-#: g10/g10.c:213
+#: g10/g10.c:219
 msgid "assume no on most questions"
 msgstr "\"Nein\" als Standardantwort annehmen"
 
-#: g10/g10.c:214
+#: g10/g10.c:220
 msgid "add this keyring to the list of keyrings"
 msgstr "Als öffentlichen Schlüsselring mitbenutzen"
 
-#: g10/g10.c:215
+#: g10/g10.c:221
 msgid "add this secret keyring to the list"
 msgstr "Als geheimen Schlüsselring mitbenutzen"
 
-#: g10/g10.c:216
+#: g10/g10.c:222
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen"
 
-#: g10/g10.c:217
+#: g10/g10.c:223
 msgid "read options from file"
 msgstr "Optionen aus der Datei lesen"
 
-#: g10/g10.c:219
+#: g10/g10.c:225
 msgid "set debugging flags"
 msgstr "Debug-Flags einschalten"
 
-#: g10/g10.c:220
+#: g10/g10.c:226
 msgid "enable full debugging"
 msgstr "Alle Debug-Flags einschalten"
 
-#: g10/g10.c:221
+#: g10/g10.c:227
 msgid "|FD|write status info to this FD"
 msgstr "|FD|Statusinfo auf diesen Dateihandle (\"FD\") ausgeben"
 
-#: g10/g10.c:222
+#: g10/g10.c:228
 msgid "do not write comment packets"
 msgstr "Keine Kommentarpakete schreiben"
 
-#: g10/g10.c:223
+#: g10/g10.c:229
 msgid "(default is 1)"
 msgstr "(voreingestellt ist 1)"
 
-#: g10/g10.c:224
+#: g10/g10.c:230
 msgid "(default is 3)"
 msgstr "(voreingestellt ist 3)"
 
-#: g10/g10.c:225
+#: g10/g10.c:231
 #, fuzzy
 msgid "|FILE|load extension module FILE"
 msgstr "|FILE|Erweiterungsmodul |FILE| laden"
 
-#: g10/g10.c:226
+#: g10/g10.c:232
 msgid "emulate the mode described in RFC1991"
 msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
 
-#: g10/g10.c:227
+#: g10/g10.c:233
 #, fuzzy
 msgid "|N|use passphrase mode N"
 msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
 
-#: g10/g10.c:229
+#: g10/g10.c:235
 #, fuzzy
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NAME|Die Hashmethode NAME für die \"Passphrase\" benutzen"
 
-#: g10/g10.c:231
+#: g10/g10.c:237
 #, fuzzy
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen"
 
-#: g10/g10.c:233
+#: g10/g10.c:239
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen"
 
-#: g10/g10.c:234
+#: g10/g10.c:240
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NAME|Die Hashmethode NAME benutzen"
 
-#: g10/g10.c:235
+#: g10/g10.c:241
 msgid "|N|use compress algorithm N"
 msgstr "|N|Die Kompressionsmethode N benutzen"
 
-#: g10/g10.c:236
+#: g10/g10.c:242
 msgid "throw keyid field of encrypted packets"
 msgstr ""
 
-#: g10/g10.c:244
+#: g10/g10.c:250
 #, fuzzy
 msgid ""
 "@\n"
@@ -529,19 +533,19 @@ msgstr ""
 " --list-keys [names]        Die Schlüssel anzeigen\n"
 " --fingerprint [names]      Die \"Fingerabdrücke\" anzeigen\n"
 
-#: g10/g10.c:319
+#: g10/g10.c:325
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Berichte über Wanzen bitte an <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:324
+#: g10/g10.c:330
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Aufruf: gpgm [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:326
+#: g10/g10.c:332
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:331
+#: g10/g10.c:337
 #, fuzzy
 msgid ""
 "Syntax: gpgm [options] [files]\n"
@@ -550,7 +554,7 @@ msgstr ""
 "Syntax: gpgm [options] [files]\n"
 "GNUPG Wartungs-Hilfsprogramm\n"
 
-#: g10/g10.c:334
+#: g10/g10.c:340
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -560,147 +564,147 @@ msgstr ""
 "Signieren, prüfen, verschlüsseln, entschlüsseln\n"
 "Die voreingestellte Operation ist abhängig von den Eingabedaten\n"
 
-#: g10/g10.c:340
+#: g10/g10.c:346
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 
-#: g10/g10.c:415
+#: g10/g10.c:421
 msgid "usage: gpgm [options] "
 msgstr "Aufruf: gpgm [Optionen] "
 
-#: g10/g10.c:417
+#: g10/g10.c:423
 msgid "usage: gpg [options] "
 msgstr "Aufruf: gpg [Optionen] "
 
-#: g10/g10.c:458
+#: g10/g10.c:464
 msgid "conflicting commands\n"
 msgstr "Widersprüchliche Kommandos\n"
 
-#: g10/g10.c:596
+#: g10/g10.c:602
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
 
-#: g10/g10.c:600
+#: g10/g10.c:606
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "Optionendatei '%s': %s\n"
 
-#: g10/g10.c:607
+#: g10/g10.c:613
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "Optionen werden von '%s' gelesen\n"
 
-#: g10/g10.c:778 g10/g10.c:790
+#: g10/g10.c:787 g10/g10.c:799
 msgid "selected cipher algorithm is invalid\n"
 msgstr "Die ausgewählte Verschlüsslungsmethode ist ungültig\n"
 
-#: g10/g10.c:784 g10/g10.c:796
+#: g10/g10.c:793 g10/g10.c:805
 msgid "selected digest algorithm is invalid\n"
 msgstr "Die ausgewählte Message-Digest-Methode ist ungültig\n"
 
-#: g10/g10.c:799
+#: g10/g10.c:808
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "Die Kompressionsmethode muß im Bereich %d bis %d liegen\n"
 
-#: g10/g10.c:801
+#: g10/g10.c:810
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed müssen größer als 0 sein\n"
 
-#: g10/g10.c:803
+#: g10/g10.c:812
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed müssen größer als 1 sein\n"
 
-#: g10/g10.c:806
+#: g10/g10.c:815
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr ""
 
-#: g10/g10.c:810
+#: g10/g10.c:819
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr ""
 
-#: g10/g10.c:886
+#: g10/g10.c:895
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
 
-#: g10/g10.c:892
+#: g10/g10.c:901
 msgid "--store [filename]"
 msgstr "--store [Dateiname]"
 
-#: g10/g10.c:900
+#: g10/g10.c:909
 msgid "--symmetric [filename]"
 msgstr "--symmetric [Dateiname]"
 
-#: g10/g10.c:908
+#: g10/g10.c:917
 msgid "--encrypt [filename]"
 msgstr "--encrypt [Dateiname]"
 
-#: g10/g10.c:921
+#: g10/g10.c:930
 msgid "--sign [filename]"
 msgstr "--sign [Dateiname]"
 
-#: g10/g10.c:934
+#: g10/g10.c:943
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [Dateiname]"
 
-#: g10/g10.c:948
+#: g10/g10.c:957
 msgid "--clearsign [filename]"
 msgstr "--clearsign [Dateiname]"
 
-#: g10/g10.c:960
+#: g10/g10.c:969
 msgid "--decrypt [filename]"
 msgstr "--decrypt [Dateiname]"
 
-#: g10/g10.c:969
+#: g10/g10.c:978
 msgid "--edit-key username"
 msgstr "--edit-key Benutzername"
 
-#: g10/g10.c:977
+#: g10/g10.c:986
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key Benutzername"
 
-#: g10/g10.c:980
+#: g10/g10.c:989
 msgid "--delete-key username"
 msgstr "--delete-key Benutzername"
 
-#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
+#: g10/encode.c:216 g10/g10.c:1012
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "Datei '%s' kann nicht geöffnet werden: %s\n"
 
-#: g10/g10.c:1014
+#: g10/g10.c:1023
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [Benutzername] [Keyring]"
 
-#: g10/g10.c:1069
+#: g10/g10.c:1079
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "De-Armor fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1077
+#: g10/g10.c:1087
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "En-Armor fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1138
+#: g10/g10.c:1148
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "Ungültige Hashmethode '%s'\n"
 
-#: g10/g10.c:1220
+#: g10/g10.c:1230
 msgid "[filename]"
 msgstr "[Dateiname]"
 
-#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1232 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "Datei '%s' kann nicht geöffnet werden\n"
 
-#: g10/g10.c:1269
+#: g10/g10.c:1279
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -1114,7 +1118,7 @@ msgstr ""
 msgid "Is this correct (y/n)? "
 msgstr "Ist dies richtig? (j/n) "
 
-#: g10/keygen.c:561
+#: g10/keygen.c:569
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1130,51 +1134,51 @@ msgstr ""
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "Real name: "
 msgstr "Ihr Name (\"Vorname Nachname\"): "
 
-#: g10/keygen.c:576
+#: g10/keygen.c:584
 msgid "Invalid character in name\n"
 msgstr "Ungültiges Zeichen im Namen\n"
 
-#: g10/keygen.c:578
+#: g10/keygen.c:586
 msgid "Name may not start with a digit\n"
 msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
 
-#: g10/keygen.c:580
+#: g10/keygen.c:588
 msgid "Name must be at least 5 characters long\n"
 msgstr "Der Name muß min. 5 Zeichen lang sein.\n"
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "Email address: "
 msgstr "E-Mail-Adresse: "
 
-#: g10/keygen.c:600
+#: g10/keygen.c:608
 msgid "Not a valid email address\n"
 msgstr "E-Mail-Adresse is ungültig\n"
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "Comment: "
 msgstr "Kommentar: "
 
-#: g10/keygen.c:614
+#: g10/keygen.c:622
 msgid "Invalid character in comment\n"
 msgstr "Ungültiges Zeichen im Kommentar.\n"
 
-#: g10/keygen.c:634
+#: g10/keygen.c:642
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1185,21 +1189,21 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:637
+#: g10/keygen.c:645
 msgid "NnCcEeOoQq"
 msgstr ""
 
-#: g10/keygen.c:646
+#: g10/keygen.c:654
 #, fuzzy
 msgid "keygen.userid.cmd"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keygen.c:647
+#: g10/keygen.c:655
 #, fuzzy
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Ändern: N=Name, C=Kommentar, E=E-Mail, O=Okay? "
 
-#: g10/keygen.c:694
+#: g10/keygen.c:707
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1207,11 +1211,11 @@ msgstr ""
 "Sie benötigen eine \"passphrase\", um den geheimen Schlüssel zu schützen.\n"
 "\n"
 
-#: g10/keyedit.c:389 g10/keygen.c:702
+#: g10/keyedit.c:389 g10/keygen.c:715
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "\"passphrase\" nicht richtig wiederholt; noch einmal.\n"
 
-#: g10/keygen.c:708
+#: g10/keygen.c:721
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1224,7 +1228,7 @@ msgstr ""
 "aufrufen.\n"
 "\n"
 
-#: g10/keygen.c:729
+#: g10/keygen.c:742
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1235,35 +1239,35 @@ msgstr ""
 "unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n"
 "tippen oder irgendwelche anderen Programme benutzen.\n"
 
-#: g10/keygen.c:799
+#: g10/keygen.c:812
 msgid "Key generation can only be used in interactive mode\n"
 msgstr ""
 "Die Schlüsselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
 
-#: g10/keygen.c:807
+#: g10/keygen.c:820
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "Der DSA Schlüssel wird 1024 Bits haben.\n"
 
-#: g10/keygen.c:813
+#: g10/keygen.c:826
 #, fuzzy
 msgid "Key generation cancelled.\n"
 msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
 
-#: g10/keygen.c:823
+#: g10/keygen.c:836
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:824
+#: g10/keygen.c:837
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "schreiben des geheimen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:901
+#: g10/keygen.c:914
 msgid "public and secret key created and signed.\n"
 msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n"
 
-#: g10/keygen.c:903
+#: g10/keygen.c:916
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1272,21 +1276,21 @@ msgstr ""
 "werden kann.  Sie können aber mit dem Kommando \"--add-key\" einen\n"
 "Sekundärschlüssel zu diesem Schlüssel hinzufügen.\n"
 
-#: g10/keygen.c:917 g10/keygen.c:1002
+#: g10/keygen.c:930 g10/keygen.c:1015
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
 
-#: g10/keygen.c:979
+#: g10/keygen.c:992
 msgid "keygen.sub.okay"
 msgstr ""
 
-#: g10/keygen.c:980
+#: g10/keygen.c:993
 #, fuzzy
 msgid "Really create? "
 msgstr "Ihr Name (\"Vorname Nachname\"): "
 
-#: g10/encode.c:88
+#: g10/encode.c:88 g10/openfile.c:81 g10/openfile.c:158
 #, c-format
 msgid "%s: can't open: %s\n"
 msgstr "%s: kann nicht geöffnet werden: %s\n"
@@ -1296,225 +1300,283 @@ msgstr "%s: kann nicht ge
 msgid "error creating passphrase: %s\n"
 msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
 
-#: g10/encode.c:154 g10/encode.c:267
+#: g10/encode.c:155 g10/encode.c:269
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr "%s: Achtung: Leere Datei.\n"
 
-#: g10/encode.c:221
+#: g10/encode.c:222
 #, c-format
 msgid "reading from '%s'\n"
 msgstr "Lesen von '%s'\n"
 
-#: g10/encode.c:395
+#: g10/encode.c:397
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr "%s verschlüsselt für: %s\n"
 
-#: g10/getkey.c:854
+#: g10/getkey.c:950
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 
-#: g10/import.c:106 g10/trustdb.c:1100
+#: g10/import.c:125 g10/trustdb.c:1046
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "Kann die Datei nicht öffnen: %s\n"
 
-#: g10/import.c:122
+#: g10/import.c:141
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr "überspringe den Block vom Typ %d\n"
 
-#: g10/import.c:132 g10/trustdb.c:1175
+#: g10/import.c:148 g10/trustdb.c:1289 g10/trustdb.c:1358
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr ""
+
+#: g10/import.c:153 g10/trustdb.c:1122
 #, c-format
 msgid "read error: %s\n"
 msgstr "Lesefehler: %s\n"
 
-#: g10/import.c:273 g10/import.c:446
+#: g10/import.c:155
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr ""
+
+#: g10/import.c:157
+#, c-format
+msgid "          w/o user IDs: %lu\n"
+msgstr ""
+
+#: g10/import.c:159
+#, c-format
+msgid "              imported: %lu"
+msgstr ""
+
+#: g10/import.c:165
+#, c-format
+msgid "             unchanged: %lu\n"
+msgstr ""
+
+#: g10/import.c:167
+#, c-format
+msgid "          new user IDs: %lu\n"
+msgstr ""
+
+#: g10/import.c:169
+#, c-format
+msgid "           new subkeys: %lu\n"
+msgstr ""
+
+#: g10/import.c:171
+#, fuzzy, c-format
+msgid "        new signatures: %lu\n"
+msgstr "Schlüssel %08lX: %d neue Signaturen\n"
+
+#: g10/import.c:173
+#, fuzzy, c-format
+msgid "   new key revocations: %lu\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+
+#: g10/import.c:175
+#, fuzzy, c-format
+msgid "      secret keys read: %lu\n"
+msgstr "En-Armor fehlgeschlagen: %s\n"
+
+#: g10/import.c:177
+#, fuzzy, c-format
+msgid "  secret keys imported: %lu\n"
+msgstr "Schlüssel %08lX: Privater Schlüssel importiert\n"
+
+#: g10/import.c:179
+#, fuzzy, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "En-Armor fehlgeschlagen: %s\n"
+
+#: g10/import.c:321 g10/import.c:513
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr "Schlüssel %08lX: Keine User-ID\n"
 
-#: g10/import.c:283
+#: g10/import.c:332
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr "Schlüssel %08lX: Keine gültigen User-IDs\n"
 
-#: g10/import.c:285
+#: g10/import.c:334
 msgid "this may be caused by a missing self-signature\n"
 msgstr ""
 
-#: g10/import.c:294 g10/import.c:512
+#: g10/import.c:345 g10/import.c:581
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
 
-#: g10/import.c:300
+#: g10/import.c:351
 msgid "no default public keyring\n"
 msgstr "Kein voreingestellter öffentlicher Schlüsselring\n"
 
-#: g10/import.c:304
+#: g10/import.c:355 g10/openfile.c:105
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "Schreiben nach '%s'\n"
 
-#: g10/import.c:308 g10/import.c:363 g10/import.c:566
+#: g10/import.c:359 g10/import.c:419 g10/import.c:635
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr "kann öffentlichen Schlüsselring nicht sperren: %s\n"
 
-#: g10/import.c:311
+#: g10/import.c:362
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr "kann Schlüsselring nicht schreiben: %s\n"
 
-#. we are ready
-#: g10/import.c:314
+#: g10/import.c:366
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr "Schlüssel %08lX: Öffentlicher Schlüssel importiert\n"
 
-#: g10/import.c:323
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr "Schlüssel %08lX: Stimmt nicht mit unserer Kopie überein\n"
 
-#: g10/import.c:336 g10/import.c:521
+#: g10/import.c:392 g10/import.c:590
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:343 g10/import.c:528
+#: g10/import.c:399 g10/import.c:597
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:360 g10/import.c:461 g10/import.c:563
+#: g10/import.c:416 g10/import.c:528 g10/import.c:632
 msgid "writing keyblock\n"
 msgstr "schreiben des Schlüsselblocks\n"
 
-#: g10/import.c:366 g10/import.c:569
+#: g10/import.c:422 g10/import.c:638
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr "Der Schlüsselblock kann nicht geschrieben werden: %s\n"
 
-#: g10/import.c:370
+#: g10/import.c:427
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr "Schlüssel %08lX: 1 neue User-ID\n"
 
-#: g10/import.c:373
+#: g10/import.c:430
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr "Schlüssel %08lX: %d neue User-IDs\n"
 
-#: g10/import.c:376
+#: g10/import.c:433
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr "Schlüssel %08lX: 1 neue Signatur\n"
 
-#: g10/import.c:379
+#: g10/import.c:436
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr "Schlüssel %08lX: %d neue Signaturen\n"
 
-#: g10/import.c:382
+#: g10/import.c:439
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr "Schlüssel %08lX: 1 neuer Sekundärschlüssel\n"
 
-#: g10/import.c:385
+#: g10/import.c:442
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr "Schlüssel %08lX: %d neue Sekundärschlüssel\n"
 
-#: g10/import.c:389
+#: g10/import.c:452
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr "Schlüssel %08lX: Nicht geändert\n"
 
-#: g10/import.c:464
+#: g10/import.c:531
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr "kann geheimen Schlüsselring nicht sperren: %s\n"
 
-#: g10/import.c:467
+#: g10/import.c:534
 #, fuzzy, c-format
 msgid "can't write keyring: %s\n"
 msgstr "kann Schlüsselring nicht schreiben: %s\n"
 
 #. we are ready
-#: g10/import.c:470
+#: g10/import.c:537
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr "Schlüssel %08lX: Privater Schlüssel importiert\n"
 
 #. we can't merge secret keys
-#: g10/import.c:473
+#: g10/import.c:541
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/import.c:477
+#: g10/import.c:546
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr "Schlüssel %08lX: Privater Schlüssel nicht gefunden: %s\n"
 
-#: g10/import.c:506
+#: g10/import.c:575
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 "Schlüssel %08lX: Kein öffentlicher Schlüssel - der Schlüsselwiderruf kann "
 "nicht angebracht werden\n"
 
-#: g10/import.c:539
+#: g10/import.c:608
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - zurückgewiesen\n"
 
-#. we are ready
-#: g10/import.c:572
+#: g10/import.c:642
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr "Schlüssel %08lX: Widerruofzertifikat importiert\n"
 
-#: g10/import.c:602
+#: g10/import.c:673
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
 
-#: g10/import.c:609
+#: g10/import.c:680
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr "Schlüssel %08lX: Public-Key-Algorithmus wird nicht unterstützt\n"
 
-#: g10/import.c:610
+#: g10/import.c:681
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
 
-#: g10/import.c:639
+#: g10/import.c:710
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr "Schlüssel %08lX: übergehe User-ID '"
 
-#: g10/import.c:662
+#: g10/import.c:733
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr "Schlüssel %08lX: Widerrufzertifikat an falschem Platz - übergangen\n"
 
-#: g10/import.c:670
+#: g10/import.c:741
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - übergangen\n"
 
-#: g10/import.c:732
+#: g10/import.c:803
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr "Schlüssel %08lX: Widerrufzertifikat hinzugefügt\n"
 
-#: g10/import.c:795 g10/import.c:831
+#: g10/import.c:866 g10/import.c:902
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr "Schlüssel %08lX: Unser Kopie hat keine Selbst-Signatur\n"
@@ -1826,173 +1888,173 @@ msgstr "Dies kann im Batchmodus nicht durchgef
 msgid "Secret key is available.\n"
 msgstr "Öffentlicher Schlüssel ist nicht verfügbar.\n"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 msgid "keyedit.cmd"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 #, fuzzy
 msgid "Command> "
 msgstr ""
 "@Kommandos:\n"
 " "
 
-#: g10/keyedit.c:600
+#: g10/keyedit.c:602
 #, fuzzy
 msgid "Need the secret key to to this.\n"
 msgstr "Als geheimen Schlüsselring mitbenutzen"
 
-#: g10/keyedit.c:619
+#: g10/keyedit.c:621
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:620
+#: g10/keyedit.c:622
 msgid "Save changes? "
 msgstr ""
 
-#: g10/keyedit.c:622
+#: g10/keyedit.c:624
 #, fuzzy
 msgid "keyedit.cancel.okay"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keyedit.c:623
+#: g10/keyedit.c:625
 msgid "Quit without saving? "
 msgstr ""
 
-#: g10/keyedit.c:633
+#: g10/keyedit.c:635
 #, fuzzy, c-format
 msgid "update failed: %s\n"
 msgstr "De-Armor fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:640
+#: g10/keyedit.c:642
 #, fuzzy, c-format
 msgid "update secret failed: %s\n"
 msgstr "Enschlüsselung fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:647
+#: g10/keyedit.c:649
 msgid "Key not changed so no update needed.\n"
 msgstr ""
 
-#: g10/keyedit.c:650 g10/keyedit.c:708
+#: g10/keyedit.c:652 g10/keyedit.c:710
 #, fuzzy, c-format
 msgid "update of trust db failed: %s\n"
 msgstr "Enschlüsselung fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:683
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:682
+#: g10/keyedit.c:684
 msgid "Really sign all user ids? "
 msgstr ""
 
-#: g10/keyedit.c:683
+#: g10/keyedit.c:685
 msgid "Hint: Select the user ids to sign\n"
 msgstr ""
 
-#: g10/keyedit.c:719
+#: g10/keyedit.c:721
 msgid "You must select at least one user id.\n"
 msgstr ""
 
-#: g10/keyedit.c:721
+#: g10/keyedit.c:723
 msgid "You can't delete the last user id!\n"
 msgstr ""
 
-#: g10/keyedit.c:723
+#: g10/keyedit.c:725
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:724
+#: g10/keyedit.c:726
 #, fuzzy
 msgid "Really remove all selected user ids? "
 msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? "
 
-#: g10/keyedit.c:725
+#: g10/keyedit.c:727
 #, fuzzy
 msgid "Really remove this user id? "
 msgstr "Die Signatur entfernen? "
 
-#: g10/keyedit.c:748
+#: g10/keyedit.c:750
 msgid "You must select at least one key.\n"
 msgstr ""
 
-#: g10/keyedit.c:750
+#: g10/keyedit.c:752
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:752
+#: g10/keyedit.c:754
 #, fuzzy
 msgid "Do you really want to delete the selected keys? "
 msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? "
 
-#: g10/keyedit.c:753
+#: g10/keyedit.c:755
 #, fuzzy
 msgid "Do you really want to delete this key? "
 msgstr "Möchten Sie dies wirklich tun? "
 
-#: g10/keyedit.c:800
+#: g10/keyedit.c:802
 msgid "Invalid command  (try \"help\")\n"
 msgstr ""
 
-#: g10/keyedit.c:1178
+#: g10/keyedit.c:1180
 msgid "Please remove selections from the secret keys.\n"
 msgstr ""
 
-#: g10/keyedit.c:1184
+#: g10/keyedit.c:1186
 #, fuzzy
 msgid "Please select at most one secondary key.\n"
 msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n"
 
-#: g10/keyedit.c:1188
+#: g10/keyedit.c:1190
 msgid "Changing exiration time for a secondary key.\n"
 msgstr ""
 
-#: g10/keyedit.c:1190
+#: g10/keyedit.c:1192
 msgid "Changing exiration time for the primary key.\n"
 msgstr ""
 
-#: g10/keyedit.c:1234
+#: g10/keyedit.c:1236
 msgid "No corresponding signature in secret ring\n"
 msgstr ""
 
-#: g10/keyedit.c:1294
+#: g10/keyedit.c:1296
 #, c-format
 msgid "No user id with index %d\n"
 msgstr ""
 
-#: g10/keyedit.c:1339
+#: g10/keyedit.c:1341
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr ""
 
-#: g10/mainproc.c:200
+#: g10/mainproc.c:201
 #, c-format
 msgid "public key decryption failed: %s\n"
 msgstr "Entschlüsselung mit öffentlichem Schlüssel fehlgeschlagen: %s\n"
 
-#: g10/mainproc.c:230
+#: g10/mainproc.c:231
 #, c-format
 msgid "decryption failed: %s\n"
 msgstr "Enschlüsselung fehlgeschlagen: %s\n"
 
-#: g10/mainproc.c:247
+#: g10/mainproc.c:248
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr ""
 
-#: g10/mainproc.c:848
+#: g10/mainproc.c:842
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr "Signatur am %.*s mit %s Schlüssel %08lX erzeugt\n"
 
-#: g10/mainproc.c:856
+#: g10/mainproc.c:850
 msgid "BAD signature from \""
 msgstr "FALSCHE Signatur von \""
 
-#: g10/mainproc.c:857
+#: g10/mainproc.c:851
 msgid "Good signature from \""
 msgstr "Gültige Signatur von \""
 
-#: g10/mainproc.c:868
+#: g10/mainproc.c:862
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr "Signatur kann nicht geprüft werden: %s\n"
@@ -2098,194 +2160,242 @@ msgstr ""
 msgid "warning: signature key expired %s\n"
 msgstr "Achtung: Schlüssel der Signatur ist verfallen am %s.\n"
 
-#: g10/trustdb.c:122
+#: g10/trustdb.c:129
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 "Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpgm "
 "--fix-trust-db\".\n"
 
-#: g10/trustdb.c:389
+#: g10/trustdb.c:407
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "Verketteter Signatursatz %lu hat einen falschen Besitzer\n"
 
-#: g10/trustdb.c:436
+#: g10/trustdb.c:454
 #, fuzzy, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n"
 
-#: g10/trustdb.c:442
+#: g10/trustdb.c:460
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr ""
 "Schlüssel %08lX: geheimer und öffentlicher Schlüssel passen nicht zusammen.\n"
 
-#: g10/trustdb.c:452
+#: g10/trustdb.c:470
 #, fuzzy, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:476
 #, fuzzy, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "Schlüssel %08lX: Keine User-ID\n"
 
-#: g10/trustdb.c:467
+#: g10/trustdb.c:485
 #, fuzzy, c-format
 msgid "key %08lX: already in secret key table\n"
 msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/trustdb.c:470
+#: g10/trustdb.c:488
 #, fuzzy, c-format
 msgid "key %08lX: accepted as secret key.\n"
 msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/trustdb.c:477
+#: g10/trustdb.c:495
 #, fuzzy, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr "En-Armor fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1428
+#: g10/trustdb.c:1292 g10/trustdb.c:1360
+#, c-format
+msgid "%lu keys processed\n"
+msgstr ""
+
+#: g10/trustdb.c:1294
+#, fuzzy, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "%s: übersprungen: %s\n"
+
+#: g10/trustdb.c:1296 g10/trustdb.c:1362
+#, fuzzy, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "Dateischreibfehler"
+
+#: g10/trustdb.c:1298 g10/trustdb.c:1364
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr ""
+
+#: g10/trustdb.c:1366
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr ""
+
+#: g10/trustdb.c:1421
 #, fuzzy, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1432
+#: g10/trustdb.c:1425
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
 
-#: g10/trustdb.c:1440
+#: g10/trustdb.c:1433
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "Schlüssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
 "stimmen nicht überein)\n"
 
-#: g10/trustdb.c:1447
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "Schlüssel %08lX.%lu: verfallen am %s\n"
 
-#: g10/trustdb.c:1455
+#: g10/trustdb.c:1448
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1718
+#: g10/trustdb.c:1666
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr ""
 
-#: g10/trustdb.c:1722
+#: g10/trustdb.c:1670
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr ""
 
 #. we need the dir record
-#: g10/trustdb.c:1729
+#: g10/trustdb.c:1677
 #, c-format
-msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:1735
+#: g10/trustdb.c:1683
 #, c-format
 msgid "lid %lu: no primary key\n"
 msgstr ""
 
-#: g10/trustdb.c:1764
+#: g10/trustdb.c:1716
 #, fuzzy, c-format
 msgid "lid %lu: user id not found in keyblock\n"
 msgstr "%s: Benutzer nicht gefunden\n"
 
-#: g10/trustdb.c:1771
+#: g10/trustdb.c:1720
+#, fuzzy, c-format
+msgid "lid %lu: user id without signature\n"
+msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#: g10/trustdb.c:1727
 #, fuzzy, c-format
 msgid "lid %lu: self-signature in hintlist\n"
 msgstr "build_sigrecs: Selbst-Signatur fehlt\n"
 
-#: g10/trustdb.c:1776
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+#: g10/trustdb.c:1738 g10/trustdb.c:2444 g10/trustdb.c:2526
+#, fuzzy
+msgid "Valid certificate revocation"
+msgstr "Falsches Zertifikat"
 
-#: g10/trustdb.c:1783
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
-msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+#: g10/trustdb.c:1739 g10/trustdb.c:2445 g10/trustdb.c:2527
+#, fuzzy
+msgid "Good certificate"
+msgstr "Falsches Zertifikat"
 
-#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+#: g10/trustdb.c:1748
+msgid "very strange: no public key\n"
+msgstr ""
 
-#: g10/trustdb.c:1835
+#: g10/trustdb.c:1796
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:1841
+#: g10/trustdb.c:1802
 #, c-format
 msgid "lid %lu does not have a key\n"
 msgstr ""
 
-#: g10/trustdb.c:1851
+#: g10/trustdb.c:1812
 #, fuzzy, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
 msgstr "Der Schlüsselblock kann nicht geschrieben werden: %s\n"
 
-#: g10/trustdb.c:2096
+#: g10/trustdb.c:2022
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "Schlüssel %08lX: Keine User-ID\n"
 
-#: g10/trustdb.c:2188
+#: g10/trustdb.c:2028 g10/trustdb.c:2070
 #, fuzzy, c-format
-msgid ""
-"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "Schlüssel %08lX: Keine gültigen User-IDs\n"
 
-#: g10/trustdb.c:2211
+#: g10/trustdb.c:2043
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
 
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2049
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
-msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
 
-#: g10/trustdb.c:2240
+#: g10/trustdb.c:2064
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
 
-#: g10/trustdb.c:2279
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+#: g10/trustdb.c:2164
+#, fuzzy
+msgid "Good self-signature"
+msgstr "Selbst-Signatur übergangen\n"
+
+#: g10/trustdb.c:2172
+#, fuzzy
+msgid "Invalid self-signature"
 msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
 
-#: g10/trustdb.c:2290
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
-msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+#: g10/trustdb.c:2183
+#, fuzzy
+msgid "Valid user ID revocation\n"
+msgstr "Ungültige Auswahl.\n"
 
-#. key binding
-#: g10/trustdb.c:2386
-#, fuzzy, c-format
-msgid "key %08lX: bogus key binding by %08lX\n"
-msgstr "Schlüssel %08lX: Keine User-ID\n"
+#: g10/trustdb.c:2190
+#, fuzzy
+msgid "Invalid user ID revocation"
+msgstr "Ungültige Auswahl.\n"
 
-#. key revocation
-#: g10/trustdb.c:2390
-#, fuzzy, c-format
-msgid "key %08lX: bogus key revocation by %08lX\n"
-msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+#: g10/trustdb.c:2273
+#, fuzzy
+msgid "Too many preferences"
+msgstr "Liste der geheimen Schlüssel"
 
-#. subkey revocation
-#: g10/trustdb.c:2394
-#, fuzzy, c-format
-msgid "key %08lX: bogus subkey revocation by %08lX\n"
-msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+#: g10/trustdb.c:2286
+msgid "Too many preferences items"
+msgstr ""
+
+#: g10/trustdb.c:2423
+msgid "Duplicated certificate - deleted"
+msgstr ""
+
+#: g10/trustdb.c:2455
+#, fuzzy
+msgid "public key lost"
+msgstr "Falscher öffentlicher Schüssel"
+
+#: g10/trustdb.c:2464 g10/trustdb.c:2547
+#, fuzzy
+msgid "Invalid certificate revocation"
+msgstr "Falsches Zertifikat"
+
+#: g10/trustdb.c:2465 g10/trustdb.c:2548
+#, fuzzy
+msgid "Invalid certificate"
+msgstr "Falsches Zertifikat"
 
 #: g10/status.c:246
 msgid "No help available"
@@ -2324,6 +2434,26 @@ msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei 
 msgid "Overwrite (y/N)? "
 msgstr "Überschreiben (j/N)? "
 
+#: g10/openfile.c:85
+#, fuzzy
+msgid "writing to stdout\n"
+msgstr "Schreiben nach '%s'\n"
+
+#: g10/openfile.c:101 g10/openfile.c:165
+#, fuzzy, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: kann nicht geöffnet werden: %s\n"
+
+#: g10/openfile.c:134
+#, fuzzy, c-format
+msgid "assuming signed data in '%s'\n"
+msgstr "kann signierte Datei '%s' nicht öffnen.\n"
+
+#: g10/openfile.c:181
+#, c-format
+msgid "%s: new options file created\n"
+msgstr ""
+
 #: g10/encr-data.c:74
 msgid ""
 "Warning: Message was encrypted with a weak key in the symmetric cipher.\n"
@@ -2341,6 +2471,49 @@ msgstr ""
 "Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüsselfür "
 "sym.Verschlüsselung nicht vermieden werden!\n"
 
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+#~ msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+#~ msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+#~ msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#, fuzzy
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+#~ msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
 #~ msgid "key %08lX: already in ultikey_table\n"
 #~ msgstr "Schlüssel %08lX: bereits in der Tabelle der private Schlüssel\n"
 
index 53c86db..1de4a3d 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-10-18 16:36+0200\n"
+"POT-Creation-Date: 1998-11-08 18:21+0100\n"
 "Content-Type: text/plain; charset=\n"
 "Date: 1998-08-08 18:07:50+0200\n"
 "From: Werner Koch <wk@frodo>\n"
@@ -202,7 +202,7 @@ msgstr ""
 
 #: util/logger.c:177
 #, c-format
-msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n"
+msgid "... this is a bug (%s:%d:%s)\n"
 msgstr ""
 
 #: util/logger.c:183
@@ -231,93 +231,93 @@ msgid ""
 "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 msgstr ""
 
-#: g10/g10.c:149
+#: g10/g10.c:152
 msgid ""
 "@Commands:\n"
 " "
 msgstr ""
 
-#: g10/g10.c:152
+#: g10/g10.c:155
 msgid "|[file]|make a signature"
 msgstr ""
 
-#: g10/g10.c:153
+#: g10/g10.c:156
 msgid "|[file]|make a clear text signature"
 msgstr ""
 
-#: g10/g10.c:154
+#: g10/g10.c:157
 msgid "make a detached signature"
 msgstr ""
 
-#: g10/g10.c:155
+#: g10/g10.c:158
 msgid "encrypt data"
 msgstr ""
 
-#: g10/g10.c:156
+#: g10/g10.c:159
 msgid "encryption only with symmetric cipher"
 msgstr ""
 
-#: g10/g10.c:157
+#: g10/g10.c:160
 msgid "store only"
 msgstr ""
 
-#: g10/g10.c:158
+#: g10/g10.c:161
 msgid "decrypt data (default)"
 msgstr ""
 
-#: g10/g10.c:159
+#: g10/g10.c:162
 msgid "verify a signature"
 msgstr ""
 
-#: g10/g10.c:161
+#: g10/g10.c:164
 msgid "list keys"
 msgstr ""
 
-#: g10/g10.c:162
+#: g10/g10.c:165
 msgid "list keys and signatures"
 msgstr ""
 
-#: g10/g10.c:163
+#: g10/g10.c:166
 msgid "check key signatures"
 msgstr ""
 
-#: g10/g10.c:164
+#: g10/g10.c:167
 msgid "list keys and fingerprints"
 msgstr ""
 
-#: g10/g10.c:165
+#: g10/g10.c:168
 msgid "list secret keys"
 msgstr ""
 
-#: g10/g10.c:167
+#: g10/g10.c:170
 msgid "generate a new key pair"
 msgstr ""
 
-#: g10/g10.c:169
+#: g10/g10.c:172
 msgid "remove key from the public keyring"
 msgstr ""
 
-#: g10/g10.c:171
+#: g10/g10.c:174
 msgid "sign or edit a key"
 msgstr ""
 
-#: g10/g10.c:172
+#: g10/g10.c:175
 msgid "generate a revocation certificate"
 msgstr ""
 
-#: g10/g10.c:174
+#: g10/g10.c:177
 msgid "export keys"
 msgstr ""
 
-#: g10/g10.c:176
+#: g10/g10.c:179
 msgid "import/merge keys"
 msgstr ""
 
-#: g10/g10.c:177
+#: g10/g10.c:181
 msgid "list only the sequence of packets"
 msgstr ""
 
-#: g10/g10.c:180
+#: g10/g10.c:184
 #, fuzzy
 msgid "export the ownertrust values"
 msgstr ""
@@ -325,7 +325,7 @@ msgstr ""
 "to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
 "to do with the (implicitly created) web-of-certificates."
 
-#: g10/g10.c:182
+#: g10/g10.c:186
 #, fuzzy
 msgid "import ownertrust values"
 msgstr ""
@@ -333,163 +333,167 @@ msgstr ""
 "to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
 "to do with the (implicitly created) web-of-certificates."
 
-#: g10/g10.c:184
+#: g10/g10.c:188
 msgid "|[NAMES]|update the trust database"
 msgstr ""
 
-#: g10/g10.c:186
+#: g10/g10.c:190
 msgid "|[NAMES]|check the trust database"
 msgstr ""
 
-#: g10/g10.c:187
+#: g10/g10.c:191
 msgid "fix a corrupted trust database"
 msgstr ""
 
-#: g10/g10.c:188
+#: g10/g10.c:192
 msgid "De-Armor a file or stdin"
 msgstr ""
 
-#: g10/g10.c:189
+#: g10/g10.c:193
 msgid "En-Armor a file or stdin"
 msgstr ""
 
-#: g10/g10.c:190
+#: g10/g10.c:194
 msgid "|algo [files]|print message digests"
 msgstr ""
 
-#: g10/g10.c:191
+#: g10/g10.c:195
 msgid "print all message digests"
 msgstr ""
 
-#: g10/g10.c:198
+#: g10/g10.c:202
 msgid ""
 "@\n"
 "Options:\n"
 " "
 msgstr ""
 
-#: g10/g10.c:200
+#: g10/g10.c:204
 msgid "create ascii armored output"
 msgstr ""
 
-#: g10/g10.c:202
+#: g10/g10.c:206
 msgid "use this user-id to sign or decrypt"
 msgstr ""
 
-#: g10/g10.c:203
+#: g10/g10.c:207
 msgid "use this user-id for encryption"
 msgstr ""
 
-#: g10/g10.c:204
+#: g10/g10.c:208
 msgid "|N|set compress level N (0 disables)"
 msgstr ""
 
-#: g10/g10.c:205
+#: g10/g10.c:210
 msgid "use canonical text mode"
 msgstr ""
 
-#: g10/g10.c:207
+#: g10/g10.c:212
 msgid "use as output file"
 msgstr ""
 
-#: g10/g10.c:208
+#: g10/g10.c:213
 msgid "verbose"
 msgstr ""
 
-#: g10/g10.c:209
+#: g10/g10.c:214
+msgid "be somewhat more quiet"
+msgstr ""
+
+#: g10/g10.c:215
 msgid "force v3 signatures"
 msgstr ""
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:211
+#: g10/g10.c:217
 msgid "batch mode: never ask"
 msgstr ""
 
-#: g10/g10.c:212
+#: g10/g10.c:218
 msgid "assume yes on most questions"
 msgstr ""
 
-#: g10/g10.c:213
+#: g10/g10.c:219
 msgid "assume no on most questions"
 msgstr ""
 
-#: g10/g10.c:214
+#: g10/g10.c:220
 msgid "add this keyring to the list of keyrings"
 msgstr ""
 
-#: g10/g10.c:215
+#: g10/g10.c:221
 msgid "add this secret keyring to the list"
 msgstr ""
 
-#: g10/g10.c:216
+#: g10/g10.c:222
 msgid "|NAME|use NAME as default secret key"
 msgstr ""
 
-#: g10/g10.c:217
+#: g10/g10.c:223
 msgid "read options from file"
 msgstr ""
 
-#: g10/g10.c:219
+#: g10/g10.c:225
 msgid "set debugging flags"
 msgstr ""
 
-#: g10/g10.c:220
+#: g10/g10.c:226
 msgid "enable full debugging"
 msgstr ""
 
-#: g10/g10.c:221
+#: g10/g10.c:227
 msgid "|FD|write status info to this FD"
 msgstr ""
 
-#: g10/g10.c:222
+#: g10/g10.c:228
 msgid "do not write comment packets"
 msgstr ""
 
-#: g10/g10.c:223
+#: g10/g10.c:229
 msgid "(default is 1)"
 msgstr ""
 
-#: g10/g10.c:224
+#: g10/g10.c:230
 msgid "(default is 3)"
 msgstr ""
 
-#: g10/g10.c:225
+#: g10/g10.c:231
 msgid "|FILE|load extension module FILE"
 msgstr ""
 
-#: g10/g10.c:226
+#: g10/g10.c:232
 msgid "emulate the mode described in RFC1991"
 msgstr ""
 
-#: g10/g10.c:227
+#: g10/g10.c:233
 msgid "|N|use passphrase mode N"
 msgstr ""
 
-#: g10/g10.c:229
+#: g10/g10.c:235
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr ""
 
-#: g10/g10.c:231
+#: g10/g10.c:237
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr ""
 
-#: g10/g10.c:233
+#: g10/g10.c:239
 msgid "|NAME|use cipher algorithm NAME"
 msgstr ""
 
-#: g10/g10.c:234
+#: g10/g10.c:240
 msgid "|NAME|use message digest algorithm NAME"
 msgstr ""
 
-#: g10/g10.c:235
+#: g10/g10.c:241
 msgid "|N|use compress algorithm N"
 msgstr ""
 
-#: g10/g10.c:236
+#: g10/g10.c:242
 msgid "throw keyid field of encrypted packets"
 msgstr ""
 
-#: g10/g10.c:244
+#: g10/g10.c:250
 msgid ""
 "@\n"
 "Examples:\n"
@@ -501,172 +505,172 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 
-#: g10/g10.c:319
+#: g10/g10.c:325
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr ""
 
-#: g10/g10.c:324
+#: g10/g10.c:330
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr ""
 
-#: g10/g10.c:326
+#: g10/g10.c:332
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr ""
 
-#: g10/g10.c:331
+#: g10/g10.c:337
 msgid ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG maintenance utility\n"
 msgstr ""
 
-#: g10/g10.c:334
+#: g10/g10.c:340
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
 "default operation depends on the input data\n"
 msgstr ""
 
-#: g10/g10.c:340
+#: g10/g10.c:346
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 
-#: g10/g10.c:415
+#: g10/g10.c:421
 msgid "usage: gpgm [options] "
 msgstr ""
 
-#: g10/g10.c:417
+#: g10/g10.c:423
 msgid "usage: gpg [options] "
 msgstr ""
 
-#: g10/g10.c:458
+#: g10/g10.c:464
 msgid "conflicting commands\n"
 msgstr ""
 
-#: g10/g10.c:596
+#: g10/g10.c:602
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr ""
 
-#: g10/g10.c:600
+#: g10/g10.c:606
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: g10/g10.c:607
+#: g10/g10.c:613
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: g10/g10.c:778 g10/g10.c:790
+#: g10/g10.c:787 g10/g10.c:799
 msgid "selected cipher algorithm is invalid\n"
 msgstr ""
 
-#: g10/g10.c:784 g10/g10.c:796
+#: g10/g10.c:793 g10/g10.c:805
 msgid "selected digest algorithm is invalid\n"
 msgstr ""
 
-#: g10/g10.c:799
+#: g10/g10.c:808
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr ""
 
-#: g10/g10.c:801
+#: g10/g10.c:810
 msgid "completes-needed must be greater than 0\n"
 msgstr ""
 
-#: g10/g10.c:803
+#: g10/g10.c:812
 msgid "marginals-needed must be greater than 1\n"
 msgstr ""
 
-#: g10/g10.c:806
+#: g10/g10.c:815
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr ""
 
-#: g10/g10.c:810
+#: g10/g10.c:819
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr ""
 
-#: g10/g10.c:886
+#: g10/g10.c:895
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr ""
 
-#: g10/g10.c:892
+#: g10/g10.c:901
 msgid "--store [filename]"
 msgstr ""
 
-#: g10/g10.c:900
+#: g10/g10.c:909
 msgid "--symmetric [filename]"
 msgstr ""
 
-#: g10/g10.c:908
+#: g10/g10.c:917
 msgid "--encrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:921
+#: g10/g10.c:930
 msgid "--sign [filename]"
 msgstr ""
 
-#: g10/g10.c:934
+#: g10/g10.c:943
 msgid "--sign --encrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:948
+#: g10/g10.c:957
 msgid "--clearsign [filename]"
 msgstr ""
 
-#: g10/g10.c:960
+#: g10/g10.c:969
 msgid "--decrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:969
+#: g10/g10.c:978
 msgid "--edit-key username"
 msgstr ""
 
-#: g10/g10.c:977
+#: g10/g10.c:986
 msgid "--delete-secret-key username"
 msgstr ""
 
-#: g10/g10.c:980
+#: g10/g10.c:989
 msgid "--delete-key username"
 msgstr ""
 
-#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
+#: g10/encode.c:216 g10/g10.c:1012
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr ""
 
-#: g10/g10.c:1014
+#: g10/g10.c:1023
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr ""
 
-#: g10/g10.c:1069
+#: g10/g10.c:1079
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr ""
 
-#: g10/g10.c:1077
+#: g10/g10.c:1087
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr ""
 
-#: g10/g10.c:1138
+#: g10/g10.c:1148
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr ""
 
-#: g10/g10.c:1220
+#: g10/g10.c:1230
 msgid "[filename]"
 msgstr ""
 
-#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1232 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr ""
 
-#: g10/g10.c:1269
+#: g10/g10.c:1279
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -1049,7 +1053,7 @@ msgstr ""
 msgid "Is this correct (y/n)? "
 msgstr ""
 
-#: g10/keygen.c:561
+#: g10/keygen.c:569
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1059,51 +1063,51 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "Real name: "
 msgstr ""
 
-#: g10/keygen.c:576
+#: g10/keygen.c:584
 msgid "Invalid character in name\n"
 msgstr ""
 
-#: g10/keygen.c:578
+#: g10/keygen.c:586
 msgid "Name may not start with a digit\n"
 msgstr ""
 
-#: g10/keygen.c:580
+#: g10/keygen.c:588
 msgid "Name must be at least 5 characters long\n"
 msgstr ""
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "Email address: "
 msgstr ""
 
-#: g10/keygen.c:600
+#: g10/keygen.c:608
 msgid "Not a valid email address\n"
 msgstr ""
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "Comment: "
 msgstr ""
 
-#: g10/keygen.c:614
+#: g10/keygen.c:622
 msgid "Invalid character in comment\n"
 msgstr ""
 
-#: g10/keygen.c:634
+#: g10/keygen.c:642
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1111,11 +1115,11 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:637
+#: g10/keygen.c:645
 msgid "NnCcEeOoQq"
 msgstr ""
 
-#: g10/keygen.c:646
+#: g10/keygen.c:654
 msgid "keygen.userid.cmd"
 msgstr ""
 "N  to change the name.\n"
@@ -1124,21 +1128,21 @@ msgstr ""
 "O  to continue with key generation.\n"
 "Q  to to quit the key generation."
 
-#: g10/keygen.c:647
+#: g10/keygen.c:655
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr ""
 
-#: g10/keygen.c:694
+#: g10/keygen.c:707
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
 msgstr ""
 
-#: g10/keyedit.c:389 g10/keygen.c:702
+#: g10/keyedit.c:389 g10/keygen.c:715
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr ""
 
-#: g10/keygen.c:708
+#: g10/keygen.c:721
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1146,7 +1150,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:729
+#: g10/keygen.c:742
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1154,52 +1158,52 @@ msgid ""
 "number generator a better chance to gain enough entropy.\n"
 msgstr ""
 
-#: g10/keygen.c:799
+#: g10/keygen.c:812
 msgid "Key generation can only be used in interactive mode\n"
 msgstr ""
 
-#: g10/keygen.c:807
+#: g10/keygen.c:820
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr ""
 
-#: g10/keygen.c:813
+#: g10/keygen.c:826
 msgid "Key generation cancelled.\n"
 msgstr ""
 
-#: g10/keygen.c:823
+#: g10/keygen.c:836
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr ""
 
-#: g10/keygen.c:824
+#: g10/keygen.c:837
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr ""
 
-#: g10/keygen.c:901
+#: g10/keygen.c:914
 msgid "public and secret key created and signed.\n"
 msgstr ""
 
-#: g10/keygen.c:903
+#: g10/keygen.c:916
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
 msgstr ""
 
-#: g10/keygen.c:917 g10/keygen.c:1002
+#: g10/keygen.c:930 g10/keygen.c:1015
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr ""
 
-#: g10/keygen.c:979
+#: g10/keygen.c:992
 msgid "keygen.sub.okay"
 msgstr "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
 
-#: g10/keygen.c:980
+#: g10/keygen.c:993
 msgid "Really create? "
 msgstr ""
 
-#: g10/encode.c:88
+#: g10/encode.c:88 g10/openfile.c:81 g10/openfile.c:158
 #, c-format
 msgid "%s: can't open: %s\n"
 msgstr ""
@@ -1209,223 +1213,281 @@ msgstr ""
 msgid "error creating passphrase: %s\n"
 msgstr ""
 
-#: g10/encode.c:154 g10/encode.c:267
+#: g10/encode.c:155 g10/encode.c:269
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr ""
 
-#: g10/encode.c:221
+#: g10/encode.c:222
 #, c-format
 msgid "reading from '%s'\n"
 msgstr ""
 
-#: g10/encode.c:395
+#: g10/encode.c:397
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr ""
 
-#: g10/getkey.c:854
+#: g10/getkey.c:950
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 
-#: g10/import.c:106 g10/trustdb.c:1100
+#: g10/import.c:125 g10/trustdb.c:1046
 #, c-format
 msgid "can't open file: %s\n"
 msgstr ""
 
-#: g10/import.c:122
+#: g10/import.c:141
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr ""
 
-#: g10/import.c:132 g10/trustdb.c:1175
+#: g10/import.c:148 g10/trustdb.c:1289 g10/trustdb.c:1358
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr ""
+
+#: g10/import.c:153 g10/trustdb.c:1122
 #, c-format
 msgid "read error: %s\n"
 msgstr ""
 
-#: g10/import.c:273 g10/import.c:446
+#: g10/import.c:155
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr ""
+
+#: g10/import.c:157
+#, c-format
+msgid "          w/o user IDs: %lu\n"
+msgstr ""
+
+#: g10/import.c:159
+#, c-format
+msgid "              imported: %lu"
+msgstr ""
+
+#: g10/import.c:165
+#, c-format
+msgid "             unchanged: %lu\n"
+msgstr ""
+
+#: g10/import.c:167
+#, c-format
+msgid "          new user IDs: %lu\n"
+msgstr ""
+
+#: g10/import.c:169
+#, c-format
+msgid "           new subkeys: %lu\n"
+msgstr ""
+
+#: g10/import.c:171
+#, c-format
+msgid "        new signatures: %lu\n"
+msgstr ""
+
+#: g10/import.c:173
+#, c-format
+msgid "   new key revocations: %lu\n"
+msgstr ""
+
+#: g10/import.c:175
+#, c-format
+msgid "      secret keys read: %lu\n"
+msgstr ""
+
+#: g10/import.c:177
+#, c-format
+msgid "  secret keys imported: %lu\n"
+msgstr ""
+
+#: g10/import.c:179
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr ""
+
+#: g10/import.c:321 g10/import.c:513
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr ""
 
-#: g10/import.c:283
+#: g10/import.c:332
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr ""
 
-#: g10/import.c:285
+#: g10/import.c:334
 msgid "this may be caused by a missing self-signature\n"
 msgstr ""
 
-#: g10/import.c:294 g10/import.c:512
+#: g10/import.c:345 g10/import.c:581
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr ""
 
-#: g10/import.c:300
+#: g10/import.c:351
 msgid "no default public keyring\n"
 msgstr ""
 
-#: g10/import.c:304
+#: g10/import.c:355 g10/openfile.c:105
 #, c-format
 msgid "writing to '%s'\n"
 msgstr ""
 
-#: g10/import.c:308 g10/import.c:363 g10/import.c:566
+#: g10/import.c:359 g10/import.c:419 g10/import.c:635
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr ""
 
-#: g10/import.c:311
+#: g10/import.c:362
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr ""
 
-#. we are ready
-#: g10/import.c:314
+#: g10/import.c:366
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr ""
 
-#: g10/import.c:323
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr ""
 
-#: g10/import.c:336 g10/import.c:521
+#: g10/import.c:392 g10/import.c:590
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:343 g10/import.c:528
+#: g10/import.c:399 g10/import.c:597
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:360 g10/import.c:461 g10/import.c:563
+#: g10/import.c:416 g10/import.c:528 g10/import.c:632
 msgid "writing keyblock\n"
 msgstr ""
 
-#: g10/import.c:366 g10/import.c:569
+#: g10/import.c:422 g10/import.c:638
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:370
+#: g10/import.c:427
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr ""
 
-#: g10/import.c:373
+#: g10/import.c:430
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr ""
 
-#: g10/import.c:376
+#: g10/import.c:433
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr ""
 
-#: g10/import.c:379
+#: g10/import.c:436
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr ""
 
-#: g10/import.c:382
+#: g10/import.c:439
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr ""
 
-#: g10/import.c:385
+#: g10/import.c:442
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr ""
 
-#: g10/import.c:389
+#: g10/import.c:452
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr ""
 
-#: g10/import.c:464
+#: g10/import.c:531
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr ""
 
-#: g10/import.c:467
+#: g10/import.c:534
 #, c-format
 msgid "can't write keyring: %s\n"
 msgstr ""
 
 #. we are ready
-#: g10/import.c:470
+#: g10/import.c:537
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr ""
 
 #. we can't merge secret keys
-#: g10/import.c:473
+#: g10/import.c:541
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr ""
 
-#: g10/import.c:477
+#: g10/import.c:546
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr ""
 
-#: g10/import.c:506
+#: g10/import.c:575
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 
-#: g10/import.c:539
+#: g10/import.c:608
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr ""
 
-#. we are ready
-#: g10/import.c:572
+#: g10/import.c:642
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr ""
 
-#: g10/import.c:602
+#: g10/import.c:673
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr ""
 
-#: g10/import.c:609
+#: g10/import.c:680
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr ""
 
-#: g10/import.c:610
+#: g10/import.c:681
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr ""
 
-#: g10/import.c:639
+#: g10/import.c:710
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr ""
 
-#: g10/import.c:662
+#: g10/import.c:733
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr ""
 
-#: g10/import.c:670
+#: g10/import.c:741
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr ""
 
-#: g10/import.c:732
+#: g10/import.c:803
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr ""
 
-#: g10/import.c:795 g10/import.c:831
+#: g10/import.c:866 g10/import.c:902
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr ""
@@ -1715,163 +1777,163 @@ msgstr ""
 msgid "Secret key is available.\n"
 msgstr ""
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 msgid "keyedit.cmd"
 msgstr "Please enter \"help\"."
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 msgid "Command> "
 msgstr ""
 
-#: g10/keyedit.c:600
+#: g10/keyedit.c:602
 msgid "Need the secret key to to this.\n"
 msgstr ""
 
-#: g10/keyedit.c:619
+#: g10/keyedit.c:621
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:620
+#: g10/keyedit.c:622
 msgid "Save changes? "
 msgstr ""
 
-#: g10/keyedit.c:622
+#: g10/keyedit.c:624
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/keyedit.c:623
+#: g10/keyedit.c:625
 msgid "Quit without saving? "
 msgstr ""
 
-#: g10/keyedit.c:633
+#: g10/keyedit.c:635
 #, c-format
 msgid "update failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:640
+#: g10/keyedit.c:642
 #, c-format
 msgid "update secret failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:647
+#: g10/keyedit.c:649
 msgid "Key not changed so no update needed.\n"
 msgstr ""
 
-#: g10/keyedit.c:650 g10/keyedit.c:708
+#: g10/keyedit.c:652 g10/keyedit.c:710
 #, c-format
 msgid "update of trust db failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:683
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:682
+#: g10/keyedit.c:684
 msgid "Really sign all user ids? "
 msgstr ""
 
-#: g10/keyedit.c:683
+#: g10/keyedit.c:685
 msgid "Hint: Select the user ids to sign\n"
 msgstr ""
 
-#: g10/keyedit.c:719
+#: g10/keyedit.c:721
 msgid "You must select at least one user id.\n"
 msgstr ""
 
-#: g10/keyedit.c:721
+#: g10/keyedit.c:723
 msgid "You can't delete the last user id!\n"
 msgstr ""
 
-#: g10/keyedit.c:723
+#: g10/keyedit.c:725
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:724
+#: g10/keyedit.c:726
 msgid "Really remove all selected user ids? "
 msgstr ""
 
-#: g10/keyedit.c:725
+#: g10/keyedit.c:727
 msgid "Really remove this user id? "
 msgstr ""
 
-#: g10/keyedit.c:748
+#: g10/keyedit.c:750
 msgid "You must select at least one key.\n"
 msgstr ""
 
-#: g10/keyedit.c:750
+#: g10/keyedit.c:752
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:752
+#: g10/keyedit.c:754
 msgid "Do you really want to delete the selected keys? "
 msgstr ""
 
-#: g10/keyedit.c:753
+#: g10/keyedit.c:755
 msgid "Do you really want to delete this key? "
 msgstr ""
 
-#: g10/keyedit.c:800
+#: g10/keyedit.c:802
 msgid "Invalid command  (try \"help\")\n"
 msgstr ""
 
-#: g10/keyedit.c:1178
+#: g10/keyedit.c:1180
 msgid "Please remove selections from the secret keys.\n"
 msgstr ""
 
-#: g10/keyedit.c:1184
+#: g10/keyedit.c:1186
 msgid "Please select at most one secondary key.\n"
 msgstr ""
 
-#: g10/keyedit.c:1188
+#: g10/keyedit.c:1190
 msgid "Changing exiration time for a secondary key.\n"
 msgstr ""
 
-#: g10/keyedit.c:1190
+#: g10/keyedit.c:1192
 msgid "Changing exiration time for the primary key.\n"
 msgstr ""
 
-#: g10/keyedit.c:1234
+#: g10/keyedit.c:1236
 msgid "No corresponding signature in secret ring\n"
 msgstr ""
 
-#: g10/keyedit.c:1294
+#: g10/keyedit.c:1296
 #, c-format
 msgid "No user id with index %d\n"
 msgstr ""
 
-#: g10/keyedit.c:1339
+#: g10/keyedit.c:1341
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr ""
 
-#: g10/mainproc.c:200
+#: g10/mainproc.c:201
 #, c-format
 msgid "public key decryption failed: %s\n"
 msgstr ""
 
-#: g10/mainproc.c:230
+#: g10/mainproc.c:231
 #, c-format
 msgid "decryption failed: %s\n"
 msgstr ""
 
-#: g10/mainproc.c:247
+#: g10/mainproc.c:248
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr ""
 
-#: g10/mainproc.c:848
+#: g10/mainproc.c:842
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr ""
 
-#: g10/mainproc.c:856
+#: g10/mainproc.c:850
 msgid "BAD signature from \""
 msgstr ""
 
-#: g10/mainproc.c:857
+#: g10/mainproc.c:851
 msgid "Good signature from \""
 msgstr ""
 
-#: g10/mainproc.c:868
+#: g10/mainproc.c:862
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr ""
@@ -1950,188 +2012,226 @@ msgstr ""
 msgid "warning: signature key expired %s\n"
 msgstr ""
 
-#: g10/trustdb.c:122
+#: g10/trustdb.c:129
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 
-#: g10/trustdb.c:389
+#: g10/trustdb.c:407
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr ""
 
-#: g10/trustdb.c:436
+#: g10/trustdb.c:454
 #, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
 msgstr ""
 
-#: g10/trustdb.c:442
+#: g10/trustdb.c:460
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr ""
 
-#: g10/trustdb.c:452
+#: g10/trustdb.c:470
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr ""
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:476
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr ""
 
-#: g10/trustdb.c:467
+#: g10/trustdb.c:485
 #, c-format
 msgid "key %08lX: already in secret key table\n"
 msgstr ""
 
-#: g10/trustdb.c:470
+#: g10/trustdb.c:488
 #, c-format
 msgid "key %08lX: accepted as secret key.\n"
 msgstr ""
 
-#: g10/trustdb.c:477
+#: g10/trustdb.c:495
 #, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1428
+#: g10/trustdb.c:1292 g10/trustdb.c:1360
+#, c-format
+msgid "%lu keys processed\n"
+msgstr ""
+
+#: g10/trustdb.c:1294
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr ""
+
+#: g10/trustdb.c:1296 g10/trustdb.c:1362
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr ""
+
+#: g10/trustdb.c:1298 g10/trustdb.c:1364
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr ""
+
+#: g10/trustdb.c:1366
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr ""
+
+#: g10/trustdb.c:1421
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1432
+#: g10/trustdb.c:1425
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr ""
 
-#: g10/trustdb.c:1440
+#: g10/trustdb.c:1433
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 
-#: g10/trustdb.c:1447
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1455
+#: g10/trustdb.c:1448
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1718
+#: g10/trustdb.c:1666
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr ""
 
-#: g10/trustdb.c:1722
+#: g10/trustdb.c:1670
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr ""
 
 #. we need the dir record
-#: g10/trustdb.c:1729
+#: g10/trustdb.c:1677
 #, c-format
-msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:1735
+#: g10/trustdb.c:1683
 #, c-format
 msgid "lid %lu: no primary key\n"
 msgstr ""
 
-#: g10/trustdb.c:1764
+#: g10/trustdb.c:1716
 #, c-format
 msgid "lid %lu: user id not found in keyblock\n"
 msgstr ""
 
-#: g10/trustdb.c:1771
+#: g10/trustdb.c:1720
 #, c-format
-msgid "lid %lu: self-signature in hintlist\n"
+msgid "lid %lu: user id without signature\n"
 msgstr ""
 
-#: g10/trustdb.c:1776
+#: g10/trustdb.c:1727
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+msgid "lid %lu: self-signature in hintlist\n"
 msgstr ""
 
-#: g10/trustdb.c:1783
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+#: g10/trustdb.c:1738 g10/trustdb.c:2444 g10/trustdb.c:2526
+msgid "Valid certificate revocation"
 msgstr ""
 
-#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+#: g10/trustdb.c:1739 g10/trustdb.c:2445 g10/trustdb.c:2527
+msgid "Good certificate"
+msgstr ""
+
+#: g10/trustdb.c:1748
+msgid "very strange: no public key\n"
 msgstr ""
 
-#: g10/trustdb.c:1835
+#: g10/trustdb.c:1796
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:1841
+#: g10/trustdb.c:1802
 #, c-format
 msgid "lid %lu does not have a key\n"
 msgstr ""
 
-#: g10/trustdb.c:1851
+#: g10/trustdb.c:1812
 #, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:2096
+#: g10/trustdb.c:2022
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+msgid "key %08lX.%lu: Good subkey binding\n"
 msgstr ""
 
-#: g10/trustdb.c:2188
+#: g10/trustdb.c:2028 g10/trustdb.c:2070
 #, c-format
-msgid ""
-"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:2211
+#: g10/trustdb.c:2043
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+msgid "key %08lX.%lu: Valid key revocation\n"
 msgstr ""
 
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2049
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:2240
+#: g10/trustdb.c:2064
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+msgid "key %08lX.%lu: Valid subkey revocation\n"
 msgstr ""
 
-#: g10/trustdb.c:2279
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+#: g10/trustdb.c:2164
+msgid "Good self-signature"
 msgstr ""
 
-#: g10/trustdb.c:2290
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+#: g10/trustdb.c:2172
+msgid "Invalid self-signature"
 msgstr ""
 
-#. key binding
-#: g10/trustdb.c:2386
-#, c-format
-msgid "key %08lX: bogus key binding by %08lX\n"
+#: g10/trustdb.c:2183
+msgid "Valid user ID revocation\n"
 msgstr ""
 
-#. key revocation
-#: g10/trustdb.c:2390
-#, c-format
-msgid "key %08lX: bogus key revocation by %08lX\n"
+#: g10/trustdb.c:2190
+msgid "Invalid user ID revocation"
 msgstr ""
 
-#. subkey revocation
-#: g10/trustdb.c:2394
-#, c-format
-msgid "key %08lX: bogus subkey revocation by %08lX\n"
+#: g10/trustdb.c:2273
+msgid "Too many preferences"
+msgstr ""
+
+#: g10/trustdb.c:2286
+msgid "Too many preferences items"
+msgstr ""
+
+#: g10/trustdb.c:2423
+msgid "Duplicated certificate - deleted"
+msgstr ""
+
+#: g10/trustdb.c:2455
+msgid "public key lost"
+msgstr ""
+
+#: g10/trustdb.c:2464 g10/trustdb.c:2547
+msgid "Invalid certificate revocation"
+msgstr ""
+
+#: g10/trustdb.c:2465 g10/trustdb.c:2548
+msgid "Invalid certificate"
 msgstr ""
 
 #: g10/status.c:246
@@ -2171,6 +2271,25 @@ msgstr ""
 msgid "Overwrite (y/N)? "
 msgstr ""
 
+#: g10/openfile.c:85
+msgid "writing to stdout\n"
+msgstr ""
+
+#: g10/openfile.c:101 g10/openfile.c:165
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr ""
+
+#: g10/openfile.c:134
+#, c-format
+msgid "assuming signed data in '%s'\n"
+msgstr ""
+
+#: g10/openfile.c:181
+#, c-format
+msgid "%s: new options file created\n"
+msgstr ""
+
 #: g10/encr-data.c:74
 msgid ""
 "Warning: Message was encrypted with a weak key in the symmetric cipher.\n"
index 9bb50be..553ab15 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnupg-0.4.1a\n"
-"POT-Creation-Date: 1998-10-29 17:30+0100\n"
+"POT-Creation-Date: 1998-11-08 18:21+0100\n"
 "PO-Revision-Date: 1998-10-29 19:01+0100\n"
 "Last-Translator: Gaël Quéri <gqueri@mail.dotcom.fr>\n"
 "Language-Team: French <fr@li.org>\n"
@@ -237,7 +237,7 @@ msgstr ""
 "Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose\n"
 "pour que l'OS puisse amasser plus d'entropie! (il faut %d octets de plus)\n"
 
-#: g10/g10.c:151
+#: g10/g10.c:152
 msgid ""
 "@Commands:\n"
 " "
@@ -245,124 +245,124 @@ msgstr ""
 "@Commandes:\n"
 " "
 
-#: g10/g10.c:154
+#: g10/g10.c:155
 msgid "|[file]|make a signature"
 msgstr "|[fichier]|faire une signature"
 
-#: g10/g10.c:155
+#: g10/g10.c:156
 msgid "|[file]|make a clear text signature"
 msgstr "|[fichier]|faire une signature en texte clair"
 
-#: g10/g10.c:156
+#: g10/g10.c:157
 msgid "make a detached signature"
 msgstr "faire une signature détachée"
 
-#: g10/g10.c:157
+#: g10/g10.c:158
 msgid "encrypt data"
 msgstr "crypter les données"
 
-#: g10/g10.c:158
+#: g10/g10.c:159
 msgid "encryption only with symmetric cipher"
 msgstr "chiffrement symétrique seumement"
 
-#: g10/g10.c:159
+#: g10/g10.c:160
 msgid "store only"
 msgstr "pas d'action"
 
-#: g10/g10.c:160
+#: g10/g10.c:161
 msgid "decrypt data (default)"
 msgstr "décrypter les données (défaut)"
 
-#: g10/g10.c:161
+#: g10/g10.c:162
 msgid "verify a signature"
 msgstr "vérifier une signature"
 
-#: g10/g10.c:163
+#: g10/g10.c:164
 msgid "list keys"
 msgstr "lister les clés"
 
-#: g10/g10.c:164
+#: g10/g10.c:165
 msgid "list keys and signatures"
 msgstr "lister les clés et les signatures"
 
-#: g10/g10.c:165
+#: g10/g10.c:166
 msgid "check key signatures"
 msgstr "vérifier les signatures des clés"
 
-#: g10/g10.c:166
+#: g10/g10.c:167
 msgid "list keys and fingerprints"
 msgstr "lister les clés et les empreintes"
 
-#: g10/g10.c:167
+#: g10/g10.c:168
 msgid "list secret keys"
 msgstr "lister les clés secrètes"
 
-#: g10/g10.c:169
+#: g10/g10.c:170
 msgid "generate a new key pair"
 msgstr "générer une nouvelle paire de clés"
 
-#: g10/g10.c:171
+#: g10/g10.c:172
 msgid "remove key from the public keyring"
 msgstr "enlever la clé du porte-clés public"
 
-#: g10/g10.c:173
+#: g10/g10.c:174
 msgid "sign or edit a key"
 msgstr "signer ou éditer une clé"
 
-#: g10/g10.c:174
+#: g10/g10.c:175
 msgid "generate a revocation certificate"
 msgstr "générer un certificat de révocation"
 
-#: g10/g10.c:176
+#: g10/g10.c:177
 msgid "export keys"
 msgstr "exporter les clés"
 
-#: g10/g10.c:178
+#: g10/g10.c:179
 msgid "import/merge keys"
 msgstr "importer/fusionner les clés"
 
-#: g10/g10.c:180
+#: g10/g10.c:181
 msgid "list only the sequence of packets"
 msgstr "ne lister qu'une suite de paquets"
 
-#: g10/g10.c:183
+#: g10/g10.c:184
 msgid "export the ownertrust values"
 msgstr "exporter les valeurs de confiance"
 
-#: g10/g10.c:185
+#: g10/g10.c:186
 msgid "import ownertrust values"
 msgstr "importer les valeurs de confiance"
 
 #
-#: g10/g10.c:187
+#: g10/g10.c:188
 msgid "|[NAMES]|update the trust database"
 msgstr "|[NOMS]|mettre la base de confiance à jour"
 
-#: g10/g10.c:189
+#: g10/g10.c:190
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NOMS]|vérifier la base de confiance"
 
-#: g10/g10.c:190
+#: g10/g10.c:191
 msgid "fix a corrupted trust database"
 msgstr "réparer une base de confiance corrompue"
 
-#: g10/g10.c:191
+#: g10/g10.c:192
 msgid "De-Armor a file or stdin"
 msgstr "Enlever l'armure d'un fichier ou de stdin"
 
-#: g10/g10.c:192
+#: g10/g10.c:193
 msgid "En-Armor a file or stdin"
 msgstr "Mettre une armure à un fichier ou à stdin"
 
-#: g10/g10.c:193
+#: g10/g10.c:194
 msgid "|algo [files]|print message digests"
 msgstr "|alg. [fich.]|indiquer les fonctions de hachage"
 
-#: g10/g10.c:194
+#: g10/g10.c:195
 msgid "print all message digests"
 msgstr "écrire toutes les fonctions de hachage"
 
-#: g10/g10.c:201
+#: g10/g10.c:202
 msgid ""
 "@\n"
 "Options:\n"
@@ -372,133 +372,133 @@ msgstr ""
 "Options:\n"
 " "
 
-#: g10/g10.c:203
+#: g10/g10.c:204
 msgid "create ascii armored output"
 msgstr "créer une sortie ascii armurée"
 
-#: g10/g10.c:205
+#: g10/g10.c:206
 msgid "use this user-id to sign or decrypt"
 msgstr "utiliser ce nom pour signer ou décrypter"
 
-#: g10/g10.c:206
+#: g10/g10.c:207
 msgid "use this user-id for encryption"
 msgstr "utiliser ce nom d'utilisateur pour crypter"
 
-#: g10/g10.c:207
+#: g10/g10.c:208
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|niveau de compression N (0 désactive)"
 
-#: g10/g10.c:208
+#: g10/g10.c:210
 msgid "use canonical text mode"
 msgstr "utiliser le mode de texte canonique"
 
-#: g10/g10.c:210
+#: g10/g10.c:212
 msgid "use as output file"
 msgstr "utiliser comme fichier de sortie"
 
-#: g10/g10.c:211
+#: g10/g10.c:213
 msgid "verbose"
 msgstr "bavard"
 
-#: g10/g10.c:212
+#: g10/g10.c:214
 msgid "be somewhat more quiet"
 msgstr "devenir beaucoup plus silencieux"
 
 #
-#: g10/g10.c:213
+#: g10/g10.c:215
 msgid "force v3 signatures"
 msgstr "forcer les signatures en v3"
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:215
+#: g10/g10.c:217
 msgid "batch mode: never ask"
 msgstr "mode automatique: ne jamais rien demander"
 
-#: g10/g10.c:216
+#: g10/g10.c:218
 msgid "assume yes on most questions"
 msgstr "supposer oui à la plupart des questions"
 
-#: g10/g10.c:217
+#: g10/g10.c:219
 msgid "assume no on most questions"
 msgstr "supposer non à la plupart des questions"
 
-#: g10/g10.c:218
+#: g10/g10.c:220
 msgid "add this keyring to the list of keyrings"
 msgstr "ajouter ce porte-clés à la liste des porte-clés"
 
-#: g10/g10.c:219
+#: g10/g10.c:221
 msgid "add this secret keyring to the list"
 msgstr "ajouter ce porte-clés secret à la liste"
 
-#: g10/g10.c:220
+#: g10/g10.c:222
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NOM|utiliser NOM comme clé secrète par défaut"
 
-#: g10/g10.c:221
+#: g10/g10.c:223
 msgid "read options from file"
 msgstr "lire les options du fichier"
 
-#: g10/g10.c:223
+#: g10/g10.c:225
 msgid "set debugging flags"
 msgstr "choisir les attributs de déboguage"
 
-#: g10/g10.c:224
+#: g10/g10.c:226
 msgid "enable full debugging"
 msgstr "permettre un déboguage complet"
 
-#: g10/g10.c:225
+#: g10/g10.c:227
 msgid "|FD|write status info to this FD"
 msgstr "|FD|écrire les informations d'état sur ce descripteur"
 
-#: g10/g10.c:226
+#: g10/g10.c:228
 msgid "do not write comment packets"
 msgstr "ne pas écrire de paquets de commentaire"
 
-#: g10/g10.c:227
+#: g10/g10.c:229
 msgid "(default is 1)"
 msgstr "(1 par défaut)"
 
-#: g10/g10.c:228
+#: g10/g10.c:230
 msgid "(default is 3)"
 msgstr "(3 par défaut)"
 
-#: g10/g10.c:229
+#: g10/g10.c:231
 msgid "|FILE|load extension module FILE"
 msgstr "|FICH|charger le module d'extension FICH"
 
-#: g10/g10.c:230
+#: g10/g10.c:232
 msgid "emulate the mode described in RFC1991"
 msgstr "émuler le mode décrit dans la RFC1991"
 
-#: g10/g10.c:231
+#: g10/g10.c:233
 msgid "|N|use passphrase mode N"
 msgstr "|N|utiliser le mode de mots de passe N"
 
-#: g10/g10.c:233
+#: g10/g10.c:235
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NOM|utiliser le hachage NOM pour les mots de passe"
 
-#: g10/g10.c:235
+#: g10/g10.c:237
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NOM|utiliser le cryptage NOM pour les mots de passe"
 
-#: g10/g10.c:237
+#: g10/g10.c:239
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NOM|utiliser l'algorithme de cryptage NOM"
 
-#: g10/g10.c:238
+#: g10/g10.c:240
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NOM|utiliser la fonction de hachage NOM"
 
-#: g10/g10.c:239
+#: g10/g10.c:241
 msgid "|N|use compress algorithm N"
 msgstr "|N|utiliser l'algorithme de compression N"
 
-#: g10/g10.c:240
+#: g10/g10.c:242
 msgid "throw keyid field of encrypted packets"
 msgstr "enlever l'identification des paquets cryptés"
 
-#: g10/g10.c:248
+#: g10/g10.c:250
 msgid ""
 "@\n"
 "Examples:\n"
@@ -518,20 +518,20 @@ msgstr ""
 " --list-keys [utilisateur]    montrer les clés\n"
 " --fingerprint [utilisateur]  montrer les empreintes\n"
 
-#: g10/g10.c:323
+#: g10/g10.c:325
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Rapporter toutes anomalies à <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:328
+#: g10/g10.c:330
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Utilisation: gpgm [options] [fichiers] (-h pour l'aide)"
 
-#: g10/g10.c:330
+#: g10/g10.c:332
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Utilisation: gpg [options] [fichiers] (-h pour l'aide)"
 
 #
-#: g10/g10.c:335
+#: g10/g10.c:337
 msgid ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG maintenance utility\n"
@@ -539,7 +539,7 @@ msgstr ""
 "Syntaxe: gpgm [options] [fichiers]\n"
 "utilitaire de maitenance de GnuPG\n"
 
-#: g10/g10.c:338
+#: g10/g10.c:340
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -549,7 +549,7 @@ msgstr ""
 "signer, vérifier, crypter ou décrypter\n"
 "l'opération par défaut dépend des données entrées\n"
 
-#: g10/g10.c:344
+#: g10/g10.c:346
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -557,141 +557,141 @@ msgstr ""
 "\n"
 "Algorithmes supportés:\n"
 
-#: g10/g10.c:419
+#: g10/g10.c:421
 msgid "usage: gpgm [options] "
 msgstr "utilisation: gpgm [options] "
 
-#: g10/g10.c:421
+#: g10/g10.c:423
 msgid "usage: gpg [options] "
 msgstr "utilisation: gpg [options] "
 
-#: g10/g10.c:462
+#: g10/g10.c:464
 msgid "conflicting commands\n"
 msgstr "commandes en conflit\n"
 
-#: g10/g10.c:600
+#: g10/g10.c:602
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "note: pas de fichier d'options par défaut '%s'\n"
 
-#: g10/g10.c:604
+#: g10/g10.c:606
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "fichier d'options '%s' : %s\n"
 
-#: g10/g10.c:611
+#: g10/g10.c:613
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "lire les options de '%s'\n"
 
-#: g10/g10.c:784 g10/g10.c:796
+#: g10/g10.c:787 g10/g10.c:799
 msgid "selected cipher algorithm is invalid\n"
 msgstr "l'algorithme de cryptage sélectionné est invalide\n"
 
-#: g10/g10.c:790 g10/g10.c:802
+#: g10/g10.c:793 g10/g10.c:805
 msgid "selected digest algorithm is invalid\n"
 msgstr "la fonction de hachage sélectionnée est invalide\n"
 
-#: g10/g10.c:805
+#: g10/g10.c:808
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "l'algorithme de compression doit faire partie de l'échelle %d..%d\n"
 
-#: g10/g10.c:807
+#: g10/g10.c:810
 msgid "completes-needed must be greater than 0\n"
 msgstr "le nombre de signatures complètes minimal doit être supérieur à 0\n"
 
-#: g10/g10.c:809
+#: g10/g10.c:812
 msgid "marginals-needed must be greater than 1\n"
 msgstr "le nombre de singatures marginales minimal doit être supérieur à 1\n"
 
-#: g10/g10.c:812
+#: g10/g10.c:815
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "note: le mode S2K simple (0) est fortement déconseillé\n"
 
-#: g10/g10.c:816
+#: g10/g10.c:819
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "mode S2K invalide; doit être 0, 1 ou 3\n"
 
-#: g10/g10.c:892
+#: g10/g10.c:895
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "n'a pas pu initialiser la base de confiance: %s\n"
 
-#: g10/g10.c:898
+#: g10/g10.c:901
 msgid "--store [filename]"
 msgstr "--store [nom du fichier]"
 
-#: g10/g10.c:906
+#: g10/g10.c:909
 msgid "--symmetric [filename]"
 msgstr "--symmetric [nom du fichier]"
 
-#: g10/g10.c:914
+#: g10/g10.c:917
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nom du fichier]"
 
-#: g10/g10.c:927
+#: g10/g10.c:930
 msgid "--sign [filename]"
 msgstr "--sign [nom du fichier]"
 
-#: g10/g10.c:940
+#: g10/g10.c:943
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [nom du fichier]"
 
-#: g10/g10.c:954
+#: g10/g10.c:957
 msgid "--clearsign [filename]"
 msgstr "--clearsign [nom du fichier]"
 
-#: g10/g10.c:966
+#: g10/g10.c:969
 msgid "--decrypt [filename]"
 msgstr "--decrypt [nom du fichier]"
 
-#: g10/g10.c:975
+#: g10/g10.c:978
 msgid "--edit-key username"
 msgstr "--edit-key utilisateur"
 
-#: g10/g10.c:983
+#: g10/g10.c:986
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key utilisateur"
 
-#: g10/g10.c:986
+#: g10/g10.c:989
 msgid "--delete-key username"
 msgstr "--delete-key utilisateur"
 
-#: g10/encode.c:216 g10/g10.c:1009
+#: g10/encode.c:216 g10/g10.c:1012
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "ne peut ouvrir %s: %s\n"
 
-#: g10/g10.c:1020
+#: g10/g10.c:1023
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [utilisateur] [porte-clés]"
 
-#: g10/g10.c:1076
+#: g10/g10.c:1079
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "suppression d'armure non réussie: %s\n"
 
-#: g10/g10.c:1084
+#: g10/g10.c:1087
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "mise d'armure non réussie:%s \n"
 
-#: g10/g10.c:1145
+#: g10/g10.c:1148
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "algorithme de hachage invalide '%s'\n"
 
-#: g10/g10.c:1227
+#: g10/g10.c:1230
 msgid "[filename]"
 msgstr "[nom du fichier]"
 
-#: g10/decrypt.c:59 g10/g10.c:1229 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1232 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "ne peut ouvrir '%s'\n"
 
-#: g10/g10.c:1276
+#: g10/g10.c:1279
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -1192,7 +1192,7 @@ msgstr ""
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter? "
 
-#: g10/keygen.c:702
+#: g10/keygen.c:707
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1200,11 +1200,11 @@ msgstr ""
 "Vous avez besoin d'un mot de passe pour protéger votre clé secrète.\n"
 "\n"
 
-#: g10/keyedit.c:389 g10/keygen.c:710
+#: g10/keyedit.c:389 g10/keygen.c:715
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "le mot de passe n'a pas été correctement répété; recommencez.\n"
 
-#: g10/keygen.c:716
+#: g10/keygen.c:721
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1216,7 +1216,7 @@ msgstr ""
 "le désirez, en utilisant ce programme avec l'option \"--edit-key\".\n"
 "\n"
 
-#: g10/keygen.c:737
+#: g10/keygen.c:742
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1229,33 +1229,33 @@ msgstr ""
 "premiers; cela permet au générateur de nombres aléatoires de gagner assez\n"
 "d'entropie plus facilement.\n"
 
-#: g10/keygen.c:807
+#: g10/keygen.c:812
 msgid "Key generation can only be used in interactive mode\n"
 msgstr "La génération de clé ne peut être faite qu'en mode interactif\n"
 
-#: g10/keygen.c:815
+#: g10/keygen.c:820
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "La paire de clés DSA fera 1024 bits.\n"
 
-#: g10/keygen.c:821
+#: g10/keygen.c:826
 msgid "Key generation cancelled.\n"
 msgstr "La génération a été annulée.\n"
 
-#: g10/keygen.c:831
+#: g10/keygen.c:836
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "écriture d'un certificat public à '%s'\n"
 
-#: g10/keygen.c:832
+#: g10/keygen.c:837
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "écriture d'un certificat secret à '%s'\n"
 
-#: g10/keygen.c:909
+#: g10/keygen.c:914
 msgid "public and secret key created and signed.\n"
 msgstr "les clés publique et secrète ont été créées et signées.\n"
 
-#: g10/keygen.c:911
+#: g10/keygen.c:916
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1264,16 +1264,16 @@ msgstr ""
 "utiliser\n"
 "la commande \"--add-key\" pour générer une clé secondaire à cette fin.\n"
 
-#: g10/keygen.c:925 g10/keygen.c:1010
+#: g10/keygen.c:930 g10/keygen.c:1015
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "La génération de clé a échoué: %s\n"
 
-#: g10/keygen.c:987
+#: g10/keygen.c:992
 msgid "keygen.sub.okay"
 msgstr "Répondez \"oui\" (ou simplement \"o\") pour générer la sous-clé"
 
-#: g10/keygen.c:988
+#: g10/keygen.c:993
 msgid "Really create? "
 msgstr "Créer vraiment? "
 
@@ -1302,14 +1302,14 @@ msgstr "lecture de '%s'\n"
 msgid "%s encrypted for: %s\n"
 msgstr "%s crypté pour: %s\n"
 
-#: g10/getkey.c:850
+#: g10/getkey.c:950
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 "utilisation de la clé secondaire %08lX à la place de la clé\n"
 "principale %08lX\n"
 
-#: g10/import.c:125 g10/trustdb.c:1082
+#: g10/import.c:125 g10/trustdb.c:1046
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "ne peut ouvrir le fichier: %s\n"
@@ -1319,12 +1319,12 @@ msgstr "ne peut ouvrir le fichier: %s\n"
 msgid "skipping block of type %d\n"
 msgstr "ne prend pas en compte le bloc du type %d\n"
 
-#: g10/import.c:148 g10/trustdb.c:1284 g10/trustdb.c:1349
+#: g10/import.c:148 g10/trustdb.c:1289 g10/trustdb.c:1358
 #, c-format
 msgid "%lu keys so far processed\n"
 msgstr "%lu clés traitées jusqu'ici\n"
 
-#: g10/import.c:153 g10/trustdb.c:1157
+#: g10/import.c:153 g10/trustdb.c:1122
 #, c-format
 msgid "read error: %s\n"
 msgstr "erreur de lecture: %s\n"
@@ -2108,109 +2108,109 @@ msgstr ""
 msgid "warning: signature key expired %s\n"
 msgstr "attention: la clé de signature a expiré le %s\n"
 
-#: g10/trustdb.c:115
+#: g10/trustdb.c:129
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 "La base de confiance est corrompue; exécutez \"gpgm --fix-trust-db\".\n"
 
-#: g10/trustdb.c:379
+#: g10/trustdb.c:407
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n"
 
-#: g10/trustdb.c:426
+#: g10/trustdb.c:454
 #, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "clé %08lX: clé secrète sans clé publique - non prise en compte\n"
 
-#: g10/trustdb.c:432
+#: g10/trustdb.c:460
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr "clé %08lX: les clés secrète et publique ne correspondent pas\n"
 
-#: g10/trustdb.c:442
+#: g10/trustdb.c:470
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "clé %08lX: ne peut mettre cela dans la base de confiance\n"
 
-#: g10/trustdb.c:448
+#: g10/trustdb.c:476
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "clé %08lX: l'enregistrement de requête a échoué\n"
 
-#: g10/trustdb.c:457
+#: g10/trustdb.c:485
 #, c-format
 msgid "key %08lX: already in secret key table\n"
 msgstr "clé %08lX: déjà dans la table des clés secrètes\n"
 
-#: g10/trustdb.c:460
+#: g10/trustdb.c:488
 #, c-format
 msgid "key %08lX: accepted as secret key.\n"
 msgstr "clé %08lX: acceptée comme clé secrète.\n"
 
-#: g10/trustdb.c:467
+#: g10/trustdb.c:495
 #, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr "enum_secret_keys a échoué: %s\n"
 
-#: g10/trustdb.c:1287 g10/trustdb.c:1351
+#: g10/trustdb.c:1292 g10/trustdb.c:1360
 #, c-format
 msgid "%lu keys processed\n"
 msgstr "%lu clés traitées\n"
 
-#: g10/trustdb.c:1289
+#: g10/trustdb.c:1294
 #, c-format
 msgid "\t%lu keys skipped\n"
 msgstr "\t%lu clés non prises en compte\n"
 
-#: g10/trustdb.c:1291 g10/trustdb.c:1353
+#: g10/trustdb.c:1296 g10/trustdb.c:1362
 #, c-format
 msgid "\t%lu keys with errors\n"
 msgstr "\t%lu clés avec erreurs\n"
 
-#: g10/trustdb.c:1293 g10/trustdb.c:1355
+#: g10/trustdb.c:1298 g10/trustdb.c:1364
 #, c-format
 msgid "\t%lu keys updated\n"
 msgstr "\t%lu clés mises à jour\n"
 
-#: g10/trustdb.c:1357
+#: g10/trustdb.c:1366
 #, c-format
 msgid "\t%lu keys inserted\n"
 msgstr "\t%lu clés insérées\n"
 
-#: g10/trustdb.c:1412
+#: g10/trustdb.c:1421
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
 
-#: g10/trustdb.c:1416
+#: g10/trustdb.c:1425
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "clé %08lX.%lu: insérée dans la base de confiance\n"
 
-#: g10/trustdb.c:1424
+#: g10/trustdb.c:1433
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr "clé %08lX.%lu: créée dans le futur (problème d'horloge)\n"
 
-#: g10/trustdb.c:1431
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "clé %08lX.%lu: a expiré le %s\n"
 
-#: g10/trustdb.c:1439
+#: g10/trustdb.c:1448
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "clé %08lX.%lu: la vérification de confiance a échoué: %s\n"
 
-#: g10/trustdb.c:1656
+#: g10/trustdb.c:1666
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr ""
 "note: enregistrement de signature %lu[%d] dans la liste d'aide de %lu mais\n"
 "mais marqué comme vérifié\n"
 
-#: g10/trustdb.c:1660
+#: g10/trustdb.c:1670
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr ""
@@ -2218,127 +2218,136 @@ msgstr ""
 "non marqué\n"
 
 #. we need the dir record
-#: g10/trustdb.c:1667
-#, c-format
-msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+#: g10/trustdb.c:1677
+#, fuzzy, c-format
+msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr ""
 "l'enregistrement de signature %lu[%d] dans la liste d'aide de %u ne pointe\n"
 "pas vers un enregistrement de répertoire\n"
 
-#: g10/trustdb.c:1673
+#: g10/trustdb.c:1683
 #, c-format
 msgid "lid %lu: no primary key\n"
 msgstr "lid %lu: pas de clé primaire\n"
 
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1716
 #, c-format
 msgid "lid %lu: user id not found in keyblock\n"
 msgstr "lid %lu: utilisateur non trouvé dans le bloc de clés\n"
 
-#: g10/trustdb.c:1709
+#: g10/trustdb.c:1720
 #, c-format
 msgid "lid %lu: user id without signature\n"
 msgstr "lid %lu: utilisateur sans signature\n"
 
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1727
 #, c-format
 msgid "lid %lu: self-signature in hintlist\n"
 msgstr "lid %lu: auto-signature dans la liste d'aide\n"
 
-#: g10/trustdb.c:1721
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (3)\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (3)\n"
+#: g10/trustdb.c:1738 g10/trustdb.c:2444 g10/trustdb.c:2526
+#, fuzzy
+msgid "Valid certificate revocation"
+msgstr "Mauvais certificat"
 
-#: g10/trustdb.c:1728
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
-msgstr ""
-"clé %08lX.%lu, uid %02X%02X, sig %08lX: très étrange: pas de clé publique\n"
+#: g10/trustdb.c:1739 g10/trustdb.c:2445 g10/trustdb.c:2527
+#, fuzzy
+msgid "Good certificate"
+msgstr "Mauvais certificat"
 
-#: g10/trustdb.c:1735 g10/trustdb.c:2207 g10/trustdb.c:2280
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
+#: g10/trustdb.c:1748
+msgid "very strange: no public key\n"
+msgstr ""
 
-#: g10/trustdb.c:1779
+#: g10/trustdb.c:1796
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 msgstr ""
 "la liste d'aide de %lu[%d] de %lu ne pointe pas vers un enregistrement\n"
 "de répertoire\n"
 
-#: g10/trustdb.c:1785
+#: g10/trustdb.c:1802
 #, c-format
 msgid "lid %lu does not have a key\n"
 msgstr "la lid %lu n'a pas de clé\n"
 
-#: g10/trustdb.c:1795
+#: g10/trustdb.c:1812
 #, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
 msgstr "lid %lu: ne peut obtenir le bloc de clés: %s\n"
 
-#: g10/trustdb.c:2085
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: Good self-signature\n"
-msgstr "clé %08lX.%lu, uid %02X%02X: Bonne auto-signature\n"
+#: g10/trustdb.c:2022
+#, fuzzy, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "clé %08lX: mauvaise association avec %08lX\n"
 
-#: g10/trustdb.c:2091
-#, c-format
-msgid "key %08lX, uid %02X%02X: Invalid self-signature: %s\n"
-msgstr "clé %08lX.%lu, uid %02X%02X: Auto-signature invalide: %s\n"
+#: g10/trustdb.c:2028 g10/trustdb.c:2070
+#, fuzzy, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "clé %08lX: pas de nom d'utilisateur valide\n"
 
-#: g10/trustdb.c:2171
-#, c-format
-msgid ""
-"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
-msgstr ""
-"clé %08lX.%lu, uid %02X%02X, sig %08lX: signature dupliquée - effacée\n"
+#: g10/trustdb.c:2043
+#, fuzzy, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "clé %08lX: mauvaise révocation de clé par %08lX\n"
 
-#: g10/trustdb.c:2193
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (1)\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (1)\n"
+#: g10/trustdb.c:2049
+#, fuzzy, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "clé %08lX: mauvaise révocation de clé par %08lX\n"
 
-#: g10/trustdb.c:2200
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: bizarre: pas de clé publique\n"
+#: g10/trustdb.c:2064
+#, fuzzy, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "clé %08lX: mauvaise révocation de sous-clé par %08lX\n"
 
-#: g10/trustdb.c:2222
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
-msgstr ""
-"clé %08lX.%lu, uid %02X%02X: possède une ombre %lu mais pas encore\n"
-"marquée.\n"
+#: g10/trustdb.c:2164
+#, fuzzy
+msgid "Good self-signature"
+msgstr "[auto-signature]"
 
-#: g10/trustdb.c:2263
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (2)\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (2)\n"
+#: g10/trustdb.c:2172
+#, fuzzy
+msgid "Invalid self-signature"
+msgstr "clé %08lX: auto-signature invalide\n"
 
-#: g10/trustdb.c:2272
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
-msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: pas de clé publique\n"
+#: g10/trustdb.c:2183
+#, fuzzy
+msgid "Valid user ID revocation\n"
+msgstr "Choix invalide.\n"
 
-#. key binding
-#: g10/trustdb.c:2364
-#, c-format
-msgid "key %08lX: bogus key binding by %08lX\n"
-msgstr "clé %08lX: mauvaise association avec %08lX\n"
+#: g10/trustdb.c:2190
+#, fuzzy
+msgid "Invalid user ID revocation"
+msgstr "Choix invalide.\n"
 
-#. key revocation
-#: g10/trustdb.c:2368
-#, c-format
-msgid "key %08lX: bogus key revocation by %08lX\n"
-msgstr "clé %08lX: mauvaise révocation de clé par %08lX\n"
+#: g10/trustdb.c:2273
+#, fuzzy
+msgid "Too many preferences"
+msgstr "lister les préférences"
 
-#. subkey revocation
-#: g10/trustdb.c:2372
-#, c-format
-msgid "key %08lX: bogus subkey revocation by %08lX\n"
-msgstr "clé %08lX: mauvaise révocation de sous-clé par %08lX\n"
+#: g10/trustdb.c:2286
+msgid "Too many preferences items"
+msgstr ""
+
+#: g10/trustdb.c:2423
+msgid "Duplicated certificate - deleted"
+msgstr ""
+
+#: g10/trustdb.c:2455
+#, fuzzy
+msgid "public key lost"
+msgstr "Mauvaise clé publique"
+
+#: g10/trustdb.c:2464 g10/trustdb.c:2547
+#, fuzzy
+msgid "Invalid certificate revocation"
+msgstr "Mauvais certificat"
+
+#: g10/trustdb.c:2465 g10/trustdb.c:2548
+#, fuzzy
+msgid "Invalid certificate"
+msgstr "Mauvais certificat"
 
 #: g10/status.c:246
 msgid "No help available"
@@ -2414,3 +2423,44 @@ msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
 "ne peut éviter une mauvaise clé pour le chiffrement symétrique: \n"
 "%d essais ont eu lieu!\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (3)\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (3)\n"
+
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+#~ msgstr ""
+#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: très étrange: pas de clé publique\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X: Good self-signature\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X: Bonne auto-signature\n"
+
+#~ msgid "key %08lX, uid %02X%02X: Invalid self-signature: %s\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X: Auto-signature invalide: %s\n"
+
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+#~ msgstr ""
+#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: signature dupliquée - effacée\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (1)\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (1)\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+#~ msgstr ""
+#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: bizarre: pas de clé publique\n"
+
+#~ msgid ""
+#~ "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+#~ msgstr ""
+#~ "clé %08lX.%lu, uid %02X%02X: possède une ombre %lu mais pas encore\n"
+#~ "marquée.\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (2)\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (2)\n"
+
+#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: pas de clé publique\n"
index 695265d..32181cd 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -1,12 +1,12 @@
 # SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Marco d'Itri <md@linux.it>, 1998.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gnupg-0.4.0\n"
-"POT-Creation-Date: 1998-10-18 16:36+0200\n"
-"PO-Revision-Date: 1998-10-11 12:34+02:00\n"
+"Project-Id-Version: gnupg-0.4.3\n"
+"POT-Creation-Date: 1998-11-09 15:47+0100\n"
+"PO-Revision-Date: 1998-11-09 16:19+01:00\n"
 "Last-Translator: Marco d'Itri <md@linux.it>\n"
 "Language-Team: Italian <it@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -199,8 +199,8 @@ msgstr "Chiave debole"
 
 #: util/logger.c:177
 #, c-format
-msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n"
-msgstr "Ohhh... questo è un bug (%s:%d:%s)\n"
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... questo è un bug (%s:%d:%s)\n"
 
 #: util/logger.c:183
 #, c-format
@@ -235,7 +235,7 @@ msgstr ""
 "altra cosa per dare all'OS la possibilità di raccogliere altra entropia!\n"
 "(Servono ancora %d altri byte)\n"
 
-#: g10/g10.c:149
+#: g10/g10.c:152
 msgid ""
 "@Commands:\n"
 " "
@@ -243,124 +243,123 @@ msgstr ""
 "@Comandi:\n"
 " "
 
-#: g10/g10.c:152
+#: g10/g10.c:155
 msgid "|[file]|make a signature"
 msgstr "|[file]|fai una firma"
 
-#: g10/g10.c:153
+#: g10/g10.c:156
 msgid "|[file]|make a clear text signature"
 msgstr "|[file]|fai una firma mantenendo il testo in chiaro"
 
-#: g10/g10.c:154
+#: g10/g10.c:157
 msgid "make a detached signature"
 msgstr "fai una firma separata"
 
-#: g10/g10.c:155
+#: g10/g10.c:158
 msgid "encrypt data"
 msgstr "cifra dati"
 
-#: g10/g10.c:156
+#: g10/g10.c:159
 msgid "encryption only with symmetric cipher"
 msgstr "cifra solo con un cifrario simmetrico"
 
-#: g10/g10.c:157
+#: g10/g10.c:160
 msgid "store only"
 msgstr "immagazzina soltanto"
 
-#: g10/g10.c:158
+#: g10/g10.c:161
 msgid "decrypt data (default)"
 msgstr "decifra dati (predefinito)"
 
-#: g10/g10.c:159
+#: g10/g10.c:162
 msgid "verify a signature"
 msgstr "verifica una firma"
 
-#: g10/g10.c:161
+#: g10/g10.c:164
 msgid "list keys"
 msgstr "elenca le chiavi"
 
-#: g10/g10.c:162
+#: g10/g10.c:165
 msgid "list keys and signatures"
 msgstr "elenca le chiavi e le firme"
 
-#: g10/g10.c:163
+#: g10/g10.c:166
 msgid "check key signatures"
 msgstr "controlla le firme delle chiavi"
 
-#: g10/g10.c:164
+#: g10/g10.c:167
 msgid "list keys and fingerprints"
 msgstr "elenca le chiavi e le impronte digitali"
 
-#: g10/g10.c:165
+#: g10/g10.c:168
 msgid "list secret keys"
 msgstr "elenca le chiavi segrete"
 
-#: g10/g10.c:167
+#: g10/g10.c:170
 msgid "generate a new key pair"
 msgstr "genera una nuova coppia di chiavi"
 
-#: g10/g10.c:169
+#: g10/g10.c:172
 msgid "remove key from the public keyring"
 msgstr "rimuove una chiave dal portachiavi pubblico"
 
-#: g10/g10.c:171
+#: g10/g10.c:174
 msgid "sign or edit a key"
 msgstr "firma o modifica una chiave"
 
-#: g10/g10.c:172
+#: g10/g10.c:175
 msgid "generate a revocation certificate"
 msgstr "genera un certificato di revoca"
 
-#: g10/g10.c:174
+#: g10/g10.c:177
 msgid "export keys"
 msgstr "esporta delle chiavi"
 
-#: g10/g10.c:176
+#: g10/g10.c:179
 msgid "import/merge keys"
 msgstr "importa/aggiungi delle chiavi"
 
-#: g10/g10.c:177
+#: g10/g10.c:181
 msgid "list only the sequence of packets"
 msgstr "elenca solo la sequenza dei pacchetti"
 
-#: g10/g10.c:180
+#: g10/g10.c:184
 msgid "export the ownertrust values"
 msgstr "esporta i valori di fiducia"
 
-#: g10/g10.c:182
+#: g10/g10.c:186
 msgid "import ownertrust values"
 msgstr "importa i valori di fiducia"
 
-#: g10/g10.c:184
-#, fuzzy
+#: g10/g10.c:188
 msgid "|[NAMES]|update the trust database"
-msgstr "|[NAMES]|controlla il TrustDB"
+msgstr "|[NAMES]|controlla il database della fiducia"
 
-#: g10/g10.c:186
+#: g10/g10.c:190
 msgid "|[NAMES]|check the trust database"
-msgstr "|[NAMES]|controlla il TrustDB"
+msgstr "|[NAMES]|controlla il database della fiducia"
 
-#: g10/g10.c:187
+#: g10/g10.c:191
 msgid "fix a corrupted trust database"
 msgstr "ripara un database della fiducia rovinato"
 
-#: g10/g10.c:188
+#: g10/g10.c:192
 msgid "De-Armor a file or stdin"
 msgstr "rimuovi l'armatura a un file o a stdin"
 
-#: g10/g10.c:189
+#: g10/g10.c:193
 msgid "En-Armor a file or stdin"
 msgstr "crea l'armatura a un file o a stdin"
 
-#: g10/g10.c:190
+#: g10/g10.c:194
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|stampa tutti i message digests"
 
-#: g10/g10.c:191
+#: g10/g10.c:195
 msgid "print all message digests"
 msgstr "stampa tutti i message digests"
 
-#: g10/g10.c:198
+#: g10/g10.c:202
 msgid ""
 "@\n"
 "Options:\n"
@@ -370,129 +369,132 @@ msgstr ""
 "Opzioni:\n"
 " "
 
-#: g10/g10.c:200
+#: g10/g10.c:204
 msgid "create ascii armored output"
 msgstr "crea un output ascii con armatura"
 
-#: g10/g10.c:202
+#: g10/g10.c:206
 msgid "use this user-id to sign or decrypt"
 msgstr "usa questo user-id per firmare o decifrare"
 
-#: g10/g10.c:203
+#: g10/g10.c:207
 msgid "use this user-id for encryption"
 msgstr "usa questo user-id per cifrare"
 
-#: g10/g10.c:204
+#: g10/g10.c:208
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|imposta il livello di compressione (0 disabilita)"
 
-#: g10/g10.c:205
+#: g10/g10.c:210
 msgid "use canonical text mode"
 msgstr "usa il modo testo canonico"
 
-#: g10/g10.c:207
+#: g10/g10.c:212
 msgid "use as output file"
 msgstr "usa come file di output"
 
-#: g10/g10.c:208
+#: g10/g10.c:213
 msgid "verbose"
 msgstr "prolisso"
 
-#: g10/g10.c:209
-#, fuzzy
+#: g10/g10.c:214
+msgid "be somewhat more quiet"
+msgstr "meno prolisso"
+
+#: g10/g10.c:215
 msgid "force v3 signatures"
-msgstr "controlla le firme delle chiavi"
+msgstr "forza l'uso di firme v3"
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:211
+#: g10/g10.c:217
 msgid "batch mode: never ask"
 msgstr "modo batch: non fare domande"
 
-#: g10/g10.c:212
+#: g10/g10.c:218
 msgid "assume yes on most questions"
 msgstr "assumi \"sì\" a quasi tutte le domande"
 
-#: g10/g10.c:213
+#: g10/g10.c:219
 msgid "assume no on most questions"
 msgstr "assumi \"no\" a quasi tutte le domande"
 
-#: g10/g10.c:214
+#: g10/g10.c:220
 msgid "add this keyring to the list of keyrings"
 msgstr "aggiungi questo portachiavi alla lista"
 
-#: g10/g10.c:215
+#: g10/g10.c:221
 msgid "add this secret keyring to the list"
 msgstr "aggiungi questo portachiavi segreto alla lista"
 
-#: g10/g10.c:216
+#: g10/g10.c:222
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NOME|usa NOME come chiave segreta predefinita"
+msgstr "|NAME|usa NAME come chiave segreta predefinita"
 
-#: g10/g10.c:217
+#: g10/g10.c:223
 msgid "read options from file"
 msgstr "leggi le opzioni dal file"
 
-#: g10/g10.c:219
+#: g10/g10.c:225
 msgid "set debugging flags"
 msgstr "imposta i flag di debugging"
 
-#: g10/g10.c:220
+#: g10/g10.c:226
 msgid "enable full debugging"
 msgstr "abilita il debugging completo"
 
-#: g10/g10.c:221
+#: g10/g10.c:227
 msgid "|FD|write status info to this FD"
 msgstr "|FD|scrivi le informazioni di stato su questo fd"
 
-#: g10/g10.c:222
+#: g10/g10.c:228
 msgid "do not write comment packets"
 msgstr "non scrivere pacchetti di commento"
 
-#: g10/g10.c:223
+#: g10/g10.c:229
 msgid "(default is 1)"
 msgstr "(predefinito è 1)"
 
-#: g10/g10.c:224
+#: g10/g10.c:230
 msgid "(default is 3)"
 msgstr "(predefinito è 3)"
 
-#: g10/g10.c:225
+#: g10/g10.c:231
 msgid "|FILE|load extension module FILE"
 msgstr "|FILE|carica il modulo di estensione FILE"
 
-#: g10/g10.c:226
+#: g10/g10.c:232
 msgid "emulate the mode described in RFC1991"
 msgstr "emula il modo descritto nel RFC1991"
 
-#: g10/g10.c:227
+#: g10/g10.c:233
 msgid "|N|use passphrase mode N"
 msgstr "|N|usa il modo N per la passphrase"
 
-#: g10/g10.c:229
+#: g10/g10.c:235
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NAME|usa l'algoritmo di message digest NOME"
 
-#: g10/g10.c:231
+#: g10/g10.c:237
 msgid "|NAME|use cipher algorithm NAME for passphrases"
-msgstr "|NAME|usa l'algoritmo di cifratura NOME per le passphrase"
+msgstr "|NAME|usa l'alg. di cifratura NOME per le passphrase"
 
-#: g10/g10.c:233
+#: g10/g10.c:239
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NAME|usa l'algoritmo di cifratura NOME"
 
-#: g10/g10.c:234
+#: g10/g10.c:240
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NAME|usa l'algoritmo di message digest NOME"
 
-#: g10/g10.c:235
+#: g10/g10.c:241
 msgid "|N|use compress algorithm N"
 msgstr "|N|usa l'algoritmo di compressione N"
 
-#: g10/g10.c:236
+#: g10/g10.c:242
 msgid "throw keyid field of encrypted packets"
 msgstr "elimina il campo keyid dei pacchetti crittografati"
 
-#: g10/g10.c:244
+#: g10/g10.c:250
 msgid ""
 "@\n"
 "Examples:\n"
@@ -512,28 +514,27 @@ msgstr ""
 " --list-keys [nomi]         mostra le chiavi\n"
 " --fingerprint [nomi]       mostra le impronte digitali\n"
 
-#: g10/g10.c:319
+#: g10/g10.c:325
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Per favore segnala i bug a <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:324
+#: g10/g10.c:330
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Uso: gpgm [opzioni] [file] (-h per l'aiuto)"
 
-#: g10/g10.c:326
+#: g10/g10.c:332
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Uso: gpg [opzioni] [file] (-h per l'aiuto)"
 
-#: g10/g10.c:331
-#, fuzzy
+#: g10/g10.c:337
 msgid ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG maintenance utility\n"
 msgstr ""
 "Sintassi: gpgm [opzioni] [file]\n"
-"Utility di manutenzione di GNUPG\n"
+"Utility di manutenzione di GnuPG\n"
 
-#: g10/g10.c:334
+#: g10/g10.c:340
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -543,7 +544,7 @@ msgstr ""
 "firma, controlla, cifra o decifra\n"
 "l'operazione predefinita dipende dai dati di input\n"
 
-#: g10/g10.c:340
+#: g10/g10.c:346
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -551,141 +552,141 @@ msgstr ""
 "\n"
 "Algoritmi gestiti:\n"
 
-#: g10/g10.c:415
+#: g10/g10.c:421
 msgid "usage: gpgm [options] "
 msgstr "uso: gpgm [options] "
 
-#: g10/g10.c:417
+#: g10/g10.c:423
 msgid "usage: gpg [options] "
 msgstr "uso: gpg [options] "
 
-#: g10/g10.c:458
+#: g10/g10.c:464
 msgid "conflicting commands\n"
 msgstr "comandi in conflitto\n"
 
-#: g10/g10.c:596
+#: g10/g10.c:602
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "nota: nessun file con opzioni predefinite '%s'\n"
 
-#: g10/g10.c:600
+#: g10/g10.c:606
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "file con opzioni predefinite '%s': %s\n"
 
-#: g10/g10.c:607
+#: g10/g10.c:613
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "lettura delle opzioni da '%s'\n"
 
-#: g10/g10.c:778 g10/g10.c:790
+#: g10/g10.c:787 g10/g10.c:799
 msgid "selected cipher algorithm is invalid\n"
 msgstr "l'algoritmo di cifratura selezionato non è valido\n"
 
-#: g10/g10.c:784 g10/g10.c:796
+#: g10/g10.c:793 g10/g10.c:805
 msgid "selected digest algorithm is invalid\n"
 msgstr "l'algoritmo di digest selezionato non è valido\n"
 
-#: g10/g10.c:799
+#: g10/g10.c:808
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "l'algoritmo di compressione deve essere tra %d e %d\n"
 
-#: g10/g10.c:801
+#: g10/g10.c:810
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed deve essere maggiore di 0\n"
 
-#: g10/g10.c:803
+#: g10/g10.c:812
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed deve essere maggiore di 1\n"
 
-#: g10/g10.c:806
+#: g10/g10.c:815
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "nota: il modo S2K semplice (0) è fortemente scoraggiato\n"
 
-#: g10/g10.c:810
+#: g10/g10.c:819
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "modo S2K non valido; deve essere 0, 1 o 3\n"
 
-#: g10/g10.c:886
+#: g10/g10.c:895
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "inizializzazione del trustdb fallita: %s\n"
 
-#: g10/g10.c:892
+#: g10/g10.c:901
 msgid "--store [filename]"
 msgstr "--store [nomefile]"
 
-#: g10/g10.c:900
+#: g10/g10.c:909
 msgid "--symmetric [filename]"
 msgstr "--symmetric [nomefile]"
 
-#: g10/g10.c:908
+#: g10/g10.c:917
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nomefile]"
 
-#: g10/g10.c:921
+#: g10/g10.c:930
 msgid "--sign [filename]"
 msgstr "--sign [nomefile]"
 
-#: g10/g10.c:934
+#: g10/g10.c:943
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [nomefile]"
 
-#: g10/g10.c:948
+#: g10/g10.c:957
 msgid "--clearsign [filename]"
 msgstr "--clearsign [nomefile]"
 
-#: g10/g10.c:960
+#: g10/g10.c:969
 msgid "--decrypt [filename]"
 msgstr "--decrypt [nomefile]"
 
-#: g10/g10.c:969
+#: g10/g10.c:978
 msgid "--edit-key username"
 msgstr "--edit-key nomeutente"
 
-#: g10/g10.c:977
+#: g10/g10.c:986
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key nomeutente"
 
-#: g10/g10.c:980
+#: g10/g10.c:989
 msgid "--delete-key username"
 msgstr "--delete-key nomeutente"
 
-#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
+#: g10/encode.c:216 g10/g10.c:1012
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "impossibile aprire '%s': %s\n"
 
-#: g10/g10.c:1014
+#: g10/g10.c:1023
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [userid] [portachiavi]"
 
-#: g10/g10.c:1069
+#: g10/g10.c:1079
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "rimozione dell'armatura fallita: %s\n"
 
-#: g10/g10.c:1077
+#: g10/g10.c:1087
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "creazione dell'armatura fallita: %s\n"
 
-#: g10/g10.c:1138
+#: g10/g10.c:1148
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "algoritmo di hash non valido '%s'\n"
 
-#: g10/g10.c:1220
+#: g10/g10.c:1230
 msgid "[filename]"
 msgstr "[nomefile]"
 
-#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1232 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "impossibile aprire '%s'\n"
 
-#: g10/g10.c:1269
+#: g10/g10.c:1279
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -796,7 +797,7 @@ msgstr "sSmM"
 
 #: g10/pkclist.c:99
 msgid "edit_ownertrust.value"
-msgstr ""
+msgstr "edit_ownertrust.value"
 
 #: g10/pkclist.c:99
 msgid "Your decision? "
@@ -826,7 +827,7 @@ msgstr ""
 
 #: g10/pkclist.c:188
 msgid "revoked_key.override"
-msgstr ""
+msgstr "revoked_key.override"
 
 #: g10/pkclist.c:189 g10/pkclist.c:279
 msgid "Use this key anyway? "
@@ -846,7 +847,7 @@ msgstr ""
 
 #: g10/pkclist.c:278
 msgid "untrusted_key.override"
-msgstr ""
+msgstr "untrusted_key.override"
 
 #: g10/pkclist.c:283
 msgid "WARNING: Using untrusted key!\n"
@@ -902,7 +903,7 @@ msgstr ""
 
 #: g10/pkclist.c:425
 msgid "pklist.user_id.enter"
-msgstr ""
+msgstr "pklist.user_id.enter"
 
 #: g10/pkclist.c:426
 msgid "Enter the user ID: "
@@ -965,7 +966,7 @@ msgstr "   (%d) ElGamal in un pacchetto v3\n"
 
 #: g10/keygen.c:398
 msgid "keygen.algo"
-msgstr ""
+msgstr "keygen.algo"
 
 #: g10/keygen.c:398
 msgid "Your selection? "
@@ -990,7 +991,7 @@ msgstr ""
 
 #: g10/keygen.c:442
 msgid "keygen.size"
-msgstr ""
+msgstr "keygen.size"
 
 #: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
@@ -1014,7 +1015,7 @@ msgstr ""
 
 #: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
-msgstr ""
+msgstr "keygen.size.huge.okay"
 
 #: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
@@ -1030,7 +1031,7 @@ msgstr ""
 
 #: g10/keygen.c:464
 msgid "keygen.size.large.okay"
-msgstr ""
+msgstr "keygen.size.large.okay"
 
 #: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
@@ -1063,7 +1064,7 @@ msgstr ""
 
 #: g10/keygen.c:506
 msgid "keygen.valid"
-msgstr ""
+msgstr "keygen.valid"
 
 #: g10/keygen.c:506
 msgid "Key is valid for? (0) "
@@ -1085,13 +1086,13 @@ msgstr "La chiave scadr
 
 #: g10/keygen.c:532
 msgid "keygen.valid.okay"
-msgstr ""
+msgstr "keygen.valid.okay"
 
 #: g10/keygen.c:533
 msgid "Is this correct (y/n)? "
 msgstr "È giusto (s/n)? "
 
-#: g10/keygen.c:561
+#: g10/keygen.c:569
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1107,51 +1108,51 @@ msgstr ""
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "keygen.name"
-msgstr ""
+msgstr "keygen.name"
 
-#: g10/keygen.c:572
+#: g10/keygen.c:580
 msgid "Real name: "
 msgstr "Nome e Cognome: "
 
-#: g10/keygen.c:576
+#: g10/keygen.c:584
 msgid "Invalid character in name\n"
 msgstr "Carattere non valido nel nome\n"
 
-#: g10/keygen.c:578
+#: g10/keygen.c:586
 msgid "Name may not start with a digit\n"
 msgstr "Il nome non può iniziare con una cifra\n"
 
-#: g10/keygen.c:580
+#: g10/keygen.c:588
 msgid "Name must be at least 5 characters long\n"
 msgstr "Il nome deve essere lungo almeno 5 caratteri\n"
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "keygen.email"
-msgstr ""
+msgstr "keygen.email"
 
-#: g10/keygen.c:588
+#: g10/keygen.c:596
 msgid "Email address: "
 msgstr "Indirizzo di Email: "
 
-#: g10/keygen.c:600
+#: g10/keygen.c:608
 msgid "Not a valid email address\n"
 msgstr "L'indirizzo di email non è valido\n"
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "keygen.comment"
-msgstr ""
+msgstr "keygen.comment"
 
-#: g10/keygen.c:608
+#: g10/keygen.c:616
 msgid "Comment: "
 msgstr "Commento: "
 
-#: g10/keygen.c:614
+#: g10/keygen.c:622
 msgid "Invalid character in comment\n"
 msgstr "Carattere non valido nel commento\n"
 
-#: g10/keygen.c:634
+#: g10/keygen.c:642
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1162,19 +1163,19 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:637
+#: g10/keygen.c:645
 msgid "NnCcEeOoQq"
-msgstr ""
+msgstr "NnCcEeOoQq"
 
-#: g10/keygen.c:646
+#: g10/keygen.c:654
 msgid "keygen.userid.cmd"
-msgstr ""
+msgstr "keygen.userid.cmd"
 
-#: g10/keygen.c:647
+#: g10/keygen.c:655
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit? "
 
-#: g10/keygen.c:694
+#: g10/keygen.c:707
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1182,11 +1183,11 @@ msgstr ""
 "Ti serve una passphrase per proteggere la tua chiave segreta.\n"
 "\n"
 
-#: g10/keyedit.c:389 g10/keygen.c:702
+#: g10/keyedit.c:389 g10/keygen.c:715
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "passphrase non ripetuta correttamente; riprova.\n"
 
-#: g10/keygen.c:708
+#: g10/keygen.c:721
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1198,7 +1199,7 @@ msgstr ""
 "programma con l'opzione \"--edit-key\".\n"
 "\n"
 
-#: g10/keygen.c:729
+#: g10/keygen.c:742
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1212,33 +1213,33 @@ msgstr ""
 "generatore di numeri casuali la possibilità di raccogliere abbastanza\n"
 "entropia.\n"
 
-#: g10/keygen.c:799
+#: g10/keygen.c:812
 msgid "Key generation can only be used in interactive mode\n"
 msgstr "Una chiave può essere generata solo in modo interattivo\n"
 
-#: g10/keygen.c:807
+#: g10/keygen.c:820
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "La coppia DSA avrà 1024 bit.\n"
 
-#: g10/keygen.c:813
+#: g10/keygen.c:826
 msgid "Key generation cancelled.\n"
 msgstr "Generazione della chiave annullata.\n"
 
-#: g10/keygen.c:823
+#: g10/keygen.c:836
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "scrittura del certificato pubblico in '%s'\n"
 
-#: g10/keygen.c:824
+#: g10/keygen.c:837
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "scrittura del certificato privato in '%s'\n"
 
-#: g10/keygen.c:901
+#: g10/keygen.c:914
 msgid "public and secret key created and signed.\n"
 msgstr "chiavi pubbliche e segrete create e firmate.\n"
 
-#: g10/keygen.c:903
+#: g10/keygen.c:916
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1247,20 +1248,20 @@ msgstr ""
 "vorrai usare il comando \"--add-key\" per generare una chiave secondaria\n"
 "per questo scopo.\n"
 
-#: g10/keygen.c:917 g10/keygen.c:1002
+#: g10/keygen.c:930 g10/keygen.c:1015
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "Generazione della chiave fallita: %s\n"
 
-#: g10/keygen.c:979
+#: g10/keygen.c:992
 msgid "keygen.sub.okay"
-msgstr ""
+msgstr "keygen.sub.okay"
 
-#: g10/keygen.c:980
+#: g10/keygen.c:993
 msgid "Really create? "
 msgstr "Crea davvero? "
 
-#: g10/encode.c:88
+#: g10/encode.c:88 g10/openfile.c:81 g10/openfile.c:158
 #, c-format
 msgid "%s: can't open: %s\n"
 msgstr "%s: impossibile aprire: %s\n"
@@ -1270,225 +1271,283 @@ msgstr "%s: impossibile aprire: %s\n"
 msgid "error creating passphrase: %s\n"
 msgstr "errore nella creazione della passhprase: %s\n"
 
-#: g10/encode.c:154 g10/encode.c:267
+#: g10/encode.c:155 g10/encode.c:269
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr "%s: attenzione: file vuoto\n"
 
-#: g10/encode.c:221
+#: g10/encode.c:222
 #, c-format
 msgid "reading from '%s'\n"
 msgstr "lettura da '%s'\n"
 
-#: g10/encode.c:395
+#: g10/encode.c:397
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr "%s crittografato per: %s\n"
 
-#: g10/getkey.c:854
+#: g10/getkey.c:950
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr "uso la chiave secondaria %08lX invece della chiave primaria %08lX\n"
 
-#: g10/import.c:106 g10/trustdb.c:1100
+#: g10/import.c:125 g10/trustdb.c:1046
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "impossibile aprire il file: %s\n"
 
-#: g10/import.c:122
+#: g10/import.c:141
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr "salto un blocco di tipo %d\n"
 
-#: g10/import.c:132 g10/trustdb.c:1175
+#: g10/import.c:148 g10/trustdb.c:1289 g10/trustdb.c:1358
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "Per ora sono state esaminate %lu chiavi\n"
+
+#: g10/import.c:153 g10/trustdb.c:1122
 #, c-format
 msgid "read error: %s\n"
 msgstr "errore di lettura: %s\n"
 
-#: g10/import.c:273 g10/import.c:446
+#: g10/import.c:155
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "Numero totale esaminato: %lu\n"
+
+#: g10/import.c:157
+#, c-format
+msgid "          w/o user IDs: %lu\n"
+msgstr "senza user ID: %lu\n"
+
+#: g10/import.c:159
+#, c-format
+msgid "              imported: %lu"
+msgstr "importate: %lu"
+
+#: g10/import.c:165
+#, c-format
+msgid "             unchanged: %lu\n"
+msgstr "non modificate: %lu\n"
+
+#: g10/import.c:167
+#, c-format
+msgid "          new user IDs: %lu\n"
+msgstr "nuovi user ID: %lu\n"
+
+#: g10/import.c:169
+#, c-format
+msgid "           new subkeys: %lu\n"
+msgstr "nuove subchiavi: %lu\n"
+
+#: g10/import.c:171
+#, c-format
+msgid "        new signatures: %lu\n"
+msgstr "nuove firme: %lu\n"
+
+#: g10/import.c:173
+#, c-format
+msgid "   new key revocations: %lu\n"
+msgstr "nuove revoche di chiavi: %lu\n"
+
+#: g10/import.c:175
+#, c-format
+msgid "      secret keys read: %lu\n"
+msgstr "chiavi segrete lette: %lu\n"
+
+#: g10/import.c:177
+#, c-format
+msgid "  secret keys imported: %lu\n"
+msgstr "chiavi segrete importate %lu\n"
+
+#: g10/import.c:179
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "chiavi segrete non cambiate %lu\n"
+
+#: g10/import.c:321 g10/import.c:513
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr "chiave %08lX: nessun user id\n"
 
-#: g10/import.c:283
+#: g10/import.c:332
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr "chiave %08lX: nessun user id valido\n"
 
-#: g10/import.c:285
+#: g10/import.c:334
 msgid "this may be caused by a missing self-signature\n"
 msgstr "questo può essere causato da una autofirma mancante\n"
 
-#: g10/import.c:294 g10/import.c:512
+#: g10/import.c:345 g10/import.c:581
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
 
-#: g10/import.c:300
+#: g10/import.c:351
 msgid "no default public keyring\n"
 msgstr "nessun portachiavi pubblico predefinito\n"
 
-#: g10/import.c:304
+#: g10/import.c:355 g10/openfile.c:105
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "scrittura in '%s'\n"
 
-#: g10/import.c:308 g10/import.c:363 g10/import.c:566
+#: g10/import.c:359 g10/import.c:419 g10/import.c:635
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr "impossibile bloccare il portachiavi pubblico: %s\n"
 
-#: g10/import.c:311
+#: g10/import.c:362
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr "impossibile scrivere sul portachiavi pubblico: %s\n"
 
-#. we are ready
-#: g10/import.c:314
+#: g10/import.c:366
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr "chiave %08lX: chiave pubblica importata\n"
 
-#: g10/import.c:323
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr "chiave %08lX: non corrisponde alla nostra copia\n"
 
-#: g10/import.c:336 g10/import.c:521
+#: g10/import.c:392 g10/import.c:590
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr "chiave %08lX: impossibile individuare il keyblock originale: %s\n"
 
-#: g10/import.c:343 g10/import.c:528
+#: g10/import.c:399 g10/import.c:597
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr "chiave %08lX: impossibile leggere il keyblock originale: %s\n"
 
-#: g10/import.c:360 g10/import.c:461 g10/import.c:563
+#: g10/import.c:416 g10/import.c:528 g10/import.c:632
 msgid "writing keyblock\n"
 msgstr "scrittura del keyblock\n"
 
-#: g10/import.c:366 g10/import.c:569
+#: g10/import.c:422 g10/import.c:638
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr "impossibile aprire il keyblock: %s\n"
 
-#: g10/import.c:370
+#: g10/import.c:427
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr "chiave %08lX: un nuovo user id\n"
 
-#: g10/import.c:373
+#: g10/import.c:430
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr "chiave %08lX: %d nuovi user id\n"
 
-#: g10/import.c:376
+#: g10/import.c:433
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr "chiave %08lX: una nuova firma\n"
 
-#: g10/import.c:379
+#: g10/import.c:436
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr "chiave %08lX: %d nuove firme\n"
 
-#: g10/import.c:382
+#: g10/import.c:439
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr "chiave %08lX: una nuova subchiave\n"
 
-#: g10/import.c:385
+#: g10/import.c:442
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr "chiave %08lX: %d nuove subchiavi\n"
 
-#: g10/import.c:389
+#: g10/import.c:452
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr "chiave %08lX: non cambiata\n"
 
-#: g10/import.c:464
+#: g10/import.c:531
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr "impossibile bloccare il portachiavi segreto: %s\n"
 
-#: g10/import.c:467
+#: g10/import.c:534
 #, c-format
 msgid "can't write keyring: %s\n"
 msgstr "impossibile scrivere il portachiavi: %s\n"
 
 #. we are ready
-#: g10/import.c:470
+#: g10/import.c:537
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr "chiave %08lX: chiave segreta importata\n"
 
 #. we can't merge secret keys
-#: g10/import.c:473
+#: g10/import.c:541
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr "chiave %08lX: già nel portachiavi segreto\n"
 
-#: g10/import.c:477
+#: g10/import.c:546
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr "chiave %08lX: chiave segreta non trovata: %s\n"
 
-#: g10/import.c:506
+#: g10/import.c:575
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 "chiave %08lX: manca la chiave pubblica - impossibile applicare il\n"
 "certificato di revoca\n"
 
-#: g10/import.c:539
+#: g10/import.c:608
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr "chiave %08lX: certificato di revoca non valido: %s - rifiutato\n"
 
-#. we are ready
-#: g10/import.c:572
+#: g10/import.c:642
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr "chiave %08lX: certificato di revoca importato\n"
 
-#: g10/import.c:602
+#: g10/import.c:673
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr "chiave %08lX: nessun user id per la firma\n"
 
-#: g10/import.c:609
+#: g10/import.c:680
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr "chiave %08lX: algoritmo a chiave pubblica non gestito\n"
 
-#: g10/import.c:610
+#: g10/import.c:681
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr "chiave %08lX: autofirma non valida\n"
 
-#: g10/import.c:639
+#: g10/import.c:710
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr "chiave %08lX: saltato l'user id '"
 
-#: g10/import.c:662
+#: g10/import.c:733
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr "chiave %08lX: certificato di revoca nel posto sbagliato - saltato\n"
 
-#: g10/import.c:670
+#: g10/import.c:741
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr "chiave %08lX: certificato di revoca non valido: %s - saltato\n"
 
-#: g10/import.c:732
+#: g10/import.c:803
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr "chiave %08lX: certificato di revoca aggiunto\n"
 
-#: g10/import.c:795 g10/import.c:831
+#: g10/import.c:866 g10/import.c:902
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr "chiave %08lX: la nostra copia non ha autofirma\n"
@@ -1558,7 +1617,7 @@ msgstr ""
 
 #: g10/keyedit.c:282
 msgid "sign_uid.okay"
-msgstr ""
+msgstr "sign_uid.okay"
 
 #: g10/keyedit.c:282
 msgid "Really sign? "
@@ -1600,7 +1659,7 @@ msgstr ""
 
 #: g10/keyedit.c:395
 msgid "change_passwd.empty.okay"
-msgstr ""
+msgstr "change_passwd.empty.okay"
 
 #: g10/keyedit.c:396
 msgid "Do you really want to do this? "
@@ -1608,7 +1667,7 @@ msgstr "Vuoi veramente farlo?"
 
 #: g10/keyedit.c:489
 msgid "quit"
-msgstr ""
+msgstr "quit"
 
 #: g10/keyedit.c:489
 msgid "quit this menu"
@@ -1616,11 +1675,11 @@ msgstr "abbandona questo men
 
 #: g10/keyedit.c:490
 msgid "q"
-msgstr ""
+msgstr "q"
 
 #: g10/keyedit.c:491
 msgid "save"
-msgstr ""
+msgstr "save"
 
 #: g10/keyedit.c:491
 msgid "save and quit"
@@ -1628,7 +1687,7 @@ msgstr "salva ed esci"
 
 #: g10/keyedit.c:492
 msgid "help"
-msgstr ""
+msgstr "help"
 
 #: g10/keyedit.c:492
 msgid "show this help"
@@ -1636,7 +1695,7 @@ msgstr "mostra questo aiuto"
 
 #: g10/keyedit.c:494
 msgid "fpr"
-msgstr ""
+msgstr "fpr"
 
 #: g10/keyedit.c:494
 msgid "show fingerprint"
@@ -1644,7 +1703,7 @@ msgstr "mostra le impronte digitali"
 
 #: g10/keyedit.c:495
 msgid "list"
-msgstr ""
+msgstr "list"
 
 #: g10/keyedit.c:495
 msgid "list key and user ids"
@@ -1652,11 +1711,11 @@ msgstr "elenca le chiavi e gli user id"
 
 #: g10/keyedit.c:496
 msgid "l"
-msgstr ""
+msgstr "l"
 
 #: g10/keyedit.c:497
 msgid "uid"
-msgstr ""
+msgstr "uid"
 
 #: g10/keyedit.c:497
 msgid "select user id N"
@@ -1664,7 +1723,7 @@ msgstr "scegli l'user id N"
 
 #: g10/keyedit.c:498
 msgid "key"
-msgstr ""
+msgstr "key"
 
 #: g10/keyedit.c:498
 msgid "select secondary key N"
@@ -1672,7 +1731,7 @@ msgstr "scegli la chiave secondaria N"
 
 #: g10/keyedit.c:499
 msgid "check"
-msgstr ""
+msgstr "check"
 
 #: g10/keyedit.c:499
 msgid "list signatures"
@@ -1680,11 +1739,11 @@ msgstr "elenca le firme"
 
 #: g10/keyedit.c:500
 msgid "c"
-msgstr ""
+msgstr "c"
 
 #: g10/keyedit.c:501
 msgid "sign"
-msgstr ""
+msgstr "sign"
 
 #: g10/keyedit.c:501
 msgid "sign the key"
@@ -1692,15 +1751,15 @@ msgstr "firma la chiave"
 
 #: g10/keyedit.c:502
 msgid "s"
-msgstr ""
+msgstr "s"
 
 #: g10/keyedit.c:503
 msgid "debug"
-msgstr ""
+msgstr "debug"
 
 #: g10/keyedit.c:504
 msgid "adduid"
-msgstr ""
+msgstr "adduid"
 
 #: g10/keyedit.c:504
 msgid "add a user id"
@@ -1708,7 +1767,7 @@ msgstr "aggiungi un user id"
 
 #: g10/keyedit.c:505
 msgid "deluid"
-msgstr ""
+msgstr "deluid"
 
 #: g10/keyedit.c:505
 msgid "delete user id"
@@ -1716,7 +1775,7 @@ msgstr "cancella un user id"
 
 #: g10/keyedit.c:506
 msgid "addkey"
-msgstr ""
+msgstr "addkey"
 
 #: g10/keyedit.c:506
 msgid "add a secondary key"
@@ -1724,7 +1783,7 @@ msgstr "aggiungi una chiave secondaria"
 
 #: g10/keyedit.c:507
 msgid "delkey"
-msgstr ""
+msgstr "delkey"
 
 #: g10/keyedit.c:507
 msgid "delete a secondary key"
@@ -1732,16 +1791,15 @@ msgstr "cancella una chiave secondaria"
 
 #: g10/keyedit.c:508
 msgid "expire"
-msgstr ""
+msgstr "expire"
 
 #: g10/keyedit.c:508
-#, fuzzy
 msgid "change the expire date"
-msgstr "cambia la passphrase"
+msgstr "cambia la data di scadenza"
 
 #: g10/keyedit.c:509
 msgid "toggle"
-msgstr ""
+msgstr "toggle"
 
 #: g10/keyedit.c:509
 msgid "toggle between secret and public key listing"
@@ -1749,11 +1807,11 @@ msgstr "cambia tra visualizzare la chiave segreta e la chiave pubblica"
 
 #: g10/keyedit.c:511
 msgid "t"
-msgstr ""
+msgstr "t"
 
 #: g10/keyedit.c:512
 msgid "pref"
-msgstr ""
+msgstr "pref"
 
 #: g10/keyedit.c:512
 msgid "list preferences"
@@ -1761,7 +1819,7 @@ msgstr "elenca le impostazioni"
 
 #: g10/keyedit.c:513
 msgid "passwd"
-msgstr ""
+msgstr "passwd"
 
 #: g10/keyedit.c:513
 msgid "change the passphrase"
@@ -1769,7 +1827,7 @@ msgstr "cambia la passphrase"
 
 #: g10/keyedit.c:514
 msgid "trust"
-msgstr ""
+msgstr "trust"
 
 #: g10/keyedit.c:514
 msgid "change the ownertrust"
@@ -1785,164 +1843,163 @@ msgstr "impossibile fare questo in batch mode\n"
 msgid "Secret key is available.\n"
 msgstr "È disponibile una chiave segreta.\n"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 msgid "keyedit.cmd"
-msgstr ""
+msgstr "keyedit.cmd"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:576
 msgid "Command> "
 msgstr "Comando> "
 
-#: g10/keyedit.c:600
+#: g10/keyedit.c:602
 msgid "Need the secret key to to this.\n"
 msgstr "Per fare questo serve la chiave segreta.\n"
 
-#: g10/keyedit.c:619
+#: g10/keyedit.c:621
 msgid "keyedit.save.okay"
-msgstr ""
+msgstr "keyedit.save.okay"
 
-#: g10/keyedit.c:620
+#: g10/keyedit.c:622
 msgid "Save changes? "
 msgstr "Salvo i cambiamenti? "
 
-#: g10/keyedit.c:622
+#: g10/keyedit.c:624
 msgid "keyedit.cancel.okay"
-msgstr ""
+msgstr "keyedit.cancel.okay"
 
-#: g10/keyedit.c:623
+#: g10/keyedit.c:625
 msgid "Quit without saving? "
 msgstr "Esco senza salvare? "
 
-#: g10/keyedit.c:633
+#: g10/keyedit.c:635
 #, c-format
 msgid "update failed: %s\n"
 msgstr "aggiornamento fallito: %s\n"
 
-#: g10/keyedit.c:640
+#: g10/keyedit.c:642
 #, c-format
 msgid "update secret failed: %s\n"
 msgstr "aggiornamento della chiave segreta fallito: %s\n"
 
-#: g10/keyedit.c:647
+#: g10/keyedit.c:649
 msgid "Key not changed so no update needed.\n"
 msgstr "La chiave non è cambiata quindi non sono necessari aggiornamenti.\n"
 
-#: g10/keyedit.c:650 g10/keyedit.c:708
+#: g10/keyedit.c:652 g10/keyedit.c:710
 #, c-format
 msgid "update of trust db failed: %s\n"
 msgstr "aggiornamento del trustdb fallito: %s\n"
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:683
 msgid "keyedit.sign_all.okay"
-msgstr ""
+msgstr "keyedit.sign_all.okay"
 
-#: g10/keyedit.c:682
+#: g10/keyedit.c:684
 msgid "Really sign all user ids? "
 msgstr "Firmo davvero tutti gli user id? "
 
-#: g10/keyedit.c:683
+#: g10/keyedit.c:685
 msgid "Hint: Select the user ids to sign\n"
 msgstr "Suggerimento: seleziona gli user id da firmare\n"
 
-#: g10/keyedit.c:719
+#: g10/keyedit.c:721
 msgid "You must select at least one user id.\n"
 msgstr "Devi selezionare almeno un user id.\n"
 
-#: g10/keyedit.c:721
+#: g10/keyedit.c:723
 msgid "You can't delete the last user id!\n"
 msgstr "Non puoi cancellare l'ultimo user id!\n"
 
-#: g10/keyedit.c:723
+#: g10/keyedit.c:725
 msgid "keyedit.remove.uid.okay"
-msgstr ""
+msgstr "keyedit.remove.uid.okay"
 
-#: g10/keyedit.c:724
+#: g10/keyedit.c:726
 msgid "Really remove all selected user ids? "
 msgstr "Tolgo davvero tutti gli user id selezionati? "
 
-#: g10/keyedit.c:725
+#: g10/keyedit.c:727
 msgid "Really remove this user id? "
 msgstr "Tolgo davvero questo user id? "
 
-#: g10/keyedit.c:748
+#: g10/keyedit.c:750
 msgid "You must select at least one key.\n"
 msgstr "Devi selezionare almeno una chiave.\n"
 
-#: g10/keyedit.c:750
+#: g10/keyedit.c:752
 msgid "keyedit.remove.subkey.okay"
-msgstr ""
+msgstr "keyedit.remove.subkey.okay"
 
-#: g10/keyedit.c:752
+#: g10/keyedit.c:754
 msgid "Do you really want to delete the selected keys? "
 msgstr "Vuoi davvero cancellare le chiavi selezionate? "
 
-#: g10/keyedit.c:753
+#: g10/keyedit.c:755
 msgid "Do you really want to delete this key? "
 msgstr "Vuoi davvero cancellare questa chiave? "
 
-#: g10/keyedit.c:800
+#: g10/keyedit.c:802
 msgid "Invalid command  (try \"help\")\n"
 msgstr "Comando non valido (prova \"help\")\n"
 
-#: g10/keyedit.c:1178
+#: g10/keyedit.c:1180
 msgid "Please remove selections from the secret keys.\n"
-msgstr ""
+msgstr "Togli le selezioni dalle chiavi segrete.\n"
 
-#: g10/keyedit.c:1184
-#, fuzzy
+#: g10/keyedit.c:1186
 msgid "Please select at most one secondary key.\n"
-msgstr "Devi selezionare almeno una chiave.\n"
+msgstr "Seleziona al massimo una chiave secondaria.\n"
 
-#: g10/keyedit.c:1188
+#: g10/keyedit.c:1190
 msgid "Changing exiration time for a secondary key.\n"
-msgstr ""
+msgstr "Modifico il tempo di scadenza per una chiave secondaria.\n"
 
-#: g10/keyedit.c:1190
+#: g10/keyedit.c:1192
 msgid "Changing exiration time for the primary key.\n"
-msgstr ""
+msgstr "Modifico il tempo di scadenza per la chiave primaria.\n"
 
-#: g10/keyedit.c:1234
+#: g10/keyedit.c:1236
 msgid "No corresponding signature in secret ring\n"
-msgstr ""
+msgstr "Manca la firma corrispondente nel portachiavi segreto\n"
 
-#: g10/keyedit.c:1294
+#: g10/keyedit.c:1296
 #, c-format
 msgid "No user id with index %d\n"
 msgstr "Nessun user id con l'indice %d\n"
 
-#: g10/keyedit.c:1339
+#: g10/keyedit.c:1341
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr "Nessuna chiave secondaria con l'indice %d\n"
 
-#: g10/mainproc.c:200
+#: g10/mainproc.c:201
 #, c-format
 msgid "public key decryption failed: %s\n"
 msgstr "Decifratura della chiave pubblica fallita: %s\n"
 
-#: g10/mainproc.c:230
+#: g10/mainproc.c:231
 #, c-format
 msgid "decryption failed: %s\n"
 msgstr "decifratura fallita: %s\n"
 
-#: g10/mainproc.c:247
+#: g10/mainproc.c:248
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr "nota: il mittente ha richiesto \"solo-per-i-tuoi-occhi\"\n"
 
-#: g10/mainproc.c:848
+#: g10/mainproc.c:842
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr "Firma fatta %.*s usando %s key ID %08lX\n"
 
-#: g10/mainproc.c:856
+#: g10/mainproc.c:850
 msgid "BAD signature from \""
 msgstr "Firma NON corretta da \""
 
-#: g10/mainproc.c:857
+#: g10/mainproc.c:851
 msgid "Good signature from \""
 msgstr "Buona firma da \""
 
-#: g10/mainproc.c:868
+#: g10/mainproc.c:862
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr "Impossibile controllare la firma: %s\n"
@@ -1964,7 +2021,7 @@ msgstr "(chiave %2$s di %1$u-bit, ID %3$08lX, creata il %4$s)\n"
 
 #: g10/passphrase.c:174
 msgid "passphrase.enter"
-msgstr ""
+msgstr "passphrase.enter"
 
 #: g10/passphrase.c:174
 msgid "Enter pass phrase: "
@@ -1972,7 +2029,7 @@ msgstr "Inserisci la passphrase: "
 
 #: g10/passphrase.c:177
 msgid "passphrase.repeat"
-msgstr ""
+msgstr "passphrase.repeat"
 
 #: g10/passphrase.c:178
 msgid "Repeat pass phrase: "
@@ -1985,7 +2042,7 @@ msgstr ""
 
 #: g10/plaintext.c:214
 msgid "detached_signature.filename"
-msgstr ""
+msgstr "detached_signature.filename"
 
 #: g10/plaintext.c:215
 msgid "Please enter name of data file: "
@@ -2028,194 +2085,229 @@ msgstr ""
 msgid "warning: signature key expired %s\n"
 msgstr "attenzione: firma della chiave scaduta il %s\n"
 
-#: g10/trustdb.c:122
+#: g10/trustdb.c:129
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr "Il trustdb è rovinato; per favore esegui \"gpgm --fix-trust-db\".\n"
 
-#: g10/trustdb.c:389
+#: g10/trustdb.c:407
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "la chained sigrec %lu ha il proprietario sbagliato\n"
 
-#: g10/trustdb.c:436
-#, fuzzy, c-format
+#: g10/trustdb.c:454
+#, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
-msgstr "chiave %08lX: chiave segreta senza chiave pubblica\n"
+msgstr "chiave %08lX: chiave segreta senza chiave pubblica - saltata\n"
 
-#: g10/trustdb.c:442
+#: g10/trustdb.c:460
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr "chiave %08lX: le chiavi segreta e pubblica non corrispondono\n"
 
-#: g10/trustdb.c:452
+#: g10/trustdb.c:470
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "chiave %08lX: impossibile metterla nel trustdb\n"
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:476
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "chiave %08lX: richiesta del record fallita\n"
 
-#: g10/trustdb.c:467
-#, fuzzy, c-format
+#: g10/trustdb.c:485
+#, c-format
 msgid "key %08lX: already in secret key table\n"
-msgstr "chiave %08lX: già nel portachiavi segreto\n"
+msgstr "chiave %08lX: già nella tabella delle chiavi segrete\n"
 
-#: g10/trustdb.c:470
-#, fuzzy, c-format
+#: g10/trustdb.c:488
+#, c-format
 msgid "key %08lX: accepted as secret key.\n"
-msgstr "chiave %08lX: già nel portachiavi segreto\n"
+msgstr "chiave %08lX: accettata come chiave segreta\n"
 
-#: g10/trustdb.c:477
+#: g10/trustdb.c:495
 #, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr "enum_secret_keys fallito: %s\n"
 
-#: g10/trustdb.c:1428
+#: g10/trustdb.c:1292 g10/trustdb.c:1360
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu chiavi esaminate\n"
+
+#: g10/trustdb.c:1294
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "\\t%lu chiavi saltate\n"
+
+#: g10/trustdb.c:1296 g10/trustdb.c:1362
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\\t%lu chiavi con errori\n"
+
+#: g10/trustdb.c:1298 g10/trustdb.c:1364
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "\\t%lu chiavi aggiornate\n"
+
+#: g10/trustdb.c:1366
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "\\t%lu chiavi inserite\n"
+
+#: g10/trustdb.c:1421
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "chiave %08lX: inserimento del record della fiducia fallito: %s\n"
 
-#: g10/trustdb.c:1432
+#: g10/trustdb.c:1425
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "chiave %08lX.%lu: inserita nel trustdb\n"
 
-#: g10/trustdb.c:1440
+#: g10/trustdb.c:1433
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "chiave %08lX.%lu: creata nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
-#: g10/trustdb.c:1447
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "chiave %08lX.%lu: scaduta il %s\n"
 
-#: g10/trustdb.c:1455
+#: g10/trustdb.c:1448
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "chiave %08lX.%lu: controllo della fiducia fallito: %s\n"
 
-#: g10/trustdb.c:1718
+#: g10/trustdb.c:1666
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
-msgstr ""
+msgstr "nota: rec di %lu[%d] nella hintlist di %lu ma marcato come verificato\n"
 
-#: g10/trustdb.c:1722
+#: g10/trustdb.c:1670
 #, c-format
 msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
-msgstr ""
+msgstr "nota: rec di %lu[%d] nella hintlist di %lu ma  non marcato\n"
 
 #. we need the dir record
-#: g10/trustdb.c:1729
+#: g10/trustdb.c:1677
 #, c-format
-msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
-msgstr ""
+msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
+msgstr "Il rec di %lu[%d] nella hintlist di %lu non punta a un record dir\n"
 
-#: g10/trustdb.c:1735
+#: g10/trustdb.c:1683
 #, c-format
 msgid "lid %lu: no primary key\n"
-msgstr ""
+msgstr "lid %lu: manca la chiave primaria\n"
 
-#: g10/trustdb.c:1764
-#, fuzzy, c-format
+#: g10/trustdb.c:1716
+#, c-format
 msgid "lid %lu: user id not found in keyblock\n"
-msgstr "%s: utente non trovato\n"
+msgstr "lid %lu: user id non trovato nel keyblock\n"
+
+#: g10/trustdb.c:1720
+#, c-format
+msgid "lid %lu: user id without signature\n"
+msgstr "chiave %08lX: user id senza firma\n"
 
-#: g10/trustdb.c:1771
+#: g10/trustdb.c:1727
 #, c-format
 msgid "lid %lu: self-signature in hintlist\n"
-msgstr ""
+msgstr "lid %lu: autofirma nella hintlist\n"
 
-#: g10/trustdb.c:1776
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:1738 g10/trustdb.c:2444 g10/trustdb.c:2526
+msgid "Valid certificate revocation"
+msgstr "Revoca del certificato valida"
 
-#: g10/trustdb.c:1783
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
-msgstr ""
-"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+#: g10/trustdb.c:1739 g10/trustdb.c:2445 g10/trustdb.c:2527
+msgid "Good certificate"
+msgstr "Certificato corretto"
 
-#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:1748
+msgid "very strange: no public key\n"
+msgstr "molto strano: non ci sono chiavi pubbliche\n"
 
-#: g10/trustdb.c:1835
+#: g10/trustdb.c:1796
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
-msgstr ""
+msgstr "hintlist %lu[%d] di %lu non punta a un record dir\n"
 
-#: g10/trustdb.c:1841
+#: g10/trustdb.c:1802
 #, c-format
 msgid "lid %lu does not have a key\n"
-msgstr ""
+msgstr "Il lid %lu non ha una chiave\n"
 
-#: g10/trustdb.c:1851
-#, fuzzy, c-format
+#: g10/trustdb.c:1812
+#, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
-msgstr "impossibile aprire il keyblock: %s\n"
+msgstr "lid %lu: impossibile ottenere il keyblock: %s\n"
 
-#: g10/trustdb.c:2096
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:2022
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "chiave %08lX.%lu: Legame con la subchiave corretto\n"
 
-#: g10/trustdb.c:2188
-#, fuzzy, c-format
-msgid ""
-"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:2028 g10/trustdb.c:2070
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "chiave %08lX.%lu: Legame con la subchiave non valido: %s\n"
 
-#: g10/trustdb.c:2211
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:2043
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "chiave %08lX.%lu: Revoca della chiave valida\n"
 
-#: g10/trustdb.c:2218
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
-msgstr ""
-"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+#: g10/trustdb.c:2049
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "chiave %08lX.%lu: Revoca della chiave non valida: %s\n"
 
-#: g10/trustdb.c:2240
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:2064
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "chiave %08lX.%lu: Revoca della subchiave valida\n"
 
-#: g10/trustdb.c:2279
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+#: g10/trustdb.c:2164
+msgid "Good self-signature"
+msgstr "Autofirma corretta"
 
-#: g10/trustdb.c:2290
-#, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
-msgstr ""
-"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+#: g10/trustdb.c:2172
+msgid "Invalid self-signature"
+msgstr "Autofirma non valida"
 
-#. key binding
-#: g10/trustdb.c:2386
-#, fuzzy, c-format
-msgid "key %08lX: bogus key binding by %08lX\n"
-msgstr "chiave %08lX: nessun user id\n"
+#: g10/trustdb.c:2183
+msgid "Valid user ID revocation\n"
+msgstr "Revoca dell'user ID valida\n"
 
-#. key revocation
-#: g10/trustdb.c:2390
-#, fuzzy, c-format
-msgid "key %08lX: bogus key revocation by %08lX\n"
-msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
+#: g10/trustdb.c:2190
+msgid "Invalid user ID revocation"
+msgstr "Revoca dell'user ID non valida"
 
-#. subkey revocation
-#: g10/trustdb.c:2394
-#, fuzzy, c-format
-msgid "key %08lX: bogus subkey revocation by %08lX\n"
-msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
+#: g10/trustdb.c:2273
+msgid "Too many preferences"
+msgstr "Troppe preferenze"
+
+#: g10/trustdb.c:2286
+msgid "Too many preferences items"
+msgstr "Troppi elementi di preferenza"
+
+#: g10/trustdb.c:2423
+msgid "Duplicated certificate - deleted"
+msgstr "Certificato doppio - cancellato"
+
+#: g10/trustdb.c:2455
+msgid "public key lost"
+msgstr "chiave pubblica perduta"
+
+#: g10/trustdb.c:2464 g10/trustdb.c:2547
+msgid "Invalid certificate revocation"
+msgstr "Certificato di revoca non valido"
+
+#: g10/trustdb.c:2465 g10/trustdb.c:2548
+msgid "Invalid certificate"
+msgstr "Certificato non valido"
 
 #: g10/status.c:246
 msgid "No help available"
@@ -2248,12 +2340,31 @@ msgstr "Il file '%s' esiste. "
 
 #: g10/openfile.c:59
 msgid "openfile.overwrite.okay"
-msgstr ""
+msgstr "openfile.overwrite.okay"
 
 #: g10/openfile.c:60
 msgid "Overwrite (y/N)? "
 msgstr "Sovrascrivo (y/N)? "
 
+#: g10/openfile.c:85
+msgid "writing to stdout\n"
+msgstr "scrivo su stdout\n"
+
+#: g10/openfile.c:101 g10/openfile.c:165
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: impossibile creare: %s\n"
+
+#: g10/openfile.c:134
+#, c-format
+msgid "assuming signed data in '%s'\n"
+msgstr "presumo che i dati firmati siano in '%s'\n"
+
+#: g10/openfile.c:181
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: creato un nuovo file delle opzioni\n"
+
 #: g10/encr-data.c:74
 msgid ""
 "Warning: Message was encrypted with a weak key in the symmetric cipher.\n"
@@ -2271,6 +2382,3 @@ msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
 "Impossibile evitare una chiave debole per il cifrario simmetrico;\n"
 "ho provato %d volte!\n"
-
-#~ msgid "key %08lX: already in ultikey_table\n"
-#~ msgstr "chiave %08lX: già in ultikey_table\n"
index 5ed020d..4179c29 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,10 +7,9 @@
 # Michael Sobolev <mss@transas.com>, 1998
 # Alexey Vyskubov <alexey@alv.stud.pu.ru>, 1998
 # QingLong <qinglong@Bolizm> (couldn't send an email to let you know)
-
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-10-07 14:24+0200\n"
+"POT-Creation-Date: 1998-11-08 18:21+0100\n"
 "Content-Type: text/plain; charset=\n"
 "Date: 1998-01-26 22:08:36+0100\n"
 "From: Gregory Steuck <steuck@iname.com>\n"
@@ -210,8 +209,8 @@ msgid "Weak key"
 msgstr "óÌÁÂÙÊ ËÌÀÞ"
 
 #: util/logger.c:177
-#, c-format
-msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n"
+#, fuzzy, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
 msgstr "ïÊ-ÊÏ ... ÏÛÉÂËÁ × ÐÒÏÇÒÁÍÍÅ (%s:%d:%s)\n"
 
 #: util/logger.c:183
@@ -248,7 +247,7 @@ msgstr ""
 "îÅÄÏÓÔÁÔÏÞÎÏ ÓÌÕÞÁÊÎÙÈ ÄÁÎÎÙÈ. ðÏÖÁÌÕÊÓÔÁ, ÐÏÄÅÌÁÊÔÅ ÞÔÏ-ÎÉÂÕÄØ, ÞÔÏÂÙ\n"
 "ïó ÍÏÇÌÁ ÎÁÂÒÁÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÌÕÞÁÊÎÙÅ ÞÉÓÌÁ! (ÎÕÖÎÏ ÅÝÅ %d ÂÁÊÔ)\n"
 
-#: g10/g10.c:147
+#: g10/g10.c:152
 msgid ""
 "@Commands:\n"
 " "
@@ -256,123 +255,128 @@ msgstr ""
 "@ëÏÍÁÎÄÙ:\n"
 " "
 
-#: g10/g10.c:150
+#: g10/g10.c:155
 #, fuzzy
 msgid "|[file]|make a signature"
 msgstr "|[ÆÁÊÌ]|ÓÏÚÄÁÔØ ÐÏÄÐÉÓØ"
 
-#: g10/g10.c:151
+#: g10/g10.c:156
 #, fuzzy
 msgid "|[file]|make a clear text signature"
 msgstr "|[ÆÁÊÌ]|ÓÏÚÄÁÔØ ÔÅËÓÔÏ×ÕÀ ÐÏÄÐÉÓØ"
 
-#: g10/g10.c:152
+#: g10/g10.c:157
 msgid "make a detached signature"
 msgstr "ÓÏÚÄÁÔØ ÏÔÄÅÌØÎÕÀ ÐÏÄÐÉÓØ"
 
-#: g10/g10.c:153
+#: g10/g10.c:158
 msgid "encrypt data"
 msgstr "ÚÁÛÉÆÒÏ×ÁÔØ ÄÁÎÎÙÅ"
 
-#: g10/g10.c:154
+#: g10/g10.c:159
 msgid "encryption only with symmetric cipher"
 msgstr "ÚÁÛÉÆÒÏ×ÁÔØ ÓÉÍÍÅÔÒÉÞÎÙÍ ÁÌÇÏÒÉÔÍÏÍ"
 
-#: g10/g10.c:155
+#: g10/g10.c:160
 msgid "store only"
 msgstr "ÔÏÌØËÏ ÓÏÈÒÁÎÉÔØ"
 
-#: g10/g10.c:156
+#: g10/g10.c:161
 msgid "decrypt data (default)"
 msgstr "ÒÁÓÛÉÆÒÏ×ÁÔØ ÄÁÎÎÙÅ (ÐÏ ÕÍÏÌÞÁÎÉÀ)"
 
-#: g10/g10.c:157
+#: g10/g10.c:162
 msgid "verify a signature"
 msgstr "ÐÒÏ×ÅÒÉÔØ ÐÏÄÐÉÓØ"
 
-#: g10/g10.c:159
+#: g10/g10.c:164
 msgid "list keys"
 msgstr "ÓÐÉÓÏË ËÌÀÞÅÊ"
 
-#: g10/g10.c:160
+#: g10/g10.c:165
 msgid "list keys and signatures"
 msgstr "ÓÐÉÓÏË ËÌÀÞÅÊ É ÐÏÄÐÉÓÅÊ"
 
-#: g10/g10.c:161
+#: g10/g10.c:166
 msgid "check key signatures"
 msgstr "ÐÒÏ×ÅÒÉÔØ ÐÏÄÐÉÓØ ÎÁ ËÌÀÞÅ"
 
-#: g10/g10.c:162
+#: g10/g10.c:167
 msgid "list keys and fingerprints"
 msgstr "ÓÐÉÓÏË ËÌÀÞÅÊ Ó ÉÈ \"ÏÔÐÅÞÁÔËÁÍÉ ÐÁÌØÃÅ×\""
 
-#: g10/g10.c:163
+#: g10/g10.c:168
 msgid "list secret keys"
 msgstr "ÓÐÉÓÏË ÓÅËÒÅÔÎÙÈ ËÌÀÞÅÊ"
 
-#: g10/g10.c:165
+#: g10/g10.c:170
 msgid "generate a new key pair"
 msgstr "ÓÇÅÎÅÒÉÒÏ×ÁÔØ ÎÏ×ÕÀ ÐÁÒÕ ËÌÀÞÅÊ (ÏÔËÒÙÔÙÊ É ÓÅËÒÅÔÎÙÊ)"
 
-#: g10/g10.c:167
+#: g10/g10.c:172
 msgid "remove key from the public keyring"
 msgstr "ÕÄÁÌÉÔØ ËÌÀÞ ÓÏ Ó×ÑÚËÉ"
 
-#: g10/g10.c:169
+#: g10/g10.c:174
 msgid "sign or edit a key"
 msgstr "ÐÏÄÐÉÓÁÔØ ÉÌÉ ÒÅÄÁËÔÉÒÏ×ÁÔØ ËÌÀÞ"
 
-#: g10/g10.c:170
+#: g10/g10.c:175
 msgid "generate a revocation certificate"
 msgstr "ÓÇÅÎÅÒÉÒÏ×ÁÔØ ÏÔÚÙ×ÁÀÝÉÊ ÓÅÒÔÉÆÉËÁÔ"
 
-#: g10/g10.c:172
+#: g10/g10.c:177
 msgid "export keys"
 msgstr "ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ËÌÀÞÉ"
 
-#: g10/g10.c:175
+#: g10/g10.c:179
 msgid "import/merge keys"
 msgstr "ÉÍÐÏÒÔÉÒÏ×ÁÔØ/ÄÏÂÁ×ÉÔØ ËÌÀÞÉ"
 
-#: g10/g10.c:176
+#: g10/g10.c:181
 msgid "list only the sequence of packets"
 msgstr "ÎÁÐÅÞÁÔÁÔØ ÔÏÌØËÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÐÁËÅÔÏ×"
 
-#: g10/g10.c:178
+#: g10/g10.c:184
 #, fuzzy
 msgid "export the ownertrust values"
 msgstr "ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ÐÁÒÁÍÅÔÒÙ ÄÏ×ÅÒÉÑ\n"
 
-#: g10/g10.c:179
+#: g10/g10.c:186
 #, fuzzy
 msgid "import ownertrust values"
 msgstr "ÉÍÐÏÒÔÉÒÏ×ÁÔØ ÐÁÒÁÍÅÔÒÙ ÄÏ×ÅÒÉÑ\n"
 
-#: g10/g10.c:180
+#: g10/g10.c:188
+#, fuzzy
+msgid "|[NAMES]|update the trust database"
+msgstr "|[éíåîá]|ÐÒÏ×ÅÒÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ ÄÏ×ÅÒÉÑ"
+
+#: g10/g10.c:190
 msgid "|[NAMES]|check the trust database"
 msgstr "|[éíåîá]|ÐÒÏ×ÅÒÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ ÄÏ×ÅÒÉÑ"
 
-#: g10/g10.c:181
+#: g10/g10.c:191
 msgid "fix a corrupted trust database"
 msgstr "ÉÓÐÒÁ×ÉÔØ ÒÁÚÒÕÛÅÎÎÕÀ ÂÁÚÕ ÄÁÎÎÙÈ ÄÏ×ÅÒÉÑ"
 
-#: g10/g10.c:182
+#: g10/g10.c:192
 msgid "De-Armor a file or stdin"
 msgstr "äÅËÏÄÉÒÏ×ÁÔØ stdin ÉÌÉ ÆÁÊÌ ÉÚ ASCII-ÐÒÅÄÓÔÁ×ÌÅÎÉÑ"
 
-#: g10/g10.c:183
+#: g10/g10.c:193
 msgid "En-Armor a file or stdin"
 msgstr "úÁËÏÄÉÒÏ×ÁÔØ stdin ÉÌÉ ÆÁÊÌ × ASCII-ÐÒÅÄÓÔÁ×ÌÅÎÉÅ"
 
-#: g10/g10.c:184
+#: g10/g10.c:194
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|ÎÁÐÅÞÁÔÁÔØ ÄÁÊÄÖÅÓÔ ÓÏÏÂÝÅÎÉÑ"
 
-#: g10/g10.c:185
+#: g10/g10.c:195
 msgid "print all message digests"
 msgstr "ÎÁÐÅÞÁÔÁÔØ ×ÓÅ ÄÁÊÄÖÅÓÔÙ ÓÏÏÂÝÅÎÉÑ"
 
-#: g10/g10.c:192
+#: g10/g10.c:202
 msgid ""
 "@\n"
 "Options:\n"
@@ -382,128 +386,138 @@ msgstr ""
 "ðÁÒÁÍÅÔÒÙ:\n"
 " "
 
-#: g10/g10.c:194
+#: g10/g10.c:204
 msgid "create ascii armored output"
 msgstr "×Ù×ÏÄ × ASCII-ÐÒÅÄÓÔÁ×ÌÅÎÉÉ"
 
-#: g10/g10.c:196
+#: g10/g10.c:206
 msgid "use this user-id to sign or decrypt"
-msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ÕËÁÚÁÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÐÏÄÐÉÓÉ ÉÌÉ ÒÁÓÛÉÆÒÏ×ËÉ"
+msgstr ""
+"ÉÓÐÏÌØÚÏ×ÁÔØ ÕËÁÚÁÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÐÏÄÐÉÓÉ ÉÌÉ ÒÁÓÛÉÆÒÏ×ËÉ"
 
-#: g10/g10.c:197
+#: g10/g10.c:207
 msgid "use this user-id for encryption"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ÕËÁÚÁÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÛÉÆÒÏ×ÁÎÉÑ"
 
-#: g10/g10.c:198
+#: g10/g10.c:208
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|ÕÓÔÁÎÏ×ÉÔØ ÕÒÏ×ÅÎØ ÓÖÁÔÉÑ (0 - ÎÅ ÓÖÉÍÁÔØ)"
 
-#: g10/g10.c:199
+#: g10/g10.c:210
 msgid "use canonical text mode"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ËÁÎÏÎÉÞÅÓËÉÊ ÔÅËÓÔÏ×ÙÊ ÒÅÖÉÍ"
 
-#: g10/g10.c:201
+#: g10/g10.c:212
 msgid "use as output file"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ × ËÁÞÅÓÔ×Å ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ"
 
-#: g10/g10.c:202
+#: g10/g10.c:213
 msgid "verbose"
 msgstr "ÍÎÏÇÏÓÌÏ×ÎÙÊ"
 
+#: g10/g10.c:214
+msgid "be somewhat more quiet"
+msgstr ""
+
+#: g10/g10.c:215
+#, fuzzy
+msgid "force v3 signatures"
+msgstr "ÐÒÏ×ÅÒÉÔØ ÐÏÄÐÉÓØ ÎÁ ËÌÀÞÅ"
+
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:204
+#: g10/g10.c:217
 msgid "batch mode: never ask"
 msgstr "ÐÁËÅÔÎÙÊ ÒÅÖÉÍ: ÎÉÞÅÇÏ ÎÅ ÓÐÒÁÛÉ×ÁÔØ"
 
-#: g10/g10.c:205
+#: g10/g10.c:218
 msgid "assume yes on most questions"
 msgstr "ÏÔ×ÅÞÁÔØ \"ÄÁ\" ÎÁ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÐÒÏÓÏ×"
 
-#: g10/g10.c:206
+#: g10/g10.c:219
 msgid "assume no on most questions"
 msgstr "ÏÔ×ÅÞÁÔØ \"ÎÅÔ\" ÎÁ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÐÒÏÓÏ×"
 
-#: g10/g10.c:207
+#: g10/g10.c:220
 msgid "add this keyring to the list of keyrings"
 msgstr "ÄÏÂÁ×ÉÔØ ÜÔÕ Ó×ÑÚËÕ Ë ÓÐÉÓËÕ Ó×ÑÚÏË ËÌÀÞÅÊ"
 
-#: g10/g10.c:208
+#: g10/g10.c:221
 msgid "add this secret keyring to the list"
 msgstr "ÄÏÂÁ×ÉÔØ ÜÔÕ ÓÅËÒÅÔÎÕÀ Ó×ÑÚËÕ Ë ÓÐÉÓËÕ Ó×ÑÚÏË ËÌÀÞÅÊ"
 
-#: g10/g10.c:209
+#: g10/g10.c:222
 msgid "|NAME|use NAME as default secret key"
 msgstr "|éíñ|ÉÓÐÏÌØÚÏ×ÁÔØ éíñ × ËÁÞÅÓÔ×Å ÓÅËÒÅÔÎÏÇÏ ËÌÀÞÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
-#: g10/g10.c:210
+#: g10/g10.c:223
 msgid "read options from file"
 msgstr "ÞÉÔÁÔØ ÐÁÒÁÍÅÔÒÙ ÉÚ ÆÁÊÌÁ"
 
-#: g10/g10.c:212
+#: g10/g10.c:225
 msgid "set debugging flags"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ ÏÔÌÁÄÏÞÎÙÅ ÆÌÁÇÉ"
 
-#: g10/g10.c:213
+#: g10/g10.c:226
 msgid "enable full debugging"
 msgstr "ÒÁÚÒÅÛÉÔØ ×ÓÀ ÏÔÌÁÄËÕ"
 
-#: g10/g10.c:214
+#: g10/g10.c:227
 msgid "|FD|write status info to this FD"
 msgstr "|FD| ÚÁÐÉÓÙ×ÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ × ÄÅÓËÒÉÐÔÏÒ (FD)"
 
-#: g10/g10.c:215
+#: g10/g10.c:228
 msgid "do not write comment packets"
 msgstr "ÎÅ ÐÉÓÁÔØ ÐÁËÅÔÙ Ó ËÏÍÍÅÎÔÁÒÉÑÍÉ"
 
-#: g10/g10.c:216
+#: g10/g10.c:229
 msgid "(default is 1)"
 msgstr "(ÐÏ ÕÍÏÌÞÁÎÉÀ 1)"
 
-#: g10/g10.c:217
+#: g10/g10.c:230
 msgid "(default is 3)"
 msgstr "(ÐÏ ÕÍÏÌÞÁÎÉÀ 3)"
 
-#: g10/g10.c:218
+#: g10/g10.c:231
 #, fuzzy
 msgid "|FILE|load extension module FILE"
 msgstr "|æáêì|ÚÁÇÒÕÚÉÔØ æáêì Ó ÒÁÓÛÉÒÑÀÝÉÍÉ ÍÏÄÕÌÑÍÉ"
 
-#: g10/g10.c:219
+#: g10/g10.c:232
 msgid "emulate the mode described in RFC1991"
 msgstr "ÜÍÕÌÉÒÏ×ÁÔØ ÒÅÖÉÍ ÏÐÉÓÁÎÎÙÊ × RFC1991"
 
-#: g10/g10.c:220
+#: g10/g10.c:233
 #, fuzzy
 msgid "|N|use passphrase mode N"
 msgstr "|N|ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÀÞÅ×ÕÀ ÆÒÁÚÕ ÒÅÖÉÍÁ N\n"
 
-#: g10/g10.c:222
+#: g10/g10.c:235
 #, fuzzy
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|éíñ|ÉÓÐÏÌØÚÏ×ÁÔØ ÈÜÛ-ÁÌÇÏÒÉÔÍ éíñ ÄÌÑ ËÌÀÞÅ×ÙÈ ÆÒÁÚ"
 
-#: g10/g10.c:224
+#: g10/g10.c:237
 #, fuzzy
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|éíñ|ÉÓÐÏÌØÚÏ×ÁÔØ ÛÉÆÒÏ×ÁÌØÎÙÊ ÁÌÇÏÒÉÔÍÏÍ éíñ ÄÌÑ ËÌÀÞÅ×ÙÈ ÆÒÁÚ"
 
-#: g10/g10.c:226
+#: g10/g10.c:239
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|éíñ|ÉÓÐÏÌØÚÏ×ÁÔØ ÛÉÆÒÏ×ÁÌØÎÙÊ ÁÌÇÏÒÉÔÍÏÍ éíñ"
 
-#: g10/g10.c:227
+#: g10/g10.c:240
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|éíñ|ÉÓÐÏÌØÚÏ×ÁÔØ ÈÜÛ-ÁÌÇÏÒÉÔÍ éíñ"
 
-#: g10/g10.c:228
+#: g10/g10.c:241
 msgid "|N|use compress algorithm N"
 msgstr "|N|ÉÓÐÏÌØÚÏ×ÁÔØ ÁÌÇÏÒÉÔÍ ÓÖÁÔÉÑ N"
 
-#: g10/g10.c:229
+#: g10/g10.c:242
 msgid "throw keyid field of encrypted packets"
 msgstr "×ÙÂÒÁÓÙ×ÁÔØ ÐÏÌÅ keyid Õ ÚÁÛÉÆÒÏ×ÁÎÎÙÈ ÐÁËÅÔÏ×"
 
-#: g10/g10.c:237
+#: g10/g10.c:250
 #, fuzzy
 msgid ""
 "@\n"
@@ -524,27 +538,30 @@ msgstr ""
 " --list-keys [names]        ÐÏËÁÚÁÔØ ÓÐÉÓÏË ËÌÀÞÅÊ\n"
 " --fingerprint [names]      ÐÏËÁÚÁÔØ \"ÏÔÐÅÞÁÔËÉ ÐÁÌØÃÅ×\" ËÌÀÞÅÊ\n"
 
-#: g10/g10.c:312
+#: g10/g10.c:325
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
-msgstr "ðÏÖÁÌÕÊÓÔÁ, ÏÔÐÒÁ×ÌÑÊÔÅ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ ÐÏ ÁÄÒÅÓÕ <gnupg-bugs@gnu.org>.\n"
+msgstr ""
+"ðÏÖÁÌÕÊÓÔÁ, ÏÔÐÒÁ×ÌÑÊÔÅ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ ÐÏ ÁÄÒÅÓÕ "
+"<gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:317
+#: g10/g10.c:330
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: gpgm [ÐÁÒÁÍÅÔÒÙ] [ÆÁÊÌÙ] (-h ÄÌÑ ÐÏÍÏÝÉ)"
 
-#: g10/g10.c:319
+#: g10/g10.c:332
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: gpg [ÐÁÒÁÍÅÔÒÙ] [ÆÁÊÌÙ] (-h ÄÌÑ ÐÏÍÏÝÉ)"
 
-#: g10/g10.c:324
+#: g10/g10.c:337
+#, fuzzy
 msgid ""
 "Syntax: gpgm [options] [files]\n"
-"GNUPG maintenance utility\n"
+"GnuPG maintenance utility\n"
 msgstr ""
 "óÉÎÔÁËÓÉÓ: gpgm [ÐÁÒÁÍÅÔÒÙ] [ÆÁÊÌÙ]\n"
 "ðÒÏÇÒÁÍÍÁ ÓÏÐÒÏ×ÏÖÄÅÎÉÑ GNUPG\n"
 
-#: g10/g10.c:327
+#: g10/g10.c:340
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -554,7 +571,7 @@ msgstr ""
 "ÐÏÄÐÉÓÙ×ÁÅÔ, ÐÒÏ×ÅÒÑÅÔ ÐÏÄÐÉÓÉ, ÛÉÆÒÕÅÔ ÉÌÉ ÒÁÓÛÉÆÒÏ×Ù×ÁÅÔ\n"
 "ÒÅÖÉÍ ÒÁÂÏÔÙ ÚÁ×ÉÓÉÔ ÏÔ ×ÈÏÄÎÙÈ ÄÁÎÎÙÈ\n"
 
-#: g10/g10.c:333
+#: g10/g10.c:346
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -562,141 +579,141 @@ msgstr ""
 "\n"
 "ðÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÁÌÇÏÒÉÔÍÙ:\n"
 
-#: g10/g10.c:408
+#: g10/g10.c:421
 msgid "usage: gpgm [options] "
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: gpgm [ÐÁÒÁÍÅÔÒÙ] "
 
-#: g10/g10.c:410
+#: g10/g10.c:423
 msgid "usage: gpg [options] "
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: gpg [ÐÁÒÁÍÅÔÒÙ] "
 
-#: g10/g10.c:451
+#: g10/g10.c:464
 msgid "conflicting commands\n"
 msgstr "Widersprüchliche Kommandos\n"
 
-#: g10/g10.c:590
+#: g10/g10.c:602
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "ÚÁÍÅÞÁÎÉÅ: ÆÁÊÌ ÐÁÒÁÍÅÔÒÏ× ÐÏ ÕÍÏÌÞÁÎÉÀ '%s' ÏÔÓÕÔÓÔ×ÕÅÔ\n"
 
-#: g10/g10.c:594
+#: g10/g10.c:606
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "ÆÁÊÌ ÐÁÒÁÍÅÔÒÏ× '%s': %s\n"
 
-#: g10/g10.c:601
+#: g10/g10.c:613
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "ÞÉÔÁÀÔÓÑ ÐÁÒÁÍÅÔÒÙ ÉÚ '%s'\n"
 
-#: g10/g10.c:768 g10/g10.c:780
+#: g10/g10.c:787 g10/g10.c:799
 msgid "selected cipher algorithm is invalid\n"
 msgstr "×ÙÂÒÁΠÎÅÄÏÐÕÓÔÉÍÙÊ ÁÌÇÏÒÉÔÍ ÛÉÆÒÏ×ÁÎÉÑ\n"
 
-#: g10/g10.c:774 g10/g10.c:786
+#: g10/g10.c:793 g10/g10.c:805
 msgid "selected digest algorithm is invalid\n"
 msgstr "×ÙÂÒÁΠÎÅÄÏÐÕÓÔÉÍÙÊ ÄÁÊÄÖÅÓÔ-ÁÌÇÏÒÉÔÍ\n"
 
-#: g10/g10.c:789
+#: g10/g10.c:808
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "ÁÌÇÏÒÉÔÍ ÕÐÁËÏ×ËÉ ÍÏÖÅÔ ÉÍÅÔØ ÚÎÁÞÅÎÉÑ ÏÔ %d ÄÏ %d\n"
 
-#: g10/g10.c:791
+#: g10/g10.c:810
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed ÄÏÌÖÅΠÂÙÔØ ÂÏÌØÛÅ 0\n"
 
-#: g10/g10.c:793
+#: g10/g10.c:812
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed ÄÏÌÖÅΠÂÙÔØ ÂÏÌØÛÅ 1\n"
 
-#: g10/g10.c:796
+#: g10/g10.c:815
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "ÚÁÍÅÞÁÎÉÅ: ÐÒÏÓÔÏÊ S2K ÒÅÖÉÍ (0) ÏÞÅÎØ ÎÅ ÒÅËÏÍÅÎÄÕÅÔÓÑ\n"
 
-#: g10/g10.c:800
+#: g10/g10.c:819
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÒÅÖÉÍ S2K: ÄÏÌÖÅΠÂÙÔØ 0, 1 ÉÌÉ 3\n"
 
-#: g10/g10.c:876
+#: g10/g10.c:895
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "ïÛÉÂËÁ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÂÁÚÙ ÄÁÎÎÙÈ ÄÏ×ÅÒÉÑ: %s\n"
 
-#: g10/g10.c:882
+#: g10/g10.c:901
 msgid "--store [filename]"
 msgstr "--store [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:890
+#: g10/g10.c:909
 msgid "--symmetric [filename]"
 msgstr "--symmetric [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:898
+#: g10/g10.c:917
 msgid "--encrypt [filename]"
 msgstr "--encrypt [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:911
+#: g10/g10.c:930
 msgid "--sign [filename]"
 msgstr "--sign [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:924
+#: g10/g10.c:943
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:938
+#: g10/g10.c:957
 msgid "--clearsign [filename]"
 msgstr "--clearsign [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:950
+#: g10/g10.c:969
 msgid "--decrypt [filename]"
 msgstr "--decrypt [ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/g10.c:959
+#: g10/g10.c:978
 msgid "--edit-key username"
 msgstr "--edit-key ÉÍÑ-ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: g10/g10.c:967
+#: g10/g10.c:986
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key ÉÍÑ-ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: g10/g10.c:970
+#: g10/g10.c:989
 msgid "--delete-key username"
 msgstr "--delete-key ÉÍÑ-ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79
+#: g10/encode.c:216 g10/g10.c:1012
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ '%s': %s\n"
 
-#: g10/g10.c:1004
+#: g10/g10.c:1023
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ] [Ó×ÑÚËÁ ËÌÀÞÅÊ]"
 
-#: g10/g10.c:1059
+#: g10/g10.c:1079
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "ÏÛÉÂËÁ ÄÅËÏÄÉÒÏ×ÁÎÉÑ: %s\n"
 
-#: g10/g10.c:1067
+#: g10/g10.c:1087
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "ÏÛÉÂËÁ ËÏÄÉÒÏ×ÁÎÉÑ: %s\n"
 
-#: g10/g10.c:1128
+#: g10/g10.c:1148
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÈÜÛ-ÁÌÇÏÒÉÔÍ '%s'\n"
 
-#: g10/g10.c:1204
+#: g10/g10.c:1230
 msgid "[filename]"
 msgstr "[ÉÍÑ ÆÁÊÌÁ]"
 
-#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1232 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ '%s'\n"
 
-#: g10/g10.c:1251
+#: g10/g10.c:1279
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -704,63 +721,63 @@ msgstr ""
 "ðÏÌØÚÏ×ÁÎÉÅ RSA ËÌÀÞÁÍÉ ÎÅ ÒÅËÏÍÅÎÄÕÅÔÓÑ, ÐÏÖÁÌÕÊÓÔÁ, ÐÏÄÕÍÁÊÔÅ Ï ÓÏÚÄÁÎÉÉ\n"
 "ÎÏ×ÏÇÏ ËÌÀÞÁ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÂÕÄÕÝÅÍ\n"
 
-#: g10/armor.c:335 g10/armor.c:375
+#: g10/armor.c:341 g10/armor.c:381
 msgid "armor header: "
 msgstr ""
 
-#: g10/armor.c:340
+#: g10/armor.c:346
 #, fuzzy
 msgid "invalid clearsig header\n"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÎÁÞÁÌÏ ÔÅËÓÔÏ×ÏÊ ÐÏÄÐÉÓÉ\n"
 
-#: g10/armor.c:366
+#: g10/armor.c:372
 msgid "invalid armor header: "
 msgstr ""
 
-#: g10/armor.c:440
+#: g10/armor.c:449
 #, fuzzy, c-format
 msgid "armor: %s\n"
 msgstr "ëÏÄÉÒÏ×ËÁ: %s\n"
 
-#: g10/armor.c:484
+#: g10/armor.c:493
 msgid "invalid dash escaped line: "
 msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÓÔÒÏËÁ ÎÁÞÉÎÁÀÝÁÑÓÑ Ó ÍÉÎÕÓÏ×: "
 
-#: g10/armor.c:553
+#: g10/armor.c:562
 msgid "invalid clear text header: "
 msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÔÅËÓÔÏ×ÙÊ ÚÁÇÏÌÏ×ÏË: "
 
-#: g10/armor.c:783
+#: g10/armor.c:794
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÌÑ ËÏÄÉÒÏ×ËÉ radix64 ÓÉÍ×ÏÌ %02x ÐÒÏÐÕÝÅÎ\n"
 
-#: g10/armor.c:816
+#: g10/armor.c:827
 msgid "premature eof (no CRC)\n"
 msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅàÆÁÊÌÁ (ÎÅÔ CRC)\n"
 
-#: g10/armor.c:835
+#: g10/armor.c:846
 msgid "premature eof (in CRC)\n"
 msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅàÆÁÊÌÁ (× CRC)\n"
 
-#: g10/armor.c:839
+#: g10/armor.c:850
 msgid "malformed CRC\n"
 msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ÆÏÒÍÁ CRC\n"
 
-#: g10/armor.c:843
+#: g10/armor.c:854
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
 msgstr "ÏÛÉÂËÁ CRC; %06lx - %06lx\n"
 
-#: g10/armor.c:862
+#: g10/armor.c:873
 msgid "premature eof (in Trailer)\n"
 msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅàÆÁÊÌÁ (× È×ÏÓÔÅ)\n"
 
-#: g10/armor.c:866
+#: g10/armor.c:877
 msgid "error in trailer line\n"
 msgstr "ÏÛÉÂËÁ × ÚÁ×ÅÒÛÁÀÝÅÊ ÓÔÒÏËÅ\n"
 
-#: g10/armor.c:1120
+#: g10/armor.c:1131
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "ÎÅ ÎÁÊÄÅÎÏ ÄÏÐÕÓÔÉÍÙÈ RFC1991 ÉÌÉ OpenPGP ÄÁÎÎÙÈ.\n"
 
@@ -826,7 +843,8 @@ msgid ""
 "can assign some missing owner trust values.\n"
 "\n"
 msgstr ""
-"îÅ ÐÏÌÕÞÉÌÏÓØ ÎÁÊÔÉ ÃÅÐÏÞËÕ ÄÏ×ÅÒÉÑ ÄÌÑ ËÌÀÞÁ. ðÏÓÍÏÔÒÉÍ, ÍÏÖÎÏ ÌÉ ÐÒÉÓ×ÏÉÔØ\n"
+"îÅ ÐÏÌÕÞÉÌÏÓØ ÎÁÊÔÉ ÃÅÐÏÞËÕ ÄÏ×ÅÒÉÑ ÄÌÑ ËÌÀÞÁ. ðÏÓÍÏÔÒÉÍ, ÍÏÖÎÏ ÌÉ "
+"ÐÒÉÓ×ÏÉÔØ\n"
 "ÎÅËÏÔÏÒÙÅ ÎÅÄÏÓÔÁÀÝÉÅ ÚÎÁÞÅÎÉÑ \"ÄÏ×ÅÒÉÑ ×ÌÁÄÅÌØÃÕ\"\n"
 "\n"
 
@@ -896,8 +914,7 @@ msgstr "         
 #: g10/pkclist.c:373
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
-msgstr ""
-"÷îéíáîéå: üÔÏÔ ËÌÀÞ ÎÅ ÚÁ×ÅÒÅΠÄÏÓÔÁÔÏÞÎÏ ÄÏ×ÅÒÅÎÎÙÍÉ ÐÏÄÐÉÓÑÍÉ!\n"
+msgstr "÷îéíáîéå: üÔÏÔ ËÌÀÞ ÎÅ ÚÁ×ÅÒÅΠÄÏÓÔÁÔÏÞÎÏ ÄÏ×ÅÒÅÎÎÙÍÉ ÐÏÄÐÉÓÑÍÉ!\n"
 
 #: g10/pkclist.c:376
 msgid "         It is not certain that the signature belongs to the owner.\n"
@@ -908,7 +925,8 @@ msgid ""
 "You did not specify a user ID. (you may use \"-r\")\n"
 "\n"
 msgstr ""
-"÷Ù ÎÅ ÕËÁÚÁÌÉ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ (×ÏÓÐÏÌØÚÕÊÔÅÓØ ÐÁÒÁÍÅÔÒÏÍ \"-r\").\n"
+"÷Ù ÎÅ ÕËÁÚÁÌÉ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ (×ÏÓÐÏÌØÚÕÊÔÅÓØ ÐÁÒÁÍÅÔÒÏÍ "
+"\"-r\").\n"
 "\n"
 
 #: g10/pkclist.c:425
@@ -945,48 +963,48 @@ msgstr "
 msgid "writing key binding signature\n"
 msgstr "ÐÉÛÅÔÓÑ \"key-binding\" ÐÏÄÐÉÓØ\n"
 
-#: g10/keygen.c:383
+#: g10/keygen.c:387
 msgid "Please select what kind of key you want:\n"
 msgstr "÷ÙÂÅÒÉÔÅ ÖÅÌÁÅÍÙÊ ÔÉРËÌÀÞÁ:\n"
 
-#: g10/keygen.c:385
+#: g10/keygen.c:389
 #, c-format
 msgid "   (%d) DSA and ElGamal (default)\n"
 msgstr "   (%d) DSA É ElGamal (ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
 
-#: g10/keygen.c:386
+#: g10/keygen.c:390
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
 msgstr "   (%d) ElGamal (ÐÏÄÐÉÓØ É ÛÉÆÒÏ×ÁÎÉÅ)\n"
 
-#: g10/keygen.c:388
+#: g10/keygen.c:392
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
 msgstr "   (%d) ElGamal (ÔÏÌØËÏ ÛÉÆÒÏ×ÁÎÉÅ)\n"
 
-#: g10/keygen.c:389
+#: g10/keygen.c:393
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
 msgstr "   (%d) DSA (ÔÏÌØËÏ ÐÏÄÐÉÓØ)\n"
 
-#: g10/keygen.c:390
+#: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr "   (%d) ElGamal × v3-ÐÁËÅÔÅ\n"
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "keygen.algo"
 msgstr ""
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "Your selection? "
 msgstr "÷ÁÛ ×ÙÂÏÒ? "
 
-#: g10/keygen.c:420
+#: g10/keygen.c:424
 msgid "Invalid selection.\n"
 msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ×ÙÂÏÒ.\n"
 
-#: g10/keygen.c:432
+#: g10/keygen.c:436
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -999,40 +1017,40 @@ msgstr ""
 "               ÄÌÉÎÁ ËÌÀÞÁ ÐÏ ÕÍÏÌÞÁÎÉÀ: 1024 ÂÉÔÁ\n"
 " ÍÁËÓÉÍÁÌØÎÁÑ ÒÅËÏÍÅÎÄÕÅÍÁÑ ÄÌÉÎÁ ËÌÀÞÁ: 2048 ÂÉÔ\n"
 
-#: g10/keygen.c:438
+#: g10/keygen.c:442
 msgid "keygen.size"
 msgstr ""
 
-#: g10/keygen.c:439
+#: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
 msgstr "ëÁËÏÇÏ ÒÁÚÍÅÒÁ ËÌÀÞ ×Ù ÖÅÌÁÅÔÅ? (1024)"
 
-#: g10/keygen.c:444
+#: g10/keygen.c:448
 msgid "DSA only allows keysizes from 512 to 1024\n"
 msgstr "äÏÐÕÓÔÉÍÙÊ ÒÁÚÍÅÒ DSA ËÌÀÞÅÊ - ÏÔ 512 ÄÏ 1024 ÂÉÔ\n"
 
-#: g10/keygen.c:446
+#: g10/keygen.c:450
 msgid "keysize too small; 768 is smallest value allowed.\n"
 msgstr "ÓÌÉÛËÏÍ ÍÁÌÅÎØËÁÑ ÄÌÉÎÁ ËÌÀÞÁ, ÎÁÉÍÅÎØÛÅÅ ÚÎÁÞÅÎÉÅ - 768.\n"
 
-#: g10/keygen.c:449
+#: g10/keygen.c:453
 #, fuzzy
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
 "computations take REALLY long!\n"
 msgstr ""
-"ëÌÀÞÉ ÄÌÉÎÏÊ ÂÏÌØÛÅ 2048 ÎÅ ÒÅËÏÍÅÎÄÕÀÔÓÑ, ÐÏÔÏÍÕ ÞÔÏ ×ÙÞÉÓÌÅÎÉÑ"
-"ÚÁÎÉÍÁÀÔ ïþåîø ÍÎÏÇÏ ×ÒÅÍÅÎÉ!\n"
+"ëÌÀÞÉ ÄÌÉÎÏÊ ÂÏÌØÛÅ 2048 ÎÅ ÒÅËÏÍÅÎÄÕÀÔÓÑ, ÐÏÔÏÍÕ ÞÔÏ ×ÙÞÉÓÌÅÎÉÑÚÁÎÉÍÁÀÔ "
+"ïþåîø ÍÎÏÇÏ ×ÒÅÍÅÎÉ!\n"
 
-#: g10/keygen.c:451
+#: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/keygen.c:452
+#: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
 msgstr "÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ËÌÀÞ ÔÁËÏÊ ÄÌÉÎÙ? "
 
-#: g10/keygen.c:453
+#: g10/keygen.c:457
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
@@ -1040,25 +1058,25 @@ msgstr ""
 "ïË, ÔÏÌØËÏ ÎÅ ÚÁÂÙ×ÁÊÔÅ, ÞÔÏ ÉÚÌÕÞÅÎÉÅ ×ÁÛÉÈ ËÌÁ×ÉÁÔÕÒÙ É ÍÏÎÉÔÏÒÁ ÔÏÖÅ\n"
 "ÄÅÌÁÀÔ ×ÁÓ ÕÑÚ×ÉÍÙÍ ÄÌÑ ÁÔÁË.\n"
 
-#: g10/keygen.c:460
+#: g10/keygen.c:464
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/keygen.c:461
+#: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
 msgstr "÷ÁÍ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÕÖÅΠÔÁËÏÊ ÄÌÉÎÎÙÊ ËÌÀÞ? "
 
-#: g10/keygen.c:467
+#: g10/keygen.c:471
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr "úÁÐÒÏÛÅÎÎÙÊ ËÌÀÞ ÉÍÅÅÔ ÄÌÉÎÕ %u ÂÉÔ\n"
 
-#: g10/keygen.c:470 g10/keygen.c:474
+#: g10/keygen.c:474 g10/keygen.c:478
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr "ÏËÒÕÇÌÅÎÏ ÄÏ %u ÂÉÔ\n"
 
-#: g10/keygen.c:486
+#: g10/keygen.c:491
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1074,37 +1092,37 @@ msgstr ""
 "      <n>m = ÓÒÏË ÄÅÊÓÔ×ÉÑ ËÌÀÞÁ n ÍÅÓÑÃÅ×\n"
 "      <n>y = ÓÒÏË ÄÅÊÓÔ×ÉÑ ËÌÀÞÁ n ÌÅÔ\n"
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "Key is valid for? (0) "
 msgstr "ëÌÀÞ ÄÅÊÓÔ×ÉÔÅÌÅΠנÔÅÞÅÎÉÅ? (0) "
 
-#: g10/keygen.c:512
+#: g10/keygen.c:517
 msgid "invalid value\n"