SF.net SVN: postfixadmin:[792] branches/postfixadmin-2.3
Brought to you by:
christian_boltz,
gingerdog
From: <chr...@us...> - 2009-12-28 21:24:51
|
Revision: 792 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=792&view=rev Author: christian_boltz Date: 2009-12-28 21:24:38 +0000 (Mon, 28 Dec 2009) Log Message: ----------- merged most bugfix changes between 2.3 release and SVN r791 to 2.3 branch - merged: SVN r745, r746, r747, r748, r749, r750, r752, r754, r756, r767, r770, r771, r772, r773, r774, r777, r778, r779, r789, r790 - r763 partly merged (except smarty part) - r787 - only part a) merged - see CHANGELOG.txt changes ;-) or SVN log for details ToDo: display alias targets for mailboxes (r751 and r787 part b) Modified Paths: -------------- branches/postfixadmin-2.3/CHANGELOG.TXT branches/postfixadmin-2.3/DOCUMENTS/DOVECOT.txt branches/postfixadmin-2.3/DOCUMENTS/POSTFIX_CONF.txt branches/postfixadmin-2.3/config.inc.php branches/postfixadmin-2.3/edit-alias.php branches/postfixadmin-2.3/functions.inc.php branches/postfixadmin-2.3/languages/bg.lang branches/postfixadmin-2.3/languages/ca.lang branches/postfixadmin-2.3/languages/cn.lang branches/postfixadmin-2.3/languages/cs.lang branches/postfixadmin-2.3/languages/da.lang branches/postfixadmin-2.3/languages/de.lang branches/postfixadmin-2.3/languages/en.lang branches/postfixadmin-2.3/languages/es.lang branches/postfixadmin-2.3/languages/et.lang branches/postfixadmin-2.3/languages/eu.lang branches/postfixadmin-2.3/languages/fi.lang branches/postfixadmin-2.3/languages/fo.lang branches/postfixadmin-2.3/languages/fr.lang branches/postfixadmin-2.3/languages/hr.lang branches/postfixadmin-2.3/languages/hu.lang branches/postfixadmin-2.3/languages/is.lang branches/postfixadmin-2.3/languages/it.lang branches/postfixadmin-2.3/languages/ja.lang branches/postfixadmin-2.3/languages/language-update.sh branches/postfixadmin-2.3/languages/lt.lang branches/postfixadmin-2.3/languages/mk.lang branches/postfixadmin-2.3/languages/nb.lang branches/postfixadmin-2.3/languages/nl.lang branches/postfixadmin-2.3/languages/nn.lang branches/postfixadmin-2.3/languages/pl.lang branches/postfixadmin-2.3/languages/pt-br.lang branches/postfixadmin-2.3/languages/ru.lang branches/postfixadmin-2.3/languages/sk.lang branches/postfixadmin-2.3/languages/sl.lang branches/postfixadmin-2.3/languages/sv.lang branches/postfixadmin-2.3/languages/tr.lang branches/postfixadmin-2.3/languages/tw.lang branches/postfixadmin-2.3/list-virtual.php branches/postfixadmin-2.3/setup.php branches/postfixadmin-2.3/templates/list-virtual.php branches/postfixadmin-2.3/upgrade.php Added Paths: ----------- branches/postfixadmin-2.3/ADDITIONS/import_users_from_csv.py Added: branches/postfixadmin-2.3/ADDITIONS/import_users_from_csv.py =================================================================== --- branches/postfixadmin-2.3/ADDITIONS/import_users_from_csv.py (rev 0) +++ branches/postfixadmin-2.3/ADDITIONS/import_users_from_csv.py 2009-12-28 21:24:38 UTC (rev 792) @@ -0,0 +1,231 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Script takes a CSV list of users and does a 'bulk' insertion into mysql. +# +# Copyright (C) 2009 Simone Piccardi +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +import csv +import getopt +import sys +import re +import time +import random, string +from datetime import datetime +from crypt import crypt +try: + import MySQLdb +except ImportError ,e: + print 'Cannot import the needed MySQLdb module, you must install it' + print 'on Debian systems just use the command' + print ' apt-get install python-mysqldb' + +def usage(): + print "Usage: inspostadmusers.py [options] users.csv" + print " -h print this help" + print " -t test run, do not insert, just print" + print " -u DB user" + print " -p DB password" + print " -D DB name" + print " -H DB host" + print " -q Quota in Mb (0 => no limit)" + print " -n char in seed" + print " -d debug info on" + print " -A create default alias for each domain" + print + print "the users.csv file must contains the user list with a line" + print "for each user, first line should be a title line with at least" + print "the following column names: " + print " * user - user part of the email (like user in us...@do...)" + print " * password - cleartext password" + print " * domain - domain name (like 'domain.com')" + print " * name - full user name ('Name Surname')" + print + print "the 'name' column is optional, other columns will be ignored" + print + print "Known restrictions:" + print "* this script only works with MySQL" + print "* mailbox paths are hardcoded to domain/username/" + + +# option parsing +try: + opts, args = getopt.getopt(sys.argv[1:], 'u:p:d:D:H:htdA') + optval={} + for opt, val in opts: + if opt == "-h": + usage() + sys.exit(0) + else: + optval[opt]=val +except getopt.GetoptError: + usage() + sys.exit(2) + +# +# Setup DB connection +# +MYSQLDB="postfixadmin" +MYSQLUSER="postfixadmin" +MYSQLPASSWORD="" +MYSQLHOST="localhost" + +# settings by command line options +if optval.has_key('-u'): + MYSQLUSER = optval['-u'] +if optval.has_key('-p'): + MYSQLPASSWORD = optval['-p'] +if optval.has_key('-D'): + MYSQLDB = optval['-D'] +if optval.has_key('-H'): + MYSQLHOST = optval['-H'] + +if optval.has_key('-q'): + quota = optval['-q'] +else: + quota = 0 + +if optval.has_key('-n'): + seed_len = optval['-n'] +else: + seed_len = 8 + +# check arguments, only the user list file must be present +if len(args) !=1: + print 'Need just one argument' + usage() + sys.exit(1) + +# MySQL connection (skipped in test run) +if optval.has_key('-t'): + print "Test Run" +else: + try: + connection = MySQLdb.connect(host=MYSQLHOST, user=MYSQLUSER, + db=MYSQLDB, passwd=MYSQLPASSWORD) + except MySQLdb.MySQLError, e: + print "Database connection error" + print e + sys.exit(1) + + cursor = connection.cursor() + +# +# Main body +# +NOW = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + +# read and convert CSV data +lista = csv.DictReader(open(args[0])) + +def gen_seed(seed_len, chars): + return '$1$'+''.join([random.choice(chars) for _ in xrange(seed_len)])+'$' + +def insert_record(cursor,table,record): + columns = record.keys() + query = "INSERT INTO " + table + "(" + ','.join(columns) + ") VALUES (" + ','.join(len(columns)*['%s']) + ")" + try: + cursor.execute(query, record.values()) + return 0 + except MySQLdb.MySQLError, e: + print "Database insertion error" + print e + print "Record was:" + print record.values() + print "Query was:" + print query + +# defining default values for tables (mailbox, alias and domain) +mailbox = { + 'created': NOW, + 'modified': NOW, + 'active': 1, + 'quota': quota + } +aliases = { + 'created': NOW, + 'modified': NOW, + 'active': 1 + } +domain = { + 'description': "", + 'aliases': 0, + 'mailboxes': 0, + 'quota': 0, + 'transport': 'virtual', + 'backupmx': 0, + 'created': NOW, + 'modified': NOW, + 'active': 1 +} + +# list of default alias +def_alias = ['abuse','hostmaster','postmaster','webmaster'] + +domain_list = {} +chars = string.letters + string.digits + +# loop over the CSV +for row in lista: + # create domain if it does not exists + if domain_list.has_key(row["domain"]): + if optval.has_key('-d'): + print "Domain " + row["domain"] + "already exixts" + else: + domain_list[row["domain"]] = 1 + domain['domain'] = row["domain"] + if optval.has_key('-t'): + print "Inserting domain" + print domain + else: + insert_record(cursor,'domain',domain) + if optval.has_key('-A'): + for i in def_alias: + aliases['address']= i+'@'+row["domain"] + aliases['goto']= aliases['address'] + aliases['domain'] = row["domain"] + if optval.has_key('-t'): + print "Inserting alias" + print aliases + else: + insert_record(cursor,'alias',aliases) + + # build query data for mailbox table + mailbox['username']=row["user"]+'@'+row["domain"] + encpass=crypt(row["password"], gen_seed(seed_len,chars)) + mailbox['password'] = encpass + mailbox['name'] = row["name"] + mailbox['maildir'] = row["domain"]+'/'+row["user"]+'/' + mailbox['local_part'] =row["user"] + mailbox['domain'] = row["domain"] + + # build query data for alias table + aliases['address']= mailbox['username'] + aliases['goto']= mailbox['username'] + aliases['domain'] = row["domain"] + + # inserting data for mailbox (and relate alias) + if optval.has_key('-t'): + print "Inserting mailbox" + print mailbox + print aliases + else: + insert_record(cursor,'mailbox',mailbox) + insert_record(cursor,'alias',aliases) + + +sys.exit(0) Modified: branches/postfixadmin-2.3/CHANGELOG.TXT =================================================================== --- branches/postfixadmin-2.3/CHANGELOG.TXT 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/CHANGELOG.TXT 2009-12-28 21:24:38 UTC (rev 792) @@ -10,6 +10,25 @@ # Last update: # $Id$ +Version ***svn 2.3 branch*** - 2009/12/26 - SVN r*** +----------------------------------- + + - NOTE: this release is based on the 2.3 branch + - NOTE: this is a bugfix-only release for Postfix Admin 2.3 + - add import_users_from_csv.py script (by Simone Piccardi) + - handle dovecot passwords without any tempfile (prevents safe_mode issues) + - fix MySQL 6.0 compatibility + - fix quota display (for dovecot >= 1.2) + - fix short open tags ("<?") + - translation updates and fixes + - documentation updates and fixes + - document commandline parameters for $CONF[*_script] options in config.inc.php + - list-virtual: added error message if the check_owner query returns more + than one result (can happen with pre-2.3 databases and prevents access for + superadmins) + - add in_array() check to avoid that superadmins can enter invalid domains + - fix delete link for alias domains (when on target domain) + Version 2.3 - 2009/10/24 - SVN r739 ----------------------------------- Modified: branches/postfixadmin-2.3/DOCUMENTS/DOVECOT.txt =================================================================== --- branches/postfixadmin-2.3/DOCUMENTS/DOVECOT.txt 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/DOCUMENTS/DOVECOT.txt 2009-12-28 21:24:38 UTC (rev 792) @@ -21,9 +21,10 @@ 1. Dovecot setup ----------------- -default_mail_env = maildir:/usr/local/virtual/%u/ +default_mail_env = maildir:/var/mail/vmail/%u/ auth default { + mechanisms plain userdb sql { # Path for SQL configuration file, see doc/dovecot-sql-example.conf args = /etc/dovecot-mysql.conf @@ -44,7 +45,9 @@ Below you'll find the relevant part of dovecot-mysql.conf file regarding our setup. Things you may need to change are db_password, uid and gid: + connect = host=localhost dbname=postfix user=postfix password=postfix +driver = mysql # Default password scheme. # depends on your $CONF['encrypt'] setting: @@ -102,9 +105,13 @@ Change dovecot-mysql.conf to return quota values: -user_query = SELECT maildir, 1001 AS uid, 1001 AS gid, CONCAT('dict:storage=',floor(quota/1000),' proxy::quota') as quota FROM mailbox WHERE username = '%u' +for MySQL: +user_query = SELECT maildir, 1001 AS uid, 1001 AS gid, CONCAT('dict:storage=',floor(quota/1000),' proxy::quota') as quota FROM mailbox WHERE username = '%u' AND active='1' +for PostgreSQL: +user_query = SELECT maildir, 1001 AS uid, 1001 AS gid, 'dict:storage=' || floor(quota/1000) || '::proxy::quota' as quota FROM mailbox WHERE username = '%u' AND active='1' + Create file dovecot-dict-quota.conf: driver = mysql Modified: branches/postfixadmin-2.3/DOCUMENTS/POSTFIX_CONF.txt =================================================================== --- branches/postfixadmin-2.3/DOCUMENTS/POSTFIX_CONF.txt 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/DOCUMENTS/POSTFIX_CONF.txt 2009-12-28 21:24:38 UTC (rev 792) @@ -40,7 +40,7 @@ Contents of the files These are examples only, you will likely have to and want to make some -cumtomizations. You will also want to consider the config.inc.php +customizations. You will also want to consider the config.inc.php settings for domain_path and domain_in_mailbox. These examples use values of domain_path=YES and domain_in_mailbox=NO Modified: branches/postfixadmin-2.3/config.inc.php =================================================================== --- branches/postfixadmin-2.3/config.inc.php 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/config.inc.php 2009-12-28 21:24:38 UTC (rev 792) @@ -314,6 +314,7 @@ // Note that this may fail if PHP is run in "safe mode", or if // operating system features (such as SELinux) or limitations // prevent the web-server from executing external scripts. +// Parameters: (1) username (2) domain (3) maildir (4) quota // $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh'; // Optional: @@ -321,6 +322,7 @@ // Note that this may fail if PHP is run in "safe mode", or if // operating system features (such as SELinux) or limitations // prevent the web-server from executing external scripts. +// Parameters: (1) username (2) domain (3) maildir (4) quota // $CONF['mailbox_postedit_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh'; // Optional: @@ -328,6 +330,7 @@ // Note that this may fail if PHP is run in "safe mode", or if // operating system features (such as SELinux) or limitations // prevent the web-server from executing external scripts. +// Parameters: (1) username (2) domain // $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh'; // Optional: @@ -335,6 +338,7 @@ // Note that this may fail if PHP is run in "safe mode", or if // operating system features (such as SELinux) or limitations // prevent the web-server from executing external scripts. +// Parameters: (1) username //$CONF['domain_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postcreation.sh'; // Optional: @@ -342,6 +346,7 @@ // Note that this may fail if PHP is run in "safe mode", or if // operating system features (such as SELinux) or limitations // prevent the web-server from executing external scripts. +// Parameters: (1) username // $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh'; // Optional: Modified: branches/postfixadmin-2.3/edit-alias.php =================================================================== --- branches/postfixadmin-2.3/edit-alias.php 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/edit-alias.php 2009-12-28 21:24:38 UTC (rev 792) @@ -39,16 +39,10 @@ } /* retrieve existing alias record for the user first... may be via GET or POST */ - -if(isset($_GET['address']) && isset($_GET['domain'])) { - $fAddress = escape_string($_GET['address']); - $fDomain = escape_string($_GET['domain']); -} -elseif(isset($_POST['address']) && isset($_POST['domain'])) { - $fAddress = escape_string($_POST['address']); - $fDomain = escape_string($_POST['domain']); -} -else { +$fAddress = safepost('address', safeget('address')); # escaped below +$fDomain = escape_string(preg_replace("/.*@/", "", $fAddress)); +$fAddress = escape_string($fAddress); # escaped now +if ($fAddress == "") { die("Required parameters not present"); } @@ -88,7 +82,7 @@ } } else { - die("Invalid alias / domain combination"); + die("Invalid alias"); } if ($_SERVER['REQUEST_METHOD'] == "POST") Modified: branches/postfixadmin-2.3/functions.inc.php =================================================================== --- branches/postfixadmin-2.3/functions.inc.php 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/functions.inc.php 2009-12-28 21:24:38 UTC (rev 792) @@ -733,6 +733,10 @@ $result = db_query ("SELECT 1 FROM $table_domain_admins WHERE username='$username' AND (domain='$domain' OR domain='ALL') AND active='1'"); if ($result['rows'] != 1) { + if ($result['rows'] > 1) { # "ALL" + specific domain permissions. 2.3 doesn't create such entries, but they are available as leftover from older versions + flash_error("Permission check returned more than one result. Please go to 'edit admin' for your username and press the save " + . "button once to fix the database. If this doesn't help, open a bugreport."); + } return false; } else @@ -1199,22 +1203,30 @@ $dovecotpw = "dovecotpw"; if (!empty($CONF['dovecotpw'])) $dovecotpw = $CONF['dovecotpw']; - // prevent showing plain password in process table - $prefix = "postfixadmin-"; - $tmpfile = tempnam('/tmp', $prefix); - $pipe = popen("'$dovecotpw' -s '$method' > '$tmpfile'", 'w'); # TODO: replace tempfile usage with proc_open call + # Use proc_open call to avoid safe_mode problems and to prevent showing plain password in process table + $spec = array( + 0 => array("pipe", "r"), // stdin + 1 => array("pipe", "w") // stdout + ); + $pipe = proc_open("$dovecotpw '-s' $method", $spec, $pipes); + if (!$pipe) { - unlink($tmpfile); + die("can't proc_open $dovecotpw"); } else { // use dovecot's stdin, it uses getpass() twice - fwrite($pipe, $pw . "\n", 1+strlen($pw)); usleep(1000); - fwrite($pipe, $pw . "\n", 1+strlen($pw)); - pclose($pipe); - $password = file_get_contents($tmpfile); + // Write pass in pipe stdin + fwrite($pipes[0], $pw . "\n", 1+strlen($pw)); usleep(1000); + fwrite($pipes[0], $pw . "\n", 1+strlen($pw)); + fclose($pipes[0]); + + // Read hash from pipe stdout + $password = fread($pipes[1], "200"); + fclose($pipes[1]); + proc_close($pipe); + if ( !preg_match('/^\{' . $method . '\}/', $password)) { die("can't encrypt password with dovecotpw"); } $password = trim(str_replace('{' . $method . '}', '', $password)); - unlink($tmpfile); } } Modified: branches/postfixadmin-2.3/languages/bg.lang =================================================================== --- branches/postfixadmin-2.3/languages/bg.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/bg.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -348,6 +348,8 @@ $PALANG['pUsersVacation_button_back'] = 'Връщам се от ваканция'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Не мога да обновя настройките за вашият автоматичен отговор!</span>'; $PALANG['pUsersVacation_result_success'] = 'Вашият автоматичен отговор беше премахнат!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; # XXX $PALANG['pCreate_dbLog_createalias'] = 'create alias'; # XXX Modified: branches/postfixadmin-2.3/languages/ca.lang =================================================================== --- branches/postfixadmin-2.3/languages/ca.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/ca.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -347,6 +347,8 @@ $PALANG['pUsersVacation_button_back'] = 'De tornada'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Imposible actualitzar la configuració de la seva resposta automàtica!</span>'; $PALANG['pUsersVacation_result_success'] = 'La seva resposta automàtica ha estat esborrada!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; # XXX $PALANG['pCreate_dbLog_createalias'] = 'create alias'; # XXX Modified: branches/postfixadmin-2.3/languages/cn.lang =================================================================== --- branches/postfixadmin-2.3/languages/cn.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/cn.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -347,6 +347,8 @@ $PALANG['pUsersVacation_button_back'] = '关闭自动回复'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">更新自动回复失败!</span>'; $PALANG['pUsersVacation_result_success'] = '你的自动回复已经关闭!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = '新建邮箱'; $PALANG['pCreate_dbLog_createalias'] = '新建别名'; Modified: branches/postfixadmin-2.3/languages/cs.lang =================================================================== --- branches/postfixadmin-2.3/languages/cs.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/cs.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -356,6 +356,8 @@ $PALANG['pUsersVacation_button_back'] = 'Vrátit se'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Nepodařilo se upravit nastavení!</span>'; $PALANG['pUsersVacation_result_success'] = 'Nastavení bylo upraveno!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'vytvořil schránku'; $PALANG['pCreate_dbLog_createalias'] = 'vytvořil alias'; Modified: branches/postfixadmin-2.3/languages/da.lang =================================================================== --- branches/postfixadmin-2.3/languages/da.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/da.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -354,6 +354,8 @@ $PALANG['pUsersVacation_button_back'] = 'Kommer tilbage'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Kan ikke opdatere indstillinger for dit autosvar!</span>'; $PALANG['pUsersVacation_result_success'] = 'Dit autosvar er fjernet!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'tilføj postboks'; $PALANG['pCreate_dbLog_createalias'] = 'tilføj alias'; Modified: branches/postfixadmin-2.3/languages/de.lang =================================================================== --- branches/postfixadmin-2.3/languages/de.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/de.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -166,7 +166,7 @@ $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Das angegebene Quota ist zu hoch!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Diese Domain gehört nicht Ihnen: '; $PALANG['pEdit_mailbox_button'] = 'Mailbox editieren'; -$PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Unmöglich das Passwort zu ändern!</span>'; +$PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Mailbox kann nicht geändert werden!</span>'; $PALANG['pPassword_welcome'] = 'Ändern Sie Ihr Login-Passwort.'; $PALANG['pPassword_admin'] = 'Login'; @@ -354,6 +354,8 @@ $PALANG['pUsersVacation_button_back'] = 'Ich bin zurück'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Konnte Ihre Automatische Antwort nicht einstellen!</span>'; $PALANG['pUsersVacation_result_success'] = 'Ihre Automatische Antwort wurde gelöscht!'; +$PALANG['pUsersVacation_activefrom'] = 'Aktiv ab dem'; +$PALANG['pUsersVacation_activeuntil'] = 'Aktiv bis zum'; $PALANG['pCreate_dbLog_createmailbox'] = 'Mailbox hinzufügen'; $PALANG['pCreate_dbLog_createalias'] = 'Alias hinzuü\xBCgen'; Modified: branches/postfixadmin-2.3/languages/en.lang =================================================================== --- branches/postfixadmin-2.3/languages/en.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/en.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -355,6 +355,8 @@ $PALANG['pUsersVacation_button_back'] = 'Coming Back'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Unable to update your auto response settings!</span>'; $PALANG['pUsersVacation_result_success'] = 'Your auto response has been removed!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; $PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; $PALANG['pCreate_dbLog_createalias'] = 'create alias'; Modified: branches/postfixadmin-2.3/languages/es.lang =================================================================== --- branches/postfixadmin-2.3/languages/es.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/es.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -4,32 +4,33 @@ // Language file Spanish // by Alvaro // +// by Iñaki Rodríguez (iro...@ac... / iro...@vi...) $PALANG['YES'] = 'SI'; $PALANG['NO'] = 'NO'; $PALANG['edit'] = 'editar'; $PALANG['del'] = 'borrar'; -$PALANG['exit'] = 'Exit'; # XXX -$PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['exit'] = 'Salir'; +$PALANG['cancel'] = 'Cancelar'; +$PALANG['save'] = 'Salvar'; $PALANG['confirm'] = '¿Está seguro de que desea borrarlo?\n'; $PALANG['confirm_domain'] = '¿Está seguro de que desea borrar todos los registros de este dominio? ¡Esto no puede ser deshecho!\n'; -$PALANG['check_update'] = 'Check for update'; -$PALANG['invalid_parameter'] = 'Invalid parameter!'; # XXX -$PALANG['pFooter_logged_as'] = 'Logged as %s'; # XXX +$PALANG['check_update'] = 'Check for update'; # XXX +$PALANG['invalid_parameter'] = '¡Parámetro inválido!'; +$PALANG['pFooter_logged_as'] = 'Autenticado como %s'; $PALANG['pLogin_welcome'] = 'Login de administrador para administración de dominios.'; $PALANG['pLogin_username'] = 'Usuario (e-mail)'; $PALANG['pLogin_password'] = 'Contraseña'; $PALANG['pLogin_button'] = 'Usuario'; -$PALANG['pLogin_failed'] = 'Your email address or password are not correct.'; # XXX +$PALANG['pLogin_failed'] = 'La cuenta de email o la contraseña no son correctas.'; $PALANG['pLogin_login_users'] = 'Login para ir a la sección de usuarios.'; -$PALANG['pMenu_main'] = 'Main'; # XXX +$PALANG['pMenu_main'] = 'Principal'; $PALANG['pMenu_overview'] = 'Resumen'; $PALANG['pMenu_create_alias'] = 'Añadir alias'; -$PALANG['pMenu_create_alias_domain'] = 'Add Alias Domain'; # XXX +$PALANG['pMenu_create_alias_domain'] = 'Añadir alias de dominio'; $PALANG['pMenu_create_mailbox'] = 'Añadir buzón'; -$PALANG['pMenu_fetchmail'] = 'Fetch Email'; # XXX +$PALANG['pMenu_fetchmail'] = 'Obtener Emails'; $PALANG['pMenu_sendmail'] = 'Enviar e-mail'; $PALANG['pMenu_password'] = 'Contraseña'; $PALANG['pMenu_viewlog'] = 'Ver Logs'; @@ -44,62 +45,62 @@ $PALANG['pMain_viewlog'] = 'Ver Logs.'; $PALANG['pMain_logout'] = 'Salir.'; -$PALANG['pOverview_disabled'] = 'Disabled'; # XXX -$PALANG['pOverview_unlimited'] = 'Unlimited'; # XXX -$PALANG['pOverview_title'] = ':: Defined Domains'; # XXX -$PALANG['pOverview_up_arrow'] = 'Go Top'; # XXX -$PALANG['pOverview_right_arrow'] = 'Next Page'; # XXX -$PALANG['pOverview_left_arrow'] = 'Previous Page'; # XXX -$PALANG['pOverview_alias_domain_title'] = ':: Domain Aliases'; # XXX -$PALANG['pOverview_alias_title'] = ':: Alias'; # XXX -$PALANG['pOverview_mailbox_title'] = ':: Mailboxes'; # XXX +$PALANG['pOverview_disabled'] = 'Deshabilitado'; +$PALANG['pOverview_unlimited'] = 'Ilimitado'; +$PALANG['pOverview_title'] = ':: Dominios Definidos'; +$PALANG['pOverview_up_arrow'] = 'Arriba'; +$PALANG['pOverview_right_arrow'] = 'Página siguiente'; +$PALANG['pOverview_left_arrow'] = 'Página anterior'; +$PALANG['pOverview_alias_domain_title'] = ':: Alias de Dominios'; +$PALANG['pOverview_alias_title'] = ':: Alias'; +$PALANG['pOverview_mailbox_title'] = ':: Buzones'; $PALANG['pOverview_button'] = 'Ir'; $PALANG['pOverview_welcome'] = 'Resumen de '; -$PALANG['pOverview_alias_domain_aliases'] = 'Alias Domains'; # XXX -$PALANG['pOverview_alias_domain_target'] = '%s is an Alias Domain for:'; # XXX -$PALANG['pOverview_alias_alias_count'] = 'Alias'; # XXX +$PALANG['pOverview_alias_domain_aliases'] = 'Alias de Dominios'; +$PALANG['pOverview_alias_domain_target'] = '%s es un alias de dominio para:'; +$PALANG['pOverview_alias_alias_count'] = 'Alias'; $PALANG['pOverview_alias_mailbox_count'] = 'Buzones'; $PALANG['pOverview_alias_address'] = 'De'; $PALANG['pOverview_alias_goto'] = 'Destino'; $PALANG['pOverview_alias_modified'] = 'Última modificación'; -$PALANG['pOverview_alias_domain_modified'] = 'Last Modified'; # XXX -$PALANG['pOverview_alias_active'] = 'Active'; # XXX -$PALANG['pOverview_alias_domain_active'] = 'Active'; # XXX -$PALANG['pOverview_alias_edit'] = 'Alias'; # XXX -$PALANG['and_x_more'] = '[and %s more...]'; # XXX +$PALANG['pOverview_alias_domain_modified'] = 'Última modificación'; +$PALANG['pOverview_alias_active'] = 'Activo'; +$PALANG['pOverview_alias_domain_active'] = 'Activo'; +$PALANG['pOverview_alias_edit'] = 'Alias'; +$PALANG['and_x_more'] = '[y %s más...]'; $PALANG['pOverview_mailbox_username'] = 'E-mail'; $PALANG['pOverview_mailbox_name'] = 'Nombre'; $PALANG['pOverview_mailbox_quota'] = 'Cuota (MB)'; $PALANG['pOverview_mailbox_modified'] = 'Última modificación'; $PALANG['pOverview_mailbox_active'] = 'Activo'; -$PALANG['pOverview_vacation_edit'] = 'VACATION IS ON'; # XXX -$PALANG['pOverview_vacation_option'] = 'Set Vacation'; # XXX +$PALANG['pOverview_vacation_edit'] = 'VACATION ESTÁ ACTIVADO'; +$PALANG['pOverview_vacation_option'] = 'Establecer Vacation'; $PALANG['pOverview_get_domain'] = 'Dominio'; $PALANG['pOverview_get_aliases'] = 'Alias'; -$PALANG['pOverview_get_alias_domains'] = 'Domain Aliases'; # XXX +$PALANG['pOverview_get_alias_domains'] = 'Alias de Dominios'; $PALANG['pOverview_get_mailboxes'] = 'Buzones'; $PALANG['pOverview_get_quota'] = 'Cuota de buzón (MB)'; $PALANG['pOverview_get_modified'] = 'Última Modificación'; $PALANG['pDelete_delete_error'] = '<span class="error_msg">Imposible borrar el registro '; -$PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX -$PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX +$PALANG['pDelete_delete_success'] = '%s borrado.'; +$PALANG['pDelete_postdelete_error'] = '<span class="error_msg">No se pudo eliminar el buzón '; $PALANG['pDelete_domain_error'] = '<span class="error_msg">Este dominio no le pertenece '; -$PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX -$PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX -$PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX -$PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX -$PALANG['pCreate_alias_domain_target'] = 'Target Domain'; # XXX -$PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX -$PALANG['pCreate_alias_domain_active'] = 'Active'; # XXX -$PALANG['pCreate_alias_domain_button'] = 'Add Alias Domain'; # XXX -$PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX -$PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed.'; # XXX -$PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX -$PALANG['pCreate_alias_domain_success'] = 'The domain alias has been added to the alias domain table!'; # XXX +$PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Este dominio no te pertenece '; +$PALANG['pDelete_alias_error'] = '<span class="error_msg">No se pudo eliminar el alias '; +$PALANG['pCreate_alias_domain_welcome'] = 'Sincronizar direcciones de un dominio a otro.'; +$PALANG['pCreate_alias_domain_alias'] = 'Alias de Dominio'; +$PALANG['pCreate_alias_domain_alias_text'] = 'El dominio al que llega el email.'; +$PALANG['pCreate_alias_domain_target'] = 'Dominio de destino'; +$PALANG['pCreate_alias_domain_target_text'] = 'El dominio al que deberían ir los emails.'; +$PALANG['pCreate_alias_domain_active'] = 'Activo'; +$PALANG['pCreate_alias_domain_button'] = 'Añadir Alias de Dominio'; +$PALANG['pCreate_alias_domain_error1'] = 'No estás autorizado a crear la configuración que has elegido.'; +$PALANG['pCreate_alias_domain_error2'] = '¡La configuración seleccionada no es válida, por favor elige una diferente!'; +$PALANG['pCreate_alias_domain_error3'] = 'Falló la inserción en la base de datos.'; +$PALANG['pCreate_alias_domain_error4'] = 'Ya están todos los dominios asignados.'; +$PALANG['pCreate_alias_domain_success'] = '¡El alias de dominio se insertó en la tabla!'; $PALANG['pCreate_alias_welcome'] = 'Crear un nuevo alias para el dominio.'; $PALANG['pCreate_alias_address'] = 'Alias'; @@ -107,7 +108,7 @@ $PALANG['pCreate_alias_address_text_error2'] = '<br /><span class="error_msg">¡Esta dirección ya existe, elija otra diferente por favor!</span>'; $PALANG['pCreate_alias_address_text_error3'] = '<br /><span class="error_msg">¡Ha llegado a su límite de creación de alias!</span>'; $PALANG['pCreate_alias_goto'] = 'Destino'; -$PALANG['pCreate_alias_active'] = 'Active'; # XXX +$PALANG['pCreate_alias_active'] = 'Activo'; $PALANG['pCreate_alias_button'] = 'Añadir alias'; $PALANG['pCreate_alias_goto_text'] = 'A donde debe de ser enviado el e-mail.'; $PALANG['pCreate_alias_goto_text_error'] = 'A donde debe de ser enviado el e-mail.<br /><span class="error_msg">¡El PARA no es válido!</span>'; @@ -119,13 +120,13 @@ $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">¡Imposible de localizar el alias!</span>'; $PALANG['pEdit_alias_goto'] = 'Destino'; -$PALANG['pEdit_alias_active'] = 'Active'; # XXX +$PALANG['pEdit_alias_active'] = 'Activo'; $PALANG['pEdit_alias_goto_text_error1'] = '<span class="error_msg">No ha introducido nada en el destino</span>'; $PALANG['pEdit_alias_goto_text_error2'] = '<span class="error_msg">La dirección de e-mail introducida no es válida: '; $PALANG['pEdit_alias_domain_error'] = '<span class="error_msg">Este dominio no le pertenece: '; -$PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX -$PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX -$PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX +$PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">¡No se pudo modificar el alias de dominio!</span>'; +$PALANG['pEdit_alias_forward_and_store'] = 'Entregar al buzón local.'; +$PALANG['pEdit_alias_forward_only'] = 'Reenviar sólo al email especificado.'; $PALANG['pEdit_alias_button'] = 'Editar alias'; $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">¡Imposible modificar el alias!</span>'; @@ -177,11 +178,11 @@ $PALANG['pPassword_result_error'] = '<span class="error_msg">¡Imposible cambiar la contraseña!</span>'; $PALANG['pPassword_result_success'] = '¡Su contraseña ha sido cambiada!'; -$PALANG['pEdit_vacation_set'] = 'Change / Set away message'; # XXX -$PALANG['pEdit_vacation_remove'] = 'Remove away message'; # XXX +$PALANG['pEdit_vacation_set'] = 'Cambiar / Establecer mensaje de ausencia'; +$PALANG['pEdit_vacation_remove'] = 'Quitar mensaje de ausencia'; $PALANG['pVacation_result_error'] = '<span class="error_msg">¡Imposible actualizar la configuracióne la respuesta automática!</span>'; -$PALANG['pVacation_result_removed'] = 'Auto response has been removed!'; # XXX -$PALANG['pVacation_result_added'] = 'Auto response has been enabled!'; # XXX +$PALANG['pVacation_result_removed'] = '¡Autorespuesta eliminada!'; +$PALANG['pVacation_result_added'] = '¡Autorespuesta habilitada!'; $PALANG['pViewlog_welcome'] = 'Ver las últimas 10 acciones para '; $PALANG['pViewlog_timestamp'] = 'Fecha/Hora'; @@ -189,18 +190,18 @@ $PALANG['pViewlog_domain'] = 'Dominio'; $PALANG['pViewlog_action'] = 'Acción'; $PALANG['pViewlog_data'] = 'Datos'; -$PALANG['pViewlog_action_create_mailbox'] = 'create mailbox'; # XXX -$PALANG['pViewlog_action_delete_mailbox'] = 'delete mailbox'; # XXX -$PALANG['pViewlog_action_edit_mailbox'] = 'edit mailbox'; # XXX -$PALANG['pViewlog_action_edit_mailbox_state'] = 'edit mailbox active'; # XXX -$PALANG['pViewlog_action_create_alias'] = 'create alias'; # XXX -$PALANG['pViewlog_action_create_alias_domain'] = 'create alias domain'; # XXX -$PALANG['pViewlog_action_delete_alias'] = 'delete alias'; # XXX -$PALANG['pViewlog_action_delete_alias_domain'] = 'delete alias domain'; # XXX -$PALANG['pViewlog_action_edit_alias'] = 'edit alias'; # XXX -$PALANG['pViewlog_action_edit_alias_state'] = 'edit alias active'; # XXX -$PALANG['pViewlog_action_edit_alias_domain_state'] = 'edit alias domain active'; # XXX -$PALANG['pViewlog_action_edit_password'] = 'change password'; # XXX +$PALANG['pViewlog_action_create_mailbox'] = 'crear buzón'; +$PALANG['pViewlog_action_delete_mailbox'] = 'borrar buzón'; +$PALANG['pViewlog_action_edit_mailbox'] = 'editar buzón'; +$PALANG['pViewlog_action_edit_mailbox_state'] = 'editar buzón activo'; +$PALANG['pViewlog_action_create_alias'] = 'crear alias'; +$PALANG['pViewlog_action_create_alias_domain'] = 'crear alias de dominio'; +$PALANG['pViewlog_action_delete_alias'] = 'borrar alias'; +$PALANG['pViewlog_action_delete_alias_domain'] = 'borrar alias de dominio'; +$PALANG['pViewlog_action_edit_alias'] = 'editar alias'; +$PALANG['pViewlog_action_edit_alias_state'] = 'editar alias activo'; +$PALANG['pViewlog_action_edit_alias_domain_state'] = 'editar alias de dominio activo'; +$PALANG['pViewlog_action_edit_password'] = 'cambiar contraseña'; $PALANG['pViewlog_button'] = 'Ir'; $PALANG['pViewlog_result_error'] = '<span class="error_msg">¡Imposible encontrar los logs!</span>'; @@ -213,8 +214,8 @@ $PALANG['pSendmail_subject_text'] = 'Bienvenido'; $PALANG['pSendmail_body'] = 'Cuerpo'; $PALANG['pSendmail_button'] = 'Enviar mensaje'; -$PALANG['pSendmail_result_error'] = '<span class="error_msg">¡Imposible crear el buzón!</span>'; # XXX text change - new: <span class="error_msg">Unable to send email!</span> -$PALANG['pSendmail_result_success'] = '¡El buzón ha sido creado!'; # XXX text change - new: Email sent! +$PALANG['pSendmail_result_error'] = '<span class="error_msg">¡Imposible enviar el email!</span>'; +$PALANG['pSendmail_result_success'] = '¡Email enviado!'; $PALANG['pAdminMenu_list_admin'] = 'Lista de administradores'; $PALANG['pAdminMenu_list_domain'] = 'Lista de dominios'; @@ -238,7 +239,7 @@ $PALANG['pAdminList_domain_aliases'] = 'Alias'; $PALANG['pAdminList_domain_mailboxes'] = 'Buzones'; $PALANG['pAdminList_domain_maxquota'] = 'Cuota Máxima (MB)'; -$PALANG['pAdminList_domain_transport'] = 'Transport'; # XXX +$PALANG['pAdminList_domain_transport'] = 'Transporte'; $PALANG['pAdminList_domain_backupmx'] = 'Backup MX'; # XXX $PALANG['pAdminList_domain_modified'] = 'Última Modificación'; $PALANG['pAdminList_domain_active'] = 'Activo'; @@ -259,7 +260,7 @@ $PALANG['pAdminCreate_domain_welcome'] = 'Añadir nuevo dominio'; $PALANG['pAdminCreate_domain_domain'] = 'Dominio'; $PALANG['pAdminCreate_domain_domain_text_error'] = '<span class="error_msg">¡El dominio ya existe!</span>'; -$PALANG['pAdminCreate_domain_domain_text_error2'] = '<span class="error_msg">The domain is invalid!</span>'; # XXX +$PALANG['pAdminCreate_domain_domain_text_error2'] = '<span class="error_msg">!El dominio no es válido!</span>'; $PALANG['pAdminCreate_domain_description'] = 'Descripción'; $PALANG['pAdminCreate_domain_aliases'] = 'Alias'; $PALANG['pAdminCreate_domain_aliases_text'] = '-1 = deshabilitar | 0 = ilimitado'; @@ -268,15 +269,15 @@ $PALANG['pAdminCreate_domain_maxquota'] = 'Cuota máxima'; $PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> -1 = deshabilitar | 0 = ilimitado'; $PALANG['pAdminCreate_domain_transport'] = 'Transport'; # XXX -$PALANG['pAdminCreate_domain_transport_text'] = 'Define transport'; # XXX +$PALANG['pAdminCreate_domain_transport_text'] = 'Definir transport'; # XXX $PALANG['pAdminCreate_domain_defaultaliases'] = 'Añadir alias por defecto'; $PALANG['pAdminCreate_domain_defaultaliases_text'] = ''; -$PALANG['pAdminCreate_domain_backupmx'] = 'Mail server is backup MX'; # XXX +$PALANG['pAdminCreate_domain_backupmx'] = 'El servidor de correo es backup MX'; # XXX $PALANG['pAdminCreate_domain_button'] = 'Añadir dominio'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">¡Imposible añadir el dominio!</span>'; $PALANG['pAdminCreate_domain_result_success'] = '¡El dominio ha sido añadido!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">¡No se pudo eliminar el dominio!</span>'; +$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">¡No se pudo eliminar el alias de dominio!</span>'; $PALANG['pAdminEdit_domain_welcome'] = 'Editar un dominio'; $PALANG['pAdminEdit_domain_domain'] = 'Dominio'; @@ -288,8 +289,8 @@ $PALANG['pAdminEdit_domain_maxquota'] = 'Cuota máxima'; $PALANG['pAdminEdit_domain_maxquota_text'] = 'MB<br /> -1 = deshabilitar | 0 = ilimitado'; $PALANG['pAdminEdit_domain_transport'] = 'Transport'; -$PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; # XXX -$PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; # XXX +$PALANG['pAdminEdit_domain_transport_text'] = 'Definir transport'; # XXX +$PALANG['pAdminEdit_domain_backupmx'] = 'El servidor de correo es backup MX'; # XXX $PALANG['pAdminEdit_domain_active'] = 'Activo'; $PALANG['pAdminEdit_domain_button'] = 'Editar dominio'; $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">¡Imposible modificar el dominio!</span>'; @@ -331,7 +332,7 @@ $PALANG['pUsersMenu_password'] = 'Cambiar la contraseña'; $PALANG['pUsersMain_vacation'] = 'Configure un mensaje de "fuera del trabajo" o una respuesta automática para su correo.'; -$PALANG['pUsersMain_vacationSet'] = $PALANG['pUsersMenu_vacation'] . ' is ON, click \'' . $PALANG['pUsersMenu_vacation'] . '\' to ' . $PALANG['edit'] . '/remove'; # XXX +$PALANG['pUsersMain_vacationSet'] = $PALANG['pUsersMenu_vacation'] . ' está ACTIVADO, click \'' . $PALANG['pUsersMenu_vacation'] . '\' para ' . $PALANG['edit'] . '/eliminar'; $PALANG['pUsersMain_edit_alias'] = 'Cambie su redirección de correo.'; $PALANG['pUsersMain_password'] = 'Cambie su contraseña.'; @@ -339,7 +340,7 @@ $PALANG['pUsersVacation_welcome_text'] = '¡Ya dispone de una respuesta automática configurada!'; $PALANG['pUsersVacation_subject'] = 'Asunto'; $PALANG['pUsersVacation_subject_text'] = 'Fuera del trabajo'; -$PALANG['pUsersVacation_body'] = 'Cuerpo'; # XXX text changed to 'Message' +$PALANG['pUsersVacation_body'] = 'Mensaje'; $PALANG['pUsersVacation_body_text'] = <<<EOM Estaré fuera desde <date> hasta <date>. Para asuntos urgentes, puede contactar conmigo en <contact person>. @@ -348,76 +349,78 @@ $PALANG['pUsersVacation_button_back'] = 'De vuelta'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">¡Imposible actualizar la configuración de su respuesta automática!</span>'; $PALANG['pUsersVacation_result_success'] = '¡Su respuesta automática ha sido borrada!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX -$PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; # XXX -$PALANG['pCreate_dbLog_createalias'] = 'create alias'; # XXX -$PALANG['pDelete_dbLog_deletealias'] = 'delete alias'; # XXX -$PALANG['pDelete_dbLog_deletemailbox'] = 'delete mailbox'; # XXX +$PALANG['pCreate_dbLog_createmailbox'] = 'crear buzón'; +$PALANG['pCreate_dbLog_createalias'] = 'crear alias'; +$PALANG['pDelete_dbLog_deletealias'] = 'borrar alias'; +$PALANG['pDelete_dbLog_deletemailbox'] = 'borrar buzón'; -$PALANG['pEdit_dbLog_editactive'] = 'change active state'; # XXX -$PALANG['pEdit_dbLog_editalias'] = 'edit alias'; # XXX -$PALANG['pEdit_dbLog_editmailbox'] = 'edit mailbox'; # XXX +$PALANG['pEdit_dbLog_editactive'] = 'cambiar estado activo'; +$PALANG['pEdit_dbLog_editalias'] = 'editar alias'; +$PALANG['pEdit_dbLog_editmailbox'] = 'editar buzón'; -$PALANG['pSearch'] = 'search'; # XXX -$PALANG['pSearch_welcome'] = 'Searching for: '; # XXX -$PALANG['pReturn_to'] = 'Return to'; # XXX -$PALANG['pBroadcast_title'] = 'Send broadcast message'; # XXX -$PALANG['pBroadcast_from'] = 'From'; # XXX -$PALANG['pBroadcast_name'] = 'Your name'; # XXX -$PALANG['pBroadcast_subject'] = 'Subject'; # XXX -$PALANG['pBroadcast_message'] = 'Message'; # XXX -$PALANG['pBroadcast_send'] = 'Send message'; # XXX -$PALANG['pBroadcast_success'] = 'Your broadcast message was sent.'; # XXX +$PALANG['pSearch'] = 'buscar'; +$PALANG['pSearch_welcome'] = 'Buscando: '; +$PALANG['pReturn_to'] = 'Volver a'; +$PALANG['pBroadcast_title'] = 'Enviar mensaje a todos'; # XXX +$PALANG['pBroadcast_from'] = 'De'; +$PALANG['pBroadcast_name'] = 'Tu nombre'; +$PALANG['pBroadcast_subject'] = 'Asunto'; +$PALANG['pBroadcast_message'] = 'Mensaje'; +$PALANG['pBroadcast_send'] = 'Enviar mensaje'; +$PALANG['pBroadcast_success'] = 'Se ha enviado el mensaje.'; $PALANG['pAdminMenu_broadcast_message'] = 'Broadcast message'; # XXX -$PALANG['pBroadcast_error_empty'] = 'The fields Name, Subject and Message should\'t be empty !'; # XXX -$PALANG['pStatus_undeliverable'] = 'maybe UNDELIVERABLE '; # XXX -$PALANG['pStatus_custom'] = 'Delivers to '; # XXX +$PALANG['pBroadcast_error_empty'] = '¡Los campos Nombre, Asunto y Mensaje no pueden estar vacíos!'; +$PALANG['pStatus_undeliverable'] = 'posiblemente NO SE ENTREGÓ'; +$PALANG['pStatus_custom'] = 'Enviado a '; $PALANG['pStatus_popimap'] = 'POP/IMAP '; # XXX -$PALANG['pPasswordTooShort'] = "Password is too short - requires %s characters"; # XXX -$PALANG['pInvalidDomainRegex'] = "Invalid domain name %s, fails regexp check"; # XXX -$PALANG['pInvalidDomainDNS'] = "Invalid domain %s, and/or not discoverable in DNS"; # XXX -$PALANG['pInvalidMailRegex'] = "Invalid email address, fails regexp check"; # XXX -$PALANG['pFetchmail_welcome'] = 'Fetch mail for:'; # XXX -$PALANG['pFetchmail_new_entry'] = 'New entry'; # XXX -$PALANG['pFetchmail_database_save_error'] = 'Could not save this entry in the database!'; # XXX -$PALANG['pFetchmail_database_save_success'] = 'Entry saved in database.'; # XXX +$PALANG['pPasswordTooShort'] = "La contraseña es demasiado corta - se necesitan %s caracteres"; +$PALANG['pInvalidDomainRegex'] = "El nombre de dominio %s es inválido, no se ajusta a la expresión regular"; +$PALANG['pInvalidDomainDNS'] = "El dominio %s no es válido, y/o no tiene resolución DNS"; +$PALANG['pInvalidMailRegex'] = "La dirección de email no es válidas, no se ajusta a la expresión regular"; +$PALANG['pFetchmail_welcome'] = 'Obtener mail para:'; +$PALANG['pFetchmail_new_entry'] = 'Nueva entrada'; +$PALANG['pFetchmail_database_save_error'] = '¡No se pudo salvar la entrada en la base de datos!'; +$PALANG['pFetchmail_database_save_success'] = 'Entrada salvada en la base de datos.'; $PALANG['pFetchmail_error_invalid_id'] = 'No entry with ID %s found!'; # XXX -$PALANG['pFetchmail_invalid_mailbox'] = 'Invalid mailbox!'; # XXX -$PALANG['pFetchmail_server_missing'] = 'Please enter the remote server name!'; # XXX -$PALANG['pFetchmail_user_missing'] = 'Please enter the remote username!'; # XXX -$PALANG['pFetchmail_password_missing'] = 'Please enter the remote password!'; # XXX +$PALANG['pFetchmail_invalid_mailbox'] = '¡Buzón inválido!'; +$PALANG['pFetchmail_server_missing'] = '¡Por favor introduzca el nombre del servidor remoto!'; +$PALANG['pFetchmail_user_missing'] = '¡Por favor introduzca el usuario remoto!'; +$PALANG['pFetchmail_password_missing'] = '¡Por favor introduzca la contraseña remota!'; $PALANG['pFetchmail_field_id'] = 'ID'; # XXX -$PALANG['pFetchmail_field_mailbox'] = 'Mailbox'; # XXX -$PALANG['pFetchmail_field_src_server'] = 'Server'; # XXX -$PALANG['pFetchmail_field_src_auth'] = 'Auth Type'; # XXX -$PALANG['pFetchmail_field_src_user'] = 'User'; # XXX -$PALANG['pFetchmail_field_src_password'] = 'Password'; # XXX -$PALANG['pFetchmail_field_src_folder'] = 'Folder'; # XXX +$PALANG['pFetchmail_field_mailbox'] = 'Buzón'; +$PALANG['pFetchmail_field_src_server'] = 'Servidor'; +$PALANG['pFetchmail_field_src_auth'] = 'Tipo Autenticación'; +$PALANG['pFetchmail_field_src_user'] = 'Usuario'; +$PALANG['pFetchmail_field_src_password'] = 'Contraseña'; +$PALANG['pFetchmail_field_src_folder'] = 'Carpeta'; $PALANG['pFetchmail_field_poll_time'] = 'Poll'; # XXX -$PALANG['pFetchmail_field_fetchall'] = 'Fetch All'; # XXX -$PALANG['pFetchmail_field_keep'] = 'Keep'; # XXX -$PALANG['pFetchmail_field_protocol'] = 'Protocol'; # XXX -$PALANG['pFetchmail_field_usessl'] = 'SSL active'; # XXX -$PALANG['pFetchmail_field_extra_options'] = 'Extra Options'; # XXX +$PALANG['pFetchmail_field_fetchall'] = 'Obtener todo'; +$PALANG['pFetchmail_field_keep'] = 'Conservar'; +$PALANG['pFetchmail_field_protocol'] = 'Protocolo'; +$PALANG['pFetchmail_field_usessl'] = 'SSL activado'; +$PALANG['pFetchmail_field_extra_options'] = 'Opciones extras'; $PALANG['pFetchmail_field_mda'] = 'MDA'; # XXX -$PALANG['pFetchmail_field_date'] = 'Date'; # XXX -$PALANG['pFetchmail_field_returned_text'] = 'Returned Text'; # XXX +$PALANG['pFetchmail_field_date'] = 'Fecha'; +$PALANG['pFetchmail_field_returned_text'] = 'Texto Devuelto'; $PALANG['pFetchmail_desc_id'] = 'Record ID'; # XXX -$PALANG['pFetchmail_desc_mailbox'] = 'Local mailbox'; # XXX -$PALANG['pFetchmail_desc_src_server'] = 'Remote Server'; # XXX +$PALANG['pFetchmail_desc_mailbox'] = 'Buzón local'; +$PALANG['pFetchmail_desc_src_server'] = 'Servidor Remoto'; $PALANG['pFetchmail_desc_src_auth'] = 'Mostly \'password\''; # Translators: Please do NOT translate 'password' here # XXX -$PALANG['pFetchmail_desc_src_user'] = 'Remote User'; # XXX -$PALANG['pFetchmail_desc_src_password'] = 'Remote Password'; # XXX -$PALANG['pFetchmail_desc_src_folder'] = 'Remote Folder'; # XXX -$PALANG['pFetchmail_desc_poll_time'] = 'Poll every ... minutes'; # XXX -$PALANG['pFetchmail_desc_fetchall'] = 'Retrieve both old (seen) and new messages'; # XXX -$PALANG['pFetchmail_desc_keep'] = 'Keep retrieved messages on the remote mailserver'; # XXX -$PALANG['pFetchmail_desc_protocol'] = 'Protocol to use'; # XXX -$PALANG['pFetchmail_desc_usessl'] = 'SSL encryption'; # XXX -$PALANG['pFetchmail_desc_extra_options'] = 'Extra fetchmail Options'; # XXX +$PALANG['pFetchmail_desc_src_user'] = 'Usuario Remoto'; +$PALANG['pFetchmail_desc_src_password'] = 'Contraseña Remota'; +$PALANG['pFetchmail_desc_src_folder'] = 'Carpeta Remota'; +$PALANG['pFetchmail_desc_poll_time'] = 'Obtener cada ... minutos'; +$PALANG['pFetchmail_desc_fetchall'] = 'Obtener los mensajes leídos y nuevos'; +$PALANG['pFetchmail_desc_keep'] = 'Guardar una copia de los mensajes en el servidor remoto'; +$PALANG['pFetchmail_desc_protocol'] = 'Protocolo a usar'; +$PALANG['pFetchmail_desc_usessl'] = 'Cifrado SSL'; +$PALANG['pFetchmail_desc_extra_options'] = 'Opciones extras para fetchmail'; $PALANG['pFetchmail_desc_mda'] = 'Mail Delivery Agent'; # XXX -$PALANG['pFetchmail_desc_date'] = 'Date of last polling/configuration change'; # XXX -$PALANG['pFetchmail_desc_returned_text'] = 'Text message from last polling'; # XXX +$PALANG['pFetchmail_desc_date'] = 'Fecha del último sondeo/cambio en la configuración'; +$PALANG['pFetchmail_desc_returned_text'] = 'Mensaje del último sondeo'; $PALANG['please_keep_this_as_last_entry'] = ''; # needed for language-check.sh /* vim: set expandtab ft=php softtabstop=3 tabstop=3 shiftwidth=3: */ Modified: branches/postfixadmin-2.3/languages/et.lang =================================================================== --- branches/postfixadmin-2.3/languages/et.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/et.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -350,6 +350,8 @@ $PALANG['pUsersVacation_button_back'] = 'Tulen tagasi'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Automaatse vastuse uuendamine ebaõnnestus!</span>'; $PALANG['pUsersVacation_result_success'] = 'Automaatne vastus on eemaldatud!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'postkasti loomine'; $PALANG['pCreate_dbLog_createalias'] = 'aliase loomine'; Modified: branches/postfixadmin-2.3/languages/eu.lang =================================================================== --- branches/postfixadmin-2.3/languages/eu.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/eu.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -346,6 +346,8 @@ $PALANG['pUsersVacation_button_back'] = 'Itzulita'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Ezinezkoa zure erantzun atomatikoaren konfigurazioa eguneratzea!</span>'; $PALANG['pUsersVacation_result_success'] = 'Zure erantzun automatikoa borratu da!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; # XXX $PALANG['pCreate_dbLog_createalias'] = 'create alias'; # XXX Modified: branches/postfixadmin-2.3/languages/fi.lang =================================================================== --- branches/postfixadmin-2.3/languages/fi.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/fi.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -347,6 +347,8 @@ $PALANG['pUsersVacation_button_back'] = 'Takaisin lomalta'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Automaattivastauksen asettaminen epäonnistui!</span>'; $PALANG['pUsersVacation_result_success'] = 'Automaattivastaus on poistettu käytöstä!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'luo sähköpostilaatikko'; $PALANG['pCreate_dbLog_createalias'] = 'luo alias'; Modified: branches/postfixadmin-2.3/languages/fo.lang =================================================================== --- branches/postfixadmin-2.3/languages/fo.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/fo.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -352,6 +352,8 @@ $PALANG['pUsersVacation_button_back'] = 'Heima'; $PALANG['pUsersVacation_result_error'] = '<span class="error_msg">Fái ikki broytt tínar frítíðarboð uppsetingar!</span>'; $PALANG['pUsersVacation_result_success'] = 'Títt frítíðarboð er strikað!'; +$PALANG['pUsersVacation_activefrom'] = 'Active from'; # XXX +$PALANG['pUsersVacation_activeuntil'] = 'Active until'; # XXX $PALANG['pCreate_dbLog_createmailbox'] = 'create mailbox'; # XXX $PALANG['pCreate_dbLog_createalias'] = 'create alias'; # XXX Modified: branches/postfixadmin-2.3/languages/fr.lang =================================================================== --- branches/postfixadmin-2.3/languages/fr.lang 2009-12-24 14:58:01 UTC (rev 791) +++ branches/postfixadmin-2.3/languages/fr.lang 2009-12-28 21:24:38 UTC (rev 792) @@ -24,13 +24,13 @@ $PALANG['pLogin_username'] = 'Adresse courriel'; $PALANG['pLogin_password'] = 'Mot de passe'; $PALANG['pLogin_button'] = 'Entrer'; -$PALANG['pLogin_failed'] = 'Your email address or password are not correct.'; # XXX +$PALANG['pLogin_failed'] = 'Votre email ou mot de passe est incorrect.'; $PALANG['pLogin_login_users'] = 'Utilisateurs, cliquez ici pour rejoindre votre section.'; $PALANG['pMenu_main'] = 'Menu principal'; $PALANG['pMenu_overview'] = 'Vue d\'ensemble'; $PALANG['pMenu_create_alias'] = 'Ajouter un alias'; -$PALANG['pMenu_create_alias_domain'] = 'Add Alias Domain'; # XXX +$PALANG['pMenu_create_alias_domain'] = 'Ajouter un alias de domaine'; $PALANG['pMenu_create_mailbox'] = 'Ajouter un compte courriel'; $PALANG['pMenu_fetchmail'] = 'Récupérer le courrier'; $PALANG['pMenu_sendmail'] = 'Envoyer un courriel'; @@ -53,21 +53,21 @@ $PALANG['pOverview_up_arrow'] = 'Remonter'; $PALANG['pOverview_right_arrow'] = 'Page suivante'; $PALANG['pOverview_left_arrow'] = 'Page précédente'; -$PALANG['pOverview_alias_domain_title'] = ':: Domain Aliases'; # XXX +$PALANG['pOverview_alias_domain_title'] = ':: Alias Domaine'; $PALANG['pOverview_alias_title'] = ':: Alias'; $PALANG['pOverview_mailbox_title'] = ':: Comptes courriels'; $PALANG['pOverview_button'] = 'Aller'; $PALANG['pOverview_welcome'] = 'Vue d\'ensemble pour '; -$PALANG['pOverview_alias_domain_aliases'] = 'Alias Domains'; # XXX -$PALANG['pOverview_alias_domain_target'] = '%s is an Alias Domain for:'; # XXX +$PALANG['pOverview_alias_domain_aliases'] = 'Alias Domaines'; +$PALANG['pOverview_alias_domain_target'] = '%s est un alias de domaine pour:'; $PALANG['pOverview_alias_alias_count'] = 'Alias'; $PALANG['pOverview_alias_mailbox_count'] = 'Comptes courriels'; $PALANG['pOverview_alias_address'] = 'De'; $PALANG['pOverview_alias_goto'] = 'A'; $PALANG['pOverview_alias_modified'] = 'Dernière Modification'; -$PALANG['pOverview_alias_domain_modified'] = 'Last Modified'; # XXX +$PALANG['pOverview_alias_domain_modified'] = 'Dernière Modification'; $PALANG['pOverview_alias_active'] = 'Activé'; -$PALANG['pOverview_alias_domain_active'] = 'Active'; # XXX +$PALANG['pOverview_alias_domain_active'] = 'Activé'; $PALANG['pOverview_alias_edit'] = 'Alias'; $PALANG['and_x_more'] = '[et %s en plus...]'; $PALANG['pOverview_mailbox_username'] = 'courriel'; @@ -80,7 +80,7 @@ $PALANG['pOverview_get_domain'] = 'Domaine'; $PALANG['pOverview_get_aliases'] = 'Alias'; -$PALANG['pOverview_get_alias_domains'] = 'Domain Aliases'; # XXX +$PALANG['pOverview_get_alias_domains'] = 'Alias Domaine'; $PALANG['pOverview_get_mailboxes'] = 'Comptes courriels'; $PALANG['pOverview_get_quota'] = 'Limite compte courriels (MB)'; $PALANG['pOverview_get_modified'] = 'Dernière Modification'; @@ -89,20 +89,20 @@ $PALANG['pDelete_delete_success'] = '%s supprimé.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Impossible ... [truncated message content] |