ezmlm-web interface:

* move gnupg key generation process into the background if possible
* declare non-configurable variables _after_ reading the configuration
  file, thus preventing them from being accidentaly "configured"
This commit is contained in:
lars 2008-10-15 01:05:48 +00:00
parent 0afddf2487
commit 5b98b18ff9
20 changed files with 278 additions and 35 deletions

View file

@ -33,6 +33,7 @@ use MIME::QuotedPrint;
# optional modules - they will be loaded later if they are available # optional modules - they will be loaded later if they are available
#Encode #Encode
#POSIX
#Mail::Ezmlm::GpgEzmlm #Mail::Ezmlm::GpgEzmlm
#Mail::Ezmlm::GpgKeyRing #Mail::Ezmlm::GpgKeyRing
#Mail::Address OR Email::Address #Mail::Address OR Email::Address
@ -70,7 +71,7 @@ $UID = $EUID;
$GID = $EGID; $GID = $EGID;
my $VERSION; my $VERSION;
$VERSION = '3.3~rc1'; $VERSION = '3.3.1';
my $q = new CGI; my $q = new CGI;
$q->import_names('Q'); $q->import_names('Q');
@ -106,23 +107,12 @@ use vars qw[$DEFAULT_INTERFACE_TYPE];
use vars qw[$ENCRYPTION_SUPPORT $GPG_KEYRING_DEFAULT_LOCATION]; use vars qw[$ENCRYPTION_SUPPORT $GPG_KEYRING_DEFAULT_LOCATION];
# settings for multi-domain setups # settings for multi-domain setups
use vars qw[%DOMAINS $CURRENT_DOMAIN]; use vars qw[%DOMAINS $CURRENT_DOMAIN];
# cached data
use vars qw[%CACHED_DATA];
# available features
use vars qw[%FEATURES];
# some deprecated configuration settings - they have to be registered # some deprecated configuration settings - they have to be registered
# otherwise old configuration files would break # otherwise old configuration files would break
use vars qw[$HTML_CSS_FILE]; # replaced by HTML_CSS_COMMON since v3.2 use vars qw[$HTML_CSS_FILE]; # replaced by HTML_CSS_COMMON since v3.2
# "pagedata" contains the hdf tree for clearsilver
# "pagename" refers to the template file that should be used
# "ui_template" is one of "basic", "normal" and "expert"
use vars qw[$pagedata $pagename];
use vars qw[$error $customError $warning $customWarning $success];
use vars qw[$ui_template $LOGIN_NAME];
# Get user configuration stuff # Get user configuration stuff
my $config_file; my $config_file;
if (defined($opt_C)) { if (defined($opt_C)) {
@ -148,6 +138,22 @@ unless (my $return = do $config_file) {
} }
# define some more variables, that may not be manipulated via the config
# file
# "pagedata" contains the hdf tree for clearsilver
# "pagename" refers to the template file that should be used
# "ui_template" is one of "basic", "normal" and "expert"
use vars qw[$pagedata $pagename];
use vars qw[$error $customError $warning $customWarning $success];
use vars qw[$ui_template $LOGIN_NAME];
use vars qw[$posix_enabled $child_return];
# cached data
use vars qw[%CACHED_DATA];
# available features
use vars qw[%FEATURES];
####### validate configuration and apply some default settings ########## ####### validate configuration and apply some default settings ##########
# do we support encrypted mailing lists an keyring management? # do we support encrypted mailing lists an keyring management?
@ -287,6 +293,9 @@ unless (defined($MAIL_ADDRESS_PREFIX)) {
# get the current login name advertised to the webserver (if it is defined) # get the current login name advertised to the webserver (if it is defined)
$LOGIN_NAME = lc($ENV{'REMOTE_USER'}); $LOGIN_NAME = lc($ENV{'REMOTE_USER'});
# check if the POSIX module is available
$posix_enabled = &safely_import_module("POSIX");
###################### process a request ######################## ###################### process a request ########################
@ -493,7 +502,10 @@ if (defined($action) && ($action eq 'show_mime_examples')) {
if (($subset =~ /^[\w]*$/) if (($subset =~ /^[\w]*$/)
&& (-e "$TEMPLATE_DIR/gnupg_$subset" . ".cs")) { && (-e "$TEMPLATE_DIR/gnupg_$subset" . ".cs")) {
if ($action eq 'gnupg_do') { if ($action eq 'gnupg_do') {
$success = 'UpdateGnupg' if (&manage_gnupg_keys($list)); if (&manage_gnupg_keys($list)) {
# some functions may set 'success' on their own
$success = 'UpdateGnupg' unless $success;
}
} else { } else {
# warnings are defined in the respective subs # warnings are defined in the respective subs
$pagename = 'gnupg_' . $subset; $pagename = 'gnupg_' . $subset;
@ -2104,10 +2116,21 @@ sub gnupg_import_key {
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# cleanup child processes, that are finished
sub reap_child {
# we may not overwrite the current error setting
local $!;
wait();
$child_return = $?;
}
# ------------------------------------------------------------------------
sub gnupg_generate_key { sub gnupg_generate_key {
my $list = shift; my $list = shift;
my ($keyring, $key_name, $key_comment, $key_size, $key_expires); my ($keyring, $key_name, $key_comment, $key_size, $key_expires);
my ($child_pid);
$keyring = get_keyring($list); $keyring = get_keyring($list);
@ -2150,13 +2173,68 @@ sub gnupg_generate_key {
return (1==0); return (1==0);
} }
if ($keyring->generate_private_key($key_name, $key_comment, # do the key generation - preferably in the background
&get_listaddress($list), $key_size, $key_expires)) { if ($posix_enabled) {
$pagename = 'gnupg_secret'; # we can try to put the key generation into the background
return (0==0); $child_return = 0;
# we need to cleanup zombie processes
local $SIG{CHLD} = \&reap_child;
$child_pid = POSIX::fork();
if (!defined($child_pid)) {
# forking failed
warn "[ezmlm-web] failed to fork process for key generation: $!";
$error = 'GnupgGenerateKey';
return (0==1);
} elsif ($child_pid == 0) {
# this is the child process
# we will disconnect from the parent process and call gpg
# the following code is taken from "man perlipc"
chdir('/') or die "Can't chdir to /: $!";
open(STDIN, '/dev/null') or die "Can't read /dev/null: $!";
open(STDOUT, '>/dev/null') or die "Can't write to /dev/null: $!";
# the child continues ...
POSIX::setsid() or die "Can't start a new session: $!";
open(STDERR, '>&STDOUT') or die "Can't dup stdout: $!";
# now we are completely disconnected from the parent process
if ($keyring->generate_private_key($key_name, $key_comment,
&get_listaddress($list), $key_size, $key_expires)) {
# the child process finished its job
# avoid to call destructors and so on - just use "_exit" instead
# of "exit".
POSIX::_exit(0);
} else {
# report an eror back
POSIX::_exit(1);
}
} else {
# this is the parent process - we will wait for the child for about
# five seconds. If it still did not return an error, then the key
# generation seems to be running without problems.
sleep 5;
# check if the child process is still alive
if ($child_return == 0) {
# the child did return an error - it seems to run successfully
$pagename = 'gnupg_secret';
$success = 'GnupgGenerateKeyInBackground';
return (0==0);
} else {
# the child died with an error
$error = 'GnupgGenerateKey';
return (0==1);
}
}
} else { } else {
$error = 'GnupgGenerateKey'; # no POSIX module available - thus we will run the key generation
return (0==1); # directly. This will most likely block the web interface for some time.
if ($keyring->generate_private_key($key_name, $key_comment,
&get_listaddress($list), $key_size, $key_expires)) {
$pagename = 'gnupg_secret';
$success = 'GnupgGenerateKey';
return (0==0);
} else {
$error = 'GnupgGenerateKey';
return (0==1);
}
} }
} }

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: 2008-10-12 01:40+0200\n" "PO-Revision-Date: 2008-10-12 01:40+0200\n"
"Last-Translator: Lars Kruse <lars@systemausfall.org>\n" "Last-Translator: Lars Kruse <lars@systemausfall.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -512,6 +512,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "Der Schlüssel wurde importiert." msgstr "Der Schlüssel wurde importiert."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "Verschlüsselung für die Mailingliste ist nun aktiv." msgstr "Verschlüsselung für die Mailingliste ist nun aktiv."

View file

@ -498,6 +498,16 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "The key was successfully imported." msgstr "The key was successfully imported."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr "The key was created successfully."
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
"The key is created in the background. It will be visible in a few minutes."
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "Encryption is now enabled for this list." msgstr "Encryption is now enabled for this list."

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web 3.3\n" "Project-Id-Version: ezmlm-web 3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-09-13 19:51+0200\n" "PO-Revision-Date: 2008-09-13 19:51+0200\n"
"Last-Translator: Jose Luis Martinez <jlmartinez@capside.com>\n" "Last-Translator: Jose Luis Martinez <jlmartinez@capside.com>\n"
"Language-Team: <>\n" "Language-Team: <>\n"
@ -510,6 +510,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "La clave se importó con éxito." msgstr "La clave se importó con éxito."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "La encriptación está habilitada para esta lista." msgstr "La encriptación está habilitada para esta lista."

View file

@ -492,6 +492,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-04-24 10:34+0200\n" "PO-Revision-Date: 2008-04-24 10:34+0200\n"
"Last-Translator: Lionel <ouhaich@razzer.net>\n" "Last-Translator: Lionel <ouhaich@razzer.net>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -506,6 +506,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2007-12-19 06:54+0000\n" "PO-Revision-Date: 2007-12-19 06:54+0000\n"
"Last-Translator: kkk <kamu@hcf.hu>\n" "Last-Translator: kkk <kamu@hcf.hu>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "A kulcs sikeresen importálva!" msgstr "A kulcs sikeresen importálva!"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "A titkosítás bekapcsolva a listára!" msgstr "A titkosítás bekapcsolva a listára!"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -508,6 +508,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-08-20 09:47+0200\n" "PO-Revision-Date: 2008-08-20 09:47+0200\n"
"Last-Translator: kinneko <kinneko@gmail.com>\n" "Last-Translator: kinneko <kinneko@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -509,6 +509,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -633,6 +633,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "Chave importada com sucesso" msgstr "Chave importada com sucesso"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
#, fuzzy #, fuzzy
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -511,6 +511,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "Chave importada com sucesso" msgstr "Chave importada com sucesso"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "Criptografia está agora ativada na lista." msgstr "Criptografia está agora ativada na lista."

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: 2008-05-22 10:27+0200\n" "PO-Revision-Date: 2008-05-22 10:27+0200\n"
"Last-Translator: azlk <azlk@mail.ru>\n" "Last-Translator: azlk <azlk@mail.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -509,6 +509,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "Ключ успешно импортирован." msgstr "Ключ успешно импортирован."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "Шифрование для этого списка теперь включено." msgstr "Шифрование для этого списка теперь включено."

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -511,6 +511,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "Ključ je bil uspešno uvožen" msgstr "Ključ je bil uspešno uvožen"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "Šifriranje za ta seznam je zdaj omogočeno " msgstr "Šifriranje za ta seznam je zdaj omogočeno "

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n" "Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n" "Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n" "POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported." msgid "The key was successfully imported."
msgstr "" msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable #: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list." msgid "Encryption is now enabled for this list."
msgstr "" msgstr ""

View file

@ -150,6 +150,8 @@ Lang {
SaveFile = The file was saved. SaveFile = The file was saved.
ResetFile = The customized text file was successfully removed. From now on, the system-wide default text file will be used instead of it. ResetFile = The customized text file was successfully removed. From now on, the system-wide default text file will be used instead of it.
GnupgKeyImport = The key was successfully imported. GnupgKeyImport = The key was successfully imported.
GnupgGenerateKey = The key was created successfully.
GnupgGenerateKeyInBackground = The key is created in the background. It will be visible in a few minutes.
GpgEzmlmConvertEnable = Encryption is now enabled for this list. GpgEzmlmConvertEnable = Encryption is now enabled for this list.
GpgEzmlmConvertDisable = Encryption is now disabled for this list. GpgEzmlmConvertDisable = Encryption is now disabled for this list.
} }