See ChangeLog: Wed Sep 15 16:22:17 CEST 1999 Werner Koch V1-0-1-ePit-1 V1-0-2 V1-0-3 V1-0-4
authorWerner Koch <wk@gnupg.org>
Wed, 15 Sep 1999 14:26:39 +0000 (14:26 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 15 Sep 1999 14:26:39 +0000 (14:26 +0000)
30 files changed:
AUTHORS
ChangeLog
THANKS
acconfig.h
cipher/ChangeLog
cipher/Makefile.am
cipher/random.h
configure.in
doc/gpg.sgml
g10/ChangeLog
g10/g10.c
g10/helptext.c
g10/mainproc.c
include/ChangeLog
include/i18n.h
po/ChangeLog
po/de.po
po/es_ES.po
po/fr.po
po/it.po
po/pl.po
po/pt_BR.po
po/pt_PT.po [new file with mode: 0644]
po/ru.po
scripts/ChangeLog
util/ChangeLog
util/Makefile.am
util/argparse.c
util/simple-gettext.c [new file with mode: 0644]
util/ttyio.c

diff --git a/AUTHORS b/AUTHORS
index db4ab04..8c5bfeb 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -66,6 +66,11 @@ Disclaimer.  [pt_BR]
 jungmann@cwb.matrix.com.br
 
 
+TRANSLATIONS   Pedro Morais
+??????????.  [pt_PT]
+morais@poli.org
+
+
 TRANSLATIONS   Janusz Aleksander Urbanowicz    1999-01-09
 Disclaimer.  [po]
 alex@bofh.torun.pl
index 07e860a..9cbb599 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * configure.in (ALL_LINGUAS): Add pt_PT.
+
+       * configure.in: Some tweaks for cross compiling under MingW32
+       * acconfig.h (USE_STATIC_RNDW32): New.
+
 Tue Sep  7 17:08:10 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
diff --git a/THANKS b/THANKS
index a01280e..079f621 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -17,7 +17,7 @@ Christian von Roques  roques@pond.sub.org
 Christopher Oliver     oliver@fritz.traverse.net
 Christian Recktenwald  chris@citecs.de
 Daniel Eisenbud        eisenbud@cs.swarthmore.edu
-Daniel Koeni         dan@mail.isis.de
+Daniel Koening         dan@mail.isis.de
 David Ellement         ellement@sdd.hp.com
 Detlef Lannert         lannert@lannert.rz.uni-duesseldorf.de
 Dirk Lattermann        dlatt@t-online.de
index ed33b9d..40ef16a 100644 (file)
 /* defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2)
  * with special properties like no file modes */
 #undef HAVE_DOSISH_SYSTEM
+/* because the Unix gettext has to much overhead on MingW32 systems
+ * and these systems lack Posix functions, we use a simplified version
+ * of gettext */
+#undef USE_SIMPLE_GETTEXT
+/* At some point in the system we need to know that we use the Windows
+ * random module. */
+#undef USE_STATIC_RNDW32
 
 #undef USE_CAPABILITIES
 
index 584a755..a8c3d3f 100644 (file)
@@ -1,33 +1,32 @@
-Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
 
+       * rndw32.c: New.
+
+Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * bithelp.h: New.
        * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
 
 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
 
 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * des.c (selftest): Add some testpattern
 
 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
        in place encryption. Pointed out by Frank Stajano.
 
 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * md5.c (md5_final): Fix for a SCO cpp bug.
 
 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * elgamal.c (elg_check_secret_key,elg_encrypt
        elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
        * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
index 4b2ef2e..3d9a5cb 100644 (file)
@@ -10,14 +10,15 @@ noinst_LTLIBRARIES = libcipher.la
 # and EXTRA_foo_SOURCES entries.
 # Hmmm is there a more easy way to do this?  (EXTRA_PROGRAMS
 # might also list programs which are not modules)
-# MODULES: rndunix rndlinux rndegd
+# MODULES: rndunix rndlinux rndegd rndw32
 # MODULES: sha1 rmd160 md5 tiger
-EXTRA_PROGRAMS = rndunix rndlinux rndegd  \
+EXTRA_PROGRAMS = rndunix rndlinux rndegd rndw32 \
                 sha1 rmd160 md5 tiger
 
 EXTRA_rndlinux_SOURCES = rndlinux.c
 EXTRA_rndunix_SOURCES = rndunix.c
 EXTRA_rndegd_SOURCES = rndegd.c
+EXTRA_rndw32_SOURCES = rndw32.c
 EXTRA_md5_SOURCES = md5.c
 EXTRA_rmd160_SOURCES = rmd160.c
 EXTRA_sha1_SOURCES = sha1.c
@@ -99,4 +100,3 @@ rndegd: $(srcdir)/rndegd.c
        $(COMPILE) $(DYNLINK_MOD_CFLAGS) -o rndegd $(srcdir)/rndegd.c
 
 
-
index 64ffdb5..649325c 100644 (file)
@@ -31,4 +31,9 @@ void randomize_buffer( byte *buffer, size_t length, int level );
 byte *get_random_bits( size_t nbits, int level, int secure );
 void fast_random_poll( void );
 
+/*-- rndw32.c --*/
+#ifdef USE_STATIC_RNDW32
+void rndw32_set_dll_name( const char *name );
+#endif
+
 #endif /*G10_RANDOM_H*/
index 5656adb..a56847a 100644 (file)
@@ -15,7 +15,7 @@ AM_CONFIG_HEADER(config.h)
 
 VERSION=`cat $srcdir/VERSION`
 PACKAGE=gnupg
-ALL_LINGUAS="de es_ES fr it pl pt_BR ru"
+ALL_LINGUAS="de es_ES fr it pl pt_BR pt_PT ru"
 static_modules="sha1 md5 rmd160"
 AC_SUBST(VERSION)
 AC_SUBST(PACKAGE)
@@ -138,11 +138,31 @@ AC_ARG_WITH(capabilities,
 AC_MSG_RESULT($use_capabilities)
 
 
+
+
+
 AM_MAINTAINER_MODE
 
 dnl Checks for programs.
 
 AC_CANONICAL_SYSTEM
+dnl
+dnl Setup some stuff depending on host/target.
+dnl
+case "${target}" in
+    *-*-mingw32)
+        # special stuff for Windoze NT
+        # Do we need to set cross_compiling here or is it sufficient
+        # to rely on AC_PROG_CC which is called later?
+        cross_compiling=yes
+        CC="${target}-gcc"
+        CPP="${target}-gcc -E"
+        RANLIB="${target}-ranlib"
+        ;;
+    *)
+       ;;
+esac
+
 AC_ARG_PROGRAM
 AC_PROG_MAKE_SET
 AM_SANITY_CHECK
@@ -181,14 +201,11 @@ try_gdbm=yes
 case "${target}" in
     *-*-mingw32)
         # special stuff for Windoze NT
-        cross_compiling=yes
-        CC="${target}-gcc"
-        CPP="${target}-gcc -E"
-        RANLIB="${target}-ranlib"
         ac_cv_have_dev_random=no
         AC_DEFINE(USE_ONLY_8DOT3)
         AC_DEFINE(HAVE_DRIVE_LETTERS)
         AC_DEFINE(HAVE_DOSISH_SYSTEM)
+        AC_DEFINE(USE_SIMPLE_GETTEXT)
         try_gettext="no"
         try_gdbm="no"
         ;;
@@ -489,6 +506,7 @@ if test "$use_static_rnd" = default; then
       case "${target}" in
           *-*-mingw32)
               static_modules="$static_modules rndw32"
+              AC_DEFINE(USE_STATIC_RNDW32)
               ;;
           i?86-emx-os2|i?86-*-os2*emx)
               static_modules="$static_modules rndos2"
index 7f6d0ea..1297737 100644 (file)
@@ -1219,6 +1219,13 @@ This is not for normal use.  Use the source to see for what it might be useful.
 This is not for normal use.  Use the source to see for what it might be useful.
 </para></listitem></varlistentry>
 
+<varlistentry>
+<term>--entropy-dll-name &ParmFile;</term>
+<listitem><para>
+This option is only used for the Win32 version of GnuPG and changes the
+default location (c:/gnupg/entropy.dll) of the Winseed DLL to &ParmFile;.
+</para></listitem></varlistentry>
+
 
 </variablelist>
 </refsect1>
index 97c8b51..82c6709 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * g10.c: New option --entropy-dll-name
+
 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 02d7202..1a72fa6 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -177,6 +177,7 @@ enum cmd_and_opt_values { aNull = 0,
     oAllowNonSelfsignedUID,
     oNoLiteral,
     oSetFilesize,
+    oEntropyDLLName,
 aTest };
 
 
@@ -338,6 +339,7 @@ static ARGPARSE_OPTS opts[] = {
     { oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
     { oNoLiteral, "no-literal", 0, "@" },
     { oSetFilesize, "set-filesize", 20, "@" },
+    { oEntropyDLLName, "entropy-dll-name", 2, "@" },
 {0} };
 
 
@@ -438,6 +440,9 @@ build_list( const char *text, const char * (*mapf)(int), int (*chkf)(int) )
 static void
 i18n_init(void)
 {
+  #ifdef USE_SIMPLE_GETTEXT
+    set_gettext_file( PACKAGE );
+  #else
   #ifdef ENABLE_NLS
     #ifdef HAVE_LC_MESSAGES
        setlocale( LC_TIME, "" );
@@ -448,6 +453,7 @@ i18n_init(void)
     bindtextdomain( PACKAGE, G10_LOCALEDIR );
     textdomain( PACKAGE );
   #endif
+  #endif
 }
 
 static void
@@ -859,6 +865,13 @@ main( int argc, char **argv )
                opt.set_filesize = pargs.r.ret_ulong;
                break;
 
+         case oEntropyDLLName:
+             #ifdef USE_STATIC_RNDW32
+               log_info("set dllname to `%s'\n", pargs.r.ret_str );
+               rndw32_set_dll_name( pargs.r.ret_str );
+             #endif
+               break;
+
          default : pargs.err = configfp? 1:2; break;
        }
     }
index e811547..e429025 100644 (file)
@@ -210,7 +210,7 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
 )},
 
 { "detached_signature.filename", N_(
- "Give the name fo the file to which the signature applies"
+ "Give the name of the file to which the signature applies"
 )},
 
 /* openfile.c (overwrite_filep) */
index d19bbb9..4c93b48 100644 (file)
@@ -312,7 +312,9 @@ proc_encrypted( CTX c, PACKET *pkt )
 
     /*log_debug("dat: %sencrypted data\n", c->dek?"":"conventional ");*/
     if( !c->dek && !c->last_was_session_key ) {
-       /* assume this is old conventional encrypted data */
+       /* assume this is old conventional encrypted data
+        * Actually we should use IDEA and MD5 in this case, but becuase
+        * IDEA is patented we can't do so */
        c->dek = passphrase_to_dek( NULL, 0,
                    opt.def_cipher_algo ? opt.def_cipher_algo
                                        : DEFAULT_CIPHER_ALGO, NULL, 0 );
index a1f94e3..e5c86ce 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * i18n.h: Add support for simple-gettext.
+
 Tue Jun 29 21:44:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 105a643..5caf86e 100644 (file)
 #ifndef G10_I18N_H
 #define G10_I18N_H
 
+#ifdef USE_SIMPLE_GETTEXT
+  int set_gettext_file( const char *filename );
+  const char *gettext( const char *msgid );
+
+  #define _(a) gettext (a)
+  #define N_(a) (a)
+
+#else
 #ifdef HAVE_LOCALE_H
   #include <locale.h>  /* suggested by Ernst Molitor */
 #endif
@@ -37,5 +45,6 @@
   #define _(a) (a)
   #define N_(a) (a)
 #endif
+#endif /* !USE_SIMPLE_GETTEXT */
 
 #endif /*G10_I18N_H*/
index c801ad2..bb656dc 100644 (file)
@@ -1,11 +1,16 @@
-Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * pt_PT.po: New. Done by Pedro Morais.
 
+       * it.po: Updated by Marco.
+
+Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * pl.po: Updated.
 
 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
-
        * fr.po: Imported and fixed a msgid.
        * de.po: Ditto.
        * pt_BR.po: Ditto.
index 66fea4e..f3b5ce3 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -3471,7 +3471,7 @@ msgstr ""
 "übereinstimmen, wird das Mantra akzeptiert."
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr ""
 "Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
 
index d9cc442..04ab34b 100644 (file)
@@ -3409,7 +3409,7 @@ msgid "Please repeat the last passphrase, so you are sure what you typed in."
 msgstr ""
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr ""
 
 #: g10/helptext.c:218
index 3b2db2a..44b3776 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -3440,7 +3440,7 @@ msgstr ""
 "Répétez le dernier mot de passe pour être sûr de ce que vous avez tapé."
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr "Donnez le nom du fichier auquel la signature se rapporte"
 
 #: g10/helptext.c:218
index f39c31a..744110f 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -4,9 +4,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gnupg-0.9.7\n"
+"Project-Id-Version: gnupg-1.0.0\n"
 "POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-08-17 23:04+02:00\n"
+"PO-Revision-Date: 1999-09-09 15:51+02:00\n"
 "Last-Translator: Marco d'Itri <md@linux.it>\n"
 "Language-Team: Italian <it@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -35,11 +35,11 @@ msgstr "sS"
 
 #: util/miscutil.c:279 util/miscutil.c:307
 msgid "no"
-msgstr ""
+msgstr "no"
 
 #: util/miscutil.c:280 util/miscutil.c:310
 msgid "nN"
-msgstr ""
+msgstr "nN"
 
 #: g10/keyedit.c:564 util/miscutil.c:308
 msgid "quit"
@@ -1133,18 +1133,16 @@ msgid "No such user ID.\n"
 msgstr "User ID inesistente.\n"
 
 #: g10/pkclist.c:756
-#, fuzzy
 msgid "skipped: public key already set as default recipient\n"
-msgstr "%s: saltato: chiave pubblica già presente\n"
+msgstr "saltato: chiave pubblica già impostata come destinatario predefinito\n"
 
 #: g10/pkclist.c:778
 msgid "Public key is disabled.\n"
 msgstr "La chiave pubblica è disabilitata.\n"
 
 #: g10/pkclist.c:785
-#, fuzzy
 msgid "skipped: public key already set with --encrypt-to\n"
-msgstr "%s: saltato: chiave pubblica già presente\n"
+msgstr "saltato: chiave pubblica già impostata con --encrypt-to\n"
 
 #: g10/pkclist.c:816
 #, c-format
@@ -1550,14 +1548,12 @@ msgid "RSA key cannot be used in this version\n"
 msgstr "In questa versione non possono essere usate chiavi RSA\n"
 
 #: g10/getkey.c:1291 g10/getkey.c:1330
-#, fuzzy
 msgid "No key for user ID\n"
-msgstr "Non ci sono chiavi per questo user-id\n"
+msgstr "Non ci sono chiavi per questo user ID\n"
 
 #: g10/getkey.c:1369 g10/getkey.c:1409
-#, fuzzy
 msgid "No user ID for key\n"
-msgstr "Non ci sono user-id per questa chiave\n"
+msgstr "Non ci sono user ID per questa chiave\n"
 
 #: g10/getkey.c:1565 g10/getkey.c:1621
 #, c-format
@@ -1640,14 +1636,14 @@ msgid " secret keys unchanged: %lu\n"
 msgstr "chiavi segrete non cambiate: %lu\n"
 
 #: g10/import.c:362 g10/import.c:554
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: no user ID\n"
-msgstr "chiave %08lX: nessun user id\n"
+msgstr "chiave %08lX: nessun user ID\n"
 
 #: g10/import.c:376
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: no valid user IDs\n"
-msgstr "chiave %08lX: nessun user id valido\n"
+msgstr "chiave %08lX: nessun user ID valido\n"
 
 #: g10/import.c:378
 msgid "this may be caused by a missing self-signature\n"
@@ -1698,14 +1694,14 @@ msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr "chiave %08lX: impossibile leggere il keyblock originale: %s\n"
 
 #: g10/import.c:469
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: 1 new user ID\n"
-msgstr "chiave %08lX: un nuovo user id\n"
+msgstr "chiave %08lX: 1 nuovo user ID\n"
 
 #: g10/import.c:472
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: %d new user IDs\n"
-msgstr "chiave %08lX: %d nuovi user id\n"
+msgstr "chiave %08lX: %d nuovi user ID\n"
 
 #: g10/import.c:475
 #, c-format
@@ -1766,9 +1762,9 @@ msgid "key %08lX: revocation certificate imported\n"
 msgstr "chiave %08lX: certificato di revoca importato\n"
 
 #: g10/import.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: no user ID for signature\n"
-msgstr "chiave %08lX: nessun user id per la firma\n"
+msgstr "chiave %08lX: nessun user ID per la firma\n"
 
 #: g10/import.c:718 g10/import.c:742
 #, c-format
@@ -1791,14 +1787,14 @@ msgid "key %08lX: invalid subkey binding\n"
 msgstr "chiave %08lX: legame con la subchiave non valido:\n"
 
 #: g10/import.c:769
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: accepted non self-signed user ID '"
-msgstr "chiave %08lX: accettato l'user-id non autofirmato '"
+msgstr "chiave %08lX: accettato l'user ID non autofirmato '"
 
 #: g10/import.c:798
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: skipped user ID '"
-msgstr "chiave %08lX: saltato l'user-id '"
+msgstr "chiave %08lX: saltato l'user ID '"
 
 #: g10/import.c:821
 #, c-format
@@ -1863,7 +1859,7 @@ msgstr "%d firme non corrette\n"
 
 #: g10/keyedit.c:223
 msgid "1 signature not checked due to a missing key\n"
-msgstr "1 firma non controllata per mancanza della chiave\n"
+msgstr "una firma non controllata per mancanza della chiave\n"
 
 #: g10/keyedit.c:225
 #, c-format
@@ -1872,7 +1868,7 @@ msgstr "%d firme non controllate per mancanza delle chiavi\n"
 
 #: g10/keyedit.c:227
 msgid "1 signature not checked due to an error\n"
-msgstr "1 firma non controllata a causa di un errore\n"
+msgstr "una firma non controllata a causa di un errore\n"
 
 #: g10/keyedit.c:229
 #, c-format
@@ -1880,14 +1876,13 @@ msgid "%d signatures not checked due to errors\n"
 msgstr "%d firme non controllate a causa di errori\n"
 
 #: g10/keyedit.c:231
-#, fuzzy
 msgid "1 user ID without valid self-signature detected\n"
-msgstr "Trovato 1 user id senza autofirma valida\n"
+msgstr "Trovato un user ID senza autofirma valida\n"
 
 #: g10/keyedit.c:233
-#, fuzzy, c-format
+#, c-format
 msgid "%d user IDs without valid self-signatures detected\n"
-msgstr "Trovati %d user id senza autofirme valide\n"
+msgstr "Trovati %d user ID senza autofirme valide\n"
 
 #. Fixme: see whether there is a revocation in which
 #. * case we should allow to sign it again.
@@ -2000,9 +1995,8 @@ msgid "list"
 msgstr "list"
 
 #: g10/keyedit.c:570
-#, fuzzy
 msgid "list key and user IDs"
-msgstr "elenca le chiavi e gli user id"
+msgstr "elenca le chiavi e gli user ID"
 
 #: g10/keyedit.c:571
 msgid "l"
@@ -2013,9 +2007,8 @@ msgid "uid"
 msgstr "uid"
 
 #: g10/keyedit.c:572
-#, fuzzy
 msgid "select user ID N"
-msgstr "scegli l'user id N"
+msgstr "scegli l'user ID N"
 
 #: g10/keyedit.c:573
 msgid "key"
@@ -2066,18 +2059,16 @@ msgid "adduid"
 msgstr "adduid"
 
 #: g10/keyedit.c:580
-#, fuzzy
 msgid "add a user ID"
-msgstr "aggiungi un user id"
+msgstr "aggiungi un user ID"
 
 #: g10/keyedit.c:581
 msgid "deluid"
 msgstr "deluid"
 
 #: g10/keyedit.c:581
-#, fuzzy
 msgid "delete user ID"
-msgstr "cancella un user id"
+msgstr "cancella un user ID"
 
 #: g10/keyedit.c:582
 msgid "addkey"
@@ -2198,14 +2189,12 @@ msgid "Need the secret key to do this.\n"
 msgstr "Per fare questo serve la chiave segreta.\n"
 
 #: g10/keyedit.c:758
-#, fuzzy
 msgid "Really sign all user IDs? "
-msgstr "Firmo davvero tutti gli user id? "
+msgstr "Firmo davvero tutti gli user ID? "
 
 #: g10/keyedit.c:759
-#, fuzzy
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Suggerimento: seleziona gli user id da firmare\n"
+msgstr "Suggerimento: seleziona gli user ID da firmare\n"
 
 #: g10/keyedit.c:786 g10/keyedit.c:968
 #, c-format
@@ -2213,24 +2202,20 @@ msgid "update of trustdb failed: %s\n"
 msgstr "aggiornamento del trustdb fallito: %s\n"
 
 #: g10/keyedit.c:797 g10/keyedit.c:818
-#, fuzzy
 msgid "You must select at least one user ID.\n"
-msgstr "Devi selezionare almeno un user id.\n"
+msgstr "Devi selezionare almeno un user ID.\n"
 
 #: g10/keyedit.c:799
-#, fuzzy
 msgid "You can't delete the last user ID!\n"
-msgstr "Non puoi cancellare l'ultimo user id!\n"
+msgstr "Non puoi cancellare l'ultimo user ID!\n"
 
 #: g10/keyedit.c:802
-#, fuzzy
 msgid "Really remove all selected user IDs? "
-msgstr "Tolgo davvero tutti gli user id selezionati? "
+msgstr "Tolgo davvero tutti gli user ID selezionati? "
 
 #: g10/keyedit.c:803
-#, fuzzy
 msgid "Really remove this user ID? "
-msgstr "Tolgo davvero questo user id? "
+msgstr "Tolgo davvero questo user ID? "
 
 #: g10/keyedit.c:839 g10/keyedit.c:861
 msgid "You must select at least one key.\n"
@@ -2337,9 +2322,9 @@ msgid "No corresponding signature in secret ring\n"
 msgstr "Manca la firma corrispondente nel portachiavi segreto\n"
 
 #: g10/keyedit.c:1566
-#, fuzzy, c-format
+#, c-format
 msgid "No user ID with index %d\n"
-msgstr "Nessun user id con l'indice %d\n"
+msgstr "Nessun user ID con l'indice %d\n"
 
 #: g10/keyedit.c:1612
 #, c-format
@@ -2366,30 +2351,22 @@ msgstr "Creare un certificato di revoca per questa firma? (s/N)"
 
 #. FIXME: detect duplicates here
 #: g10/keyedit.c:1740
-#, fuzzy
 msgid "You have signed these user IDs:\n"
-msgstr "Non puoi cancellare l'ultimo user id!\n"
+msgstr "Non puoi cancellare l'ultimo user ID!\n"
 
 #: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#, c-format
 msgid "   signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"firmata con la tua chiave %08lX a %s\n"
-"\n"
+msgstr "   firmata da %08lX il %s\n"
 
 #: g10/keyedit.c:1759
-#, fuzzy, c-format
+#, c-format
 msgid "   revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"firmata con la tua chiave %08lX a %s\n"
-"\n"
+msgstr "   revocata da %08lX il %s\n"
 
 #: g10/keyedit.c:1779
-#, fuzzy
 msgid "You are about to revoke these signatures:\n"
-msgstr "Vuoi davvero revocare le chiavi selezionate? "
+msgstr "Stai per revocare queste firme:\n"
 
 #: g10/keyedit.c:1797
 msgid "Really create the revocation certificates? (y/N)"
@@ -3032,9 +3009,8 @@ msgid "Ooops, no keys\n"
 msgstr "Ooops, mancano le chiavi\n"
 
 #: g10/trustdb.c:2061
-#, fuzzy
 msgid "Ooops, no user IDs\n"
-msgstr "Ooops, mancano gli user id\n"
+msgstr "Ooops, mancano gli user ID\n"
 
 #: g10/trustdb.c:2218
 #, c-format
@@ -3202,27 +3178,24 @@ msgstr ""
 "ho provato %d volte!\n"
 
 #: g10/delkey.c:93
-#, fuzzy
 msgid "there is a secret key for this public key!\n"
-msgstr "rimuove una chiave dal portachiavi pubblico"
+msgstr "c'è una chiave segreta per questa chiave pubblica!\n"
 
 #: g10/delkey.c:95
 msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "prima usa l'opzione \"--delete-secret-key\" per cancellarla.\n"
 
 #: g10/delkey.c:111
-#, fuzzy
 msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "impossibile fare questo in modo batch\n"
+msgstr "impossibile fare questo in modo batch senza \"--yes\"\n"
 
 #: g10/delkey.c:133
-#, fuzzy
 msgid "Delete this key from the keyring? "
-msgstr "rimuove una chiave dal portachiavi pubblico"
+msgstr "Vuoi cancellare questa chiave dal portachiavi? "
 
 #: g10/delkey.c:141
 msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "È una chaive segreta! - Vuoi cancellarla davvero? "
 
 #: g10/helptext.c:47
 msgid ""
@@ -3230,19 +3203,23 @@ msgid ""
 "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."
 msgstr ""
+"E compito tuo assegnare un valore; questo valore non sarà mai esportato a\n"
+"terzi. Ci serve per implementare il web-of-trust; non ha nulla a che fare\n"
+"con il web-of-certificates (creato implicitamente)."
 
 #: g10/helptext.c:53
 msgid "If you want to use this revoked key anyway, answer \"yes\"."
-msgstr ""
+msgstr "Se vuoi usare comunque questa chiave revocata, rispondi \"si\"."
 
 #: g10/helptext.c:57
 msgid "If you want to use this untrusted key anyway, answer \"yes\"."
-msgstr ""
+msgstr "Se vuoi usare comunque questa chiave non fidata, rispondi \"si\"."
 
 #: g10/helptext.c:61
 msgid ""
 "Enter the user ID of the addressee to whom you want to send the message."
 msgstr ""
+"Inserisci l'user ID del destinatario a cui vuoi mandare il messaggio."
 
 #: g10/helptext.c:65
 msgid ""
@@ -3264,6 +3241,25 @@ msgid ""
 "this is the reason why the encryption only ElGamal key is not available in\n"
 "this menu."
 msgstr ""
+"Seleziona l'algoritmo da usare.\n"
+"\n"
+"DSA (alias DSS) è un algoritmo usabile solo per firmare. E l'algoritmo\n"
+"suggerito perché verificare firme DSA è molto più veloce di quelle ElGamal.\n"
+"\n"
+"ElGamal è un algoritmo usabile per firmare e cifrare.\n"
+"OpenPGP distingue tra due versioni di questo algoritmo: una solo per "
+"firmare\n"
+"e una per firmare e cifrare. In realtà è sempre lo stesso, ma per creare\n"
+"firme sicure per la cifratura occorre scegliere in un modo particolare "
+"alcuni\n"
+"parametri: questo programma lo fa ma non è richiesto che altre "
+"implementazioni\n"
+"di OpenPGP capiscano la versione per firmare e cifrare.\n"
+"\n"
+"La prima chiave (primaria) deve sempre essere una chiave in grado di "
+"firmare;\n"
+"questo è il motivo per cui le chiavi ElGamal solo per cifrare non sono\n"
+"disponibili in questo menù."
 
 #: g10/helptext.c:85
 msgid ""
@@ -3271,16 +3267,19 @@ msgid ""
 "because they are not supported by all programs and signatures created\n"
 "with them are quite large and very slow to verify."
 msgstr ""
+"Anche se queste chiavi sono definite da RFC2400 non sono suggerite perché "
+"non\n"
+"sono gestite da tutti i programmi e le firme create sono grandi e lunghe da\n"
+"verificare."
 
 #: g10/helptext.c:92
-#, fuzzy
 msgid "Enter the size of the key"
-msgstr "Inserisci l'user ID: "
+msgstr "Inserisci le dimensioni della chiave"
 
 #: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
 #: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
 msgid "Answer \"yes\" or \"no\""
-msgstr ""
+msgstr "Rispondi \"si\" o \"no\""
 
 #: g10/helptext.c:106
 msgid ""
@@ -3289,19 +3288,22 @@ msgid ""
 "get a good error response - instead the system tries to interpret\n"
 "the given value as an interval."
 msgstr ""
+"Inserisci il valore richiesto come indicato dal prompt.\n"
+"È possibile inserire una data in formato ISO (YYYY-MM-DD) ma non avrai un\n"
+"messaggio di errore corretto: il sistema cerca di interpretare il valore\n"
+"dato come un intervallo."
 
 #: g10/helptext.c:118
 msgid "Enter the name of the key holder"
-msgstr ""
+msgstr "Inserisci il nome del proprietario della chiave"
 
 #: g10/helptext.c:123
 msgid "please enter an optional but highly suggested email address"
-msgstr ""
+msgstr "Inserisci un indirizzo di email opzionale (ma fortemente suggerito)"
 
 #: g10/helptext.c:127
-#, fuzzy
 msgid "Please enter an optional comment"
-msgstr "Inserisci il nome del file di dati: "
+msgstr "Inserisci un commento opzionale"
 
 #: g10/helptext.c:132
 msgid ""
@@ -3311,24 +3313,31 @@ msgid ""
 "O  to continue with key generation.\n"
 "Q  to to quit the key generation."
 msgstr ""
+"N  per cambiare il nome.\n"
+"C  per cambiare il commento.\n"
+"E  per cambiare l'indirizzo di email.\n"
+"O  per continuare con la generazione della chiave.\n"
+"Q  per abbandonare il processo di generazione della chiave."
 
 #: g10/helptext.c:141
 msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-msgstr ""
+msgstr "Rispondi \"si\" (o \"y\") se va bene generare la subchiave."
 
 #: g10/helptext.c:164
 msgid "Answer \"yes\" is you want to sign ALL the user IDs"
-msgstr ""
+msgstr "Rispondi \"si\" se vuoi firmare TUTTI gli user ID"
 
 #: g10/helptext.c:168
 msgid ""
 "Answer \"yes\" if you really want to delete this user ID.\n"
 "All certificates are then also lost!"
 msgstr ""
+"Rispondi \"si\" se vuoi davvero cancellare questo user ID.\n"
+"Tutti i certificati saranno persi!"
 
 #: g10/helptext.c:173
 msgid "Answer \"yes\" if it is okay to delete the subkey"
-msgstr ""
+msgstr "Rispondi \"si\" se va bene cancellare la subchiave"
 
 #: g10/helptext.c:178
 msgid ""
@@ -3336,6 +3345,9 @@ msgid ""
 "to delete this signature because it may be important to establish a\n"
 "trust connection to the key or another key certified by this key."
 msgstr ""
+"Questa è una firma valida per la chiave. Normalmente non vorresti cancellare\n"
+"questa firma perchè può essere importante per stabilire una connessione di\n"
+"fiducia alla chiave o a un'altra chiave certificata da questa chiave."
 
 #: g10/helptext.c:183
 msgid ""
@@ -3344,12 +3356,18 @@ msgid ""
 "know which key was used because this signing key might establish\n"
 "a trust connection through another already certified key."
 msgstr ""
+"Questa firma non può essere verificata perchè non hai la chiave "
+"corrispondente.\n"
+"Dovresti rimandare la sua cancellazione finchè non saprai quale chiave è "
+"stata\n"
+"usata perchè questa chiave potrebbe stabilire una connessione di fiducia\n"
+"attraverso una chiave già certificata."
 
 #: g10/helptext.c:189
 msgid ""
 "The signature is not valid.  It does make sense to remove it from\n"
 "your keyring."
-msgstr ""
+msgstr "La firma non è valida. Ha senso rimuoverla dal tuo portachiavi."
 
 #: g10/helptext.c:193
 msgid ""
@@ -3359,30 +3377,40 @@ msgid ""
 "only if this self-signature is for some reason not valid and\n"
 "a second one is available."
 msgstr ""
+"Questa è una firma che collega l'user id alla chiave. Solitamente non è una\n"
+"buona idea rimuovere questo tipo di firma. In realtà GnuPG potrebbe non "
+"essere\n"
+"più in grado di usare questa chiave. Quindi fallo solo se questa autofirma "
+"non\n"
+"è valida per qualche ragione e ne è disponibile un'altra."
 
 #: g10/helptext.c:202
 msgid ""
 "Please enter the passhrase; this is a secret sentence \n"
 "  Blurb, blurb,.... "
 msgstr ""
+"Inserisci la passphrase, cioè una frase segreta.\n"
+"  bla, bla, bla..."
 
 #: g10/helptext.c:209
 msgid "Please repeat the last passphrase, so you are sure what you typed in."
-msgstr ""
+msgstr "Ripeti l'ultima passphrase per essere sicuro di cosa hai scritto."
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
-msgstr ""
+msgid "Give the name of the file to which the signature applies"
+msgstr "Inserisci il nome del file a cui si riferisce la firma."
 
 #: g10/helptext.c:218
 msgid "Answer \"yes\" if it is okay to overwrite the file"
-msgstr ""
+msgstr "Rispondi \"si\" se va bene sovrascrivere il file."
 
 #: g10/helptext.c:223
 msgid ""
 "Please enter a new filename. If you just hit RETURN the default\n"
 "file (which is shown in brackets) will be used."
 msgstr ""
+"Inserisci il nuovo nome del file. Se premi INVIO sarà usato il nome\n"
+"predefinito (quello indicato tra parentesi)."
 
 #: g10/helptext.c:237
 msgid "No help available"
@@ -3393,153 +3421,3 @@ msgstr "Non 
 msgid "No help available for `%s'"
 msgstr "Non è disponibile un aiuto per `%s'"
 
-#~ msgid "edit_ownertrust.value"
-#~ msgstr ""
-#~ "È compito tuo assegnare un valore; questo valore non sarà mai esportato a\n"
-#~ "terzi. Ci serve per implementare il web-of-trust; non ha nulla a che fare\n"
-#~ "con il web-of-certificates (creato implicitamente)."
-
-#~ msgid "revoked_key.override"
-#~ msgstr "Se vuoi usare comunque questa chiave revocata, rispondi \"sì\"."
-
-#~ msgid "untrusted_key.override"
-#~ msgstr "Se vuoi usare comunque questa chiave non fidata, rispondi \"sì\"."
-
-#~ msgid "pklist.user_id.enter"
-#~ msgstr ""
-#~ "Inserisci l'user id del destinatario a cui vuoi mandare il messaggio."
-
-#~ msgid "keygen.algo"
-#~ msgstr ""
-#~ "Seleziona l'algoritmo da usare.\n"
-#~ "DSA (alias DSS) è un algoritmo usabile solo per firmare. È l'algoritmo\n"
-#~ "suggerito perché verificare firme DSA è molto più veloce di quelle ElGamal.\n"
-#~ "ElGamal è un algoritmo usabile per firmare e cifrare.\n"
-#~ "OpenPGP distingue tra due versioni di questo algoritmo: una solo per "
-#~ "firmare\n"
-#~ "e una per firmare e cifrare. In realtà è sempre lo stesso, per creare firme\n"
-#~ "sicure per la cifratura occorre scegliere in un modo particolare alcuni\n"
-#~ "parametri: questo programma lo fa ma non è richiesto che altre "
-#~ "implementazioni\n"
-#~ "di OpenPGP capiscano la versione per firmare e cifrare.\n"
-#~ "La prima chiave (primaria) deve sempre essere una chiave in grado di "
-#~ "firmare;\n"
-#~ "questo è il motivo per cui le chiavi ElGamal solo per cifrare sono\n"
-#~ "disabilitate."
-
-#~ msgid "keygen.algo.elg_se"
-#~ msgstr ""
-#~ "Anche se queste chiavi sono definite da RFC2400 non sono suggerite perché "
-#~ "non\n"
-#~ "sono gestite da tutti i programmi e le firme create sono grandi e lunghe da\n"
-#~ "verificare."
-
-#~ msgid "keygen.size"
-#~ msgstr "Inserisci le dimensioni della chiave"
-
-#~ msgid "keygen.size.huge.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keygen.size.large.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keygen.valid"
-#~ msgstr ""
-#~ "Inserisci il valore richiesto come indicato dal prompt.\n"
-#~ "È possibile inserire una data in formato ISO (YYYY-MM-DD) ma non avrai un\n"
-#~ "messaggio di errore corretto: il sistema cerca di interpretare il valore\n"
-#~ "dato come un intervallo."
-
-#~ msgid "keygen.valid.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keygen.name"
-#~ msgstr "Inserisci il nome del proprietario della chiave"
-
-#~ msgid "keygen.email"
-#~ msgstr "Inserisci un indirizzo di email opzionale (ma fortemente suggerito)"
-
-#~ msgid "keygen.comment"
-#~ msgstr "Inserisci un commento opzionale"
-
-#~ msgid "keygen.userid.cmd"
-#~ msgstr ""
-#~ "N  per cambiare il nome\n"
-#~ "C  per cambiare il commento\n"
-#~ "E  per cambiare l'indirizzo di email\n"
-#~ "O  per continuare con la generazione della chiave\n"
-#~ "Q  per abbandonare il processo di generazione della chiave"
-
-#~ msgid "keygen.sub.okay"
-#~ msgstr "Rispondi \"sì\" (o \"y\") se va bene generare la subchiave."
-
-#~ msgid "sign_uid.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "change_passwd.empty.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keyedit.save.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keyedit.cancel.okay"
-#~ msgstr "Rispondi \"sì\" o \"no\""
-
-#~ msgid "keyedit.sign_all.okay"
-#~ msgstr "Rispondi \"sì\" se vuoi firmare TUTTI gli user id."
-
-#~ msgid "keyedit.remove.uid.okay"
-#~ msgstr ""
-#~ "Rispondi \"sì\" se vuoi davvero cancellare questo user id.\n"
-#~ "Tutti i certificati saranno persi!"
-
-#~ msgid "keyedit.remove.subkey.okay"
-#~ msgstr "Rispondi \"sì\" se va bene cancellare la subchiave"
-
-#~ msgid "keyedit.delsig.valid"
-#~ msgstr ""
-#~ "Questa è una firma valida per la chiave. Normalmente non vorresti "
-#~ "cancellare\n"
-#~ "questa firma perchè può essere importante per stabilire una connessione di\n"
-#~ "fiducia alla chiave o a un'altra chiave certificata da questa chiave."
-
-#~ msgid "keyedit.delsig.unknown"
-#~ msgstr ""
-#~ "Questa firma non può essere verificata perchè non hai la chiave "
-#~ "corrispondente.\n"
-#~ "Dovresti rimandare la sua cancellazione finchè non saprai quale chiave è "
-#~ "stata\n"
-#~ "usata perchè questa chiave potrebbe stabilire una connessione di fiducia\n"
-#~ "attraverso una chiave già certificata."
-
-#~ msgid "keyedit.delsig.invalid"
-#~ msgstr "Questa firma non è valida. Ha senso rimuoverla dal tuo portachiavi."
-
-#~ msgid "keyedit.delsig.selfsig"
-#~ msgstr ""
-#~ "Questa è la firma che collega l'user id alla chiave. Solitamente non è una\n"
-#~ "buona idea rimuovere questo tipo di firme. In realtà GnuPG potrebbe non "
-#~ "essere\n"
-#~ "più in grado di usare questa chiave. Quindi fallo solo se questa autofirma "
-#~ "non\n"
-#~ "è valida per qualche ragione e ne è disponibile un'altra."
-
-#~ msgid "passphrase.enter"
-#~ msgstr ""
-#~ "Inserisci la passphrase, cioè una frase segreta.\n"
-#~ "bla, bla, bla..."
-
-#~ msgid "passphrase.repeat"
-#~ msgstr "Ripeti l'ultima passphrase per essere sicuro di cosa hai scritto."
-
-#~ msgid "detached_signature.filename"
-#~ msgstr "Inserisci il nome del file a cui la firma si riferisce."
-
-#~ msgid "openfile.overwrite.okay"
-#~ msgstr "Rispondi \"sì\" se va bene sovrascrivere il file."
-
-#~ msgid "openfile.askoutname"
-#~ msgstr ""
-#~ "Inserisci il nuovo nome del file.\n"
-#~ "Se premi INVIO sarà usato il nome predefinito (quello indicato tra "
-#~ "parentesi)."
index 45cdcf4..0688341 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -3437,7 +3437,7 @@ msgstr ""
 "Proszê powrótrzyæ wyra¿enie przej¶ciowe, aby upewniæ siê ¿e nie by³o pomy³ki."
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr "Nazwa pliku którego dotyczy podpis"
 
 #: g10/helptext.c:218
index f833433..5d95320 100644 (file)
@@ -3435,7 +3435,7 @@ msgstr ""
 "digitou."
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr "Dê o nome para o arquivo ao qual a assinatura se aplica"
 
 #: g10/helptext.c:218
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644 (file)
index 0000000..03d6e51
--- /dev/null
@@ -0,0 +1,3413 @@
+# PT_pt messages for gnupg
+# Pedro Morais <morais@poli.org>
+#
+# Based on PT_br work done by:
+# Thiago Jung Bauermann <jungmann@cwb.matrix.com.br>, 1999.
+# Rafael Caetano dos Santos <rcaetano@linux.ime.usp.br>.
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg\n"
+"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"PO-Revision-Date: 1999-09-09 20:28+0000\n"
+"Last-Translator: Pedro Morais <morais@poli.org>\n"
+"Language-Team: pt\n"
+"Content-Type:\n"
+"Content-Transfer-Encoding:\n"
+"MIME-Version:\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "Aviso: a utilizar memória insegura!\n"
+
+#: util/secmem.c:275
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "a operação não é possível sem memória segura inicializada\n"
+
+#: util/secmem.c:276
+msgid "(you may have used the wrong program for this task)\n"
+msgstr "(você pode ter usado o programa errado para esta tarefa)\n"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "sim"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "sS"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "não"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "nN"
+
+# INICIO MENU
+#: g10/keyedit.c:564 util/miscutil.c:308
+msgid "quit"
+msgstr "sair"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "qQ"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "erro geral"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "formato de pacote desconhecido"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "versão desconhecida"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "algoritmo de chave pública desconhecido"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "algoritmo de \"digest\" desconhecido"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "chave pública incorrecta"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "chave secreta incorrecta"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "assinatura incorrecta"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "erro de \"checksum\""
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "frase secreta incorrecta"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "chave pública não encontrada"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "algoritmo de criptografia desconhecido"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "não é possível abrir o porta-chaves"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "pacote inválido"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "armadura inválida"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "identificador de utilizador inexistente"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "chave secreta não disponível"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "chave secreta incorrecta"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "não suportado"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "chave incorrecta"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "erro de leitura"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "erro de escrita"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "algoritmo de compressão desconhecido"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "erro na abertura do ficheiro"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "erro na criação do ficheiro"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "frase-secreta inválida"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "algoritmo de chave pública não implementado"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "algoritmo de criptografia não implementado"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "classe de assinatura desconhecida"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "erro na base de dados de confiança"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "MPI incorreto"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "limite de recursos"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "porta-chaves inválido"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "certificado incorrecto"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "identificador de utilizador malformado"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "erro ao fechar ficheiro"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "erro na renomeação do ficheiro"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "erro na remoção do ficheiro"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "dados inesperados"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "conflito de \"timestamp\""
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "algoritmo de chave pública inutilizável"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "o ficheiro já existe"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "chave fraca"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "argumento inválido"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "URI incorrecto"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "URI não suportado"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "erro na rede"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "não encriptado"
+
+#: util/logger.c:218
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... isto é um bug (%s:%d:%s)\n"
+
+#: util/logger.c:224
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "você encontrou um bug ... (%s:%d)\n"
+
+#: cipher/random.c:452
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "AVISO: a utilizar gerador de números aleatórios inseguro!\n"
+
+#: cipher/random.c:453
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"O gerador de números aleatórios é apenas um \"remendo\"\n"
+"para poder funcionar - não é de modo algum um bom gerador!\n"
+"\n"
+"NÃO USE NENHUM DADO GERADO POR ESTE PROGRAMA!\n"
+"\n"
+
+#: cipher/rndlinux.c:135
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available.  Please do some other work to give\n"
+"the OS a chance to collect more entropy! (Need %d more bytes)\n"
+msgstr ""
+"\n"
+"Não há bytes aleatórios suficientes. Por favor, faça outro trabalho para\n"
+"que o sistema possa recolher mais entropia! (São necessários mais %d bytes)\n"
+
+#: g10/g10.c:185
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Comandos:\n"
+" "
+
+#: g10/g10.c:187
+msgid "|[file]|make a signature"
+msgstr "|[ficheiro]|fazer uma assinatura"
+
+#: g10/g10.c:188
+msgid "|[file]|make a clear text signature"
+msgstr "|[ficheiro]|fazer uma assinatura em texto puro"
+
+#: g10/g10.c:189
+msgid "make a detached signature"
+msgstr "fazer uma assinatura separada"
+
+#: g10/g10.c:190
+msgid "encrypt data"
+msgstr "encriptar dados"
+
+#: g10/g10.c:191
+msgid "encryption only with symmetric cipher"
+msgstr "encriptar apenas com cifra simétrica"
+
+#: g10/g10.c:192
+msgid "store only"
+msgstr "apenas armazenar"
+
+#: g10/g10.c:193
+msgid "decrypt data (default)"
+msgstr "desencriptar dados (acção por omissão)"
+
+#: g10/g10.c:194
+msgid "verify a signature"
+msgstr "verificar uma assinatura"
+
+#: g10/g10.c:195
+msgid "list keys"
+msgstr "listar as chaves"
+
+#: g10/g10.c:197
+msgid "list keys and signatures"
+msgstr "listar as chaves e as assinaturas"
+
+#: g10/g10.c:198
+msgid "check key signatures"
+msgstr "verificar as assinaturas das chaves"
+
+#: g10/g10.c:199
+msgid "list keys and fingerprints"
+msgstr "listar as chaves e as impressões digitais"
+
+#: g10/g10.c:200
+msgid "list secret keys"
+msgstr "listar as chaves secretas"
+
+#: g10/g10.c:201
+msgid "generate a new key pair"
+msgstr "gerar um novo par de chaves"
+
+#: g10/g10.c:202
+msgid "remove key from the public keyring"
+msgstr "remover a chave do porta-chaves público"
+
+#: g10/g10.c:203
+msgid "sign a key"
+msgstr "assinar uma chave"
+
+#: g10/g10.c:204
+msgid "sign a key locally"
+msgstr "assinar uma chave localmente"
+
+#: g10/g10.c:205
+msgid "sign or edit a key"
+msgstr "assinar ou editar uma chave"
+
+#: g10/g10.c:206
+msgid "generate a revocation certificate"
+msgstr "gerar um certificado de revogação"
+
+#: g10/g10.c:207
+msgid "export keys"
+msgstr "exportar chaves"
+
+#: g10/g10.c:208
+msgid "export keys to a key server"
+msgstr "exportar chaves para um servidor"
+
+#: g10/g10.c:209
+msgid "import keys from a key server"
+msgstr "importar chaves de um servidor"
+
+#: g10/g10.c:212
+msgid "import/merge keys"
+msgstr "importar/fundir chaves"
+
+#: g10/g10.c:214
+msgid "list only the sequence of packets"
+msgstr "listar apenas as sequências de pacotes"
+
+# ownertrust ???
+#: g10/g10.c:216
+msgid "export the ownertrust values"
+msgstr "exportar os valores de confiança"
+
+#: g10/g10.c:218
+msgid "import ownertrust values"
+msgstr "importar os valores de confiança"
+
+#: g10/g10.c:220
+msgid "update the trust database"
+msgstr "actualizar a base de dados de confiança"
+
+#: g10/g10.c:222
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NOMES]|verificar a base de dados de confiança"
+
+#: g10/g10.c:223
+msgid "fix a corrupted trust database"
+msgstr "consertar uma base de dados de confiança"
+
+#: g10/g10.c:224
+msgid "De-Armor a file or stdin"
+msgstr "retirar armadura de um ficheiro ou do \"stdin\""
+
+#: g10/g10.c:225
+msgid "En-Armor a file or stdin"
+msgstr "criar armadura para um ficheiro ou \"stdin\""
+
+#: g10/g10.c:226
+msgid "|algo [files]|print message digests"
+msgstr "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+
+#: g10/g10.c:230
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Opções:\n"
+" "
+
+#: g10/g10.c:232
+msgid "create ascii armored output"
+msgstr "criar saída com armadura ascii"
+
+#: g10/g10.c:233
+msgid "|NAME|encrypt for NAME"
+msgstr "|NOME|encriptar para NOME"
+
+#: g10/g10.c:236
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NOME|usar NOME como destinatário padrão"
+
+#: g10/g10.c:238
+msgid "use the default key as default recipient"
+msgstr "usar a chave padrão como destinatário padrão"
+
+#: g10/g10.c:242
+msgid "use this user-id to sign or decrypt"
+msgstr ""
+"usar este identificador de utilizador para\n"
+"assinar ou desencriptar"
+
+#: g10/g10.c:243
+msgid "|N|set compress level N (0 disables)"
+msgstr ""
+"|N|estabelecer nível de compressão N\n"
+"(0 desactiva)"
+
+#: g10/g10.c:245
+msgid "use canonical text mode"
+msgstr "usar modo de texto canônico"
+
+#: g10/g10.c:246
+msgid "use as output file"
+msgstr "usar como ficheiro de saída"
+
+#: g10/g10.c:247
+msgid "verbose"
+msgstr "detalhado"
+
+#: g10/g10.c:248
+msgid "be somewhat more quiet"
+msgstr "ser mais silencioso"
+
+#: g10/g10.c:249
+msgid "don't use the terminal at all"
+msgstr "nunca usar o terminal"
+
+#: g10/g10.c:250
+msgid "force v3 signatures"
+msgstr "forçar assinaturas v3"
+
+#: g10/g10.c:251
+msgid "always use a MDC for encryption"
+msgstr "sempre usar um MDC para encriptar"
+
+#: g10/g10.c:252
+msgid "do not make any changes"
+msgstr "não fazer alterações"
+
+#: g10/g10.c:254
+msgid "batch mode: never ask"
+msgstr "modo não-interactivo: nunca perguntar"
+
+#: g10/g10.c:255
+msgid "assume yes on most questions"
+msgstr "assumir sim para a maioria das perguntas"
+
+#: g10/g10.c:256
+msgid "assume no on most questions"
+msgstr "assumir não para a maioria das perguntas"
+
+#: g10/g10.c:257
+msgid "add this keyring to the list of keyrings"
+msgstr
+"adicionar este porta-chaves\n"
+"à lista de porta-chaves"
+
+#: g10/g10.c:258
+msgid "add this secret keyring to the list"
+msgstr "adicionar este porta-chaves secreto à lista"
+
+#: g10/g10.c:259
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NOME|usar NOME como chave secreta por omissão"
+
+#: g10/g10.c:260
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|ENDEREÇO|usar este servidor para buscar chaves"
+
+#: g10/g10.c:261
+msgid "|NAME|set terminal charset to NAME"
+msgstr ""
+"|NOME|definir mapa de caracteres do terminal como\n"
+"NOME"
+
+#: g10/g10.c:262
+msgid "read options from file"
+msgstr "ler opções do ficheiro"
+
+#: g10/g10.c:264
+msgid "set debugging flags"
+msgstr "definir parâmetros de depuração"
+
+#: g10/g10.c:265
+msgid "enable full debugging"
+msgstr "habilitar depuração completa"
+
+#: g10/g10.c:266
+msgid "|FD|write status info to this FD"
+msgstr ""
+"|DF|escrever informações de estado para o\n"
+"descritor de ficheiro DF"
+
+#: g10/g10.c:267
+msgid "do not write comment packets"
+msgstr "não escrever pacotes de comentário"
+
+#: g10/g10.c:268
+msgid "(default is 1)"
+msgstr "(por omissão 1)"
+
+#: g10/g10.c:269
+msgid "(default is 3)"
+msgstr "(por omissão 3)"
+
+#: g10/g10.c:271
+msgid "|FILE|load extension module FILE"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+
+#: g10/g10.c:272
+msgid "emulate the mode described in RFC1991"
+msgstr "emular o modo descrito no RFC1991"
+
+#: g10/g10.c:273
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr ""
+"configurar todas as opções de pacote,\n"
+"criptografia e \"digest\" para comportamento\n"
+"OpenPGP"
+
+#: g10/g10.c:274
+msgid "|N|use passphrase mode N"
+msgstr "|N|usar mode de frase secreta N"
+
+#: g10/g10.c:276
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr ""
+"|NOME|usar algoritmo de \"digest\" de mensagens NOME\n"
+"para frases secretas"
+
+#: g10/g10.c:278
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr ""
+"|NOME|usar algoritmo de criptografia NOME para\n"
+"frases secretas"
+
+#: g10/g10.c:279
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NOME|usar algoritmo de criptografia NOME"
+
+#: g10/g10.c:280
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
+
+#: g10/g10.c:281
+msgid "|N|use compress algorithm N"
+msgstr "|N|usar algoritmo de compressão N"
+
+#: g10/g10.c:282
+msgid "throw keyid field of encrypted packets"
+msgstr "eliminar campo keyid dos pacotes encriptados"
+
+#: g10/g10.c:283
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NOME=VALOR|usar estes dados de notação"
+
+#: g10/g10.c:285
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file]          sign and encrypt for user Bob\n"
+" --clearsign [file]         make a clear text signature\n"
+" --detach-sign [file]       make a detached signature\n"
+" --list-keys [names]        show keys\n"
+" --fingerprint [names]      show fingerprints\n"
+msgstr ""
+"@\n"
+"Exemplos:\n"
+"\n"
+" -se -r Bob [ficheiro]      assinar e encriptar para o utilizador Bob\n"
+" --clearsign [ficheiro]     criar uma assinatura em texto puro\n"
+" --detach-sign [ficheiro]   criar uma assinatura separada\n"
+" --list-keys [nomes]        mostrar chaves\n"
+" --fingerprint [nomes]      mostrar impressões digitais\n"
+
+#: g10/g10.c:370
+msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
+msgstr "Por favor comunique bugs para <gnupg-bugs@gnu.org>.\n"
+
+#: g10/g10.c:374
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+
+#: g10/g10.c:377
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Sintaxe: gpg [opções] [ficheiros]\n"
+"assina, verifica, encripta ou desencripta\n"
+"a operação por omissão depende dos dados de entrada\n"
+
+#: g10/g10.c:382
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"Algoritmos suportados:\n"
+
+#: g10/g10.c:456
+msgid "usage: gpg [options] "
+msgstr "uso: gpg [opções] "
+
+#: g10/g10.c:509
+msgid "conflicting commands\n"
+msgstr "comandos em conflito\n"
+
+#: g10/g10.c:644
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "NOTA: ficheiro de opções por omissão `%s' inexistente\n"
+
+#: g10/g10.c:648
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "ficheiro de opções `%s': %s\n"
+
+#: g10/g10.c:655
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "a ler opções de `%s'\n"
+
+#: g10/g10.c:835
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
+
+#: g10/g10.c:892 g10/g10.c:901
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "NOTA: %s não é para uso normal!\n"
+
+#: g10/g10.c:894
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s não é permitido com %s!\n"
+
+#: g10/g10.c:897
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s não faz sentido com %s!\n"
+
+#: g10/g10.c:916 g10/g10.c:928
+msgid "selected cipher algorithm is invalid\n"
+msgstr "o algoritmo de cifragem selecionado não é válido\n"
+
+#: g10/g10.c:922 g10/g10.c:934
+msgid "selected digest algorithm is invalid\n"
+msgstr "o algoritmo de \"digest\" selecionado não é válido\n"
+
+#: g10/g10.c:938
+msgid "the given policy URL is invalid\n"
+msgstr "a URL de política dada é inválida\n"
+
+#: g10/g10.c:941
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "o algoritmo de compressão deve estar na faixa %d..%d\n"
+
+#: g10/g10.c:943
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed deve ser maior que 0\n"
+
+#: g10/g10.c:945
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed deve ser maior que 1\n"
+
+#: g10/g10.c:947
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth deve estar na entre 1 e 255\n"
+
+#: g10/g10.c:950
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "NOTA: o modo S2K simples (0) não é recomendável\n"
+
+#: g10/g10.c:954
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "modo S2K inválido: deve ser 0, 1 ou 3\n"
+
+#: g10/g10.c:1031
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+
+#: g10/g10.c:1037
+msgid "--store [filename]"
+msgstr "--store [nome_do_ficheiro]"
+
+#: g10/g10.c:1044
+msgid "--symmetric [filename]"
+msgstr "--symmetric [nome_do_ficheiro]"
+
+#: g10/g10.c:1052
+msgid "--encrypt [filename]"
+msgstr "--encrypt [nome_do_ficheiro]"
+
+#: g10/g10.c:1065
+msgid "--sign [filename]"
+msgstr "--sign [nome_do_ficheiro]"
+
+#: g10/g10.c:1078
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [nome_do_ficheiro]"
+
+#: g10/g10.c:1092
+msgid "--clearsign [filename]"
+msgstr "--clearsign [nome_do_ficheiro]"
+
+#: g10/g10.c:1104
+msgid "--decrypt [filename]"
+msgstr "--decrypt [nome_do_ficheiro]"
+
+#: g10/g10.c:1112
+msgid "--sign-key user-id"
+msgstr "--sign-key id-utilizador"
+
+#: g10/g10.c:1120
+msgid "--lsign-key user-id"
+msgstr "--lsign-key id-utilizador"
+
+#: g10/g10.c:1128
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key id-utilizador [comandos]"
+
+#: g10/g10.c:1144
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key id-utilizador"
+
+#: g10/g10.c:1147
+msgid "--delete-key user-id"
+msgstr "--delete-key id-utilizador"
+
+#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
+
+#: g10/g10.c:1182
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [id-utilizador] [porta-chaves]"
+
+#: g10/g10.c:1243
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "retirada de armadura falhou: %s\n"
+
+#: g10/g10.c:1251
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "criação de armadura falhou: %s\n"
+
+# "hash" poderia ser "espalhamento", mas não fica claro
+#: g10/g10.c:1319
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "algoritmo de hash inválido `%s'\n"
+
+#: g10/g10.c:1400
+msgid "[filename]"
+msgstr "[nome_do_ficheiro]"
+
+#: g10/g10.c:1404
+msgid "Go ahead and type your message ...\n"
+msgstr "Digite a sua mensagem ...\n"
+
+#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "impossível abrir `%s'\n"
+
+#: g10/g10.c:1576
+msgid ""
+"the first character of a notation name must be a letter or an underscore\n"
+msgstr ""
+"o primeiro caracter de um nome de notação deve ser uma letra ou um "
+"sublinhado\n"
+
+#: g10/g10.c:1582
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"um nome de notação deve ter apenas letras, dígitos, pontos ou sublinhados e "
+"terminar com '='\n"
+
+#: g10/g10.c:1588
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr ""
+"pontos num nome de notação devem estar cercados por outros caracteres\n"
+
+#: g10/g10.c:1596
+msgid "a notation value must not use any control characters\n"
+msgstr "um valor de notação não deve usar caracteres de controle\n"
+
+#: g10/armor.c:296
+#, c-format
+msgid "armor: %s\n"
+msgstr "armadura: %s\n"
+
+#: g10/armor.c:319
+msgid "invalid armor header: "
+msgstr "cabeçalho de armadura inválido: "
+
+#: g10/armor.c:326
+msgid "armor header: "
+msgstr "cabeçalho de armadura: "
+
+#: g10/armor.c:337
+msgid "invalid clearsig header\n"
+msgstr "cabeçalho de assinatura em texto puro inválido\n"
+
+#: g10/armor.c:389
+msgid "nested clear text signatures\n"
+msgstr "assinaturas em texto puro aninhadas\n"
+
+#: g10/armor.c:500
+msgid "invalid dash escaped line: "
+msgstr "linha com hífen inválida: "
+
+#: g10/armor.c:512
+msgid "unexpected armor:"
+msgstr "armadura inesperada:"
+
+#: g10/armor.c:629
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "caracter radix64 inválido %02x ignorado\n"
+
+#: g10/armor.c:672
+msgid "premature eof (no CRC)\n"
+msgstr "fim de ficheiro prematuro (sem CRC)\n"
+
+#: g10/armor.c:706
+msgid "premature eof (in CRC)\n"
+msgstr "fim de ficheiro prematuro (no CRC)\n"
+
+#: g10/armor.c:710
+msgid "malformed CRC\n"
+msgstr "CRC malformado\n"
+
+#: g10/armor.c:714
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "erro de CRC; %06lx - %06lx\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in Trailer)\n"
+msgstr "fim de ficheiro prematuro (no \"Trailer\")\n"
+
+#: g10/armor.c:735
+msgid "error in trailer line\n"
+msgstr "erro na linha \"trailer\"\n"
+
+#: g10/armor.c:1001
+msgid "no valid OpenPGP data found.\n"
+msgstr "nenhum dado OpenPGP válido encontrado.\n"
+
+#: g10/armor.c:1005
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "armadura inválida: linha maior que %d caracteres\n"
+
+#: g10/armor.c:1009
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"caracter \"quoted printable\" na armadura - provavelmente um MTA com bugs "
+"foi usado\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid "             Fingerprint:"
+msgstr "       Impressão digital:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "Impressão digital:"
+
+#. a string with valid answers
+#: g10/pkclist.c:197
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
+
+#: g10/pkclist.c:201
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"Nenhum valor de confiança designado para %lu:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:213
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"Por favor decida quanto confia neste utilizador para\n"
+"verificar correctamente as chaves de outros utilizadores\n"
+"(vendo passaportes, verificando impressões digitais...)?\n"
+"\n"
+" 1 = Não sei\n"
+" 2 = Eu NÃO confio\n"
+" 3 = Eu confio moderadamente\n"
+" 4 = Eu confio completamente\n"
+" s = Mostrar mais informações\n"
+
+#: g10/pkclist.c:222
+msgid " m = back to the main menu\n"
+msgstr " m = volta ao menu principal\n"
+
+#: g10/pkclist.c:224
+msgid " q = quit\n"
+msgstr " q = sair\n"
+
+#: g10/pkclist.c:230
+msgid "Your decision? "
+msgstr "Decisão? "
+
+#: g10/pkclist.c:252
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Certificados que levam a uma chave confiada plenamente:\n"
+
+#: g10/pkclist.c:323
+msgid ""
+"Could not find a valid trust path to the key.  Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"Não foi possível encontrar uma rota de confiança válida para a chave.\n"
+"Vamos ver se é possível designar alguns valores de confiança ausentes.\n"
+"\n"
+
+#: g10/pkclist.c:329
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr
+"Nenhuma rota encontrada que leve a uma de nossas chaves.\n"
+"\n"
+
+#: g10/pkclist.c:331
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"Nenhum certificado com confiança indefinida encontrado.\n"
+"\n"
+
+#: g10/pkclist.c:333
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"Nenhum valor de confiança modificado.\n"
+"\n"
+
+#: g10/pkclist.c:350
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "chave %08lX: a chave foi revogada!\n"
+
+#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+msgid "Use this key anyway? "
+msgstr "Usar esta chave de qualquer modo? "
+
+#: g10/pkclist.c:360
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "chave %08lX: a subchave foi revogada!\n"
+
+#: g10/pkclist.c:390
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lX: a chave expirou\n"
+
+#: g10/pkclist.c:396
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lX: sem informação para calcular probabilidade de confiança\n"
+
+#: g10/pkclist.c:410
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: Nós NÃO confiamos nesta chave\n"
+
+#: g10/pkclist.c:416
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lX: Não se tem certeza de que esta chave realmente pertence ao dono,\n"
+"mas é aceite de qualquer modo\n"
+
+#: g10/pkclist.c:422
+msgid "This key probably belongs to the owner\n"
+msgstr "Esta chave provavelmente pertence ao dono\n"
+
+#: g10/pkclist.c:427
+msgid "This key belongs to us\n"
+msgstr "Esta chave pertence-nos\n"
+
+#: g10/pkclist.c:470
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\n"
+msgstr ""
+"Não se tem certeza de que esta chave pertence ao seu dono.\n"
+"Se você *realmente* sabe o que está a fazer, pode responder\n"
+"sim à próxima pergunta\n"
+"\n"
+
+#: g10/pkclist.c:484 g10/pkclist.c:507
+msgid "WARNING: Using untrusted key!\n"
+msgstr "AVISO: Utilizando chave não confiável!\n"
+
+#: g10/pkclist.c:528
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n"
+
+#: g10/pkclist.c:529
+msgid "         This could mean that the signature is forgery.\n"
+msgstr "         Isto pode significar que a assinatura é falsificada.\n"
+
+#: g10/pkclist.c:533
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "AVISO: Esta subchave foi revogada pelo seu dono!\n"
+
+#: g10/pkclist.c:554
+msgid "Note: This key has expired!\n"
+msgstr "Nota: Esta chave expirou!\n"
+
+#: g10/pkclist.c:562
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr "AVISO: Esta chave não está certificada com uma assinatura confiável!\n"
+
+#: g10/pkclist.c:564
+msgid ""
+"         There is no indication that the signature belongs to the owner.\n"
+msgstr "         Não há indicação de que a assinatura pertence ao dono.\n"
+
+#: g10/pkclist.c:581
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "AVISO: Nós NÃO confiamos nesta chave!\n"
+
+#: g10/pkclist.c:582
+msgid "         The signature is probably a FORGERY.\n"
+msgstr "         A assinatura é provavelmente uma FALSIFICAÇÃO.\n"
+
+#: g10/pkclist.c:589
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr ""
+"AVISO: Esta chave não está certificada com assinaturas suficientemente\n"
+"       confiáveis!\n"
+
+#: g10/pkclist.c:592
+msgid "         It is not certain that the signature belongs to the owner.\n"
+msgstr "         Não se tem certeza de que a assinatura pertence ao dono.\n"
+
+#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: ignorado: %s\n"
+
+#: g10/pkclist.c:702 g10/pkclist.c:868
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: ignorado: a chave pública já está presente\n"
+
+#: g10/pkclist.c:729
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr ""
+"Você não especificou um identificador de utilizador. (pode-se usar \"-r\")\n"
+"\n"
+
+#: g10/pkclist.c:739
+msgid "Enter the user ID: "
+msgstr "Digite o identificador de utilizador: "
+
+#: g10/pkclist.c:751
+msgid "No such user ID.\n"
+msgstr "Identificador de utilizador inexistente.\n"
+
+#: g10/pkclist.c:756
+msgid "skipped: public key already set as default recipient\n"
+msgstr "ignorado: chave pública já colocada como destinatário por omissão\n"
+
+#: g10/pkclist.c:778
+msgid "Public key is disabled.\n"
+msgstr "A chave pública está desativada.\n"
+
+#: g10/pkclist.c:785
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "ignorado: a chave pública já colocada com --encrypt-to\n"
+
+#: g10/pkclist.c:816
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "destinatário padrão desconhecido `%s'\n"
+
+#: g10/pkclist.c:849
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: erro na verificação da chave: %s\n"
+
+#: g10/pkclist.c:854
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: ignorado: a chave pública está desactivada\n"
+
+#: g10/pkclist.c:892
+msgid "no valid addressees\n"
+msgstr "nenhum endereço válido\n"
+
+#: g10/keygen.c:122
+msgid "writing self signature\n"
+msgstr "escrevendo auto-assinatura\n"
+
+# key binding ???
+#: g10/keygen.c:160
+msgid "writing key binding signature\n"
+msgstr "escrevendo assinatura ligada a uma chave\n"
+
+#: g10/keygen.c:386
+msgid "Please select what kind of key you want:\n"
+msgstr "Por favor selecione o tipo de chave desejado:\n"
+
+#: g10/keygen.c:388
+#, c-format
+msgid "   (%d) DSA and ElGamal (default)\n"
+msgstr "   (%d) DSA e ElGamal (por omissão)\n"
+
+#: g10/keygen.c:389
+#, c-format
+msgid "   (%d) DSA (sign only)\n"
+msgstr "   (%d) DSA (apenas assinatura)\n"
+
+#: g10/keygen.c:391
+#, c-format
+msgid "   (%d) ElGamal (encrypt only)\n"
+msgstr "   (%d) ElGamal (apenas encripção)\n"
+
+#: g10/keygen.c:392
+#, c-format
+msgid "   (%d) ElGamal (sign and encrypt)\n"
+msgstr "   (%d) ElGamal (assinatura e encriptação)\n"
+
+#: g10/keygen.c:394
+#, c-format
+msgid "   (%d) ElGamal in a v3 packet\n"
+msgstr "   (%d) ElGamal num pacote v3\n"
+
+#: g10/keygen.c:399
+msgid "Your selection? "
+msgstr "Opção? "
+
+#: g10/keygen.c:409
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "Você quer realmente criar uma chave para assinatura e criptografia? "
+
+#: g10/keygen.c:430
+msgid "Invalid selection.\n"
+msgstr "Opção inválida.\n"
+
+#: g10/keygen.c:442
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+"              minimum keysize is  768 bits\n"
+"              default keysize is 1024 bits\n"
+"    highest suggested keysize is 2048 bits\n"
+msgstr ""
+"Prestes a gerar um novo par de chaves %s.\n"
+"              tamanho mínimo é  768 bits\n"
+"         tamanho por omissão é 1024 bits\n"
+"     tamanho máximo sugerido é 2048 bits\n"
+
+#: g10/keygen.c:449
+msgid "What keysize do you want? (1024) "
+msgstr "Qual o tamanho de chave desejado? (1024) "
+
+#: g10/keygen.c:454
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA permite apenas tamanhos de 512 a 1024\n"
+
+#: g10/keygen.c:456
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "tamanho muito pequeno; 768 é o valor mínimo permitido.\n"
+
+#: g10/keygen.c:466
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "tamanho muito grande; %d é o valor máximo permitido.\n"
+
+#: g10/keygen.c:471
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"Tamanhos de chave maiores que 2048 não são recomendados\n"
+"porque o tempo de computação é REALMENTE longo!\n"
+
+#: g10/keygen.c:474
+msgid "Are you sure that you want this keysize? "
+msgstr "Você tem certeza de que quer este tamanho de chave? "
+
+#: g10/keygen.c:475
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Tudo bem, mas não se esqueça que a radiação do seu monitor e teclado "
+"também é extremamente vulnerável a ataques!\n"
+
+#: g10/keygen.c:483
+msgid "Do you really need such a large keysize? "
+msgstr "Você precisa realmente de uma chave tão grande? "
+
+#: g10/keygen.c:489
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "O tamanho de chave pedido é %u bits\n"
+
+#: g10/keygen.c:492 g10/keygen.c:496
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "arredondado para %u bits\n"
+
+#: g10/keygen.c:509
+msgid ""
+"Please specify how long the key should be valid.\n"
+"         0 = key does not expire\n"
+"      <n>  = key expires in n days\n"
+"      <n>w = key expires in n weeks\n"
+"      <n>m = key expires in n months\n"
+"      <n>y = key expires in n years\n"
+msgstr ""
+"Por favor especifique por quanto tempo a chave deve ser válida.\n"
+"         0 = chave não expira\n"
+"      <n>  = chave expira em n dias\n"
+"      <n>w = chave expira em n semanas\n"
+"      <n>m = chave expira em n meses\n"
+"      <n>y = chave expira em n anos\n"
+
+#: g10/keygen.c:526
+msgid "Key is valid for? (0) "
+msgstr "A chave é valida por? (0) "
+
+#: g10/keygen.c:547
+msgid "invalid value\n"
+msgstr "valor inválido\n"
+
+#: g10/keygen.c:552
+msgid "Key does not expire at all\n"
+msgstr "A chave não expira nunca\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:558
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "A chave expira em %s\n"
+
+#: g10/keygen.c:563
+msgid "Is this correct (y/n)? "
+msgstr "Está correto (s/n)? "
+
+#: g10/keygen.c:606
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+"    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
+"\n"
+msgstr ""
+"\n"
+"Você precisa de um identificador de utilizador para identificar sua chave; o\n"
+"programa constrói o identificador a partir do Nome Completo, Comentário e\n"
+"Endereço Eletrónico desta forma:\n"
+"    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
+"\n"
+
+#: g10/keygen.c:617
+msgid "Real name: "
+msgstr "Nome completo: "
+
+#: g10/keygen.c:621
+msgid "Invalid character in name\n"
+msgstr "Caracter inválido no nome\n"
+
+#: g10/keygen.c:623
+msgid "Name may not start with a digit\n"
+msgstr "O nome não pode começar com um dígito\n"
+
+#: g10/keygen.c:625
+msgid "Name must be at least 5 characters long\n"
+msgstr "O nome deve ter pelo menos 5 caracteres\n"
+
+#: g10/keygen.c:633
+msgid "Email address: "
+msgstr "Endereço de correio eletrónico: "
+
+#: g10/keygen.c:644
+msgid "Not a valid email address\n"
+msgstr "Endereço eletrónico inválido\n"
+
+#: g10/keygen.c:652
+msgid "Comment: "
+msgstr "Comentário: "
+
+#: g10/keygen.c:658
+msgid "Invalid character in comment\n"
+msgstr "Caracter inválido no comentário\n"
+
+#: g10/keygen.c:680
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Você está usando o conjunto de caracteres `%s'.\n"
+
+#: g10/keygen.c:686
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+"    \"%s\"\n"
+"\n"
+msgstr ""
+"Você selecionou este identificador de utilizador:\n"
+"    \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:689
+msgid "NnCcEeOoQq"
+msgstr "NnCcEeOoSs"
+
+#: g10/keygen.c:699
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? "
+
+#: g10/keygen.c:751
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Você precisa de uma frase secreta para proteger a sua chave.\n"
+"\n"
+
+#: g10/keyedit.c:456 g10/keygen.c:759
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "a frase secreta não foi repetida corretamente; tente outra vez.\n"
+
+#: g10/keygen.c:765
+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"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
+"Vou continuar assim mesmo. Você pode mudar sua frase secreta a\n"
+"qualquer hora, usando este programa com a opção \"--edit-key\".\n"
+"\n"
+
+#: g10/keygen.c:786
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"Precisamos gerar muitos bytes aleatórios. É uma boa ideia realizar outra\n"
+"actividade (escrever no teclado, mover o rato, usar os discos) durante a\n"
+"geração dos números primos; isso dá ao gerador de números aleatórios\n"
+"uma hipótese maior de ganhar entropia suficiente.\n"
+
+#: g10/keygen.c:856
+msgid "Key generation can only be used in interactive mode\n"
+msgstr "A geração de chaves só pode ser feita em modo interactivo\n"
+
+#: g10/keygen.c:864
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "O par de chaves DSA terá 1024 bits.\n"
+
+#: g10/keygen.c:870
+msgid "Key generation canceled.\n"
+msgstr "Geração de chave cancelada.\n"
+
+#: g10/keygen.c:880
+#, c-format
+msgid "writing public certificate to `%s'\n"
+msgstr "escrevendo certificado público para `%s'\n"
+
+#: g10/keygen.c:881
+#, c-format
+msgid "writing secret certificate to `%s'\n"
+msgstr "escrevendo certificado privado para `%s'\n"
+
+#: g10/keygen.c:958
+msgid "public and secret key created and signed.\n"
+msgstr "chaves pública e privada criadas e assinadas.\n"
+
+#: g10/keygen.c:960
+msgid ""
+"Note that this key cannot be used for encryption.  You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"Note que esta chave não pode ser usada para encriptação. Você pode usar\n"
+"o comando \"--edit-key\" para gerar uma chave secundária para esse fim.\n"
+
+#: g10/keygen.c:974 g10/keygen.c:1073
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
+
+#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr ""
+"a chave foi criada %lu segundo no futuro\n"
+"(viagem no tempo ou problema no relógio)\n"
+
+#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr ""
+"a chave foi criada %lu segundos no futuro\n"
+"(viagem no tempo ou problema no relógio)\n"
+
+#: g10/keygen.c:1051
+msgid "Really create? "
+msgstr "Realmente criar? "
+
+#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/tdbio.c:529
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: impossível abrir: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:318
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: AVISO: ficheiro vazio\n"
+
+#: g10/encode.c:265
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "lendo de `%s'\n"
+
+#: g10/encode.c:482
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s encriptado para: %s\n"
+
+#: g10/export.c:147
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: utilizador não encontrado: %s\n"
+
+#: g10/export.c:156
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "erro de leitura do certificado: %s\n"
+
+#: g10/export.c:165
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "chave %08lX: não é uma chave rfc2440 - ignorada\n"
+
+#: g10/export.c:203
+msgid "WARNING: nothing exported\n"
+msgstr "AVISO: nada exportado\n"
+
+#: g10/getkey.c:206
+msgid "too many entries in pk cache - disabled\n"
+msgstr "entradas demais no cache pk - desactivado\n"
+
+#: g10/getkey.c:345
+msgid "too many entries in unk cache - disabled\n"
+msgstr "entradas demais no cache unk - desactivado\n"
+
+#: g10/getkey.c:1289 g10/getkey.c:1328
+msgid "RSA key cannot be used in this version\n"
+msgstr "chave RSA não pode ser usada nesta versão\n"
+
+#: g10/getkey.c:1291 g10/getkey.c:1330
+msgid "No key for user ID\n"
+msgstr "Nenhuma chave para identificador de utilizador\n"
+
+#: g10/getkey.c:1369 g10/getkey.c:1409
+msgid "No user ID for key\n"
+msgstr "Nenhum identificador de utilizador para chave\n"
+
+#: g10/getkey.c:1565 g10/getkey.c:1621
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "usando chave secundária %08lX ao invés de chave primária %08lX\n"
+
+#: g10/import.c:118
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
+
+#: g10/import.c:162
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "ignorando bloco do tipo %d\n"
+
+#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "%lu chaves processadas até agora\n"
+
+#: g10/import.c:174
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "erro na leitura de `%s': %s\n"
+
+#: g10/import.c:177
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "Número total processado: %lu\n"
+
+#: g10/import.c:179
+#, c-format
+msgid "          w/o user IDs: %lu\n"
+msgstr "          sem IDs de utilizadores: %lu\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "              imported: %lu"
+msgstr "              importados: %lu"
+
+#: g10/import.c:187
+#, c-format
+msgid "             unchanged: %lu\n"
+msgstr "             não modificados: %lu\n"
+
+#: g10/import.c:189
+#, c-format
+msgid "          new user IDs: %lu\n"
+msgstr "          novos IDs de utilizadores: %lu\n"
+
+#: g10/import.c:191
+#, c-format
+msgid "           new subkeys: %lu\n"
+msgstr "           novas subchaves: %lu\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "        new signatures: %lu\n"
+msgstr "        novas assinaturas: %lu\n"
+
+#: g10/import.c:195
+#, c-format
+msgid "   new key revocations: %lu\n"
+msgstr "   novas revogações de chaves: %lu\n"
+
+#: g10/import.c:197
+#, c-format
+msgid "      secret keys read: %lu\n"
+msgstr "      chaves secretas lidas: %lu\n"
+
+#: g10/import.c:199
+#, c-format
+msgid "  secret keys imported: %lu\n"
+msgstr "  chaves secretas importadas: %lu\n"
+
+#: g10/import.c:201
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr " chaves secretas não modificadas: %lu\n"
+
+#: g10/import.c:362 g10/import.c:554
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "chave %08lX: sem ID de utilizador\n"
+
+#: g10/import.c:376
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "chave %08lX: sem IDs de utilizadores válidos\n"
+
+#: g10/import.c:378
+msgid "this may be caused by a missing self-signature\n"
+msgstr "isto pode ser causado por falta de auto-assinatura\n"
+
+#: g10/import.c:389 g10/import.c:621
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "chave %08lX: chave pública não encontrada: %s\n"
+
+#: g10/import.c:395
+msgid "no default public keyring\n"
+msgstr "sem porta-chaves público padrão\n"
+
+#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "a escrever para `%s'\n"
+
+#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "impossível trancar porta-chaves `%s': %s\n"
+
+#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "erro na escrita do porta-chaves `%s': %s\n"
+
+#: g10/import.c:410
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "chave %08lX: chave pública importada\n"
+
+#: g10/import.c:427
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "chave %08lX: não corresponde à nossa cópia\n"
+
+#: g10/import.c:436 g10/import.c:629
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "chave %08lX: impossível localizar bloco de chaves original: %s\n"
+
+#: g10/import.c:442 g10/import.c:635
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "chave %08lX: impossível ler bloco de chaves original: %s\n"
+
+#: g10/import.c:469
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "chave %8lX: 1 novo ID de utilizador\n"
+
+#: g10/import.c:472
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "chave %08lX: %d novos IDs de utilizadores\n"
+
+#: g10/import.c:475
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "chave %08lX: 1 nova assinatura\n"
+
+#: g10/import.c:478
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "chave %08lX: %d novas assinaturas\n"
+
+#: g10/import.c:481
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "chave %08lX: 1 nova subchave\n"
+
+#: g10/import.c:484
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "chave %08lX: %d novas subchaves\n"
+
+#: g10/import.c:494
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "chave %08lX: não modificada\n"
+
+#: g10/import.c:577
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "chave %08lX: chave secreta importada\n"
+
+#. we can't merge secret keys
+#: g10/import.c:581
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "chave %08lX: já está no porta-chaves secreto\n"
+
+#: g10/import.c:586
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "chave %08lX: chave secreta não encontrada: %s\n"
+
+#: g10/import.c:615
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"chave %08lX: sem chave pública - impossível aplicar certificado\n"
+"de revogação\n"
+
+#: g10/import.c:646
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "chave %08lX: certificado de revogação inválido: %s - rejeitado\n"
+
+#: g10/import.c:678
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "chave %08lX: certificado de revogação importado\n"
+
+#: g10/import.c:711
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "chave %08lX: nenhum ID de utilizador para assinatura\n"
+
+#: g10/import.c:718 g10/import.c:742
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "chave %08lX: algoritmo de chave pública não suportado\n"
+
+#: g10/import.c:719
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "chave %08lX: auto-assinatura inválida\n"
+
+#: g10/import.c:734
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "chave %08lX: sem subchave para ligação de chaves\n"
+
+#: g10/import.c:743
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "chave %08lX: ligação de subchave inválida\n"
+
+#: g10/import.c:769
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr "chave %08lX: aceite ID de utilizador sem auto-assinatura '"
+
+#: g10/import.c:798
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "chave %08lX: ignorado ID de utilizador '"
+
+#: g10/import.c:821
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "chave %08lX: subchave ignorada\n"
+
+#: g10/import.c:846
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr "chave %08lX: assinatura não exportável (classe %02x) - ignorada\n"
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "chave %08lX: certificado de revogação no local errado - ignorado\n"
+
+#: g10/import.c:863
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "chave %08lX: certificado de revogação inválido: %s - ignorado\n"
+
+#: g10/import.c:963
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "chave %08lX: detectado ID de utilizador duplicado - fundido\n"
+
+#: g10/import.c:1014
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "chave %08lX: certificado de revogação adicionado\n"
+
+#: g10/import.c:1128 g10/import.c:1183
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "chave %08lX: a nossa cópia não tem auto-assinatura\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:93
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: utilizador não encontrado\n"
+
+#: g10/keyedit.c:154
+msgid "[revocation]"
+msgstr "[revogação]"
+
+#: g10/keyedit.c:155
+msgid "[self-signature]"
+msgstr "[auto-assinatura]"
+
+#: g10/keyedit.c:219
+msgid "1 bad signature\n"
+msgstr "1 assinatura incorrecta\n"
+
+#: g10/keyedit.c:221
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d assinaturas incorrectas\n"
+
+#: g10/keyedit.c:223
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 assinatura não verificada por falta de chave\n"
+
+#: g10/keyedit.c:225
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d assinaturas não verificadas por falta de chaves\n"
+
+#: g10/keyedit.c:227
+msgid "1 signature not checked due to an error\n"
+msgstr "1 assinatura não verificada devido a um erro\n"
+
+#: g10/keyedit.c:229
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d assinaturas não verificadas devido a erros\n"
+
+#: g10/keyedit.c:231
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "1 ID de utilizador sem auto-assinatura válida detectado\n"
+
+#: g10/keyedit.c:233
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "%d IDs de utilizadores sem auto-assinaturas válidas detectados\n"
+
+#: g10/keyedit.c:313
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "Já assinado pela chave %08lX\n"
+
+#: g10/keyedit.c:321
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Nada para assinar com a chave %08lX\n"
+
+#: g10/keyedit.c:330
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"Você tem certeza de que quer assinar esta chave com\n"
+"a sua chave: \""
+
+#: g10/keyedit.c:339
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"A assinatura será marcada como não-exportável.\n"
+"\n"
+
+#: g10/keyedit.c:344
+msgid "Really sign? "
+msgstr "Realmente assinar? "
+
+#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "assinatura falhou: %s\n"
+
+#: g10/keyedit.c:423
+msgid "This key is not protected.\n"
+msgstr "Esta chave não é protegida.\n"
+
+#: g10/keyedit.c:426
+msgid "Key is protected.\n"
+msgstr "A chave é protegida.\n"
+
+#: g10/keyedit.c:443
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Impossível editar esta chave: %s\n"
+
+#: g10/keyedit.c:448
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Digite a nova frase para esta chave secreta.\n"
+"\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
+"\n"
+
+#: g10/keyedit.c:463
+msgid "Do you really want to do this? "
+msgstr "Você quer realmente fazer isso? "
+
+#: g10/keyedit.c:524
+msgid "moving a key signature to the correct place\n"
+msgstr "a mover a assinatura da chave para o local correcto\n"
+
+#: g10/keyedit.c:564
+msgid "quit this menu"
+msgstr "sair deste menu"
+
+#: g10/keyedit.c:565
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:566
+msgid "save"
+msgstr "save"
+
+#: g10/keyedit.c:566
+msgid "save and quit"
+msgstr "gravar e sair"
+
+#: g10/keyedit.c:567
+msgid "help"
+msgstr "help"
+
+#: g10/keyedit.c:567
+msgid "show this help"
+msgstr "mostra esta ajuda"
+
+#: g10/keyedit.c:569
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:569
+msgid "show fingerprint"
+msgstr "mostra impressão digital"
+
+#: g10/keyedit.c:570
+msgid "list"
+msgstr "list"
+
+#: g10/keyedit.c:570
+msgid "list key and user IDs"
+msgstr "lista chave e identificadores de utilizadores"
+
+#: g10/keyedit.c:571
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:572
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:572
+msgid "select user ID N"
+msgstr "seleciona ID de utilizador N"
+
+#: g10/keyedit.c:573
+msgid "key"
+msgstr "key"
+
+#: g10/keyedit.c:573
+msgid "select secondary key N"
+msgstr "seleciona chave secundária N"
+
+#: g10/keyedit.c:574
+msgid "check"
+msgstr "check"
+
+#: g10/keyedit.c:574
+msgid "list signatures"
+msgstr "lista assinaturas"
+
+#: g10/keyedit.c:575
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:576
+msgid "sign"
+msgstr "sign"
+
+#: g10/keyedit.c:576
+msgid "sign the key"
+msgstr "assina a chave"
+
+#: g10/keyedit.c:577
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:578
+msgid "lsign"
+msgstr "lsign"
+
+#: g10/keyedit.c:578
+msgid "sign the key locally"
+msgstr "assina a chave localmente"
+
+#: g10/keyedit.c:579
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:580
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:580
+msgid "add a user ID"
+msgstr "adiciona um novo ID de utilizador"
+
+#: g10/keyedit.c:581
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:581
+msgid "delete user ID"
+msgstr "remove ID de utilizador"
+
+#: g10/keyedit.c:582
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:582
+msgid "add a secondary key"
+msgstr "adiciona nova chave secundária"
+
+#: g10/keyedit.c:583
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:583
+msgid "delete a secondary key"
+msgstr "remove uma chave secundária"
+
+#: g10/keyedit.c:584
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:584
+msgid "delete signatures"
+msgstr "remove assinaturas"
+
+#: g10/keyedit.c:585
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:585
+msgid "change the expire date"
+msgstr "muda a data de validade"
+
+#: g10/keyedit.c:586
+msgid "toggle"
+msgstr "toggle"
+
+#: g10/keyedit.c:586
+msgid "toggle between secret and public key listing"
+msgstr "alterna entre listagem de chave secreta e pública"
+
+#: g10/keyedit.c:588
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:589
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:589
+msgid "list preferences"
+msgstr "lista preferências"
+
+#: g10/keyedit.c:590
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:590
+msgid "change the passphrase"
+msgstr "muda a frase secreta"
+
+#: g10/keyedit.c:591
+msgid "trust"
+msgstr "trust"
+
+#: g10/keyedit.c:591
+msgid "change the ownertrust"
+msgstr "muda os valores de confiança"
+
+#: g10/keyedit.c:592
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:592
+msgid "revoke signatures"
+msgstr "revoga assinaturas"
+
+#: g10/keyedit.c:593
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:593
+msgid "revoke a secondary key"
+msgstr "revoga uma chave secundária"
+
+#: g10/keyedit.c:594
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:594
+msgid "disable a key"
+msgstr "desactiva uma chave"
+
+#: g10/keyedit.c:595
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:595
+msgid "enable a key"
+msgstr "activa uma chave"
+
+#: g10/delkey.c:107 g10/keyedit.c:614
+msgid "can't do that in batchmode\n"
+msgstr "impossível fazer isso em modo não-interativo\n"
+
+#: g10/keyedit.c:652
+msgid "Secret key is available.\n"
+msgstr "Chave secreta disponível.\n"
+
+#: g10/keyedit.c:681
+msgid "Command> "
+msgstr "Comando> "
+
+#: g10/keyedit.c:711
+msgid "Need the secret key to do this.\n"
+msgstr "A chave secreta é necessária para fazer isto.\n"
+
+#: g10/keyedit.c:758
+msgid "Really sign all user IDs? "
+msgstr "Realmente assinar todos os IDs de utilizador? "
+
+#: g10/keyedit.c:759
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Sugestão: Selecione os IDs de utilizador para assinar\n"
+
+#: g10/keyedit.c:786 g10/keyedit.c:968
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "actualização da base de dados de confiança falhou: %s\n"
+
+#: g10/keyedit.c:797 g10/keyedit.c:818
+msgid "You must select at least one user ID.\n"
+msgstr "Você precisa selecionar pelo menos um ID de utilizador.\n"
+
+#: g10/keyedit.c:799
+msgid "You can't delete the last user ID!\n"
+msgstr "Você não pode remover o último ID de utilizador!\n"
+
+#: g10/keyedit.c:802
+msgid "Really remove all selected user IDs? "
+msgstr "Realmente remover todos os IDs de utilizador seleccionados? "
+
+#: g10/keyedit.c:803
+msgid "Really remove this user ID? "
+msgstr "Realmente remover este ID de utilizador? "
+
+#: g10/keyedit.c:839 g10/keyedit.c:861
+msgid "You must select at least one key.\n"
+msgstr "Você deve selecionar pelo menos uma chave.\n"
+
+#: g10/keyedit.c:843
+msgid "Do you really want to delete the selected keys? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
+
+#: g10/keyedit.c:844
+msgid "Do you really want to delete this key? "
+msgstr "Você quer realmente remover esta chave? "
+
+#: g10/keyedit.c:865
+msgid "Do you really want to revoke the selected keys? "
+msgstr "Você quer realmente revogar as chaves selecionadas? "
+
+#: g10/keyedit.c:866
+msgid "Do you really want to revoke this key? "
+msgstr "Você quer realmente revogar esta chave? "
+
+#: g10/keyedit.c:932
+msgid "Save changes? "
+msgstr "Gravar alterações? "
+
+#: g10/keyedit.c:935
+msgid "Quit without saving? "
+msgstr "Sair sem gravar? "
+
+#: g10/keyedit.c:946
+#, c-format
+msgid "update failed: %s\n"
+msgstr "actualização falhou: %s\n"
+
+#: g10/keyedit.c:953
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
+
+#: g10/keyedit.c:960
+msgid "Key not changed so no update needed.\n"
+msgstr "Chave não alterada, nenhuma actualização é necessária.\n"
+
+# help ou ajuda ???
+#: g10/keyedit.c:975
+msgid "Invalid command  (try \"help\")\n"
+msgstr "Comando inválido (tente \"help\")\n"
+
+#: g10/keyedit.c:1065
+msgid "This key has been disabled"
+msgstr "Esta chave foi desactivada"
+
+#: g10/keyedit.c:1336
+msgid "Delete this good signature? (y/N/q)"
+msgstr "Apagar esta assinatura válida? (s/N/q)"
+
+#: g10/keyedit.c:1340
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "Apagar esta assinatura inválida? (s/N/q)"
+
+#: g10/keyedit.c:1344
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "Apagar esta assinatura desconhecida? (s/N/q)"
+
+#: g10/keyedit.c:1350
+msgid "Really delete this self-signature? (y/N)"
+msgstr "Realmente remover esta auto-assinatura? (s/N)"
+
+#: g10/keyedit.c:1364
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "%d assinatura removida.\n"
+
+#: g10/keyedit.c:1365
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "%d assinaturas removidas.\n"
+
+#: g10/keyedit.c:1368
+msgid "Nothing deleted.\n"
+msgstr "Nada removido.\n"
+
+#: g10/keyedit.c:1437
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Por favor remova as selecções das chaves secretas.\n"
+
+#: g10/keyedit.c:1443
+msgid "Please select at most one secondary key.\n"
+msgstr "Por favor seleccione no máximo uma chave secundária.\n"
+
+#: g10/keyedit.c:1447
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "A modificar a data de validade para uma chave secundária.\n"
+
+#: g10/keyedit.c:1449
+msgid "Changing expiration time for the primary key.\n"
+msgstr "Modificar a data de validade para uma chave primária.\n"
+
+#: g10/keyedit.c:1490
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "Você não pode modificar a data de validade de uma chave v3\n"
+
+#: g10/keyedit.c:1506
+msgid "No corresponding signature in secret ring\n"
+msgstr "Nenhuma assinatura correspondente no porta-chaves secreto\n"
+
+#: g10/keyedit.c:1566
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
+
+#: g10/keyedit.c:1612
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Nenhuma chave secundária com índice %d\n"
+
+#: g10/keyedit.c:1710
+msgid "user ID: \""
+msgstr "ID de utilizador: \""
+
+#: g10/keyedit.c:1713
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"assinado com sua chave %08lX em %s\n"
+
+#: g10/keyedit.c:1717
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+
+#: g10/keyedit.c:1740
+msgid "You have signed these user IDs:\n"
+msgstr "Assinou estes identificadores de utilizadores:\n"
+
+#: g10/keyedit.c:1754 g10/keyedit.c:1789
+#, c-format
+msgid "   signed by %08lX at %s\n"
+msgstr "   assinado por %08lX em %s\n"
+
+#: g10/keyedit.c:1759
+#, c-format
+msgid "   revoked by %08lX at %s\n"
+msgstr "   revogado por %08lX em %s\n"
+
+#: g10/keyedit.c:1779
+msgid "You are about to revoke these signatures:\n"
+msgstr "Está prestes a revogar estas assinaturas:\n"
+
+#: g10/keyedit.c:1797
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "Realmente gerar os certificados de revogação? (s/N)"
+
+#: g10/keyedit.c:1820
+msgid "no secret key\n"
+msgstr "nenhuma chave secreta\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "a chave pública é %08lX\n"
+
+#: g10/mainproc.c:244
+msgid "public key encrypted data: good DEK\n"
+msgstr "dados encriptados com chave pública: DEK válido\n"
+
+#: g10/mainproc.c:275
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "encriptado com chave %u-bit %s, ID %08lX, criada em %s\n"
+
+#: g10/mainproc.c:285
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "encriptado com chave %s, ID %08lX\n"
+
+#: g10/mainproc.c:291
+msgid "no secret key for decryption available\n"
+msgstr "nenhuma chave secreta para desencriptação disponível\n"
+
+#: g10/mainproc.c:300
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "desencriptação de chave pública falhou: %s\n"
+
+#: g10/mainproc.c:330
+msgid "decryption okay\n"
+msgstr "desencriptação correcta\n"
+
+#: g10/mainproc.c:335
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "CUIDADO: a mensagem encriptada foi manipulada!\n"
+
+#: g10/mainproc.c:340
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "desencriptação falhou: %s\n"
+
+#: g10/mainproc.c:358
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "NOTA: o remetente solicitou \"apenas-para-seus-olhos\"\n"
+
+#: g10/mainproc.c:360
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "nome do ficheiro original='%.*s'\n"
+
+#: g10/mainproc.c:587 g10/mainproc.c:596
+msgid "WARNING: invalid notation data found\n"
+msgstr "AVISO: dados de notação inválidos encontrados\n"
+
+#: g10/mainproc.c:599
+msgid "Notation: "
+msgstr "Notação: "
+
+#: g10/mainproc.c:606
+msgid "Policy: "
+msgstr "Política: "
+
+#: g10/mainproc.c:1025
+msgid "signature verification suppressed\n"
+msgstr "verificação de assinatura suprimida\n"
+
+#: g10/mainproc.c:1031
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Assinatura feita em %.*s usando %s, ID da chave %08lX\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1057 g10/mainproc.c:1068
+msgid "BAD signature from \""
+msgstr "Assinatura INCORRECTA de \""
+
+#: g10/mainproc.c:1058 g10/mainproc.c:1069
+msgid "Good signature from \""
+msgstr "Assinatura correta de \""
+
+#: g10/mainproc.c:1060
+msgid "                aka \""
+msgstr "                   ou \""
+
+#: g10/mainproc.c:1115
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Impossível verificar assinatura: %s\n"
+
+#: g10/mainproc.c:1212
+msgid "old style (PGP 2.x) signature\n"
+msgstr "formato de assinatura antigo (PGP2.x)\n"
+
+#: g10/mainproc.c:1217
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "pacote raiz inválido detectado em proc_tree()\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "impossível desactivar core dumps: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "AVISO: O programa pode criar um ficheiro core!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Algoritmos experimentais não devem ser usados!\n"
+
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"Chaves RSA não são recomendáveis; por favor considere criar uma nova chave e "
+"usá-la no futuro\n"
+
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr ""
+"este algoritmo de criptografia não é recomendado;\n"
+"por favor use um algoritmo mais standard!\n"
+
+#: g10/parse-packet.c:113
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "impossível manipular algoritmo de chave pública %d\n"
+
+#: g10/parse-packet.c:939
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "subpacote do tipo %d tem bit crítico ligado\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"Você precisa de uma frase secreta para desbloquear a chave secreta do\n"
+"utilizador: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "chave de %u-bit/%s, ID %08lX, criada em %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (ID principal da chave %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "impossível pedir senha em modo não-interactivo\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "Digite a frase secreta: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "Repita a frase secreta: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr "dados não gravados; use a opção \"--output\" para gravá-los\n"
+
+#: g10/plaintext.c:315
+msgid "Please enter name of data file: "
+msgstr "Por favor digite o nome do ficheiro de dados: "
+
+#: g10/plaintext.c:336
+msgid "reading stdin ...\n"
+msgstr "lendo do \"stdin\" ...\n"
+
+#: g10/plaintext.c:379
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "impossível abrir dados assinados `%s'\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "destinatário anónimo; a tentar chave secreta %08lX ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "certo, nós somos o destinatário anónimo.\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "codificação antiga do DEK não suportada\n"
+
+#: g10/pubkey-enc.c:191
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "NOTA: algoritmo de cifragem %d não encontrado nas preferências\n"
+
+#: g10/seckey-cert.c:55
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "algoritmo de protecção %d não é suportado\n"
+
+#: g10/seckey-cert.c:171
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "Frase secreta inválida; por favor tente novamente ...\n"
+
+#: g10/seckey-cert.c:227
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr ""
+"AVISO: Chave fraca detectada - por favor mude a frase secreta novamente.\n"
+
+#: g10/sig-check.c:199
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "assumindo MDC incorrecto devido a um bit crítico desconhecido\n"
+
+#: g10/sig-check.c:295
+msgid ""
+"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
+msgstr ""
+"esta é uma chave ElGamal gerada pelo PGP que NÃO é segura para assinaturas!\n"
+
+#: g10/sig-check.c:303
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "a chave pública é %lu segundo mais nova que a assinatura\n"
+
+#: g10/sig-check.c:304
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "a chave pública é %lu segundos mais nova que a assinatura\n"
+
+#: g10/sig-check.c:320
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "NOTA: chave de assinatura expirou %s\n"
+
+#: g10/sig-check.c:377
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr "assumindo assinatura incorrecta devido a um bit crítico desconhecido\n"
+
+#: g10/sign.c:132
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "assinatura %s de: %s\n"
+
+#: g10/sign.c:263 g10/sign.c:575
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "impossível criar %s: %s\n"
+
+#: g10/sign.c:361
+msgid "signing:"
+msgstr "a assinar:"
+
+#: g10/sign.c:404
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "AVISO: `%s' é um ficheiro vazio\n"
+
+#: g10/textfilter.c:128
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "impossível manipular linhas de texto maiores que %d caracteres\n"
+
+#: g10/textfilter.c:197
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "linha de entrada maior que %d caracteres\n"
+
+#: g10/tdbio.c:121 g10/tdbio.c:1635
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "base de dados de confiança rec %lu: lseek falhou: %s\n"
+
+#: g10/tdbio.c:127 g10/tdbio.c:1642
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "base de dados de confiança rec %lu: escrita falhou (n=%d): %s\n"
+
+#: g10/tdbio.c:237
+msgid "trustdb transaction too large\n"
+msgstr "transação de base de dados de confiança muito grande\n"
+
+#: g10/tdbio.c:429
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: impossível aceder: %s\n"
+
+#: g10/ringedit.c:298 g10/tdbio.c:445
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
+
+#: g10/ringedit.c:304 g10/tdbio.c:448
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: directoria criada\n"
+
+#: g10/tdbio.c:452
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: diretoria inexistente!\n"
+
+#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: impossível criar: %s\n"
+
+#: g10/tdbio.c:473 g10/tdbio.c:522
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: impossível criar tranca\n"
+
+#: g10/tdbio.c:487
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: falha ao criar registo de versão: %s"
+
+#: g10/tdbio.c:491
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: base de dados de confiança inválida criada\n"
+
+#: g10/tdbio.c:494
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: base de dados de confiança criada\n"
+
+#: g10/tdbio.c:531
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: base de dados de confiança inválida\n"
+
+#: g10/tdbio.c:564
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: falha ao criar tabela de \"hash\": %s\n"
+
+#: g10/tdbio.c:572
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: erro a actualizar registo de versão: %s\n"
+
+#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
+#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: erro ao ler registo de versão: %s\n"
+
+#: g10/tdbio.c:601 g10/tdbio.c:660
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: erro ao escrever registo de versão: %s\n"
+
+#: g10/tdbio.c:1247
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "base de dados de confiança: lseek falhou: %s\n"
+
+#: g10/tdbio.c:1255
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
+
+#: g10/tdbio.c:1276
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: não é um base de dados de confiança\n"
+
+#: g10/tdbio.c:1292
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: registo de versão com recnum %lu\n"
+
+#: g10/tdbio.c:1297
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
+
+#: g10/tdbio.c:1601
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: erro ao ler registo livre: %s\n"
+
+#: g10/tdbio.c:1609
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: erro ao escrever registo de diretório: %s\n"
+
+#: g10/tdbio.c:1619
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: falha ao zerar um registo: %s\n"
+
+#: g10/tdbio.c:1649
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: falha ao anexar um registo: %s\n"
+
+#: g10/tdbio.c:1760
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr ""
+"A base de dados de confiança está danificada; por favor execute\n"
+"\"gpg --fix-trustdb\".\n"
+
+#: g10/trustdb.c:160
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "registo de confiança %lu, tipo req %d: falha na leitura: %s\n"
+
+#: g10/trustdb.c:175
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "registo de confiança %lu, tipo %d: escrita falhou: %s\n"
+
+#: g10/trustdb.c:189
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "registo de confiança %lu: remoção falhou: %s\n"
+
+#: g10/trustdb.c:203
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "base de dados de confiança: sincronização falhou: %s\n"
+
+#: g10/trustdb.c:347
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "erro lendo registo de directório para LID %lu: %s\n"
+
+#: g10/trustdb.c:354
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lid %lu: registo de directório esperado, tipo %d recebido\n"
+
+#: g10/trustdb.c:359
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "nenhuma chave primária para LID %lu\n"
+
+#: g10/trustdb.c:364
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "erro ao ler chave primária para LID %lu: %s\n"
+
+#: g10/trustdb.c:403
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: search_record falhou: %s\n"
+
+#: g10/trustdb.c:458
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "NOTA: a chave secreta %08lX NÃO está protegida.\n"
+
+#: g10/trustdb.c:466
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr "chave %08lX: chave secreta sem chave pública - ignorada\n"
+
+#: g10/trustdb.c:473
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "chave %08lX: chaves secreta e pública não são correspondentes\n"
+
+#: g10/trustdb.c:485
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "chave %08lX: impossível colocá-la na base de dados de confiança\n"
+
+#: g10/trustdb.c:491
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "chave %08lX: pedido de registo falhou\n"
+
+#: g10/trustdb.c:500
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "chave %08lX: já está na tabela de chaves confiáveis\n"
+
+#: g10/trustdb.c:503
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "chave %08lX: aceite como chave confiável.\n"
+
+#: g10/trustdb.c:511
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "enumeração de chaves secretas falhou: %s\n"
+
+#: g10/trustdb.c:877
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "chave %08lX.%lu: Ligação de subchave válida\n"
+
+#: g10/trustdb.c:883 g10/trustdb.c:918
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "chave %08lX.%lu: Ligação de subchave inválida: %s\n"
+
+#: g10/trustdb.c:895
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "chave %08lX.%lu: Revogação de chave válida\n"
+
+#: g10/trustdb.c:901
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "chave %08lX.%lu: Revogação de chave inválida: %s\n"
+
+#: g10/trustdb.c:912
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "chave %08lX.%lu: Revogação de subchave válida\n"
+
+#: g10/trustdb.c:1023
+msgid "Good self-signature"
+msgstr "Auto-assinatura válida"
+
+#: g10/trustdb.c:1033
+msgid "Invalid self-signature"
+msgstr "Auto-assinatura inválida"
+
+#: g10/trustdb.c:1060
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr ""
+"Revogação válida de ID de utilizador ignorada devido a nova auto-assinatura"
+
+#: g10/trustdb.c:1066
+msgid "Valid user ID revocation"
+msgstr "Revogação de ID de utilizador válida"
+
+#: g10/trustdb.c:1071
+msgid "Invalid user ID revocation"
+msgstr "Revogação de ID de utilizador inválida"
+
+#: g10/trustdb.c:1112
+msgid "Valid certificate revocation"
+msgstr "Certificado de revogação válido"
+
+#: g10/trustdb.c:1113
+msgid "Good certificate"
+msgstr "Certificado correcto"
+
+#: g10/trustdb.c:1134
+msgid "Invalid certificate revocation"
+msgstr "Certificado de revogação inválido"
+
+#: g10/trustdb.c:1135
+msgid "Invalid certificate"
+msgstr "Certificado inválido"
+
+#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "registo de assinatura %lu[%d] aponta para registo errado.\n"
+
+#: g10/trustdb.c:1208
+msgid "duplicated certificate - deleted"
+msgstr "certificado duplicado - removido"
+
+#: g10/trustdb.c:1514
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir falhou: %s\n"
+
+#: g10/trustdb.c:1636
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lid ?: inserção falhou: %s\n"
+
+#: g10/trustdb.c:1641
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lid %lu: inserção falhou: %s\n"
+
+#: g10/trustdb.c:1647
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lid %lu: inserido\n"
+
+#: g10/trustdb.c:1652
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "erro ao ler registo de directório: %s\n"
+
+#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu chaves processadas\n"
+
+#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\t%lu chaves com erros\n"
+
+#: g10/trustdb.c:1664
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "\t%lu chaves inseridas\n"
+
+#: g10/trustdb.c:1667
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "enumeração de blocos de chaves falhou: %s\n"
+
+#: g10/trustdb.c:1705
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lid %lu: registo de directório sem chave - ignorado\n"
+
+#: g10/trustdb.c:1716
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "\t%lu chaves ignoradas\n"
+
+#: g10/trustdb.c:1720
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "\t%lu chaves actualizadas\n"
+
+#: g10/trustdb.c:2057
+msgid "Ooops, no keys\n"
+msgstr "Ooops, nenhuma chave\n"
+
+#: g10/trustdb.c:2061
+msgid "Ooops, no user IDs\n"
+msgstr "Ooops, nenhum ID de utilizador\n"
+
+#: g10/trustdb.c:2218
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: busca de registo de directório falhou: %s\n"
+
+#: g10/trustdb.c:2227
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "chave %08lX: inserção de registo de confiança falhou: %s\n"
+
+#: g10/trustdb.c:2231
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "chave %08lX.%lu: inserida na base de dados de confiança\n"
+
+#: g10/trustdb.c:2239
+#, c-format
+msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+msgstr ""
+"chave %08lX.%lu: criada no futuro (viagem no tempo ou problema no relogio)\n"
+
+#: g10/trustdb.c:2248
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "chave %08lX.%lu: expirou em %s\n"
+
+#: g10/trustdb.c:2256
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "chave %08lX.%lu: verificação de confiança falhou: %s\n"
+
+#: g10/trustdb.c:2362
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "utilizador `%s' não encontrado: %s\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "problemas na procura de `%s' na base de dados de confiança: %s\n"
+
+#: g10/trustdb.c:2367
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr ""
+"utilizador `%s' não encontrado na base de dados de confiança - a inserir\n"
+
+#: g10/trustdb.c:2370
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "falha ao colocar `%s' na base de dados de confiança: %s\n"
+
+#: g10/trustdb.c:2556 g10/trustdb.c:2586
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "AVISO: ainda é impossível manipular registos de preferências longos\n"
+
+#: g10/ringedit.c:318
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: impossível criar porta-chaves: %s\n"
+
+#: g10/ringedit.c:335 g10/ringedit.c:1353
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: porta-chaves criado\n"
+
+#: g10/ringedit.c:1530
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "AVISO: existem 2 ficheiros com informações confidenciais.\n"
+
+#: g10/ringedit.c:1531
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s é o não modificado\n"
+
+#: g10/ringedit.c:1532
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s é o novo\n"
+
+#: g10/ringedit.c:1533
+msgid "Please fix this possible security flaw\n"
+msgstr "Por favor conserte esta possível falha de segurança\n"
+
+#: g10/skclist.c:88 g10/skclist.c:125
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"a chave não está marcada insegura - impossível usá-la com o RNG falso!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "ignorado `%s': %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"ignorado `%s': esta é uma chave ElGamal gerada pelo PGP que não é segura "
+"para assinaturas!\n"
+
+#: g10/openfile.c:65
+#, c-format
+msgid "File `%s' exists. "
+msgstr "Arquivo `%s' já existe. "
+
+#: g10/openfile.c:67
+msgid "Overwrite (y/N)? "
+msgstr "Escrever por cima (s/N)? "
+
+#: g10/openfile.c:97
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: sufixo desconhecido\n"
+
+#: g10/openfile.c:119
+msgid "Enter new filename"
+msgstr "Digite novo nome de ficheiro"
+
+#: g10/openfile.c:160
+msgid "writing to stdout\n"
+msgstr "a escrever em \"stdout\"\n"
+
+#: g10/openfile.c:219
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "a assumir dados assinados em `%s'\n"
+
+#: g10/openfile.c:269
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: novo ficheiro de opções criado\n"
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "dados encriptados com %s\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "encriptado com algoritmo desconhecido %d\n"
+
+#: g10/encr-data.c:85
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr ""
+"AVISO: A mensagem foi encriptada com uma chave fraca na criptografia\n"
+"simétrica.\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "chave fraca criada - tentando novamente\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr ""
+"impossível evitar chave fraca para criptografia simétrica;\n"
+"tentei %d vezes!\n"
+
+#: g10/delkey.c:93
+msgid "there is a secret key for this public key!\n"
+msgstr "há uma chave secreta para esta chave pública!\n"
+
+#: g10/delkey.c:95
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr "utilize a opção \"--delete-secret-key\" para a apagar primeiro.\n"
+
+#: g10/delkey.c:111
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "impossível fazer isso em modo não-interactivo sem utilizar \"--yes\"\n"
+
+#: g10/delkey.c:133
+msgid "Delete this key from the keyring? "
+msgstr "Remover esta chave do porta-chaves?"
+
+#: g10/delkey.c:141
+msgid "This is a secret key! - really delete? "
+msgstr "Esta chave é secreta! - apagar de qualquer modo? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"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."
+msgstr ""
+"Você decide que valor usar aqui; este valor nunca será exportado para\n"
+"terceiros. Precisamos dele implementar a rede de confiança, que não tem\n"
+"nada a ver com a rede de certificados (implicitamente criada)."
+
+#: g10/helptext.c:53
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr "Se você quiser usar esta chave revogada assim mesmo, responda \"sim\"."
+
+#: g10/helptext.c:57
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr ""
+"Se você quiser usar esta chave não confiável assim mesmo, responda \"sim\"."
+
+#: g10/helptext.c:61
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr ""
+"Digite o ID de utilizador do destinatário para quem quer enviar a\n"
+"mensagem."
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures.  This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"Seleccione o algoritmo a ser usado.\n"
+"\n"
+"DSA (ou DSS) é o algoritmo de assinatura digital que pode ser usado apenas\n"
+"para assinaturas. Este é o algoritmo recomendado porque a verificação de\n"
+"assinaturas DSA é muito mais rápida que a verificação de ElGamal.\n"
+"\n"
+"ElGamal é um algoritmo que pode ser usado para assinatura e encriptação.\n"
+"O OpenPGP distingue dois tipos deste algoritmo: um apenas para encriptação\n"
+"e outro para assinatura+encriptação; na verdade são iguais, mas alguns\n"
+"parâmetros precisam ser escolhidos de modo especial para criar uma chave\n"
+"segura para assinatura: este programa faz isso, mas algumas outras\n"
+"implementações do OpenPGP não vão necessariamente entender o tipo\n"
+"assinatura+encriptação.\n"
+"\n"
+"A  chave primária precisa sempre ser uma chave capaz de fazer assinaturas;\n"
+"este é o motivo pelo qual a chave ElGamal apenas para encriptação não está\n"
+"disponível neste menu."
+
+#: g10/helptext.c:85
+msgid ""
+"Although these keys are defined in RFC2440 they are not suggested\n"
+"because they are not supported by all programs and signatures created\n"
+"with them are quite large and very slow to verify."
+msgstr ""
+"Apesar de estas chaves estarem definidas no RFC2440, elas não são "
+"recomendadas\n"
+"porque não são suportadas por todos os programas e assinaturas criadas com\n"
+"elas são grandes e sua verificação é lenta."
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "Insira o tamanho da chave"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "Responda \"sim\" ou \"não\""
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+msgstr ""
+"Digite o valor necessário conforme pedido.\n"
+"É possível digitar uma data ISO (AAAA-MM-DD) mas você não terá uma boa\n"
+"reacção a erros - o sistema tentará interpretar o valor dado como um "
+"intervalo."
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "Digite o nome do possuidor da chave"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "por favor digite um endereço de email (opcional mas recomendado)"
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "Por favor digite um comentário (opcional)"
+
+#: g10/helptext.c:132
+msgid ""
+"N  to change the name.\n"
+"C  to change the comment.\n"
+"E  to change the email address.\n"
+"O  to continue with key generation.\n"
+"Q  to to quit the key generation."
+msgstr ""
+"N  para mudar o nome.\n"
+"C  para mudar o comentário.\n"
+"E  para mudar o endereço de correio eletrônico.\n"
+"O  para continuar a geração da chave.\n"
+"S  para interromper a geração da chave."
+
+#: g10/helptext.c:141
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr "Responda \"sim\" (ou apenas \"s\") se quiser gerar a subchave."
+
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Responda \"sim\" se quiser assinar TODOS os IDs de utilizador"
+
+#: g10/helptext.c:168
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"Responda \"sim\" se quiser realmente remover este ID de utilizador.\n"
+"Todos os certificados também serão perdidos!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "Responda \"sim\" se quiser remover a subchave"
+
+#: g10/helptext.c:178
+msgid ""
+"This is a valid signature on the key; you normally don't want\n"
+"to delete this signature because it may be important to establish a\n"
+"trust connection to the key or another key certified by this key."
+msgstr ""
+"Esta é uma assinatura válida na chave; normalmente não é desejável\n"
+"remover esta assinatura porque ela pode ser importante para estabelecer\n"
+"uma conexão de confiança à chave ou a outra chave certificada por esta."
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key.  You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"Esta assinatura não pode ser verificada porque você não tem a chave\n"
+"correspondente. Você deve adiar sua remoção até saber que chave foi usada\n"
+"porque a chave desta assinatura pode estabelecer uma conexão de confiança\n"
+"através de outra chave já certificada."
+
+#: g10/helptext.c:189
+msgid ""
+"The signature is not valid.  It does make sense to remove it from\n"
+"your keyring."
+msgstr "A assinatura não é válida. Faz sentido removê-la do seu porta-chaves."
+
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature.  Actually\n"
+"GnuPG might not be able to use this key anymore.  So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"Esta é uma assinatura que liga o ID de utilizador à chave. Geralmente\n"
+"não é uma boa idéia remover tal assinatura. É possível que o GnuPG\n"
+"não consiga mais usar esta chave. Faça isto apenas se por alguma\n"
+"razão esta auto-assinatura não for válida e há uma segunda disponível."
+
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+"  Blurb, blurb,.... "
+msgstr "Por favor digite a FRASE secreta"
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr "Por favor repita a frase secreta, para ter certeza do que digitou."
+
+#: g10/helptext.c:213
+msgid "Give the name of the file to which the signature applies"
+msgstr "Dê o nome para o ficheiro ao qual a assinatura se aplica"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Responda \"sim\" se quiser escrever por cima do ficheiro"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Por favor digite um novo nome de ficheiro. Se você apenas carregar em RETURN\n"
+"o ficheiro por omissão (que é mostrado entre parênteses) será utilizado."
+
+#: g10/helptext.c:237
+msgid "No help available"
+msgstr "Nenhuma ajuda disponível"
+
+#: g10/helptext.c:245
+#, c-format
+msgid "No help available for `%s'"
+msgstr "Nenhuma ajuda disponível para `%s'"
index 439843d..2dc1ba3 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -3500,7 +3500,7 @@ msgid "Please repeat the last passphrase, so you are sure what you typed in."
 msgstr ""
 
 #: g10/helptext.c:213
-msgid "Give the name fo the file to which the signature applies"
+msgid "Give the name of the file to which the signature applies"
 msgstr ""
 
 #: g10/helptext.c:218
index d26cae2..ce00b36 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * gnupg.spec: Add Portuguese description
+
 Thu Sep  2 16:40:55 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 0edc49a..d5b6610 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * simple-gettext.c: New.
+
 Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 75f9e8c..95096c7 100644 (file)
@@ -8,7 +8,7 @@ noinst_LTLIBRARIES = libutil.la
 libutil_la_LDFLAGS =
 libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c  \
                     ttyio.c  argparse.c memory.c secmem.c errors.c iobuf.c \
-                    dotlock.c http.c
+                    dotlock.c http.c simple-gettext.c
 
 
 http-test:  http.c
index fcd44ff..c6f405f 100644 (file)
@@ -844,7 +844,7 @@ show_version()
     /* additional program info */
     for(i=30; i < 40; i++ )
        if( (s=strusage(i)) )
-           fputs(s, stdout);
+           fputs( (const byte*)s, stdout);
     fflush(stdout);
 }
 
diff --git a/util/simple-gettext.c b/util/simple-gettext.c
new file mode 100644 (file)
index 0000000..bf25e8b
--- /dev/null
@@ -0,0 +1,468 @@
+/* simple-gettext.c  - a simplified version of gettext.
+ * Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+ *
+ * This file is part of GnuPG.
+ *
+ * GnuPG is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuPG is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/* This is a simplified version of gettext written by Ulrich Drepper.
+ * It is used for the Win32 version of GnuPG becuase all the overhead
+ * of gettext is not needed and we have to do some special Win32 stuff.
+ * I decided that this is far easier than to tweak gettext for the special
+ * cases (I tried it but it is a lot of code). wk 15.09.99
+ */
+
+#include <config.h>
+#ifdef USE_SIMPLE_GETTEXT
+#ifndef __MINGW32__
+  #error This file can only be used with MinGW32
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <windows.h>
+#include "types.h"
+#include "util.h"
+
+
+/* The magic number of the GNU message catalog format. */
+#define MAGIC        0x950412de
+#define MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format.  */
+#define MO_REVISION_NUMBER 0
+
+
+/* Header for binary .mo file format.  */
+struct mo_file_header
+{
+  /* The magic number. */
+  u32 magic;
+  /* The revision number of the file format.  */
+  u32 revision;
+  /* The number of strings pairs.  */
+  u32 nstrings;
+  /* Offset of table with start offsets of original strings.  */
+  u32 orig_tab_offset;
+  /* Offset of table with start offsets of translation strings.  */
+  u32 trans_tab_offset;
+  /* Size of hashing table.  */
+  u32 hash_tab_size;
+  /* Offset of first hashing entry.  */
+  u32 hash_tab_offset;
+};
+
+struct string_desc
+{
+  /* Length of addressed string.  */
+  u32 length;
+  /* Offset of string in file. */
+  u32 offset;
+};
+
+
+
+struct loaded_domain
+{
+  char *data;
+  int must_swap;
+  u32 nstrings;
+  char *mapped;
+  struct string_desc *orig_tab;
+  struct string_desc *trans_tab;
+  u32 hash_size;
+  u32 *hash_tab;
+};
+
+
+static struct loaded_domain *the_domain;
+
+static __inline__ u32
+do_swap_u32( u32 i )
+{
+  return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+
+#define SWAPIT(flag, data) ((flag) ? do_swap_u32(data) : (data) )
+
+
+/* We assume to have `unsigned long int' value with at least 32 bits.  */
+#define HASHWORDBITS 32
+
+/* The so called `hashpjw' function by P.J. Weinberger
+   [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+   1986, 1987 Bell Telephone Laboratories, Inc.]  */
+
+static __inline__ ulong
+hash_string( const char *str_param )
+{
+    unsigned long int hval, g;
+    const char *str = str_param;
+
+    hval = 0;
+    while (*str != '\0')
+    {
+       hval <<= 4;
+       hval += (unsigned long int) *str++;
+       g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
+       if (g != 0)
+       {
+         hval ^= g >> (HASHWORDBITS - 8);
+         hval ^= g;
+       }
+    }
+    return hval;
+}
+
+
+static struct loaded_domain *
+load_domain( const char *filename )
+{
+    FILE *fp;
+    size_t size;
+    struct stat st;
+    struct mo_file_header *data = NULL;
+    struct loaded_domain *domain = NULL;
+    size_t to_read;
+    char *read_ptr;
+
+    fp = fopen( filename, "rb" );
+    if( !fp )
+       return NULL; /* can't open the file */
+    /* we must know about the size of the file */
+    if( fstat( fileno(fp ), &st )
+       || (size = (size_t)st.st_size) != st.st_size
+       || size < sizeof (struct mo_file_header) ) {
+       fclose( fp );
+       return NULL;
+    }
+
+    data = malloc( size );
+    if( !data ) {
+       fclose( fp );
+       return NULL; /* out of memory */
+    }
+
+    to_read = size;
+    read_ptr = (char *) data;
+    do {
+       long int nb = fread( read_ptr, 1, to_read, fp );
+       if( nb < to_read ) {
+           fclose (fp);
+           free(data);
+           return NULL; /* read error */
+       }
+       read_ptr += nb;
+       to_read -= nb;
+    } while( to_read > 0 );
+    fclose (fp);
+
+    /* Using the magic number we can test whether it really is a message
+     * catalog file.  */
+    if( data->magic != MAGIC && data->magic != MAGIC_SWAPPED ) {
+       /* The magic number is wrong: not a message catalog file.  */
+       free( data );
+       return NULL;
+    }
+
+    domain = calloc( 1, sizeof *domain );
+    if( !domain )  {
+       free( data );
+       return NULL;
+    }
+    domain->data = (char *) data;
+    domain->must_swap = data->magic != MAGIC;
+
+    /* Fill in the information about the available tables.  */
+    switch( SWAPIT(domain->must_swap, data->revision) ) {
+      case 0:
+       domain->nstrings = SWAPIT(domain->must_swap, data->nstrings);
+       domain->orig_tab = (struct string_desc *)
+         ((char *) data + SWAPIT(domain->must_swap, data->orig_tab_offset));
+       domain->trans_tab = (struct string_desc *)
+         ((char *) data + SWAPIT(domain->must_swap, data->trans_tab_offset));
+       domain->hash_size = SWAPIT(domain->must_swap, data->hash_tab_size);
+       domain->hash_tab = (u32 *)
+         ((char *) data + SWAPIT(domain->must_swap, data->hash_tab_offset));
+      break;
+
+      default: /* This is an invalid revision. */
+       free( data );
+       free( domain );
+       return NULL;
+    }
+
+    /* allocate an array to keep track of code page mappings */
+    domain->mapped = calloc( 1, domain->nstrings );
+    if( !domain->mapped ) {
+       free( data );
+       free( domain );
+       return NULL;
+    }
+
+    return domain;
+}
+
+
+/****************
+ * Set the file used for translations. Pass a NULL to disable
+ * translation.  A new filename may be set at anytime.
+ * WARNING: After changing the filename you shoudl not access any data
+ *         retrieved by gettext().
+ */
+int
+set_gettext_file( const char *filename )
+{
+    struct loaded_domain *domain = NULL;
+
+    if( filename && *filename ) {
+       if( filename[0] == '/'
+          #ifdef HAVE_DRIVE_LETTERS
+           || ( isalpha(filename[0])
+                && filename[1] == ':'
+                && (filename[2] == '/' || filename[2] == '\\') )
+          #endif
+          ) {
+           /* absolute path - use it as is */
+           log_info("trying `%s'\n", filename );
+           domain = load_domain( filename );
+       }
+       else { /* relative path - append ".mo" and get DIR from env */
+           char *buf = NULL;
+           const char *s;
+
+           s = getenv("MINGW32_NLS_DIR");
+           if( s && (buf=malloc(strlen(s)+strlen(filename)+1+3+1)) ) {
+               strcpy(stpcpy(stpcpy(stpcpy( buf, s),"/"), filename),".mo");
+               domain = load_domain( buf );
+               free(buf);
+           }
+       }
+       if( !domain )
+           return -1;
+    }
+
+    if( the_domain ) {
+       free( the_domain->data );
+       free( the_domain->mapped );
+       free( the_domain );
+       the_domain = NULL;
+    }
+    the_domain = domain;
+    return NULL;
+}
+
+
+static const char*
+get_string( struct loaded_domain *domain, u32 idx )
+{
+    char *p = domain->data + SWAPIT(domain->must_swap,
+                                   domain->trans_tab[idx].offset);
+    if( !domain->mapped[idx] ) {
+       byte *pp;
+
+       domain->mapped[idx] = 1;
+       /* we assume Latin1 -> CP 850 for now */
+       for( pp=p; *pp; pp++ ) {
+           if( (*pp & 0x80) ) {
+               switch( *pp ) {
+                 /* ISO-8859-1 to IBM-CP-850 */
+                 case 0xa0: *pp = '\xff' ; break;  /* nobreakspace */
+                 case 0xa1: *pp = '\xad' ; break;  /* exclamdown */
+                 case 0xa2: *pp = '\xbd' ; break;  /* cent */
+                 case 0xa3: *pp = '\x9c' ; break;  /* sterling */
+                 case 0xa4: *pp = '\xcf' ; break;  /* currency */
+                 case 0xa5: *pp = '\xbe' ; break;  /* yen */
+                 case 0xa6: *pp = '\xdd' ; break;  /* brokenbar */
+                 case 0xa7: *pp = '\xf5' ; break;  /* section */
+                 case 0xa8: *pp = '\xf9' ; break;  /* diaeresis */
+                 case 0xa9: *pp = '\xb8' ; break;  /* copyright */
+                 case 0xaa: *pp = '\xa6' ; break;  /* ordfeminine */
+                 case 0xab: *pp = '\xae' ; break;  /* guillemotleft */
+                 case 0xac: *pp = '\xaa' ; break;  /* notsign */
+                 case 0xad: *pp = '\xf0' ; break;  /* hyphen */
+                 case 0xae: *pp = '\xa9' ; break;  /* registered */
+                 case 0xaf: *pp = '\xee' ; break;  /* macron */
+                 case 0xb0: *pp = '\xf8' ; break;  /* degree */
+                 case 0xb1: *pp = '\xf1' ; break;  /* plusminus */
+                 case 0xb2: *pp = '\xfd' ; break;  /* twosuperior */
+                 case 0xb3: *pp = '\xfc' ; break;  /* threesuperior */
+                 case 0xb4: *pp = '\xef' ; break;  /* acute */
+                 case 0xb5: *pp = '\xe6' ; break;  /* mu */
+                 case 0xb6: *pp = '\xf4' ; break;  /* paragraph */
+                 case 0xb7: *pp = '\xfa' ; break;  /* periodcentered */
+                 case 0xb8: *pp = '\xf7' ; break;  /* cedilla */
+                 case 0xb9: *pp = '\xfb' ; break;  /* onesuperior */
+                 case 0xba: *pp = '\xa7' ; break;  /* masculine */
+                 case 0xbb: *pp = '\xaf' ; break;  /* guillemotright */
+                 case 0xbc: *pp = '\xac' ; break;  /* onequarter */
+                 case 0xbd: *pp = '\xab' ; break;  /* onehalf */
+                 case 0xbe: *pp = '\xf3' ; break;  /* threequarters */
+                 case 0xbf: *pp = '\xa8' ; break;  /* questiondown */
+                 case 0xc0: *pp = '\xb7' ; break;  /* Agrave */
+                 case 0xc1: *pp = '\xb5' ; break;  /* Aacute */
+                 case 0xc2: *pp = '\xb6' ; break;  /* Acircumflex */
+                 case 0xc3: *pp = '\xc7' ; break;  /* Atilde */
+                 case 0xc4: *pp = '\x8e' ; break;  /* Adiaeresis */
+                 case 0xc5: *pp = '\x8f' ; break;  /* Aring */
+                 case 0xc6: *pp = '\x92' ; break;  /* AE */
+                 case 0xc7: *pp = '\x80' ; break;  /* Ccedilla */
+                 case 0xc8: *pp = '\xd4' ; break;  /* Egrave */
+                 case 0xc9: *pp = '\x90' ; break;  /* Eacute */
+                 case 0xca: *pp = '\xd2' ; break;  /* Ecircumflex */
+                 case 0xcb: *pp = '\xd3' ; break;  /* Ediaeresis */
+                 case 0xcc: *pp = '\xde' ; break;  /* Igrave */
+                 case 0xcd: *pp = '\xd6' ; break;  /* Iacute */
+                 case 0xce: *pp = '\xd7' ; break;  /* Icircumflex */
+                 case 0xcf: *pp = '\xd8' ; break;  /* Idiaeresis */
+                 case 0xd0: *pp = '\xd1' ; break;  /* Eth */
+                 case 0xd1: *pp = '\xa5' ; break;  /* Ntilde */
+                 case 0xd2: *pp = '\xe3' ; break;  /* Ograve */
+                 case 0xd3: *pp = '\xe0' ; break;  /* Oacute */
+                 case 0xd4: *pp = '\xe2' ; break;  /* Ocircumflex */
+                 case 0xd5: *pp = '\xe5' ; break;  /* Otilde */
+                 case 0xd6: *pp = '\x99' ; break;  /* Odiaeresis */
+                 case 0xd7: *pp = '\x9e' ; break;  /* multiply */
+                 case 0xd8: *pp = '\x9d' ; break;  /* Ooblique */
+                 case 0xd9: *pp = '\xeb' ; break;  /* Ugrave */
+                 case 0xda: *pp = '\xe9' ; break;  /* Uacute */
+                 case 0xdb: *pp = '\xea' ; break;  /* Ucircumflex */
+                 case 0xdc: *pp = '\x9a' ; break;  /* Udiaeresis */
+                 case 0xdd: *pp = '\xed' ; break;  /* Yacute */
+                 case 0xde: *pp = '\xe8' ; break;  /* Thorn */
+                 case 0xdf: *pp = '\xe1' ; break;  /* ssharp */
+                 case 0xe0: *pp = '\x85' ; break;  /* agrave */
+                 case 0xe1: *pp = '\xa0' ; break;  /* aacute */
+                 case 0xe2: *pp = '\x83' ; break;  /* acircumflex */
+                 case 0xe3: *pp = '\xc6' ; break;  /* atilde */
+                 case 0xe4: *pp = '\x84' ; break;  /* adiaeresis */
+                 case 0xe5: *pp = '\x86' ; break;  /* aring */
+                 case 0xe6: *pp = '\x91' ; break;  /* ae */
+                 case 0xe7: *pp = '\x87' ; break;  /* ccedilla */
+                 case 0xe8: *pp = '\x8a' ; break;  /* egrave */
+                 case 0xe9: *pp = '\x82' ; break;  /* eacute */
+                 case 0xea: *pp = '\x88' ; break;  /* ecircumflex */
+                 case 0xeb: *pp = '\x89' ; break;  /* ediaeresis */
+                 case 0xec: *pp = '\x8d' ; break;  /* igrave */
+                 case 0xed: *pp = '\xa1' ; break;  /* iacute */
+                 case 0xee: *pp = '\x8c' ; break;  /* icircumflex */
+                 case 0xef: *pp = '\x8b' ; break;  /* idiaeresis */
+                 case 0xf0: *pp = '\xd0' ; break;  /* eth */
+                 case 0xf1: *pp = '\xa4' ; break;  /* ntilde */
+                 case 0xf2: *pp = '\x95' ; break;  /* ograve */
+                 case 0xf3: *pp = '\xa2' ; break;  /* oacute */
+                 case 0xf4: *pp = '\x93' ; break;  /* ocircumflex */
+                 case 0xf5: *pp = '\xe4' ; break;  /* otilde */
+                 case 0xf6: *pp = '\x94' ; break;  /* odiaeresis */
+                 case 0xf7: *pp = '\xf6' ; break;  /* division */
+                 case 0xf8: *pp = '\x9b' ; break;  /* oslash */
+                 case 0xf9: *pp = '\x97' ; break;  /* ugrave */
+                 case 0xfa: *pp = '\xa3' ; break;  /* uacute */
+                 case 0xfb: *pp = '\x96' ; break;  /* ucircumflex */
+                 case 0xfc: *pp = '\x81' ; break;  /* udiaeresis */
+                 case 0xfd: *pp = '\xec' ; break;  /* yacute */
+                 case 0xfe: *pp = '\xe7' ; break;  /* thorn */
+                 case 0xff: *pp = '\x98' ; break;  /* ydiaeresis */
+                 default  :  break;
+               }
+           }
+       }
+
+    }
+    return (const char*)p;
+}
+
+
+
+const char *
+gettext( const char *msgid )
+{
+    struct loaded_domain *domain;
+    size_t act = 0;
+    size_t top, bottom;
+
+    if( !(domain = the_domain) )
+       goto not_found;
+
+    /* Locate the MSGID and its translation.  */
+    if( domain->hash_size > 2 && domain->hash_tab ) {
+       /* Use the hashing table.  */
+       u32 len = strlen (msgid);
+       u32 hash_val = hash_string (msgid);
+       u32 idx = hash_val % domain->hash_size;
+       u32 incr = 1 + (hash_val % (domain->hash_size - 2));
+       u32 nstr = SWAPIT (domain->must_swap, domain->hash_tab[idx]);
+
+       if ( !nstr ) /* Hash table entry is empty.  */
+           goto not_found;
+
+       if( SWAPIT(domain->must_swap,
+                   domain->orig_tab[nstr - 1].length) == len
+           && !strcmp( msgid,
+                      domain->data + SWAPIT(domain->must_swap,
+                                   domain->orig_tab[nstr - 1].offset)) )
+           return get_string( domain, nstr - 1 );
+
+       for(;;) {
+           if (idx >= domain->hash_size - incr)
+               idx -= domain->hash_size - incr;
+           else
+               idx += incr;
+
+           nstr = SWAPIT(domain->must_swap, domain->hash_tab[idx]);
+           if( !nstr )
+               goto not_found; /* Hash table entry is empty.  */
+
+           if ( SWAPIT(domain->must_swap,
+                               domain->orig_tab[nstr - 1].length) == len
+                && !strcmp (msgid,
+                        domain->data + SWAPIT(domain->must_swap,
+                                          domain->orig_tab[nstr - 1].offset)))
+               return get_string( domain, nstr-1 );
+       }
+       /* NOTREACHED */
+    }
+
+    /* Now we try the default method:  binary search in the sorted
+       array of messages.  */
+    bottom = 0;
+    top = domain->nstrings;
+    while( bottom < top ) {
+       int cmp_val;
+
+       act = (bottom + top) / 2;
+       cmp_val = strcmp(msgid, domain->data
+                              + SWAPIT(domain->must_swap,
+                                       domain->orig_tab[act].offset));
+       if (cmp_val < 0)
+           top = act;
+       else if (cmp_val > 0)
+           bottom = act + 1;
+       else
+           return get_string( domain, act );
+    }
+
+  not_found:
+    return msgid;
+}
+
+
+#endif /* USE_SIMPLE_GETTEXT */
index 74f6ce0..6c1a505 100644 (file)
@@ -107,6 +107,23 @@ init_ttyfp(void)
     SetConsoleMode(con.in, DEF_INPMODE );
     SetConsoleMode(con.out, DEF_OUTMODE );
 
+#warning DEBUG CODE
+    {
+       unsigned int cp1, cp2;
+
+       cp1 = GetConsoleCP();
+       cp2 = GetConsoleOutputCP();
+
+       log_info("InputCP=%u  OutputCP=%u\n", cp1, cp2 );
+
+       if( !SetConsoleOutputCP( 1252 ) )
+          log_info("SetConsoleOutputCP failed: %d\n", (int)GetLastError() );
+
+       cp1 = GetConsoleCP();
+       cp2 = GetConsoleOutputCP();
+       log_info("InputCP=%u  OutputCP=%u after switch1\n", cp1, cp2 );
+
+    }
   #elif defined(__EMX__)
     ttyfp = stdout; /* Fixme: replace by the real functions: see wklib */
   #else