diff options
author | thomascube <thomas@roundcube.net> | 2010-12-17 15:07:04 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2010-12-17 15:07:04 +0000 |
commit | db1a87cd6c506f2afbd1a37c64cb56ae11120b49 (patch) | |
tree | 07e1d350a06e0529db08316621b9c629bfb90b58 | |
parent | acd5200b2110498793e04fb016cbbc69ea5fe9f3 (diff) |
Update branch for 0.5-rc releasev0.5-rc@4349
190 files changed, 4248 insertions, 3421 deletions
@@ -1,6 +1,30 @@ CHANGELOG Roundcube Webmail =========================== +- Plugin API: Add 'pass' argument in 'authenticate' hook (#1487134) +- Fix attachments of type message/rfc822 are not listed on attachments list +- Add 'login_lc' config option for case-insensitive authentication (#1487113) +- Fix window is blur'ed in IE when selecting a message (#1487316) +- Fix cursor position on compose form in Webkit browsers (#1486674) +- Fix setting charset of attachment filenames (#1487122) +- Allow setting autocomplete attribute for all inputs separately (#1487313) +- New Folder Manager UI +- Fix invalid Request when creating a folder (#1487443) +- Add folder size and quota indicator in folder manager (#1485780) +- Add possibility to move a subfolder into root folder (#1486791) +- Fix copying all messages in a folder copies only messages from current page +- Improve performance of moving or copying of all messages in a folder +- Fix plaintext versions of HTML messages don't contain placeholders for emotions (#1485206) +- Improve performance of folder rename and delete actions +- Better support for READ-ONLY and NOPERM responses handling (#1487083) +- Add confirmation message on purge/expunge command response +- Fix handling of untagged responses for AUTHENTICATE command (#1487450) +- Add username and IP address to log message on unsuccessful login (#1487626) +- Improved Mail-Followup-To and Mail-Reply-To headers handling +- Fix charset conversion for text attachments without charset specification (#1487634) + +RELEASE 0.5-BETA +---------------- - Make session data storage more robust against garbage session data (#1487136) - Config option for autocomplete on login screen - Allow plugin templates to include local files (#1487133) @@ -17,8 +17,9 @@ REQUIREMENTS - mbstring, fileinfo, mcrypt (optional) * PEAR packages distributed with Roundcube or external: - MDB2 2.5.0 or newer - - Mail_Mime 1.7.0 or newer + - Mail_Mime 1.8.1 or newer - Net_SMTP 1.4.2 or newer + - Auth_SASL 1.0.3 or newer * php.ini options (see .htaccess file): - error_reporting E_ALL & ~E_NOTICE (or lower) - memory_limit > 16MB (increase as suitable to support large attachments) @@ -25,9 +25,6 @@ Installation: For detailed instructions on how to install Roundcube webmail on your server, please refer to the INSTALL document in the same directory as this document. -If you're updating an older version of Roundcube please follow the steps -described in the UPGRADING file. - Licensing: ---------- @@ -22,6 +22,7 @@ installation as well as the database before executig the following steps. ./SQL/[yourdbtype].update.sql that are superscribed with the currently installed version number. 5. Make sure 'enable_installer' is set to false again. -6. IMPORTANT: clear all records from the sessions table in your database. - The session storage format has changed so all existing data cannot be read anymore. +6. IMPORTANT (when upgrading from 0.4.x): clear all records from the sessions + table in your database. The session storage format has changed so all + existing data cannot be read anymore. diff --git a/bin/update.sh b/bin/update.sh index 5f4e3f24c..a2988879c 100755 --- a/bin/update.sh +++ b/bin/update.sh @@ -80,7 +80,7 @@ if ($RCI->configured) { // Success! if ($write1 && $write2) { echo "Done.\n"; - echo "Your configuration files are now up-tp-date!\n"; + echo "Your configuration files are now up-to-date!\n"; } else { echo "Failed to write config files!\n"; diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 2b18da333..e2f9aea3b 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -83,6 +83,7 @@ $rcmail_config['imap_delimiter'] = null; // set these options. All can be strings or arrays of strings. // Folders need to be ended with directory separator, e.g. "INBOX." // (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces $rcmail_config['imap_ns_personal'] = null; $rcmail_config['imap_ns_other'] = null; $rcmail_config['imap_ns_shared'] = null; @@ -180,8 +181,13 @@ $rcmail_config['message_cache_lifetime'] = '10d'; // set the port for the ssl connection as value of this option if it differs from the default 443 $rcmail_config['force_https'] = false; -// Allow browser-autocompletion on login form -$rcmail_config['login_autocomplete'] = false; +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$rcmail_config['login_autocomplete'] = 0; + +// If users authentication is not case sensitive this must be enabled. +// You can also use it to force conversion of logins to lower case. +$rcmail_config['login_lc'] = false; // automatically create a new Roundcube user when log-in the first time. // a new user will be created once the IMAP login succeeds. @@ -2,7 +2,7 @@ /* +-------------------------------------------------------------------------+ | Roundcube Webmail IMAP Client | - | Version 0.5-beta | + | Version 0.5-rc | | | | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland | | | @@ -77,16 +77,14 @@ $RCMAIL->action = $startup['action']; if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') { // purge the session in case of new login when a session already exists $RCMAIL->kill_session(); - + $auth = $RCMAIL->plugins->exec_hook('authenticate', array( 'host' => $RCMAIL->autoselect_host(), 'user' => trim(get_input_value('_user', RCUBE_INPUT_POST)), + 'pass' => get_input_value('_pass', RCUBE_INPUT_POST, true, + $RCMAIL->config->get('password_charset', 'ISO-8859-1')), 'cookiecheck' => true, )); - - if (!isset($auth['pass'])) - $auth['pass'] = get_input_value('_pass', RCUBE_INPUT_POST, true, - $RCMAIL->config->get('password_charset', 'ISO-8859-1')); // check if client supports cookies if ($auth['cookiecheck'] && empty($_COOKIE)) { @@ -220,16 +218,15 @@ $action_map = array( 'group-addmembers' => 'groups.inc', 'group-delmembers' => 'groups.inc', ), - + 'settings' => array( - 'folders' => 'manage_folders.inc', - 'create-folder' => 'manage_folders.inc', - 'rename-folder' => 'manage_folders.inc', - 'delete-folder' => 'manage_folders.inc', - 'subscribe' => 'manage_folders.inc', - 'unsubscribe' => 'manage_folders.inc', - 'enable-threading' => 'manage_folders.inc', - 'disable-threading' => 'manage_folders.inc', + 'folders' => 'folders.inc', + 'rename-folder' => 'folders.inc', + 'delete-folder' => 'folders.inc', + 'subscribe' => 'folders.inc', + 'unsubscribe' => 'folders.inc', + 'purge' => 'folders.inc', + 'folder-size' => 'folders.inc', 'add-identity' => 'edit_identity.inc', ) ); diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php index e929c9f9d..95f5ecf39 100644 --- a/plugins/emoticons/emoticons.php +++ b/plugins/emoticons/emoticons.php @@ -5,7 +5,7 @@ * * Sample plugin to replace emoticons in plain text message body with real icons * - * @version 1.2.0 + * @version 1.3 * @author Thomas Bruederli * @author Aleksander Machniak * @website http://roundcube.net @@ -35,38 +35,30 @@ class emoticons extends rcube_plugin // map of emoticon replacements $map = array( - '/:\)/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-smile.gif', - 'title' => ':)' - )), - '/:-\)/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-smile.gif', - 'title' => ':-)' - )), - '/(?<!mailto):D/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-laughing.gif', - 'title' => ':D' - )), - '/:-D/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-laughing.gif', - 'title' => ':-D' - )), - '/:\(/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-frown.gif', - 'title' => ':(' - )), - '/:-\(/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-frown.gif', - 'title' => ':-(' - )), - '/'.$entity.';\)/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-wink.gif', - 'title' => ';)' - )), - '/'.$entity.';-\)/' => html::img(array( - 'src' => './program/js/tiny_mce/plugins/emotions/img/smiley-wink.gif', - 'title' => ';-)' - )), + '/:\)/' => $this->img_tag('smiley-smile.gif', ':)' ), + '/:-\)/' => $this->img_tag('smiley-smile.gif', ':-)' ), + '/(?<!mailto):D/' => $this->img_tag('smiley-laughing.gif', ':D' ), + '/:-D/' => $this->img_tag('smiley-laughing.gif', ':-D' ), + '/:\(/' => $this->img_tag('smiley-frown.gif', ':(' ), + '/:-\(/' => $this->img_tag('smiley-frown.gif', ':-(' ), + '/'.$entity.';\)/' => $this->img_tag('smiley-wink.gif', ';)' ), + '/'.$entity.';-\)/' => $this->img_tag('smiley-wink.gif', ';-)' ), + '/8\)/' => $this->img_tag('smiley-cool.gif', '8)' ), + '/8-\)/' => $this->img_tag('smiley-cool.gif', '8-)' ), + '/(?<!mailto):O/i' => $this->img_tag('smiley-surprised.gif', ':O' ), + '/(?<!mailto):-O/i' => $this->img_tag('smiley-surprised.gif', ':-O' ), + '/(?<!mailto):P/i' => $this->img_tag('smiley-tongue-out.gif', ':P' ), + '/(?<!mailto):-P/i' => $this->img_tag('smiley-tongue-out.gif', ':-P' ), + '/(?<!mailto):@/i' => $this->img_tag('smiley-yell.gif', ':@' ), + '/(?<!mailto):-@/i' => $this->img_tag('smiley-yell.gif', ':-@' ), + '/O:\)/i' => $this->img_tag('smiley-innocent.gif', 'O:)' ), + '/O:-\)/i' => $this->img_tag('smiley-innocent.gif', 'O:-)' ), + '/(?<!mailto):$/' => $this->img_tag('smiley-embarassed.gif', ':$' ), + '/(?<!mailto):-$/' => $this->img_tag('smiley-embarassed.gif', ':-$' ), + '/(?<!mailto):\*/i' => $this->img_tag('smiley-kiss.gif', ':*' ), + '/(?<!mailto):-\*/i' => $this->img_tag('smiley-kiss.gif', ':-*' ), + '/(?<!mailto):S/i' => $this->img_tag('smiley-undecided.gif', ':S' ), + '/(?<!mailto):-S/i' => $this->img_tag('smiley-undecided.gif', ':-S' ), ); if ($args['type'] == 'plain') { @@ -77,4 +69,9 @@ class emoticons extends rcube_plugin return $args; } + private function img_tag($ico, $title) + { + $path = './program/js/tiny_mce/plugins/emotions/img/'; + return html::img(array('src' => $path.$ico, 'title' => $title)); + } } diff --git a/plugins/managesieve/localization/fr_FR.inc b/plugins/managesieve/localization/fr_FR.inc index e7d09945a..0b494f041 100644 --- a/plugins/managesieve/localization/fr_FR.inc +++ b/plugins/managesieve/localization/fr_FR.inc @@ -26,6 +26,8 @@ $labels['messageredirect'] = 'Transférer le message à '; $labels['messagereply'] = 'Répondre avec le message'; $labels['messagedelete'] = 'Supprimer le message'; $labels['messagediscard'] = 'Rejeter avec le message'; +$labels['messagecopyto'] = 'Copier le message vers'; +$labels['messagesendcopy'] = 'Envoyer une copie du message à '; $labels['messagesrules'] = 'Pour les mails entrants:'; $labels['messagesactions'] = '...exécuter les actions suivantes:'; $labels['add'] = 'Ajouter'; diff --git a/plugins/managesieve/localization/ru_RU.inc b/plugins/managesieve/localization/ru_RU.inc index 95f302818..d485f0ed3 100644 --- a/plugins/managesieve/localization/ru_RU.inc +++ b/plugins/managesieve/localization/ru_RU.inc @@ -1,4 +1,22 @@ <?php +/* + ++-----------------------------------------------------------------------+ +| plugins/managesieve/localization/ru_RU.inc | +| | +| Russian translation for roundcube/managesieve plugin | +| Copyright (C) 2008-2010 | +| Licensed under the GNU GPL | +| | ++-----------------------------------------------------------------------+ +| Author: | +| Updates: Sergey Dukachev <iam@dukess.ru> | ++-----------------------------------------------------------------------+ + +@version 2010-10-11 + +*/ + $labels['filters'] = 'Фильтры'; $labels['managefilters'] = 'Управление фильтрами Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñщей почты'; $labels['filtername'] = 'Ðазвание фильтра'; @@ -21,7 +39,9 @@ $labels['filterover'] = 'на'; $labels['addrule'] = 'Добавить правило'; $labels['delrule'] = 'Удалить правило'; $labels['messagemoveto'] = 'ПеремеÑтить Ñообщение в'; -$labels['messageredirect'] = 'Перенаправить Ñообщение на '; +$labels['messageredirect'] = 'Перенаправить Ñообщение на'; +$labels['messagecopyto'] = 'Скопировать Ñообщение в'; +$labels['messagesendcopy'] = 'Отправить копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð°'; $labels['messagereply'] = 'Ответить Ñ Ñообщением'; $labels['messagedelete'] = 'Удалить Ñообщение'; $labels['messagediscard'] = 'ОтброÑить Ñ Ñообщением'; @@ -38,12 +58,13 @@ $labels['rulestop'] = 'Закончить выполнение'; $labels['filterset'] = 'Ðабор фильтров'; $labels['filtersetadd'] = 'Добавить набор фильтров'; $labels['filtersetdel'] = 'Удалить текущий набор фильтров'; -$labels['filtersetact'] = 'Ðктивировать текущий набор фильтров'; +$labels['filtersetact'] = 'Включить текущий набор фильтров'; +$labels['filtersetdeact'] = 'Отключить текущий набор фильтров'; $labels['filtersetget'] = 'Скачать набор фильтров в виде текÑта'; $labels['filterdef'] = 'ОпиÑание фильтра'; $labels['filtersetname'] = 'Ðазвание набора фильтров'; $labels['newfilterset'] = 'Ðовый набор фильтров'; -$labels['active'] = 'активный'; +$labels['active'] = 'иÑпользуетÑÑ'; $labels['none'] = 'пуÑтой'; $labels['fromset'] = 'из набора'; $labels['fromfile'] = 'из файла'; @@ -61,9 +82,11 @@ $messages['ruledeleteconfirm'] = 'Ð’Ñ‹ уверенны, что хотите уР$messages['actiondeleteconfirm'] = 'Ð’Ñ‹ уверенны, что хотите удалить Ñто дейÑтвие?'; $messages['forbiddenchars'] = 'ÐедопуÑтимые Ñимволы в поле'; $messages['cannotbeempty'] = 'Поле не может быть пуÑтым'; -$messages['setactivateerror'] = 'Ðевозможно активировать выбранный набор фильтров. Ошибка Ñервера'; +$messages['setactivateerror'] = 'Ðевозможно включить выбранный набор фильтров. Ошибка Ñервера'; +$messages['setdeactivateerror'] = 'Ðевозможно отключить выбранный набор фильтров. Ошибка Ñервера'; $messages['setdeleteerror'] = 'Ðевозможно удалить выбранный набор фильтров. Ошибка Ñервера'; -$messages['setactivated'] = 'Ðабор фильтров уÑпешно активирован'; +$messages['setactivated'] = 'Ðабор фильтров уÑпешно включён'; +$messages['setdeactivated'] = 'Ðабор фильтров уÑпешно отключён'; $messages['setdeleted'] = 'Ðабор фильтров уÑпешно удалён'; $messages['setdeleteconfirm'] = 'Ð’Ñ‹ уверены в том, что хотите удалить выбранный набор фильтров?'; $messages['setcreateerror'] = 'Ðевозможно Ñоздать набор фильтров. Ошибка Ñервера'; diff --git a/plugins/new_user_dialog/localization/es_ES.inc b/plugins/new_user_dialog/localization/es_ES.inc index 73f47f25a..2d2ccfe0a 100644 --- a/plugins/new_user_dialog/localization/es_ES.inc +++ b/plugins/new_user_dialog/localization/es_ES.inc @@ -1,7 +1,7 @@ <?php $labels = array(); -$labels['identitydialogtitle'] = 'Por favor completa tus datos'; -$labels['identitydialoghint'] = 'Este diálogo sólo aparece la primera vez que te conectas.'; +$labels['identitydialogtitle'] = 'Por favor, complete sus datos personales'; +$labels['identitydialoghint'] = 'Este diálogo sólo aparecerá la primera vez que se conecte al correo.'; ?> diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php index 9b773be65..96cd0da23 100644 --- a/plugins/new_user_dialog/new_user_dialog.php +++ b/plugins/new_user_dialog/new_user_dialog.php @@ -85,6 +85,7 @@ class new_user_dialog extends rcube_plugin "$(document).ready(function () { rcmail.message_list.key_press = function(){}; rcmail.message_list.key_down = function(){}; + $('input[name=_name]').focus(); });", 'foot'); $this->include_stylesheet('newuserdialog.css'); diff --git a/plugins/new_user_dialog/package.xml b/plugins/new_user_dialog/package.xml index 7caa87ca4..198a9fadb 100644 --- a/plugins/new_user_dialog/package.xml +++ b/plugins/new_user_dialog/package.xml @@ -13,10 +13,10 @@ <email>roundcube@gmail.com</email> <active>yes</active> </lead> - <date>2010-05-27</date> + <date>2010-12-02</date> <time>12:00:00</time> <version> - <release>1.2</release> + <release>1.3</release> <api>1.0</api> </version> <stability> @@ -25,8 +25,8 @@ </stability> <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> <notes> -- Add overlay box only to mail task main template -- Fix possible error on form submission (#1486103) +- Added setting of focus on name input +- Added gl_ES translation </notes> <contents> <dir baseinstalldir="/" name="/"> @@ -45,6 +45,7 @@ <file name="de_DE.inc" role="data" /> <file name="es_ES.inc" role="data" /> <file name="et_EE.inc" role="data" /> + <file name="gl_ES.inc" role="data" /> <file name="it_IT.inc" role="data" /> <file name="ja_JP.inc" role="data" /> <file name="nl_NL.inc" role="data" /> @@ -101,5 +102,22 @@ - Fix space bar and backspace buttons not working (#1486726) </notes> </release> + <release> + <date>2010-05-27</date> + <time>12:00:00</time> + <version> + <release>1.2</release> + <api>1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> + <notes> +- Add overlay box only to mail task main template +- Fix possible error on form submission (#1486103) + </notes> + </release> </changelog> </package> diff --git a/plugins/password/config.inc.php.dist b/plugins/password/config.inc.php.dist index b412663ba..10a659d32 100644 --- a/plugins/password/config.inc.php.dist +++ b/plugins/password/config.inc.php.dist @@ -127,6 +127,7 @@ $rcmail_config['password_ldap_adminPW'] = null; // '%login' will be replaced by the current roundcube user's login // '%name' will be replaced by the current roundcube user's name part // '%domain' will be replaced by the current roundcube user's domain part +// '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" // Exemple: 'uid=%login,ou=people,dc=exemple,dc=com' $rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; @@ -164,6 +165,7 @@ $rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; // '%login' will be replaced by the current roundcube user's login // '%name' will be replaced by the current roundcube user's name part // '%domain' will be replaced by the current roundcube user's domain part +// '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" // Example: '(uid=%login)' // Example: '(&(objectClass=posixAccount)(uid=%login))' $rcmail_config['password_ldap_search_filter'] = '(uid=%login)'; diff --git a/plugins/password/drivers/chpasswd.php b/plugins/password/drivers/chpasswd.php index 8450af154..28c3e5d7a 100644 --- a/plugins/password/drivers/chpasswd.php +++ b/plugins/password/drivers/chpasswd.php @@ -18,7 +18,7 @@ function password_save($currpass, $newpass) $username = $_SESSION['username']; $handle = popen($cmd, "w"); - fwrite($handle, "$username:$newpass"); + fwrite($handle, "$username:$newpass\n"); if (pclose($handle) == 0) { return PASSWORD_SUCCESS; diff --git a/plugins/password/drivers/ldap.php b/plugins/password/drivers/ldap.php index c5cb2328a..98b6636be 100644 --- a/plugins/password/drivers/ldap.php +++ b/plugins/password/drivers/ldap.php @@ -18,18 +18,18 @@ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); require_once ('Net/LDAP2.php'); - + // Building user DN if ($userDN = $rcmail->config->get('password_ldap_userDN_mask')) { $userDN = substitute_vars($userDN); } else { $userDN = search_userdn($rcmail); } - + if (empty($userDN)) { return PASSWORD_CONNECT_ERROR; } - + // Connection Method switch($rcmail->config->get('password_ldap_method')) { case 'admin': @@ -42,7 +42,7 @@ function password_save($curpass, $passwd) $bindpw = $curpass; break; } - + // Configuration array $ldapConfig = array ( 'binddn' => $binddn, @@ -53,27 +53,27 @@ function password_save($curpass, $passwd) 'starttls' => $rcmail->config->get('password_ldap_starttls'), 'version' => $rcmail->config->get('password_ldap_version'), ); - + // Connecting using the configuration array $ldap = Net_LDAP2::connect($ldapConfig); - + // Checking for connection error if (PEAR::isError($ldap)) { return PASSWORD_CONNECT_ERROR; } - + // Crypting new password $newCryptedPassword = hashPassword($passwd, $rcmail->config->get('password_ldap_encodage')); if (!$newCryptedPassword) { return PASSWORD_CRYPT_ERROR; } - + // Writing new crypted password to LDAP $userEntry = $ldap->getEntry($userDN); if (Net_LDAP2::isError($userEntry)) { return PASSWORD_CONNECT_ERROR; } - + $pwattr = $rcmail->config->get('password_ldap_pwattr'); $force = $rcmail->config->get('password_ldap_force_replace'); @@ -132,25 +132,30 @@ function search_userdn($rcmail) if (PEAR::isError($result) || ($result->count() != 1)) { return ''; } - + return $result->current()->dn(); } /** - * Substitute %login, %name and %domain in $str. + * Substitute %login, %name, %domain, %dc in $str. * See plugin config for details. */ function substitute_vars($str) { $rcmail = rcmail::get_instance(); + $domain = $rcmail->user->get_username('domain'); + $dc = 'dc='.strtr($domain, array('.' => ',dc=')); // hierarchal domain string + $str = str_replace(array( '%login', '%name', '%domain', + '%dc', ), array( $_SESSION['username'], $rcmail->user->get_username('local'), - $rcmail->user->get_username('domain'), + $domain, + $dc, ), $str ); @@ -178,7 +183,7 @@ function hashPassword( $passwordClear, $encodageType ) case 'crypt': $cryptedPassword = '{CRYPT}' . crypt($passwordClear,randomSalt(2)); break; - + case 'ext_des': // extended des crypt. see OpenBSD crypt man page. if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) { @@ -263,8 +268,7 @@ function hashPassword( $passwordClear, $encodageType ) * @param int $length The length of the salt string to generate. * @return string The generated salt string. */ - -function randomSalt( $length ) +function randomSalt( $length ) { $possible = '0123456789'. 'abcdefghijklmnopqrstuvwxyz'. @@ -273,8 +277,8 @@ function randomSalt( $length ) $str = ''; // mt_srand((double)microtime() * 1000000); - while( strlen( $str ) < $length ) - $str .= substr( $possible, ( rand() % strlen( $possible ) ), 1 ); + while (strlen($str) < $length) + $str .= substr($possible, (rand() % strlen($possible)), 1); return $str; } diff --git a/plugins/password/drivers/ldap_simple.php b/plugins/password/drivers/ldap_simple.php index 541afa96b..38db9f129 100644 --- a/plugins/password/drivers/ldap_simple.php +++ b/plugins/password/drivers/ldap_simple.php @@ -20,7 +20,7 @@ function password_save($curpass, $passwd) return PASSWORD_CONNECT_ERROR; } - /* Set protocol version */ + /* Set protocol version */ if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $rcmail->config->get('password_ldap_version'))) { ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; @@ -40,12 +40,12 @@ function password_save($curpass, $passwd) } else { $user_dn = ldap_simple_search_userdn($rcmail, $ds); } - + if (empty($user_dn)) { ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; } - + /* Connection method */ switch ($rcmail->config->get('password_ldap_method')) { case 'admin': @@ -64,27 +64,27 @@ function password_save($curpass, $passwd) ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; } - + /* Crypting new password */ $passwd = ldap_simple_hash_password($passwd, $rcmail->config->get('password_ldap_encodage')); if (!$passwd) { ldap_unbind($ds); return PASSWORD_CRYPT_ERROR; } - + $entree[$rcmail->config->get('password_ldap_pwattr')] = $passwd; /* Updating PasswordLastChange Attribute if desired */ if ($lchattr = $rcmail->config->get('password_ldap_lchattr')) { - $entree[$lchattr] = (int)(time() / 86400) + $entree[$lchattr] = (int)(time() / 86400); } - + if (!ldap_modify($ds, $user_dn, $entree)) { ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; } - + /* All done, no error */ ldap_unbind($ds); return PASSWORD_SUCCESS; @@ -101,34 +101,37 @@ function ldap_simple_search_userdn($rcmail, $ds) if (!ldap_bind($ds, $rcmail->config->get('password_ldap_searchDN'), $rcmail->config->get('password_ldap_searchPW'))) { return false; } - + /* Search for the DN */ if (!$sr = ldap_search($ds, $rcmail->config->get('password_ldap_search_base'), ldap_simple_substitute_vars($rcmail->config->get('password_ldap_search_filter')))) { return false; } - + /* If no or more entries were found, return false */ if (ldap_count_entries($ds, $sr) != 1) { return false; } - + return ldap_get_dn($ds, ldap_first_entry($ds, $sr)); } /** - * Substitute %login, %name and %domain in $str + * Substitute %login, %name, %domain, %dc in $str * See plugin config for details */ function ldap_simple_substitute_vars($str) { $str = str_replace('%login', $_SESSION['username'], $str); $str = str_replace('%l', $_SESSION['username'], $str); - + $parts = explode('@', $_SESSION['username']); + if (count($parts) == 2) { + $dc = 'dc='.strtr($parts[1], array('.' => ',dc=')); // hierarchal domain string + $str = str_replace('%name', $parts[0], $str); - $str = str_replace('%n', $parts[0], $str); - + $str = str_replace('%n', $parts[0], $str); + $str = str_replace('%dc', $dc, $str); $str = str_replace('%domain', $parts[1], $str); $str = str_replace('%d', $parts[1], $str); } @@ -228,6 +231,6 @@ function ldap_simple_random_salt($length) while (strlen($str) < $length) { $str .= substr($possible, (rand() % strlen($possible)), 1); } - + return $str; } diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php index 70e564396..33469ec62 100644 --- a/plugins/password/drivers/sql.php +++ b/plugins/password/drivers/sql.php @@ -33,7 +33,7 @@ function password_save($curpass, $passwd) if ($err = $db->is_error()) return PASSWORD_ERROR; - + // crypted password if (strpos($sql, '%c') !== FALSE) { $salt = ''; @@ -56,7 +56,11 @@ function password_save($curpass, $passwd) $dovecotpw = 'dovecotpw'; if (!($method = $rcmail->config->get('password_dovecotpw_method'))) $method = 'CRAM-MD5'; - $tmpfile = tempnam('/tmp', 'roundcube-'); + + // use common temp dir + $tmp_dir = $rcmail->config->get('temp_dir'); + $tmpfile = tempnam($tmp_dir, 'roundcube-'); + $pipe = popen("'$dovecotpw' -s '$method' > '$tmpfile'", "w"); if (!$pipe) { unlink($tmpfile); diff --git a/plugins/password/package.xml b/plugins/password/package.xml index 1fe49fb74..381783b97 100644 --- a/plugins/password/package.xml +++ b/plugins/password/package.xml @@ -29,6 +29,10 @@ <notes> - hMail driver: add username_domain detection (#1487100) - hMail driver: HTML tags in logged messages should be stripped off (#1487099) +- Chpasswd driver: add newline at end of input to chpasswd binary (#1487141) +- Fix usage of configured temp_dir instead of /tmp (#1487447) +- ldap_simple driver: fix parse error +- ldap/ldap_simple drivers: support %dc variable in config </notes> <contents> <dir baseinstalldir="/" name="/"> diff --git a/program/include/iniset.php b/program/include/iniset.php index a48ca9edf..8ccef8a7d 100755 --- a/program/include/iniset.php +++ b/program/include/iniset.php @@ -36,7 +36,7 @@ foreach ($crit_opts as $optname => $optval) { } // application constants -define('RCMAIL_VERSION', '0.5-beta'); +define('RCMAIL_VERSION', '0.5-rc'); define('RCMAIL_CHARSET', 'UTF-8'); define('JS_OBJECT_NAME', 'rcmail'); define('RCMAIL_START', microtime(true)); diff --git a/program/include/main.inc b/program/include/main.inc index 7ea4ae20f..b61f8aea2 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1193,21 +1193,33 @@ function rcmail_log_login() if (!$RCMAIL->config->get('log_logins') || !$RCMAIL->user) return; - $address = $_SERVER['REMOTE_ADDR']; - // append the NGINX X-Real-IP header, if set - if (!empty($_SERVER['HTTP_X_REAL_IP'])) { - $remote_ip[] = 'X-Real-IP: ' . $_SERVER['HTTP_X_REAL_IP']; - } - // append the X-Forwarded-For header, if set - if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { - $remote_ip[] = 'X-Forwarded-For: ' . $_SERVER['HTTP_X_FORWARDED_FOR']; - } + write_log('userlogins', sprintf('Successful login for %s (ID: %d) from %s', + $RCMAIL->user->get_username(), $RCMAIL->user->ID, rcmail_remote_ip())); +} - if (!empty($remote_ip)) - $address .= '(' . implode(',', $remote_ip) . ')'; - write_log('userlogins', sprintf('Successful login for %s (ID: %d) from %s', - $RCMAIL->user->get_username(), $RCMAIL->user->ID, $address)); +/** + * Returns remote IP address and forwarded addresses if found + * + * @return string Remote IP address(es) + */ +function rcmail_remote_ip() +{ + $address = $_SERVER['REMOTE_ADDR']; + + // append the NGINX X-Real-IP header, if set + if (!empty($_SERVER['HTTP_X_REAL_IP'])) { + $remote_ip[] = 'X-Real-IP: ' . $_SERVER['HTTP_X_REAL_IP']; + } + // append the X-Forwarded-For header, if set + if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $remote_ip[] = 'X-Forwarded-For: ' . $_SERVER['HTTP_X_FORWARDED_FOR']; + } + + if (!empty($remote_ip)) + $address .= '(' . implode(',', $remote_ip) . ')'; + + return $address; } @@ -1219,7 +1231,7 @@ function rcube_timer() { return microtime(true); } - + /** * @access private @@ -1314,8 +1326,13 @@ function rcmail_mailbox_select($p = array()) $p += array('maxlength' => 100, 'realnames' => false); $a_mailboxes = array(); - - foreach ($RCMAIL->imap->list_mailboxes() as $folder) + + if ($p['unsubscribed']) + $list = $RCMAIL->imap->list_unsubscribed(); + else + $list = $RCMAIL->imap->list_mailboxes(); + + foreach ($list as $folder) if (empty($p['exceptions']) || !in_array($folder, $p['exceptions'])) rcmail_build_folder_tree($a_mailboxes, $folder, $RCMAIL->imap->get_hierarchy_delimiter()); @@ -1551,6 +1568,97 @@ function rcmail_localize_foldername($name) } +function rcmail_quota_display($attrib) +{ + global $OUTPUT; + + if (!$attrib['id']) + $attrib['id'] = 'rcmquotadisplay'; + + if(isset($attrib['display'])) + $_SESSION['quota_display'] = $attrib['display']; + + $OUTPUT->add_gui_object('quotadisplay', $attrib['id']); + + $quota = rcmail_quota_content($attrib); + + $OUTPUT->add_script('$(document).ready(function(){ + rcmail.set_quota('.json_serialize($quota).')});', 'foot'); + + return html::span($attrib, ''); +} + + +function rcmail_quota_content($attrib=NULL) +{ + global $RCMAIL; + + $quota = $RCMAIL->imap->get_quota(); + $quota = $RCMAIL->plugins->exec_hook('quota', $quota); + + $quota_result = (array) $quota; + $quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : ''; + + if (!$quota['total'] && $RCMAIL->config->get('quota_zero_as_unlimited')) { + $quota_result['title'] = rcube_label('unlimited'); + $quota_result['percent'] = 0; + } + else if ($quota['total']) { + if (!isset($quota['percent'])) + $quota_result['percent'] = min(100, round(($quota['used']/max(1,$quota['total']))*100)); + + $title = sprintf('%s / %s (%.0f%%)', + show_bytes($quota['used'] * 1024), show_bytes($quota['total'] * 1024), + $quota_result['percent']); + + $quota_result['title'] = $title; + + if ($attrib['width']) + $quota_result['width'] = $attrib['width']; + if ($attrib['height']) + $quota_result['height'] = $attrib['height']; + } + else { + $quota_result['title'] = rcube_label('unknown'); + $quota_result['percent'] = 0; + } + + return $quota_result; +} + + +/** + * Outputs error message according to server error/response codes + * + * @param string Fallback message label + * @param string Fallback message label arguments + * + * @return void + */ +function rcmail_display_server_error($fallback=null, $fallback_args=null) +{ + global $RCMAIL; + + $err_code = $RCMAIL->imap->get_error_code(); + $res_code = $RCMAIL->imap->get_response_code(); + + if ($res_code == rcube_imap::NOPERM) { + $RCMAIL->output->show_message('errornoperm', 'error'); + } + else if ($res_code == rcube_imap::READONLY) { + $RCMAIL->output->show_message('errorreadonly', 'error'); + } + else if ($err_code && ($err_str = $RCMAIL->imap->get_error_str())) { + $RCMAIL->output->show_message('servererrormsg', 'error', array('msg' => $err_str)); + } + else if ($fallback) { + $RCMAIL->output->show_message($fallback, 'error', $fallback_args); + } + + return true; +} + + /** * Output HTML editor scripts * @@ -1583,6 +1691,43 @@ function rcube_html_editor($mode='') /** + * Replaces TinyMCE's emoticon images with plain-text representation + * + * @param string HTML content + * @return string HTML content + */ +function rcmail_replace_emoticons($html) +{ + $emoticons = array( + '8-)' => 'smiley-cool', + ':-#' => 'smiley-foot-in-mouth', + ':-*' => 'smiley-kiss', + ':-X' => 'smiley-sealed', + ':-P' => 'smiley-tongue-out', + ':-@' => 'smiley-yell', + ":'(" => 'smiley-cry', + ':-(' => 'smiley-frown', + ':-D' => 'smiley-laughing', + ':-)' => 'smiley-smile', + ':-S' => 'smiley-undecided', + ':-$' => 'smiley-embarassed', + 'O:-)' => 'smiley-innocent', + ':-|' => 'smiley-money-mouth', + ':-O' => 'smiley-surprised', + ';-)' => 'smiley-wink', + ); + + foreach ($emoticons as $idx => $file) { + // <img title="Cry" src="http://.../program/js/tiny_mce/plugins/emotions/img/smiley-cry.gif" border="0" alt="Cry" /> + $search[] = '/<img title="[a-z ]+" src="https?:\/\/[a-z0-9_.\/-]+\/tiny_mce\/plugins\/emotions\/img\/'.$file.'.gif"[^>]+\/>/i'; + $replace[] = $idx; + } + + return preg_replace($search, $replace, $html); +} + + +/** * Check if working in SSL mode * * @param integer HTTPS port number @@ -1817,3 +1962,4 @@ function log_bug($arg_arr) flush(); } } + diff --git a/program/include/rcmail.php b/program/include/rcmail.php index e76b1420a..0eecd8ddb 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -678,10 +678,16 @@ class rcmail $username .= '@'.rcube_parse_host($config['username_domain']); } + // Convert username to lowercase. If IMAP backend + // is case-insensitive we need to store always the same username (#1487113) + if ($config['login_lc']) { + $username = mb_strtolower($username); + } + // try to resolve email address from virtuser table - if (strpos($username, '@')) - if ($virtuser = rcube_user::email2user($username)) - $username = $virtuser; + if (strpos($username, '@') && ($virtuser = rcube_user::email2user($username))) { + $username = $virtuser; + } // Here we need IDNA ASCII // Only rcube_contacts class is using domain names in Unicode @@ -704,8 +710,14 @@ class rcmail if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl))) { // try with lowercase $username_lc = mb_strtolower($username); - if ($username_lc != $username && ($imap_login = $this->imap->connect($host, $username_lc, $pass, $imap_port, $imap_ssl))) - $username = $username_lc; + if ($username_lc != $username) { + // try to find user record again -> overwrite username + if (!$user && ($user = rcube_user::query($username_lc, $host))) + $username_lc = $user->data['username']; + + if ($imap_login = $this->imap->connect($host, $username_lc, $pass, $imap_port, $imap_ssl)) + $username = $username_lc; + } } // exit if IMAP login failed @@ -1203,8 +1215,14 @@ class rcmail if (function_exists('mcrypt_module_open') && ($td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_CBC, ""))) { - $iv = substr($cipher, 0, mcrypt_enc_get_iv_size($td)); - $cipher = substr($cipher, mcrypt_enc_get_iv_size($td)); + $iv_size = mcrypt_enc_get_iv_size($td); + $iv = substr($cipher, 0, $iv_size); + + // session corruption? (#1485970) + if (strlen($iv) < $iv_size) + return ''; + + $cipher = substr($cipher, $iv_size); mcrypt_generic_init($td, $this->config->get_crypto_key($key), $iv); $clear = mdecrypt_generic($td, $cipher); mcrypt_generic_deinit($td); diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 212e8865e..5715459a8 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -100,6 +100,16 @@ class rcube_imap 'RETURN-PATH', ); + const UNKNOWN = 0; + const NOPERM = 1; + const READONLY = 2; + const TRYCREATE = 3; + const INUSE = 4; + const OVERQUOTA = 5; + const ALREADYEXISTS = 6; + const NONEXISTENT = 7; + const CONTACTADMIN = 8; + /** * Object constructor @@ -156,21 +166,20 @@ class rcube_imap $this->ssl = $use_ssl; if ($this->conn->connected()) { - // print trace messages - if ($this->conn->message && ($this->debug_level & 8)) { - console($this->conn->message); - } // get namespace and delimiter $this->set_env(); - return true; } // write error log else if ($this->conn->error) { - if ($pass && $user) + if ($pass && $user) { + $message = sprintf("Login failed for %s from %s. %s", + $user, rcmail_remote_ip(), $this->conn->error); + raise_error(array('code' => 403, 'type' => 'imap', 'file' => __FILE__, 'line' => __LINE__, - 'message' => $this->conn->error), true, false); + 'message' => $message), true, false); + } } return false; @@ -185,7 +194,7 @@ class rcube_imap */ function close() { - $this->conn->close(); + $this->conn->closeConnection(); $this->write_cache(); } @@ -198,11 +207,11 @@ class rcube_imap */ function reconnect() { - $this->close(); - $this->connect($this->host, $this->user, $this->pass, $this->port, $this->ssl); + $this->conn->closeConnection(); + $connected = $this->connect($this->host, $this->user, $this->pass, $this->port, $this->ssl); // issue SELECT command to restore connection status - if ($this->mailbox) + if ($connected && strlen($this->mailbox)) $this->conn->select($this->mailbox); } @@ -225,7 +234,51 @@ class rcube_imap */ function get_error_str() { - return ($this->conn) ? $this->conn->error : ''; + return ($this->conn) ? $this->conn->error : null; + } + + + /** + * Returns code of last command response + * + * @return int Response code + */ + function get_response_code() + { + if (!$this->conn) + return self::UNKNOWN; + + switch ($this->conn->resultcode) { + case 'NOPERM': + return self::NOPERM; + case 'READ-ONLY': + return self::READONLY; + case 'TRYCREATE': + return self::TRYCREATE; + case 'INUSE': + return self::INUSE; + case 'OVERQUOTA': + return self::OVERQUOTA; + case 'ALREADYEXISTS': + return self::ALREADYEXISTS; + case 'NONEXISTENT': + return self::NONEXISTENT; + case 'CONTACTADMIN': + return self::CONTACTADMIN; + default: + return self::UNKNOWN; + } + } + + + /** + * Returns last command response + * + * @return string Response + */ + function get_response_str() + { + return ($this->conn) ? $this->conn->result : null; } @@ -300,9 +353,9 @@ class rcube_imap * @param string $mailbox Mailbox/Folder name * @access public */ - function select_mailbox($mailbox) + function select_mailbox($mailbox=null) { - $mailbox = $this->mod_mailbox($mailbox); + $mailbox = strlen($mailbox) ? $this->mod_mailbox($mailbox) : $this->mailbox; $selected = $this->conn->select($mailbox); @@ -493,56 +546,56 @@ class rcube_imap $imap_shared = $config->get('imap_ns_shared'); $imap_delimiter = $config->get('imap_delimiter'); - if ($imap_delimiter) { - $this->delimiter = $imap_delimiter; - } - if (!$this->conn) return; $ns = $this->conn->getNamespace(); - // NAMESPACE supported + // Set namespaces (NAMESPACE supported) if (is_array($ns)) { $this->namespace = $ns; - - if (empty($this->delimiter)) - $this->delimiter = $ns['personal'][0][1]; - if (empty($this->delimiter)) - $this->delimiter = $this->conn->getHierarchyDelimiter(); - if (empty($this->delimiter)) - $this->delimiter = '/'; } - // not supported, get namespace from config - else if ($imap_personal !== null || $imap_shared !== null || $imap_other !== null) { - if (empty($this->delimiter)) - $this->delimiter = $this->conn->getHierarchyDelimiter(); - if (empty($this->delimiter)) - $this->delimiter = '/'; - + else { $this->namespace = array( 'personal' => NULL, 'other' => NULL, 'shared' => NULL, ); + } - if ($imap_personal !== null) { - foreach ((array)$imap_personal as $dir) { - $this->namespace['personal'][] = array($dir, $this->delimiter); - } + if ($imap_delimiter) { + $this->delimiter = $imap_delimiter; + } + if (empty($this->delimiter)) { + $this->delimiter = $this->namespace['personal'][0][1]; + } + if (empty($this->delimiter)) { + $this->delimiter = $this->conn->getHierarchyDelimiter(); + } + if (empty($this->delimiter)) { + $this->delimiter = '/'; + } + + // Overwrite namespaces + if ($imap_personal !== null) { + $this->namespace['personal'] = NULL; + foreach ((array)$imap_personal as $dir) { + $this->namespace['personal'][] = array($dir, $this->delimiter); } - if ($imap_other !== null) { - foreach ((array)$imap_other as $dir) { - if ($dir) { - $this->namespace['other'][] = array($dir, $this->delimiter); - } + } + if ($imap_other !== null) { + $this->namespace['other'] = NULL; + foreach ((array)$imap_other as $dir) { + if ($dir) { + $this->namespace['other'][] = array($dir, $this->delimiter); } } - if ($imap_shared !== null) { - foreach ((array)$imap_shared as $dir) { - if ($dir) { - $this->namespace['shared'][] = array($dir, $this->delimiter); - } + } + if ($imap_shared !== null) { + $this->namespace['shared'] = NULL; + foreach ((array)$imap_shared as $dir) { + if ($dir) { + $this->namespace['shared'][] = array($dir, $this->delimiter); } } } @@ -617,7 +670,7 @@ class rcube_imap } // RECENT count is fetched a bit different else if ($mode == 'RECENT') { - $count = $this->conn->checkForRecent($mailbox); + $count = $this->conn->countRecent($mailbox); } // use SEARCH for message counting else if ($this->skip_deleted) { @@ -2376,20 +2429,21 @@ class rcube_imap // TODO: Add caching for message parts - if (!$part) $part = 'TEXT'; + if (!$part) { + $part = 'TEXT'; + } $body = $this->conn->handlePartBody($this->mailbox, $uid, true, $part, $o_part->encoding, $print, $fp); - if ($fp || $print) + if ($fp || $print) { return true; + } - // convert charset (if text or message part) - if ($body && ($o_part->ctype_primary == 'text' || $o_part->ctype_primary == 'message')) { - // assume default if no charset specified - if (empty($o_part->charset) || strtolower($o_part->charset) == 'us-ascii') - $o_part->charset = $this->default_charset; - + // convert charset (if text or message part) and part's charset is specified + if ($body && $o_part->charset + && preg_match('/^(text|message)$/', $o_part->ctype_primary) + ) { $body = rcube_charset_convert($body, $o_part->charset); } @@ -2553,6 +2607,9 @@ class rcube_imap $to_mbox = $this->mod_mailbox($to_mbox); $from_mbox = strlen($from_mbox) ? $this->mod_mailbox($from_mbox) : $this->mailbox; + if ($to_mbox === $from_mbox) + return false; + list($uids, $all_mode) = $this->_parse_uids($uids, $from_mbox); // exit if no message uids are specified @@ -2771,7 +2828,23 @@ class rcube_imap else $a_uids = NULL; - $result = $this->conn->expunge($mailbox, $a_uids); + // force mailbox selection and check if mailbox is writeable + // to prevent a situation when CLOSE is executed on closed + // or EXPUNGE on read-only mailbox + $result = $this->conn->select($mailbox); + if (!$result) { + return false; + } + if (!$this->conn->data['READ-WRITE']) { + $this->conn->setError(rcube_imap_generic::ERROR_READONLY, "Mailbox is read-only"); + return false; + } + + // CLOSE(+SELECT) should be faster than EXPUNGE + if (empty($a_uids) || $a_uids == '1:*') + $result = $this->conn->close(); + else + $result = $this->conn->expunge($mailbox, $a_uids); if ($result && $clear_cache) { $this->clear_message_cache($mailbox.'.msg'); @@ -3009,6 +3082,26 @@ class rcube_imap /** + * Get mailbox size (size of all messages in a mailbox) + * + * @param string $name Mailbox name + * @return int Mailbox size in bytes, False on error + */ + function get_mailbox_size($name) + { + $name = $this->mod_mailbox($name); + + // @TODO: could we try to use QUOTA here? + $result = $this->conn->fetchHeaderIndex($name, '1:*', 'SIZE', false); + + if (is_array($result)) + $result = array_sum($result); + + return $result; + } + + + /** * Subscribe to a specific mailbox(es) * * @param array $a_mboxes Mailbox name(s) @@ -3043,130 +3136,120 @@ class rcube_imap /** * Create a new mailbox on the server and register it in local cache * - * @param string $name New mailbox name (as utf-7 string) + * @param string $name New mailbox name * @param boolean $subscribe True if the new mailbox should be subscribed - * @param string Name of the created mailbox, false on error + * @param boolean True on success */ function create_mailbox($name, $subscribe=false) { - $result = false; - - // reduce mailbox name to 100 chars - $name = substr($name, 0, 100); + $result = false; $abs_name = $this->mod_mailbox($name); - $result = $this->conn->createFolder($abs_name); + $result = $this->conn->createFolder($abs_name); // try to subscribe it if ($result && $subscribe) $this->subscribe($name); - return $result ? $name : false; + return $result; } /** * Set a new name to an existing mailbox * - * @param string $mbox_name Mailbox to rename (as utf-7 string) - * @param string $new_name New mailbox name (as utf-7 string) - * @return string Name of the renames mailbox, False on error + * @param string $mbox_name Mailbox to rename + * @param string $new_name New mailbox name + * + * @return boolean True on success */ function rename_mailbox($mbox_name, $new_name) { $result = false; - // encode mailbox name and reduce it to 100 chars - $name = substr($new_name, 0, 100); - // make absolute path - $mailbox = $this->mod_mailbox($mbox_name); - $abs_name = $this->mod_mailbox($name); - - // check if mailbox is subscribed - $a_subscribed = $this->_list_mailboxes(); - $subscribed = in_array($mailbox, $a_subscribed); + $mailbox = $this->mod_mailbox($mbox_name); + $abs_name = $this->mod_mailbox($new_name); + $delm = $this->get_hierarchy_delimiter(); - // unsubscribe folder - if ($subscribed) - $this->conn->unsubscribe($mailbox); + // get list of subscribed folders + if ((strpos($mailbox, '%') === false) && (strpos($mailbox, '*') === false)) { + $a_subscribed = $this->_list_mailboxes('', $mbox_name . $delm . '*'); + $subscribed = $this->mailbox_exists($mbox_name, true); + } + else { + $a_subscribed = $this->_list_mailboxes(); + $subscribed = in_array($mailbox, $a_subscribed); + } if (strlen($abs_name)) $result = $this->conn->renameFolder($mailbox, $abs_name); if ($result) { - $delm = $this->get_hierarchy_delimiter(); + // unsubscribe the old folder, subscribe the new one + if ($subscribed) { + $this->conn->unsubscribe($mailbox); + $this->conn->subscribe($abs_name); + } // check if mailbox children are subscribed - foreach ($a_subscribed as $c_subscribed) + foreach ($a_subscribed as $c_subscribed) { if (preg_match('/^'.preg_quote($mailbox.$delm, '/').'/', $c_subscribed)) { $this->conn->unsubscribe($c_subscribed); $this->conn->subscribe(preg_replace('/^'.preg_quote($mailbox, '/').'/', $abs_name, $c_subscribed)); } + } // clear cache $this->clear_message_cache($mailbox.'.msg'); $this->clear_cache('mailboxes'); } - // try to subscribe it - if ($result && $subscribed) - $this->conn->subscribe($abs_name); - - return $result ? $name : false; + return $result; } /** - * Remove mailboxes from server + * Remove mailbox from server + * + * @param string $mbox_name Mailbox name * - * @param string|array $mbox_name sMailbox name(s) string/array * @return boolean True on success */ function delete_mailbox($mbox_name) { - $deleted = false; + $result = false; + $mailbox = $this->mod_mailbox($mbox_name); + $delm = $this->get_hierarchy_delimiter(); - if (is_array($mbox_name)) - $a_mboxes = $mbox_name; - else if (is_string($mbox_name) && strlen($mbox_name)) - $a_mboxes = explode(',', $mbox_name); + // get list of folders + if ((strpos($mailbox, '%') === false) && (strpos($mailbox, '*') === false)) + $sub_mboxes = $this->list_unsubscribed('', $mailbox . $delm . '*'); + else + $sub_mboxes = $this->list_unsubscribed(); - if (is_array($a_mboxes)) { - $delimiter = $this->get_hierarchy_delimiter(); - - foreach ($a_mboxes as $mbox_name) { - $mailbox = $this->mod_mailbox($mbox_name); - $sub_mboxes = $this->conn->listMailboxes('', $mbox_name . $delimiter . '*'); + // send delete command to server + $result = $this->conn->deleteFolder($mailbox); - // unsubscribe mailbox before deleting - $this->conn->unsubscribe($mailbox); + if ($result) { + // unsubscribe mailbox + $this->conn->unsubscribe($mailbox); - // send delete command to server - $result = $this->conn->deleteFolder($mailbox); - if ($result) { - $deleted = true; - $this->clear_message_cache($mailbox.'.msg'); - } - - foreach ($sub_mboxes as $c_mbox) { - if ($c_mbox != 'INBOX') { - $this->conn->unsubscribe($c_mbox); - $result = $this->conn->deleteFolder($c_mbox); - if ($result) { - $deleted = true; - $this->clear_message_cache($c_mbox.'.msg'); - } + foreach ($sub_mboxes as $c_mbox) { + if (preg_match('/^'.preg_quote($mailbox.$delm, '/').'/', $c_mbox)) { + $this->conn->unsubscribe($c_mbox); + if ($this->conn->deleteFolder($c_mbox)) { + $this->clear_message_cache($c_mbox.'.msg'); } } } - } - // clear mailboxlist cache - if ($deleted) + // clear mailbox-related cache + $this->clear_message_cache($mailbox.'.msg'); $this->clear_cache('mailboxes'); + } - return $deleted; + return $result; } @@ -3208,7 +3291,7 @@ class rcube_imap } else { $a_folders = $this->conn->listMailboxes('', $mbox); - } + } if (is_array($a_folders) && in_array($mbox, $a_folders)) { $this->icache[$key][] = $mbox; diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index 16c9d4a64..e5e06c440 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | program/include/rcube_imap_generic.php | | | @@ -29,45 +29,45 @@ /** * Struct representing an e-mail message header * - * @package Mail - * @author Aleksander Machniak <alec@alec.pl> + * @package Mail + * @author Aleksander Machniak <alec@alec.pl> */ class rcube_mail_header { - public $id; - public $uid; - public $subject; - public $from; - public $to; - public $cc; - public $replyto; - public $in_reply_to; - public $date; - public $messageID; - public $size; - public $encoding; - public $charset; - public $ctype; - public $flags; - public $timestamp; - public $body_structure; - public $internaldate; - public $references; - public $priority; - public $mdn_to; - public $mdn_sent = false; - public $is_draft = false; - public $seen = false; - public $deleted = false; - public $recent = false; - public $answered = false; - public $forwarded = false; - public $junk = false; - public $flagged = false; - public $has_children = false; - public $depth = 0; - public $unread_children = 0; - public $others = array(); + public $id; + public $uid; + public $subject; + public $from; + public $to; + public $cc; + public $replyto; + public $in_reply_to; + public $date; + public $messageID; + public $size; + public $encoding; + public $charset; + public $ctype; + public $flags; + public $timestamp; + public $body_structure; + public $internaldate; + public $references; + public $priority; + public $mdn_to; + public $mdn_sent = false; + public $is_draft = false; + public $seen = false; + public $deleted = false; + public $recent = false; + public $answered = false; + public $forwarded = false; + public $junk = false; + public $flagged = false; + public $has_children = false; + public $depth = 0; + public $unread_children = 0; + public $others = array(); } // For backward compatibility with cached messages (#1486602) @@ -78,14 +78,15 @@ class iilBasicHeader extends rcube_mail_header /** * PHP based wrapper class to connect to an IMAP server * - * @package Mail - * @author Aleksander Machniak <alec@alec.pl> + * @package Mail + * @author Aleksander Machniak <alec@alec.pl> */ class rcube_imap_generic { public $error; public $errornum; - public $message; + public $result; + public $resultcode; public $data = array(); public $flags = array( 'SEEN' => '\\Seen', @@ -100,11 +101,11 @@ class rcube_imap_generic ); private $selected; - private $fp; - private $host; - private $logged = false; - private $capability = array(); - private $capability_readed = false; + private $fp; + private $host; + private $logged = false; + private $capability = array(); + private $capability_readed = false; private $prefs; private $cmd_tag; private $cmd_num = 0; @@ -113,8 +114,9 @@ class rcube_imap_generic const ERROR_NO = -1; const ERROR_BAD = -2; const ERROR_BYE = -3; - const ERROR_COMMAND = -5; const ERROR_UNKNOWN = -4; + const ERROR_COMMAND = -5; + const ERROR_READONLY = -6; const COMMAND_NORESPONSE = 1; const COMMAND_CAPABILITY = 2; @@ -140,16 +142,16 @@ class rcube_imap_generic if (!$this->fp) return false; - if (!empty($this->prefs['debug_mode'])) { - write_log('imap', 'C: '. rtrim($string)); - } + if (!empty($this->prefs['debug_mode'])) { + write_log('imap', 'C: '. rtrim($string)); + } $res = fwrite($this->fp, $string . ($endln ? "\r\n" : '')); - if ($res === false) { - @fclose($this->fp); - $this->fp = null; - } + if ($res === false) { + @fclose($this->fp); + $this->fp = null; + } return $res; } @@ -168,161 +170,174 @@ class rcube_imap_generic if (!$this->fp) return false; - if ($endln) - $string .= "\r\n"; + if ($endln) + $string .= "\r\n"; - $res = 0; - if ($parts = preg_split('/(\{[0-9]+\}\r\n)/m', $string, -1, PREG_SPLIT_DELIM_CAPTURE)) { - for ($i=0, $cnt=count($parts); $i<$cnt; $i++) { - if (preg_match('/^\{[0-9]+\}\r\n$/', $parts[$i+1])) { + $res = 0; + if ($parts = preg_split('/(\{[0-9]+\}\r\n)/m', $string, -1, PREG_SPLIT_DELIM_CAPTURE)) { + for ($i=0, $cnt=count($parts); $i<$cnt; $i++) { + if (preg_match('/^\{[0-9]+\}\r\n$/', $parts[$i+1])) { // LITERAL+ support if ($this->prefs['literal+']) $parts[$i+1] = preg_replace('/([0-9]+)/', '\\1+', $parts[$i+1]); - $bytes = $this->putLine($parts[$i].$parts[$i+1], false); + $bytes = $this->putLine($parts[$i].$parts[$i+1], false); if ($bytes === false) return false; $res += $bytes; // don't wait if server supports LITERAL+ capability if (!$this->prefs['literal+']) { - $line = $this->readLine(1000); - // handle error in command - if ($line[0] != '+') - return false; - } + $line = $this->readLine(1000); + // handle error in command + if ($line[0] != '+') + return false; + } $i++; - } - else { - $bytes = $this->putLine($parts[$i], false); + } + else { + $bytes = $this->putLine($parts[$i], false); if ($bytes === false) return false; $res += $bytes; } - } - } + } + } - return $res; + return $res; } function readLine($size=1024) { - $line = ''; + $line = ''; - if (!$this->fp) { - return NULL; - } + if (!$this->fp) { + return NULL; + } - if (!$size) { - $size = 1024; - } + if (!$size) { + $size = 1024; + } - do { - if (feof($this->fp)) { - return $line ? $line : NULL; - } + do { + if (feof($this->fp)) { + return $line ? $line : NULL; + } - $buffer = fgets($this->fp, $size); + $buffer = fgets($this->fp, $size); - if ($buffer === false) { - @fclose($this->fp); - $this->fp = null; - break; - } - if (!empty($this->prefs['debug_mode'])) { - write_log('imap', 'S: '. rtrim($buffer)); - } + if ($buffer === false) { + @fclose($this->fp); + $this->fp = null; + break; + } + if (!empty($this->prefs['debug_mode'])) { + write_log('imap', 'S: '. rtrim($buffer)); + } $line .= $buffer; - } while ($buffer[strlen($buffer)-1] != "\n"); + } while ($buffer[strlen($buffer)-1] != "\n"); - return $line; + return $line; } function multLine($line, $escape=false) { - $line = rtrim($line); - if (preg_match('/\{[0-9]+\}$/', $line)) { - $out = ''; + $line = rtrim($line); + if (preg_match('/\{[0-9]+\}$/', $line)) { + $out = ''; - preg_match_all('/(.*)\{([0-9]+)\}$/', $line, $a); - $bytes = $a[2][0]; - while (strlen($out) < $bytes) { - $line = $this->readBytes($bytes); - if ($line === NULL) - break; - $out .= $line; - } + preg_match_all('/(.*)\{([0-9]+)\}$/', $line, $a); + $bytes = $a[2][0]; + while (strlen($out) < $bytes) { + $line = $this->readBytes($bytes); + if ($line === NULL) + break; + $out .= $line; + } - $line = $a[1][0] . ($escape ? $this->escape($out) : $out); - } + $line = $a[1][0] . ($escape ? $this->escape($out) : $out); + } return $line; } function readBytes($bytes) { - $data = ''; - $len = 0; - while ($len < $bytes && !feof($this->fp)) - { - $d = fread($this->fp, $bytes-$len); - if (!empty($this->prefs['debug_mode'])) { - write_log('imap', 'S: '. $d); + $data = ''; + $len = 0; + while ($len < $bytes && !feof($this->fp)) + { + $d = fread($this->fp, $bytes-$len); + if (!empty($this->prefs['debug_mode'])) { + write_log('imap', 'S: '. $d); } $data .= $d; - $data_len = strlen($data); - if ($len == $data_len) { - break; // nothing was read -> exit to avoid apache lockups - } - $len = $data_len; - } + $data_len = strlen($data); + if ($len == $data_len) { + break; // nothing was read -> exit to avoid apache lockups + } + $len = $data_len; + } - return $data; + return $data; } - // don't use it in loops, until you exactly know what you're doing function readReply(&$untagged=null) { - do { - $line = trim($this->readLine(1024)); + do { + $line = trim($this->readLine(1024)); // store untagged response lines - if ($line[0] == '*') + if ($line[0] == '*') $untagged[] = $line; - } while ($line[0] == '*'); + } while ($line[0] == '*'); if ($untagged) $untagged = join("\n", $untagged); - return $line; + return $line; } function parseResult($string, $err_prefix='') { - if (preg_match('/^[a-z0-9*]+ (OK|NO|BAD|BYE)(.*)$/i', trim($string), $matches)) { - $res = strtoupper($matches[1]); + if (preg_match('/^[a-z0-9*]+ (OK|NO|BAD|BYE)(.*)$/i', trim($string), $matches)) { + $res = strtoupper($matches[1]); $str = trim($matches[2]); - if ($res == 'OK') { - return $this->errornum = self::ERROR_OK; - } else if ($res == 'NO') { + if ($res == 'OK') { + $this->errornum = self::ERROR_OK; + } else if ($res == 'NO') { $this->errornum = self::ERROR_NO; - } else if ($res == 'BAD') { - $this->errornum = self::ERROR_BAD; - } else if ($res == 'BYE') { + } else if ($res == 'BAD') { + $this->errornum = self::ERROR_BAD; + } else if ($res == 'BYE') { @fclose($this->fp); $this->fp = null; - $this->errornum = self::ERROR_BYE; - } + $this->errornum = self::ERROR_BYE; + } + + if ($str) { + $str = trim($str); + // get response string and code (RFC5530) + if (preg_match("/^\[([a-z-]+)\]/i", $str, $m)) { + $this->resultcode = strtoupper($m[1]); + $str = trim(substr($str, strlen($m[1]) + 2)); + } + else { + $this->resultcode = null; + } + $this->result = $str; - if ($str) - $this->error = $err_prefix ? $err_prefix.$str : $str; + if ($this->errornum != self::ERROR_OK) { + $this->error = $err_prefix ? $err_prefix.$str : $str; + } + } - return $this->errornum; - } - return self::ERROR_UNKNOWN; + return $this->errornum; + } + return self::ERROR_UNKNOWN; } - private function setError($code, $msg='') + function setError($code, $msg='') { $this->errornum = $code; $this->error = $msg; @@ -331,59 +346,59 @@ class rcube_imap_generic // check if $string starts with $match (or * BYE/BAD) function startsWith($string, $match, $error=false, $nonempty=false) { - $len = strlen($match); - if ($len == 0) { - return false; - } + $len = strlen($match); + if ($len == 0) { + return false; + } if (!$this->fp) { return true; } - if (strncmp($string, $match, $len) == 0) { - return true; - } - if ($error && preg_match('/^\* (BYE|BAD) /i', $string, $m)) { + if (strncmp($string, $match, $len) == 0) { + return true; + } + if ($error && preg_match('/^\* (BYE|BAD) /i', $string, $m)) { if (strtoupper($m[1]) == 'BYE') { @fclose($this->fp); $this->fp = null; } - return true; - } + return true; + } if ($nonempty && !strlen($string)) { return true; } - return false; + return false; } function getCapability($name) { - if (in_array($name, $this->capability)) { - return true; - } - else if ($this->capability_readed) { - return false; - } + if (in_array($name, $this->capability)) { + return true; + } + else if ($this->capability_readed) { + return false; + } - // get capabilities (only once) because initial - // optional CAPABILITY response may differ + // get capabilities (only once) because initial + // optional CAPABILITY response may differ $result = $this->execute('CAPABILITY'); if ($result[0] == self::ERROR_OK) { $this->parseCapability($result[1]); } - $this->capability_readed = true; + $this->capability_readed = true; - if (in_array($name, $this->capability)) { - return true; - } + if (in_array($name, $this->capability)) { + return true; + } - return false; + return false; } function clearCapability() { - $this->capability = array(); - $this->capability_readed = false; + $this->capability = array(); + $this->capability_readed = false; } /** @@ -401,18 +416,18 @@ class rcube_imap_generic if ($type == 'DIGEST-MD5' && !class_exists('Auth_SASL')) { $this->setError(self::ERROR_BYE, "The Auth_SASL package is required for DIGEST-MD5 authentication"); - return self::ERROR_BAD; + return self::ERROR_BAD; } - $this->putLine($this->nextTag() . " AUTHENTICATE $type"); - $line = trim($this->readLine(1024)); + $this->putLine($this->nextTag() . " AUTHENTICATE $type"); + $line = trim($this->readReply()); - if ($line[0] == '+') { - $challenge = substr($line, 2); + if ($line[0] == '+') { + $challenge = substr($line, 2); } else { return $this->parseResult($line); - } + } if ($type == 'CRAM-MD5') { // RFC2195: CRAM-MD5 @@ -455,10 +470,10 @@ class rcube_imap_generic // send result $this->putLine($reply); - $line = $this->readLine(1024); + $line = trim($this->readReply()); if ($line[0] == '+') { - $challenge = substr($line, 2); + $challenge = substr($line, 2); } else { return $this->parseResult($line); @@ -475,7 +490,7 @@ class rcube_imap_generic $this->putLine(''); } - $line = $this->readLine(1024); + $line = $this->readReply(); $result = $this->parseResult($line); } else { // PLAIN @@ -496,29 +511,29 @@ class rcube_imap_generic self::COMMAND_LASTLINE | self::COMMAND_CAPABILITY); } else { - $this->putLine($this->nextTag() . " AUTHENTICATE PLAIN"); - $line = trim($this->readLine(1024)); + $this->putLine($this->nextTag() . " AUTHENTICATE PLAIN"); + $line = trim($this->readReply()); - if ($line[0] != '+') { - return $this->parseResult($line); - } + if ($line[0] != '+') { + return $this->parseResult($line); + } // send result, get reply and process it $this->putLine($reply); - $line = $this->readLine(1024); + $line = $this->readReply(); $result = $this->parseResult($line); } } if ($result == self::ERROR_OK) { - // optional CAPABILITY response - if ($line && preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) { - $this->parseCapability($matches[1], true); - } + // optional CAPABILITY response + if ($line && preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) { + $this->parseCapability($matches[1], true); + } return $this->fp; } else { - $this->setError($result, "Unable to authenticate user ($type): $line"); + $this->setError($result, "AUTHENTICATE $type: $line"); } return $result; @@ -538,9 +553,9 @@ class rcube_imap_generic $this->escape($user), $this->escape($password)), self::COMMAND_CAPABILITY); // re-set capabilities list if untagged CAPABILITY response provided - if (preg_match('/\* CAPABILITY (.+)/i', $response, $matches)) { - $this->parseCapability($matches[1], true); - } + if (preg_match('/\* CAPABILITY (.+)/i', $response, $matches)) { + $this->parseCapability($matches[1], true); + } if ($code == self::ERROR_OK) { return $this->fp; @@ -556,21 +571,21 @@ class rcube_imap_generic */ function getHierarchyDelimiter() { - if ($this->prefs['delimiter']) { - return $this->prefs['delimiter']; - } + if ($this->prefs['delimiter']) { + return $this->prefs['delimiter']; + } - // try (LIST "" ""), should return delimiter (RFC2060 Sec 6.3.8) - list($code, $response) = $this->execute('LIST', - array($this->escape(''), $this->escape(''))); + // try (LIST "" ""), should return delimiter (RFC2060 Sec 6.3.8) + list($code, $response) = $this->execute('LIST', + array($this->escape(''), $this->escape(''))); if ($code == self::ERROR_OK) { $args = $this->tokenizeResponse($response, 4); $delimiter = $args[3]; - if (strlen($delimiter) > 0) { - return ($this->prefs['delimiter'] = $delimiter); - } + if (strlen($delimiter) > 0) { + return ($this->prefs['delimiter'] = $delimiter); + } } return NULL; @@ -588,18 +603,18 @@ class rcube_imap_generic } if (!$this->getCapability('NAMESPACE')) { - return self::ERROR_BAD; - } + return self::ERROR_BAD; + } - list($code, $response) = $this->execute('NAMESPACE'); + list($code, $response) = $this->execute('NAMESPACE'); - if ($code == self::ERROR_OK && preg_match('/^\* NAMESPACE /', $response)) { - $data = $this->tokenizeResponse(substr($response, 11)); - } + if ($code == self::ERROR_OK && preg_match('/^\* NAMESPACE /', $response)) { + $data = $this->tokenizeResponse(substr($response, 11)); + } - if (!is_array($data)) { - return $code; - } + if (!is_array($data)) { + return $code; + } $this->prefs['namespace'] = array( 'personal' => $data[0], @@ -612,134 +627,132 @@ class rcube_imap_generic function connect($host, $user, $password, $options=null) { - // set options - if (is_array($options)) { + // set options + if (is_array($options)) { $this->prefs = $options; } // set auth method if (!empty($this->prefs['auth_method'])) { $auth_method = strtoupper($this->prefs['auth_method']); - } else { - $auth_method = 'CHECK'; + } else { + $auth_method = 'CHECK'; } - $result = false; + $result = false; - // initialize connection - $this->error = ''; - $this->errornum = self::ERROR_OK; - $this->selected = ''; - $this->user = $user; - $this->host = $host; + // initialize connection + $this->error = ''; + $this->errornum = self::ERROR_OK; + $this->selected = ''; + $this->user = $user; + $this->host = $host; $this->logged = false; - // check input - if (empty($host)) { - $this->setError(self::ERROR_BAD, "Empty host"); - return false; - } + // check input + if (empty($host)) { + $this->setError(self::ERROR_BAD, "Empty host"); + return false; + } if (empty($user)) { - $this->setError(self::ERROR_NO, "Empty user"); - return false; - } - if (empty($password)) { - $this->setError(self::ERROR_NO, "Empty password"); - return false; - } - - if (!$this->prefs['port']) { - $this->prefs['port'] = 143; - } - // check for SSL - if ($this->prefs['ssl_mode'] && $this->prefs['ssl_mode'] != 'tls') { - $host = $this->prefs['ssl_mode'] . '://' . $host; - } + $this->setError(self::ERROR_NO, "Empty user"); + return false; + } + if (empty($password)) { + $this->setError(self::ERROR_NO, "Empty password"); + return false; + } + + if (!$this->prefs['port']) { + $this->prefs['port'] = 143; + } + // check for SSL + if ($this->prefs['ssl_mode'] && $this->prefs['ssl_mode'] != 'tls') { + $host = $this->prefs['ssl_mode'] . '://' . $host; + } // Connect if ($this->prefs['timeout'] > 0) - $this->fp = @fsockopen($host, $this->prefs['port'], $errno, $errstr, $this->prefs['timeout']); - else - $this->fp = @fsockopen($host, $this->prefs['port'], $errno, $errstr); + $this->fp = @fsockopen($host, $this->prefs['port'], $errno, $errstr, $this->prefs['timeout']); + else + $this->fp = @fsockopen($host, $this->prefs['port'], $errno, $errstr); - if (!$this->fp) { - $this->setError(self::ERROR_BAD, sprintf("Could not connect to %s:%d: %s", $host, $this->prefs['port'], $errstr)); - return false; - } + if (!$this->fp) { + $this->setError(self::ERROR_BAD, sprintf("Could not connect to %s:%d: %s", $host, $this->prefs['port'], $errstr)); + return false; + } if ($this->prefs['timeout'] > 0) - stream_set_timeout($this->fp, $this->prefs['timeout']); + stream_set_timeout($this->fp, $this->prefs['timeout']); - $line = trim(fgets($this->fp, 8192)); + $line = trim(fgets($this->fp, 8192)); - if ($this->prefs['debug_mode'] && $line) { - write_log('imap', 'S: '. $line); + if ($this->prefs['debug_mode'] && $line) { + write_log('imap', 'S: '. $line); } - // Connected to wrong port or connection error? - if (!preg_match('/^\* (OK|PREAUTH)/i', $line)) { - if ($line) - $error = sprintf("Wrong startup greeting (%s:%d): %s", $host, $this->prefs['port'], $line); - else - $error = sprintf("Empty startup greeting (%s:%d)", $host, $this->prefs['port']); - - $this->setError(self::ERROR_BAD, $error); - $this->close(); - return false; - } + // Connected to wrong port or connection error? + if (!preg_match('/^\* (OK|PREAUTH)/i', $line)) { + if ($line) + $error = sprintf("Wrong startup greeting (%s:%d): %s", $host, $this->prefs['port'], $line); + else + $error = sprintf("Empty startup greeting (%s:%d)", $host, $this->prefs['port']); - // RFC3501 [7.1] optional CAPABILITY response - if (preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) { - $this->parseCapability($matches[1], true); - } + $this->setError(self::ERROR_BAD, $error); + $this->closeConnection(); + return false; + } - $this->message = $line; + // RFC3501 [7.1] optional CAPABILITY response + if (preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) { + $this->parseCapability($matches[1], true); + } - // TLS connection - if ($this->prefs['ssl_mode'] == 'tls' && $this->getCapability('STARTTLS')) { - if (version_compare(PHP_VERSION, '5.1.0', '>=')) { - $res = $this->execute('STARTTLS'); + // TLS connection + if ($this->prefs['ssl_mode'] == 'tls' && $this->getCapability('STARTTLS')) { + if (version_compare(PHP_VERSION, '5.1.0', '>=')) { + $res = $this->execute('STARTTLS'); if ($res[0] != self::ERROR_OK) { - $this->close(); + $this->closeConnection(); return false; } - if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { - $this->setError(self::ERROR_BAD, "Unable to negotiate TLS"); - $this->close(); - return false; - } + if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { + $this->setError(self::ERROR_BAD, "Unable to negotiate TLS"); + $this->closeConnection(); + return false; + } - // Now we're secure, capabilities need to be reread - $this->clearCapability(); - } - } + // Now we're secure, capabilities need to be reread + $this->clearCapability(); + } + } - $auth_methods = array(); + $auth_methods = array(); $result = null; - // check for supported auth methods - if ($auth_method == 'CHECK') { - if ($this->getCapability('AUTH=DIGEST-MD5')) { - $auth_methods[] = 'DIGEST-MD5'; - } - if ($this->getCapability('AUTH=CRAM-MD5') || $this->getCapability('AUTH=CRAM_MD5')) { - $auth_methods[] = 'CRAM-MD5'; - } - if ($this->getCapability('AUTH=PLAIN')) { - $auth_methods[] = 'PLAIN'; - } + // check for supported auth methods + if ($auth_method == 'CHECK') { + if ($this->getCapability('AUTH=DIGEST-MD5')) { + $auth_methods[] = 'DIGEST-MD5'; + } + if ($this->getCapability('AUTH=CRAM-MD5') || $this->getCapability('AUTH=CRAM_MD5')) { + $auth_methods[] = 'CRAM-MD5'; + } + if ($this->getCapability('AUTH=PLAIN')) { + $auth_methods[] = 'PLAIN'; + } // RFC 2595 (LOGINDISABLED) LOGIN disabled when connection is not secure - if (!$this->getCapability('LOGINDISABLED')) { - $auth_methods[] = 'LOGIN'; - } - } + if (!$this->getCapability('LOGINDISABLED')) { + $auth_methods[] = 'LOGIN'; + } + } else { // Prevent from sending credentials in plain text when connection is not secure - if ($auth_method == 'LOGIN' && $this->getCapability('LOGINDISABLED')) { - $this->setError(self::ERROR_BAD, "Login disabled by IMAP server"); - $this->close(); - return false; + if ($auth_method == 'LOGIN' && $this->getCapability('LOGINDISABLED')) { + $this->setError(self::ERROR_BAD, "Login disabled by IMAP server"); + $this->closeConnection(); + return false; } // replace AUTH with CRAM-MD5 for backward compat. $auth_methods[] = $auth_method == 'AUTH' ? 'CRAM-MD5' : $auth_method; @@ -753,61 +766,68 @@ class rcube_imap_generic switch ($method) { case 'DIGEST-MD5': case 'CRAM-MD5': - case 'PLAIN': - $result = $this->authenticate($user, $password, $method); - break; + case 'PLAIN': + $result = $this->authenticate($user, $password, $method); + break; case 'LOGIN': - $result = $this->login($user, $password); + $result = $this->login($user, $password); break; default: $this->setError(self::ERROR_BAD, "Configuration error. Unknown auth method: $method"); } - if (is_resource($result)) { - break; - } - } + if (is_resource($result)) { + break; + } + } // Connected and authenticated - if (is_resource($result)) { + if (is_resource($result)) { if ($this->prefs['force_caps']) { - $this->clearCapability(); + $this->clearCapability(); } $this->logged = true; - return true; + return true; } - // Close connection - $this->close(); + $this->closeConnection(); return false; } function connected() { - return ($this->fp && $this->logged) ? true : false; + return ($this->fp && $this->logged) ? true : false; } - function close() + function closeConnection() { - if ($this->putLine($this->nextTag() . ' LOGOUT')) { - $this->readReply(); + if ($this->putLine($this->nextTag() . ' LOGOUT')) { + $this->readReply(); } - @fclose($this->fp); - $this->fp = false; + @fclose($this->fp); + $this->fp = false; } + /** + * Executes SELECT command (if mailbox is already not in selected state) + * + * @param string $mailbox Mailbox name + * + * @return boolean True on success, false on error + * @access public + */ function select($mailbox) { - if (!strlen($mailbox)) { - return false; - } + if (!strlen($mailbox)) { + return false; + } - if ($this->selected == $mailbox) { - return true; - } + if ($this->selected == $mailbox) { + return true; + } /* Temporary commented out because Courier returns \Noselect for INBOX Requires more investigation @@ -823,26 +843,28 @@ class rcube_imap_generic if ($code == self::ERROR_OK) { $response = explode("\r\n", $response); foreach ($response as $line) { - if (preg_match('/^\* ([0-9]+) (EXISTS|RECENT)$/i', $line, $m)) { - $this->data[strtoupper($m[2])] = (int) $m[1]; - } - else if (preg_match('/^\* OK \[(UIDNEXT|UIDVALIDITY|UNSEEN) ([0-9]+)\]/i', $line, $match)) { - $this->data[strtoupper($match[1])] = (int) $match[2]; - } - else if (preg_match('/^\* OK \[PERMANENTFLAGS \(([^\)]+)\)\]/iU', $line, $match)) { - $this->data['PERMANENTFLAGS'] = explode(' ', $match[1]); - } + if (preg_match('/^\* ([0-9]+) (EXISTS|RECENT)$/i', $line, $m)) { + $this->data[strtoupper($m[2])] = (int) $m[1]; + } + else if (preg_match('/^\* OK \[(UIDNEXT|UIDVALIDITY|UNSEEN) ([0-9]+)\]/i', $line, $match)) { + $this->data[strtoupper($match[1])] = (int) $match[2]; + } + else if (preg_match('/^\* OK \[PERMANENTFLAGS \(([^\)]+)\)\]/iU', $line, $match)) { + $this->data['PERMANENTFLAGS'] = explode(' ', $match[1]); + } } - $this->selected = $mailbox; - return true; - } + $this->data['READ-WRITE'] = $this->resultcode != 'READ-ONLY'; + + $this->selected = $mailbox; + return true; + } return false; } /** - * Executes STATUS comand + * Executes STATUS command * * @param string $mailbox Mailbox name * @param array $items Additional requested item names. By default @@ -855,9 +877,9 @@ class rcube_imap_generic */ function status($mailbox, $items=array()) { - if (!strlen($mailbox)) { - return false; - } + if (!strlen($mailbox)) { + return false; + } if (!in_array('MESSAGES', $items)) { $items[] = 'MESSAGES'; @@ -881,36 +903,157 @@ class rcube_imap_generic $this->data['STATUS:'.$mailbox] = $result; - return $result; - } + return $result; + } return false; } - function checkForRecent($mailbox) + /** + * Executes EXPUNGE command + * + * @param string $mailbox Mailbox name + * @param string $messages Message UIDs to expunge + * + * @return boolean True on success, False on error + * @access public + */ + function expunge($mailbox, $messages=NULL) { - if (!strlen($mailbox)) { - $mailbox = 'INBOX'; - } + if (!$this->select($mailbox)) { + return false; + } + + if (!$this->data['READ-WRITE']) { + $this->setError(self::ERROR_READONLY, "Mailbox is read-only", 'EXPUNGE'); + return false; + } - $this->select($mailbox); + // Clear internal status cache + unset($this->data['STATUS:'.$mailbox]); - if ($this->selected == $mailbox) { - return $this->data['RECENT']; - } + if ($messages) + $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE); + else + $result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE); - return false; + if ($result == self::ERROR_OK) { + $this->selected = ''; // state has changed, need to reselect + return true; + } + + return false; + } + + /** + * Executes CLOSE command + * + * @return boolean True on success, False on error + * @access public + * @since 0.5 + */ + function close() + { + $result = $this->execute('CLOSE', NULL, self::COMMAND_NORESPONSE); + + if ($result == self::ERROR_OK) { + $this->selected = ''; + return true; + } + + return false; + } + + /** + * Executes SUBSCRIBE command + * + * @param string $mailbox Mailbox name + * + * @return boolean True on success, False on error + * @access public + */ + function subscribe($mailbox) + { + $result = $this->execute('SUBSCRIBE', array($this->escape($mailbox)), + self::COMMAND_NORESPONSE); + + return ($result == self::ERROR_OK); + } + + /** + * Executes UNSUBSCRIBE command + * + * @param string $mailbox Mailbox name + * + * @return boolean True on success, False on error + * @access public + */ + function unsubscribe($mailbox) + { + $result = $this->execute('UNSUBSCRIBE', array($this->escape($mailbox)), + self::COMMAND_NORESPONSE); + + return ($result == self::ERROR_OK); } + /** + * Executes DELETE command + * + * @param string $mailbox Mailbox name + * + * @return boolean True on success, False on error + * @access public + */ + function deleteFolder($mailbox) + { + $result = $this->execute('DELETE', array($this->escape($mailbox)), + self::COMMAND_NORESPONSE); + + return ($result == self::ERROR_OK); + } + + /** + * Removes all messages in a folder + * + * @param string $mailbox Mailbox name + * + * @return boolean True on success, False on error + * @access public + */ + function clearFolder($mailbox) + { + $num_in_trash = $this->countMessages($mailbox); + if ($num_in_trash > 0) { + $res = $this->delete($mailbox, '1:*'); + } + + if ($res) { + if ($this->selected == $mailbox) + $res = $this->close(); + else + $res = $this->expunge($mailbox); + } + + return $res; + } + + /** + * Returns count of all messages in a folder + * + * @param string $mailbox Mailbox name + * + * @return int Number of messages, False on error + * @access public + */ function countMessages($mailbox, $refresh = false) { - if ($refresh) { - $this->selected = ''; - } + if ($refresh) { + $this->selected = ''; + } - if ($this->selected == $mailbox) { - return $this->data['EXISTS']; - } + if ($this->selected == $mailbox) { + return $this->data['EXISTS']; + } // Check internal cache $cache = $this->data['STATUS:'.$mailbox]; @@ -928,6 +1071,29 @@ class rcube_imap_generic } /** + * Returns count of messages with \Recent flag in a folder + * + * @param string $mailbox Mailbox name + * + * @return int Number of messages, False on error + * @access public + */ + function countRecent($mailbox) + { + if (!strlen($mailbox)) { + $mailbox = 'INBOX'; + } + + $this->select($mailbox); + + if ($this->selected == $mailbox) { + return $this->data['RECENT']; + } + + return false; + } + + /** * Returns count of messages without \Seen flag in a specified folder * * @param string $mailbox Mailbox name @@ -960,218 +1126,218 @@ class rcube_imap_generic function sort($mailbox, $field, $add='', $is_uid=FALSE, $encoding = 'US-ASCII') { - $field = strtoupper($field); - if ($field == 'INTERNALDATE') { - $field = 'ARRIVAL'; - } + $field = strtoupper($field); + if ($field == 'INTERNALDATE') { + $field = 'ARRIVAL'; + } - $fields = array('ARRIVAL' => 1,'CC' => 1,'DATE' => 1, + $fields = array('ARRIVAL' => 1,'CC' => 1,'DATE' => 1, 'FROM' => 1, 'SIZE' => 1, 'SUBJECT' => 1, 'TO' => 1); - if (!$fields[$field]) { - return false; - } + if (!$fields[$field]) { + return false; + } - if (!$this->select($mailbox)) { - return false; - } + if (!$this->select($mailbox)) { + return false; + } - // message IDs - if (!empty($add)) - $add = $this->compressMessageSet($add); + // message IDs + if (!empty($add)) + $add = $this->compressMessageSet($add); - list($code, $response) = $this->execute($is_uid ? 'UID SORT' : 'SORT', - array("($field)", $encoding, 'ALL' . (!empty($add) ? ' '.$add : ''))); + list($code, $response) = $this->execute($is_uid ? 'UID SORT' : 'SORT', + array("($field)", $encoding, 'ALL' . (!empty($add) ? ' '.$add : ''))); - if ($code == self::ERROR_OK) { - // remove prefix and \r\n from raw response + if ($code == self::ERROR_OK) { + // remove prefix and \r\n from raw response $response = str_replace("\r\n", '', substr($response, 7)); - return preg_split('/\s+/', $response, -1, PREG_SPLIT_NO_EMPTY); - } + return preg_split('/\s+/', $response, -1, PREG_SPLIT_NO_EMPTY); + } return false; } function fetchHeaderIndex($mailbox, $message_set, $index_field='', $skip_deleted=true, $uidfetch=false) { - if (is_array($message_set)) { - if (!($message_set = $this->compressMessageSet($message_set))) - return false; - } else { - list($from_idx, $to_idx) = explode(':', $message_set); - if (empty($message_set) || - (isset($to_idx) && $to_idx != '*' && (int)$from_idx > (int)$to_idx)) { - return false; - } - } - - $index_field = empty($index_field) ? 'DATE' : strtoupper($index_field); - - $fields_a['DATE'] = 1; - $fields_a['INTERNALDATE'] = 4; - $fields_a['ARRIVAL'] = 4; - $fields_a['FROM'] = 1; - $fields_a['REPLY-TO'] = 1; - $fields_a['SENDER'] = 1; - $fields_a['TO'] = 1; - $fields_a['CC'] = 1; - $fields_a['SUBJECT'] = 1; - $fields_a['UID'] = 2; - $fields_a['SIZE'] = 2; - $fields_a['SEEN'] = 3; - $fields_a['RECENT'] = 3; - $fields_a['DELETED'] = 3; - - if (!($mode = $fields_a[$index_field])) { - return false; - } - - /* Do "SELECT" command */ - if (!$this->select($mailbox)) { - return false; - } - - // build FETCH command string - $key = $this->nextTag(); - $cmd = $uidfetch ? 'UID FETCH' : 'FETCH'; - $deleted = $skip_deleted ? ' FLAGS' : ''; - - if ($mode == 1 && $index_field == 'DATE') - $request = " $cmd $message_set (INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE)]$deleted)"; - else if ($mode == 1) - $request = " $cmd $message_set (BODY.PEEK[HEADER.FIELDS ($index_field)]$deleted)"; - else if ($mode == 2) { - if ($index_field == 'SIZE') - $request = " $cmd $message_set (RFC822.SIZE$deleted)"; - else - $request = " $cmd $message_set ($index_field$deleted)"; - } else if ($mode == 3) - $request = " $cmd $message_set (FLAGS)"; - else // 4 - $request = " $cmd $message_set (INTERNALDATE$deleted)"; - - $request = $key . $request; - - if (!$this->putLine($request)) { + if (is_array($message_set)) { + if (!($message_set = $this->compressMessageSet($message_set))) + return false; + } else { + list($from_idx, $to_idx) = explode(':', $message_set); + if (empty($message_set) || + (isset($to_idx) && $to_idx != '*' && (int)$from_idx > (int)$to_idx)) { + return false; + } + } + + $index_field = empty($index_field) ? 'DATE' : strtoupper($index_field); + + $fields_a['DATE'] = 1; + $fields_a['INTERNALDATE'] = 4; + $fields_a['ARRIVAL'] = 4; + $fields_a['FROM'] = 1; + $fields_a['REPLY-TO'] = 1; + $fields_a['SENDER'] = 1; + $fields_a['TO'] = 1; + $fields_a['CC'] = 1; + $fields_a['SUBJECT'] = 1; + $fields_a['UID'] = 2; + $fields_a['SIZE'] = 2; + $fields_a['SEEN'] = 3; + $fields_a['RECENT'] = 3; + $fields_a['DELETED'] = 3; + + if (!($mode = $fields_a[$index_field])) { + return false; + } + + /* Do "SELECT" command */ + if (!$this->select($mailbox)) { + return false; + } + + // build FETCH command string + $key = $this->nextTag(); + $cmd = $uidfetch ? 'UID FETCH' : 'FETCH'; + $deleted = $skip_deleted ? ' FLAGS' : ''; + + if ($mode == 1 && $index_field == 'DATE') + $request = " $cmd $message_set (INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE)]$deleted)"; + else if ($mode == 1) + $request = " $cmd $message_set (BODY.PEEK[HEADER.FIELDS ($index_field)]$deleted)"; + else if ($mode == 2) { + if ($index_field == 'SIZE') + $request = " $cmd $message_set (RFC822.SIZE$deleted)"; + else + $request = " $cmd $message_set ($index_field$deleted)"; + } else if ($mode == 3) + $request = " $cmd $message_set (FLAGS)"; + else // 4 + $request = " $cmd $message_set (INTERNALDATE$deleted)"; + + $request = $key . $request; + + if (!$this->putLine($request)) { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); - return false; - } - - $result = array(); - - do { - $line = rtrim($this->readLine(200)); - $line = $this->multLine($line); - - if (preg_match('/^\* ([0-9]+) FETCH/', $line, $m)) { - $id = $m[1]; - $flags = NULL; - - if ($skip_deleted && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) { - $flags = explode(' ', strtoupper($matches[1])); - if (in_array('\\DELETED', $flags)) { - $deleted[$id] = $id; - continue; - } - } - - if ($mode == 1 && $index_field == 'DATE') { - if (preg_match('/BODY\[HEADER\.FIELDS \("*DATE"*\)\] (.*)/', $line, $matches)) { - $value = preg_replace(array('/^"*[a-z]+:/i'), '', $matches[1]); - $value = trim($value); - $result[$id] = $this->strToTime($value); - } - // non-existent/empty Date: header, use INTERNALDATE - if (empty($result[$id])) { - if (preg_match('/INTERNALDATE "([^"]+)"/', $line, $matches)) - $result[$id] = $this->strToTime($matches[1]); - else - $result[$id] = 0; - } - } else if ($mode == 1) { - if (preg_match('/BODY\[HEADER\.FIELDS \("?(FROM|REPLY-TO|SENDER|TO|SUBJECT)"?\)\] (.*)/', $line, $matches)) { - $value = preg_replace(array('/^"*[a-z]+:/i', '/\s+$/sm'), array('', ''), $matches[2]); - $result[$id] = trim($value); - } else { - $result[$id] = ''; - } - } else if ($mode == 2) { - if (preg_match('/\((UID|RFC822\.SIZE) ([0-9]+)/', $line, $matches)) { - $result[$id] = trim($matches[2]); - } else { - $result[$id] = 0; - } - } else if ($mode == 3) { - if (!$flags && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) { - $flags = explode(' ', $matches[1]); - } - $result[$id] = in_array('\\'.$index_field, $flags) ? 1 : 0; - } else if ($mode == 4) { - if (preg_match('/INTERNALDATE "([^"]+)"/', $line, $matches)) { - $result[$id] = $this->strToTime($matches[1]); - } else { - $result[$id] = 0; - } - } - } - } while (!$this->startsWith($line, $key, true, true)); - - return $result; + return false; + } + + $result = array(); + + do { + $line = rtrim($this->readLine(200)); + $line = $this->multLine($line); + + if (preg_match('/^\* ([0-9]+) FETCH/', $line, $m)) { + $id = $m[1]; + $flags = NULL; + + if ($skip_deleted && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) { + $flags = explode(' ', strtoupper($matches[1])); + if (in_array('\\DELETED', $flags)) { + $deleted[$id] = $id; + continue; + } + } + + if ($mode == 1 && $index_field == 'DATE') { + if (preg_match('/BODY\[HEADER\.FIELDS \("*DATE"*\)\] (.*)/', $line, $matches)) { + $value = preg_replace(array('/^"*[a-z]+:/i'), '', $matches[1]); + $value = trim($value); + $result[$id] = $this->strToTime($value); + } + // non-existent/empty Date: header, use INTERNALDATE + if (empty($result[$id])) { + if (preg_match('/INTERNALDATE "([^"]+)"/', $line, $matches)) + $result[$id] = $this->strToTime($matches[1]); + else + $result[$id] = 0; + } + } else if ($mode == 1) { + if (preg_match('/BODY\[HEADER\.FIELDS \("?(FROM|REPLY-TO|SENDER|TO|SUBJECT)"?\)\] (.*)/', $line, $matches)) { + $value = preg_replace(array('/^"*[a-z]+:/i', '/\s+$/sm'), array('', ''), $matches[2]); + $result[$id] = trim($value); + } else { + $result[$id] = ''; + } + } else if ($mode == 2) { + if (preg_match('/\((UID|RFC822\.SIZE) ([0-9]+)/', $line, $matches)) { + $result[$id] = trim($matches[2]); + } else { + $result[$id] = 0; + } + } else if ($mode == 3) { + if (!$flags && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) { + $flags = explode(' ', $matches[1]); + } + $result[$id] = in_array('\\'.$index_field, $flags) ? 1 : 0; + } else if ($mode == 4) { + if (preg_match('/INTERNALDATE "([^"]+)"/', $line, $matches)) { + $result[$id] = $this->strToTime($matches[1]); + } else { + $result[$id] = 0; + } + } + } + } while (!$this->startsWith($line, $key, true, true)); + + return $result; } static function compressMessageSet($messages, $force=false) { - // given a comma delimited list of independent mid's, - // compresses by grouping sequences together + // given a comma delimited list of independent mid's, + // compresses by grouping sequences together if (!is_array($messages)) { - // if less than 255 bytes long, let's not bother - if (!$force && strlen($messages)<255) { - return $messages; - } - - // see if it's already been compressed - if (strpos($messages, ':') !== false) { - return $messages; - } + // if less than 255 bytes long, let's not bother + if (!$force && strlen($messages)<255) { + return $messages; + } + + // see if it's already been compressed + if (strpos($messages, ':') !== false) { + return $messages; + } - // separate, then sort - $messages = explode(',', $messages); + // separate, then sort + $messages = explode(',', $messages); } - sort($messages); + sort($messages); - $result = array(); - $start = $prev = $messages[0]; - - foreach ($messages as $id) { - $incr = $id - $prev; - if ($incr > 1) { //found a gap - if ($start == $prev) { - $result[] = $prev; //push single id - } else { - $result[] = $start . ':' . $prev; //push sequence as start_id:end_id - } - $start = $id; //start of new sequence - } - $prev = $id; - } + $result = array(); + $start = $prev = $messages[0]; + + foreach ($messages as $id) { + $incr = $id - $prev; + if ($incr > 1) { // found a gap + if ($start == $prev) { + $result[] = $prev; // push single id + } else { + $result[] = $start . ':' . $prev; // push sequence as start_id:end_id + } + $start = $id; // start of new sequence + } + $prev = $id; + } - // handle the last sequence/id - if ($start == $prev) { - $result[] = $prev; - } else { - $result[] = $start.':'.$prev; - } + // handle the last sequence/id + if ($start == $prev) { + $result[] = $prev; + } else { + $result[] = $start.':'.$prev; + } - // return as comma separated string - return implode(',', $result); + // return as comma separated string + return implode(',', $result); } static function uncompressMessageSet($messages) { - $result = array(); - $messages = explode(',', $messages); + $result = array(); + $messages = explode(',', $messages); foreach ($messages as $part) { $items = explode(':', $part); @@ -1196,13 +1362,13 @@ class rcube_imap_generic */ function UID2ID($mailbox, $uid) { - if ($uid > 0) { - $id_a = $this->search($mailbox, "UID $uid"); - if (is_array($id_a) && count($id_a) == 1) { - return (int) $id_a[0]; - } - } - return null; + if ($uid > 0) { + $id_a = $this->search($mailbox, "UID $uid"); + if (is_array($id_a) && count($id_a) == 1) { + return (int) $id_a[0]; + } + } + return null; } /** @@ -1216,417 +1382,408 @@ class rcube_imap_generic */ function ID2UID($mailbox, $id) { - if (empty($id) || $id < 0) { - return null; - } + if (empty($id) || $id < 0) { + return null; + } - if (!$this->select($mailbox)) { + if (!$this->select($mailbox)) { return null; } list($code, $response) = $this->execute('FETCH', array($id, '(UID)')); if ($code == self::ERROR_OK && preg_match("/^\* $id FETCH \(UID (.*)\)/i", $response, $m)) { - return (int) $m[1]; + return (int) $m[1]; } - return null; + return null; } function fetchUIDs($mailbox, $message_set=null) { - if (is_array($message_set)) - $message_set = join(',', $message_set); + if (is_array($message_set)) + $message_set = join(',', $message_set); else if (empty($message_set)) - $message_set = '1:*'; + $message_set = '1:*'; - return $this->fetchHeaderIndex($mailbox, $message_set, 'UID', false); + return $this->fetchHeaderIndex($mailbox, $message_set, 'UID', false); } function fetchHeaders($mailbox, $message_set, $uidfetch=false, $bodystr=false, $add='') { - $result = array(); + $result = array(); - if (!$this->select($mailbox)) { - return false; - } + if (!$this->select($mailbox)) { + return false; + } - $message_set = $this->compressMessageSet($message_set); + $message_set = $this->compressMessageSet($message_set); - if ($add) - $add = ' '.trim($add); + if ($add) + $add = ' '.trim($add); - /* FETCH uid, size, flags and headers */ - $key = $this->nextTag(); - $request = $key . ($uidfetch ? ' UID' : '') . " FETCH $message_set "; - $request .= "(UID RFC822.SIZE FLAGS INTERNALDATE "; - if ($bodystr) - $request .= "BODYSTRUCTURE "; - $request .= "BODY.PEEK[HEADER.FIELDS (DATE FROM TO SUBJECT CONTENT-TYPE "; - $request .= "LIST-POST DISPOSITION-NOTIFICATION-TO".$add.")])"; + /* FETCH uid, size, flags and headers */ + $key = $this->nextTag(); + $request = $key . ($uidfetch ? ' UID' : '') . " FETCH $message_set "; + $request .= "(UID RFC822.SIZE FLAGS INTERNALDATE "; + if ($bodystr) + $request .= "BODYSTRUCTURE "; + $request .= "BODY.PEEK[HEADER.FIELDS (DATE FROM TO SUBJECT CONTENT-TYPE "; + $request .= "LIST-POST DISPOSITION-NOTIFICATION-TO".$add.")])"; - if (!$this->putLine($request)) { + if (!$this->putLine($request)) { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); - return false; - } - do { - $line = $this->readLine(4096); - $line = $this->multLine($line); + return false; + } + do { + $line = $this->readLine(4096); + $line = $this->multLine($line); if (!$line) break; - if (preg_match('/^\* ([0-9]+) FETCH/', $line, $m)) { - $id = intval($m[1]); - - $result[$id] = new rcube_mail_header; - $result[$id]->id = $id; - $result[$id]->subject = ''; - $result[$id]->messageID = 'mid:' . $id; - - $lines = array(); - $ln = 0; - - // Sample reply line: - // * 321 FETCH (UID 2417 RFC822.SIZE 2730 FLAGS (\Seen) - // INTERNALDATE "16-Nov-2008 21:08:46 +0100" BODYSTRUCTURE (...) - // BODY[HEADER.FIELDS ... - - if (preg_match('/^\* [0-9]+ FETCH \((.*) BODY/s', $line, $matches)) { - $str = $matches[1]; - - // swap parents with quotes, then explode - $str = preg_replace('/[()]/', '"', $str); - $a = rcube_explode_quoted_string(' ', $str); - - // did we get the right number of replies? - $parts_count = count($a); - if ($parts_count>=6) { - for ($i=0; $i<$parts_count; $i=$i+2) { - if ($a[$i] == 'UID') - $result[$id]->uid = intval($a[$i+1]); - else if ($a[$i] == 'RFC822.SIZE') - $result[$id]->size = intval($a[$i+1]); - else if ($a[$i] == 'INTERNALDATE') - $time_str = $a[$i+1]; - else if ($a[$i] == 'FLAGS') - $flags_str = $a[$i+1]; - } - - $time_str = str_replace('"', '', $time_str); - - // if time is gmt... - $time_str = str_replace('GMT','+0000',$time_str); - - $result[$id]->internaldate = $time_str; - $result[$id]->timestamp = $this->StrToTime($time_str); - $result[$id]->date = $time_str; - } - - // BODYSTRUCTURE - if($bodystr) { - while (!preg_match('/ BODYSTRUCTURE (.*) BODY\[HEADER.FIELDS/s', $line, $m)) { - $line2 = $this->readLine(1024); - $line .= $this->multLine($line2, true); - } - $result[$id]->body_structure = $m[1]; - } - - // the rest of the result - preg_match('/ BODY\[HEADER.FIELDS \(.*?\)\]\s*(.*)$/s', $line, $m); - $reslines = explode("\n", trim($m[1], '"')); - // re-parse (see below) - foreach ($reslines as $resln) { - if (ord($resln[0])<=32) { - $lines[$ln] .= (empty($lines[$ln])?'':"\n").trim($resln); - } else { - $lines[++$ln] = trim($resln); - } - } - } - - // Start parsing headers. The problem is, some header "lines" take up multiple lines. - // So, we'll read ahead, and if the one we're reading now is a valid header, we'll - // process the previous line. Otherwise, we'll keep adding the strings until we come - // to the next valid header line. - - do { - $line = rtrim($this->readLine(300), "\r\n"); - - // The preg_match below works around communigate imap, which outputs " UID <number>)". - // Without this, the while statement continues on and gets the "FH0 OK completed" message. - // If this loop gets the ending message, then the outer loop does not receive it from radline on line 1249. - // This in causes the if statement on line 1278 to never be true, which causes the headers to end up missing - // If the if statement was changed to pick up the fh0 from this loop, then it causes the outer loop to spin - // An alternative might be: - // if (!preg_match("/:/",$line) && preg_match("/\)$/",$line)) break; - // however, unsure how well this would work with all imap clients. - if (preg_match("/^\s*UID [0-9]+\)$/", $line)) { - break; - } - - // handle FLAGS reply after headers (AOL, Zimbra?) - if (preg_match('/\s+FLAGS \((.*)\)\)$/', $line, $matches)) { - $flags_str = $matches[1]; - break; - } - - if (ord($line[0])<=32) { - $lines[$ln] .= (empty($lines[$ln])?'':"\n").trim($line); - } else { - $lines[++$ln] = trim($line); - } - // patch from "Maksim Rubis" <siburny@hotmail.com> - } while ($line[0] != ')' && !$this->startsWith($line, $key, true)); - - if (strncmp($line, $key, strlen($key))) { - // process header, fill rcube_mail_header obj. - // initialize - if (is_array($headers)) { - reset($headers); - while (list($k, $bar) = each($headers)) { - $headers[$k] = ''; - } - } - - // create array with header field:data - while ( list($lines_key, $str) = each($lines) ) { - list($field, $string) = $this->splitHeaderLine($str); - - $field = strtolower($field); - $string = preg_replace('/\n\s*/', ' ', $string); - - switch ($field) { - case 'date'; - $result[$id]->date = $string; - $result[$id]->timestamp = $this->strToTime($string); - break; - case 'from': - $result[$id]->from = $string; - break; - case 'to': - $result[$id]->to = preg_replace('/undisclosed-recipients:[;,]*/', '', $string); - break; - case 'subject': - $result[$id]->subject = $string; - break; - case 'reply-to': - $result[$id]->replyto = $string; - break; - case 'cc': - $result[$id]->cc = $string; - break; - case 'bcc': - $result[$id]->bcc = $string; - break; - case 'content-transfer-encoding': - $result[$id]->encoding = $string; - break; - case 'content-type': - $ctype_parts = preg_split('/[; ]/', $string); - $result[$id]->ctype = array_shift($ctype_parts); - if (preg_match('/charset\s*=\s*"?([a-z0-9\-\.\_]+)"?/i', $string, $regs)) { - $result[$id]->charset = $regs[1]; - } - break; - case 'in-reply-to': - $result[$id]->in_reply_to = str_replace(array("\n", '<', '>'), '', $string); - break; - case 'references': - $result[$id]->references = $string; - break; - case 'return-receipt-to': - case 'disposition-notification-to': - case 'x-confirm-reading-to': - $result[$id]->mdn_to = $string; - break; - case 'message-id': - $result[$id]->messageID = $string; - break; - case 'x-priority': - if (preg_match('/^(\d+)/', $string, $matches)) - $result[$id]->priority = intval($matches[1]); - break; - default: - if (strlen($field) > 2) - $result[$id]->others[$field] = $string; - break; - } // end switch () - } // end while () - } - - // process flags - if (!empty($flags_str)) { - $flags_str = preg_replace('/[\\\"]/', '', $flags_str); - $flags_a = explode(' ', $flags_str); - - if (is_array($flags_a)) { - foreach($flags_a as $flag) { - $flag = strtoupper($flag); - if ($flag == 'SEEN') { - $result[$id]->seen = true; - } else if ($flag == 'DELETED') { - $result[$id]->deleted = true; - } else if ($flag == 'RECENT') { - $result[$id]->recent = true; - } else if ($flag == 'ANSWERED') { - $result[$id]->answered = true; - } else if ($flag == '$FORWARDED') { - $result[$id]->forwarded = true; - } else if ($flag == 'DRAFT') { - $result[$id]->is_draft = true; - } else if ($flag == '$MDNSENT') { - $result[$id]->mdn_sent = true; - } else if ($flag == 'FLAGGED') { - $result[$id]->flagged = true; - } - } - $result[$id]->flags = $flags_a; - } - } - } - } while (!$this->startsWith($line, $key, true)); - - return $result; + if (preg_match('/^\* ([0-9]+) FETCH/', $line, $m)) { + $id = intval($m[1]); + + $result[$id] = new rcube_mail_header; + $result[$id]->id = $id; + $result[$id]->subject = ''; + $result[$id]->messageID = 'mid:' . $id; + + $lines = array(); + $ln = 0; + + // Sample reply line: + // * 321 FETCH (UID 2417 RFC822.SIZE 2730 FLAGS (\Seen) + // INTERNALDATE "16-Nov-2008 21:08:46 +0100" BODYSTRUCTURE (...) + // BODY[HEADER.FIELDS ... + + if (preg_match('/^\* [0-9]+ FETCH \((.*) BODY/s', $line, $matches)) { + $str = $matches[1]; + + // swap parents with quotes, then explode + $str = preg_replace('/[()]/', '"', $str); + $a = rcube_explode_quoted_string(' ', $str); + + // did we get the right number of replies? + $parts_count = count($a); + if ($parts_count>=6) { + for ($i=0; $i<$parts_count; $i=$i+2) { + if ($a[$i] == 'UID') { + $result[$id]->uid = intval($a[$i+1]); + } + else if ($a[$i] == 'RFC822.SIZE') { + $result[$id]->size = intval($a[$i+1]); + } + else if ($a[$i] == 'INTERNALDATE') { + $time_str = $a[$i+1]; + } + else if ($a[$i] == 'FLAGS') { + $flags_str = $a[$i+1]; + } + } + + $time_str = str_replace('"', '', $time_str); + + // if time is gmt... + $time_str = str_replace('GMT','+0000',$time_str); + + $result[$id]->internaldate = $time_str; + $result[$id]->timestamp = $this->StrToTime($time_str); + $result[$id]->date = $time_str; + } + + // BODYSTRUCTURE + if ($bodystr) { + while (!preg_match('/ BODYSTRUCTURE (.*) BODY\[HEADER.FIELDS/s', $line, $m)) { + $line2 = $this->readLine(1024); + $line .= $this->multLine($line2, true); + } + $result[$id]->body_structure = $m[1]; + } + + // the rest of the result + if (preg_match('/ BODY\[HEADER.FIELDS \(.*?\)\]\s*(.*)$/s', $line, $m)) { + $reslines = explode("\n", trim($m[1], '"')); + // re-parse (see below) + foreach ($reslines as $resln) { + if (ord($resln[0])<=32) { + $lines[$ln] .= (empty($lines[$ln])?'':"\n").trim($resln); + } else { + $lines[++$ln] = trim($resln); + } + } + } + } + + // Start parsing headers. The problem is, some header "lines" take up multiple lines. + // So, we'll read ahead, and if the one we're reading now is a valid header, we'll + // process the previous line. Otherwise, we'll keep adding the strings until we come + // to the next valid header line. + + do { + $line = rtrim($this->readLine(300), "\r\n"); + + // The preg_match below works around communigate imap, which outputs " UID <number>)". + // Without this, the while statement continues on and gets the "FH0 OK completed" message. + // If this loop gets the ending message, then the outer loop does not receive it from radline on line 1249. + // This in causes the if statement on line 1278 to never be true, which causes the headers to end up missing + // If the if statement was changed to pick up the fh0 from this loop, then it causes the outer loop to spin + // An alternative might be: + // if (!preg_match("/:/",$line) && preg_match("/\)$/",$line)) break; + // however, unsure how well this would work with all imap clients. + if (preg_match("/^\s*UID [0-9]+\)$/", $line)) { + break; + } + + // handle FLAGS reply after headers (AOL, Zimbra?) + if (preg_match('/\s+FLAGS \((.*)\)\)$/', $line, $matches)) { + $flags_str = $matches[1]; + break; + } + + if (ord($line[0])<=32) { + $lines[$ln] .= (empty($lines[$ln])?'':"\n").trim($line); + } else { + $lines[++$ln] = trim($line); + } + // patch from "Maksim Rubis" <siburny@hotmail.com> + } while ($line[0] != ')' && !$this->startsWith($line, $key, true)); + + if (strncmp($line, $key, strlen($key))) { + // process header, fill rcube_mail_header obj. + // initialize + if (is_array($headers)) { + reset($headers); + while (list($k, $bar) = each($headers)) { + $headers[$k] = ''; + } + } + + // create array with header field:data + while (list($lines_key, $str) = each($lines)) { + list($field, $string) = $this->splitHeaderLine($str); + + $field = strtolower($field); + $string = preg_replace('/\n\s*/', ' ', $string); + + switch ($field) { + case 'date'; + $result[$id]->date = $string; + $result[$id]->timestamp = $this->strToTime($string); + break; + case 'from': + $result[$id]->from = $string; + break; + case 'to': + $result[$id]->to = preg_replace('/undisclosed-recipients:[;,]*/', '', $string); + break; + case 'subject': + $result[$id]->subject = $string; + break; + case 'reply-to': + $result[$id]->replyto = $string; + break; + case 'cc': + $result[$id]->cc = $string; + break; + case 'bcc': + $result[$id]->bcc = $string; + break; + case 'content-transfer-encoding': + $result[$id]->encoding = $string; + break; + case 'content-type': + $ctype_parts = preg_split('/[; ]/', $string); + $result[$id]->ctype = array_shift($ctype_parts); + if (preg_match('/charset\s*=\s*"?([a-z0-9\-\.\_]+)"?/i', $string, $regs)) { + $result[$id]->charset = $regs[1]; + } + break; + case 'in-reply-to': + $result[$id]->in_reply_to = str_replace(array("\n", '<', '>'), '', $string); + break; + case 'references': + $result[$id]->references = $string; + break; + case 'return-receipt-to': + case 'disposition-notification-to': + case 'x-confirm-reading-to': + $result[$id]->mdn_to = $string; + break; + case 'message-id': + $result[$id]->messageID = $string; + break; + case 'x-priority': + if (preg_match('/^(\d+)/', $string, $matches)) { + $result[$id]->priority = intval($matches[1]); + } + break; + default: + if (strlen($field) > 2) { + $result[$id]->others[$field] = $string; + } + break; + } // end switch () + } // end while () + } + + // process flags + if (!empty($flags_str)) { + $flags_str = preg_replace('/[\\\"]/', '', $flags_str); + $flags_a = explode(' ', $flags_str); + + if (is_array($flags_a)) { + foreach($flags_a as $flag) { + $flag = strtoupper($flag); + if ($flag == 'SEEN') { + $result[$id]->seen = true; + } else if ($flag == 'DELETED') { + $result[$id]->deleted = true; + } else if ($flag == 'RECENT') { + $result[$id]->recent = true; + } else if ($flag == 'ANSWERED') { + $result[$id]->answered = true; + } else if ($flag == '$FORWARDED') { + $result[$id]->forwarded = true; + } else if ($flag == 'DRAFT') { + $result[$id]->is_draft = true; + } else if ($flag == '$MDNSENT') { + $result[$id]->mdn_sent = true; + } else if ($flag == 'FLAGGED') { + $result[$id]->flagged = true; + } + } + $result[$id]->flags = $flags_a; + } + } + } + } while (!$this->startsWith($line, $key, true)); + + return $result; } function fetchHeader($mailbox, $id, $uidfetch=false, $bodystr=false, $add='') { - $a = $this->fetchHeaders($mailbox, $id, $uidfetch, $bodystr, $add); - if (is_array($a)) { - return array_shift($a); - } - return false; + $a = $this->fetchHeaders($mailbox, $id, $uidfetch, $bodystr, $add); + if (is_array($a)) { + return array_shift($a); + } + return false; } function sortHeaders($a, $field, $flag) { - if (empty($field)) { - $field = 'uid'; - } + if (empty($field)) { + $field = 'uid'; + } else { - $field = strtolower($field); - } - - if ($field == 'date' || $field == 'internaldate') { - $field = 'timestamp'; - } - - if (empty($flag)) { - $flag = 'ASC'; - } else { - $flag = strtoupper($flag); - } - - $c = count($a); - if ($c > 0) { - // Strategy: - // First, we'll create an "index" array. - // Then, we'll use sort() on that array, - // and use that to sort the main array. - - // create "index" array - $index = array(); - reset($a); - while (list($key, $val) = each($a)) { - if ($field == 'timestamp') { - $data = $this->strToTime($val->date); - if (!$data) { - $data = $val->timestamp; - } - } else { - $data = $val->$field; - if (is_string($data)) { - $data = str_replace('"', '', $data); - if ($field == 'subject') { - $data = preg_replace('/^(Re: \s*|Fwd:\s*|Fw:\s*)+/i', '', $data); - } - $data = strtoupper($data); - } - } - $index[$key] = $data; - } - - // sort index - if ($flag == 'ASC') { - asort($index); - } else { - arsort($index); - } - - // form new array based on index - $result = array(); - reset($index); - while (list($key, $val) = each($index)) { - $result[$key] = $a[$key]; - } - } - - return $result; - } + $field = strtolower($field); + } - function expunge($mailbox, $messages=NULL) - { - if (!$this->select($mailbox)) { - return false; + if ($field == 'date' || $field == 'internaldate') { + $field = 'timestamp'; } - // Clear internal status cache - unset($this->data['STATUS:'.$mailbox]); + if (empty($flag)) { + $flag = 'ASC'; + } else { + $flag = strtoupper($flag); + } - if ($messages) - $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE); - else - $result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE); + $c = count($a); + if ($c > 0) { + // Strategy: + // First, we'll create an "index" array. + // Then, we'll use sort() on that array, + // and use that to sort the main array. - if ($result == self::ERROR_OK) { - $this->selected = ''; // state has changed, need to reselect - return true; - } + // create "index" array + $index = array(); + reset($a); + while (list($key, $val) = each($a)) { + if ($field == 'timestamp') { + $data = $this->strToTime($val->date); + if (!$data) { + $data = $val->timestamp; + } + } else { + $data = $val->$field; + if (is_string($data)) { + $data = str_replace('"', '', $data); + if ($field == 'subject') { + $data = preg_replace('/^(Re: \s*|Fwd:\s*|Fw:\s*)+/i', '', $data); + } + $data = strtoupper($data); + } + } + $index[$key] = $data; + } + + // sort index + if ($flag == 'ASC') { + asort($index); + } else { + arsort($index); + } + + // form new array based on index + $result = array(); + reset($index); + while (list($key, $val) = each($index)) { + $result[$key] = $a[$key]; + } + } - return false; + return $result; } + function modFlag($mailbox, $messages, $flag, $mod) { - if ($mod != '+' && $mod != '-') { + if ($mod != '+' && $mod != '-') { $mod = '+'; - } + } + + if (!$this->select($mailbox)) { + return false; + } - if (!$this->select($mailbox)) { - return false; - } + if (!$this->data['READ-WRITE']) { + $this->setError(self::ERROR_READONLY, "Mailbox is read-only", 'STORE'); + return false; + } // Clear internal status cache if ($flag == 'SEEN') { unset($this->data['STATUS:'.$mailbox]['UNSEEN']); } - $flag = $this->flags[strtoupper($flag)]; + $flag = $this->flags[strtoupper($flag)]; $result = $this->execute('UID STORE', array( $this->compressMessageSet($messages), $mod . 'FLAGS.SILENT', "($flag)"), self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } function flag($mailbox, $messages, $flag) { - return $this->modFlag($mailbox, $messages, $flag, '+'); + return $this->modFlag($mailbox, $messages, $flag, '+'); } function unflag($mailbox, $messages, $flag) { - return $this->modFlag($mailbox, $messages, $flag, '-'); + return $this->modFlag($mailbox, $messages, $flag, '-'); } function delete($mailbox, $messages) { - return $this->modFlag($mailbox, $messages, 'DELETED', '+'); + return $this->modFlag($mailbox, $messages, 'DELETED', '+'); } function copy($messages, $from, $to) { - if (!$this->select($from)) { - return false; - } + if (!$this->select($from)) { + return false; + } // Clear internal status cache unset($this->data['STATUS:'.$to]); @@ -1635,11 +1792,20 @@ class rcube_imap_generic $this->compressMessageSet($messages), $this->escape($to)), self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } function move($messages, $from, $to) { + if (!$this->select($from)) { + return false; + } + + if (!$this->data['READ-WRITE']) { + $this->setError(self::ERROR_READONLY, "Mailbox is read-only", 'STORE'); + return false; + } + $r = $this->copy($messages, $from, $to); if ($r) { @@ -1656,76 +1822,76 @@ class rcube_imap_generic // http://derickrethans.nl/files/phparch-php-variables-article.pdf private function parseThread($str, $begin, $end, $root, $parent, $depth, &$depthmap, &$haschildren) { - $node = array(); - if ($str[$begin] != '(') { - $stop = $begin + strspn($str, '1234567890', $begin, $end - $begin); - $msg = substr($str, $begin, $stop - $begin); - if ($msg == 0) - return $node; - if (is_null($root)) - $root = $msg; - $depthmap[$msg] = $depth; - $haschildren[$msg] = false; - if (!is_null($parent)) - $haschildren[$parent] = true; - if ($stop + 1 < $end) - $node[$msg] = $this->parseThread($str, $stop + 1, $end, $root, $msg, $depth + 1, $depthmap, $haschildren); - else - $node[$msg] = array(); - } else { - $off = $begin; - while ($off < $end) { - $start = $off; - $off++; - $n = 1; - while ($n > 0) { - $p = strpos($str, ')', $off); - if ($p === false) { - error_log('Mismatched brackets parsing IMAP THREAD response:'); - error_log(substr($str, ($begin < 10) ? 0 : ($begin - 10), $end - $begin + 20)); - error_log(str_repeat(' ', $off - (($begin < 10) ? 0 : ($begin - 10)))); - return $node; - } - $p1 = strpos($str, '(', $off); - if ($p1 !== false && $p1 < $p) { - $off = $p1 + 1; - $n++; - } else { - $off = $p + 1; - $n--; - } - } - $node += $this->parseThread($str, $start + 1, $off - 1, $root, $parent, $depth, $depthmap, $haschildren); - } - } - - return $node; + $node = array(); + if ($str[$begin] != '(') { + $stop = $begin + strspn($str, '1234567890', $begin, $end - $begin); + $msg = substr($str, $begin, $stop - $begin); + if ($msg == 0) + return $node; + if (is_null($root)) + $root = $msg; + $depthmap[$msg] = $depth; + $haschildren[$msg] = false; + if (!is_null($parent)) + $haschildren[$parent] = true; + if ($stop + 1 < $end) + $node[$msg] = $this->parseThread($str, $stop + 1, $end, $root, $msg, $depth + 1, $depthmap, $haschildren); + else + $node[$msg] = array(); + } else { + $off = $begin; + while ($off < $end) { + $start = $off; + $off++; + $n = 1; + while ($n > 0) { + $p = strpos($str, ')', $off); + if ($p === false) { + error_log("Mismatched brackets parsing IMAP THREAD response:"); + error_log(substr($str, ($begin < 10) ? 0 : ($begin - 10), $end - $begin + 20)); + error_log(str_repeat(' ', $off - (($begin < 10) ? 0 : ($begin - 10)))); + return $node; + } + $p1 = strpos($str, '(', $off); + if ($p1 !== false && $p1 < $p) { + $off = $p1 + 1; + $n++; + } else { + $off = $p + 1; + $n--; + } + } + $node += $this->parseThread($str, $start + 1, $off - 1, $root, $parent, $depth, $depthmap, $haschildren); + } + } + + return $node; } function thread($mailbox, $algorithm='REFERENCES', $criteria='', $encoding='US-ASCII') { $old_sel = $this->selected; - if (!$this->select($mailbox)) { - return false; - } + if (!$this->select($mailbox)) { + return false; + } // return empty result when folder is empty and we're just after SELECT if ($old_sel != $mailbox && !$this->data['EXISTS']) { return array(array(), array(), array()); - } + } - $encoding = $encoding ? trim($encoding) : 'US-ASCII'; - $algorithm = $algorithm ? trim($algorithm) : 'REFERENCES'; - $criteria = $criteria ? 'ALL '.trim($criteria) : 'ALL'; + $encoding = $encoding ? trim($encoding) : 'US-ASCII'; + $algorithm = $algorithm ? trim($algorithm) : 'REFERENCES'; + $criteria = $criteria ? 'ALL '.trim($criteria) : 'ALL'; $data = ''; list($code, $response) = $this->execute('THREAD', array( $algorithm, $encoding, $criteria)); - if ($code == self::ERROR_OK && preg_match('/^\* THREAD /i', $response)) { - // remove prefix and \r\n from raw response - $response = str_replace("\r\n", '', substr($response, 9)); + if ($code == self::ERROR_OK && preg_match('/^\* THREAD /i', $response)) { + // remove prefix and \r\n from raw response + $response = str_replace("\r\n", '', substr($response, 9)); $depthmap = array(); $haschildren = array(); @@ -1733,9 +1899,9 @@ class rcube_imap_generic null, null, 0, $depthmap, $haschildren); return array($tree, $depthmap, $haschildren); - } + } - return false; + return false; } /** @@ -1752,9 +1918,9 @@ class rcube_imap_generic { $old_sel = $this->selected; - if (!$this->select($mailbox)) { - return false; - } + if (!$this->select($mailbox)) { + return false; + } // return empty result when folder is empty and we're just after SELECT if ($old_sel != $mailbox && !$this->data['EXISTS']) { @@ -1762,7 +1928,7 @@ class rcube_imap_generic return array_combine($items, array_fill(0, count($items), 0)); else return array(); - } + } $esearch = empty($items) ? false : $this->getCapability('ESEARCH'); $criteria = trim($criteria); @@ -1779,13 +1945,13 @@ class rcube_imap_generic $params .= 'ALL'; } - list($code, $response) = $this->execute($return_uid ? 'UID SEARCH' : 'SEARCH', - array($params)); + list($code, $response) = $this->execute($return_uid ? 'UID SEARCH' : 'SEARCH', + array($params)); - if ($code == self::ERROR_OK) { - // remove prefix and \r\n from raw response + if ($code == self::ERROR_OK) { + // remove prefix and \r\n from raw response $response = substr($response, $esearch ? 10 : 9); - $response = str_replace("\r\n", '', $response); + $response = str_replace("\r\n", '', $response); if ($esearch) { // Skip prefix: ... (TAG "A285") UID ... @@ -1803,29 +1969,33 @@ class rcube_imap_generic return $result; } - else { + else { $response = preg_split('/\s+/', $response, -1, PREG_SPLIT_NO_EMPTY); if (!empty($items)) { $result = array(); - if (in_array('COUNT', $items)) + if (in_array('COUNT', $items)) { $result['COUNT'] = count($response); - if (in_array('MIN', $items)) + } + if (in_array('MIN', $items)) { $result['MIN'] = !empty($response) ? min($response) : 0; - if (in_array('MAX', $items)) + } + if (in_array('MAX', $items)) { $result['MAX'] = !empty($response) ? max($response) : 0; - if (in_array('ALL', $items)) + } + if (in_array('ALL', $items)) { $result['ALL'] = $this->compressMessageSet($response, true); + } return $result; } else { return $response; } - } + } } - return false; + return false; } /** @@ -1879,9 +2049,9 @@ class rcube_imap_generic private function _listMailboxes($ref, $mailbox, $subscribed=false, $status_opts=array(), $select_opts=array()) { - if (!strlen($mailbox)) { - $mailbox = '*'; - } + if (!strlen($mailbox)) { + $mailbox = '*'; + } $args = array(); @@ -1913,7 +2083,7 @@ class rcube_imap_generic // Add to result array if (!$lstatus) { - $folders[] = $mailbox; + $folders[] = $mailbox; } else { $folders[$mailbox] = array(); @@ -1937,406 +2107,378 @@ class rcube_imap_generic $folders[$mailbox][$name] = $value; } } - } + } return $folders; } - return false; + return false; } function fetchMIMEHeaders($mailbox, $id, $parts, $mime=true) { - if (!$this->select($mailbox)) { - return false; - } + if (!$this->select($mailbox)) { + return false; + } - $result = false; - $parts = (array) $parts; - $key = $this->nextTag(); - $peeks = ''; - $idx = 0; + $result = false; + $parts = (array) $parts; + $key = $this->nextTag(); + $peeks = ''; + $idx = 0; $type = $mime ? 'MIME' : 'HEADER'; - // format request - foreach($parts as $part) - $peeks[] = "BODY.PEEK[$part.$type]"; + // format request + foreach($parts as $part) { + $peeks[] = "BODY.PEEK[$part.$type]"; + } - $request = "$key FETCH $id (" . implode(' ', $peeks) . ')'; + $request = "$key FETCH $id (" . implode(' ', $peeks) . ')'; - // send request - if (!$this->putLine($request)) { + // send request + if (!$this->putLine($request)) { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); - return false; - } + return false; + } - do { - $line = $this->readLine(1024); - $line = $this->multLine($line); + do { + $line = $this->readLine(1024); + $line = $this->multLine($line); - if (preg_match('/BODY\[([0-9\.]+)\.'.$type.'\]/', $line, $matches)) { - $idx = $matches[1]; - $result[$idx] = preg_replace('/^(\* '.$id.' FETCH \()?\s*BODY\['.$idx.'\.'.$type.'\]\s+/', '', $line); - $result[$idx] = trim($result[$idx], '"'); - $result[$idx] = rtrim($result[$idx], "\t\r\n\0\x0B"); - } - } while (!$this->startsWith($line, $key, true)); + if (preg_match('/BODY\[([0-9\.]+)\.'.$type.'\]/', $line, $matches)) { + $idx = $matches[1]; + $result[$idx] = preg_replace('/^(\* '.$id.' FETCH \()?\s*BODY\['.$idx.'\.'.$type.'\]\s+/', '', $line); + $result[$idx] = trim($result[$idx], '"'); + $result[$idx] = rtrim($result[$idx], "\t\r\n\0\x0B"); + } + } while (!$this->startsWith($line, $key, true)); - return $result; + return $result; } function fetchPartHeader($mailbox, $id, $is_uid=false, $part=NULL) { - $part = empty($part) ? 'HEADER' : $part.'.MIME'; + $part = empty($part) ? 'HEADER' : $part.'.MIME'; return $this->handlePartBody($mailbox, $id, $is_uid, $part); } function handlePartBody($mailbox, $id, $is_uid=false, $part='', $encoding=NULL, $print=NULL, $file=NULL) { - if (!$this->select($mailbox)) { + if (!$this->select($mailbox)) { return false; } - switch ($encoding) { - case 'base64': - $mode = 1; - break; - case 'quoted-printable': - $mode = 2; - break; - case 'x-uuencode': - case 'x-uue': - case 'uue': - case 'uuencode': - $mode = 3; - break; - default: - $mode = 0; - } - - // format request - $reply_key = '* ' . $id; - $key = $this->nextTag(); - $request = $key . ($is_uid ? ' UID' : '') . " FETCH $id (BODY.PEEK[$part])"; - - // send request - if (!$this->putLine($request)) { + switch ($encoding) { + case 'base64': + $mode = 1; + break; + case 'quoted-printable': + $mode = 2; + break; + case 'x-uuencode': + case 'x-uue': + case 'uue': + case 'uuencode': + $mode = 3; + break; + default: + $mode = 0; + } + + // format request + $reply_key = '* ' . $id; + $key = $this->nextTag(); + $request = $key . ($is_uid ? ' UID' : '') . " FETCH $id (BODY.PEEK[$part])"; + + // send request + if (!$this->putLine($request)) { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); - return false; - } - - // receive reply line - do { - $line = rtrim($this->readLine(1024)); - $a = explode(' ', $line); - } while (!($end = $this->startsWith($line, $key, true)) && $a[2] != 'FETCH'); - - $len = strlen($line); - $result = false; - - // handle empty "* X FETCH ()" response - if ($line[$len-1] == ')' && $line[$len-2] != '(') { - // one line response, get everything between first and last quotes - if (substr($line, -4, 3) == 'NIL') { - // NIL response - $result = ''; - } else { - $from = strpos($line, '"') + 1; - $to = strrpos($line, '"'); - $len = $to - $from; - $result = substr($line, $from, $len); - } - - if ($mode == 1) - $result = base64_decode($result); - else if ($mode == 2) - $result = quoted_printable_decode($result); - else if ($mode == 3) - $result = convert_uudecode($result); - - } else if ($line[$len-1] == '}') { - // multi-line request, find sizes of content and receive that many bytes - $from = strpos($line, '{') + 1; - $to = strrpos($line, '}'); - $len = $to - $from; - $sizeStr = substr($line, $from, $len); - $bytes = (int)$sizeStr; - $prev = ''; - - while ($bytes > 0) { - $line = $this->readLine(4096); - - if ($line === NULL) - break; - - $len = strlen($line); - - if ($len > $bytes) { - $line = substr($line, 0, $bytes); - $len = strlen($line); - } - $bytes -= $len; + return false; + } + + // receive reply line + do { + $line = rtrim($this->readLine(1024)); + $a = explode(' ', $line); + } while (!($end = $this->startsWith($line, $key, true)) && $a[2] != 'FETCH'); + + $len = strlen($line); + $result = false; + + // handle empty "* X FETCH ()" response + if ($line[$len-1] == ')' && $line[$len-2] != '(') { + // one line response, get everything between first and last quotes + if (substr($line, -4, 3) == 'NIL') { + // NIL response + $result = ''; + } else { + $from = strpos($line, '"') + 1; + $to = strrpos($line, '"'); + $len = $to - $from; + $result = substr($line, $from, $len); + } + + if ($mode == 1) { + $result = base64_decode($result); + } + else if ($mode == 2) { + $result = quoted_printable_decode($result); + } + else if ($mode == 3) { + $result = convert_uudecode($result); + } + + } else if ($line[$len-1] == '}') { + // multi-line request, find sizes of content and receive that many bytes + $from = strpos($line, '{') + 1; + $to = strrpos($line, '}'); + $len = $to - $from; + $sizeStr = substr($line, $from, $len); + $bytes = (int)$sizeStr; + $prev = ''; + + while ($bytes > 0) { + $line = $this->readLine(4096); + + if ($line === NULL) { + break; + } + + $len = strlen($line); + + if ($len > $bytes) { + $line = substr($line, 0, $bytes); + $len = strlen($line); + } + $bytes -= $len; // BASE64 - if ($mode == 1) { - $line = rtrim($line, "\t\r\n\0\x0B"); - // create chunks with proper length for base64 decoding - $line = $prev.$line; - $length = strlen($line); - if ($length % 4) { - $length = floor($length / 4) * 4; - $prev = substr($line, $length); - $line = substr($line, 0, $length); - } - else - $prev = ''; - $line = base64_decode($line); + if ($mode == 1) { + $line = rtrim($line, "\t\r\n\0\x0B"); + // create chunks with proper length for base64 decoding + $line = $prev.$line; + $length = strlen($line); + if ($length % 4) { + $length = floor($length / 4) * 4; + $prev = substr($line, $length); + $line = substr($line, 0, $length); + } + else + $prev = ''; + $line = base64_decode($line); // QUOTED-PRINTABLE - } else if ($mode == 2) { - $line = rtrim($line, "\t\r\0\x0B"); + } else if ($mode == 2) { + $line = rtrim($line, "\t\r\0\x0B"); $line = quoted_printable_decode($line); // Remove NULL characters (#1486189) $line = str_replace("\x00", '', $line); // UUENCODE - } else if ($mode == 3) { - $line = rtrim($line, "\t\r\n\0\x0B"); - if ($line == 'end' || preg_match('/^begin\s+[0-7]+\s+.+$/', $line)) - continue; + } else if ($mode == 3) { + $line = rtrim($line, "\t\r\n\0\x0B"); + if ($line == 'end' || preg_match('/^begin\s+[0-7]+\s+.+$/', $line)) + continue; $line = convert_uudecode($line); // default - } else { - $line = rtrim($line, "\t\r\n\0\x0B") . "\n"; - } - - if ($file) - fwrite($file, $line); - else if ($print) - echo $line; - else - $result .= $line; - } - } + } else { + $line = rtrim($line, "\t\r\n\0\x0B") . "\n"; + } - // read in anything up until last line - if (!$end) - do { - $line = $this->readLine(1024); - } while (!$this->startsWith($line, $key, true)); + if ($file) + fwrite($file, $line); + else if ($print) + echo $line; + else + $result .= $line; + } + } - if ($result !== false) { - if ($file) { - fwrite($file, $result); - } else if ($print) { - echo $result; - } else - return $result; - return true; - } + // read in anything up until last line + if (!$end) + do { + $line = $this->readLine(1024); + } while (!$this->startsWith($line, $key, true)); + + if ($result !== false) { + if ($file) { + fwrite($file, $result); + } else if ($print) { + echo $result; + } else + return $result; + return true; + } - return false; + return false; } function createFolder($mailbox) { $result = $this->execute('CREATE', array($this->escape($mailbox)), - self::COMMAND_NORESPONSE); + self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } function renameFolder($from, $to) { $result = $this->execute('RENAME', array($this->escape($from), $this->escape($to)), - self::COMMAND_NORESPONSE); - - return ($result == self::ERROR_OK); - } - - function deleteFolder($mailbox) - { - $result = $this->execute('DELETE', array($this->escape($mailbox)), - self::COMMAND_NORESPONSE); - - return ($result == self::ERROR_OK); - } - - function clearFolder($mailbox) - { - $num_in_trash = $this->countMessages($mailbox); - if ($num_in_trash > 0) { - $this->delete($mailbox, '1:*'); - } - return ($this->expunge($mailbox) >= 0); - } - - function subscribe($mailbox) - { - $result = $this->execute('SUBSCRIBE', array($this->escape($mailbox)), - self::COMMAND_NORESPONSE); - - return ($result == self::ERROR_OK); - } - - function unsubscribe($mailbox) - { - $result = $this->execute('UNSUBSCRIBE', array($this->escape($mailbox)), - self::COMMAND_NORESPONSE); + self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } function append($mailbox, &$message) { - if (!$mailbox) { - return false; - } + if (!$mailbox) { + return false; + } - $message = str_replace("\r", '', $message); - $message = str_replace("\n", "\r\n", $message); + $message = str_replace("\r", '', $message); + $message = str_replace("\n", "\r\n", $message); - $len = strlen($message); - if (!$len) { - return false; - } + $len = strlen($message); + if (!$len) { + return false; + } $key = $this->nextTag(); - $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox), + $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox), $len, ($this->prefs['literal+'] ? '+' : '')); - if ($this->putLine($request)) { + if ($this->putLine($request)) { // Don't wait when LITERAL+ is supported if (!$this->prefs['literal+']) { - $line = $this->readLine(512); + $line = $this->readReply(); - if ($line[0] != '+') { - $this->parseResult($line, 'APPEND: '); - return false; - } + if ($line[0] != '+') { + $this->parseResult($line, 'APPEND: '); + return false; + } } - if (!$this->putLine($message)) { + if (!$this->putLine($message)) { return false; } - do { - $line = $this->readLine(); - } while (!$this->startsWith($line, $key, true, true)); + do { + $line = $this->readLine(); + } while (!$this->startsWith($line, $key, true, true)); // Clear internal status cache unset($this->data['STATUS:'.$mailbox]); - return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK); - } + return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK); + } else { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); } - return false; + return false; } function appendFromFile($mailbox, $path, $headers=null) { - if (!$mailbox) { - return false; - } + if (!$mailbox) { + return false; + } - // open message file - $in_fp = false; - if (file_exists(realpath($path))) { - $in_fp = fopen($path, 'r'); - } - if (!$in_fp) { - $this->setError(self::ERROR_UNKNOWN, "Couldn't open $path for reading"); - return false; - } + // open message file + $in_fp = false; + if (file_exists(realpath($path))) { + $in_fp = fopen($path, 'r'); + } + if (!$in_fp) { + $this->setError(self::ERROR_UNKNOWN, "Couldn't open $path for reading"); + return false; + } $body_separator = "\r\n\r\n"; - $len = filesize($path); + $len = filesize($path); - if (!$len) { - return false; - } + if (!$len) { + return false; + } if ($headers) { $headers = preg_replace('/[\r\n]+$/', '', $headers); $len += strlen($headers) + strlen($body_separator); } - // send APPEND command - $key = $this->nextTag(); - $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox), + // send APPEND command + $key = $this->nextTag(); + $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox), $len, ($this->prefs['literal+'] ? '+' : '')); - if ($this->putLine($request)) { + if ($this->putLine($request)) { // Don't wait when LITERAL+ is supported if (!$this->prefs['literal+']) { - $line = $this->readLine(512); + $line = $this->readReply(); - if ($line[0] != '+') { - $this->parseResult($line, 'APPEND: '); - return false; - } + if ($line[0] != '+') { + $this->parseResult($line, 'APPEND: '); + return false; + } } // send headers with body separator if ($headers) { - $this->putLine($headers . $body_separator, false); + $this->putLine($headers . $body_separator, false); } - // send file - while (!feof($in_fp) && $this->fp) { - $buffer = fgets($in_fp, 4096); - $this->putLine($buffer, false); - } - fclose($in_fp); + // send file + while (!feof($in_fp) && $this->fp) { + $buffer = fgets($in_fp, 4096); + $this->putLine($buffer, false); + } + fclose($in_fp); - if (!$this->putLine('')) { // \r\n + if (!$this->putLine('')) { // \r\n return false; } - // read response - do { - $line = $this->readLine(); - } while (!$this->startsWith($line, $key, true, true)); + // read response + do { + $line = $this->readLine(); + } while (!$this->startsWith($line, $key, true, true)); // Clear internal status cache unset($this->data['STATUS:'.$mailbox]); - return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK); - } + return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK); + } else { $this->setError(self::ERROR_COMMAND, "Unable to send command: $request"); } - return false; + return false; } function fetchStructureString($mailbox, $id, $is_uid=false) { - if (!$this->select($mailbox)) { + if (!$this->select($mailbox)) { return false; } - $key = $this->nextTag(); - $result = false; + $key = $this->nextTag(); + $result = false; $command = $key . ($is_uid ? ' UID' : '') ." FETCH $id (BODYSTRUCTURE)"; - if ($this->putLine($command)) { - do { - $line = $this->readLine(5000); - $line = $this->multLine($line, true); - if (!preg_match("/^$key /", $line)) - $result .= $line; - } while (!$this->startsWith($line, $key, true, true)); + if ($this->putLine($command)) { + do { + $line = $this->readLine(5000); + $line = $this->multLine($line, true); + if (!preg_match("/^$key /", $line)) + $result .= $line; + } while (!$this->startsWith($line, $key, true, true)); - $result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -1)); - } + $result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -1)); + } else { $this->setError(self::ERROR_COMMAND, "Unable to send command: $command"); } - return $result; + return $result; } function getQuota() @@ -2347,49 +2489,50 @@ class rcube_imap_generic * QUOTA user/rchijiiwa1 (STORAGE 654 9765) * OK Completed */ - $result = false; - $quota_lines = array(); - $key = $this->nextTag(); + $result = false; + $quota_lines = array(); + $key = $this->nextTag(); $command = $key . ' GETQUOTAROOT INBOX'; - // get line(s) containing quota info - if ($this->putLine($command)) { - do { - $line = rtrim($this->readLine(5000)); - if (preg_match('/^\* QUOTA /', $line)) { - $quota_lines[] = $line; - } - } while (!$this->startsWith($line, $key, true, true)); - } + // get line(s) containing quota info + if ($this->putLine($command)) { + do { + $line = rtrim($this->readLine(5000)); + if (preg_match('/^\* QUOTA /', $line)) { + $quota_lines[] = $line; + } + } while (!$this->startsWith($line, $key, true, true)); + } else { $this->setError(self::ERROR_COMMAND, "Unable to send command: $command"); } - // return false if not found, parse if found - $min_free = PHP_INT_MAX; - foreach ($quota_lines as $key => $quota_line) { - $quota_line = str_replace(array('(', ')'), '', $quota_line); - $parts = explode(' ', $quota_line); - $storage_part = array_search('STORAGE', $parts); + // return false if not found, parse if found + $min_free = PHP_INT_MAX; + foreach ($quota_lines as $key => $quota_line) { + $quota_line = str_replace(array('(', ')'), '', $quota_line); + $parts = explode(' ', $quota_line); + $storage_part = array_search('STORAGE', $parts); - if (!$storage_part) + if (!$storage_part) { continue; + } - $used = intval($parts[$storage_part+1]); - $total = intval($parts[$storage_part+2]); - $free = $total - $used; - - // return lowest available space from all quotas - if ($free < $min_free) { - $min_free = $free; - $result['used'] = $used; - $result['total'] = $total; - $result['percent'] = min(100, round(($used/max(1,$total))*100)); - $result['free'] = 100 - $result['percent']; - } - } + $used = intval($parts[$storage_part+1]); + $total = intval($parts[$storage_part+2]); + $free = $total - $used; + + // return lowest available space from all quotas + if ($free < $min_free) { + $min_free = $free; + $result['used'] = $used; + $result['total'] = $total; + $result['percent'] = min(100, round(($used/max(1,$total))*100)); + $result['free'] = 100 - $result['percent']; + } + } - return $result; + return $result; } /** @@ -2414,7 +2557,7 @@ class rcube_imap_generic $this->escape($mailbox), $this->escape($user), strtolower($acl)), self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } /** @@ -2434,7 +2577,7 @@ class rcube_imap_generic $this->escape($mailbox), $this->escape($user)), self::COMMAND_NORESPONSE); - return ($result == self::ERROR_OK); + return ($result == self::ERROR_OK); } /** @@ -2554,11 +2697,12 @@ class rcube_imap_generic } foreach ($entries as $name => $value) { - if ($value === null) + if ($value === null) { $value = 'NIL'; - else + } + else { $value = sprintf("{%d}\r\n%s", strlen($value), $value); - + } $entries[$name] = $this->escape($name) . ' ' . $value; } @@ -2583,16 +2727,18 @@ class rcube_imap_generic */ function deleteMetadata($mailbox, $entries) { - if (!is_array($entries) && !empty($entries)) + if (!is_array($entries) && !empty($entries)) { $entries = explode(' ', $entries); + } if (empty($entries)) { $this->setError(self::ERROR_COMMAND, "Wrong argument for SETMETADATA command"); return false; } - foreach ($entries as $entry) + foreach ($entries as $entry) { $data[$entry] = NULL; + } return $this->setMetadata($mailbox, $data); } @@ -2628,13 +2774,16 @@ class rcube_imap_generic $options = array_change_key_case($options, CASE_UPPER); $opts = array(); - if (!empty($options['MAXSIZE'])) + if (!empty($options['MAXSIZE'])) { $opts[] = 'MAXSIZE '.intval($options['MAXSIZE']); - if (!empty($options['DEPTH'])) + } + if (!empty($options['DEPTH'])) { $opts[] = 'DEPTH '.intval($options['DEPTH']); + } - if ($opts) + if ($opts) { $optlist = '(' . implode(' ', $opts) . ')'; + } } $optlist .= ($optlist ? ' ' : '') . $entlist; @@ -2701,10 +2850,12 @@ class rcube_imap_generic $attr = $entry[1]; $value = $entry[2]; - if ($value === null) + if ($value === null) { $value = 'NIL'; - else + } + else { $value = sprintf("{%d}\r\n%s", strlen($value), $value); + } $entries[] = sprintf('%s (%s %s)', $this->escape($name), $this->escape($attr), $value); @@ -2796,10 +2947,12 @@ class rcube_imap_generic for ($x=0, $len=count($attribs); $x<$len;) { $attr = $attribs[$x++]; $value = $attribs[$x++]; - if ($attr == 'value.priv') + if ($attr == 'value.priv') { $res['/private' . $entry] = $value; - else if ($attr == 'value.shared') + } + else if ($attr == 'value.shared') { $res['/shared' . $entry] = $value; + } } } $last_entry = $entry; @@ -2847,43 +3000,45 @@ class rcube_imap_generic $noresp = ($options & self::COMMAND_NORESPONSE); $response = $noresp ? null : ''; - if (!empty($arguments)) + if (!empty($arguments)) { $query .= ' ' . implode(' ', $arguments); + } // Send command - if (!$this->putLineC($query)) { + if (!$this->putLineC($query)) { $this->setError(self::ERROR_COMMAND, "Unable to send command: $query"); - return $noresp ? self::ERROR_COMMAND : array(self::ERROR_COMMAND, ''); - } + return $noresp ? self::ERROR_COMMAND : array(self::ERROR_COMMAND, ''); + } // Parse response - do { - $line = $this->readLine(4096); - if ($response !== null) - $response .= $line; - } while (!$this->startsWith($line, $tag . ' ', true, true)); + do { + $line = $this->readLine(4096); + if ($response !== null) { + $response .= $line; + } + } while (!$this->startsWith($line, $tag . ' ', true, true)); - $code = $this->parseResult($line, $command . ': '); + $code = $this->parseResult($line, $command . ': '); // Remove last line from response - if ($response) { - $line_len = min(strlen($response), strlen($line) + 2); + if ($response) { + $line_len = min(strlen($response), strlen($line) + 2); $response = substr($response, 0, -$line_len); } - // optional CAPABILITY response - if (($options & self::COMMAND_CAPABILITY) && $code == self::ERROR_OK + // optional CAPABILITY response + if (($options & self::COMMAND_CAPABILITY) && $code == self::ERROR_OK && preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches) ) { - $this->parseCapability($matches[1], true); - } + $this->parseCapability($matches[1], true); + } - // return last line only (without command tag and result) + // return last line only (without command tag, result and response code) if ($line && ($options & self::COMMAND_LASTLINE)) { - $response = preg_replace("/^$tag (OK|NO|BAD|BYE|PREAUTH)?\s*/i", '', trim($line)); + $response = preg_replace("/^$tag (OK|NO|BAD|BYE|PREAUTH)?\s*(\[[a-z-]+\])?\s*/i", '', trim($line)); } - return $noresp ? $code : array($code, $response); + return $noresp ? $code : array($code, $response); } /** @@ -2917,7 +3072,7 @@ class rcube_imap_generic $result[] = substr($str, $epos + 3, $bytes); // Advance the string $str = substr($str, $epos + 3 + $bytes); - break; + break; // Quoted string case '"': @@ -2939,17 +3094,17 @@ class rcube_imap_generic // we need to strip slashes for a quoted string $result[] = stripslashes(substr($str, 1, $pos - 1)); $str = substr($str, $pos + 1); - break; + break; // Parenthesized list case '(': $str = substr($str, 1); $result[] = self::tokenizeResponse($str); - break; + break; case ')': $str = substr($str, 1); return $result; - break; + break; // String atom, number, NIL, *, % default: @@ -2968,7 +3123,7 @@ class rcube_imap_generic $result[] = $m[1] == 'NIL' ? NULL : $m[1]; $str = substr($str, strlen($m[1])); } - break; + break; } } @@ -2977,12 +3132,14 @@ class rcube_imap_generic private function _xor($string, $string2) { - $result = ''; - $size = strlen($string); - for ($i=0; $i<$size; $i++) { - $result .= chr(ord($string[$i]) ^ ord($string2[$i])); - } - return $result; + $result = ''; + $size = strlen($string); + + for ($i=0; $i<$size; $i++) { + $result .= chr(ord($string[$i]) ^ ord($string2[$i])); + } + + return $result; } /** @@ -2994,31 +3151,33 @@ class rcube_imap_generic */ private function strToTime($date) { - // support non-standard "GMTXXXX" literal - $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date); + // support non-standard "GMTXXXX" literal + $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date); // if date parsing fails, we have a date in non-rfc format. - // remove token from the end and try again - while ((($ts = @strtotime($date))===false) || ($ts < 0)) { - $d = explode(' ', $date); - array_pop($d); - if (!$d) break; - $date = implode(' ', $d); - } + // remove token from the end and try again + while ((($ts = @strtotime($date))===false) || ($ts < 0)) { + $d = explode(' ', $date); + array_pop($d); + if (!$d) { + break; + } + $date = implode(' ', $d); + } - $ts = (int) $ts; + $ts = (int) $ts; - return $ts < 0 ? 0 : $ts; + return $ts < 0 ? 0 : $ts; } private function splitHeaderLine($string) { - $pos = strpos($string, ':'); - if ($pos>0) { - $res[0] = substr($string, 0, $pos); - $res[1] = trim(substr($string, $pos+1)); - return $res; - } - return $string; + $pos = strpos($string, ':'); + if ($pos>0) { + $res[0] = substr($string, 0, $pos); + $res[1] = trim(substr($string, $pos+1)); + return $res; + } + return $string; } private function parseCapability($str, $trusted=false) @@ -3046,17 +3205,15 @@ class rcube_imap_generic */ static function escape($string) { - // NIL if ($string === null) { return 'NIL'; } - // empty string else if ($string === '') { return '""'; } - // string: special chars: SP, CTL, (, ), {, %, *, ", \, ] else if (preg_match('/([\x00-\x20\x28-\x29\x7B\x25\x2A\x22\x5C\x5D\x7F]+)/', $string)) { - return '"' . strtr($string, array('"'=>'\\"', '\\' => '\\\\')) . '"'; + // string: special chars: SP, CTL, (, ), {, %, *, ", \, ] + return '"' . strtr($string, array('"'=>'\\"', '\\' => '\\\\')) . '"'; } // atom @@ -3065,7 +3222,7 @@ class rcube_imap_generic static function unEscape($string) { - return strtr($string, array('\\"'=>'"', '\\\\' => '\\')); + return strtr($string, array('\\"'=>'"', '\\\\' => '\\')); } } diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php index 790f8d9bd..b6c865d1c 100644 --- a/program/include/rcube_message.php +++ b/program/include/rcube_message.php @@ -426,7 +426,7 @@ class rcube_message $mail_part->type = 'content'; $this->parts[] = $mail_part; } - + // list as attachment as well if (!empty($mail_part->filename)) $this->attachments[] = $mail_part; @@ -473,6 +473,10 @@ class rcube_message // attachment encapsulated within message/rfc822 part needs further decoding (#1486743) else if ($part_orig_mimetype == 'message/rfc822') { $this->parse_structure($mail_part, true); + + // list as attachment as well (mostly .eml) + if (!empty($mail_part->filename)) + $this->attachments[] = $mail_part; } // is a regular attachment (content-type name regexp according to RFC4288.4.2) else if (preg_match('/^[a-z0-9!#$&.+^_-]+\/[a-z0-9!#$&.+^_-]+$/i', $part_mimetype)) { diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 8a9eff4f5..d6ea3dce2 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -1045,7 +1045,7 @@ class rcube_template extends rcube_html_page private function login_form($attrib) { $default_host = $this->config['default_host']; - $attrib['autocomplete'] = $this->config['login_autocomplete'] ? null : 'off'; + $autocomplete = (int) $this->config['login_autocomplete']; $_SESSION['temp'] = true; @@ -1054,11 +1054,18 @@ class rcube_template extends rcube_html_page if (empty($url) && !preg_match('/_(task|action)=logout/', $_SERVER['QUERY_STRING'])) $url = $_SERVER['QUERY_STRING']; - $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser') + $attrib); - $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd') + $attrib); + // set atocomplete attribute + $user_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off'); + $host_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off'); + $pass_attrib = $autocomplete > 1 ? array() : array('autocomplete' => 'off'); + $input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login')); $input_tzone = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_')); $input_url = new html_hiddenfield(array('name' => '_url', 'id' => 'rcmloginurl', 'value' => $url)); + $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser') + + $attrib + $user_attrib); + $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd') + + $attrib + $pass_attrib); $input_host = null; if (is_array($default_host) && count($default_host) > 1) { @@ -1080,7 +1087,8 @@ class rcube_template extends rcube_html_page 'name' => '_host', 'id' => 'rcmloginhost', 'value' => $host) + $attrib); } else if (empty($default_host)) { - $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost') + $attrib); + $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost') + + $attrib + $host_attrib); } $form_name = !empty($attrib['form']) ? $attrib['form'] : 'form'; @@ -1090,7 +1098,7 @@ class rcube_template extends rcube_html_page $table = new html_table(array('cols' => 2)); $table->add('title', html::label('rcmloginuser', Q(rcube_label('username')))); - $table->add(null, $input_user->show(get_input_value('_user', RCUBE_INPUT_POST))); + $table->add(null, $input_user->show(get_input_value('_user', RCUBE_INPUT_GPC))); $table->add('title', html::label('rcmloginpwd', Q(rcube_label('password')))); $table->add(null, $input_pass->show()); @@ -1098,7 +1106,7 @@ class rcube_template extends rcube_html_page // add host selection row if (is_object($input_host) && !$hide_host) { $table->add('title', html::label('rcmloginhost', Q(rcube_label('server')))); - $table->add(null, $input_host->show(get_input_value('_host', RCUBE_INPUT_POST))); + $table->add(null, $input_host->show(get_input_value('_host', RCUBE_INPUT_GPC))); } $out = $input_action->show(); diff --git a/program/include/rcube_user.php b/program/include/rcube_user.php index e4506cff7..ee6db77cc 100644 --- a/program/include/rcube_user.php +++ b/program/include/rcube_user.php @@ -358,13 +358,17 @@ class rcube_user { $dbh = rcmail::get_instance()->get_dbh(); + // use BINARY (case-sensitive) comparison on MySQL, other engines are case-sensitive + $prefix = preg_match('/^mysql/', $dbh->db_provider) ? 'BINARY ' : ''; + // query for matching user name $query = "SELECT * FROM ".get_table_name('users')." WHERE mail_host = ? AND %s = ?"; - $sql_result = $dbh->query(sprintf($query, 'username'), $host, $user); + + $sql_result = $dbh->query(sprintf($query, $prefix.'username'), $host, $user); // query for matching alias if (!($sql_arr = $dbh->fetch_assoc($sql_result))) { - $sql_result = $dbh->query(sprintf($query, 'alias'), $host, $user); + $sql_result = $dbh->query(sprintf($query, $prefix.'alias'), $host, $user); $sql_arr = $dbh->fetch_assoc($sql_result); } diff --git a/program/js/app.js b/program/js/app.js index 7ab31cb46..90c18b6e6 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -148,7 +148,7 @@ function rcube_webmail() this.init_buttons(); // tell parent window that this frame is loaded - if (this.env.framed && parent.rcmail && parent.rcmail.set_busy) { + if (this.is_framed()) { parent.rcmail.set_busy(false, null, parent.rcmail.env.frame_lock); parent.rcmail.env.frame_lock = null; } @@ -222,7 +222,7 @@ function rcube_webmail() } // make preview/message frame visible - if (this.env.action == 'preview' && this.env.framed && parent.rcmail) { + if (this.env.action == 'preview' && this.is_framed()) { this.enable_command('compose', 'add-contact', false); parent.rcmail.show_contentframe(true); } @@ -343,8 +343,15 @@ function rcube_webmail() this.enable_command('add', this.env.identities_level < 2); this.enable_command('save', 'delete', 'edit', 'toggle-editor', true); } - else if (this.env.action=='folders') - this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', 'delete-folder', 'enable-threading', 'disable-threading', true); + else if (this.env.action=='folders') { + this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', true); + } + else if (this.env.action == 'edit-folder' && this.gui_objects.editform) { + this.enable_command('save', 'folder-size', true); + parent.rcmail.env.messagecount = this.env.messagecount; + parent.rcmail.enable_command('purge', this.env.messagecount); + $("input[type='text']").first().select(); + } if (this.gui_objects.identitieslist) { this.identity_list = new rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, draggable:false, keyboard:false}); @@ -435,7 +442,7 @@ function rcube_webmail() // command not supported or allowed if (!this.commands[command]) { // pass command to parent window - if (this.env.framed && parent.rcmail && parent.rcmail.command) + if (this.is_framed()) parent.rcmail.command(command, props); return false; @@ -1120,12 +1127,12 @@ function rcube_webmail() this.reload = function(delay) { - if (this.env.framed && parent.rcmail) + if (this.is_framed()) parent.rcmail.reload(delay); else if (delay) window.setTimeout(function(){ rcmail.reload(); }, delay); else if (window.location) - location.href = this.env.comm_path; + location.href = this.env.comm_path + (this.env.action ? '&_action='+this.env.action : ''); }; // Add variable to GET string, replace old value if exists @@ -1149,6 +1156,12 @@ function rcube_webmail() return url + '?' + name + '=' + value; }; + this.is_framed = function() + { + return (this.env.framed && parent.rcmail); + }; + + /*********************************************************/ /********* event handling methods *********/ /*********************************************************/ @@ -1528,7 +1541,7 @@ function rcube_webmail() if (this.task == 'mail') allow = (this.env.mailboxes[id] && this.env.mailboxes[id].id != this.env.mailbox && !this.env.mailboxes[id].virtual); else if (this.task == 'settings') - allow = (id != this.env.folder); + allow = (id != this.env.mailbox); else if (this.task == 'addressbook') { if (id != this.env.source && this.env.contactfolders[id]) { if (this.env.contactfolders[id].type == 'group') { @@ -1823,7 +1836,7 @@ function rcube_webmail() this.show_contentframe(true); else { if (!this.env.frame_lock) { - (parent.rcmail ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); + (this.is_framed() ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); } target.location.href = this.env.comm_path+url; @@ -2373,8 +2386,10 @@ function rcube_webmail() } } + add_url += '&_uid='+this.uids_to_list(a_uids); + // send request to server - this.http_post('copy', '_uid='+a_uids.join(',')+'&_mbox='+urlencode(this.env.mailbox)+add_url, lock); + this.http_post('copy', '_mbox='+urlencode(this.env.mailbox)+add_url, lock); }; // move selected messages to the specified mailbox @@ -2387,8 +2402,8 @@ function rcube_webmail() if (!mbox || mbox == this.env.mailbox || (!this.env.uid && (!this.message_list || !this.message_list.get_selection().length))) return; - var lock = false; - var add_url = '&_target_mbox='+urlencode(mbox)+'&_from='+(this.env.action ? this.env.action : ''); + var lock = false, + add_url = '&_target_mbox='+urlencode(mbox)+'&_from='+(this.env.action ? this.env.action : ''); // show wait message if (this.env.action == 'show') { @@ -2729,24 +2744,23 @@ function rcube_webmail() this.expunge_mailbox = function(mbox) { - var lock = false; - var add_url = ''; + var lock = false, + url = '_mbox='+urlencode(mbox); // lock interface if it's the active mailbox if (mbox == this.env.mailbox) { lock = this.set_busy(true, 'loading'); - add_url = '&_reload=1'; + url += '&_reload=1'; } // send request to server - var url = '_mbox='+urlencode(mbox); - this.http_post('expunge', url+add_url, lock); + this.http_post('expunge', url, lock); }; this.purge_mailbox = function(mbox) { - var lock = false; - var add_url = ''; + var lock = false, + url = '_mbox='+urlencode(mbox); if (!confirm(this.get_label('purgefolderconfirm'))) return false; @@ -2754,13 +2768,11 @@ function rcube_webmail() // lock interface if it's the active mailbox if (mbox == this.env.mailbox) { lock = this.set_busy(true, 'loading'); - add_url = '&_reload=1'; + url += '&_reload=1'; } // send request to server - var url = '_mbox='+urlencode(mbox); - this.http_post('purge', url+add_url, lock); - return true; + this.http_post('purge', url, lock); }; // test if purge command is allowed @@ -2807,7 +2819,7 @@ function rcube_webmail() input_subject = $("input[name='_subject']"), input_message = $("[name='_message']").get(0), html_mode = $("input[name='_is_html']").val() == '1', - ac_fields = ['cc', 'bcc', 'replyto', 'mailreplyto', 'mailfollowupto']; + ac_fields = ['cc', 'bcc', 'replyto', 'followupto']; // init live search events this.init_address_input_events(input_to); @@ -3974,16 +3986,12 @@ function rcube_webmail() this.init_subscription_list = function() { var p = this; - this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist, {multiselect:false, draggable:true, keyboard:false, toggleselect:true}); + this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist, + {multiselect:false, draggable:true, keyboard:false, toggleselect:true}); this.subscription_list.addEventListener('select', function(o){ p.subscription_select(o); }); this.subscription_list.addEventListener('dragstart', function(o){ p.drag_active = true; }); this.subscription_list.addEventListener('dragend', function(o){ p.subscription_move_folder(o); }); this.subscription_list.row_init = function (row) { - var anchors = row.obj.getElementsByTagName('a'); - if (anchors[0]) - anchors[0].onclick = function() { p.command('rename-folder', row.id); return false; }; - if (anchors[1]) - anchors[1].onclick = function() { p.command('delete-folder', row.id); return false; }; row.obj.onmouseover = function() { p.focus_subscription(row.id); }; row.obj.onmouseout = function() { p.unfocus_subscription(row.id); }; }; @@ -4060,18 +4068,18 @@ function rcube_webmail() delim = RegExp.escape(this.env.delimiter), reg = RegExp('['+delim+']?[^'+delim+']+$'); - if (this.drag_active && this.env.folder && (row = document.getElementById(id))) + if (this.drag_active && this.env.mailbox && (row = document.getElementById(id))) if (this.env.subscriptionrows[id] && (folder = this.env.subscriptionrows[id][0])) { if (this.check_droptarget(folder) && - !this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2] && - (folder != this.env.folder.replace(reg, '')) && - (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter))))) { + !this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2] && + (folder != this.env.mailbox.replace(reg, '')) && + (!folder.match(new RegExp('^'+RegExp.escape(this.env.mailbox+this.env.delimiter))))) { this.set_env('dstfolder', folder); $(row).addClass('droptarget'); } } - else if (this.env.folder.match(new RegExp(delim))) { + else if (this.env.mailbox.match(new RegExp(delim))) { this.set_env('dstfolder', this.env.delimiter); $(this.subscription_list.frame).addClass('droptarget'); } @@ -4091,15 +4099,19 @@ function rcube_webmail() this.subscription_select = function(list) { var id, folder; - if ((id = list.get_single_selection()) && - this.env.subscriptionrows['rcmrow'+id] && - (folder = this.env.subscriptionrows['rcmrow'+id][0])) - this.set_env('folder', folder); - else - this.set_env('folder', null); - if (this.gui_objects.createfolderhint) - $(this.gui_objects.createfolderhint).html(this.env.folder ? this.get_label('addsubfolderhint') : ''); + if (list && (id = list.get_single_selection()) && + (folder = this.env.subscriptionrows['rcmrow'+id]) + ) { + this.set_env('mailbox', folder[0]); + this.show_folder(folder[0]); + this.enable_command('delete-folder', !folder[2]); + } + else { + this.env.mailbox = null; + this.show_contentframe(false); + this.enable_command('delete-folder', 'purge', false); + } }; this.subscription_move_folder = function(list) @@ -4107,129 +4119,35 @@ function rcube_webmail() var delim = RegExp.escape(this.env.delimiter), reg = RegExp('['+delim+']?[^'+delim+']+$'); - if (this.env.folder && this.env.dstfolder && (this.env.dstfolder != this.env.folder) && - (this.env.dstfolder != this.env.folder.replace(reg, ''))) { - var reg = new RegExp('[^'+delim+']*['+delim+']', 'g'); - var basename = this.env.folder.replace(reg, ''); - var newname = this.env.dstfolder==this.env.delimiter ? basename : this.env.dstfolder+this.env.delimiter+basename; + if (this.env.mailbox && this.env.dstfolder && (this.env.dstfolder != this.env.mailbox) && + (this.env.dstfolder != this.env.mailbox.replace(reg, '')) + ) { + reg = new RegExp('[^'+delim+']*['+delim+']', 'g'); + var lock = this.set_busy(true, 'foldermoving'), + basename = this.env.mailbox.replace(reg, ''), + newname = this.env.dstfolder==this.env.delimiter ? basename : this.env.dstfolder+this.env.delimiter+basename; - var lock = this.set_busy(true, 'foldermoving'); - this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.folder)+'&_folder_newname='+urlencode(newname), lock); + this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.mailbox)+'&_folder_newname='+urlencode(newname), lock); } this.drag_active = false; this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder)); }; // tell server to create and subscribe a new mailbox - this.create_folder = function(name) - { - if (this.edit_folder) - this.reset_folder_rename(); - - var form; - if ((form = this.gui_objects.editform) && form.elements['_folder_name']) { - name = form.elements['_folder_name'].value; - - if (name.indexOf(this.env.delimiter)>=0) { - alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')'); - return false; - } - - if (this.env.folder && name != '') - name = this.env.folder+this.env.delimiter+name; - - var lock = this.set_busy(true, 'foldercreating'); - this.http_post('create-folder', '_name='+urlencode(name), lock); - } - else if (form.elements['_folder_name']) - form.elements['_folder_name'].focus(); - }; - - // start renaming the mailbox name. - // this will replace the name string with an input field - this.rename_folder = function(id) - { - var temp, row, form; - - // reset current renaming - if (temp = this.edit_folder) { - this.reset_folder_rename(); - if (temp == id) - return; - } - - if (id && this.env.subscriptionrows[id] && (row = document.getElementById(id))) { - var delim = RegExp.escape(this.env.delimiter), - reg = new RegExp('.*['+delim+']'); - - this.name_input = document.createElement('input'); - this.name_input.type = 'text'; - this.name_input.value = this.env.subscriptionrows[id][0].replace(reg, ''); - - reg = new RegExp('['+delim+']?[^'+delim+']+$'); - this.name_input.__parent = this.env.subscriptionrows[id][0].replace(reg, ''); - this.name_input.onkeydown = function(e){ rcmail.name_input_keydown(e); }; - - row.cells[0].replaceChild(this.name_input, row.cells[0].firstChild); - this.edit_folder = id; - this.name_input.select(); - - if (form = this.gui_objects.editform) - form.onsubmit = function(){ return false; }; - } - }; - - // remove the input field and write the current mailbox name to the table cell - this.reset_folder_rename = function() + this.create_folder = function() { - var cell = this.name_input ? this.name_input.parentNode : null; - - if (cell && this.edit_folder && this.env.subscriptionrows[this.edit_folder]) - $(cell).html(this.env.subscriptionrows[this.edit_folder][1]); - - this.edit_folder = null; - }; - - // handler for keyboard events on the input field - this.name_input_keydown = function(e) - { - var key = rcube_event.get_keycode(e); - - // enter - if (key==13) { - var newname = this.name_input ? this.name_input.value : null; - if (this.edit_folder && newname) { - if (newname.indexOf(this.env.delimiter)>=0) { - alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')'); - return false; - } - - if (this.name_input.__parent) - newname = this.name_input.__parent + this.env.delimiter + newname; - - var lock = this.set_busy(true, 'folderrenaming'); - this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.subscriptionrows[this.edit_folder][0])+'&_folder_newname='+urlencode(newname), lock); - } - } - // escape - else if (key==27) - this.reset_folder_rename(); + this.show_folder('', this.env.mailbox); }; // delete a specific mailbox with all its messages - this.delete_folder = function(id) + this.delete_folder = function(name) { - var folder = this.env.subscriptionrows[id][0]; - - if (this.edit_folder) - this.reset_folder_rename(); + var id = this.get_folder_row_id(name ? name : this.env.mailbox), + folder = this.env.subscriptionrows[id][0]; if (folder && confirm(this.get_label('deletefolderconfirm'))) { var lock = this.set_busy(true, 'folderdeleting'); - this.http_post('delete-folder', '_mboxes='+urlencode(folder), lock); - this.set_env('folder', null); - - $(this.gui_objects.createfolderhint).html(''); + this.http_post('delete-folder', '_mbox='+urlencode(folder), lock); } }; @@ -4286,18 +4204,8 @@ function rcube_webmail() // set messages count to zero row.cells[1].innerHTML = '*'; - // update subscription/threading checkboxes + // update subscription checkbox $('input[name="_subscribed[]"]', row).val(name).attr('checked', true); - $('input[name="_threaded[]"]', row).val(name).attr('checked', false); - - var elem; - // add new folder to rename-folder list and clear input field - if (form = this.gui_objects.editform) { - if (elem = form.elements['_folder_oldname']) - elem.options[elem.options.length] = new Option(name, name); - if (elem = form.elements['_folder_name']) - elem.value = ''; - } } this.init_subscription_list(); @@ -4311,72 +4219,37 @@ function rcube_webmail() // replace an existing table row with a new folder line this.replace_folder_row = function(oldfolder, newfolder, display_name, before) { - var form, elm, - id = this.get_folder_row_id(oldfolder), + var id = this.get_folder_row_id(oldfolder), row = document.getElementById(id); // replace an existing table row (if found) this.add_folder_row(newfolder, display_name, row, before); - - // rename folder in rename-folder dropdown - if ((form = this.gui_objects.editform) && (elm = form.elements['_folder_oldname'])) { - for (var i=0; i<elm.options.length; i++) { - if (elm.options[i].value == oldfolder) { - elm.options[i].text = display_name; - elm.options[i].value = newfolder; - break; - } - } - - form.elements['_folder_newname'].value = ''; - } }; // remove the table row of a specific mailbox from the table // (the row will not be removed, just hidden) this.remove_folder_row = function(folder) { - var form, elm, row, id = this.get_folder_row_id(folder); + var row, id = this.get_folder_row_id(folder); if (id && (row = document.getElementById(id))) row.style.display = 'none'; - - // remove folder from rename-folder list - if ((form = this.gui_objects.editform) && (elm = form.elements['_folder_oldname'])) { - for (var i=0; i<elm.options.length; i++) { - if (elm.options[i].value == folder) { - elm.options[i] = null; - break; - } - } - } - - if (form && (elm = form.elements['_folder_newname'])) - elm.value = ''; }; this.subscribe = function(folder) { - if (folder) - this.http_post('subscribe', '_mbox='+urlencode(folder)); + if (folder) { + var lock = this.display_message(this.get_label('foldersubscribing'), 'loading'); + this.http_post('subscribe', '_mbox='+urlencode(folder), lock); + } }; this.unsubscribe = function(folder) { - if (folder) - this.http_post('unsubscribe', '_mbox='+urlencode(folder)); - }; - - this.enable_threading = function(folder) - { - if (folder) - this.http_post('enable-threading', '_mbox='+urlencode(folder)); - }; - - this.disable_threading = function(folder) - { - if (folder) - this.http_post('disable-threading', '_mbox='+urlencode(folder)); + if (folder) { + var lock = this.display_message(this.get_label('folderunsubscribing'), 'loading'); + this.http_post('unsubscribe', '_mbox='+urlencode(folder), lock); + } }; // helper method to find a specific mailbox row ID @@ -4395,7 +4268,7 @@ function rcube_webmail() var cell, td, new_row = document.createElement('tr'); - for(var n=0; n<row.cells.length; n++) { + for (var n=0; n<row.cells.length; n++) { cell = row.cells[n]; td = document.createElement('td'); @@ -4411,6 +4284,42 @@ function rcube_webmail() return new_row; }; + // when user select a folder in manager + this.show_folder = function(folder, path, force) + { + var target = window, + url = '&_action=edit-folder&_mbox='+urlencode(folder); + + if (path) + url += '&_path='+urlencode(path); + + if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) { + target = window.frames[this.env.contentframe]; + url += '&_framed=1'; + } + + if (String(target.location.href).indexOf(url) >= 0 && !force) { + this.show_contentframe(true); + } + else { + if (!this.env.frame_lock) { + (parent.rcmail ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); + } + target.location.href = this.env.comm_path+url; + } + }; + + this.folder_size = function(folder) + { + var lock = this.set_busy(true, 'loading'); + this.http_post('folder-size', '_mbox='+urlencode(folder), lock); + }; + + this.folder_size_update = function(size) + { + $('#folder-size').replaceWith(size); + }; + /*********************************************************/ /********* GUI functionality *********/ @@ -4599,7 +4508,7 @@ function rcube_webmail() this.display_message = function(msg, type) { // pass command to parent window - if (this.env.framed && parent.rcmail) + if (this.is_framed()) return parent.rcmail.display_message(msg, type); if (!this.gui_objects.message) { @@ -4647,7 +4556,7 @@ function rcube_webmail() this.hide_message = function(obj, fade) { // pass command to parent window - if (this.env.framed && parent.rcmail) + if (this.is_framed()) return parent.rcmail.hide_message(obj, fade); if (typeof(obj) == 'object') { diff --git a/program/js/editor.js b/program/js/editor.js index 2ee4ac1ce..3845e3de4 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -71,8 +71,10 @@ function rcmail_editor_callback() if (elem && elem.type == 'select-one') { rcmail.change_identity(elem); // Focus previously focused element - if (fe && fe.id != rcmail.env.composebody) + if (fe && fe.id != rcmail.env.composebody) { + window.focus(); // for WebKit (#1486674) fe.focus(); + } } // set tabIndex and set focus to element that was focused before diff --git a/program/js/list.js b/program/js/list.js index 406590b4c..ae4890f60 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -110,7 +110,7 @@ init_row: function(row) // set eventhandlers to table row row.onmousedown = function(e){ return self.drag_row(e, this.uid); }; row.onmouseup = function(e){ return self.click_row(e, this.uid); }; - + if (bw.iphone || bw.ipad) { row.addEventListener('touchstart', function(e) { if (e.touches.length == 1) { @@ -223,7 +223,8 @@ focus: function(e) } // Un-focus already focused elements - $('*:focus').blur(); + $('*:focus', window).blur(); + $('iframe').each(function() { this.blur(); }); if (e || (e = window.event)) rcube_event.cancel(e); @@ -699,7 +700,7 @@ select_next: function() var prev_row = this.get_prev_row(); var new_row = (next_row) ? next_row : prev_row; if (new_row) - this.select_row(new_row.uid, false, false); + this.select_row(new_row.uid, false, false); }, @@ -728,7 +729,7 @@ select_last: function(mod_key) if (row && mod_key) { this.shift_select(row, mod_key); this.triggerEvent('select'); - this.scrollto(row); + this.scrollto(row); } else if (row) this.select(row); diff --git a/program/lib/Mail/mime.php b/program/lib/Mail/mime.php index 481764a5a..c5dd305fa 100644 --- a/program/lib/Mail/mime.php +++ b/program/lib/Mail/mime.php @@ -365,30 +365,28 @@ class Mail_mime * Adds a file to the list of attachments. * * @param string $file The file name of the file to attach - * OR the file contents itself + * or the file contents itself * @param string $c_type The content type * @param string $name The filename of the attachment * Only use if $file is the contents - * @param bool $isfile Whether $file is a filename or not - * Defaults to true - * @param string $encoding The type of encoding to use. - * Defaults to base64. - * Possible values: 7bit, 8bit, base64, - * or quoted-printable. + * @param bool $isfile Whether $file is a filename or not. Defaults to true + * @param string $encoding The type of encoding to use. Defaults to base64. + * Possible values: 7bit, 8bit, base64 or quoted-printable. * @param string $disposition The content-disposition of this file * Defaults to attachment. * Possible values: attachment, inline. - * @param string $charset The character set used in the filename - * of this attachment. + * @param string $charset The character set of attachment's content. * @param string $language The language of the attachment * @param string $location The RFC 2557.4 location of the attachment - * @param string $n_encoding Encoding for attachment name (Content-Type) + * @param string $n_encoding Encoding of the attachment's name in Content-Type * By default filenames are encoded using RFC2231 method * Here you can set RFC2047 encoding (quoted-printable * or base64) instead - * @param string $f_encoding Encoding for attachment filename (Content-Disposition) - * See $n_encoding description + * @param string $f_encoding Encoding of the attachment's filename + * in Content-Disposition header. * @param string $description Content-Description header + * @param string $h_charset The character set of the headers e.g. filename + * If not specified, $charset will be used * * @return mixed True on success or PEAR_Error object * @access public @@ -404,7 +402,8 @@ class Mail_mime $location = '', $n_encoding = null, $f_encoding = null, - $description = '' + $description = '', + $h_charset = null ) { $bodyfile = null; @@ -437,14 +436,15 @@ class Mail_mime 'body_file' => $bodyfile, 'name' => $filename, 'c_type' => $c_type, - 'encoding' => $encoding, 'charset' => $charset, + 'encoding' => $encoding, 'language' => $language, 'location' => $location, 'disposition' => $disposition, 'description' => $description, 'name_encoding' => $n_encoding, - 'filename_encoding' => $f_encoding + 'filename_encoding' => $f_encoding, + 'headers_charset' => $h_charset, ); return true; @@ -621,7 +621,7 @@ class Mail_mime $params['content_type'] = $value['c_type']; $params['encoding'] = 'base64'; $params['disposition'] = 'inline'; - $params['dfilename'] = $value['name']; + $params['filename'] = $value['name']; $params['cid'] = $value['cid']; $params['body_file'] = $value['body_file']; $params['eol'] = $this->_build_params['eol']; @@ -650,19 +650,25 @@ class Mail_mime function &_addAttachmentPart(&$obj, $value) { $params['eol'] = $this->_build_params['eol']; - $params['dfilename'] = $value['name']; + $params['filename'] = $value['name']; $params['encoding'] = $value['encoding']; $params['content_type'] = $value['c_type']; $params['body_file'] = $value['body_file']; $params['disposition'] = isset($value['disposition']) ? $value['disposition'] : 'attachment'; - if ($value['charset']) { + + // content charset + if (!empty($value['charset'])) { $params['charset'] = $value['charset']; } - if ($value['language']) { + // headers charset (filename, description) + if (!empty($value['headers_charset'])) { + $params['headers_charset'] = $value['headers_charset']; + } + if (!empty($value['language'])) { $params['language'] = $value['language']; } - if ($value['location']) { + if (!empty($value['location'])) { $params['location'] = $value['location']; } if (!empty($value['name_encoding'])) { @@ -1387,18 +1393,23 @@ class Mail_mime if ($headers['Content-Type'] == 'text/plain') { // single-part message: add charset and encoding + $charset = 'charset=' . $this->_build_params['text_charset']; + // place charset parameter in the same line, if possible + // 26 = strlen("Content-Type: text/plain; ") $headers['Content-Type'] - .= ";$eol charset=" . $this->_build_params['text_charset']; + .= (strlen($charset) + 26 <= 76) ? "; $charset" : ";$eol $charset"; $headers['Content-Transfer-Encoding'] = $this->_build_params['text_encoding']; } else if ($headers['Content-Type'] == 'text/html') { // single-part message: add charset and encoding + $charset = 'charset=' . $this->_build_params['html_charset']; + // place charset parameter in the same line, if possible $headers['Content-Type'] - .= ";$eol charset=" . $this->_build_params['html_charset']; + .= (strlen($charset) + 25 <= 76) ? "; $charset" : ";$eol $charset"; $headers['Content-Transfer-Encoding'] = $this->_build_params['html_encoding']; } else { - // multipart message: add charset and boundary + // multipart message: and boundary if (!empty($this->_build_params['boundary'])) { $boundary = $this->_build_params['boundary']; } else if (!empty($this->_headers['Content-Type']) diff --git a/program/lib/Mail/mimePart.php b/program/lib/Mail/mimePart.php index 55ea7a670..60b3601e0 100644 --- a/program/lib/Mail/mimePart.php +++ b/program/lib/Mail/mimePart.php @@ -141,17 +141,19 @@ class Mail_mimePart * content_type - The content type for this part eg multipart/mixed * encoding - The encoding to use, 7bit, 8bit, * base64, or quoted-printable + * charset - Content character set * cid - Content ID to apply * disposition - Content disposition, inline or attachment * dfilename - Filename parameter for content disposition * description - Content description - * charset - Character set to use - * name_encoding - Encoding for attachment name (Content-Type) + * name_encoding - Encoding of the attachment name (Content-Type) * By default filenames are encoded using RFC2231 * Here you can set RFC2047 encoding (quoted-printable * or base64) instead - * filename_encoding - Encoding for attachment filename (Content-Disposition) + * filename_encoding - Encoding of the attachment filename (Content-Disposition) * See 'name_encoding' + * headers_charset - Charset of the headers e.g. filename, description. + * If not set, 'charset' will be used * eol - End of line sequence. Default: "\r\n" * body_file - Location of file with part's body (instead of $body) * @@ -165,14 +167,8 @@ class Mail_mimePart $this->_eol = MAIL_MIMEPART_CRLF; } - $c_type = array(); - $c_disp = array(); foreach ($params as $key => $value) { switch ($key) { - case 'content_type': - $c_type['type'] = $value; - break; - case 'encoding': $this->_encoding = $value; $headers['Content-Transfer-Encoding'] = $value; @@ -182,29 +178,6 @@ class Mail_mimePart $headers['Content-ID'] = '<' . $value . '>'; break; - case 'disposition': - $c_disp['disp'] = $value; - break; - - case 'dfilename': - $c_disp['filename'] = $value; - $c_type['name'] = $value; - break; - - case 'description': - $headers['Content-Description'] = $value; - break; - - case 'charset': - $c_type['charset'] = $value; - $c_disp['charset'] = $value; - break; - - case 'language': - $c_type['language'] = $value; - $c_disp['language'] = $value; - break; - case 'location': $headers['Content-Location'] = $value; break; @@ -216,53 +189,56 @@ class Mail_mimePart } // Default content-type - if (empty($c_type['type'])) { - $c_type['type'] = 'text/plain'; + if (empty($params['content_type'])) { + $params['content_type'] = 'text/plain'; } // Content-Type - if (!empty($c_type['type'])) { - $headers['Content-Type'] = $c_type['type']; - if (!empty($c_type['charset'])) { - $charset = "charset={$c_type['charset']}"; - // place charset parameter in the same line, if possible - if ((strlen($headers['Content-Type']) + strlen($charset) + 16) <= 76) { - $headers['Content-Type'] .= '; '; - } else { - $headers['Content-Type'] .= ';' . $this->_eol . ' '; - } - $headers['Content-Type'] .= $charset; + $headers['Content-Type'] = $params['content_type']; + if (!empty($params['charset'])) { + $charset = "charset={$params['charset']}"; + // place charset parameter in the same line, if possible + if ((strlen($headers['Content-Type']) + strlen($charset) + 16) <= 76) { + $headers['Content-Type'] .= '; '; + } else { + $headers['Content-Type'] .= ';' . $this->_eol . ' '; } - if (!empty($c_type['name'])) { - $headers['Content-Type'] .= ';' . $this->_eol; - $headers['Content-Type'] .= $this->_buildHeaderParam( - 'name', $c_type['name'], - isset($c_type['charset']) ? $c_type['charset'] : 'US-ASCII', - isset($c_type['language']) ? $c_type['language'] : null, - isset($params['name_encoding']) ? $params['name_encoding'] : null - ); + $headers['Content-Type'] .= $charset; + + // Default headers charset + if (!isset($params['headers_charset'])) { + $params['headers_charset'] = $params['charset']; } } + if (!empty($params['filename'])) { + $headers['Content-Type'] .= ';' . $this->_eol; + $headers['Content-Type'] .= $this->_buildHeaderParam( + 'name', $params['filename'], + !empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII', + !empty($params['language']) ? $params['language'] : null, + !empty($params['name_encoding']) ? $params['name_encoding'] : null + ); + } // Content-Disposition - if (!empty($c_disp['disp'])) { - $headers['Content-Disposition'] = $c_disp['disp']; - if (!empty($c_disp['filename'])) { + if (!empty($params['disposition'])) { + $headers['Content-Disposition'] = $params['disposition']; + if (!empty($params['filename'])) { $headers['Content-Disposition'] .= ';' . $this->_eol; $headers['Content-Disposition'] .= $this->_buildHeaderParam( - 'filename', $c_disp['filename'], - isset($c_disp['charset']) ? $c_disp['charset'] : 'US-ASCII', - isset($c_disp['language']) ? $c_disp['language'] : null, - isset($params['filename_encoding']) ? $params['filename_encoding'] : null + 'filename', $params['filename'], + !empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII', + !empty($params['language']) ? $params['language'] : null, + !empty($params['filename_encoding']) ? $params['filename_encoding'] : null ); } } - if (!empty($headers['Content-Description'])) { + if (!empty($params['description'])) { $headers['Content-Description'] = $this->encodeHeader( - 'Content-Description', $headers['Content-Description'], - isset($c_type['charset']) ? $c_type['charset'] : 'US-ASCII', - isset($params['name_encoding']) ? $params['name_encoding'] : 'quoted-printable', + 'Content-Description', $params['description'], + !empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII', + !empty($params['name_encoding']) ? $params['name_encoding'] : 'quoted-printable', $this->_eol ); } diff --git a/program/localization/ar_SA/labels.inc b/program/localization/ar_SA/labels.inc index f54bb5278..c2534f1c5 100644 --- a/program/localization/ar_SA/labels.inc +++ b/program/localization/ar_SA/labels.inc @@ -38,14 +38,18 @@ $labels['to'] = 'المستقبل'; $labels['cc'] = 'نسخة'; $labels['bcc'] = 'نسخة مخÙية'; $labels['replyto'] = 'الرد إلى'; +$labels['followupto'] = 'Mail-Followup-To'; $labels['date'] = 'التاريخ'; $labels['size'] = 'الØجم'; $labels['priority'] = 'الأولوية'; $labels['organization'] = 'المنظمة'; +$labels['readstatus'] = 'Øالة القراءة'; $labels['reply-to'] = 'الرد إلى'; +$labels['mail-reply-to'] = 'Mail-Reply-To'; +$labels['mail-followup-to'] = 'Mail-Followup-To'; $labels['mailboxlist'] = 'المجلدات'; -$labels['messagesfromto'] = 'الرسالة $from إلى $to من $count'; -$labels['threadsfromto'] = 'المراسلات $from إلى $to من $count'; +$labels['messagesfromto'] = 'الرسالة $from إلى $to من مجموع $count'; +$labels['threadsfromto'] = 'جهات الإتصال $from إلى $to من مجموع $count'; $labels['messagenrof'] = 'الرسالة $nr من $count'; $labels['copy'] = 'نسخ'; $labels['move'] = 'نقل'; @@ -54,13 +58,13 @@ $labels['download'] = 'تنزيل'; $labels['filename'] = 'اسم الملÙ'; $labels['filesize'] = 'Øجم الملÙ'; $labels['addtoaddressbook'] = 'إضاÙØ© إلى دÙتر العناوين'; -$labels['sun'] = 'Ø£Ø'; -$labels['mon'] = 'إث'; -$labels['tue'] = 'ثل'; -$labels['wed'] = 'أر'; -$labels['thu'] = 'خم'; -$labels['fri'] = 'جم'; -$labels['sat'] = 'سب'; +$labels['sun'] = 'Ø£Øد'; +$labels['mon'] = 'إثنين'; +$labels['tue'] = 'ثلاثاء'; +$labels['wed'] = 'أربعاء'; +$labels['thu'] = 'خميس'; +$labels['fri'] = 'جمعة'; +$labels['sat'] = 'سبت'; $labels['sunday'] = 'الأØد'; $labels['monday'] = 'الإثنين'; $labels['tuesday'] = 'الثلاثاء'; @@ -68,22 +72,22 @@ $labels['wednesday'] = 'الأربعاء'; $labels['thursday'] = 'الخميس'; $labels['friday'] = 'الجمعة'; $labels['saturday'] = 'السبت'; -$labels['jan'] = 'ينا'; -$labels['feb'] = 'Ùبر'; -$labels['mar'] = 'مار'; -$labels['apr'] = 'أبر'; -$labels['may'] = 'ماي'; -$labels['jun'] = 'يون'; -$labels['jul'] = 'يول'; -$labels['aug'] = 'أغس'; -$labels['sep'] = 'سبت'; -$labels['oct'] = 'أكت'; -$labels['nov'] = 'نوÙ'; -$labels['dec'] = 'ديس'; +$labels['jan'] = 'يناير'; +$labels['feb'] = 'Ùبراير'; +$labels['mar'] = 'مارس'; +$labels['apr'] = 'أبريل'; +$labels['may'] = 'مايو'; +$labels['jun'] = 'يونيو'; +$labels['jul'] = 'يوليو'; +$labels['aug'] = 'أغسطس'; +$labels['sep'] = 'سبتمبر'; +$labels['oct'] = 'أكتوبر'; +$labels['nov'] = 'نوÙمبر'; +$labels['dec'] = 'ديسمبر'; $labels['longjan'] = 'يناير'; $labels['longfeb'] = 'Ùبراير'; $labels['longmar'] = 'مارس'; -$labels['longapr'] = 'أبريل'; +$labels['longapr'] = 'إبريل'; $labels['longmay'] = 'مايو'; $labels['longjun'] = 'يونيو'; $labels['longjul'] = 'يوليو'; @@ -97,6 +101,8 @@ $labels['checkmail'] = 'التØقق من وجود رسائل جديدة'; $labels['writenewmessage'] = 'إنشاء رسالة جديدة'; $labels['replytomessage'] = 'الرد على الرسالة'; $labels['replytoallmessage'] = 'الرد على المرسل وجميع مستقبلي الرسالة'; +$labels['replyall'] = 'الرد على الجميع'; +$labels['replylist'] = 'الرد على القائمة'; $labels['forwardmessage'] = 'تمرير الرسالة'; $labels['deletemessage'] = 'Øذ٠الرسالة إلى المهملات'; $labels['movemessagetotrash'] = 'انقل الرسالة إلى سلة المهملات'; @@ -169,6 +175,8 @@ $labels['addattachment'] = 'إرÙاق ملÙ'; $labels['charset'] = 'مجموعة المØارÙ'; $labels['editortype'] = 'نوع المÙØرّر'; $labels['returnreceipt'] = 'ايصال استلام'; +$labels['dsn'] = 'تنويه Øالة التوصيل'; +$labels['editidents'] = 'تعديل الهويات'; $labels['checkspelling'] = 'التدقيق الإملائي'; $labels['resumeediting'] = 'متابعة التØرير'; $labels['revertto'] = 'استعادة إلى'; @@ -192,6 +200,7 @@ $labels['maxuploadsize'] = 'أقصى Øجم للمل٠هو $size'; $labels['addcc'] = 'أض٠CC'; $labels['addbcc'] = 'أض٠BCC'; $labels['addreplyto'] = 'أضي٠Reply-To'; +$labels['addfollowupto'] = 'إضاÙØ© Mail-Followup-To'; $labels['mdnrequest'] = 'طلب المرسل إعلامه عند قراءتك لرسالته. هل تود إعلام المرسل؟'; $labels['receiptread'] = 'إيصال الاستلام )بالقراءة)'; $labels['yourmessage'] = 'هذا إيصال بقراءة رسالتك'; @@ -203,6 +212,7 @@ $labels['email'] = 'البريد الإلكتروني'; $labels['addcontact'] = 'إضاÙØ© المراسل المØدد إلى دÙتر عناويني'; $labels['editcontact'] = 'تØرير بيانات المراسل'; $labels['contacts'] = 'المراسلين'; +$labels['contactproperties'] = 'خواص جهة الإتصال'; $labels['edit'] = 'تØرير'; $labels['cancel'] = 'إلغاء'; $labels['save'] = 'ØÙظ'; @@ -246,33 +256,36 @@ $labels['setdefault'] = 'تعيين كإÙتراضي'; $labels['autodetect'] = 'آلي'; $labels['language'] = 'اللغة'; $labels['timezone'] = 'المنطقة الزمنية'; -$labels['pagesize'] = 'أسطر ÙÙŠ الصÙØØ©'; +$labels['pagesize'] = 'عدد الرسائل ÙÙŠ الصÙØØ©'; $labels['signature'] = 'التوقيع'; $labels['dstactive'] = 'التوقيت الصيÙÙŠ'; $labels['htmleditor'] = 'إنشاء رسائل بنسق HTML'; +$labels['htmlonreply'] = 'Øال الرد على الرسائل بصيغة HTML Ùقط'; $labels['htmlsignature'] = 'توقيع HTML'; $labels['previewpane'] = 'إظهار قسم المعاينة'; $labels['skin'] = 'شكل الواجهة'; -$labels['logoutclear'] = 'Ø£Ùرغ المØذوÙات عند الخروج'; -$labels['logoutcompact'] = 'اضغط الوارد عن الخروج'; +$labels['logoutclear'] = 'Ø¥Ùراغ سلة المØذوÙات عند الخروج'; +$labels['logoutcompact'] = 'ضغط صندوق الوارد عن الخروج'; $labels['uisettings'] = 'واجهة المستخدم'; $labels['serversettings'] = 'إعدادات الخادم'; $labels['mailboxview'] = 'مظهر صندوق البريد'; -$labels['mdnrequests'] = 'تنويهات المÙرسÙÙ„'; +$labels['mdnrequests'] = 'عند طلب إشعار استلام'; $labels['askuser'] = 'اسأل المستخدم'; -$labels['autosend'] = 'أأرسلها تلقائياً'; +$labels['autosend'] = 'أرسلها تلقائياً'; +$labels['autosendknown'] = 'أرسل إشعار استلام إلى جهات اتصالي، وإلا اسألني'; +$labels['autosendknownignore'] = 'أرسل إشعار استلام إلى جهات اتصالي، وإلا تجاهل الأمر'; $labels['ignore'] = 'تجاهلها'; -$labels['readwhendeleted'] = 'Øدد الرسالة كمقروءة عند ØØ°Ùها'; -$labels['flagfordeletion'] = 'ضع علامة على الرسالة Ù„ØØ°Ùها بدلاً من ØØ°Ùها'; +$labels['readwhendeleted'] = 'تØديد الرسالة كمقروءة عند ØØ°Ùها'; +$labels['flagfordeletion'] = 'وضع علامة على الرسالة Ù„ØØ°Ùها بدلاً من ØØ°Ùها'; $labels['skipdeleted'] = 'لا تظهر الرسائل المØذوÙØ©'; $labels['deletealways'] = 'Øذ٠الرسائل مباشرة، إن تعذر نقلها إلى المهملات'; $labels['showremoteimages'] = 'إظهار الصور الخارجية المدمجة'; $labels['fromknownsenders'] = 'للمرسلين المعلومين'; $labels['always'] = 'دائماً'; -$labels['showinlineimages'] = 'أظهر الصّور المرÙقة أسÙÙ„ الرسالة'; +$labels['showinlineimages'] = 'إظهار الصّور المرÙقة أسÙÙ„ الرسالة'; $labels['autosavedraft'] = 'ØÙظ المسودة تلقائياً'; $labels['everynminutes'] = 'كل $n دقيقة'; -$labels['keepalive'] = 'تØقق من وجود رسائل جديدة عند'; +$labels['keepalive'] = 'التØقق من وجود رسائل جديدة عند'; $labels['never'] = 'أبداً'; $labels['immediately'] = 'Øالاً'; $labels['messagesdisplaying'] = 'إظهار الرسائل'; @@ -283,7 +296,7 @@ $labels['miscfolding'] = 'RFC 2047/2231 (ميكروسوÙت آوتلوك)'; $labels['2047folding'] = 'RFC 2047 بأكملها (غيرها)'; $labels['force7bit'] = 'استخدام ترميز MIME للØرو٠ذات الثمانية بتّات'; $labels['advancedoptions'] = 'خيارات متقدّمة'; -$labels['focusonnewmessage'] = 'وجّه ناÙذة المتصÙØ Ø¹Ù†Ø¯ وجود رسالة جديدة'; +$labels['focusonnewmessage'] = 'التركيز على ناÙذة المتصÙØ Ø¹Ù†Ø¯ وجود رسالة جديدة'; $labels['checkallfolders'] = 'التØقق من وجود رسائل جديدة ÙÙŠ جميع المجلدات'; $labels['displaynext'] = 'إظهار الرسالة التالية بعد ØØ°Ù/نقل الرسالة الØالية'; $labels['mainoptions'] = 'الخيارات الأساسية'; @@ -305,6 +318,9 @@ $labels['abovequote'] = 'قبل الاقتباس'; $labels['insertsignature'] = 'إضاÙØ© التوقيع'; $labels['previewpanemarkread'] = 'تØديد الرسائل المÙعاينة كمقروءة'; $labels['afternseconds'] = 'بعد $n ثواني'; +$labels['reqmdn'] = 'طلب إشعار استلام دائماً'; +$labels['reqdsn'] = 'طلب تنويه Ù„Øالة التوصيل دائماً'; +$labels['replysamefolder'] = 'وضع الردود ÙÙŠ المجلد الذي ÙŠØوي الرسالة المردود عليها'; $labels['folder'] = 'مجلد'; $labels['folders'] = 'مجلدات'; $labels['foldername'] = 'اسم المجلد'; @@ -312,11 +328,15 @@ $labels['subscribed'] = 'مشترك'; $labels['messagecount'] = 'الرسائل'; $labels['create'] = 'أنشئ'; $labels['createfolder'] = 'أنشئ مجلد جديد'; -$labels['rename'] = 'إعادة التسمية'; -$labels['renamefolder'] = 'إعادة تسمية المجلد'; -$labels['deletefolder'] = 'اØذ٠المجلد'; $labels['managefolders'] = 'إدارة المجلدات'; $labels['specialfolders'] = 'المجلّدات المÙميّزة'; +$labels['properties'] = 'الخواص'; +$labels['folderproperties'] = 'خواص المجلد'; +$labels['parentfolder'] = 'المجلد الØاوي'; +$labels['location'] = 'الموضع'; +$labels['info'] = 'معلومات'; +$labels['getfoldersize'] = 'اضغط لمعرÙØ© Øجم المجلد'; +$labels['changesubscription'] = 'اضغط لتغيير Øالة الإشتراك'; $labels['sortby'] = 'ترتيب بØسب'; $labels['sortasc'] = 'ترتيب تصاعدي'; $labels['sortdesc'] = 'ترتيب تنازلي'; @@ -325,7 +345,7 @@ $labels['KB'] = 'Ùƒ.ب'; $labels['MB'] = 'Ù….ب'; $labels['GB'] = 'ج.ب'; $labels['unicode'] = 'يونيكود'; -$labels['english'] = 'الانجليزية'; +$labels['english'] = 'الإنجليزية'; $labels['westerneuropean'] = 'الغرب أوروبية'; $labels['easterneuropean'] = 'الشرق أوروبية'; $labels['southeasterneuropean'] = 'الجنوب شرق أوروبية'; diff --git a/program/localization/ar_SA/messages.inc b/program/localization/ar_SA/messages.inc index d9b9a9095..2d15a21fb 100644 --- a/program/localization/ar_SA/messages.inc +++ b/program/localization/ar_SA/messages.inc @@ -23,9 +23,10 @@ $messages['cookiesdisabled'] = 'المتصÙØ Ø§Ù„Ø®Ø§Øµ بك لا يقبل ا٠$messages['sessionerror'] = 'انتهت صلاØية الجلسة الØالية أو أنها غير صالØØ©'; $messages['imaperror'] = 'Ùشل الاتصال بخادم IMAP'; $messages['servererror'] = 'خطأ ÙÙŠ الخادم!'; +$messages['servererrormsg'] = 'خطأ خادم: $msg'; $messages['invalidrequest'] = 'طلب غير صالØ! لم تØÙظ أية بيانات.'; $messages['nomessagesfound'] = 'لم يعثر على أية رسائل ÙÙŠ صندوق البريد هذا'; -$messages['loggedout'] = 'لقد قمت بإنهاء هذه الجلسة بنجاØ. إلى اللقاء!'; +$messages['loggedout'] = 'قمت بإنهاء هذه الجلسة بنجاØ. إلى اللقاء!'; $messages['mailboxempty'] = 'صندوق البريد Ùارغ'; $messages['loading'] = 'جاري العمل...'; $messages['uploading'] = 'جاري رÙع الملÙ...'; @@ -54,10 +55,10 @@ $messages['deletecontactconfirm'] = 'هل تريد Øقاً Øذ٠المراس٠$messages['deletemessagesconfirm'] = 'هل تريد Øذ٠الرسائل المØددة؟'; $messages['deletefolderconfirm'] = 'هل تريد Øقاً Øذ٠هذا المجلد؟'; $messages['purgefolderconfirm'] = 'هل تريد Øقاً Øذ٠جميع الرسائل ÙÙŠ هذا المجلد؟'; -$messages['foldercreating'] = 'جاري إنشاء المجلد...'; $messages['folderdeleting'] = 'جاري Øذ٠المجلد...'; -$messages['folderrenaming'] = 'جاري إعادة تسمية المجلد...'; $messages['foldermoving'] = 'جاري نقل المجلد...'; +$messages['foldersubscribing'] = 'الإشتراك ÙÙŠ المجلد...'; +$messages['folderunsubscribing'] = 'إلغاء الإشتراك ÙÙŠ المجد...'; $messages['formincomplete'] = 'لم يتم تعبئة بيانات الاستمارة بالكامل'; $messages['noemailwarning'] = 'الرجاء إدخال عنوان بريد إلكتروني صالØ'; $messages['nonamewarning'] = 'الرجاء إدخال اسم'; @@ -77,6 +78,9 @@ $messages['searching'] = 'جاري البØØ«...'; $messages['checking'] = 'جاري التØقق...'; $messages['nospellerrors'] = 'لم يعثر على أية أخطاء إملائية'; $messages['folderdeleted'] = 'تم Øذ٠المجلد بنجاØ'; +$messages['foldersubscribed'] = 'تم الإشتراك ÙÙŠ المجلد بنجاØ'; +$messages['folderunsubscribed'] = 'تم إلغاء الإشتراك ÙÙŠ المجلد بنجاØ'; +$messages['folderpurged'] = 'تم تÙريغ المجلد بنجاØ'; $messages['deletedsuccessfully'] = 'تم الØذ٠بنجاØ'; $messages['converting'] = 'إزالة التنسيق من الرسالة...'; $messages['messageopenerror'] = 'تعذرت قراءة الرسالة من الخادم'; @@ -88,10 +92,11 @@ $messages['sourceisreadonly'] = 'لا يمكن تعديل مصدر العنوا٠$messages['errorsavingcontact'] = 'تعذر ØÙظ عنوان المراسل'; $messages['movingmessage'] = 'جاري نقل الرسالة...'; $messages['copyingmessage'] = 'جاري نسخ الرسالة...'; +$messages['deletingmessage'] = 'جاري Øذ٠الرسائل...'; +$messages['markingmessage'] = 'جاري تØديد الرسائل...'; $messages['receiptsent'] = 'أرسل إيصال الاستلام بنجاØ'; $messages['errorsendingreceipt'] = 'تعذر إرسال إيصال الاستلام'; $messages['nodeletelastidentity'] = 'لا يمكن Øذ٠هذا السجل Øيث أنه الوØيد المتبقي.'; -$messages['addsubfolderhint'] = 'سيتم إنشاء هذا المجلد كمجلد Ùرعي للمØدد.'; $messages['forbiddencharacter'] = 'اسم المجلّد ÙŠØتوي ØروÙاً ممنوعة'; $messages['selectimportfile'] = 'رجاء اختر ملÙاً لرÙعه'; $messages['addresswriterror'] = 'دÙتر العناوين المØدد غير قابل للكتابة'; @@ -109,10 +114,25 @@ $messages['smtpautherror'] = 'خطأ SMTP ($code): تعذر التØقق من Ù‡ $messages['smtpfromerror'] = 'خطأ SMTP ($code): تعذر تØديد المرسل "$from" ($msg)'; $messages['smtptoerror'] = 'خطأ SMTP ($code): تعذرت إضاÙØ© المستلم "$to" ($msg)'; $messages['smtprecipientserror'] = 'خطأ SMTP: تعذرت قراءة قائمة المرسل إليهم'; +$messages['smtpdsnerror'] = 'خطأ SMTP: لا يوجد دعم لتنويهات Øالة التوصيل'; $messages['smtperror'] = 'خطأ SMTP: $msg'; $messages['emailformaterror'] = 'عنوان بريد إلكتروني غير صالØ: $email'; $messages['toomanyrecipients'] = 'عدد المرسل إليهم كبير. قلص العدد إلى $max.'; $messages['maxgroupmembersreached'] = 'عدد أعضاء المجموعة أكثر من $max'; $messages['internalerror'] = 'Øدث خطأ داخلي. الرجاء المØاولة مرة أخرى'; +$messages['contactdelerror'] = 'تعذر Øذ٠أسماء جهات الإتصال'; +$messages['contactdeleted'] = 'تم Øذ٠أسماء جهات الإتصال بنجاØ'; +$messages['groupdeleted'] = 'تم Øذ٠المجموعة بنجاØ'; +$messages['grouprenamed'] = 'تم تغيير إسم المجموعة بنجاØ'; +$messages['groupcreated'] = 'تم إنشاء المجموعة بنجاØ'; +$messages['messagedeleted'] = 'تم Øذ٠الرسائل بنجاØ'; +$messages['messagemoved'] = 'تم نقل الرسائل بنجاØ'; +$messages['messagecopied'] = 'تم نسخ الرسائل بنجاØ'; +$messages['messagemarked'] = 'تم تØديد الرسائل بنجاØ'; +$messages['autocompletechars'] = 'إكتب $min Ø£Øر٠على الأقل للØصول على التكملة التلقائية'; +$messages['namecannotbeempty'] = 'لا يمكن ترك الإسم Ùارغاً'; +$messages['nametoolong'] = 'الإسم طويل جداً'; +$messages['folderupdated'] = 'تم تØديث المجلد بنجاØ'; +$messages['foldercreated'] = 'تم إنشاء المجلد بنجاØ'; ?> diff --git a/program/localization/ast/labels.inc b/program/localization/ast/labels.inc index 752d643b6..427c7a810 100644 --- a/program/localization/ast/labels.inc +++ b/program/localization/ast/labels.inc @@ -265,9 +265,6 @@ $labels['subscribed'] = 'Soscrita'; $labels['messagecount'] = 'Mensaxes'; $labels['create'] = 'Facer'; $labels['createfolder'] = 'Facer una bandexa nueva'; -$labels['rename'] = 'Renomar'; -$labels['renamefolder'] = 'Renomar bandexa'; -$labels['deletefolder'] = 'Desaniciar bandexa'; $labels['managefolders'] = 'Alministrar bandexes'; $labels['specialfolders'] = 'Bandexes especiales'; $labels['sortby'] = 'Ordenar por'; diff --git a/program/localization/ast/messages.inc b/program/localization/ast/messages.inc index c292ccf1b..cbc42762f 100644 --- a/program/localization/ast/messages.inc +++ b/program/localization/ast/messages.inc @@ -54,9 +54,7 @@ $messages['deletecontactconfirm'] = '¿Tas seguru de desaniciar los contautos qu $messages['deletemessagesconfirm'] = '¿Tas seguru de desaniciar los mensaxes que marcaste?'; $messages['deletefolderconfirm'] = '¿Tas seguru de desaniciar esta bandexa?'; $messages['purgefolderconfirm'] = '¿Tas seguru de desaniciar tolos mensaxes d\'esta bandexa?'; -$messages['foldercreating'] = 'Faciendo la bandexa...'; $messages['folderdeleting'] = 'Desaniciando la bandexa...'; -$messages['folderrenaming'] = 'Renomando la bandexa...'; $messages['foldermoving'] = 'Moviendo la bandexa...'; $messages['formincomplete'] = 'Tienes de rellenar tolos campos del formulariu'; $messages['noemailwarning'] = 'Por favor, dame un corréu válidu'; @@ -89,7 +87,6 @@ $messages['movingmessage'] = 'Moviendo\'l mensaxe...'; $messages['receiptsent'] = 'Unviose correchamente l\'avisu de llectura.'; $messages['errorsendingreceipt'] = 'Nun fui a unviar l\'avisu de llectura.'; $messages['nodeletelastidentity'] = 'Nun puedo desaniciar esa identidá porque ye la última.'; -$messages['addsubfolderhint'] = 'Esta bandexa va ser subandexa de la que ta marcada'; $messages['forbiddencharacter'] = 'El nome de la bandexa tien un caráuter que nun val'; $messages['selectimportfile'] = 'Por favor escueye el ficheru que quies xubir'; $messages['addresswriterror'] = 'Nun puedo escribir nel llibru de direiciones qu\'escoyisti'; diff --git a/program/localization/az_AZ/labels.inc b/program/localization/az_AZ/labels.inc index 4e7d9d475..ce515e2d4 100644 --- a/program/localization/az_AZ/labels.inc +++ b/program/localization/az_AZ/labels.inc @@ -310,9 +310,6 @@ $labels['subscribed'] = 'Ä°mzalanıb'; $labels['messagecount'] = 'MÉ™ktublar'; $labels['create'] = 'Yarad'; $labels['createfolder'] = 'Yeni qovluq yarad'; -$labels['rename'] = 'Adını dÉ™yiÅŸ'; -$labels['renamefolder'] = 'QovluÄŸun adını dÉ™yiÅŸ'; -$labels['deletefolder'] = 'QovluÄŸu sil'; $labels['managefolders'] = 'Qovluqlarla iÅŸ'; $labels['specialfolders'] = 'Xüsusi qovluqlar'; $labels['sortby'] = 'ÇeÅŸidlÉ™'; diff --git a/program/localization/az_AZ/messages.inc b/program/localization/az_AZ/messages.inc index ef5ca5d77..dcef7c543 100644 --- a/program/localization/az_AZ/messages.inc +++ b/program/localization/az_AZ/messages.inc @@ -52,9 +52,7 @@ $messages['deletecontactconfirm'] = 'SeçilÉ™n ünvanı (ünvanları) silmÉ™yÉ™ $messages['deletemessagesconfirm'] = 'SeçilÉ™n mÉ™ktubu (mÉ™ktubları) silmÉ™yÉ™ É™minsiniz?'; $messages['deletefolderconfirm'] = 'Bu qovluÄŸu silmÉ™yÉ™ É™minsiniz?'; $messages['purgefolderconfirm'] = 'Bu qovluqdakı bütün mÉ™ktubları silmÉ™yÉ™ É™minsiniz?'; -$messages['foldercreating'] = 'QovluÄŸun yaradılır...'; $messages['folderdeleting'] = 'QovluÄŸ silinir...'; -$messages['folderrenaming'] = 'QovluÄŸun adÉ™ dÉ™yiÅŸir...'; $messages['foldermoving'] = 'Qovluq köçürülür...'; $messages['formincomplete'] = 'Bütün sÉ™trlÉ™r doldurulmayıb'; $messages['noemailwarning'] = 'LütfÉ™n, düzgün e-poçt ünvanı daxil edin'; @@ -89,7 +87,6 @@ $messages['copyingmessage'] = 'MÉ™ktub kopyalanır...'; $messages['receiptsent'] = 'Oxunulma haqda bildiriÅŸ göndÉ™rildi'; $messages['errorsendingreceipt'] = 'Oxunulma haqda bildiriÅŸ göndÉ™rilmÉ™di'; $messages['nodeletelastidentity'] = 'Siz bu kimliyi silÉ™ bilmÉ™zsiniz. Bu axırıncıdır. '; -$messages['addsubfolderhint'] = 'Bu qovluq hazırki qovluqda alt qovluq olaraq yaradıldı'; $messages['forbiddencharacter'] = 'Qovlu adı qadaÄŸan olunmuÅŸ simvollar təşkil edir'; $messages['selectimportfile'] = 'YüklÉ™nilÉ™n faylı seçin'; $messages['addresswriterror'] = 'SeçilmiÅŸ ünvan kitabçası yaddaÅŸa yazıla bilmÉ™z'; diff --git a/program/localization/bg_BG/labels.inc b/program/localization/bg_BG/labels.inc index e380d2f43..14ad45aab 100644 --- a/program/localization/bg_BG/labels.inc +++ b/program/localization/bg_BG/labels.inc @@ -39,8 +39,7 @@ $labels['to'] = 'Получател'; $labels['cc'] = 'Копие до'; $labels['bcc'] = 'Скрито копие до'; $labels['replyto'] = 'Отговор до'; -$labels['mailreplyto'] = 'Отговор към'; -$labels['mailfollowupto'] = 'Препращане към'; +$labels['followupto'] = 'Препращане към'; $labels['date'] = 'Дата'; $labels['size'] = 'Размер'; $labels['priority'] = 'Приоритет'; @@ -202,8 +201,7 @@ $labels['maxuploadsize'] = 'МакÑимално позволен размер $ $labels['addcc'] = 'Копие до'; $labels['addbcc'] = 'Скрито копие до'; $labels['addreplyto'] = 'Отговор на'; -$labels['addmailreplyto'] = 'ДобавÑне на отговор към'; -$labels['addmailfollowupto'] = 'ДобавÑне на препращане към'; +$labels['addfollowupto'] = 'ДобавÑне на препращане към'; $labels['mdnrequest'] = 'ПодателÑÑ‚ на пиÑмото е пожелал да бъде уведомен, че Ñте го прочели. Желаете ли да изпратите обратна разпиÑка?'; $labels['receiptread'] = 'Обратна разпиÑка (прочетено)'; $labels['yourmessage'] = 'Това е обратна разпиÑка за пиÑмото Ви'; @@ -330,9 +328,6 @@ $labels['subscribed'] = 'Използвай'; $labels['messagecount'] = 'ПиÑма'; $labels['create'] = 'Създай'; $labels['createfolder'] = 'Ðаправи нова папка'; -$labels['rename'] = 'Преименувай'; -$labels['renamefolder'] = 'Преименувай папката'; -$labels['deletefolder'] = 'Изтрий'; $labels['managefolders'] = 'ÐаÑтройки на папките'; $labels['specialfolders'] = 'Служебни папки'; $labels['sortby'] = 'Сортирай по'; diff --git a/program/localization/bg_BG/messages.inc b/program/localization/bg_BG/messages.inc index cf9acbf55..c5bc90f9e 100644 --- a/program/localization/bg_BG/messages.inc +++ b/program/localization/bg_BG/messages.inc @@ -11,7 +11,7 @@ | | +-----------------------------------------------------------------------+ | Author: Todor Dragnev <todor.dragnev@gmail.com> | -| Nickolay Bunev <just4nick@gmail.com> | +| Nickolay Bunev <just4nick@gmail.com> | +-----------------------------------------------------------------------+ @version $Id$ @@ -56,9 +56,7 @@ $messages['deletecontactconfirm'] = 'ИÑкате ли да изтриете мР$messages['deletemessagesconfirm'] = 'ИÑкате ли да изтриете маркираните ÑъобщениÑ?'; $messages['deletefolderconfirm'] = 'ИÑкате ли да изтриете тази папка?'; $messages['purgefolderconfirm'] = 'ИÑкате ли да изтриете вÑички пиÑма в тази папка?'; -$messages['foldercreating'] = 'Създаване на папка...'; $messages['folderdeleting'] = 'Изтриване на папка...'; -$messages['folderrenaming'] = 'Преименуване на папка...'; $messages['foldermoving'] = 'ПремеÑтване на папка...'; $messages['formincomplete'] = 'Ðе Ñте попълнили вÑички полета'; $messages['noemailwarning'] = 'МолÑ, въведете валиден e-mail адреÑ'; @@ -95,7 +93,6 @@ $messages['markingmessage'] = 'Маркиране на Ñъобщение'; $messages['receiptsent'] = 'Обратната разпиÑка е изпратена.'; $messages['errorsendingreceipt'] = 'Грешка при изпращането на обратна разпиÑка.'; $messages['nodeletelastidentity'] = 'Ðе можете да изтриете тази ÑамоличноÑÑ‚, Ñ‚Ñ€Ñбва да имате поне една.'; -$messages['addsubfolderhint'] = 'Тази папка ще бъде Ñъздадена като подпапка на текущо избраната'; $messages['forbiddencharacter'] = 'Името на папката Ñъдържа непозволени Ñимволи'; $messages['selectimportfile'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ файл за качване'; $messages['addresswriterror'] = 'Избраната адреÑна книга не може да бъде запиÑвана'; diff --git a/program/localization/bn_BD/labels.inc b/program/localization/bn_BD/labels.inc index 3917eec6a..37fcc867b 100644 --- a/program/localization/bn_BD/labels.inc +++ b/program/localization/bn_BD/labels.inc @@ -243,13 +243,10 @@ $labels['checkallfolders'] = 'সবগà§à¦²à§‹ মেইলবকà§à¦¸à§‡ ন $labels['folder'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸'; $labels['folders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸'; $labels['foldername'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° নাম'; -$labels['subscribed'] = 'গà§à¦°à¦¹à¦¨à¦•à¦¾à¦°à¦¿(Subscribed) '; +$labels['subscribed'] = 'গà§à¦°à¦¹à¦¨à¦•à¦¾à¦°à¦¿'; $labels['messagecount'] = 'মেইল/চিঠি'; $labels['create'] = 'পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨'; $labels['createfolder'] = 'নতà§à¦¨ ফোলà§à¦¡à¦¾à¦° / মেইলবকà§à¦¸ পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨'; -$labels['rename'] = 'নাম বদলান'; -$labels['renamefolder'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° নাম বদলান'; -$labels['deletefolder'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলে দিন'; $labels['managefolders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ গà§à¦²à§‹ কে গà§à¦›à¦¾à¦¨'; $labels['specialfolders'] = 'বিশেষ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸'; $labels['sortby'] = 'সাজান'; diff --git a/program/localization/bn_BD/messages.inc b/program/localization/bn_BD/messages.inc index 1026969de..6383242ce 100644 --- a/program/localization/bn_BD/messages.inc +++ b/program/localization/bn_BD/messages.inc @@ -46,9 +46,7 @@ $messages['deletecontactconfirm'] = 'আপনি কি আসলেই à¦à¦‡ $messages['deletemessagesconfirm'] = 'আপনি কি আসলেই à¦à¦‡ চিঠি(গà§à¦²à§‹) ফেলো দিতে চান?'; $messages['deletefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলো দিতে চান?'; $messages['purgefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° সব চিঠি ফেলো দিতে চান?'; -$messages['foldercreating'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ পà§à¦°à¦¸à§à¦¤à§à¦¤ করা হচà§à¦›à§‡'; $messages['folderdeleting'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলে দেওয়া হচà§à¦›à§‡'; -$messages['folderrenaming'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° নাম বদলানো হচà§à¦›à§‡'; $messages['foldermoving'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ সরানো হচà§à¦›à§‡'; $messages['formincomplete'] = 'আপনি সবগà§à¦²à§‹ জিনিষ লেখেননি'; $messages['noemailwarning'] = 'à¦à¦•à¦Ÿà¦¿ সঠিক ই-মেইল লিখà§à¦¨'; @@ -81,7 +79,6 @@ $messages['movingmessage'] = 'চিঠি সরানো হচà§à¦›à§‡..'; $messages['receiptsent'] = 'ঠিকঠাক মতো ফিরতি রশিদ পাঠানো হয়েছে'; $messages['errorsendingreceipt'] = 'রশিদ পাঠানো গেলোনা'; $messages['nodeletelastidentity'] = 'আপনি à¦à¦‡ পরিচিতি ফেলতে পারবেন না কারন à¦à¦‡à¦Ÿà¦¾à§Ÿ বরà§à¦¤à¦®à¦¾à¦¨à§‡ আপনার à¦à¦•à¦®à¦¾à¦¤à§à¦° পরিচিতি। '; -$messages['addsubfolderhint'] = 'à¦à¦‡ ফোলà§à¦¡à¦¾à¦°à¦Ÿà¦¿ বরà§à¦¤à¦®à¦¾à¦¨ ফোলà§à¦¡à¦¾à¦° à¦à¦° সাব-ফোলà§à¦¡à¦¾à¦° হিসাবে তৈরি হবে'; $messages['forbiddencharacter'] = 'ফোলà§à¦¡à¦¾à¦° à¦à¦° নামের মধà§à¦¯à§‡ নিষিদà§à¦§ অকà§à¦·à¦° আছে'; $messages['selectimportfile'] = 'à¦à¦•à¦Ÿà¦¾ ফাইল বেছে নিন তোলার জনà§à¦¯'; $messages['addresswriterror'] = 'বেছে নেওয়া ঠিকানার বইটিতে লেখাযায় না'; diff --git a/program/localization/br/labels.inc b/program/localization/br/labels.inc index f80ed3442..c8812d5c4 100644 --- a/program/localization/br/labels.inc +++ b/program/localization/br/labels.inc @@ -171,9 +171,6 @@ $labels['foldername'] = 'Anv ar renkell'; $labels['subscribed'] = 'Koumananer'; $labels['create'] = 'Krouiñ'; $labels['createfolder'] = 'Krouiñ ur renkell nevez'; -$labels['rename'] = 'Adanviñ'; -$labels['renamefolder'] = 'Adanviñ ar renkell'; -$labels['deletefolder'] = 'Dilemel ar renkell'; $labels['managefolders'] = 'Aozañ ar renkelloù'; $labels['sortby'] = 'Rummañ dre'; $labels['sortasc'] = 'Rumm diagentad'; diff --git a/program/localization/bs_BA/labels.inc b/program/localization/bs_BA/labels.inc index 6d2ae5ddb..ab65eb72a 100644 --- a/program/localization/bs_BA/labels.inc +++ b/program/localization/bs_BA/labels.inc @@ -221,9 +221,6 @@ $labels['foldername'] = 'Ime fascikle'; $labels['subscribed'] = 'Pretplaćen'; $labels['create'] = 'Napravi'; $labels['createfolder'] = 'Napravi novu fasciklu'; -$labels['rename'] = 'Preimenuj'; -$labels['renamefolder'] = 'Preimenuj fasciklu'; -$labels['deletefolder'] = 'ObriÅ¡i fasciklu'; $labels['managefolders'] = 'Podesi fasciklu'; $labels['sortby'] = 'Sortiraj po'; diff --git a/program/localization/ca_ES/labels.inc b/program/localization/ca_ES/labels.inc index 3022887e3..d75a2f8e5 100644 --- a/program/localization/ca_ES/labels.inc +++ b/program/localization/ca_ES/labels.inc @@ -317,9 +317,6 @@ $labels['subscribed'] = 'Subscriure\'s'; $labels['messagecount'] = 'Missatges'; $labels['create'] = 'Crea'; $labels['createfolder'] = 'Crea nova carpeta'; -$labels['rename'] = 'Canvia el nom'; -$labels['renamefolder'] = 'Canvia el nom de la carpeta'; -$labels['deletefolder'] = 'Suprimeix carpeta'; $labels['managefolders'] = 'Gestiona carpetes'; $labels['specialfolders'] = 'Carpetes Especials'; $labels['sortby'] = 'Ordena per'; diff --git a/program/localization/ca_ES/messages.inc b/program/localization/ca_ES/messages.inc index aa5065794..bea12697f 100644 --- a/program/localization/ca_ES/messages.inc +++ b/program/localization/ca_ES/messages.inc @@ -56,9 +56,7 @@ $messages['deletecontactconfirm'] = 'Esteu segurs de voler suprimir el(s) contac $messages['deletemessagesconfirm'] = 'Esteu segurs de voler suprimir el(s) missatge(s) selecionat(s)?'; $messages['deletefolderconfirm'] = 'Esteu segurs de voler suprimir aquesta carpeta?'; $messages['purgefolderconfirm'] = 'Esteu segurs de voler suprimir tots els missatges d\'aquesta carpeta?'; -$messages['foldercreating'] = 'Creant la carpeta...'; $messages['folderdeleting'] = 'Suprimint la carpeta...'; -$messages['folderrenaming'] = 'Reanomenant la carpeta...'; $messages['foldermoving'] = 'Movent la carpeta...'; $messages['formincomplete'] = 'El formulari no ha sigut emplenat totalment'; $messages['noemailwarning'] = 'Introduïu una adreça d\'e-mail và lida'; @@ -93,7 +91,6 @@ $messages['copyingmessage'] = 'Copiant missatge...'; $messages['receiptsent'] = 'Confirmació de lectura enviada satisfactòriament'; $messages['errorsendingreceipt'] = 'No es pot enviar la confirmació'; $messages['nodeletelastidentity'] = 'No podeu suprimir aquesta identitat, és l\'última.'; -$messages['addsubfolderhint'] = 'Aquesta carpeta serà creada com a subcarpeta de la seleccionada actualment'; $messages['forbiddencharacter'] = 'El nom de carpeta conté un carà cter prohibit'; $messages['selectimportfile'] = 'Si us plau, seleccioneu un fitxer per pujar'; $messages['addresswriterror'] = 'La llibreta d\'adreces seleccionada no és modificable'; diff --git a/program/localization/cs_CZ/labels.inc b/program/localization/cs_CZ/labels.inc index e0363c4b6..67c571cd0 100644 --- a/program/localization/cs_CZ/labels.inc +++ b/program/localization/cs_CZ/labels.inc @@ -319,9 +319,6 @@ $labels['subscribed'] = 'Vybráno'; $labels['messagecount'] = 'PoÄet zpráv'; $labels['create'] = 'VytvoÅ™it'; $labels['createfolder'] = 'VytvoÅ™it novou složku'; -$labels['rename'] = 'PÅ™ejmenovat'; -$labels['renamefolder'] = 'PÅ™ejmenovat složku'; -$labels['deletefolder'] = 'Smazat složku'; $labels['managefolders'] = 'Spravovat složky'; $labels['specialfolders'] = 'Speciálnà složky'; $labels['sortby'] = 'SeÅ™adit podle'; diff --git a/program/localization/cs_CZ/messages.inc b/program/localization/cs_CZ/messages.inc index 4f806e1c8..6569ddcc3 100644 --- a/program/localization/cs_CZ/messages.inc +++ b/program/localization/cs_CZ/messages.inc @@ -26,6 +26,7 @@ $messages['cookiesdisabled'] = 'Váš prohlÞeÄ nepodporuje cookies, které j $messages['sessionerror'] = 'VaÅ¡e pÅ™ihlášenà je neplatné nebo vyprÅ¡elo'; $messages['imaperror'] = 'PÅ™ipojenà na IMAP server selhalo'; $messages['servererror'] = 'Chyba serveru!'; +$messages['servererrormsg'] = 'Chyba serveru: $msg'; $messages['invalidrequest'] = 'Nesprávný požadavek. Data nebyla uložena.'; $messages['nomessagesfound'] = 'Ve schránce nebyla nalezena žádná zpráva'; $messages['loggedout'] = 'Byli jste úspěšnÄ› odhlášeni. Nashledanou!'; @@ -57,9 +58,7 @@ $messages['deletecontactconfirm'] = 'Opravdu chcete smazat oznaÄené kontakty?' $messages['deletemessagesconfirm'] = 'Opravdu chcete smazat oznaÄené zprávy?'; $messages['deletefolderconfirm'] = 'Chcete opravdu smazat tento adresář?'; $messages['purgefolderconfirm'] = 'Opravdu chcete smazat vÅ¡echny zprávy v této složce?'; -$messages['foldercreating'] = 'VytvářÃm složku...'; $messages['folderdeleting'] = 'Odstraňuji složku...'; -$messages['folderrenaming'] = 'PÅ™ejmenovávám složku...'; $messages['foldermoving'] = 'PÅ™esouvám složku...'; $messages['formincomplete'] = 'Formulář nebyl korektnÄ› vyplnÄ›n'; $messages['noemailwarning'] = 'Zadejte, prosÃm, platnou e-mailovou adresu'; @@ -91,10 +90,11 @@ $messages['sourceisreadonly'] = 'Tento zdroj adres je pouze pro ÄtenÃ'; $messages['errorsavingcontact'] = 'Nemohu uložit adresu kontaktu'; $messages['movingmessage'] = 'PÅ™esouvám zprávu...'; $messages['copyingmessage'] = 'KopÃruji zprávu...'; +$messages['deletingmessage'] = 'Odstraňuji zprávu...'; +$messages['markingmessage'] = 'OznaÄuji zprávu...'; $messages['receiptsent'] = 'Potvrzenà o přřijetà zprávy odesláno'; $messages['errorsendingreceipt'] = 'Potvrzenà o pÅ™ijetà zprávy nebylo možné odeslat'; $messages['nodeletelastidentity'] = 'Alespoň jedna identita musà být ponechána. Identitu nelze odstranit.'; -$messages['addsubfolderhint'] = 'Tato složka bude vytvoÅ™ena jako podsložka aktuálnÄ› zvolené složky'; $messages['forbiddencharacter'] = 'Název složky obsahuje zakázaný znak'; $messages['selectimportfile'] = 'ProsÃm vyberte soubor k nahránÃ'; $messages['addresswriterror'] = 'Vybraný seznam kontaktů nenà zapisovatelný'; @@ -102,20 +102,31 @@ $messages['contactaddedtogroup'] = 'Kontakty byly úspěšnÄ› pÅ™idány do této $messages['contactremovedfromgroup'] = 'Kontakty byly odstranÄ›ny z této skupiny'; $messages['importwait'] = 'Importuji, prosÃm Äekejte...'; $messages['importerror'] = 'BÄ›hem importu nastala chyba! Nahraný soubor nenà ve formátu vCard.'; -$messages['importconfirm'] = '<b>ÚspěšnÄ› naimportováno $inserted kontaktů, $skipped existujÃcÃch záznamů pÅ™eskoÄeno</b>:<p><em>$names</em></p>'; +$messages['importconfirm'] = 'ÚspěšnÄ› naimportováno $inserted kontaktů, $skipped existujÃcÃch záznamů pÅ™eskoÄeno:$names'; $messages['opnotpermitted'] = 'Operace nenà povolena!'; $messages['nofromaddress'] = 'ChybÄ›jÃcà e-mailová adresa v oznaÄeném profilu'; $messages['editorwarning'] = 'PÅ™epnutÃm do režimu prostého textu ztratÃte veÅ¡keré formátovánÃ. Chcete pokraÄovat?'; -$messages['httpreceivedencrypterror'] = 'Vyskytla se vážná chyba v konfiguraci. Kontaktujte neprodlenÄ› administátora. <b>VaÅ¡e zpráva nemohla být odeslána.</b>'; +$messages['httpreceivedencrypterror'] = 'Vyskytla se vážná chyba v konfiguraci. Kontaktujte neprodlenÄ› administátora. VaÅ¡e zpráva nemohla být odeslána.'; $messages['smtpconnerror'] = 'Chyba SMTP ($code): PÅ™ipojenà k serveru selhalo'; $messages['smtpautherror'] = 'Chyba SMTP ($code): Chyba pÅ™ihlášenÃ'; $messages['smtpfromerror'] = 'Chyba SMTP ($code): Nelze nastavit odesÃlatele "$from" ($msg)'; $messages['smtptoerror'] = 'Chyba SMTP ($code): Nelze pÅ™idat pÅ™Ãjemce "$to" ($msg)'; $messages['smtprecipientserror'] = 'Chyba SMTP: Nelze zpracovat seznam pÅ™Ãjemců'; +$messages['smtpdsnerror'] = 'Chyba SMTP: Nenà podporováno oznamenà o stavu doruÄenà (DSN)'; $messages['smtperror'] = 'Chyba SMTP: $msg'; $messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email'; $messages['toomanyrecipients'] = 'PÅ™ÃliÅ¡ mnoho pÅ™Ãjemců. Změňte poÄet pÅ™Ãjemců na $max.'; $messages['maxgroupmembersreached'] = 'PoÄet Älenských skupin dosáhl maximum z $max'; $messages['internalerror'] = 'DoÅ¡lo k internà chybÄ›. Zkuste to znovu'; +$messages['contactdelerror'] = 'Kontakty nelze odstranit'; +$messages['contactdeleted'] = 'Kontakty byly odstranÄ›ny'; +$messages['groupdeleted'] = 'Skupina byla odstranÄ›na'; +$messages['grouprenamed'] = 'Skupina byla pÅ™ejmenována'; +$messages['groupcreated'] = 'Skupina vytvoÅ™ena'; +$messages['messagedeleted'] = 'Zpráva odstranÄ›na'; +$messages['messagemoved'] = 'Zpráva byla pÅ™esunuta'; +$messages['messagecopied'] = 'Zpráva byla zkopirována'; +$messages['messagemarked'] = 'Zpráva oznaÄena'; +$messages['autocompletechars'] = 'NapiÅ¡te alespoň $min znaků pro automatické doplnÄ›nÃ'; -?>
\ No newline at end of file +?> diff --git a/program/localization/cy_GB/labels.inc b/program/localization/cy_GB/labels.inc index 0f8e22c26..3e22ee4d4 100644 --- a/program/localization/cy_GB/labels.inc +++ b/program/localization/cy_GB/labels.inc @@ -35,15 +35,12 @@ $labels['to'] = 'Derbyniwr'; $labels['cc'] = 'Copi'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Ateb-I'; -$labels['mailreplyto'] = 'Neges-Ateb-I'; -$labels['mailfollowupto'] = 'Neges-Ddilynol-I'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Dyddiad'; $labels['size'] = 'Maint'; $labels['priority'] = 'Blaenoriaeth'; $labels['organization'] = 'Enw\'r Sefydliad'; -$labels['reply-to'] = 'Ateb-I'; -$labels['mail-reply-to'] = 'Neges-Ateb-I'; -$labels['mail-followup-to'] = 'Neges-Ddilynol-I'; +$labels['readstatus'] = 'Statws darllen'; $labels['mailboxlist'] = 'Ffolderi'; $labels['messagesfromto'] = 'Negeseuon $from i $to o $count'; $labels['threadsfromto'] = 'Edefau $from i $to o $count'; @@ -172,6 +169,7 @@ $labels['addattachment'] = 'Atodi ffeil'; $labels['charset'] = 'Set nodiau'; $labels['editortype'] = 'Math golygydd'; $labels['returnreceipt'] = 'Cadarnhau derbyn'; +$labels['dsn'] = 'Hysbysiad statws danfon'; $labels['editidents'] = 'Golygu personoliaethau'; $labels['checkspelling'] = 'Gwirio sillafu'; $labels['resumeediting'] = 'Ail-ddechrau golygu'; @@ -196,8 +194,7 @@ $labels['maxuploadsize'] = 'Y maint ffeil uchaf a ganiateir yw $size'; $labels['addcc'] = 'Ychwanegu Cc'; $labels['addbcc'] = 'Ychwanegu Bcc'; $labels['addreplyto'] = 'Ychwanegu Ateb-I'; -$labels['addmailreplyto'] = 'Ychwanegu Neges-Ateb-I'; -$labels['addmailfollowupto'] = 'Ychwanegu Neges-Ddilynol-I'; +$labels['addfollowupto'] = 'Ychwanegu Followup-To'; $labels['mdnrequest'] = 'Mae anfonwr y neges hwn wedi gofyn am hysbysiad eich bod wedi darllen y neges. Hoffech chi hysbysu\'r anfonwr?'; $labels['receiptread'] = 'Cadarnhad Derbyn (darllenwyd)'; $labels['yourmessage'] = 'Mae hwn yn gadarnhad o dderbyn eich neges'; @@ -209,6 +206,7 @@ $labels['email'] = 'E-bost'; $labels['addcontact'] = 'Ychwanegu cyswllt newydd'; $labels['editcontact'] = 'Golygu cyswllt'; $labels['contacts'] = 'Cysylltiadau'; +$labels['contactproperties'] = 'Nodweddion cyswllt'; $labels['edit'] = 'Golygu'; $labels['cancel'] = 'Canslo'; $labels['save'] = 'Cadw'; @@ -256,6 +254,7 @@ $labels['pagesize'] = 'Rhesi ar bob tudalen'; $labels['signature'] = 'Llofnod'; $labels['dstactive'] = 'Amser arbed golau ddydd'; $labels['htmleditor'] = 'Ysgrifennu negeseuon HTML'; +$labels['htmlonreply'] = 'wrth ateb i neges HTML yn unig'; $labels['htmlsignature'] = 'Llofnod HTML'; $labels['previewpane'] = 'Dangos ffenest rhagolwg'; $labels['skin'] = 'Croen rhyngwyneb'; @@ -268,6 +267,7 @@ $labels['mdnrequests'] = 'Hysbysiadau anfonwr'; $labels['askuser'] = 'gofyn i\'r defnyddiwr'; $labels['autosend'] = 'danfon yn awtomatig'; $labels['autosendknown'] = 'danfon y derbynneb i fy nghsylltiadau yn unig'; +$labels['autosendknownignore'] = 'danfon derbynneb i fy nghysylltiadau, anwybyddu fel arall'; $labels['ignore'] = 'anwybyddu'; $labels['readwhendeleted'] = 'Nodi\'r neges fel darllenwyd wrth ddileu'; $labels['flagfordeletion'] = 'Fflagio\'r neges i\'w ddileu yn hytrach na dileu yn syth'; @@ -313,6 +313,8 @@ $labels['insertsignature'] = 'Mewnosod llofnod'; $labels['previewpanemarkread'] = 'Nodi negeseuon rhagolwg fel darllenwyd'; $labels['afternseconds'] = 'ar ôl $n eiliad'; $labels['reqmdn'] = 'Bob amser gofyn am dderbynneb danfon'; +$labels['reqdsn'] = 'Gofyn am hysbysiad statws danfon bob amser'; +$labels['replysamefolder'] = 'Rhoi atebion yn yr un ffolder i\'r neges sy\'n cael ei ateb'; $labels['folder'] = 'Ffolder'; $labels['folders'] = 'Ffolderi'; $labels['foldername'] = 'Enw ffolder'; @@ -320,11 +322,15 @@ $labels['subscribed'] = 'Tanysgrifwyd'; $labels['messagecount'] = 'Negeseuon'; $labels['create'] = 'Creu'; $labels['createfolder'] = 'Creu ffolder newydd'; -$labels['rename'] = 'Ailenwi'; -$labels['renamefolder'] = 'Ailenwi ffolder'; -$labels['deletefolder'] = 'Dileu ffolder'; $labels['managefolders'] = 'Rheoli ffolderi'; $labels['specialfolders'] = 'Ffolderi arbennig'; +$labels['properties'] = 'Nodweddion'; +$labels['folderproperties'] = 'Ffolder nodweddion'; +$labels['parentfolder'] = 'Ffolder uwchben'; +$labels['location'] = 'Lleoliad'; +$labels['info'] = 'Gwybodaeth'; +$labels['getfoldersize'] = 'Cliciwch i gael maint ffolder'; +$labels['changesubscription'] = 'Cliciwch i newid y tanysgrifiad'; $labels['sortby'] = 'Trefnu yn ôl'; $labels['sortasc'] = 'Trefn esgynnol'; $labels['sortdesc'] = 'Trefn ddisgynnol'; diff --git a/program/localization/cy_GB/messages.inc b/program/localization/cy_GB/messages.inc index 4a20d306a..486455b5d 100644 --- a/program/localization/cy_GB/messages.inc +++ b/program/localization/cy_GB/messages.inc @@ -20,6 +20,9 @@ $messages['cookiesdisabled'] = 'Nid yw eich porwr yn derbyn cwcis'; $messages['sessionerror'] = 'Mae\'r sesiwn yn anghywir neu wedi dod i ben'; $messages['imaperror'] = 'Methwyd cysylltu a\'r gweinydd IMAP'; $messages['servererror'] = 'Gwall Gweinydd!'; +$messages['servererrormsg'] = 'Gwall Gweinydd: $msg'; +$messages['errorreadonly'] = 'Methwyd gweithredu. Mae\'r ffolder yn darllen-yn-unig'; +$messages['errornoperm'] = 'Methwyd gweithredu. Gwrthodwyd caniatad'; $messages['invalidrequest'] = 'Cais annilys! Ni chadwyd unrhyw wybodaeth.'; $messages['nomessagesfound'] = 'Dim negeseuon wedi eu canfod yn y blwch hwn'; $messages['loggedout'] = 'Rydych wedi gorffen y sesiwn yn llwyddianus. Hwyl fawr!'; @@ -51,10 +54,10 @@ $messages['deletecontactconfirm'] = 'Ydych chi wir am ddileu y cysylltiadau ddew $messages['deletemessagesconfirm'] = 'Ydych chi wir am ddileu y neges(euon) ddewiswyd?'; $messages['deletefolderconfirm'] = 'Ydych chi wir am ddileu y ffolder yma?'; $messages['purgefolderconfirm'] = 'Ydych chi wir am ddileu yr holl negeseuon yn y ffolder yma?'; -$messages['foldercreating'] = 'Yn creu ffolder...'; $messages['folderdeleting'] = 'Yn dileu ffolder...'; -$messages['folderrenaming'] = 'Yn ailenwi ffolder...'; $messages['foldermoving'] = 'Yn symud ffolder...'; +$messages['foldersubscribing'] = 'Yn tanysgrifio i\'r ffolder...'; +$messages['folderunsubscribing'] = 'Yn dad-danysgrifio i\'r ffolder...'; $messages['formincomplete'] = 'Nid oedd y ffurflen wedi ei gwblhau yn llawn'; $messages['noemailwarning'] = 'Rhowch gyfeiriad e-bost dilys'; $messages['nonamewarning'] = 'Rhowch enw'; @@ -74,6 +77,10 @@ $messages['searching'] = 'Yn chwilio...'; $messages['checking'] = 'Yn gofyn...'; $messages['nospellerrors'] = 'Ni gafwyd hyd i unrhyw wallau gwirio'; $messages['folderdeleted'] = 'Dilëwyd y ffolder yn llwyddiannus'; +$messages['foldersubscribed'] = 'Ffolder wedi ei danysgrifio yn llwyddiannus'; +$messages['folderunsubscribed'] = 'Ffolder wedi ei ddad-danysgrifio yn llwyddiannus'; +$messages['folderpurged'] = 'Ffolder wedi ei lanhau yn llwyddiannus'; +$messages['folderexpunged'] = 'Ffolder wedi ei wagio yn llwyddiannus'; $messages['deletedsuccessfully'] = 'Dilëwyd yn llwyddiannus'; $messages['converting'] = 'Yn cael gwared a\'r fformatio...'; $messages['messageopenerror'] = 'Methwyd llwytho\'r neges o\'r gweinydd'; @@ -85,10 +92,11 @@ $messages['sourceisreadonly'] = 'Mae ffynhonnell y cyfeiriadau i\'w ddarllen yn $messages['errorsavingcontact'] = 'Methwyd cadw cyfeiriad y cyswllt'; $messages['movingmessage'] = 'Yn symud neges...'; $messages['copyingmessage'] = 'Yn copïo\'r neges'; +$messages['deletingmessage'] = 'Yn dileu neges(euon)...'; +$messages['markingmessage'] = 'Yn marcio neges(euon)...'; $messages['receiptsent'] = 'Danfonwyd cadarnhad derbyn yn llwyddiannus'; $messages['errorsendingreceipt'] = 'Methwyd danfon cadarnhad derbyn'; $messages['nodeletelastidentity'] = 'Allwch chi ddim dileu\'r personoliaeth yma, hwn yw\'r un olaf.'; -$messages['addsubfolderhint'] = 'Mi fydd y ffolder yma\'n cael ei greu fel is-ffolder o\'r un sydd wedi ei ddewis ar hyn o bryd'; $messages['forbiddencharacter'] = 'Mae enw\'r ffolder yn cynnwys llythyren annerbynniol'; $messages['selectimportfile'] = 'Dewiswch ffeil i\'w lwytho fyny'; $messages['addresswriterror'] = 'Nid yw\'n bosib ysgrifennu i\'r llyfr cyfeiriadau '; @@ -106,10 +114,25 @@ $messages['smtpautherror'] = 'Gwall SMTP ($code): Methwyd dilysu\'r cyfrif'; $messages['smtpfromerror'] = 'Gwall SMTP ($code): Methwyd gosod y danfonwr "$from" ($msg)'; $messages['smtptoerror'] = 'Gwall SMTP ($code): Methwyd ychwanegu derbynwr "$to" ($msg)'; $messages['smtprecipientserror'] = 'Gwall SMTP: Nid oedd yn bosib darllen y rhestr o dderbynnwyr'; +$messages['smtpdsnerror'] = 'Gwall SMTP: Dim cefnogaeth i Hysbysiadau Statws Danfon'; $messages['smtperror'] = 'Gwall SMTP: $msg'; $messages['emailformaterror'] = 'Cyfeiriad e-bost anghywir: $email'; $messages['toomanyrecipients'] = 'Gormod o dderbynnwyr. Lleihewch y nifer i $max'; $messages['maxgroupmembersreached'] = 'Mae nifer o aelodau\'r grŵp yn fwy na\'r uchafswm o $max'; $messages['internalerror'] = 'Fe gafwyd gwall mewnol. Rhowch gynnig arni eto.'; +$messages['contactdelerror'] = 'Methwyd dileu cyswllt'; +$messages['contactdeleted'] = 'Cyswllt wedi ei ddileu yn llwyddiannus'; +$messages['groupdeleted'] = 'Grŵp wedi ei ddileu yn llwyddiannus'; +$messages['grouprenamed'] = 'Grŵp wedi ei ailenwi yn llwyddiannus'; +$messages['groupcreated'] = 'Grŵp wedi ei greu yn llwyddiannus'; +$messages['messagedeleted'] = 'Neges(euon) wedi eu dileu yn llwyddiannus'; +$messages['messagemoved'] = 'Neges(euon) wedi eu symud yn llwyddiannus'; +$messages['messagecopied'] = 'Neges(euon) wedi eu copïo yn llwyddiannus'; +$messages['messagemarked'] = 'Neges(euon) wedi eu marcio yn llwyddiannus'; +$messages['autocompletechars'] = 'Rhowch o leia $min llythyren ar gyfer awto-gwblhau'; +$messages['namecannotbeempty'] = 'Ni all yr enw fod yn wag'; +$messages['nametoolong'] = 'Mae\'r enw yn rhy hir'; +$messages['folderupdated'] = 'Diweddarwyd y ffolder yn llwyddiannus'; +$messages['foldercreated'] = 'Crëwyd y ffolder yn llwyddiannus'; ?> diff --git a/program/localization/da_DK/labels.inc b/program/localization/da_DK/labels.inc index 6d45c0455..3aa1ae44d 100644 --- a/program/localization/da_DK/labels.inc +++ b/program/localization/da_DK/labels.inc @@ -309,9 +309,6 @@ $labels['subscribed'] = 'Abonneret'; $labels['messagecount'] = 'Beskeder'; $labels['create'] = 'Opret'; $labels['createfolder'] = 'Opret ny mappe'; -$labels['rename'] = 'Omdøb'; -$labels['renamefolder'] = 'Omdøb mappe'; -$labels['deletefolder'] = 'Slet mappe'; $labels['managefolders'] = 'Administrér mapper'; $labels['specialfolders'] = 'Specielle mapper'; $labels['sortby'] = 'Sortér efter'; diff --git a/program/localization/da_DK/messages.inc b/program/localization/da_DK/messages.inc index e66099c5c..74d70b78e 100644 --- a/program/localization/da_DK/messages.inc +++ b/program/localization/da_DK/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Vil du virkelig slette den/de valgte kontak $messages['deletemessagesconfirm'] = 'Vil du virkelig slette den/de valgte besked(er)?'; $messages['deletefolderconfirm'] = 'Vil du virkelig slette den valgte mappe'; $messages['purgefolderconfirm'] = 'Vil du virkelig slette alle beskeder i denne mappe?'; -$messages['foldercreating'] = 'Opretter mappen...'; $messages['folderdeleting'] = 'Sletter mappen...'; -$messages['folderrenaming'] = 'Omdøber mappen...'; $messages['foldermoving'] = 'Flytter mappen...'; $messages['formincomplete'] = 'Formularen var ikke fuldstændig fyldt ud'; $messages['noemailwarning'] = 'Indtast venligst en gyldig e-mail adresse'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Kopierer besked...'; $messages['receiptsent'] = 'Kvittering for læsning er sendt'; $messages['errorsendingreceipt'] = 'Kvitteringen kunne ikke sendes'; $messages['nodeletelastidentity'] = 'Du kan ikke slette denne identitet, da det er den eneste der er tilbage.'; -$messages['addsubfolderhint'] = 'Denne mappe vil blive oprettet som en undermappe til den mappe der er valgt i øjeblikket.'; $messages['forbiddencharacter'] = 'Mappe-navnet indeholder ugyldige tegn'; $messages['selectimportfile'] = 'Vælg venligst den fil der skal uploades'; $messages['addresswriterror'] = 'Der kan ikke skrives i den valgte adressebog'; diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc index 5c2bc6d98..c59cf61a2 100644 --- a/program/localization/de_CH/labels.inc +++ b/program/localization/de_CH/labels.inc @@ -38,8 +38,7 @@ $labels['to'] = 'Empfänger'; $labels['cc'] = 'Kopie (CC)'; $labels['bcc'] = 'Blind-Kopie'; $labels['replyto'] = 'Antwort an'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Datum'; $labels['size'] = 'Grösse'; $labels['priority'] = 'Priorität'; @@ -201,8 +200,7 @@ $labels['maxuploadsize'] = 'Maximal erlaubte Dateigrösse ist $size'; $labels['addcc'] = 'Cc hinzufügen'; $labels['addbcc'] = 'Bcc hinzufügen'; $labels['addreplyto'] = 'Antwortadresse hinzufügen'; -$labels['addmailreplyto'] = 'Mail-Reply-To hinzufügen'; -$labels['addmailfollowupto'] = 'Mail-Followup-To hinzufügen'; +$labels['addfollowupto'] = 'Followup-To hinzufügen'; $labels['mdnrequest'] = 'Der Sender dieser Nachricht hat eine Empfangsbestätigung angefordert. Möchten Sie diese jetzt senden?'; $labels['receiptread'] = 'Empfangsbestätigung (gelesen)'; $labels['yourmessage'] = 'Dieses ist eine Empfangsbestätigung für Ihre Nachricht'; @@ -330,11 +328,15 @@ $labels['subscribed'] = 'Abonniert'; $labels['messagecount'] = 'Nachrichten'; $labels['create'] = 'Erstellen'; $labels['createfolder'] = 'Neuen Ordner erstellen'; -$labels['rename'] = 'Umbenennen'; -$labels['renamefolder'] = 'Ordner umbenennen'; -$labels['deletefolder'] = 'Ordner löschen'; $labels['managefolders'] = 'Ordner verwalten'; $labels['specialfolders'] = 'Spezialordner'; +$labels['properties'] = 'Eigenschaften'; +$labels['folderproperties'] = 'Ordnereigenschaften'; +$labels['parentfolder'] = 'Eltern'; +$labels['location'] = 'Speicherort'; +$labels['info'] = 'Informationen'; +$labels['getfoldersize'] = 'Ordnergrösse anzeigen'; +$labels['changesubscription'] = 'Abonnieren'; $labels['sortby'] = 'Sortieren nach'; $labels['sortasc'] = 'aufsteigend sortieren'; $labels['sortdesc'] = 'absteigend sortieren'; diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc index 56f3a4526..b753418e0 100644 --- a/program/localization/de_CH/messages.inc +++ b/program/localization/de_CH/messages.inc @@ -55,10 +55,10 @@ $messages['deletecontactconfirm'] = 'Wollen Sie die ausgewählten Kontakte wirkl $messages['deletemessagesconfirm'] = 'Wollen Sie die ausgewählten Nachrichten wirklich löschen?'; $messages['deletefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich löschen?'; $messages['purgefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich leeren?'; -$messages['foldercreating'] = 'Erstelle Ordner...'; $messages['folderdeleting'] = 'Lösche Ordner...'; -$messages['folderrenaming'] = 'Nenne Ordner um...'; $messages['foldermoving'] = 'Verschiebe Ordner...'; +$messages['foldersubscribing'] = 'Abonniere Ordner...'; +$messages['folderunsubscribing'] = 'Ordner abbstellen...'; $messages['formincomplete'] = 'Das Formular wurde nicht vollständig ausgefüllt'; $messages['noemailwarning'] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein'; $messages['nonamewarning'] = 'Bitte geben Sie einen Namen ein'; @@ -78,6 +78,10 @@ $messages['searching'] = 'Suche...'; $messages['checking'] = 'Prüfe...'; $messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden'; $messages['folderdeleted'] = 'Ordner erfolgreich gelöscht'; +$messages['foldersubscribed'] = 'Der Ordner wurde erfolgreich abonniert'; +$messages['folderunsubscribed'] = 'Der Ordner wurde erfolgreich abbestellt'; +$messages['folderpurged'] = 'Der Ordner wurde erfolgreich gelöscht'; +$messages['folderexpunged'] = 'Der Ordner wurde erfolgreich gepackt'; $messages['deletedsuccessfully'] = 'Erfolgreich gelöscht'; $messages['converting'] = 'Entferne Formatierungen...'; $messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden'; @@ -94,7 +98,6 @@ $messages['markingmessage'] = 'Markiere Nachricht(en)...'; $messages['receiptsent'] = 'Lesebestätigung erfolgreich gesendet'; $messages['errorsendingreceipt'] = 'Bestätigung konnte nicht gesendet werden'; $messages['nodeletelastidentity'] = 'Diese Identität kann nicht gelöscht werden, da dies die letzte ist.'; -$messages['addsubfolderhint'] = 'Wird als Unterordner des aktuell selektierten Ordners erstellt'; $messages['forbiddencharacter'] = 'Der Ordnername enthält ein ungültiges Zeichen'; $messages['selectimportfile'] = 'Bitte wählen Sie eine Datei zum Importieren aus'; $messages['addresswriterror'] = 'Das gewählte Adressbuch kann nicht verändert werden'; @@ -128,5 +131,11 @@ $messages['messagemoved'] = 'Nachricht(en) erfolgreich verschoben'; $messages['messagecopied'] = 'Nachricht(en) erfolgreich kopiert'; $messages['messagemarked'] = 'Nachricht(en) erfolgreich markiert'; $messages['autocompletechars'] = 'Geben Sie mind. $min Zeichen für die Auto-Vervollständigung ein'; +$messages['namecannotbeempty'] = 'Der Name darf nicht leer sein'; +$messages['nametoolong'] = 'Der Name ist zu lang'; +$messages['folderupdated'] = 'Der Ordner wurde erfolgreich aktualisiert'; +$messages['foldercreated'] = 'Der Ordner wurde erfolgreich erstellt'; +$messages['errorreadonly'] = 'Die Aktion nicht ausgeführt werden. Der Ordner ist schreibgeschützt.'; +$messages['errornoperm'] = 'Die Aktion nicht ausgeführt werden. Zugriff verweigert.'; ?> diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc index 791c32311..262127cf4 100644 --- a/program/localization/de_DE/labels.inc +++ b/program/localization/de_DE/labels.inc @@ -38,8 +38,7 @@ $labels['to'] = 'Empfänger'; $labels['cc'] = 'Kopie'; $labels['bcc'] = 'Blindkopie'; $labels['replyto'] = 'Antwort an'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Datum'; $labels['size'] = 'Größe'; $labels['priority'] = 'Priorität'; @@ -201,8 +200,7 @@ $labels['maxuploadsize'] = 'Maximal erlaubte Dateigröße ist $size'; $labels['addcc'] = 'Cc hinzufügen'; $labels['addbcc'] = 'Bcc hinzufügen'; $labels['addreplyto'] = 'Antwortadresse hinzufügen'; -$labels['addmailreplyto'] = 'Mail-Reply-To hinzufügen'; -$labels['addmailfollowupto'] = 'Mail-Followup-To hinzufügen'; +$labels['addfollowupto'] = 'Followup-To hinzufügen'; $labels['mdnrequest'] = 'Der Sender dieser Nachricht möchte gerne eine Lesebestätigung. Wollen Sie dieses bestätigen?'; $labels['receiptread'] = 'Empfangsbestätigung (gelesen)'; $labels['yourmessage'] = 'Dies ist eine Empfangsbestätigung für Ihre Nachricht'; @@ -330,11 +328,15 @@ $labels['subscribed'] = 'Abonniert'; $labels['messagecount'] = 'Nachrichten'; $labels['create'] = 'Erstellen'; $labels['createfolder'] = 'Neuen Ordner erstellen'; -$labels['rename'] = 'Umbenennen'; -$labels['renamefolder'] = 'Ordner umbenennen'; -$labels['deletefolder'] = 'Ordner löschen'; $labels['managefolders'] = 'Ordner verwalten'; $labels['specialfolders'] = 'Spezialordner'; +$labels['properties'] = 'Eigenschaften'; +$labels['folderproperties'] = 'Ordnereigenschaften'; +$labels['parentfolder'] = 'Eltern'; +$labels['location'] = 'Speicherort'; +$labels['info'] = 'Informationen'; +$labels['getfoldersize'] = 'Ordnergröße anzeigen'; +$labels['changesubscription'] = 'Abonnieren'; $labels['sortby'] = 'Sortieren nach'; $labels['sortasc'] = 'Aufsteigend sortieren'; $labels['sortdesc'] = 'Absteigend sortieren'; diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc index 7f563a7a2..47e4e017d 100644 --- a/program/localization/de_DE/messages.inc +++ b/program/localization/de_DE/messages.inc @@ -55,10 +55,10 @@ $messages['deletecontactconfirm'] = 'Wollen Sie die ausgewählten Kontakte wirkl $messages['deletemessagesconfirm'] = 'Wollen Sie die ausgewählten Nachrichten wirklich löschen?'; $messages['deletefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich löschen?'; $messages['purgefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich leeren?'; -$messages['foldercreating'] = 'Erstelle Ordner...'; $messages['folderdeleting'] = 'Lösche Ordner...'; -$messages['folderrenaming'] = 'Nenne Ordner um...'; $messages['foldermoving'] = 'Verschiebe Ordner...'; +$messages['foldersubscribing'] = 'Abonniere Ordner...'; +$messages['folderunsubscribing'] = 'Ordner abbstellen...'; $messages['formincomplete'] = 'Das Formular wurde nicht vollständig ausgefüllt'; $messages['noemailwarning'] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein'; $messages['nonamewarning'] = 'Bitte geben Sie einen Namen ein'; @@ -78,6 +78,10 @@ $messages['searching'] = 'Suche...'; $messages['checking'] = 'Prüfe...'; $messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden'; $messages['folderdeleted'] = 'Ordner erfolgreich gelöscht'; +$messages['foldersubscribed'] = 'Der Ordner wurde erfolgreich abonniert'; +$messages['folderunsubscribed'] = 'Der Ordner wurde erfolgreich abbestellt'; +$messages['folderpurged'] = 'Der Ordner wurde erfolgreich gelöscht'; +$messages['folderexpunged'] = 'Der Ordner wurde erfolgreich gepackt'; $messages['deletedsuccessfully'] = 'Erfolgreich gelöscht'; $messages['converting'] = 'Entferne Formatierungen der Nachricht...'; $messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden'; @@ -94,7 +98,6 @@ $messages['markingmessage'] = 'Markiere Nachricht(en)...'; $messages['receiptsent'] = 'Lesebestätigung erfolgreich gesendet'; $messages['errorsendingreceipt'] = 'Bestätigung konnte nicht gesendet werden'; $messages['nodeletelastidentity'] = 'Diese Identität kann nicht gelöscht werden, da dies die letzte ist.'; -$messages['addsubfolderhint'] = 'Wird als Unterordner des aktuell selektierten Ordners erstellt'; $messages['forbiddencharacter'] = 'Der Ordnername enthält ein ungültiges Zeichen'; $messages['selectimportfile'] = 'Bitte wählen Sie eine Datei zum Importieren aus'; $messages['addresswriterror'] = 'Das ausgewählte Adressbuch kann nicht verändert werden'; @@ -128,5 +131,11 @@ $messages['messagemoved'] = 'Nachricht(en) erfolgreich verschoben'; $messages['messagecopied'] = 'Nachricht(en) erfolgreich kopiert'; $messages['messagemarked'] = 'Nachricht(en) erfolgreich markiert'; $messages['autocompletechars'] = 'Geben Sie mind. $min Zeichen für die Auto-Vervollständigung ein'; +$messages['namecannotbeempty'] = 'Der Name darf nicht leer sein'; +$messages['nametoolong'] = 'Der Name ist zu lang'; +$messages['folderupdated'] = 'Der Ordner wurde erfolgreich aktualisiert'; +$messages['foldercreated'] = 'Der Ordner wurde erfolgreich erstellt'; +$messages['errorreadonly'] = 'Die Aktion nicht ausgeführt werden. Der Ordner ist schreibgeschützt.'; +$messages['errornoperm'] = 'Die Aktion nicht ausgeführt werden. Zugriff verweigert.'; ?> diff --git a/program/localization/el_GR/labels.inc b/program/localization/el_GR/labels.inc index 5303a08f9..188477099 100644 --- a/program/localization/el_GR/labels.inc +++ b/program/localization/el_GR/labels.inc @@ -238,9 +238,6 @@ $labels['subscribed'] = 'ΕγγÏαφή'; $labels['messagecount'] = 'ΜηνÏματα'; $labels['create'] = 'ΔημιουÏγία'; $labels['createfolder'] = 'ΔημιουÏγία νÎου φακÎλου'; -$labels['rename'] = 'Μετονομασία'; -$labels['renamefolder'] = 'Μετονομασία φακÎλου'; -$labels['deletefolder'] = 'ΔιαγÏαφή φακÎλου'; $labels['managefolders'] = 'ΔιαχείÏιση φακÎλων'; $labels['specialfolders'] = 'Ειδικοί Φάκελοι'; $labels['sortby'] = 'Ταξινόμηση κατά'; diff --git a/program/localization/el_GR/messages.inc b/program/localization/el_GR/messages.inc index de617ce8e..0e781adb3 100644 --- a/program/localization/el_GR/messages.inc +++ b/program/localization/el_GR/messages.inc @@ -52,9 +52,7 @@ $messages['deletecontactconfirm'] = 'ΘÎλετε να διαγÏάψετε τη $messages['deletemessagesconfirm'] = 'ΘÎλετε να διαγÏάψετε το συγκεκÏιμÎνο μήνυμα/τα;'; $messages['deletefolderconfirm'] = 'ΘÎλετε να διαγÏάψετε το συγκεκÏιμÎνο φάκελο;'; $messages['purgefolderconfirm'] = 'ΘÎλετε να διαγÏάψετε όλα τα μηνÏματα στο συγκεκÏιμÎνο φάκελο;'; -$messages['foldercreating'] = 'ΔημιουÏγία φακÎλου'; $messages['folderdeleting'] = 'ΔιαγÏαφή φακÎλου'; -$messages['folderrenaming'] = 'Μετονομασία φακÎλου'; $messages['foldermoving'] = 'ΜεταφοÏά φακÎλου'; $messages['formincomplete'] = 'Η φόÏμα δεν Îχει συμπληÏωθεί πλήÏως'; $messages['noemailwarning'] = 'ΠαÏακαλώ εισάγετε ÎγκυÏη διεÏθυνση email'; @@ -88,7 +86,6 @@ $messages['movingmessage'] = 'Μετακίνηση μηνÏματος...'; $messages['receiptsent'] = 'Επιτυχής αποστολή αναφοÏάς ανάγνωσης'; $messages['errorsendingreceipt'] = 'Αποστολή αναφοÏάς απÎτυχε'; $messages['nodeletelastidentity'] = 'Δε μποÏείτε να διαγÏάψετε αυτήν την ταυτότητα, είναι η τελευταία.'; -$messages['addsubfolderhint'] = 'Αυτός ο φάκελος θα δημιουÏγηθεί ως υποφάκελος του επιλεγμÎνου'; $messages['forbiddencharacter'] = 'Η ονομασία φακÎλου πεÏιÎχει μη επιτÏεπτό χαÏακτήÏα'; $messages['selectimportfile'] = 'ΕπιλÎξτε αÏχείο για ανÎβασμα'; $messages['addresswriterror'] = 'Η επιλεγμÎνη ατζÎντα διευθÏνσεων δεν είνα εγγÏάψιμη'; diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc index 44f4d114d..7a36f007e 100644 --- a/program/localization/en_GB/labels.inc +++ b/program/localization/en_GB/labels.inc @@ -38,11 +38,12 @@ $labels['to'] = 'Recipient'; $labels['cc'] = 'Copy'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Reply-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Date'; $labels['size'] = 'Size'; $labels['priority'] = 'Priority'; $labels['organization'] = 'Organisation'; -$labels['reply-to'] = 'Reply-To'; +$labels['readstatus'] = 'Read status'; $labels['mailboxlist'] = 'Folders'; $labels['messagesfromto'] = 'Messages $from to $to of $count'; $labels['threadsfromto'] = 'Threads $from to $to of $count'; @@ -96,7 +97,9 @@ $labels['today'] = 'Today'; $labels['checkmail'] = 'Check for new messages'; $labels['writenewmessage'] = 'Create a new message'; $labels['replytomessage'] = 'Reply to sender'; -$labels['replytoallmessage'] = 'Reply to sender and all recipients'; +$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients'; +$labels['replyall'] = 'Reply all'; +$labels['replylist'] = 'Reply list'; $labels['forwardmessage'] = 'Forward the message'; $labels['deletemessage'] = 'Delete message'; $labels['movemessagetotrash'] = 'Move message to "Deleted Items"'; @@ -169,6 +172,7 @@ $labels['addattachment'] = 'Attach a file'; $labels['charset'] = 'Charset'; $labels['editortype'] = 'Editor type'; $labels['returnreceipt'] = 'Return receipt'; +$labels['dsn'] = 'Delivery status notification'; $labels['editidents'] = 'Edit identities'; $labels['checkspelling'] = 'Check spelling'; $labels['resumeediting'] = 'Resume editing'; @@ -193,6 +197,7 @@ $labels['maxuploadsize'] = 'Maximum allowed file size is $size'; $labels['addcc'] = 'Add Cc'; $labels['addbcc'] = 'Add Bcc'; $labels['addreplyto'] = 'Add Reply-To'; +$labels['addfollowupto'] = 'Add Followup-To'; $labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?'; $labels['receiptread'] = 'Return Receipt (read)'; $labels['yourmessage'] = 'This is a Return Receipt for your message'; @@ -204,6 +209,7 @@ $labels['email'] = 'E-Mail'; $labels['addcontact'] = 'Add new contact'; $labels['editcontact'] = 'Edit contact'; $labels['contacts'] = 'Contacts'; +$labels['contactproperties'] = 'Contact properties'; $labels['edit'] = 'Edit'; $labels['cancel'] = 'Cancel'; $labels['save'] = 'Save'; @@ -251,6 +257,7 @@ $labels['pagesize'] = 'Rows per page'; $labels['signature'] = 'Signature'; $labels['dstactive'] = 'Summer time'; $labels['htmleditor'] = 'Compose HTML messages'; +$labels['htmlonreply'] = 'on reply to HTML message only'; $labels['htmlsignature'] = 'HTML signature'; $labels['previewpane'] = 'Show preview pane'; $labels['skin'] = 'Interface skin'; @@ -259,10 +266,11 @@ $labels['logoutcompact'] = 'Compact Inbox on logout'; $labels['uisettings'] = 'User Interface'; $labels['serversettings'] = 'Server Settings'; $labels['mailboxview'] = 'Mailbox View'; -$labels['mdnrequests'] = 'Sender notifications'; -$labels['askuser'] = 'ask the user'; +$labels['mdnrequests'] = 'On request for return receipt'; +$labels['askuser'] = 'ask each time'; $labels['autosend'] = 'send automatically'; -$labels['autosendknown'] = 'send receipt to my contacts only'; +$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask'; +$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore'; $labels['ignore'] = 'ignore'; $labels['readwhendeleted'] = 'Mark the message as read on delete'; $labels['flagfordeletion'] = 'Flag the message for deletion instead of delete'; @@ -308,16 +316,14 @@ $labels['insertsignature'] = 'Insert signature'; $labels['previewpanemarkread'] = 'Mark previewed messages as read'; $labels['afternseconds'] = 'after $n seconds'; $labels['reqmdn'] = 'Always request a return receipt'; +$labels['reqdsn'] = 'Always request a delivery status notification'; +$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to'; $labels['folder'] = 'Folder'; $labels['folders'] = 'Folders'; $labels['foldername'] = 'Folder name'; -$labels['subscribed'] = 'Subscribed'; $labels['messagecount'] = 'Messages'; $labels['create'] = 'Create'; $labels['createfolder'] = 'Create new folder'; -$labels['rename'] = 'Rename'; -$labels['renamefolder'] = 'Rename folder'; -$labels['deletefolder'] = 'Delete folder'; $labels['managefolders'] = 'Manage folders'; $labels['specialfolders'] = 'Special Folders'; $labels['sortby'] = 'Sort by'; diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc index ec4f6e70d..5c1286e6c 100644 --- a/program/localization/en_GB/messages.inc +++ b/program/localization/en_GB/messages.inc @@ -23,6 +23,7 @@ $messages['cookiesdisabled'] = 'Your browser does not accept cookies'; $messages['sessionerror'] = 'Your session is invalid or has expired'; $messages['imaperror'] = 'Connection to IMAP server failed'; $messages['servererror'] = 'Server Error!'; +$messages['servererrormsg'] = 'Server Error: $msg'; $messages['invalidrequest'] = 'Invalid request! No data was saved.'; $messages['nomessagesfound'] = 'No messages found in this mailbox'; $messages['loggedout'] = 'You have successfully terminated the session. Good bye!'; @@ -46,17 +47,15 @@ $messages['sendingfailed'] = 'Failed to send message'; $messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message'; $messages['errorsavingsent'] = 'An error occurred while saving sent message'; $messages['errorsaving'] = 'An error occurred while saving'; -$messages['errormoving'] = 'Could not move the message'; +$messages['errormoving'] = 'Could not move the message(s)'; $messages['errorcopying'] = 'Could not copy the message(s)'; -$messages['errordeleting'] = 'Could not delete the message'; -$messages['errormarking'] = 'Could not mark the message'; +$messages['errordeleting'] = 'Could not delete the message(s)'; +$messages['errormarking'] = 'Could not mark the message(s)'; $messages['deletecontactconfirm'] = 'Do you really want to delete the selected contact(s)?'; $messages['deletemessagesconfirm'] = 'Do you really want to delete the selected message(s)?'; $messages['deletefolderconfirm'] = 'Do you really want to delete this folder?'; $messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?'; -$messages['foldercreating'] = 'Creating folder...'; $messages['folderdeleting'] = 'Deleting folder...'; -$messages['folderrenaming'] = 'Renaming folder...'; $messages['foldermoving'] = 'Moving folder...'; $messages['formincomplete'] = 'The form was not completely filled out'; $messages['noemailwarning'] = 'Please enter a valid email address'; @@ -86,12 +85,13 @@ $messages['copysuccess'] = 'Successfully copied $nr addresses'; $messages['copyerror'] = 'Could not copy any addresses'; $messages['sourceisreadonly'] = 'This address source is read-only'; $messages['errorsavingcontact'] = 'Could not save the contact address'; -$messages['movingmessage'] = 'Moving message...'; -$messages['copyingmessage'] = 'Copying message...'; +$messages['movingmessage'] = 'Moving message(s)...'; +$messages['copyingmessage'] = 'Copying message(s)...'; +$messages['deletingmessage'] = 'Deleting message(s)...'; +$messages['markingmessage'] = 'Marking message(s)...'; $messages['receiptsent'] = 'Successfully sent a read receipt'; $messages['errorsendingreceipt'] = 'Could not send the receipt'; $messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.'; -$messages['addsubfolderhint'] = 'This folder will be created as subfolder of the currently selected one'; $messages['forbiddencharacter'] = 'Folder name contains a forbidden character'; $messages['selectimportfile'] = 'Please select a file to upload'; $messages['addresswriterror'] = 'The selected address book is not writeable'; @@ -109,10 +109,21 @@ $messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed'; $messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg)'; $messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg)'; $messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list'; +$messages['smtpdsnerror'] = 'SMTP Error: Server does not support Delivery Status Notifications'; $messages['smtperror'] = 'SMTP Error: $msg'; $messages['emailformaterror'] = 'Incorrect e-mail address: $email'; $messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.'; $messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max'; $messages['internalerror'] = 'An internal error occured. Please try again'; +$messages['contactdelerror'] = 'Could not delete contact(s)'; +$messages['contactdeleted'] = 'Contact(s) deleted successfully'; +$messages['groupdeleted'] = 'Group deleted successfully'; +$messages['grouprenamed'] = 'Group renamed successfully'; +$messages['groupcreated'] = 'Group created successfully'; +$messages['messagedeleted'] = 'Message(s) deleted successfully'; +$messages['messagemoved'] = 'Message(s) moved successfully'; +$messages['messagecopied'] = 'Message(s) copied successfully'; +$messages['messagemarked'] = 'Message(s) marked successfully'; +$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion'; -?> +?>
\ No newline at end of file diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc index a212e65c3..dfeb1c2d4 100644 --- a/program/localization/en_US/labels.inc +++ b/program/localization/en_US/labels.inc @@ -46,19 +46,13 @@ $labels['to'] = 'Recipient'; $labels['cc'] = 'Copy'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Reply-To'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Date'; $labels['size'] = 'Size'; $labels['priority'] = 'Priority'; $labels['organization'] = 'Organization'; $labels['readstatus'] = 'Read status'; -// aliases -$labels['reply-to'] = $labels['replyto']; -$labels['mail-reply-to'] = $labels['mailreplyto']; -$labels['mail-followup-to'] = $labels['mailfollowupto']; - $labels['mailboxlist'] = 'Folders'; $labels['messagesfromto'] = 'Messages $from to $to of $count'; $labels['threadsfromto'] = 'Threads $from to $to of $count'; @@ -241,8 +235,7 @@ $labels['maxuploadsize'] = 'Maximum allowed file size is $size'; $labels['addcc'] = 'Add Cc'; $labels['addbcc'] = 'Add Bcc'; $labels['addreplyto'] = 'Add Reply-To'; -$labels['addmailreplyto'] = 'Add Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Add Mail-Followup-To'; +$labels['addfollowupto'] = 'Add Followup-To'; // mdn $labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?'; @@ -387,11 +380,15 @@ $labels['subscribed'] = 'Subscribed'; $labels['messagecount'] = 'Messages'; $labels['create'] = 'Create'; $labels['createfolder'] = 'Create new folder'; -$labels['rename'] = 'Rename'; -$labels['renamefolder'] = 'Rename folder'; -$labels['deletefolder'] = 'Delete folder'; $labels['managefolders'] = 'Manage folders'; $labels['specialfolders'] = 'Special Folders'; +$labels['properties'] = 'Properties'; +$labels['folderproperties'] = 'Folder properties'; +$labels['parentfolder'] = 'Parent folder'; +$labels['location'] = 'Location'; +$labels['info'] = 'Information'; +$labels['getfoldersize'] = 'Click to get folder size'; +$labels['changesubscription'] = 'Click to change subscription'; $labels['sortby'] = 'Sort by'; $labels['sortasc'] = 'Sort ascending'; diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index 0f87c0505..df78b0f34 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -24,6 +24,8 @@ $messages['sessionerror'] = 'Your session is invalid or expired'; $messages['imaperror'] = 'Connection to IMAP server failed'; $messages['servererror'] = 'Server Error!'; $messages['servererrormsg'] = 'Server Error: $msg'; +$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only'; +$messages['errornoperm'] = 'Unable to perform operation. Permission denied'; $messages['invalidrequest'] = 'Invalid request! No data was saved.'; $messages['nomessagesfound'] = 'No messages found in this mailbox'; $messages['loggedout'] = 'You have successfully terminated the session. Good bye!'; @@ -55,10 +57,10 @@ $messages['deletecontactconfirm'] = 'Do you really want to delete the selected $messages['deletemessagesconfirm'] = 'Do you really want to delete the selected message(s)?'; $messages['deletefolderconfirm'] = 'Do you really want to delete this folder?'; $messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?'; -$messages['foldercreating'] = 'Creating folder...'; $messages['folderdeleting'] = 'Deleting folder...'; -$messages['folderrenaming'] = 'Renaming folder...'; $messages['foldermoving'] = 'Moving folder...'; +$messages['foldersubscribing'] = 'Subscribing folder...'; +$messages['folderunsubscribing'] = 'Unsubscribing folder...'; $messages['formincomplete'] = 'The form was not completely filled out'; $messages['noemailwarning'] = 'Please enter a valid email address'; $messages['nonamewarning'] = 'Please enter a name'; @@ -78,6 +80,10 @@ $messages['searching'] = 'Searching...'; $messages['checking'] = 'Checking...'; $messages['nospellerrors'] = 'No spelling errors found'; $messages['folderdeleted'] = 'Folder successfully deleted'; +$messages['foldersubscribed'] = 'Folder successfully subscribed'; +$messages['folderunsubscribed'] = 'Folder successfully unsubscribed'; +$messages['folderpurged'] = 'Folder successfully purged'; +$messages['folderexpunged'] = 'Folder successfully emptied'; $messages['deletedsuccessfully'] = 'Successfully deleted'; $messages['converting'] = 'Removing formatting...'; $messages['messageopenerror'] = 'Could not load message from server'; @@ -94,7 +100,6 @@ $messages['markingmessage'] = 'Marking message(s)...'; $messages['receiptsent'] = 'Successfully sent a read receipt'; $messages['errorsendingreceipt'] = 'Could not send the receipt'; $messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.'; -$messages['addsubfolderhint'] = 'This folder will be created as subfolder of the currently selected one'; $messages['forbiddencharacter'] = 'Folder name contains a forbidden character'; $messages['selectimportfile'] = 'Please select a file to upload'; $messages['addresswriterror'] = 'The selected address book is not writeable'; @@ -128,5 +133,9 @@ $messages['messagemoved'] = 'Message(s) moved successfully'; $messages['messagecopied'] = 'Message(s) copied successfully'; $messages['messagemarked'] = 'Message(s) marked successfully'; $messages['autocompletechars'] = 'Enter at least $min characters for autocompletion'; +$messages['namecannotbeempty'] = 'Name cannot be empty'; +$messages['nametoolong'] = 'Name is too long'; +$messages['folderupdated'] = 'Folder updated successfully'; +$messages['foldercreated'] = 'Folder created successfully'; ?> diff --git a/program/localization/eo/labels.inc b/program/localization/eo/labels.inc index df217047b..06fafd584 100644 --- a/program/localization/eo/labels.inc +++ b/program/localization/eo/labels.inc @@ -220,9 +220,6 @@ $labels['subscribed'] = 'Abonata'; $labels['messagecount'] = 'MesaÄoj'; $labels['create'] = 'Kreu'; $labels['createfolder'] = 'Kreu novan dosierujon'; -$labels['rename'] = 'Renomu'; -$labels['renamefolder'] = 'Renomu dosierujon'; -$labels['deletefolder'] = 'Forigu dosierujon'; $labels['managefolders'] = 'Administru dosierujon'; $labels['sortby'] = 'Ordigu per'; $labels['sortasc'] = 'Ordigu kreskante'; diff --git a/program/localization/eo/messages.inc b/program/localization/eo/messages.inc index 956aed059..4aa85224e 100644 --- a/program/localization/eo/messages.inc +++ b/program/localization/eo/messages.inc @@ -75,7 +75,6 @@ $messages['movingmessage'] = 'Translokanta mesaÄon...'; $messages['receiptsent'] = 'Sukcese sendis konfirmon'; $messages['errorsendingreceipt'] = 'Ne povis sendi konfirmon'; $messages['nodeletelastidentity'] = 'Vi ne povas forigi ĉi tiun identon, ĉar Äi estas la lasta'; -$messages['addsubfolderhint'] = 'Ĉi tiu dosierujo estos farita kiel subdosierujo de la nune elektita dosierujo'; $messages['forbiddencharacter'] = 'Dosierujo-nomo enhavas malpermesitan karaktron'; ?> diff --git a/program/localization/es_AR/labels.inc b/program/localization/es_AR/labels.inc index 6c2d16ba3..25f0cf928 100644 --- a/program/localization/es_AR/labels.inc +++ b/program/localization/es_AR/labels.inc @@ -301,9 +301,6 @@ $labels['subscribed'] = 'Suscripta'; $labels['messagecount'] = 'Mensajes'; $labels['create'] = 'Crear'; $labels['createfolder'] = 'Crear nueva carpeta'; -$labels['rename'] = 'Renombrar'; -$labels['renamefolder'] = 'Renombrar carpeta'; -$labels['deletefolder'] = 'Eliminar carpeta'; $labels['managefolders'] = 'Administrar carpetas'; $labels['specialfolders'] = 'Carpetas Especiales'; $labels['sortby'] = 'Ordenar por'; diff --git a/program/localization/es_AR/messages.inc b/program/localization/es_AR/messages.inc index 384349498..3319b6091 100644 --- a/program/localization/es_AR/messages.inc +++ b/program/localization/es_AR/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = '¿Realmente quiere eliminar los contactos s $messages['deletemessagesconfirm'] = '¿Realmente quiere eliminar los mensajes seleccionados?'; $messages['deletefolderconfirm'] = '¿Realmente quiere eliminar esta carpeta?'; $messages['purgefolderconfirm'] = '¿Realmente quiere eliminar todos los mensajes de esta carpeta?'; -$messages['foldercreating'] = 'Creando carpeta...'; $messages['folderdeleting'] = 'Eliminando carpeta...'; -$messages['folderrenaming'] = 'Renombrando carpeta...'; $messages['foldermoving'] = 'Moviendo carpeta...'; $messages['formincomplete'] = 'No se han llenado todos los campos del formulario'; $messages['noemailwarning'] = 'Por favor, introduzca un e-mail válido'; @@ -94,7 +92,6 @@ $messages['copyingmessage'] = 'Copiando mensaje...'; $messages['receiptsent'] = 'La notificación de lectura se ha enviado con éxito.'; $messages['errorsendingreceipt'] = 'No se ha podido enviar la notificación de lectura.'; $messages['nodeletelastidentity'] = 'No se puede borrar esta identidad puesto que es la última.'; -$messages['addsubfolderhint'] = 'Esta carpeta se creará como una subcarpeta dentro de la carpeta seleccionada'; $messages['forbiddencharacter'] = 'El nombre de la carpeta contiene un carácter prohibido'; $messages['selectimportfile'] = 'Por favor, seleccione el archivo a subir'; $messages['addresswriterror'] = 'La libreta de direcciones seleccionada es de solo-lectura'; diff --git a/program/localization/es_ES/labels.inc b/program/localization/es_ES/labels.inc index 4e4829f6a..8365693d6 100644 --- a/program/localization/es_ES/labels.inc +++ b/program/localization/es_ES/labels.inc @@ -40,11 +40,15 @@ $labels['to'] = 'Destinatario'; $labels['cc'] = 'Copia'; $labels['bcc'] = 'Cco'; $labels['replyto'] = 'Respuesta a'; +$labels['followupto'] = 'Seguir a'; $labels['date'] = 'Fecha'; $labels['size'] = 'Tamaño'; $labels['priority'] = 'Prioridad'; $labels['organization'] = 'Organización'; +$labels['readstatus'] = 'Leer estado'; $labels['reply-to'] = 'Respuesta a'; +$labels['mail-reply-to'] = 'Responder a'; +$labels['mail-followup-to'] = 'Seguir a'; $labels['mailboxlist'] = 'Bandejas'; $labels['messagesfromto'] = 'Mensajes $from a $to de $count'; $labels['threadsfromto'] = 'Hilos $from a $to de $count'; @@ -99,6 +103,8 @@ $labels['checkmail'] = 'Revisar si hay nuevos mensajes'; $labels['writenewmessage'] = 'Crear nuevo mensaje'; $labels['replytomessage'] = 'Responder mensaje'; $labels['replytoallmessage'] = 'Responder al emisor y a todos los destinatarios'; +$labels['replyall'] = 'Responder a todos'; +$labels['replylist'] = 'Responder a la lista'; $labels['forwardmessage'] = 'Reenviar mensaje'; $labels['deletemessage'] = 'Eliminar mensaje'; $labels['movemessagetotrash'] = 'Mover mensaje a la papelera'; @@ -171,13 +177,15 @@ $labels['addattachment'] = 'Adjuntar un archivo'; $labels['charset'] = 'Codificación'; $labels['editortype'] = 'Tipo de editor'; $labels['returnreceipt'] = 'Acuse de recibo'; +$labels['dsn'] = 'Entrega de notificaciones de estado'; +$labels['editidents'] = 'Editar identidades'; $labels['checkspelling'] = 'Revisar ortografÃa'; $labels['resumeediting'] = 'Continuar edición'; $labels['revertto'] = 'Revertir a'; $labels['attachments'] = 'Adjuntos'; $labels['upload'] = 'Subir'; $labels['close'] = 'Cerrar'; -$labels['messageoptions'] = 'Opciones de mensaje...'; +$labels['messageoptions'] = 'Opciones de mensaje...'; $labels['low'] = 'Bajo'; $labels['lowest'] = 'BajÃsimo'; $labels['normal'] = 'Normal'; @@ -194,6 +202,7 @@ $labels['maxuploadsize'] = 'Tamaño máximo permitido: $size'; $labels['addcc'] = 'Añadir Cc'; $labels['addbcc'] = 'Añadir Cco'; $labels['addreplyto'] = 'Añadir Respuesta a'; +$labels['addfollowupto'] = 'Añadir Seguir a'; $labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?'; $labels['receiptread'] = 'Notificación de lectura'; $labels['yourmessage'] = 'Esta es una notificación de lectura de su mensaje'; @@ -205,6 +214,7 @@ $labels['email'] = 'Correo'; $labels['addcontact'] = 'Añadir nuevo contacto'; $labels['editcontact'] = 'Editar contacto'; $labels['contacts'] = 'Contactos'; +$labels['contactproperties'] = 'Propiedades del contacto'; $labels['edit'] = 'Editar'; $labels['cancel'] = 'Cancelar'; $labels['save'] = 'Guardar'; @@ -252,6 +262,7 @@ $labels['pagesize'] = 'Filas por página'; $labels['signature'] = 'Firma'; $labels['dstactive'] = 'Cambio de horario'; $labels['htmleditor'] = 'Componer mensaje en HTML'; +$labels['htmlonreply'] = 'En respuesta al mensaje sólo HTML'; $labels['htmlsignature'] = 'Firma HTML'; $labels['previewpane'] = 'Mostrar vista preliminar'; $labels['skin'] = 'Apariencia de la interfaz'; @@ -263,6 +274,8 @@ $labels['mailboxview'] = 'Vista de buzón'; $labels['mdnrequests'] = 'Notificaciones de envÃo'; $labels['askuser'] = 'preguntar al usuario'; $labels['autosend'] = 'enviar automáticamente'; +$labels['autosendknown'] = 'Añade el destinatario a mis contacatos, sino pregunta me'; +$labels['autosendknownignore'] = 'Añade el destinatario a mis contacatos, ignoralo'; $labels['ignore'] = 'ignorar'; $labels['readwhendeleted'] = 'Marcar el mensaje como leÃdo al borrarlo'; $labels['flagfordeletion'] = 'Marcar el mensaje para borrarse en vez de borrarlo'; @@ -307,6 +320,9 @@ $labels['abovequote'] = 'arriba del texto seleccionado'; $labels['insertsignature'] = 'Insertar firma'; $labels['previewpanemarkread'] = 'Marcar mensaje previsualizado como leÃdo'; $labels['afternseconds'] = 'después de $n segundos'; +$labels['reqmdn'] = 'Solicitar siempre un acuse de recibo'; +$labels['reqdsn'] = 'Solicitar siempre la entrega de notificaciones de estado'; +$labels['replysamefolder'] = 'Coloque las respuestas en la carpeta del mensaje que se responde'; $labels['folder'] = 'Bandeja'; $labels['folders'] = 'Bandejas'; $labels['foldername'] = 'Nombre de bandeja'; @@ -314,9 +330,6 @@ $labels['subscribed'] = 'Suscrita'; $labels['messagecount'] = 'Mensajes'; $labels['create'] = 'Crear'; $labels['createfolder'] = 'Crear nueva bandeja'; -$labels['rename'] = 'Renombrar'; -$labels['renamefolder'] = 'Renombrar bandeja'; -$labels['deletefolder'] = 'Eliminar bandeja'; $labels['managefolders'] = 'Administrar bandejas'; $labels['specialfolders'] = 'Bandejas Especiales'; $labels['sortby'] = 'Ordenar por'; diff --git a/program/localization/es_ES/messages.inc b/program/localization/es_ES/messages.inc index d2d4a83e3..24014a72b 100644 --- a/program/localization/es_ES/messages.inc +++ b/program/localization/es_ES/messages.inc @@ -25,6 +25,7 @@ $messages['cookiesdisabled'] = 'Su navegador no acepta cookies'; $messages['sessionerror'] = 'Su sesión no existe o ha expirado'; $messages['imaperror'] = 'Error de conexión con el servidor IMAP'; $messages['servererror'] = '¡Error en el servidor!'; +$messages['servererrormsg'] = 'Error del Servidor: $msg'; $messages['invalidrequest'] = '¡Petición no válida! No se han guardado los datos.'; $messages['nomessagesfound'] = 'No se han encontrado mensajes en esta casilla'; $messages['loggedout'] = 'Ha cerrado la sesión. ¡Hasta pronto!'; @@ -56,9 +57,7 @@ $messages['deletecontactconfirm'] = '¿Realmente quiere eliminar los contactos s $messages['deletemessagesconfirm'] = '¿Realmente quiere eliminar los mensajes seleccionados?'; $messages['deletefolderconfirm'] = '¿Realmente quiere eliminar esta carpeta?'; $messages['purgefolderconfirm'] = '¿Realmente quiere eliminar todos los mensajes de esta carpeta?'; -$messages['foldercreating'] = 'Creando carpeta...'; $messages['folderdeleting'] = 'Borrando carpeta...'; -$messages['folderrenaming'] = 'Renombrando carpeta...'; $messages['foldermoving'] = 'Moviendo carpeta...'; $messages['formincomplete'] = 'No ha rellenado todos los campos del formulario'; $messages['noemailwarning'] = 'Por favor, introduzca un e-mail válido'; @@ -90,10 +89,11 @@ $messages['sourceisreadonly'] = 'Esta dirección es de sólo-lectura'; $messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto'; $messages['movingmessage'] = 'Moviendo mensaje...'; $messages['copyingmessage'] = 'Copiando mensaje...'; +$messages['deletingmessage'] = 'Eliminando Mensaje(s)...'; +$messages['markingmessage'] = 'Marcando Mensaje(s)...'; $messages['receiptsent'] = 'La notificación de lectura se ha enviado con éxito.'; $messages['errorsendingreceipt'] = 'No se ha podido enviar la notificación de lectura.'; $messages['nodeletelastidentity'] = 'No se puede borrar esta identidad puesto que es la última.'; -$messages['addsubfolderhint'] = 'Esta carpeta se creará como una subcarpeta dentro de la carpeta seleccionada'; $messages['forbiddencharacter'] = 'El nombre de la carpeta contiene un carácter prohibido'; $messages['selectimportfile'] = 'Por favor, seleccione un archivo para subir'; $messages['addresswriterror'] = 'No se puede escribir la dirección de contacto seleccionada'; @@ -111,10 +111,21 @@ $messages['smtpautherror'] = 'Error SMTP ($code): Error de autenticación'; $messages['smtpfromerror'] = 'Error SMTP ($code): No se ha podido asignar el emisor "$from" ($msg)'; $messages['smtptoerror'] = 'Error SMTP ($code): No se ha podido establecer remitente "$to" ($msg)'; $messages['smtprecipientserror'] = 'Error SMTP: No es posible analizar la lista de destinatarios'; +$messages['smtpdsnerror'] = 'Error SMTP: No hay soporte para las Notificaciones de Entrega'; $messages['smtperror'] = 'Error SMTP: $msg'; $messages['emailformaterror'] = 'Dirección e-mail incorrecta: $email'; $messages['toomanyrecipients'] = 'Hay demasiados destinatarios. Reduzca el número de destinatarios a $max.'; $messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max.'; $messages['internalerror'] = 'Ocurrió un error interno. Por favor intentalo de nuevo'; +$messages['contactdelerror'] = 'No se ha podido eliminar el contacto(s)'; +$messages['contactdeleted'] = 'Contacto(s) eliminado(s) correctamente'; +$messages['groupdeleted'] = 'Grupo eliminado correctamente'; +$messages['grouprenamed'] = 'Grupo renombrado correctamente'; +$messages['groupcreated'] = 'Grupo creado correctamente'; +$messages['messagedeleted'] = 'Mensaje(s) eliminado(s) correctamente'; +$messages['messagemoved'] = 'Mensaje(s) movido(s) correctamente'; +$messages['messagecopied'] = 'Mensaje(s) copiado(s) correctamente'; +$messages['messagemarked'] = 'Mensaje(s) marcado(s) correctamente'; +$messages['autocompletechars'] = 'Introduce al menos $min caracteres para autocompletar'; ?> diff --git a/program/localization/et_EE/labels.inc b/program/localization/et_EE/labels.inc index 6f8434fdc..a80155d70 100644 --- a/program/localization/et_EE/labels.inc +++ b/program/localization/et_EE/labels.inc @@ -40,8 +40,7 @@ $labels['to'] = 'Saaja'; $labels['cc'] = 'Koopia'; $labels['bcc'] = 'Pimekoopia'; $labels['replyto'] = 'Vastus aadressile'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Kuupäev'; $labels['size'] = 'Suurus'; $labels['priority'] = 'Tähtsus'; @@ -203,8 +202,7 @@ $labels['maxuploadsize'] = 'Faili maksimaalne lubatud suurus on $size'; $labels['addcc'] = 'Lisa koopia'; $labels['addbcc'] = 'Lisa pimekoopia'; $labels['addreplyto'] = 'Lisa vastus aadressile'; -$labels['addmailreplyto'] = 'Lisa Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Lisa Mail-Followup-To'; +$labels['addfollowupto'] = 'Lisa Followup-To'; $labels['mdnrequest'] = 'Selle kirja saatja soovib saada kinnitust kirja lugemise kohta. Kas soovid kinnituse saata?'; $labels['receiptread'] = 'Kättesaamiskinnitus (leotud)'; $labels['yourmessage'] = 'See on sinu saadetud kirja kättesaamiskinnitus'; @@ -332,11 +330,15 @@ $labels['subscribed'] = 'Näitan'; $labels['messagecount'] = 'Kirju'; $labels['create'] = 'Loo'; $labels['createfolder'] = 'Uue kausta loomine'; -$labels['rename'] = 'Nimeta ümber'; -$labels['renamefolder'] = 'Nimeta olemasolev kaust ümber'; -$labels['deletefolder'] = 'Kustuta kaust'; $labels['managefolders'] = 'Halda kaustu'; $labels['specialfolders'] = 'Erilised kaustad'; +$labels['properties'] = 'Omadused'; +$labels['folderproperties'] = 'Kausta omadused'; +$labels['parentfolder'] = 'Ãœlemine kaust'; +$labels['location'] = 'Asukoht'; +$labels['info'] = 'Teave'; +$labels['getfoldersize'] = 'Kliki kausta suuruse teadasaamiseks'; +$labels['changesubscription'] = 'Kliki kausta tellimuste muutmiseks'; $labels['sortby'] = 'Järjesta'; $labels['sortasc'] = 'Järjesta kasvavalt'; $labels['sortdesc'] = 'Järjesta kahanevalt'; diff --git a/program/localization/et_EE/messages.inc b/program/localization/et_EE/messages.inc index f67927768..391b04e3d 100644 --- a/program/localization/et_EE/messages.inc +++ b/program/localization/et_EE/messages.inc @@ -26,6 +26,8 @@ $messages['sessionerror'] = 'Sinu seanss on aegunud või vigane'; $messages['imaperror'] = 'Ei õnnestunud IMAP serveriga ühendust luua'; $messages['servererror'] = 'Serveri tõrge!'; $messages['servererrormsg'] = 'Serveri tõrge: $msg'; +$messages['errorreadonly'] = 'Operatsioon nurjus. Kaustale on vaid lugemisõigus'; +$messages['errornoperm'] = 'Operatsioon nurjus. Ligipääsu õigused puuduvad'; $messages['invalidrequest'] = 'Lubamatu päring! Andmeid ei salvestatud.'; $messages['nomessagesfound'] = 'Postkast paistab tühi olevat'; $messages['loggedout'] = 'Sinu seanss on edukalt lõpetatud. Nägemiseni!'; @@ -57,10 +59,10 @@ $messages['deletecontactconfirm'] = 'Soovid valitud kontaktid kustutada?'; $messages['deletemessagesconfirm'] = 'Soovid valitud kirja(d) kustutada?'; $messages['deletefolderconfirm'] = 'Soovid selle kataloogi kindlasti kustutada?'; $messages['purgefolderconfirm'] = 'Soovid sellest kaustast kõik kirjad kustutada?'; -$messages['foldercreating'] = 'Loon kausta...'; $messages['folderdeleting'] = 'Kustutan kausta...'; -$messages['folderrenaming'] = 'Nimetan kausta ümber...'; $messages['foldermoving'] = 'Liigutan kausta...'; +$messages['foldersubscribing'] = 'Tellin kausta...'; +$messages['folderunsubscribing'] = 'Peatan kausta tellimuse...'; $messages['formincomplete'] = 'Vormi kõik väljad ei ole täidetud'; $messages['noemailwarning'] = 'Palun sisesta toimiv e-posti aadress'; $messages['nonamewarning'] = 'Palun sisesta nimi'; @@ -80,6 +82,10 @@ $messages['searching'] = 'Otsin...'; $messages['checking'] = 'Kontrollin...'; $messages['nospellerrors'] = 'Õigekirjavigu ei leitud'; $messages['folderdeleted'] = 'Kausta kustutamine õnnestus'; +$messages['foldersubscribed'] = 'Kausta tellimine õnnestus'; +$messages['folderunsubscribed'] = 'Kausta tellimise peatamine õnnestus'; +$messages['folderpurged'] = 'Kaust puhastatud edukalt'; +$messages['folderexpunged'] = 'Kaust tühjendatud edukalt'; $messages['deletedsuccessfully'] = 'Edukalt kustutatud'; $messages['converting'] = 'Eemaldan kirjast vormindust...'; $messages['messageopenerror'] = 'Kirjade serverist laadimine ebaõnnestus'; @@ -96,7 +102,6 @@ $messages['markingmessage'] = 'Märgin kirja...'; $messages['receiptsent'] = 'Kättesaamiskinnitus saadetud'; $messages['errorsendingreceipt'] = 'Ei õnnestunud kättesaamiskinnitust saata'; $messages['nodeletelastidentity'] = 'See identiteet on viimane ja seda ei saa kustutada.'; -$messages['addsubfolderhint'] = 'See kataloog luuakse valitud kausta alamkataloogina.'; $messages['forbiddencharacter'] = 'Kausta nimi sisaldab keelatud sümbolit'; $messages['selectimportfile'] = 'Palun vali üleslaadimiseks fail'; $messages['addresswriterror'] = 'Valitud aadressiraamat pole kirjutatav'; @@ -130,8 +135,9 @@ $messages['messagemoved'] = 'Kiri edukalt liigutatud'; $messages['messagecopied'] = 'Kiri edukalt kopeeritud'; $messages['messagemarked'] = 'Kiri edukalt märgitud'; $messages['autocompletechars'] = 'Sisesta vähemalt $min märki autocompleteks'; +$messages['namecannotbeempty'] = 'Nimi ei saa olla tühi'; +$messages['nametoolong'] = 'Nimi liiga pikk'; +$messages['folderupdated'] = 'Kaust uuendatud edukalt'; +$messages['foldercreated'] = 'Kaust loodud edukalt'; ?> - - - diff --git a/program/localization/eu_ES/labels.inc b/program/localization/eu_ES/labels.inc index 1572ce2b5..9080f8a6d 100644 --- a/program/localization/eu_ES/labels.inc +++ b/program/localization/eu_ES/labels.inc @@ -224,9 +224,6 @@ $labels['subscribed'] = 'Harpideturik'; $labels['messagecount'] = 'Mezuak'; $labels['create'] = 'Sortu'; $labels['createfolder'] = 'Karpeta berria sortu'; -$labels['rename'] = 'Berrizendatu'; -$labels['renamefolder'] = 'Karpeta berrizendatu'; -$labels['deletefolder'] = 'Karpeta ezabatu'; $labels['managefolders'] = 'Karpeta kudeaketa'; $labels['specialfolders'] = 'Karpeta bereziak'; $labels['sortby'] = 'Honela ordenatu'; diff --git a/program/localization/eu_ES/messages.inc b/program/localization/eu_ES/messages.inc index d3787af0e..df2af027d 100644 --- a/program/localization/eu_ES/messages.inc +++ b/program/localization/eu_ES/messages.inc @@ -78,7 +78,6 @@ $messages['movingmessage'] = 'Mezua mugitzen...'; $messages['receiptsent'] = 'Ondo bidalia irakurritako agiria'; $messages['errorsendingreceipt'] = 'Ezin da agiria bidali'; $messages['nodeletelastidentity'] = 'Ezin da izaera hau ezabatu, zure bakarra da'; -$messages['addsubfolderhint'] = 'Aukeratutakoaren azpikarpeta bezala sortuko da karpeta hau'; $messages['forbiddencharacter'] = 'Karpeta izenak debekatutako karaktereak ditu'; ?> diff --git a/program/localization/fa/labels.inc b/program/localization/fa/labels.inc index 3bf67a640..1df874367 100644 --- a/program/localization/fa/labels.inc +++ b/program/localization/fa/labels.inc @@ -247,13 +247,9 @@ $labels['checkallfolders'] = 'همه پوشه ها رو برای مشاهده Ù¾ $labels['folder'] = 'پوشه'; $labels['folders'] = 'پوشه‌ها'; $labels['foldername'] = 'نام پوشه'; -$labels['subscribed'] = 'مورد اشتراک'; $labels['messagecount'] = 'پیغام‌ها'; $labels['create'] = 'ایجاد'; $labels['createfolder'] = 'ایجاد پوشه‌ی جدید'; -$labels['rename'] = 'تغییر نام'; -$labels['renamefolder'] = 'تغییر نام پوشه'; -$labels['deletefolder'] = 'Øذ٠پوشه'; $labels['managefolders'] = 'مدیریت پوشه‌ها'; $labels['specialfolders'] = 'پوشه های ویژه'; $labels['sortby'] = 'مرتب‌سازی بر اساس'; diff --git a/program/localization/fa/messages.inc b/program/localization/fa/messages.inc index 69146df06..1a9673a39 100644 --- a/program/localization/fa/messages.inc +++ b/program/localization/fa/messages.inc @@ -50,9 +50,7 @@ $messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید ت٠$messages['deletemessagesconfirm'] = 'آیا واقعاً می‌خواهید پیغام (های) انتخاب شده را Øذ٠کنید؟'; $messages['deletefolderconfirm'] = 'آیا واقعاً می‌خواهید این پوشه را Øذ٠کنید؟'; $messages['purgefolderconfirm'] = 'آیا واقعاً می‌خواهید همه‌ی پیغام‌های داخل این پوشه را Øذ٠کنید؟'; -$messages['foldercreating'] = '...در Øال ایجاد پوشه '; $messages['folderdeleting'] = '...در Øال Øذ٠پوشه '; -$messages['folderrenaming'] = '...در Øال تغییر نام پوشه '; $messages['foldermoving'] = '...در Øال انتقال پوشه '; $messages['formincomplete'] = 'Ùرم کاملاً پر نشده بود'; $messages['noemailwarning'] = 'لطÙاً یک نشانی ایمیل معتبر وارد کنید'; @@ -85,7 +83,6 @@ $messages['movingmessage'] = '...در Øال انتقال پیغام'; $messages['receiptsent'] = 'رسید خواندن با موÙقیت ارسال شد'; $messages['errorsendingreceipt'] = 'ناتوان در ارسال رسید'; $messages['nodeletelastidentity'] = '.نمی‌توانید این هویت را Øذ٠کنید، زیرا آخرین هویت شماست'; -$messages['addsubfolderhint'] = 'پوشه به عنوان زیرپوشه ای ساخته خواهد شد Ú©Ù‡ هم اکنون انتخاب شده است'; $messages['forbiddencharacter'] = 'نام پوشه شامل یک Øر٠غیر مجاز است'; $messages['selectimportfile'] = 'لطÙاً Ùایل را جهت بارگذاری انتخاب کنید'; $messages['addresswriterror'] = 'در دÙترچه تلÙÙ† انتخابی ØŒ اجازه نوشتن ندارید'; diff --git a/program/localization/fa_AF/labels.inc b/program/localization/fa_AF/labels.inc index 1fc3a01e1..19700a5da 100644 --- a/program/localization/fa_AF/labels.inc +++ b/program/localization/fa_AF/labels.inc @@ -287,9 +287,6 @@ $labels['subscribed'] = 'مشترک '; $labels['messagecount'] = 'پيغام ها '; $labels['create'] = 'ایجاد کردن'; $labels['createfolder'] = 'ایجاد پوشه جدید'; -$labels['rename'] = 'تغيير نام '; -$labels['renamefolder'] = 'تغييرنام پوشه '; -$labels['deletefolder'] = 'Øذ٠کردن پوشه '; $labels['managefolders'] = 'اداره کردن پوشه ها '; $labels['specialfolders'] = 'پوشه های مخصوص'; diff --git a/program/localization/fa_AF/messages.inc b/program/localization/fa_AF/messages.inc index 17394ac1c..f298e0f25 100644 --- a/program/localization/fa_AF/messages.inc +++ b/program/localization/fa_AF/messages.inc @@ -31,9 +31,7 @@ $messages['deletecontactconfirm'] = 'آيا واقعاً شما Ù…ÙŠØ®ÙˆØ§Ù‡ÙŠØ $messages['deletemessagesconfirm'] = 'آيا واقعاً شما ميخواهيد Ú©Ù‡ پيغام هاي انتخاب شده را Øذ٠کنيد؟ '; $messages['deletefolderconfirm'] = 'آيا واقعاً شما ميخواهيد Ú©Ù‡ اين پوشه را Øذ٠کنيد؟ '; $messages['purgefolderconfirm'] = 'آيا واقعاً شما ميخواهيد تمام پيغام های Ú©Ù‡ در اين پوشه وجود دارد Øذ٠کنيد؟ '; -$messages['foldercreating'] = 'در Øال ایجاد پوشه'; $messages['folderdeleting'] = 'در Øال Øذ٠پوشه'; -$messages['folderrenaming'] = 'در Øال تغییر نام پوشه'; $messages['foldermoving'] = 'در Øال انتقال پوشه'; $messages['formincomplete'] = 'Ùورمه بصورت مکمل خانه پري نه شده است '; $messages['noemailwarning'] = 'لطÙاً ÙŠÚ© ايميل ادرس موجود را داخل کنيد '; @@ -66,7 +64,6 @@ $messages['movingmessage'] = 'ذر Øال انتقال پیام...'; $messages['receiptsent'] = 'یک رسید برای ارسال کننده این پیام Ùرستاده شد.'; $messages['errorsendingreceipt'] = 'رسيد ارسال شده نتوانست '; $messages['nodeletelastidentity'] = 'شما این شناخت نامه را Øذ٠کرده نمیتوانید. این آخرین شناخت نامه شما است.'; -$messages['addsubfolderhint'] = 'این پوشه به Øیث پوشه Ùرعی پوشه انتخاب شده Ùعلی ساخته خواهد شد.'; $messages['forbiddencharacter'] = 'نام پوشه دارای یک کرکتر ممنوعه است.'; $messages['selectimportfile'] = 'لطÙاً یک Ùایل را برای آپلود کردن انتخاب نمایید.'; $messages['addresswriterror'] = 'کتابچه آدرس انتخاب شده دارای اجازه نامه نوشتاری نیست.'; diff --git a/program/localization/fi_FI/labels.inc b/program/localization/fi_FI/labels.inc index 31aaf834f..45a80327e 100644 --- a/program/localization/fi_FI/labels.inc +++ b/program/localization/fi_FI/labels.inc @@ -308,9 +308,6 @@ $labels['subscribed'] = 'Näytetään'; $labels['messagecount'] = 'Viestejä'; $labels['create'] = 'Luo uusi'; $labels['createfolder'] = 'Luo uusi kansio'; -$labels['rename'] = 'Nimeä uudelleen'; -$labels['renamefolder'] = 'Nimeä kansio uudelleen'; -$labels['deletefolder'] = 'Poista kansio'; $labels['managefolders'] = 'Kansioiden hallinta'; $labels['specialfolders'] = 'Erikoiskansiot'; $labels['sortby'] = 'Järjestä'; diff --git a/program/localization/fi_FI/messages.inc b/program/localization/fi_FI/messages.inc index ddf98f4ca..641dedffb 100644 --- a/program/localization/fi_FI/messages.inc +++ b/program/localization/fi_FI/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Haluatko varmasti poistaa valitut kontaktit $messages['deletemessagesconfirm'] = 'Haluatko varmasti poistaa valitut viestit?'; $messages['deletefolderconfirm'] = 'Haluatko varmasti poistaa kansion?'; $messages['purgefolderconfirm'] = 'Haluatko varmasti poistaa kaikki viestit kansiosta?'; -$messages['foldercreating'] = 'Luodaan kansiota...'; $messages['folderdeleting'] = 'Poistetaan kansiota...'; -$messages['folderrenaming'] = 'Nimetään kansiota...'; $messages['foldermoving'] = 'Siirretään kansiota...'; $messages['formincomplete'] = 'Lomakkeen tiedot olivat puutteelliset'; $messages['noemailwarning'] = 'Anna sähköpostiosoite'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Kopioidaan viestiä...'; $messages['receiptsent'] = 'Lukukuittaus lähetetty onnistuneesti'; $messages['errorsendingreceipt'] = 'Lukukuittausta ei voitu lähettää'; $messages['nodeletelastidentity'] = 'Et voi poistaa tätä identiteettiä, koska se on ainoa jäljelläoleva'; -$messages['addsubfolderhint'] = 'Uusi kansio luodaan valitun kansion alikansiona'; $messages['forbiddencharacter'] = 'Kansion nimessä on kiellettyjä merkkejä'; $messages['selectimportfile'] = 'Valitse lähetettävä tiedosto'; $messages['addresswriterror'] = 'Valittuun osoitekirjaan ei voi kirjoittaa'; diff --git a/program/localization/fr_FR/labels.inc b/program/localization/fr_FR/labels.inc index 09028f267..a3e4bc01d 100644 --- a/program/localization/fr_FR/labels.inc +++ b/program/localization/fr_FR/labels.inc @@ -44,6 +44,7 @@ $labels['date'] = 'Date'; $labels['size'] = 'Taille'; $labels['priority'] = 'Priorité'; $labels['organization'] = 'Organisation'; +$labels['readstatus'] = 'Status de lecture'; $labels['reply-to'] = 'Répondre à '; $labels['mailboxlist'] = 'Dossiers'; $labels['messagesfromto'] = 'Messages de $from à $to sur $count'; @@ -99,6 +100,8 @@ $labels['checkmail'] = 'Vérification des nouveaux messages'; $labels['writenewmessage'] = 'Écrire un nouveau message'; $labels['replytomessage'] = 'Répondre au message'; $labels['replytoallmessage'] = 'Répondre à tous'; +$labels['replyall'] = 'Répondre à tous'; +$labels['replylist'] = 'Répondre à la liste'; $labels['forwardmessage'] = 'Transmettre le message'; $labels['deletemessage'] = 'Déplacer le message dans la corbeille'; $labels['movemessagetotrash'] = 'Déplacer le message dans la corbeille'; @@ -171,6 +174,7 @@ $labels['addattachment'] = 'Joindre un fichier'; $labels['charset'] = 'Encodage'; $labels['editortype'] = 'Type d\'éditeur'; $labels['returnreceipt'] = 'Accusé de réception'; +$labels['dsn'] = 'Notification d\'état de distribution'; $labels['editidents'] = 'Modifier les identités'; $labels['checkspelling'] = 'Vérifier l\'orthographe'; $labels['resumeediting'] = 'Retourner à l\'édition'; @@ -206,6 +210,7 @@ $labels['email'] = 'Courriel'; $labels['addcontact'] = 'Ajouter le contact sélectionné à votre Carnet d\'adresses'; $labels['editcontact'] = 'Modifier le contact'; $labels['contacts'] = 'Contacts'; +$labels['contactproperties'] = 'Propriétés de contact'; $labels['edit'] = 'Modifier'; $labels['cancel'] = 'Annuler'; $labels['save'] = 'Sauvegarder'; @@ -253,6 +258,7 @@ $labels['pagesize'] = 'Nombre de lignes par page'; $labels['signature'] = 'Signature'; $labels['dstactive'] = 'Heure d\'été'; $labels['htmleditor'] = 'Composer un message au format HTML'; +$labels['htmlonreply'] = 'en réponse aux messages HTML uniquement'; $labels['htmlsignature'] = 'Signature HTML'; $labels['previewpane'] = 'Afficher le panneau d\'aperçu'; $labels['skin'] = 'Thème de l\'interface'; @@ -265,6 +271,7 @@ $labels['mdnrequests'] = 'Notifications à l\'expéditeur'; $labels['askuser'] = 'demander à l\'utilisateur'; $labels['autosend'] = 'envoyer automatiquement'; $labels['autosendknown'] = 'Envoyer un avis de réception uniquement à mes contacts'; +$labels['autosendknownignore'] = 'envoie un accusé à mes contacts, sinon ignorer'; $labels['ignore'] = 'ignorer'; $labels['readwhendeleted'] = 'Marquer le message comme lu à la suppression'; $labels['flagfordeletion'] = 'Mettre le drapeau de suppression au lieu de supprimer'; @@ -310,6 +317,8 @@ $labels['insertsignature'] = 'Insérer la signature'; $labels['previewpanemarkread'] = 'Marquer les messages prévisualisés comme lus'; $labels['afternseconds'] = 'après $n secondes'; $labels['reqmdn'] = 'Toujours demandé un avis de réception'; +$labels['reqdsn'] = 'Toujours demander une notification d\'état de distribution'; +$labels['replysamefolder'] = 'Placer les réponses dans le dossier du message étant répondu'; $labels['folder'] = 'Dossier'; $labels['folders'] = 'Dossiers'; $labels['foldername'] = 'Nom du dossier'; @@ -317,11 +326,15 @@ $labels['subscribed'] = 'Abonné'; $labels['messagecount'] = 'Messages'; $labels['create'] = 'Créer'; $labels['createfolder'] = 'Créer un nouveau dossier'; -$labels['rename'] = 'Renommer'; -$labels['renamefolder'] = 'Renommer le dossier'; -$labels['deletefolder'] = 'Supprimer le dossier'; $labels['managefolders'] = 'Organiser les dossiers'; $labels['specialfolders'] = 'Dossiers spéciaux'; +$labels['properties'] = 'Propriétés'; +$labels['folderproperties'] = 'Propriétés du dossier'; +$labels['parentfolder'] = 'Dossier parant'; +$labels['location'] = 'Localisation'; +$labels['info'] = 'Information'; +$labels['getfoldersize'] = 'Cliquer pour obtenir la taille de dossier'; +$labels['changesubscription'] = 'Cliquer pour modifier l\'inscription'; $labels['sortby'] = 'Trier par'; $labels['sortasc'] = 'Tri ascendant'; $labels['sortdesc'] = 'Tri descendant'; diff --git a/program/localization/fr_FR/messages.inc b/program/localization/fr_FR/messages.inc index a3018fafc..66239486e 100644 --- a/program/localization/fr_FR/messages.inc +++ b/program/localization/fr_FR/messages.inc @@ -25,6 +25,7 @@ $messages['cookiesdisabled'] = 'Votre navigateur n\'accepte pas les cookies'; $messages['sessionerror'] = 'Votre session est invalide ou a expiré'; $messages['imaperror'] = 'Erreur de connexion au serveur IMAP'; $messages['servererror'] = 'Erreur Serveur !'; +$messages['servererrormsg'] = 'Erreur du serveur: $msg'; $messages['invalidrequest'] = 'Requête invalide ! Aucune donnée n\'a été sauvegardée.'; $messages['nomessagesfound'] = 'Aucun message trouvé dans cette boîte aux lettres'; $messages['loggedout'] = 'Vous venez de vous déconnecter avec succès. Au revoir !'; @@ -56,9 +57,7 @@ $messages['deletecontactconfirm'] = 'Voulez-vous vraiment effacer le(s) contact( $messages['deletemessagesconfirm'] = 'Voulez-vous vraiment supprimer le(s) message(s) sélectionné(s) ?'; $messages['deletefolderconfirm'] = 'Voulez-vous vraiment effacer ce dossier ?'; $messages['purgefolderconfirm'] = 'Voulez-vous vraiment effacer tous les messages de ce dossier ?'; -$messages['foldercreating'] = 'Création du dossier...'; $messages['folderdeleting'] = 'Suppression du dossier...'; -$messages['folderrenaming'] = 'Renommage du dossier...'; $messages['foldermoving'] = 'Déplacement du dossier...'; $messages['formincomplete'] = 'Le formulaire n\'a pas été entièrement rempli'; $messages['noemailwarning'] = 'Veuillez spécifier un courriel valide'; @@ -90,10 +89,11 @@ $messages['sourceisreadonly'] = 'Cette source d\'adresse est en lecture seule'; $messages['errorsavingcontact'] = 'Ne peut pas enregistrer l\'adresse du contact'; $messages['movingmessage'] = 'Déplacement du message...'; $messages['copyingmessage'] = 'Copie du message ...'; +$messages['deletingmessage'] = 'Suppression des messages...'; +$messages['markingmessage'] = 'Marquage des messages...'; $messages['receiptsent'] = 'L\'accusé de réception a bien été envoyé'; $messages['errorsendingreceipt'] = 'L\'accusé de réception n\'a pas pu être envoyé'; $messages['nodeletelastidentity'] = 'Vous ne pouvez pas effacer votre seule identité.'; -$messages['addsubfolderhint'] = 'Ce dossier sera créé comme sous-dossier de celui sélectionné.'; $messages['forbiddencharacter'] = 'Le nom du dossier contient un caractère interdit'; $messages['selectimportfile'] = 'Veuillez sélectionner un fichier à envoyer'; $messages['addresswriterror'] = 'Impossible d\'écrire dans le carnet d\'adresse sélectionné'; @@ -111,10 +111,21 @@ $messages['smtpautherror'] = 'Erreur SMTP ($code): Echec de l\'authentification' $messages['smtpfromerror'] = 'Erreur SMTP ($code): Impossible de définir l\'expéditeur "$from" ($msg)'; $messages['smtptoerror'] = 'Erreur SMTP ($code): Impossible d\'ajouter le destinataire "$to" ($msg)'; $messages['smtprecipientserror'] = 'Erreur SMTP: Impossible de lire la liste des destinataires'; +$messages['smtpdsnerror'] = 'Erreur SMTP: Pas de support des notifications d\'état de distribution'; $messages['smtperror'] = 'Erreur SMTP: $msg'; $messages['emailformaterror'] = 'Adresse email incorrecte: $email'; $messages['toomanyrecipients'] = 'Trop de destinataires. Réduisez leur nombre à $max maximum.'; $messages['maxgroupmembersreached'] = 'Le nombre de membres du groupe dépasse le maximum de $max.'; $messages['internalerror'] = 'Une erreur interne est survenue. Merci de réessayer'; +$messages['contactdelerror'] = 'Les contacts n\'ont pas pu être supprimés'; +$messages['contactdeleted'] = 'Les contacts ont bien été supprimés'; +$messages['groupdeleted'] = 'Le groupe a bien été supprimé'; +$messages['grouprenamed'] = 'Le groupe a bien été renommé'; +$messages['groupcreated'] = 'Le groupe a bien été créé'; +$messages['messagedeleted'] = 'Les messages ont bien été supprimés'; +$messages['messagemoved'] = 'Les messages ont bien été déplacés'; +$messages['messagecopied'] = 'Les messages ont bien été copiés'; +$messages['messagemarked'] = 'Les messages ont bien été marqués'; +$messages['autocompletechars'] = 'Entrez au moins $min caractères pour l\'auto-complétion'; -?>
\ No newline at end of file +?> diff --git a/program/localization/ga_IE/labels.inc b/program/localization/ga_IE/labels.inc index d6c5f0530..40b99a232 100755 --- a/program/localization/ga_IE/labels.inc +++ b/program/localization/ga_IE/labels.inc @@ -167,9 +167,6 @@ $labels['foldername'] = 'Ainm fillteán'; $labels['subscribed'] = 'SÃntiú'; $labels['create'] = 'Cruthaigh'; $labels['createfolder'] = 'Cruthaigh fillteán nua'; -$labels['rename'] = 'Ainmnigh arÃs'; -$labels['renamefolder'] = 'Ainmnigh fillteán arÃs'; -$labels['deletefolder'] = 'Scrios fillteán'; $labels['managefolders'] = 'Stiúir na fillteán'; $labels['sortby'] = 'Sórtáil trÃ'; $labels['sortasc'] = 'Sórtáil in ord méadaitheach'; diff --git a/program/localization/gl_ES/labels.inc b/program/localization/gl_ES/labels.inc index 13e2a2ca8..1ba8edbd9 100644 --- a/program/localization/gl_ES/labels.inc +++ b/program/localization/gl_ES/labels.inc @@ -28,18 +28,22 @@ $labels['inbox'] = 'Caixa de entrada'; $labels['drafts'] = 'Borradores'; $labels['sent'] = 'Enviado'; $labels['trash'] = 'Cubo do Lixo'; -$labels['junk'] = 'Lixo'; +$labels['junk'] = 'Correo Lixo'; $labels['subject'] = 'Asunto'; $labels['from'] = 'Remitente'; $labels['to'] = 'Destinatario'; -$labels['cc'] = 'Copia'; -$labels['bcc'] = 'Copia Oculta'; -$labels['replyto'] = 'Respostar a'; +$labels['cc'] = 'Copia (CC)'; +$labels['bcc'] = 'Copia Oculta (BCC)'; +$labels['replyto'] = 'Respostar a (Reply-To)'; +$labels['followupto'] = 'Respostar a todos (Followup-To)'; $labels['date'] = 'Data'; $labels['size'] = 'Tamaño'; $labels['priority'] = 'Prioridade'; $labels['organization'] = 'Organización'; +$labels['readstatus'] = 'Estado da lectura'; $labels['reply-to'] = 'Respostar a'; +$labels['mail-reply-to'] = 'Respostar ao autor'; +$labels['mail-followup-to'] = 'Respostar a todos'; $labels['mailboxlist'] = 'Cartafoles'; $labels['messagesfromto'] = 'Mensaxes do $from ao $to de $count'; $labels['threadsfromto'] = 'FÃos do $from ao $to de $count'; @@ -93,10 +97,12 @@ $labels['today'] = 'Hoxe'; $labels['checkmail'] = 'Procurar novas mensaxes'; $labels['writenewmessage'] = 'Crear unha nova mensaxe'; $labels['replytomessage'] = 'Respostar a mensaxe'; -$labels['replytoallmessage'] = 'Respostar a todos'; +$labels['replytoallmessage'] = 'Respostar á lista ou ao remitente e a tódolos destinatarios'; +$labels['replyall'] = 'Respostar a todos'; +$labels['replylist'] = 'Respostar á lista de correo'; $labels['forwardmessage'] = 'Reenviar a mensaxe'; $labels['deletemessage'] = 'Eliminar a mensaxe'; -$labels['movemessagetotrash'] = 'Mover a mensaxe ó cubo do lixo'; +$labels['movemessagetotrash'] = 'Mover a mensaxe ao cubo do lixo'; $labels['printmessage'] = 'Imprimir esta mensaxe'; $labels['previousmessage'] = 'Amosar a mensaxe anterior'; $labels['previousmessages'] = 'Amosar o grupo anterior de mensaxes'; @@ -165,7 +171,9 @@ $labels['sendmessage'] = 'Enviar a mensaxe agora'; $labels['addattachment'] = 'Anexar un ficheiro'; $labels['charset'] = 'Codificación'; $labels['editortype'] = 'Tipo de editor'; -$labels['returnreceipt'] = 'Notificación de disposición'; +$labels['returnreceipt'] = 'Notificación da entrega'; +$labels['dsn'] = 'Notificación do estado de envÃo (DSN)'; +$labels['editidents'] = 'Modificar identidades'; $labels['checkspelling'] = 'Revisar a ortografÃa'; $labels['resumeediting'] = 'Voltar á edición'; $labels['revertto'] = 'Voltar a'; @@ -189,9 +197,10 @@ $labels['maxuploadsize'] = 'O tamaño máximo permitido de ficheiro é de $size' $labels['addcc'] = 'Engadir Copia (CC)'; $labels['addbcc'] = 'Engadir Copia Oculta (BCC)'; $labels['addreplyto'] = 'Engadir Respostar a (Reply-To)'; +$labels['addfollowupto'] = 'Engadir Respostar a todos (Followup-To)'; $labels['mdnrequest'] = 'O remitente desta mensaxe pediu ser notificado cando vostede a lea. Quere notificar ao remitente?'; -$labels['receiptread'] = 'Notificación da disposición da mensaxe (lectura)'; -$labels['yourmessage'] = 'Esta é unha notificación de disposición para a súa mensaxe'; +$labels['receiptread'] = 'Notificación da entrega da mensaxe (lectura)'; +$labels['yourmessage'] = 'Esta é unha notificación da entrega da súa mensaxe'; $labels['receiptnote'] = 'Nota: Esta notificación só confirma que a mensaxe se abriu no computador do destinatario. Non asegura que o destinatario o lera ou entendera o seu contido.'; $labels['name'] = 'Nome completo'; $labels['firstname'] = 'Nome'; @@ -200,6 +209,7 @@ $labels['email'] = 'Correo Electrónico'; $labels['addcontact'] = 'Engadir novo contacto'; $labels['editcontact'] = 'Editar contacto'; $labels['contacts'] = 'Contactos'; +$labels['contactproperties'] = 'Propiedades do contacto'; $labels['edit'] = 'Editar'; $labels['cancel'] = 'Cancelar'; $labels['save'] = 'Gardar'; @@ -247,6 +257,7 @@ $labels['pagesize'] = 'Liñas por páxina'; $labels['signature'] = 'Sinatura'; $labels['dstactive'] = 'Cambio de hora'; $labels['htmleditor'] = 'Redactar mensaxes HTML'; +$labels['htmlonreply'] = 'só cando se resposte a unha mensaxe HTML'; $labels['htmlsignature'] = 'Sinatura HTML'; $labels['previewpane'] = 'Amosar panel de previsualización'; $labels['skin'] = 'Aspecto da interface'; @@ -255,9 +266,11 @@ $labels['logoutcompact'] = 'Compactar a caixa de entrada ao saÃr.'; $labels['uisettings'] = 'Interface de usuario'; $labels['serversettings'] = 'Axustes do servidor'; $labels['mailboxview'] = 'Vista das caixas de correo'; -$labels['mdnrequests'] = 'Notificacións de envÃo'; -$labels['askuser'] = 'preguntar ao usuario'; +$labels['mdnrequests'] = 'Cando se solicitan notificacións da entrega'; +$labels['askuser'] = 'preguntarme qué facer'; $labels['autosend'] = 'enviar automáticamente'; +$labels['autosendknown'] = 'enviar aos meus contactos, noutros casos preguntarme'; +$labels['autosendknownignore'] = 'enviar aos meus contactos, noutros casos ignorar'; $labels['ignore'] = 'ignorar'; $labels['readwhendeleted'] = 'Marcar a mensaxe coma lida ao eliminar'; $labels['flagfordeletion'] = 'Marcar a mensaxe para eliminar no canto de eliminar'; @@ -302,6 +315,9 @@ $labels['abovequote'] = 'enriba do texto citado'; $labels['insertsignature'] = 'Engadir firma'; $labels['previewpanemarkread'] = 'Marcar como lidas as mensaxes previsualizadas'; $labels['afternseconds'] = 'logo de $n segundos'; +$labels['reqmdn'] = 'Solicitar sempre unha notificación da entrega'; +$labels['reqdsn'] = 'Solicitar sempre unha notificación do estado de envÃo'; +$labels['replysamefolder'] = 'Deixar as respostas no cartafol onde está a mensaxe á que se responde'; $labels['folder'] = 'Cartafol'; $labels['folders'] = 'Cartafoles'; $labels['foldername'] = 'Nome do cartafol'; @@ -309,9 +325,6 @@ $labels['subscribed'] = 'Subscrito'; $labels['messagecount'] = 'Mensaxes'; $labels['create'] = 'Crear'; $labels['createfolder'] = 'Crear novo cartafol'; -$labels['rename'] = 'Renomear'; -$labels['renamefolder'] = 'Renomear cartafol'; -$labels['deletefolder'] = 'Eliminar cartafol'; $labels['managefolders'] = 'Xestionar cartafoles'; $labels['specialfolders'] = 'Cartafoles especiais'; $labels['sortby'] = 'Ordenar por'; diff --git a/program/localization/gl_ES/messages.inc b/program/localization/gl_ES/messages.inc index 5eb5c898e..02e3fd716 100644 --- a/program/localization/gl_ES/messages.inc +++ b/program/localization/gl_ES/messages.inc @@ -19,7 +19,8 @@ $messages['loginfailed'] = 'Fallou o acceso'; $messages['cookiesdisabled'] = 'O seu navegador non acepta galletas'; $messages['sessionerror'] = 'A súa sesión non é válida ou expirou'; $messages['imaperror'] = 'Fallou a conexión co servidor IMAP'; -$messages['servererror'] = 'Erro no servidor!'; +$messages['servererror'] = 'Erro do servidor!'; +$messages['servererrormsg'] = 'Erro do servidor: $msg'; $messages['invalidrequest'] = 'Petición inválida!. Non se gardou ningún dato.'; $messages['nomessagesfound'] = 'Non se atoparon mensaxes nesta caixa de correo'; $messages['loggedout'] = 'Rematou correctamente a súa sesión. Ata logo!'; @@ -51,9 +52,7 @@ $messages['deletecontactconfirm'] = 'Quere eliminar o(s) contacto(s) seleccionad $messages['deletemessagesconfirm'] = 'Quere eliminar a(s) mensaxe(s) seleccionadas?'; $messages['deletefolderconfirm'] = 'Quere eliminar este cartafol?'; $messages['purgefolderconfirm'] = 'Quere eliminar tódalas mensaxes neste cartafol?'; -$messages['foldercreating'] = 'Creando o cartafol...'; $messages['folderdeleting'] = 'Eliminando o cartafol...'; -$messages['folderrenaming'] = 'Renomeando o cartafol...'; $messages['foldermoving'] = 'Movendo o cartafol...'; $messages['formincomplete'] = 'Non se cumprimentou completamente o formulario'; $messages['noemailwarning'] = 'Por favor, introduza un enderezo de correo electrónico válido'; @@ -83,12 +82,13 @@ $messages['copysuccess'] = 'Copiáronse correctamente $nr enderezos'; $messages['copyerror'] = 'Non foi posible copiar ningún enderezo'; $messages['sourceisreadonly'] = 'A orixe é de só lectura'; $messages['errorsavingcontact'] = 'Non foi posible gardar o contacto'; -$messages['movingmessage'] = 'Movendo a mensaxe...'; -$messages['copyingmessage'] = 'Copiando a mensaxe...'; -$messages['receiptsent'] = 'A notificación de disposición enviouse correctamente'; -$messages['errorsendingreceipt'] = 'Non foi posible enviar a notificación de disposición'; +$messages['movingmessage'] = 'Movendo a(s) mensaxe(s)...'; +$messages['copyingmessage'] = 'Copiando a(s) mensaxe(s)...'; +$messages['deletingmessage'] = 'Eliminando a(s) mensaxe(s)...'; +$messages['markingmessage'] = 'Marcando a(s) mensaxe(s)...'; +$messages['receiptsent'] = 'A notificación da entrega enviouse correctamente'; +$messages['errorsendingreceipt'] = 'Non foi posible enviar a notificación da entrega'; $messages['nodeletelastidentity'] = 'Non pode eliminar esta identidade, é a última'; -$messages['addsubfolderhint'] = 'Este cartafol vaise crear coma un subcartafol do seleccionado'; $messages['forbiddencharacter'] = 'O nome do cartafol contén un carácter non válido'; $messages['selectimportfile'] = 'Por favor, escolla un ficheiro para cargar'; $messages['addresswriterror'] = 'Non se pode escribir no caderno de enderezos que escolleu'; @@ -106,10 +106,21 @@ $messages['smtpautherror'] = 'Erro SMTP ($code): Fallou a autenticación'; $messages['smtpfromerror'] = 'Erro SMTP ($code): Non foi posible establecer o remitente "$from" ($msg)'; $messages['smtptoerror'] = 'Erro SMTP ($code): Non foi posible engadir o destinatario "$to" ($msg)'; $messages['smtprecipientserror'] = 'Erro SMTP: Non se pode analizar a lista de destinatarios'; +$messages['smtpdsnerror'] = 'Erro SMTP: Non hai soporte para notificacións do estado de envÃo (DSN)'; $messages['smtperror'] = 'Erro SMTP: $msg'; $messages['emailformaterror'] = 'O enderezo de correo electrónico é incorrecto: $email'; $messages['toomanyrecipients'] = 'Especificou demasiados destinatarios. Por favor, redúzaos a un máximo de $max.'; $messages['maxgroupmembersreached'] = 'O número de membros do grupo excede o máximo de $max.'; $messages['internalerror'] = 'Ocurriu un erro interno. Por favor, probe outra vez.'; +$messages['contactdelerror'] = 'Non foi posible borrar o(s) contacto(s)'; +$messages['contactdeleted'] = 'Borráronse correctamente o(s) contacto(s)'; +$messages['groupdeleted'] = 'Borrouse correctamente o grupo'; +$messages['grouprenamed'] = 'Mudouse correctamente o nome do grupo'; +$messages['groupcreated'] = 'Creouse correctamente o grupo'; +$messages['messagedeleted'] = 'Borráronse correctamente a(s) mensaxe(s)'; +$messages['messagemoved'] = 'Movéronse correctamente a(s) mensaxe(s)'; +$messages['messagecopied'] = 'Copiáronse correctamente a(s) mensaxe(s)'; +$messages['messagemarked'] = 'Marcáronse correctamente a(s) mensaxe(s)'; +$messages['autocompletechars'] = 'Introduza polo menos $min caracteres para autocompletar'; ?> diff --git a/program/localization/he_IL/labels.inc b/program/localization/he_IL/labels.inc index 0b0336794..61f27f769 100644 --- a/program/localization/he_IL/labels.inc +++ b/program/localization/he_IL/labels.inc @@ -11,7 +11,7 @@ +-----------------------------------------------------------------------+ | Author: Moshe Leibovitch <moish@mln.co.il> | | Updates: Noor Dawod <noor@comrax.com> | -| Updates: Moshe Leibovitch <moish@mln.co.il> 10112010 | +| Updates: Moshe Leibovitch <moish@mln.co.il> 09122010 | +-----------------------------------------------------------------------+ */ @@ -36,16 +36,12 @@ $labels['to'] = '×”× ×ž×¢×Ÿ'; $labels['cc'] = 'לידיעה'; $labels['bcc'] = 'מכותב מוסתר'; $labels['replyto'] = 'כתובת ×œ×ž×¢× ×”'; -$labels['mailreplyto'] = 'כתובת ×œ×ž×¢× ×”'; -$labels['mailfollowupto'] = 'כתובת להעברת הודעה'; +$labels['followupto'] = 'כתובת להעברת הודעה'; $labels['date'] = 'ת×ריך'; $labels['size'] = 'גודל'; $labels['priority'] = 'עדיפות'; $labels['organization'] = '×רגון'; $labels['readstatus'] = '× ×§×¨×'; -$labels['reply-to'] = 'כתובת ×œ×ž×¢× ×”'; -$labels['mail-reply-to'] = 'כתובת ×œ×ž×¢× ×”'; -$labels['mail-followup-to'] = 'כתובת להעברת הודעה'; $labels['mailboxlist'] = 'תיקי×'; $labels['messagesfromto'] = 'הודעות $from עד $to מתוך $count'; $labels['threadsfromto'] = 'שרשור $from עד $to מתוך $count'; @@ -199,8 +195,7 @@ $labels['maxuploadsize'] = 'גודל מקסימלי לקובץ ×”×•× $size'; $labels['addcc'] = 'הוספת מכותב לידיעה'; $labels['addbcc'] = 'הוספת מכותב × ×¡×ª×¨'; $labels['addreplyto'] = 'הוספת כתובת ×œ×ž×¢× ×”'; -$labels['addmailreplyto'] = 'הוספת כתובת ×œ×ž×¢× ×”'; -$labels['addmailfollowupto'] = 'הוספת כתובת להעברת הודעה'; +$labels['addfollowupto'] = 'הוספת כתובת להעברת הודעה'; $labels['mdnrequest'] = 'השולח ביקש לדעת ×× ×”×”×•×“×¢×” × ×§×¨××”. ×”×× ×œ×”×•×“×™×¢ לשולח?'; $labels['receiptread'] = '×ישור קבלה (× ×§×¨×)'; $labels['yourmessage'] = '×ישור קבלה להודעתך'; @@ -328,11 +323,15 @@ $labels['subscribed'] = '×ž× ×•×™'; $labels['messagecount'] = 'הודעות'; $labels['create'] = 'יצירה'; $labels['createfolder'] = 'יצירת תיק חדש'; -$labels['rename'] = '×©×™× ×•×™ ש×'; -$labels['renamefolder'] = '×©×™× ×•×™ ×©× ×ª×™×§'; -$labels['deletefolder'] = 'מחיקת תיק'; $labels['managefolders'] = '× ×™×”×•×œ תיקי×'; $labels['specialfolders'] = '×ª×™×§×™× ×ž×™×•×—×“×™×'; +$labels['properties'] = 'מ××¤×™×™× ×™×'; +$labels['folderproperties'] = 'מ××¤×™×™× ×™ תיק'; +$labels['parentfolder'] = 'תיק ×ב'; +$labels['location'] = 'מיקו×'; +$labels['info'] = 'מידע'; +$labels['getfoldersize'] = 'הקשה להצגה של גודל תיק'; +$labels['changesubscription'] = 'הקשה ×œ×©×™× ×•×™ הרשמה'; $labels['sortby'] = 'מיון לפי'; $labels['sortasc'] = 'מיון בסדר עולה'; $labels['sortdesc'] = 'מיון בסדר יורד'; diff --git a/program/localization/he_IL/messages.inc b/program/localization/he_IL/messages.inc index 3b3f9362b..9dd3c872b 100644 --- a/program/localization/he_IL/messages.inc +++ b/program/localization/he_IL/messages.inc @@ -11,7 +11,7 @@ +-----------------------------------------------------------------------+ | Author: Moshe Leibovitch <moish@mln.co.il> | | Updates: Noor Dawod <noor@comrax.com> | -| Updates: Moshe Leibovitch <moish@mln.co.il> 10112010 | +| Updates: Moshe Leibovitch <moish@mln.co.il> 09122010 | +-----------------------------------------------------------------------+ */ @@ -23,6 +23,8 @@ $messages['sessionerror'] = '×›× ×™×¡×ª×š למערכת ××™× ×” חוקית ×ו $messages['imaperror'] = 'הקשר לשרת הדו×ר × ×›×©×œ'; $messages['servererror'] = '! שגי×ת שרת'; $messages['servererrormsg'] = '$msg שגי×ת שרת'; +$messages['errorreadonly'] = '×œ× × ×™×ª×Ÿ לבצע הפעולה ×›×™ התיק × ×™×ª×Ÿ לקרי××” בלבד'; +$messages['errornoperm'] = '×œ× × ×™×ª×Ÿ לבצע הפעולה ×›×™ ×ין הרש××” לבצעה'; $messages['invalidrequest'] = 'בקשה ×œ× ×—×•×§×™×ª. המידע ×œ× × ×©×ž×¨'; $messages['nomessagesfound'] = '×œ× × ×ž×¦×ו הודעות בתיבה זו'; $messages['loggedout'] = 'הקשר הסתיי×. להתר×ות!'; @@ -54,10 +56,10 @@ $messages['deletecontactconfirm'] = '×”×× ×œ×ž×—×•×§ ×ת ×יש הקשר?'; $messages['deletemessagesconfirm'] = '×”×× ×œ×ž×—×•×§ ×ת ההודעות ×”×ž×¡×•×ž× ×•×ª?'; $messages['deletefolderconfirm'] = '×”×× ×œ×ž×—×•×§ תיק ×–×”?'; $messages['purgefolderconfirm'] = '×”×× ×œ×ž×—×•×§ ×ת כל ההודעות בתיק ×–×”?'; -$messages['foldercreating'] = 'התיקיה × ×•×¦×¨×ª...'; $messages['folderdeleting'] = 'התיקיה × ×ž×—×§×ª...'; -$messages['folderrenaming'] = '×©×™× ×•×™ ×©× ×ª×™×§×™×”...'; $messages['foldermoving'] = 'העברת תיקיה...'; +$messages['foldersubscribing'] = 'התיק × ×¨×©×...'; +$messages['folderunsubscribing'] = '×¨×™×©×•× ×”×ª×™×§ בוטל...'; $messages['formincomplete'] = '×œ× ×”×•×–× ×• כל השדות בטופס ×–×”'; $messages['noemailwarning'] = '× × ×œ×”×•×¡×™×£ כתובת דו×\"ל חוקית'; $messages['nonamewarning'] = '× × ×œ×”×•×¡×™×£ ש×'; @@ -77,6 +79,10 @@ $messages['searching'] = 'חיפוש...'; $messages['checking'] = 'בדיקה...'; $messages['nospellerrors'] = '×œ× × ×ž×¦×ו שגי×ות כתיב'; $messages['folderdeleted'] = 'התיק × ×ž×—×§ בהצלחה'; +$messages['foldersubscribed'] = 'התיק × ×¨×©× ×‘×”×¦×œ×—×”'; +$messages['folderunsubscribed'] = 'ביטול ×¨×™×©×•× ×ª×™×§ הצליח'; +$messages['folderpurged'] = 'התיק × ×ž×—×§ בהצלחה'; +$messages['folderexpunged'] = 'התיק רוקן בהצלחה'; $messages['deletedsuccessfully'] = 'המחיקה הסתיימה בהצלחה'; $messages['converting'] = 'הסרת העיצוב מההודעה'; $messages['messageopenerror'] = '×œ× × ×™×ª×Ÿ לטעון ההודעה מהשרת'; @@ -93,7 +99,6 @@ $messages['markingmessage'] = 'סימון ההודעה בתהליך...'; $messages['receiptsent'] = '×ישור הקבלה × ×©×œ×— בהצלחה'; $messages['errorsendingreceipt'] = '×œ× × ×™×ª×Ÿ לשלוח ×ישור קבלה'; $messages['nodeletelastidentity'] = 'זו הזהות ×”××—×¨×•× ×” ולכן ×œ× × ×™×ª×Ÿ לבטלה'; -$messages['addsubfolderhint'] = 'תיקיה זו ×ª×•×§× ×ª×—×ª התיקיה ×©× ×‘×—×¨×”'; $messages['forbiddencharacter'] = '×©× ×”×ª×™×§×™×” מכיל ×ª×•×™× ×סורי×'; $messages['selectimportfile'] = '× × ×œ×‘×—×•×¨ קובץ לייבו×'; $messages['addresswriterror'] = '×¤× ×§×¡ הכתובות ×©× ×‘×—×¨ ××™× ×• × ×™×ª×Ÿ לכתיבה'; @@ -127,5 +132,9 @@ $messages['messagemoved'] = 'ההודעה הועברה בהצלחה'; $messages['messagecopied'] = 'ההודעה הועתקה בהצלחה'; $messages['messagemarked'] = 'ההודעה ×¡×•×ž× ×” בהצלחה'; $messages['autocompletechars'] = 'יש להקיש לפחות $min ×ª×•×•×™× ×œ×”×©×œ×ž×” ×וטומטית של המחרוזת'; +$messages['namecannotbeempty'] = '×”×©× ××™× ×• יכול להיות ריק'; +$messages['nametoolong'] = '×”×©× ×רוך מדי'; +$messages['folderupdated'] = 'התיק עודכן בהצלחה'; +$messages['foldercreated'] = 'התיק × ×•×¦×¨ בהצלחה'; ?> diff --git a/program/localization/hi_IN/labels.inc b/program/localization/hi_IN/labels.inc index 6db8e028c..36d91fe57 100644 --- a/program/localization/hi_IN/labels.inc +++ b/program/localization/hi_IN/labels.inc @@ -226,9 +226,6 @@ $labels['foldername'] = 'फ़ोलà¥à¤¡à¤° नाम'; $labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ किया गया'; $labels['create'] = 'बनाà¤à¤‚'; $labels['createfolder'] = 'फ़ोलडर बनाà¤à¤‚'; -$labels['rename'] = 'नाम बदलें'; -$labels['renamefolder'] = 'फ़ोलडर का नाम बदलें'; -$labels['deletefolder'] = 'फ़ोलडर मिटाà¤à¤‚'; $labels['managefolders'] = 'फ़ोलडर को वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें'; $labels['sortby'] = 'à¤à¤¸à¥‡ तय करें'; diff --git a/program/localization/hr_HR/labels.inc b/program/localization/hr_HR/labels.inc index 835159e96..2043f7c01 100644 --- a/program/localization/hr_HR/labels.inc +++ b/program/localization/hr_HR/labels.inc @@ -38,21 +38,25 @@ $labels['to'] = 'Za'; $labels['cc'] = 'Cc'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Odgovor-na'; +$labels['followupto'] = 'Nastavi-na'; $labels['date'] = 'Datum'; $labels['size'] = 'VeliÄina'; $labels['priority'] = 'Prioritet'; $labels['organization'] = 'Organizacija'; +$labels['readstatus'] = 'ProÄitano'; $labels['reply-to'] = 'Odgovor-na'; +$labels['mail-reply-to'] = 'Mail-Odogovori-na'; +$labels['mail-followup-to'] = 'Mail-Nastavi-na'; $labels['mailboxlist'] = 'Mape'; $labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count'; +$labels['threadsfromto'] = 'Teme od $from do $to od ukupno $count'; $labels['messagenrof'] = 'Poruka broj $nr od $count'; -$labels['moveto'] = 'prebaci u...'; -$labels['download'] = 'preuzmi (download)'; +$labels['copy'] = 'Kopiraj'; +$labels['move'] = 'Premjesti'; +$labels['moveto'] = 'Premjesti u...'; +$labels['download'] = 'Preuzmi (download)'; $labels['filename'] = 'Ime datoteke'; $labels['filesize'] = 'VeliÄina datoteke'; -$labels['preferhtml'] = 'HTML format u prednosti'; -$labels['htmlmessage'] = 'HTML format poruke'; -$labels['prettydate'] = 'Formatiran datum'; $labels['addtoaddressbook'] = 'Dodaj u imenik'; $labels['sun'] = 'Ned'; $labels['mon'] = 'Pon'; @@ -97,6 +101,8 @@ $labels['checkmail'] = 'Provjera novih poruka'; $labels['writenewmessage'] = 'Nova poruka'; $labels['replytomessage'] = 'Odgovori na poruku'; $labels['replytoallmessage'] = 'Odgovori poÅ¡iljaocu i svim primateljima'; +$labels['replyall'] = 'Odgovori svima'; +$labels['replylist'] = 'Odgovori listi'; $labels['forwardmessage'] = 'Prosljedi poruku'; $labels['deletemessage'] = 'Prebaci poruku u mapu smeće'; $labels['movemessagetotrash'] = 'Preseli poruke u smeće'; @@ -120,12 +126,35 @@ $labels['messageactions'] = 'ViÅ¡e akcija'; $labels['select'] = 'OznaÄi'; $labels['all'] = 'Sve'; $labels['none'] = 'Nijednu'; +$labels['currpage'] = 'Trenutna stranica'; $labels['unread'] = 'NeproÄitane'; $labels['flagged'] = 'Markirane'; $labels['unanswered'] = 'Neodgovrene'; $labels['deleted'] = 'Obrisano'; $labels['invert'] = 'Obrni'; $labels['filter'] = 'Filtriraj'; +$labels['list'] = 'Lista'; +$labels['threads'] = 'Teme'; +$labels['expand-all'] = 'ProÅ¡iri sve'; +$labels['expand-unread'] = 'ProÅ¡iri neproÄitane'; +$labels['collapse-all'] = 'Zatvori sve'; +$labels['threaded'] = 'Tematski prikaz'; +$labels['autoexpand_threads'] = 'ProÅ¡iri teme poruka'; +$labels['do_expand'] = 'Sve teme'; +$labels['expand_only_unread'] = 'samo sa neproÄitanim porukama'; +$labels['fromto'] = 'PoÅ¡iljatelj/Primatelj'; +$labels['flag'] = 'Zastava'; +$labels['attachment'] = 'Privitak'; +$labels['nonesort'] = 'NiÅ¡ta'; +$labels['sentdate'] = 'Datum slanja'; +$labels['arrival'] = 'Datum primanja'; +$labels['asc'] = 'uzlazno'; +$labels['desc'] = 'silazno'; +$labels['listcolumns'] = 'Kolone'; +$labels['listsorting'] = 'Sortirajuća kolona'; +$labels['listorder'] = 'Sortirajući redoslijed'; +$labels['listmode'] = 'Model pregleda listi'; +$labels['folderactions'] = 'Akcije mapa'; $labels['compact'] = 'Kompresiranje'; $labels['empty'] = 'Isprazni '; $labels['purge'] = 'OÄisti'; @@ -146,12 +175,15 @@ $labels['addattachment'] = 'Priloži datoteku'; $labels['charset'] = 'Charset'; $labels['editortype'] = 'Tip editora'; $labels['returnreceipt'] = 'Potvrda o primitku poruke'; +$labels['dsn'] = 'Potvrda o poslanoj poruci'; +$labels['editidents'] = 'Promijeni identitete'; $labels['checkspelling'] = 'Provjera pravopisa'; $labels['resumeediting'] = 'Povratak u pisanje'; $labels['revertto'] = 'Vrati na'; $labels['attachments'] = 'Privitci (Attachments)'; $labels['upload'] = 'Dodaj'; $labels['close'] = 'Zatvori'; +$labels['messageoptions'] = 'Opcije poruka...'; $labels['low'] = 'Nizak'; $labels['lowest'] = 'Najniži'; $labels['normal'] = 'Srednji'; @@ -168,6 +200,7 @@ $labels['maxuploadsize'] = 'Maksimalna dozvoljena velicina datoteke je $size'; $labels['addcc'] = 'Dodaj Cc'; $labels['addbcc'] = 'Dodaj Bcc'; $labels['addreplyto'] = 'Dodaj Odgovori-na'; +$labels['addfollowupto'] = 'Dodaj Nastavak-na'; $labels['mdnrequest'] = 'PoÅ¡iljaoc ove poruke je tražio da bude obavijeÅ¡ten o njenom primitku. Želite li obavijestiti poÅ¡iljaoca?'; $labels['receiptread'] = 'Vrati potvrdu (proÄitano)'; $labels['yourmessage'] = 'Ovo je vraćena potvrda vaÅ¡e poruke'; @@ -178,6 +211,8 @@ $labels['surname'] = 'Prezime'; $labels['email'] = 'E-Mail'; $labels['addcontact'] = 'Dodaj novi kontakt'; $labels['editcontact'] = 'Izmjeni kontakt'; +$labels['contacts'] = 'Kontakti'; +$labels['contactproperties'] = 'Svojstva kontakta'; $labels['edit'] = 'Izmjeni'; $labels['cancel'] = 'Odustani'; $labels['save'] = 'Spremi'; @@ -189,10 +224,13 @@ $labels['contactsfromto'] = 'Kontakti od $from do $to od ukupno $count'; $labels['print'] = 'Print'; $labels['export'] = 'Export'; $labels['exportvcards'] = 'Izvezi kontakte u vCard formatu'; +$labels['newcontactgroup'] = 'Napravi novu kontaktnu grupu'; +$labels['groupactions'] = 'Akcije kontaktne grupe'; $labels['previouspage'] = 'Prethodna strana'; $labels['firstpage'] = 'Prva strana'; $labels['nextpage'] = 'Slijedeća strana'; $labels['lastpage'] = 'Zadnja strana'; +$labels['group'] = 'Grupa'; $labels['groups'] = 'Grupe'; $labels['personaladrbook'] = 'Privatna adresa'; $labels['import'] = 'Uvoz'; @@ -210,6 +248,10 @@ $labels['manageidentities'] = 'Podesi identitete za ovaj nalog'; $labels['newidentity'] = 'Dodaj identitet'; $labels['newitem'] = 'Novo'; $labels['edititem'] = 'Uredi'; +$labels['preferhtml'] = 'HTML format u prednosti'; +$labels['defaultcharset'] = 'Zadani skup znakova'; +$labels['htmlmessage'] = 'HTML format poruke'; +$labels['prettydate'] = 'Formatiran datum'; $labels['setdefault'] = 'Postavi predodreÄ‘eno'; $labels['autodetect'] = 'Auto'; $labels['language'] = 'Jezik'; @@ -218,6 +260,7 @@ $labels['pagesize'] = 'Redova po stranici'; $labels['signature'] = 'Potpis'; $labels['dstactive'] = 'Automatska promjena vremena'; $labels['htmleditor'] = 'Sastavi HTML poruke'; +$labels['htmlonreply'] = 'odgovor samo na HTML poruke'; $labels['htmlsignature'] = 'HTML potpis'; $labels['previewpane'] = 'Prikaži podruÄje pregleda'; $labels['skin'] = 'Tema izgleda'; @@ -229,10 +272,13 @@ $labels['mailboxview'] = 'Pregled Mailboxa'; $labels['mdnrequests'] = 'Obavijest poÅ¡iljatelja'; $labels['askuser'] = 'pitaj korisnika'; $labels['autosend'] = 'Å¡alji automatski'; -$labels['ignore'] = 'ignoriraj'; +$labels['autosendknown'] = 'Dodaj primatelja u moje kontakte, u suprotnom me pitaj'; +$labels['autosendknownignore'] = 'Dodaj primatelja u moje kontakte, u suprotnom zanemari'; +$labels['ignore'] = 'zanemari'; $labels['readwhendeleted'] = 'OznaÄi poruku kao proÄitanu pri brisanju'; $labels['flagfordeletion'] = 'OznaÄi poruku za brisanje umjesto brisanja'; $labels['skipdeleted'] = 'Ne prikazivaj pobrisane poruke'; +$labels['deletealways'] = 'Ukoliko premjeÅ¡tanje poruka u mapu otpad ne uspije, izbrÅ¡i poruku'; $labels['showremoteimages'] = 'Prikaži slike s interneta'; $labels['fromknownsenders'] = 'od poznatih poÅ¡iljatelja'; $labels['always'] = 'uvijek'; @@ -240,13 +286,15 @@ $labels['showinlineimages'] = 'Prikaži slike ispod poruke'; $labels['autosavedraft'] = 'Automatski spremi draft'; $labels['everynminutes'] = 'svakih $n minuta'; $labels['keepalive'] = 'Provjeri nove poruke'; -$labels['never'] = 'Nikada'; +$labels['never'] = 'nikada'; +$labels['immediately'] = 'odmah'; $labels['messagesdisplaying'] = 'Prikazujem poruke'; $labels['messagescomposition'] = 'Komponiram poruke'; $labels['mimeparamfolding'] = 'Nazivi privitaka'; $labels['2231folding'] = 'Full RFC 2231 (Thunderbird)'; $labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)'; $labels['2047folding'] = 'Full RFC 2047 (ostali)'; +$labels['force7bit'] = 'Koristi MIME postavke za 8-bitne znakove'; $labels['advancedoptions'] = 'Napredne postavke'; $labels['focusonnewmessage'] = 'Fokusiraj browser pri novoj poruci'; $labels['checkallfolders'] = 'Provjeri nove poruke u svim mapama'; @@ -268,6 +316,11 @@ $labels['replysignaturepos'] = 'Kod downloada ili proslijeÄ‘ivanja postavi potpi $labels['belowquote'] = 'ispod citata'; $labels['abovequote'] = 'iznad citata'; $labels['insertsignature'] = 'Umetni potpis'; +$labels['previewpanemarkread'] = 'Obilježi pregledane poruke kao proÄitane'; +$labels['afternseconds'] = 'nakon $n sekundi'; +$labels['reqmdn'] = 'Uvijek zatraži potvrdu o primitku poruke'; +$labels['reqdsn'] = 'Uvijek zatraži potvrdu o slanju poruke'; +$labels['replysamefolder'] = 'Spremi odgovore u mapu gdje se nalazi poruka'; $labels['folder'] = 'Mapa'; $labels['folders'] = 'Mape'; $labels['foldername'] = 'Ime mape'; @@ -275,9 +328,6 @@ $labels['subscribed'] = 'Pretplata'; $labels['messagecount'] = 'Poruke'; $labels['create'] = 'Napravi'; $labels['createfolder'] = 'Napravi novu mapu'; -$labels['rename'] = 'Preimenuj'; -$labels['renamefolder'] = 'Preimenuj Mapu'; -$labels['deletefolder'] = 'ObriÅ¡i Mapu'; $labels['managefolders'] = 'Podesi Mapu'; $labels['specialfolders'] = 'Specijalna Mapa'; $labels['sortby'] = 'Sortiraj po'; @@ -287,5 +337,23 @@ $labels['B'] = 'B'; $labels['KB'] = 'KB'; $labels['MB'] = 'MB'; $labels['GB'] = 'GB'; +$labels['unicode'] = 'Unicode'; +$labels['english'] = 'Engleski'; +$labels['westerneuropean'] = 'Zapadno Europski'; +$labels['easterneuropean'] = 'IstoÄno Europski'; +$labels['southeasterneuropean'] = 'Južno-IstoÄni Europski'; +$labels['baltic'] = 'BalitÄki'; +$labels['cyrillic'] = 'ÄŒirilÄni'; +$labels['arabic'] = 'Arapski'; +$labels['greek'] = 'GrÄki'; +$labels['hebrew'] = 'Hibru'; +$labels['turkish'] = 'Turski'; +$labels['nordic'] = 'Nordski'; +$labels['thai'] = 'Tajlandski'; +$labels['celtic'] = 'Keltski'; +$labels['vietnamese'] = 'Vijetnamski'; +$labels['japanese'] = 'Japanski'; +$labels['korean'] = 'Korejski'; +$labels['chinese'] = 'Kineski'; ?> diff --git a/program/localization/hr_HR/messages.inc b/program/localization/hr_HR/messages.inc index 4f4b7c519..7594efa3b 100644 --- a/program/localization/hr_HR/messages.inc +++ b/program/localization/hr_HR/messages.inc @@ -53,9 +53,7 @@ $messages['deletecontactconfirm'] = 'Želite li obrisati izabrane kontakte?'; $messages['deletemessagesconfirm'] = 'Sigurno želite obrisati odabrane poruke?'; $messages['deletefolderconfirm'] = 'Želite li obrisati ovu mapu?'; $messages['purgefolderconfirm'] = 'Želite li obrisati sve poruke u mapi?'; -$messages['foldercreating'] = 'Kreiram mapu...'; $messages['folderdeleting'] = 'BriÅ¡em mapu...'; -$messages['folderrenaming'] = 'Mijenjam naziv mape...'; $messages['foldermoving'] = 'PremjeÅ¡tam mapu...'; $messages['formincomplete'] = 'Obrazac nije u cjelosti popunjen'; $messages['noemailwarning'] = 'Unesite valjanu e-mail adresu'; @@ -89,7 +87,6 @@ $messages['movingmessage'] = 'PremjeÅ¡tanje poruke...'; $messages['receiptsent'] = 'UspjeÅ¡no poslana potvrda (proÄitano)'; $messages['errorsendingreceipt'] = 'Ne može poslati potvrdu'; $messages['nodeletelastidentity'] = 'Ne možete izbrisati zadnji identitet.'; -$messages['addsubfolderhint'] = 'Ova mapa će biti stvorena kao podmapa na trenutno oznaÄenoj'; $messages['forbiddencharacter'] = 'Naziv mape sadrži zabranjene znakove'; $messages['selectimportfile'] = 'Odaberite datoteku za prijenos'; $messages['addresswriterror'] = 'U odabrani adresar nije moguće zapisivat...'; diff --git a/program/localization/hu_HU/labels.inc b/program/localization/hu_HU/labels.inc index e2553884f..f8f2b6fce 100644 --- a/program/localization/hu_HU/labels.inc +++ b/program/localization/hu_HU/labels.inc @@ -40,16 +40,15 @@ $labels['to'] = 'CÃmzett'; $labels['cc'] = 'Másolat'; $labels['bcc'] = 'Titkos másolat'; $labels['replyto'] = 'VálaszcÃm'; -$labels['mailreplyto'] = 'HÃrcsoport'; -$labels['mailfollowupto'] = 'HÃrcsoport válasz'; +$labels['followupto'] = 'HÃrcsoport válasz'; $labels['date'] = 'Dátum'; $labels['size'] = 'Méret'; $labels['priority'] = 'SürgÅ‘sség'; $labels['organization'] = 'Szervezet'; $labels['readstatus'] = 'Olvasott'; $labels['reply-to'] = 'VálaszcÃm'; -$labels['mailreply-to'] = 'HÃrcsoport'; -$labels['mailfollowup-to'] = 'HÃrcsoport válasz'; +$labels['mail-reply-to'] = 'HÃrcsoport'; +$labels['mail-followup-to'] = 'HÃrcsoport válasz'; $labels['mailboxlist'] = 'Mappák'; $labels['messagesfromto'] = 'Ãœzenetek: $from - $to / $count'; $labels['threadsfromto'] = 'Témák ($from - $to, összesen $count)'; @@ -203,8 +202,7 @@ $labels['maxuploadsize'] = 'A maximális feltölthetÅ‘ fájl mérete $size'; $labels['addcc'] = 'Cc (Másolati cÃm) hozzáadása'; $labels['addbcc'] = 'Bcc (titkos másolati cÃm) hozzáadása'; $labels['addreplyto'] = 'VálaszcÃm hozzáadása'; -$labels['addmailreplyto'] = 'HÃrcsoport hozzáadása'; -$labels['addmailfollowupto'] = 'HÃrcsoport válasz hozzáadása'; +$labels['addfollowupto'] = 'HÃrcsoport válasz hozzáadása'; $labels['mdnrequest'] = 'Az üzenet küldÅ‘je értesÃtést kér arról, hogy elolvasta a levelet. El legyen küldve az olvasási visszaigazolás?'; $labels['receiptread'] = 'Olvasási visszaigazolás (olvasott)'; $labels['yourmessage'] = 'Ez az üzenete olvasási visszaigazolása'; @@ -331,9 +329,6 @@ $labels['subscribed'] = 'Feliratkozás'; $labels['messagecount'] = 'Ãœzenet'; $labels['create'] = 'Létrehozás'; $labels['createfolder'] = 'Új mappa létrehozása'; -$labels['rename'] = 'Ãtnevezés'; -$labels['renamefolder'] = 'Mappa átnevezése'; -$labels['deletefolder'] = 'Mappa törlése'; $labels['managefolders'] = 'Mappák kezelése'; $labels['specialfolders'] = 'Különleges mappák'; $labels['sortby'] = 'Rendezés'; diff --git a/program/localization/hu_HU/messages.inc b/program/localization/hu_HU/messages.inc index 3f5d7de5b..c820bc28d 100644 --- a/program/localization/hu_HU/messages.inc +++ b/program/localization/hu_HU/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = 'Biztos, hogy törölni szeretné a kijelöl $messages['deletemessagesconfirm'] = 'Biztos, hogy törölni szeretné a kijelölt üzenete(ke)t?'; $messages['deletefolderconfirm'] = 'Biztos, hogy törölni szeretné ezt a mappát?'; $messages['purgefolderconfirm'] = 'Biztos benne, hogy az összes üzenet törölhetÅ‘?'; -$messages['foldercreating'] = 'Mappa létrehozása...'; $messages['folderdeleting'] = 'Mappa törlése...'; -$messages['folderrenaming'] = 'Mappa átnevezése...'; $messages['foldermoving'] = 'Mappa mozgatása...'; $messages['formincomplete'] = 'Az űrlap hiányosan lett kitöltve'; $messages['noemailwarning'] = 'Adjon meg egy valós e-mail cÃmet'; @@ -94,7 +92,6 @@ $messages['copyingmessage'] = 'Ãœzenet másolása...'; $messages['receiptsent'] = 'Az olvasási visszaigazolás el lett küldve'; $messages['errorsendingreceipt'] = 'Az olvasási visszaigazolást nem sikerült elküldeni'; $messages['nodeletelastidentity'] = 'Nem törölheti ezt az azonosÃtót, ez az egyetlen'; -$messages['addsubfolderhint'] = 'Az új könyvtár az aktuálisan kiválasztott alkönyvtáraként lesz létrehozva'; $messages['forbiddencharacter'] = 'A mappa neve tiltott karaktert tartalmaz'; $messages['selectimportfile'] = 'Kérjük válassza ki a feltölteni kÃvánt fájlt'; $messages['addresswriterror'] = 'A kiválasztott cÃmjegyzék nem Ãrható'; diff --git a/program/localization/hy_AM/labels.inc b/program/localization/hy_AM/labels.inc index 7081d44e8..5809c13f2 100644 --- a/program/localization/hy_AM/labels.inc +++ b/program/localization/hy_AM/labels.inc @@ -249,9 +249,6 @@ $labels['subscribed'] = 'Ô²Õ¡ÕªÕ¡Õ¶Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¾Õ¡Õ®'; $labels['messagecount'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€'; $labels['create'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬'; $labels['createfolder'] = 'Ô²Õ¡ÖÕ¥Õ¬ Õ¶Õ¸Ö€ Õ¤Õ¡Ö€Õ¡Õ¯'; -$labels['rename'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬'; -$labels['renamefolder'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬ Õ¤Õ¡Ö€Õ¡Õ¯Õ¨'; -$labels['deletefolder'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ¤Õ¡Ö€Õ¡Õ¯Õ¨'; $labels['managefolders'] = 'Ô¿Õ¡Ö€Õ£Õ¡Õ¾Õ¸Ö€Õ¥Õ¬ Õ¤Õ¡Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨'; $labels['specialfolders'] = 'Õ€Õ¡Õ¿Õ¸Ö‚Õ¯ Õ¤Õ¡Ö€Õ¡Õ¯Õ¶Õ¥Ö€'; $labels['sortby'] = 'Ô´Õ¡Õ½Õ¡Õ¾Õ¸Ö€Õ¥Õ¬'; diff --git a/program/localization/hy_AM/messages.inc b/program/localization/hy_AM/messages.inc index cd8aab234..5313ba112 100644 --- a/program/localization/hy_AM/messages.inc +++ b/program/localization/hy_AM/messages.inc @@ -48,9 +48,7 @@ $messages['deletecontactconfirm'] = 'ÕˆÖ‚Õ¦Õ¸Ö‚ÕžÕ´ Õ§Ö„ Õ»Õ¶Õ»Õ¥Õ¬ Õ¶Õ·Õ¾Õ¡Õ® Õ $messages['deletemessagesconfirm'] = 'ÕˆÖ‚Õ¦Õ¸Ö‚ÕžÕ´ Õ§Ö„ Õ»Õ¶Õ»Õ¥Õ¬ Õ¶Õ·Õ¾Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨'; $messages['deletefolderconfirm'] = 'ÕˆÖ‚Õ¦Õ¸Ö‚ÕžÕ´ Õ§Ö„ Õ»Õ¶Õ»Õ¥Õ¬ Õ¡ÕµÕ½ Õ¤Õ¡Ö€Õ¡Õ¯Õ¨'; $messages['purgefolderconfirm'] = 'ÕˆÖ‚Õ¦Õ¸Ö‚ÕžÕ´ Õ§Ö„ Õ»Õ¶Õ»Õ¥Õ¬ Õ¡ÕµÕ½ Õ¤Õ¡Ö€Õ¡Õ¯Õ« Õ¢Õ¸Õ¬Õ¸Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨'; -$messages['foldercreating'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¨ Õ½Õ¿Õ¥Õ²Õ®Õ¾Õ¸Ö‚Õ´ է…'; $messages['folderdeleting'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¨ Õ»Õ¶Õ»Õ¾Õ¸Ö‚Õ´ է…'; -$messages['folderrenaming'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¨ Õ¾Õ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¾Õ¸Ö‚Õ´ է…'; $messages['foldermoving'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¨ Õ¿Õ¥Õ²Õ¡ÖƒÕ¸ÕÕ¾Õ¸Ö‚Õ´ է…'; $messages['formincomplete'] = 'ÕÖ‡Õ¨ Õ©Õ¥Ö€Õ« Õ§ Õ¬Ö€Õ¡ÖÕ¾Õ¡Õ®'; $messages['noemailwarning'] = 'Õ„Õ¸Ö‚Õ¿Ö„Õ¡Õ£Ö€Õ¥Ö„ Õ³Õ«Õ·Õ¿ Õ§Õ¬. Õ°Õ¡Õ½ÖÕ¥'; @@ -83,7 +81,6 @@ $messages['movingmessage'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ¨ Õ¿Õ¥Õ²Õ¡ÖƒÕ¸ÕÕ¾Õ¸Ö‚Õ´ է…'; $messages['receiptsent'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€Õ¶ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ® Õ§'; $messages['errorsendingreceipt'] = 'Ô¾Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Ö€Õ« Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¸Ö‚Õ´Õ¨ Õ±Õ¡ÕÕ¸Õ²Õ¾Õ¥Ö'; $messages['nodeletelastidentity'] = 'Ô±Õ¶Õ°Õ¶Õ¡Ö€ Õ§ Õ»Õ¶Õ»Õ¥Õ¬ Õ¾Õ¥Ö€Õ»Õ«Õ¶ Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯Õ¨'; -$messages['addsubfolderhint'] = 'Ô±ÕµÕ½ Õ¤Õ¡Ö€Õ¡Õ¯Õ¨ Õ¯Õ½Õ¿Õ¥Õ²Õ®Õ¾Õ« Õ¸Ö€ÕºÕ¥Õ½ Õ¶Õ·Õ¾Õ¡Õ®Õ« Õ¥Õ¶Õ©Õ¡Õ¤Õ¡Ö€Õ¡Õ¯'; $messages['forbiddencharacter'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ« Õ¡Õ¶Õ¸Ö‚Õ¶Õ¨ ÕºÕ¡Ö€Õ¸Ö‚Õ¶Õ¡Õ¯Õ¸Ö‚Õ´ Õ§ Õ¡Õ¶Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« Õ¶Õ·Õ¡Õ¶'; $messages['selectimportfile'] = 'Ô¸Õ¶Õ¿Ö€Õ¥Ö„ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¸Õ² Ö†Õ¡ÕµÕ¬Õ¨'; $messages['addresswriterror'] = 'Ô¸Õ¶Õ¿Ö€Õ¾Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Õ«Ö€Ö„Õ¨ Õ¥Õ¶Õ©Õ¡Õ¯Õ¡ Õ¹Õ§ ÖƒÕ¸ÖƒÕ¸ÕÕ´Õ¡Õ¶'; diff --git a/program/localization/id_ID/labels.inc b/program/localization/id_ID/labels.inc index 854712d1f..80a351adf 100644 --- a/program/localization/id_ID/labels.inc +++ b/program/localization/id_ID/labels.inc @@ -10,7 +10,7 @@ | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ -| Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> | +| Author: Putu Arya Sabda Wijaya <ptaryasw@isi-dps.ac.id> | +-----------------------------------------------------------------------+ @version $Id$ @@ -38,11 +38,15 @@ $labels['to'] = 'Penerima'; $labels['cc'] = 'Lampiran'; $labels['bcc'] = 'Lampiran tersembunyi'; $labels['replyto'] = 'Balas kepada'; +$labels['followupto'] = 'Surat Tindak Lanjut Untuk'; $labels['date'] = 'Tanggal'; $labels['size'] = 'Ukuran'; $labels['priority'] = 'Prioritas'; $labels['organization'] = 'Organisasi'; +$labels['readstatus'] = 'Status Terbaca'; $labels['reply-to'] = 'Balas kepada'; +$labels['mail-reply-to'] = 'Surat Balasan Untuk'; +$labels['mail-followup-to'] = 'Surat Tindak Lanjut Untuk'; $labels['mailboxlist'] = 'Map'; $labels['messagesfromto'] = 'Pesan ke $from sampai $to dari $count'; $labels['threadsfromto'] = 'Untaian ke $from sampai $to dari $count'; @@ -97,6 +101,8 @@ $labels['checkmail'] = 'Periksa pesan baru'; $labels['writenewmessage'] = 'Buat pesan baru'; $labels['replytomessage'] = 'Balas pesan'; $labels['replytoallmessage'] = 'Balas ke pengirim dan yang lain'; +$labels['replyall'] = 'Balas ke semua'; +$labels['replylist'] = 'Balas ke milis'; $labels['forwardmessage'] = 'Teruskan pesan'; $labels['deletemessage'] = 'Hapus pesan'; $labels['movemessagetotrash'] = 'Pindahkan pesan ke tong sampah'; @@ -168,7 +174,9 @@ $labels['sendmessage'] = 'Kirim pesan sekarang'; $labels['addattachment'] = 'Sisipkan sebuah berkas'; $labels['charset'] = 'Set karakter'; $labels['editortype'] = 'Tipe penyunting'; -$labels['returnreceipt'] = 'Kembalikan penerima'; +$labels['returnreceipt'] = 'Tanda terima kembali'; +$labels['dsn'] = 'Pemberitahuan status terkirim'; +$labels['editidents'] = 'Ubah identitas'; $labels['checkspelling'] = 'Pemeriksaan ejaan'; $labels['resumeediting'] = 'Lanjutkan menyunting'; $labels['revertto'] = 'Balikkan ke'; @@ -192,6 +200,7 @@ $labels['maxuploadsize'] = 'Ukuran file maksimal adalah $size'; $labels['addcc'] = 'Tambah Cc'; $labels['addbcc'] = 'Tambah Bcc'; $labels['addreplyto'] = 'Tambah Balas Ke'; +$labels['addfollowupto'] = 'Tambahkan Tindak-Lanjut-Ke'; $labels['mdnrequest'] = 'Pengirim pesan ini telah meminta untuk diberitahu ketika Anda membaca pesan ini. Apakah anda ingin memberitahu pengirim?'; $labels['receiptread'] = 'Tanda Terima (baca)'; $labels['yourmessage'] = 'Ini adalah Tanda Terima untuk pesan Anda'; @@ -203,6 +212,7 @@ $labels['email'] = 'E-Mail'; $labels['addcontact'] = 'Tambah kontak baru'; $labels['editcontact'] = 'Ubah kontak'; $labels['contacts'] = 'Daftar kontak'; +$labels['contactproperties'] = 'Properti kontak'; $labels['edit'] = 'Ubah'; $labels['cancel'] = 'Batal'; $labels['save'] = 'Simpan'; @@ -250,6 +260,7 @@ $labels['pagesize'] = 'Baris per halaman'; $labels['signature'] = 'Tanda tangan'; $labels['dstactive'] = 'Waktu Musim Panas'; $labels['htmleditor'] = 'Tulis pesan HTML'; +$labels['htmlonreply'] = 'balasan untuk pesan HTML saja'; $labels['htmlsignature'] = 'Tandatangan HTML'; $labels['previewpane'] = 'Perlihatkan tempat melihat'; $labels['skin'] = 'Tampilan antarmuka'; @@ -258,9 +269,11 @@ $labels['logoutcompact'] = 'Mampatkan Kotak Masuk saat keluar'; $labels['uisettings'] = 'Antarmuka pengguna'; $labels['serversettings'] = 'Pengaturan Server'; $labels['mailboxview'] = 'Tampilan Kotak Surat'; -$labels['mdnrequests'] = 'Pemberitahuan pada pengirim'; +$labels['mdnrequests'] = 'Sedang dimintakan tanda terima kembali'; $labels['askuser'] = 'tanya pengguna'; $labels['autosend'] = 'kirim otomatis'; +$labels['autosendknown'] = 'kirim tanda terima kepada kontak saya, selain itu tanyai saya'; +$labels['autosendknownignore'] = 'kirim tanda terima kepada kontak saya, selain acuhkan'; $labels['ignore'] = 'acuhkan'; $labels['readwhendeleted'] = 'Tandai pesan sebagai terbaca saat dihapus'; $labels['flagfordeletion'] = 'Tandai pesan untuk penghapusan daripada dihapus'; @@ -305,6 +318,9 @@ $labels['abovequote'] = 'Diatas kutipan'; $labels['insertsignature'] = 'Isi tanda tangan'; $labels['previewpanemarkread'] = 'Tandai pesan yang sudah dilihat '; $labels['afternseconds'] = 'setelah $n detik'; +$labels['reqmdn'] = 'Selalu meminta tanda terima kembali'; +$labels['reqdsn'] = 'Selalu meminta pemberitahuan status terkirim'; +$labels['replysamefolder'] = 'Taruh balasan di folder yang sama dengan pesan yang dibalas'; $labels['folder'] = 'Map'; $labels['folders'] = 'Map-map'; $labels['foldername'] = 'Nama map'; @@ -312,9 +328,6 @@ $labels['subscribed'] = 'Subscribed'; $labels['messagecount'] = 'Pesan-pesan'; $labels['create'] = 'Buat'; $labels['createfolder'] = 'Buat map baru'; -$labels['rename'] = 'Namai ulang'; -$labels['renamefolder'] = 'Namai ulang map'; -$labels['deletefolder'] = 'Hapus map'; $labels['managefolders'] = 'Atur map'; $labels['specialfolders'] = 'Map Khusus'; $labels['sortby'] = 'Urut berdasarkan'; diff --git a/program/localization/id_ID/messages.inc b/program/localization/id_ID/messages.inc index f0b49e4d6..39502492c 100644 --- a/program/localization/id_ID/messages.inc +++ b/program/localization/id_ID/messages.inc @@ -10,7 +10,7 @@ | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ -| Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> | +| Author: Putu Arya Sabda Wijaya <ptaryasw@isi-dps.ac.id> | +-----------------------------------------------------------------------+ @version $Id$ @@ -23,6 +23,7 @@ $messages['cookiesdisabled'] = 'Browser Anda tidak menerima cookies'; $messages['sessionerror'] = 'Session Anda invalid atau kadaluwarsa'; $messages['imaperror'] = 'Koneksi ke IMAP server gagal'; $messages['servererror'] = 'Server Error!'; +$messages['servererrormsg'] = 'Server Error: $msg'; $messages['invalidrequest'] = 'Permintaan tidak valid! Tidak ada data yang tersimpan.'; $messages['nomessagesfound'] = 'Surat tidak ditemukan di kotak masuk ini'; $messages['loggedout'] = 'Anda berhasil mengakhiri session. Selamat Tinggal!'; @@ -34,7 +35,7 @@ $messages['checkingmail'] = 'Memeriksa pesan baru...'; $messages['sendingmessage'] = 'Mengirim pesan...'; $messages['messagesent'] = 'Pesan terkirim'; $messages['savingmessage'] = 'Menyimpan pesan...'; -$messages['messagesaved'] = 'MMenyimpan pesan ke daftar tunggu'; +$messages['messagesaved'] = 'Menyimpan pesan ke daftar tunggu'; $messages['successfullysaved'] = 'Berhasil disimpan'; $messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat'; $messages['contactexists'] = 'Kontak dengan alamat e-mail ini sudah ada'; @@ -54,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Apakah anda yakin untuk menghapus kontak te $messages['deletemessagesconfirm'] = 'Yakin menghapus pesan terpilih?'; $messages['deletefolderconfirm'] = 'Apakah anda benar-benar ingin menghapus map ini?'; $messages['purgefolderconfirm'] = 'Yakin menghapus semua pesan pada map ini?'; -$messages['foldercreating'] = 'Membuat map...'; $messages['folderdeleting'] = 'Menghapus map...'; -$messages['folderrenaming'] = 'Mengubah nama map...'; $messages['foldermoving'] = 'Memindahkan map...'; $messages['formincomplete'] = 'Isian tidak terisi semua'; $messages['noemailwarning'] = 'Tolong masukkan alamat email yang valid'; @@ -88,10 +87,11 @@ $messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca'; $messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak'; $messages['movingmessage'] = 'Memindahkan pesan...'; $messages['copyingmessage'] = 'Menyalin pesan...'; +$messages['deletingmessage'] = 'Menghapus pesan...'; +$messages['markingmessage'] = 'Menandai Pesan...'; $messages['receiptsent'] = 'Berhasil mengirim pemberitahuan tanda terima telah terbaca'; $messages['errorsendingreceipt'] = 'Tidak dapat mengirim tanda terima'; $messages['nodeletelastidentity'] = 'Anda tidak bida mengapus identitas ini, ini identitas yang terakhir'; -$messages['addsubfolderhint'] = 'Folder ini akan dibuat sebagai subfolder pada folder yang terpilih'; $messages['forbiddencharacter'] = 'Nama folder mengandung karakter terlarang'; $messages['selectimportfile'] = 'Mohon pilih sebuah berkas untuk diunggah'; $messages['addresswriterror'] = 'Buku alamat terpilih tidak dapat ditulisi'; @@ -109,10 +109,21 @@ $messages['smtpautherror'] = 'SMTP Error ($code): Otentifikasi gagal'; $messages['smtpfromerror'] = 'SMTP Error ($code): Gagal mengatur pengirim "$from" ($msg)'; $messages['smtptoerror'] = 'SMTP Error ($code): Gagal menambah penerima "$to" ($msg)'; $messages['smtprecipientserror'] = 'SMTP Error ($code): Tidak dapat menguraikan daftar penerima'; +$messages['smtpdsnerror'] = 'SMTP Error: Tidak ada dukungan untuk pemberitahuan status terkirim'; $messages['smtperror'] = 'SMTP Error : $msg'; $messages['emailformaterror'] = 'Alamat e-mail salah: $email'; $messages['toomanyrecipients'] = 'Terlalu banyak penerima. Batas maksimal penerima adalah $max'; $messages['maxgroupmembersreached'] = 'Jumlah grup melebihi jumlah maksimum $max'; $messages['internalerror'] = 'Terjadi kesalahan internal. Silahkan diulang kembali'; +$messages['contactdelerror'] = 'Kontak tidak bisa dihapus'; +$messages['contactdeleted'] = 'Kontak berhasil dihapus'; +$messages['groupdeleted'] = 'Grup berhasil dihapus'; +$messages['grouprenamed'] = 'Grup berhasil dinamai kembali'; +$messages['groupcreated'] = 'Grub berhasil dibuat'; +$messages['messagedeleted'] = 'Pesan berhasil dihapus'; +$messages['messagemoved'] = 'Pesan berhasil dipindahkan'; +$messages['messagecopied'] = 'Pesan berhasil disalin'; +$messages['messagemarked'] = 'Pesan berhasil ditandai'; +$messages['autocompletechars'] = 'Masukkan setidaknya $min karakter untuk swaparipurna'; ?> diff --git a/program/localization/is_IS/labels.inc b/program/localization/is_IS/labels.inc index f21a3b5cc..edb0ce348 100644 --- a/program/localization/is_IS/labels.inc +++ b/program/localization/is_IS/labels.inc @@ -250,9 +250,6 @@ $labels['subscribed'] = 'Valin'; $labels['messagecount'] = 'Skeyti'; $labels['create'] = 'Búa til'; $labels['createfolder'] = 'Búa til nýja möppu'; -$labels['rename'] = 'Endurnefna'; -$labels['renamefolder'] = 'Breyta nafni möppu'; -$labels['deletefolder'] = 'Eyða möppu'; $labels['managefolders'] = 'Sýsla með möppum'; $labels['specialfolders'] = 'Sérstakar möppur'; $labels['sortby'] = 'Raða eftir'; diff --git a/program/localization/it_IT/labels.inc b/program/localization/it_IT/labels.inc index 5f6cc8505..327791c82 100644 --- a/program/localization/it_IT/labels.inc +++ b/program/localization/it_IT/labels.inc @@ -39,15 +39,14 @@ $labels['to'] = 'Destinatario'; $labels['cc'] = 'Cc'; $labels['bcc'] = 'Bcn'; $labels['replyto'] = 'Rispondi a'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Data'; $labels['size'] = 'Dimensione'; $labels['priority'] = 'Priorità '; $labels['organization'] = 'Società '; $labels['reply-to'] = 'Rispondi a'; -$labels['mailreply-to'] = 'Mail-Reply-To'; -$labels['mailfollowup-to'] = 'Mail-Followup-To'; +$labels['mail-reply-to'] = 'Mail-Reply-To'; +$labels['mail-followup-to'] = 'Mail-Followup-To'; $labels['mailboxlist'] = 'Cartelle'; $labels['messagesfromto'] = 'Messaggi da $from a $to di $count'; $labels['threadsfromto'] = 'Thread da $from a $to di $count'; @@ -201,8 +200,7 @@ $labels['maxuploadsize'] = 'La dimensione massima consentita è $size'; $labels['addcc'] = 'Aggiungi Cc'; $labels['addbcc'] = 'Aggiungi Bcc'; $labels['addreplyto'] = 'Aggiungi Rispondi a'; -$labels['addmailreplyto'] = 'Aggiungi Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Aggiungi Mail-Followup-To'; +$labels['addfollowupto'] = 'Aggiungi Followup-To'; $labels['mdnrequest'] = 'Il mittente ha richiesto di ricevere una notifica dell\'avvenuta lettura del messaggio. Si desidera inviare tale notifica?'; $labels['receiptread'] = 'Ricevuta di ritorno (letto)'; $labels['yourmessage'] = 'Questa è la ricevuta di ritorno del messaggio inviato'; @@ -328,9 +326,6 @@ $labels['subscribed'] = 'Sottoscritta'; $labels['messagecount'] = 'Messaggi'; $labels['create'] = 'Crea'; $labels['createfolder'] = 'Crea nuova cartella'; -$labels['rename'] = 'Rinomina'; -$labels['renamefolder'] = 'Rinomina cartella'; -$labels['deletefolder'] = 'Cancella cartella'; $labels['managefolders'] = 'Gestione cartelle'; $labels['specialfolders'] = 'Cartelle Speciali'; $labels['sortby'] = 'Ordina per'; diff --git a/program/localization/it_IT/messages.inc b/program/localization/it_IT/messages.inc index 1a0c9db76..665a9e5ba 100644 --- a/program/localization/it_IT/messages.inc +++ b/program/localization/it_IT/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Sei sicuro di voler eliminare i contatti se $messages['deletemessagesconfirm'] = 'Sei sicuro di voler eliminare i messaggi selezionati?'; $messages['deletefolderconfirm'] = 'Sei sicuro di voler eliminare la cartella selezionata?'; $messages['purgefolderconfirm'] = 'Sei sicuro di voler eliminare tutti i messaggi in questa cartella?'; -$messages['foldercreating'] = 'Creazione cartella...'; $messages['folderdeleting'] = 'Eliminazione cartella...'; -$messages['folderrenaming'] = 'Rinominazione cartella...'; $messages['foldermoving'] = 'Spostamento cartella...'; $messages['formincomplete'] = 'Per favore, compila tutti i campi'; $messages['noemailwarning'] = 'Per favore, immetti un indirizzo e-mail valido'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Copia del messaggio'; $messages['receiptsent'] = 'Ricevuta di ritorno inviata con successo'; $messages['errorsendingreceipt'] = 'Impossibile spedire la ricevuta di ritorno'; $messages['nodeletelastidentity'] = 'Impossibile eliminare l\'unica identità disponibile'; -$messages['addsubfolderhint'] = 'La cartella verrà creata come sotto cartella della cartella corrente'; $messages['forbiddencharacter'] = 'Il nome della cartella contiene un carattere vietato'; $messages['selectimportfile'] = 'Per favore, seleziona il file da caricare'; $messages['addresswriterror'] = 'La rubrica selezionata non è scrivibile'; diff --git a/program/localization/ja_JP/labels.inc b/program/localization/ja_JP/labels.inc index c8ff8ac1b..317ba6ea2 100644 --- a/program/localization/ja_JP/labels.inc +++ b/program/localization/ja_JP/labels.inc @@ -16,68 +16,51 @@ @version $Id$ -EN-Revision: 4184 +EN-Revision: 3891 */ $labels = array(); - -// login page $labels['welcome'] = 'よã†ã“ã $product ã¸'; $labels['username'] = 'ユーザーå'; $labels['password'] = 'パスワード'; $labels['server'] = 'サーãƒãƒ¼'; $labels['login'] = 'ãƒã‚°ã‚¤ãƒ³'; - -// taskbar $labels['logout'] = 'ãƒã‚°ã‚¢ã‚¦ãƒˆ'; $labels['mail'] = 'é›»åメール'; $labels['settings'] = '個人è¨å®š'; $labels['addressbook'] = 'アドレス帳'; - -// mailbox names $labels['inbox'] = 'å—信トレイ'; $labels['drafts'] = '下書ã'; $labels['sent'] = 'é€ä¿¡æ¸ˆã¿ã‚¢ã‚¤ãƒ†ãƒ '; $labels['trash'] = 'ã”ã¿ç®±'; $labels['junk'] = '迷惑メール'; - -// message listing $labels['subject'] = '件å'; $labels['from'] = '差出人'; $labels['to'] = '宛先'; $labels['cc'] = 'コピー'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Reply-To (返信先)'; -$labels['mailreplyto'] = 'Mail-Reply-To (ML 投稿者)'; -$labels['mailfollowupto'] = 'Mail-Followup-To (ML ã®å®›å…ˆ)'; +$labels['followupto'] = 'Followup-To ( ã®å®›å…ˆ)'; $labels['date'] = '日付'; -$labels['size'] = '容é‡'; +$labels['size'] = 'サイズ'; $labels['priority'] = '優先度'; $labels['organization'] = '所属'; -$labels['readstatus'] = '閲覧ã®çŠ¶æ…‹'; - -// aliases -$labels['reply-to'] = $labels['replyto']; -$labels['mail-reply-to'] = $labels['mailreplyto']; -$labels['mail-followup-to'] = $labels['mailfollowupto']; - -$labels['mailboxlist'] = 'フォルダー一覧'; +$labels['readstatus'] = '閲覧状æ³'; +$labels['reply-to'] = '返信先'; +$labels['mail-reply-to'] = 'Mail-Reply-To (ML 投稿者)'; +$labels['mail-followup-to'] = 'Mail-Followup-To (ML ã®å®›å…ˆ)'; +$labels['mailboxlist'] = 'フォルダ一覧'; $labels['messagesfromto'] = '表示ä¸ã®ãƒ¡ãƒ¼ãƒ«: $from ~ $to (å…¨: $count 件)'; $labels['threadsfromto'] = '表示ä¸ã®ã‚¹ãƒ¬ãƒƒãƒ‰: $from ~ $to (å…¨: $count 件)'; $labels['messagenrof'] = 'ç¾åœ¨ã®ãƒ¡ãƒ¼ãƒ«: $nr (å…¨: $count 件)'; - -$labels['copy'] = 'コピー'; -$labels['move'] = '移動'; -$labels['moveto'] = 'フォルダーã®ç§»å‹•'; +$labels['copy'] = 'コピー'; +$labels['move'] = '移動'; +$labels['moveto'] = 'フォルダã®ç§»å‹•'; $labels['download'] = 'ダウンãƒãƒ¼ãƒ‰'; - $labels['filename'] = 'ファイルå'; $labels['filesize'] = 'ファイル サイズ'; - $labels['addtoaddressbook'] = 'アドレス帳ã«è¿½åŠ '; - -// weekdays short $labels['sun'] = 'æ—¥'; $labels['mon'] = '月'; $labels['tue'] = 'ç«'; @@ -85,74 +68,64 @@ $labels['wed'] = 'æ°´'; $labels['thu'] = '木'; $labels['fri'] = '金'; $labels['sat'] = '土'; - -// weekdays long -$labels['sunday'] = '日曜日'; -$labels['monday'] = '月曜日'; -$labels['tuesday'] = 'ç«æ›œæ—¥'; +$labels['sunday'] = '日曜日'; +$labels['monday'] = '月曜日'; +$labels['tuesday'] = 'ç«æ›œæ—¥'; $labels['wednesday'] = '水曜日'; -$labels['thursday'] = '木曜日'; -$labels['friday'] = '金曜日'; -$labels['saturday'] = '土曜日'; - -// months short -$labels['jan'] = '1 月'; -$labels['feb'] = '2 月'; -$labels['mar'] = '3 月'; -$labels['apr'] = '4 月'; -$labels['may'] = '5 月'; -$labels['jun'] = '6 月'; -$labels['jul'] = '7 月'; -$labels['aug'] = '8 月'; -$labels['sep'] = '9 月'; -$labels['oct'] = '10 月'; -$labels['nov'] = '11 月'; -$labels['dec'] = '12 月'; - -// months long -$labels['longjan'] = '1 月'; -$labels['longfeb'] = '2 月'; -$labels['longmar'] = '3 月'; -$labels['longapr'] = '4 月'; -$labels['longmay'] = '5 月'; -$labels['longjun'] = '6 月'; -$labels['longjul'] = '7 月'; -$labels['longaug'] = '8 月'; -$labels['longsep'] = '9 月'; -$labels['longoct'] = '10 月'; -$labels['longnov'] = '11 月'; -$labels['longdec'] = '12 月'; - +$labels['thursday'] = '木曜日'; +$labels['friday'] = '金曜日'; +$labels['saturday'] = '土曜日'; +$labels['jan'] = '1 月'; +$labels['feb'] = '2 月'; +$labels['mar'] = '3 月'; +$labels['apr'] = '4 月'; +$labels['may'] = '5 月'; +$labels['jun'] = '6 月'; +$labels['jul'] = '7 月'; +$labels['aug'] = '8 月'; +$labels['sep'] = '9 月'; +$labels['oct'] = '10 月'; +$labels['nov'] = '11 月'; +$labels['dec'] = '12 月'; +$labels['longjan'] = '1 月'; +$labels['longfeb'] = '2 月'; +$labels['longmar'] = '3 月'; +$labels['longapr'] = '4 月'; +$labels['longmay'] = '5 月'; +$labels['longjun'] = '6 月'; +$labels['longjul'] = '7 月'; +$labels['longaug'] = '8 月'; +$labels['longsep'] = '9 月'; +$labels['longoct'] = '10 月'; +$labels['longnov'] = '11 月'; +$labels['longdec'] = '12 月'; $labels['today'] = '今日'; - -// toolbar buttons -$labels['checkmail'] = 'æ–°ç€ã®ç¢ºèª'; -$labels['writenewmessage'] = 'æ–°è¦ãƒ¡ãƒ¼ãƒ«ã®ä½œæˆ'; -$labels['replytomessage'] = '返信'; +$labels['checkmail'] = 'æ–°ç€ã®ç¢ºèª'; +$labels['writenewmessage'] = 'æ–°è¦ãƒ¡ãƒ¼ãƒ«ã®ä½œæˆ'; +$labels['replytomessage'] = '返信'; $labels['replytoallmessage'] = '差出人ã¨ã™ã¹ã¦ã®å®›å…ˆã«è¿”ä¿¡'; -$labels['replyall'] = '全員ã«è¿”ä¿¡'; -$labels['replylist'] = 'ML ã«è¿”ä¿¡'; -$labels['forwardmessage'] = '転é€'; -$labels['deletemessage'] = '削除'; +$labels['replyall'] = '全員ã«è¿”ä¿¡'; +$labels['replylist'] = 'ML ã«è¿”ä¿¡'; +$labels['forwardmessage'] = '転é€'; +$labels['deletemessage'] = '削除'; $labels['movemessagetotrash'] = 'ã”ã¿ç®±ã«ç§»å‹•'; -$labels['printmessage'] = 'å°åˆ·'; -$labels['previousmessage'] = 'å‰ã®ãƒ¡ãƒ¼ãƒ«ã¸'; +$labels['printmessage'] = 'å°åˆ·'; +$labels['previousmessage'] = 'å‰ã®ãƒ¡ãƒ¼ãƒ«ã¸'; $labels['previousmessages'] = 'å‰ã®ä¸€è¦§ã¸'; -$labels['firstmessage'] = '最åˆã®ãƒ¡ãƒ¼ãƒ«ã¸'; -$labels['firstmessages'] = '最åˆã®ä¸€è¦§ã¸'; -$labels['nextmessage'] = '次ã®ãƒ¡ãƒ¼ãƒ«ã¸'; -$labels['nextmessages'] = '次ã®ä¸€è¦§ã¸'; -$labels['lastmessage'] = '最後ã®ãƒ¡ãƒ¼ãƒ«ã¸'; -$labels['lastmessages'] = '最後ã®ä¸€è¦§ã¸'; -$labels['backtolist'] = '一覧ã«æˆ»ã‚‹'; -$labels['viewsource'] = 'ソースã®è¡¨ç¤º'; -$labels['markmessages'] = 'マークを付ã‘ã‚‹'; -$labels['markread'] = 'æ—¢èªã«ã™ã‚‹'; -$labels['markunread'] = '未èªã«ã™ã‚‹'; -$labels['markflagged'] = 'フラグを付ã‘ã‚‹'; -$labels['markunflagged'] = 'フラグを外ã™'; +$labels['firstmessage'] = '最åˆã®ãƒ¡ãƒ¼ãƒ«ã¸'; +$labels['firstmessages'] = '最åˆã®ä¸€è¦§ã¸'; +$labels['nextmessage'] = '次ã®ãƒ¡ãƒ¼ãƒ«ã¸'; +$labels['nextmessages'] = '次ã®ä¸€è¦§ã¸'; +$labels['lastmessage'] = '最後ã®ãƒ¡ãƒ¼ãƒ«ã¸'; +$labels['lastmessages'] = '最後ã®ä¸€è¦§ã¸'; +$labels['backtolist'] = '一覧ã«æˆ»ã‚‹'; +$labels['viewsource'] = 'ソースã®è¡¨ç¤º'; +$labels['markmessages'] = 'マークを付ã‘ã‚‹'; +$labels['markread'] = 'æ—¢èªã«ã™ã‚‹'; +$labels['markunread'] = '未èªã«ã™ã‚‹'; +$labels['markflagged'] = 'フラグを付ã‘ã‚‹'; +$labels['markunflagged'] = 'フラグを外ã™'; $labels['messageactions'] = 'ãã®ä»–ã®æ“作...'; - $labels['select'] = 'é¸æŠž'; $labels['all'] = 'ã™ã¹ã¦'; $labels['none'] = 'ãªã—'; @@ -163,14 +136,12 @@ $labels['unanswered'] = '未返信'; $labels['deleted'] = '削除済ã¿'; $labels['invert'] = 'å転'; $labels['filter'] = 'フィルター'; - $labels['list'] = '一覧'; $labels['threads'] = 'スレッド'; $labels['expand-all'] = 'ã™ã¹ã¦å±•é–‹'; $labels['expand-unread'] = '未開å°ã®ãƒ¡ãƒ¼ãƒ«ã‚’展開'; $labels['collapse-all'] = 'ã™ã¹ã¦æŠ˜ã‚ŠãŸãŸã‚€'; $labels['threaded'] = 'スレッドã«ã™ã‚‹'; - $labels['autoexpand_threads'] = 'スレッドã®å±•é–‹'; $labels['do_expand'] = 'ã™ã¹ã¦ã®ã‚¹ãƒ¬ãƒƒãƒ‰'; $labels['expand_only_unread'] = '未開å°ã®ãƒ¡ãƒ¼ãƒ«ã®ã¿'; @@ -186,89 +157,69 @@ $labels['listcolumns'] = '列ã®ä¸€è¦§'; $labels['listsorting'] = '整列基準'; $labels['listorder'] = 'æ•´åˆ—é †'; $labels['listmode'] = '一覧表示モード'; - -$labels['folderactions'] = 'フォルダーã®æ“作...'; +$labels['folderactions'] = 'フォルダã®æ“作...'; $labels['compact'] = 'コンパクト'; $labels['empty'] = '空'; $labels['purge'] = 'ã”ã¿ç®±ã‚’空ã«ã™ã‚‹'; - $labels['quota'] = 'ディスク使用é‡'; -$labels['unknown'] = 'ä¸æ˜Ž'; -$labels['unlimited'] = '無制é™'; - +$labels['unknown'] = 'ä¸æ˜Ž'; +$labels['unlimited'] = '無制é™'; $labels['quicksearch'] = '検索'; $labels['resetsearch'] = '検索解除'; -$labels['searchmod'] = '検索æ¡ä»¶'; -$labels['msgtext'] = 'ã™ã¹ã¦ã®ãƒ¡ãƒ¼ãƒ«'; - +$labels['searchmod'] = '検索æ¡ä»¶'; +$labels['msgtext'] = 'ã™ã¹ã¦ã®ãƒ¡ãƒ¼ãƒ«'; $labels['openinextwin'] = 'æ–°ã—ã„ウィンドウã§é–‹ã'; $labels['emlsave'] = 'eml å½¢å¼ã§ä¿å˜ã™ã‚‹'; - -// message compose -$labels['compose'] = 'メールã®ä½œæˆ'; -$labels['editasnew'] = 'æ–°è¦ã¨ã—ã¦ç·¨é›†'; -$labels['savemessage'] = '下書ãã«ä¿å˜'; -$labels['sendmessage'] = '今ã™ãé€ä¿¡'; -$labels['addattachment'] = 'ファイルã®æ·»ä»˜'; -$labels['charset'] = 'æ–‡å—エンコード'; -$labels['editortype'] = 'エディターã®ç¨®é¡ž'; -$labels['returnreceipt'] = 'é–‹å°ç¢ºèª'; -$labels['dsn'] = 'é…é€çŠ¶æ³ã®é€šçŸ¥'; - -$labels['editidents'] = 'å€‹äººæƒ…å ±ã®ç·¨é›†'; +$labels['compose'] = 'メールã®ä½œæˆ'; +$labels['editasnew'] = 'æ–°è¦ã¨ã—ã¦ç·¨é›†'; +$labels['savemessage'] = '下書ãã«ä¿å˜'; +$labels['sendmessage'] = '今ã™ãé€ä¿¡'; +$labels['addattachment'] = 'ファイルã®æ·»ä»˜'; +$labels['charset'] = 'æ–‡å—エンコード'; +$labels['editortype'] = 'エディターã®ç¨®é¡ž'; +$labels['returnreceipt'] = 'é–‹å°ç¢ºèª'; +$labels['dsn'] = 'é…é€çŠ¶æ³é€šçŸ¥'; +$labels['editidents'] = 'å€‹äººæƒ…å ±ã®ç·¨é›†'; $labels['checkspelling'] = 'スペル ãƒã‚§ãƒƒã‚¯'; $labels['resumeediting'] = 'メール作æˆã«æˆ»ã‚‹'; -$labels['revertto'] = 'å…ƒã«æˆ»ã™'; - +$labels['revertto'] = 'å…ƒã«æˆ»ã™'; $labels['attachments'] = '添付ファイル'; $labels['upload'] = 'アップãƒãƒ¼ãƒ‰'; -$labels['close'] = 'é–‰ã˜ã‚‹'; +$labels['close'] = 'é–‰ã˜ã‚‹'; $labels['messageoptions'] = 'メッセージã®ã‚ªãƒ—ション...'; - -$labels['low'] = '低ã„'; -$labels['lowest'] = '最低'; -$labels['normal'] = '通常'; -$labels['high'] = '高ã„'; +$labels['low'] = '低ã„'; +$labels['lowest'] = '最低'; +$labels['normal'] = '通常'; +$labels['high'] = '高ã„'; $labels['highest'] = '最高'; - $labels['nosubject'] = '(件åãªã—)'; $labels['showimages'] = 'ç”»åƒã®è¡¨ç¤º'; $labels['alwaysshow'] = '$sender ã‹ã‚‰å±Šã„ãŸç”»åƒã¯å¸¸ã«è¡¨ç¤º'; - $labels['htmltoggle'] = 'HTML'; $labels['plaintoggle'] = 'テã‚スト'; $labels['savesentmessagein'] = 'é€ä¿¡æ¸ˆã¿ãƒ¡ãƒ¼ãƒ«ã®ä¿å˜å…ˆ'; $labels['dontsave'] = 'ä¿å˜ã—ãªã„'; $labels['maxuploadsize'] = '添付å¯èƒ½ãªãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚µã‚¤ã‚ºã¯æœ€å¤§ $size ã§ã™ã€‚'; - $labels['addcc'] = 'Cc è¿½åŠ '; $labels['addbcc'] = 'Bcc è¿½åŠ '; $labels['addreplyto'] = 'Reply-To è¿½åŠ '; -$labels['addmailreplyto'] = 'Mail-Reply-To è¿½åŠ '; -$labels['addmailfollowupto'] = 'Mail-Followup-To è¿½åŠ '; - -// mdn +$labels['addfollowupto'] = 'Followup-To è¿½åŠ '; $labels['mdnrequest'] = 'メールã®å·®å‡ºäººã¯é–‹å°ç¢ºèªã®é€ä»˜ã‚’求ã‚ã¦ã„ã¾ã™ã€‚é–‹å°ç¢ºèªã®ãƒ¡ãƒ¼ãƒ«ã‚’é€ä»˜ã—ã¾ã™ã‹?'; $labels['receiptread'] = 'é–‹å°ç¢ºèª (表示済ã¿)'; $labels['yourmessage'] = 'ã“ã‚Œã¯ã‚ãªãŸãŒé€ä¿¡ã—ãŸãƒ¡ãƒ¼ãƒ«ã«å¯¾ã™ã‚‹é–‹å°ç¢ºèªã§ã™ã€‚'; $labels['receiptnote'] = '注æ„: ã“ã®é–‹å°ç¢ºèªã¯ãƒ¡ãƒ¼ãƒ«ãŒå—信者ã«è¡¨ç¤ºã•ã‚ŒãŸã“ã¨ã®é€šçŸ¥ã§ã™ã€‚å—信者ãŒãƒ¡ãƒ¼ãƒ«ã‚’èªã‚“ã ã“ã¨ã€å†…容をç†è§£ã—ãŸã“ã¨ã‚’ä¿è¨¼ã™ã‚‹ã‚‚ã®ã§ã¯ã‚ã‚Šã¾ã›ã‚“。'; - -// address boook $labels['name'] = '表示å'; $labels['firstname'] = 'å (ファースト ãƒãƒ¼ãƒ )'; $labels['surname'] = '姓 (ラスト ãƒãƒ¼ãƒ )'; $labels['email'] = 'メールアドレス'; - $labels['addcontact'] = '連絡先ã®æ–°è¦è¿½åŠ '; $labels['editcontact'] = '連絡先ã®ç·¨é›†'; $labels['contacts'] = '連絡先'; $labels['contactproperties'] = '連絡先ã®ãƒ—ãƒãƒ‘ティ'; - $labels['edit'] = '編集'; $labels['cancel'] = 'ã‚ャンセル'; $labels['save'] = 'ä¿å˜'; $labels['delete'] = '削除'; - $labels['newcontact'] = '連絡先ã®æ–°è¦ä½œæˆ'; $labels['deletecontact'] = '連絡先ã®å‰Šé™¤'; $labels['composeto'] = 'ã“ã®é€£çµ¡å…ˆã¸ãƒ¡ãƒ¼ãƒ«ã®é€ä¿¡'; @@ -278,37 +229,28 @@ $labels['export'] = 'エクスãƒãƒ¼ãƒˆ'; $labels['exportvcards'] = 'vCard å½¢å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ'; $labels['newcontactgroup'] = '連絡先グループã®æ–°è¦ä½œæˆ'; $labels['groupactions'] = '連絡先グループã®æ“作...'; - $labels['previouspage'] = 'å‰ã®ä¸€è¦§ã¸'; $labels['firstpage'] = '最åˆã®ä¸€è¦§ã¸'; $labels['nextpage'] = '次ã®ä¸€è¦§ã¸'; $labels['lastpage'] = '最後ã®ä¸€è¦§ã¸'; - $labels['group'] = 'グループ'; $labels['groups'] = 'グループ'; $labels['personaladrbook'] = '個人アドレス'; - $labels['import'] = 'インãƒãƒ¼ãƒˆ'; $labels['importcontacts'] = '連絡先ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ'; $labels['importfromfile'] = 'インãƒãƒ¼ãƒˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«:'; $labels['importreplace'] = 'ç¾åœ¨ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã¨ç½®ãæ›ãˆã‚‹'; $labels['importtext'] = 'æ—¢å˜ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã®é€£çµ¡å…ˆã‚’アップãƒãƒ¼ãƒ‰ã§ãã¾ã™ã€‚ç¾åœ¨ã€<a href="http://ja.wikipedia.org/wiki/VCard">vCard</a> å½¢å¼ã‹ã‚‰ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚'; $labels['done'] = '完了'; - -// settings $labels['settingsfor'] = '次ã®è¨å®š:'; - $labels['preferences'] = 'è¨å®š'; $labels['userpreferences'] = 'ユーザーè¨å®š'; $labels['editpreferences'] = 'ユーザーè¨å®šã®å¤‰æ›´'; - $labels['identities'] = 'å€‹äººæƒ…å ±'; $labels['manageidentities'] = 'アカウントã®å€‹äººæƒ…å ±ç®¡ç†'; $labels['newidentity'] = 'å€‹äººæƒ…å ±ã®æ–°è¦ä½œæˆ'; - $labels['newitem'] = 'æ–°ã—ã„é …ç›®'; $labels['edititem'] = 'é …ç›®ã®ç·¨é›†'; - $labels['preferhtml'] = 'HTML を表示ã™ã‚‹'; $labels['defaultcharset'] = '標準ã®æ–‡å—セット'; $labels['htmlmessage'] = 'HTML メール'; @@ -320,19 +262,19 @@ $labels['timezone'] = 'タイムゾーン'; $labels['pagesize'] = '1 ページã®è¡¨ç¤ºä»¶æ•°'; $labels['signature'] = 'ç½²å'; $labels['dstactive'] = 'サマータイムをé©ç”¨ã™ã‚‹'; -$labels['htmleditor'] = 'æ–°è¦ãƒ¡ãƒ¼ãƒ«ã§ã¯ HTML を標準ã«ã™ã‚‹'; -$labels['htmlonreply'] = 'メールã®è¿”信時ã¯å¸¸ã« HTML を使用ã™ã‚‹'; +$labels['htmleditor'] = 'æ–°è¦ãƒ¡ãƒ¼ãƒ«ã¯ HTML を標準ã«ã™ã‚‹'; +$labels['htmlonreply'] = '返信メールã§ã¯å¸¸ã« HTML を使用'; $labels['htmlsignature'] = 'ç½²åã« HTML タグを使用ã™ã‚‹'; $labels['previewpane'] = 'プレビュー ペインを表示ã™ã‚‹'; $labels['skin'] = 'スã‚ン'; $labels['logoutclear'] = 'ãƒã‚°ã‚¢ã‚¦ãƒˆæ™‚ã«ã”ã¿ç®±ã‚’空ã«ã™ã‚‹'; -$labels['logoutcompact'] = 'ãƒã‚°ã‚¢ã‚¦ãƒˆæ™‚ã«ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã®ã‚³ãƒ³ãƒ‘クト化を実行ã™ã‚‹'; +$labels['logoutcompact'] = 'ãƒã‚°ã‚¢ã‚¦ãƒˆæ™‚ã«ãƒ•ã‚©ãƒ«ãƒ€ã®ã‚³ãƒ³ãƒ‘クト化を実行ã™ã‚‹'; $labels['uisettings'] = 'ユーザー インターフェース'; $labels['serversettings'] = 'サーãƒãƒ¼ã®è¨å®š'; $labels['mailboxview'] = 'å—ä¿¡ç®±'; -$labels['mdnrequests'] = 'é–‹å°ç¢ºèªã®é€ä¿¡è¦æ±‚時'; -$labels['askuser'] = 'é–‹å°ç¢ºèªãƒ¡ãƒ¼ãƒ«ã®é€ä¿¡ã‚’確èªã™ã‚‹'; -$labels['autosend'] = 'é–‹å°ç¢ºèªãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã™ã‚‹'; +$labels['mdnrequests'] = '差出人ã¸ã®é€šçŸ¥'; +$labels['askuser'] = 'ユーザーã«ç¢ºèª'; +$labels['autosend'] = '自動的ã«é€ä¿¡'; $labels['autosendknown'] = '差出人ãŒé€£çµ¡å…ˆã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚Œã°é–‹å°ç¢ºèªã‚’é€ä¿¡ã—ã€ãれ以外ã¯å•ã„åˆã‚ã›ã‚‹'; $labels['autosendknownignore'] = '差出人ãŒé€£çµ¡å…ˆã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚Œã°é–‹å°ç¢ºèªã‚’é€ä¿¡ã—ã€ãれ以外ã¯ç„¡è¦–ã™ã‚‹'; $labels['ignore'] = '無視'; @@ -358,7 +300,7 @@ $labels['2047folding'] = 'RFC 2047 æº–æ‹ (ä»–ã®ãƒ¡ãƒ¼ãƒ©ãƒ¼)'; $labels['force7bit'] = 'マルãƒãƒã‚¤ãƒˆæ–‡å—列を MIME エンコードã™ã‚‹'; $labels['advancedoptions'] = '高度ãªè¨å®š'; $labels['focusonnewmessage'] = 'æ–°ç€ãƒ¡ãƒ¼ãƒ«ãŒå±Šã„ãŸã‚‰ãƒ–ラウザーをアクティブã«ã™ã‚‹'; -$labels['checkallfolders'] = 'ã™ã¹ã¦ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã§æ–°ç€ãƒ¡ãƒ¼ãƒ«ã‚’表示ã™ã‚‹'; +$labels['checkallfolders'] = 'ã™ã¹ã¦ã®ãƒ•ã‚©ãƒ«ãƒ€ã§æ–°ç€ãƒ¡ãƒ¼ãƒ«ã‚’表示ã™ã‚‹'; $labels['displaynext'] = 'メールã®å‰Šé™¤ã‚„移動後ã«æ¬¡ã®ãƒ¡ãƒ¼ãƒ«ã‚’表示ã™ã‚‹'; $labels['mainoptions'] = '基本è¨å®š'; $labels['section'] = 'è¨å®šé …ç›®'; @@ -370,7 +312,7 @@ $labels['whenreplying'] = '返信時ã®æœ¬æ–‡'; $labels['replytopposting'] = 'å…ƒã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸å¼•ç”¨éƒ¨ã®å‰ã«æœ¬æ–‡ã‚’作æˆã™ã‚‹'; $labels['replybottomposting'] = 'å…ƒã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸å¼•ç”¨éƒ¨ã®å¾Œã«æœ¬æ–‡ã‚’作æˆã™ã‚‹'; $labels['replyremovesignature'] = '返信時ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‹ã‚‰ã‚ªãƒªã‚¸ãƒŠãƒ«ã®ç½²åを除去ã™ã‚‹'; -$labels['autoaddsignature'] = '自動的ã«ç½²åã‚’ä»˜åŠ ã™ã‚‹'; +$labels['autoaddsignature'] = 'ç½²åを自動的ã«ä»˜åŠ ã™ã‚‹'; $labels['newmessageonly'] = 'æ–°è¦ä½œæˆæ™‚ã®ã¿'; $labels['replyandforwardonly'] = '返信・転é€æ™‚ã®ã¿'; $labels['replysignaturepos'] = '返信・転é€æ™‚ã«ç½²åを挿入ã™ã‚‹ä½ç½®'; @@ -379,34 +321,32 @@ $labels['abovequote'] = '引用部ã®å‰'; $labels['insertsignature'] = 'ç½²åã®æŒ¿å…¥'; $labels['previewpanemarkread'] = 'é–‹å°æ¸ˆã¿ã«ã™ã‚‹'; $labels['afternseconds'] = '$n 秒後'; -$labels['reqmdn'] = '常ã«é–‹å°ç¢ºèªé€šçŸ¥ã‚’è¦æ±‚ã™ã‚‹'; -$labels['reqdsn'] = '常ã«é…é€çŠ¶æ³ã®é€šçŸ¥ã‚’è¦æ±‚ã™ã‚‹'; -$labels['replysamefolder'] = '返信ã•ã‚ŒãŸãƒ¡ãƒ¼ãƒ«ã‚’返信元メールã¨åŒã˜ãƒ•ã‚©ãƒ«ãƒ€ã«ä¿å˜'; - -$labels['folder'] = 'フォルダー'; -$labels['folders'] = 'フォルダー一覧'; -$labels['foldername'] = 'フォルダーå'; +$labels['reqmdn'] = '常ã«é–‹å°ç¢ºèªã‚’è¦æ±‚'; +$labels['reqdsn'] = '常ã«é…é€çŠ¶æ³é€šçŸ¥ã‚’è¦æ±‚'; +$labels['replysamefolder'] = '返信ã•ã‚Œã¦ããŸãƒ¡ãƒ¼ãƒ«ã‚’返信元メールã¨åŒã˜ãƒ•ã‚©ãƒ«ãƒ€ã«ä¿å˜'; +$labels['folder'] = 'フォルダ'; +$labels['folders'] = 'フォルダ一覧'; +$labels['foldername'] = 'フォルダå'; $labels['subscribed'] = 'è³¼èªæ¸ˆ'; $labels['messagecount'] = 'メール'; -$labels['create'] = '作æˆ'; -$labels['createfolder'] = 'フォルダーã®æ–°è¦ä½œæˆ'; -$labels['rename'] = 'åå‰ã®å¤‰æ›´'; -$labels['renamefolder'] = 'フォルダーåã®å¤‰æ›´'; -$labels['deletefolder'] = 'フォルダーã®å‰Šé™¤'; -$labels['managefolders'] = 'フォルダーã®ç®¡ç†'; -$labels['specialfolders'] = '特殊ãªãƒ•ã‚©ãƒ«ãƒ€ãƒ¼'; - +$labels['create'] = '作æˆ'; +$labels['createfolder'] = 'フォルダã®æ–°è¦ä½œæˆ'; +$labels['managefolders'] = 'フォルダã®ç®¡ç†'; +$labels['specialfolders'] = '特殊ãªãƒ•ã‚©ãƒ«ãƒ€'; +$labels['properties'] = 'プãƒãƒ‘ティ'; +$labels['folderproperties'] = 'フォルダã®ãƒ—ãƒãƒ‘ティ'; +$labels['parentfolder'] = '親フォルダ'; +$labels['location'] = 'フォルダパス'; +$labels['info'] = 'ãƒ•ã‚©ãƒ«ãƒ€æƒ…å ±'; +$labels['getfoldersize'] = 'クリックã§ãƒ•ã‚©ãƒ«ãƒ€ã‚µã‚¤ã‚ºã‚’表示'; +$labels['changesubscription'] = 'クリックã§åŒæœŸè¨å®šã‚’変更'; $labels['sortby'] = '並ã³æ›¿ãˆã®åŸºæº–'; $labels['sortasc'] = 'æ˜‡é †ã§ä¸¦ã³æ›¿ãˆ'; $labels['sortdesc'] = 'é™é †ã§ä¸¦ã³æ›¿ãˆ'; - -// units $labels['B'] = 'ãƒã‚¤ãƒˆ'; $labels['KB'] = 'KB'; $labels['MB'] = 'MB'; $labels['GB'] = 'GB'; - -// character sets $labels['unicode'] = 'Unicode'; $labels['english'] = '英語'; $labels['westerneuropean'] = '西ヨーãƒãƒƒãƒ‘言語'; diff --git a/program/localization/ja_JP/messages.inc b/program/localization/ja_JP/messages.inc index b1b88b0c4..3c3e7bdad 100644 --- a/program/localization/ja_JP/messages.inc +++ b/program/localization/ja_JP/messages.inc @@ -26,7 +26,7 @@ $messages['cookiesdisabled'] = 'ブラウザ㧠Cookie ãŒç„¡åŠ¹ã«è¨å®šã•ã‚Œã $messages['sessionerror'] = 'セッションãŒæ£ã—ããªã„ã‹æœŸé™åˆ‡ã‚Œã§ã™ã€‚'; $messages['imaperror'] = 'IMAP サーãƒãƒ¼ã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚'; $messages['servererror'] = 'サーãƒãƒ¼ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚'; -$messages['servererrormsg'] = 'サーãƒãƒ¼ エラー: $msg'; +$messages['servererrormsg'] = 'サーãƒãƒ¼ã‚¨ãƒ©ãƒ¼: $msg'; $messages['invalidrequest'] = 'ä¸æ£ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã™ã€‚データã¯ä¿å˜ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚'; $messages['nomessagesfound'] = 'メールã¯ã‚ã‚Šã¾ã›ã‚“。'; $messages['loggedout'] = 'ãƒã‚°ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸã€‚'; @@ -53,15 +53,15 @@ $messages['errorsaving'] = 'ä¿å˜ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚'; $messages['errormoving'] = 'メールを移動ã§ãã¾ã›ã‚“。'; $messages['errorcopying'] = 'メールをコピーã§ãã¾ã›ã‚“。'; $messages['errordeleting'] = 'メールを削除ã§ãã¾ã›ã‚“。'; -$messages['errormarking'] = 'メールã®ãƒžãƒ¼ã‚¯ã‚’è¨å®šã§ãã¾ã›ã‚“。'; +$messages['errormarking'] = 'メールã«ãƒžãƒ¼ã‚¯ã‚’付ã‘られã¾ã›ã‚“。'; $messages['deletecontactconfirm'] = 'é¸æŠžã—ãŸé€£çµ¡å…ˆã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; $messages['deletemessagesconfirm'] = 'é¸æŠžã—ãŸãƒ¡ãƒ¼ãƒ«ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; -$messages['deletefolderconfirm'] = 'ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; -$messages['purgefolderconfirm'] = 'ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã®å…¨ãƒ¡ãƒ¼ãƒ«ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; -$messages['foldercreating'] = 'フォルダーを作æˆã—ã¦ã„ã¾ã™...'; -$messages['folderdeleting'] = 'フォルダーを削除ã—ã¦ã„ã¾ã™...'; -$messages['folderrenaming'] = 'フォルダーåを変更ã—ã¦ã„ã¾ã™...'; -$messages['foldermoving'] = 'フォルダーを移動ã—ã¦ã„ã¾ã™...'; +$messages['deletefolderconfirm'] = 'ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; +$messages['purgefolderconfirm'] = 'ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ã®å…¨ãƒ¡ãƒ¼ãƒ«ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?'; +$messages['folderdeleting'] = 'フォルダを削除ã—ã¦ã„ã¾ã™...'; +$messages['foldermoving'] = 'フォルダを移動ã—ã¦ã„ã¾ã™...'; +$messages['foldersubscribing'] = 'フォルダã®åŒæœŸã‚’登録ã—ã¦ã„ã¾ã™...'; +$messages['folderunsubscribing'] = 'フォルダã®åŒæœŸã‚’解除ã—ã¦ã„ã¾ã™...'; $messages['formincomplete'] = 'ã™ã¹ã¦ã®ãƒ•ã‚©ãƒ¼ãƒ ã®é …目を入力ã—ã¦ã„ã¾ã›ã‚“。'; $messages['noemailwarning'] = '有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。'; $messages['nonamewarning'] = 'åå‰ã‚’入力ã—ã¦ãã ã•ã„。'; @@ -80,7 +80,10 @@ $messages['searchnomatch'] = '一致ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“。'; $messages['searching'] = '検索ã—ã¦ã„ã¾ã™...'; $messages['checking'] = '確èªã—ã¦ã„ã¾ã™...'; $messages['nospellerrors'] = 'スペル ミスã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚'; -$messages['folderdeleted'] = 'フォルダーを削除ã—ã¾ã—ãŸã€‚'; +$messages['folderdeleted'] = 'フォルダを削除ã—ã¾ã—ãŸã€‚'; +$messages['foldersubscribed'] = 'フォルダã®åŒæœŸãŒè¨å®šã•ã‚Œã¾ã—ãŸã€‚'; +$messages['folderunsubscribed'] = 'フォルダã®åŒæœŸãŒè§£é™¤ã•ã‚Œã¾ã—ãŸã€‚'; +$messages['folderpurged'] = 'フォルダを削除ã—ã¾ã—ãŸã€‚'; $messages['deletedsuccessfully'] = '削除ã—ã¾ã—ãŸã€‚'; $messages['converting'] = 'メールã‹ã‚‰æ›¸å¼ã‚’削除ã—ã¦ã„ã¾ã™...'; $messages['messageopenerror'] = 'サーãƒãƒ¼ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’å–å¾—ã§ãã¾ã›ã‚“。'; @@ -93,12 +96,11 @@ $messages['errorsavingcontact'] = '連絡先ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ä¿å˜ã§ãã¾ã› $messages['movingmessage'] = 'メールを移動ã—ã¦ã„ã¾ã™...'; $messages['copyingmessage'] = 'メールをコピーã—ã¦ã„ã¾ã™...'; $messages['deletingmessage'] = 'メールを削除ã—ã¦ã„ã¾ã™...'; -$messages['markingmessage'] = 'メールã®ãƒžãƒ¼ã‚¯ã‚’è¨å®šã—ã¦ã„ã¾ã™...'; +$messages['markingmessage'] = 'メールã«ãƒžãƒ¼ã‚¯ã‚’付ã‘ã¦ã„ã¾ã™...'; $messages['receiptsent'] = 'é–‹å°ç¢ºèªã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚'; $messages['errorsendingreceipt'] = 'é–‹å°ç¢ºèªã‚’é€ä¿¡ã§ãã¾ã›ã‚“。'; $messages['nodeletelastidentity'] = '削除ã§ãã¾ã›ã‚“。少ãªãã¨ã‚‚ 1 ã¤ã®å€‹äººæƒ…å ±ãŒå¿…è¦ã§ã™ã€‚'; -$messages['addsubfolderhint'] = 'ç¾åœ¨é¸æŠžã—ã¦ã„るフォルダーã®ã‚µãƒ– フォルダーã¨ã—ã¦ä½œæˆã•ã‚Œã¾ã™ã€‚'; -$messages['forbiddencharacter'] = 'フォルダーåã«åˆ©ç”¨ã§ããªã„æ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚'; +$messages['forbiddencharacter'] = 'フォルダåã«åˆ©ç”¨ã§ããªã„æ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚'; $messages['selectimportfile'] = 'アップãƒãƒ¼ãƒ‰ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„。'; $messages['addresswriterror'] = 'é¸æŠžã—ãŸã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“。'; $messages['contactaddedtogroup'] = 'グループã«é€£çµ¡å…ˆã‚’è¿½åŠ ã—ã¾ã—ãŸã€‚'; @@ -110,26 +112,30 @@ $messages['opnotpermitted'] = '許å¯ã•ã‚Œã¦ã„ãªã„æ“作ã§ã™ã€‚'; $messages['nofromaddress'] = 'é¸æŠžä¸ã®å€‹äººæƒ…å ±ã«ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。'; $messages['editorwarning'] = 'テã‚スト エディターã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã¨ã™ã¹ã¦ã®æ›¸å¼ãŒå¤±ã‚ã‚Œã¾ã™ã€‚よã‚ã—ã„ã§ã™ã‹?'; $messages['httpreceivedencrypterror'] = '致命的ãªè¨å®šã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚<b>メッセージã¯é€ä¿¡ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚</b>システム管ç†è€…ã«è‡³æ€¥é€£çµ¡ã—ã¦ãã ã•ã„。'; -$messages['smtpconnerror'] = 'SMTP Error ($code): サーãƒãƒ¼ã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚'; -$messages['smtpautherror'] = 'SMTP Error ($code): èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚'; +$messages['smtpconnerror'] = 'SMTP Error ($code): サーãƒãƒ¼ã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸ'; +$messages['smtpautherror'] = 'SMTP Error ($code): èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ'; $messages['smtpfromerror'] = 'SMTP Error ($code): 差出人 "$from" ã‚’è¨å®šã§ãã¾ã›ã‚“ ($msg)'; $messages['smtptoerror'] = 'SMTP Error ($code): 宛先 "$to" ã‚’è¿½åŠ ã§ãã¾ã›ã‚“ ($msg)'; -$messages['smtprecipientserror'] = 'SMTP Error: 宛先ã®ä¸€è¦§ã‚’解æžã§ãã¾ã›ã‚“。'; -$messages['smtpdsnerror'] = 'SMTP エラー: é…é€çŠ¶æ³é€šçŸ¥ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。'; -$messages['smtperror'] = 'SMTP エラー: $msg'; +$messages['smtprecipientserror'] = 'SMTP Error: 宛先ã®ãƒªã‚¹ãƒˆã‚’解æžã§ãã¾ã›ã‚“'; +$messages['smtpdsnerror'] = 'SMTP Error: é…é€çŠ¶æ³é€šçŸ¥ (DSN) ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“'; +$messages['smtperror'] = 'SMTP Error: $msg'; $messages['emailformaterror'] = 'メールアドレスãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: $email'; $messages['toomanyrecipients'] = '宛先ãŒå¤šã™ãŽã¾ã™ã€‚$max 件以内ã«ã—ã¦ãã ã•ã„。'; $messages['maxgroupmembersreached'] = 'グループã®ãƒ¡ãƒ³ãƒãƒ¼ãŒå¤šã™ãŽã¾ã™ã€‚$max 件以内ã«ã—ã¦ãã ã•ã„。'; $messages['internalerror'] = '内部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã‚‚ã†ä¸€åº¦ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。'; -$messages['contactdelerror'] = '連絡先を削除ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; +$messages['contactdelerror'] = '連絡先を削除ã§ãã¾ã›ã‚“。'; $messages['contactdeleted'] = '連絡先を削除ã—ã¾ã—ãŸã€‚'; $messages['groupdeleted'] = 'グループを削除ã—ã¾ã—ãŸã€‚'; -$messages['grouprenamed'] = 'グループåを変更ã—ã¾ã—ãŸï¼Ž'; +$messages['grouprenamed'] = 'グループåを変更ã—ã¾ã—ãŸã€‚'; $messages['groupcreated'] = 'グループを作æˆã—ã¾ã—ãŸã€‚'; $messages['messagedeleted'] = 'メールを削除ã—ã¾ã—ãŸã€‚'; $messages['messagemoved'] = 'メールを移動ã—ã¾ã—ãŸã€‚'; $messages['messagecopied'] = 'メールをコピーã—ã¾ã—ãŸã€‚'; -$messages['messagemarked'] = 'メールã®ãƒžãƒ¼ã‚¯ã‚’è¨å®šã—ã¾ã—ãŸã€‚'; +$messages['messagemarked'] = 'メールã«ãƒžãƒ¼ã‚¯ã‚’付ã‘ã¾ã—ãŸã€‚'; $messages['autocompletechars'] = '自動補完ã«ã¯å°‘ãªãã¨ã‚‚ $min æ–‡å—入力ã—ã¦ãã ã•ã„。'; +$messages['namecannotbeempty'] = 'åå‰ãŒå…¥åŠ›ã•ã‚Œã¦ã„ã¾ã›ã‚“。'; +$messages['nametoolong'] = 'åå‰ãŒé•·ã™ãŽã¾ã™ã€‚'; +$messages['folderupdated'] = 'フォルダを更新ã—ã¾ã—ãŸã€‚'; +$messages['foldercreated'] = 'フォルダを作æˆã—ã¾ã—ãŸã€‚'; ?> diff --git a/program/localization/ka_GE/labels.inc b/program/localization/ka_GE/labels.inc index 8234318c9..7a56fc41b 100755 --- a/program/localization/ka_GE/labels.inc +++ b/program/localization/ka_GE/labels.inc @@ -274,9 +274,6 @@ $labels['subscribed'] = 'გáƒáƒ›áƒáƒ¬áƒ”რილიáƒ'; $labels['messagecount'] = 'შეტყáƒáƒ‘ინებები'; $labels['create'] = 'შექმნáƒ'; $labels['createfolder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის შექმნáƒ'; -$labels['rename'] = 'სáƒáƒ®áƒ”ლის გáƒáƒ“áƒáƒ ქმევáƒ'; -$labels['renamefolder'] = 'სáƒáƒ®áƒ”ლის გáƒáƒ“áƒáƒ ქმევრსáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ისთვის'; -$labels['deletefolder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ'; $labels['managefolders'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეების მáƒáƒ თვáƒ'; $labels['specialfolders'] = 'სპეციáƒáƒšáƒ£áƒ ი სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე'; $labels['sortby'] = 'დáƒáƒšáƒáƒ’ებáƒ'; diff --git a/program/localization/ka_GE/messages.inc b/program/localization/ka_GE/messages.inc index 33767dded..6e526b768 100755 --- a/program/localization/ka_GE/messages.inc +++ b/program/localization/ka_GE/messages.inc @@ -52,9 +52,7 @@ $messages['deletecontactconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ $messages['deletemessagesconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ შეტყáƒáƒ‘ინებების წáƒáƒ¨áƒšáƒ?'; $messages['deletefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ áƒáƒ› სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ?'; $messages['purgefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ ყველრშეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ£áƒš სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში?'; -$messages['foldercreating'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის შექმნáƒ...'; $messages['folderdeleting'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ...'; -$messages['folderrenaming'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის სáƒáƒ®áƒ”ლის შეცვლáƒ...'; $messages['foldermoving'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...'; $messages['formincomplete'] = 'ყველრველი áƒáƒ áƒáƒ ის შევსებული'; $messages['noemailwarning'] = 'მიუთითეთ სწáƒáƒ ი ელ–ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ თი'; @@ -88,7 +86,6 @@ $messages['movingmessage'] = 'შეტყáƒáƒ‘ინების გáƒáƒ“áƒá $messages['receiptsent'] = 'წáƒáƒ მáƒáƒ¢áƒ”ბით გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ'; $messages['errorsendingreceipt'] = 'áƒáƒ გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ'; $messages['nodeletelastidentity'] = 'წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, ის თქვენთვის ერთáƒáƒ“ერთიáƒ'; -$messages['addsubfolderhint'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე შეიქმნებრრáƒáƒ’áƒáƒ ც ქვესáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒš სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში'; $messages['forbiddencharacter'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის სáƒáƒ®áƒ”ლი შეიცáƒáƒ•áƒ¡ áƒáƒ™áƒ ძáƒáƒšáƒ£áƒš სიმბáƒáƒšáƒáƒ”ბს'; $messages['selectimportfile'] = 'გთხáƒáƒ•áƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒáƒ— ფáƒáƒ˜áƒšáƒ˜ áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ თáƒáƒ“'; $messages['addresswriterror'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒš მისáƒáƒ›áƒáƒ თებში ჩáƒáƒ¬áƒ”რრშეუძლებელიáƒ'; diff --git a/program/localization/kh_KH/labels.inc b/program/localization/kh_KH/labels.inc index 7782b285e..75799a292 100644 --- a/program/localization/kh_KH/labels.inc +++ b/program/localization/kh_KH/labels.inc @@ -312,9 +312,6 @@ $labels['subscribed'] = 'ភ្ជាប់ជាប្រចាំ'; $labels['messagecount'] = 'សារ'; $labels['create'] = 'បង្កើáž'; $labels['createfolder'] = 'បង្កើហFolder ážáŸ’មី'; -$labels['rename'] = 'ប្ážáž¼ážˆáŸ’មោះ'; -$labels['renamefolder'] = 'ប្ážáž¼ážˆáŸ’មោះážáž'; -$labels['deletefolder'] = 'លុបážáž'; $labels['managefolders'] = 'រៀបចំážáž'; $labels['specialfolders'] = 'ážážáž–ិសáŸážŸ'; $labels['sortby'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜'; diff --git a/program/localization/kh_KH/messages.inc b/program/localization/kh_KH/messages.inc index db148d374..9d67d9dc0 100644 --- a/program/localization/kh_KH/messages.inc +++ b/program/localization/kh_KH/messages.inc @@ -54,9 +54,7 @@ $messages['deletecontactconfirm'] = 'ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់á $messages['deletemessagesconfirm'] = 'ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបសារនáŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?'; $messages['deletefolderconfirm'] = 'ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបážážáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?'; $messages['purgefolderconfirm'] = 'ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបសារទាំងអស់មែនទáŸ?'; -$messages['foldercreating'] = 'កំពុងបង្កើážážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...'; $messages['folderdeleting'] = 'កំពុងលុបážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...'; -$messages['folderrenaming'] = 'កំពុងប្ážáž¼ážšážˆáŸ’មោះážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...'; $messages['foldermoving'] = 'កំពុងផ្ážáŸážšážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...'; $messages['formincomplete'] = 'ទំរង់នáŸáŸ‡áž˜áž·áž“ទាន់ពáŸáž‰áž›áŸáž‰áž“ៅឡើយទáŸ'; $messages['noemailwarning'] = 'សូមវាយបញ្ចូលអ៊ីមែលរបស់អ្នក'; @@ -91,7 +89,6 @@ $messages['copyingmessage'] = 'កំពុងចំលងសារ...'; $messages['receiptsent'] = 'ការបញ្ជូន read receipt បានសំរáŸáž…'; $messages['errorsendingreceipt'] = 'មិនអាចបញ្ជុន receipt áž‘áŸ'; $messages['nodeletelastidentity'] = 'អ្នកមិនអាចលុបអážáŸ’ážážŸáž‰áŸ’ញាណនáŸáŸ‡áž‘០ព្រោះវានៅសល់ចុងក្រោយគáŸ'; -$messages['addsubfolderhint'] = 'Folder áž“áŸáŸ‡áž“ឹងបង្កើážáž‡áž¶ Subfolder នៃ Folder ដែលកំពុងស្ážáž·ážáž“ៅនáŸáŸ‡'; $messages['forbiddencharacter'] = 'ឈ្មោះ Folder áž“áŸáŸ‡áž˜áž¶áž“អក្សរដែលážáŸ’រូវហាមឃាážáŸ‹'; $messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីផ្ញើ'; $messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសáŸážšáž…ូលបានទáŸ'; diff --git a/program/localization/ko_KR/labels.inc b/program/localization/ko_KR/labels.inc index 2d9799824..15bb8e7a3 100644 --- a/program/localization/ko_KR/labels.inc +++ b/program/localization/ko_KR/labels.inc @@ -250,9 +250,6 @@ $labels['subscribed'] = '가입ë¨'; $labels['messagecount'] = '메시지'; $labels['create'] = '만들기'; $labels['createfolder'] = '새 í´ë” 만들기'; -$labels['rename'] = 'ì´ë¦„ 바꾸기'; -$labels['renamefolder'] = 'í´ë” ì´ë¦„ 바꾸기'; -$labels['deletefolder'] = 'í´ë” 지우기'; $labels['managefolders'] = 'í´ë” 관리'; $labels['specialfolders'] = '특수 í´ë”'; $labels['sortby'] = 'ì •ë ¬'; diff --git a/program/localization/ko_KR/messages.inc b/program/localization/ko_KR/messages.inc index ea2b45143..596e2b162 100644 --- a/program/localization/ko_KR/messages.inc +++ b/program/localization/ko_KR/messages.inc @@ -49,9 +49,7 @@ $messages['deletecontactconfirm'] = 'ì •ë§ ì„ íƒí•œ ì—°ë½ì²˜ë“¤ì„ ì‚ì œí•˜ì $messages['deletemessagesconfirm'] = 'ì •ë§ ì„ íƒí•œ ë©”ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?'; $messages['deletefolderconfirm'] = 'ì •ë§ ì´ í´ë”를 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?'; $messages['purgefolderconfirm'] = 'ì •ë§ ì´ í´ë”ì˜ ëª¨ë“ ë©”ì¼ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?'; -$messages['foldercreating'] = 'í´ë” 만드는 중...'; $messages['folderdeleting'] = 'í´ë” 지우는 중...'; -$messages['folderrenaming'] = 'í´ë” ì´ë¦„ 바꾸는 중...'; $messages['foldermoving'] = 'í´ë” 옮기는 중...'; $messages['formincomplete'] = 'ì–‘ì‹ì„ ì™„ì „ížˆ 채우지 않았습니다'; $messages['noemailwarning'] = 'ìœ íš¨í•œ ì´ë©”ì¼ ì£¼ì†Œë¥¼ 넣어주ì‹ì‹œì˜¤'; @@ -84,7 +82,6 @@ $messages['movingmessage'] = '메시지 ì´ë™ 중...'; $messages['receiptsent'] = 'ë©”ì¼ ì½ìŒ 확ì¸ì„ 보냈습니다'; $messages['errorsendingreceipt'] = 'ì½ìŒ 확ì¸ì„ 보낼 수 없습니다'; $messages['nodeletelastidentity'] = 'ì´ ì •ë³´ëŠ” 마지막 ë‚¨ì€ ê²ƒì´ë¯€ë¡œ 지울 수 없습니다'; -$messages['addsubfolderhint'] = 'ì´ í´ë”는 현재 ì„ íƒëœ í´ë”ì˜ ì„œë¸Œ í´ë”ë¡œ 만들어질 것입니다'; $messages['forbiddencharacter'] = 'í´ë” ì´ë¦„ì— ì“¸ 수 없는 문ìžê°€ í¬í•¨ë˜ì–´ 있습니다'; $messages['selectimportfile'] = 'ì—…ë¡œë“œí• íŒŒì¼ì„ ì„ íƒí•˜ì„¸ìš”'; $messages['addresswriterror'] = 'ì„ íƒí•œ 주소ë¡ì€ 쓸 수 없습니다'; diff --git a/program/localization/ku/labels.inc b/program/localization/ku/labels.inc index c1b706862..699e37419 100644 --- a/program/localization/ku/labels.inc +++ b/program/localization/ku/labels.inc @@ -177,9 +177,6 @@ $labels['subscribed'] = 'Ni ÅŸanenav'; $labels['messagecount'] = 'Peyam'; $labels['create'] = 'Biafirîne'; $labels['createfolder'] = 'Peldankeke nû biafirîne'; -$labels['rename'] = 'Nav biguherîne'; -$labels['renamefolder'] = 'Navê peldankê biguherîne'; -$labels['deletefolder'] = 'Peldankê jê bibe'; $labels['managefolders'] = 'Rêveberiya peldankan'; $labels['sortby'] = 'Şêweyê rêzkirinê'; $labels['sortasc'] = 'Wekî zêde dibe'; diff --git a/program/localization/ku/messages.inc b/program/localization/ku/messages.inc index 37029a9e2..d5d2e018a 100644 --- a/program/localization/ku/messages.inc +++ b/program/localization/ku/messages.inc @@ -74,6 +74,5 @@ $messages['movingmessage'] = 'Ciyê peyamê tê guhertin...'; $messages['receiptsent'] = 'Rapora ÅŸandina serkeftî'; $messages['errorsendingreceipt'] = 'Rapor nehat ÅŸandin'; $messages['nodeletelastidentity'] = 'Nikarî vê nasnameyê jê bibî. Ew ya dawî ye.'; -$messages['addsubfolderhint'] = 'Ev peldank wê wekî binepeldanka ya heyî bê afirandin'; ?> diff --git a/program/localization/lt_LT/labels.inc b/program/localization/lt_LT/labels.inc index a72a125b3..392d7b208 100644 --- a/program/localization/lt_LT/labels.inc +++ b/program/localization/lt_LT/labels.inc @@ -39,11 +39,15 @@ $labels['to'] = 'GavÄ—jas'; $labels['cc'] = 'Kopija'; $labels['bcc'] = 'Slaptoji kopija'; $labels['replyto'] = 'AtsakymÄ… gaus'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Data'; $labels['size'] = 'Dydis'; $labels['priority'] = 'Prioritetas'; $labels['organization'] = 'Organizacija'; +$labels['readstatus'] = 'Neskaitytas'; $labels['reply-to'] = 'AtsakymÄ… gaus'; +$labels['mail-reply-to'] = 'Mail-Reply-To'; +$labels['mail-followup-to'] = 'Mail-Followup-To'; $labels['mailboxlist'] = 'Aplankai'; $labels['messagesfromto'] = 'LaiÅ¡kai nuo $from iki $to iÅ¡ $count'; $labels['threadsfromto'] = 'Gijos nuo $from iki $to iÅ¡ $count'; @@ -97,7 +101,9 @@ $labels['today'] = 'Å iandien'; $labels['checkmail'] = 'Tikrinti, ar yra naujų laiÅ¡kų'; $labels['writenewmessage'] = 'RaÅ¡yti naujÄ… laiÅ¡kÄ…'; $labels['replytomessage'] = 'Atsakyti siuntÄ—jui'; -$labels['replytoallmessage'] = 'Atsakyti visiems'; +$labels['replytoallmessage'] = 'Atsakyti el. paÅ¡to grupei arba laiÅ¡ko siuntÄ—jui ir visiems jo gavÄ—jams'; +$labels['replyall'] = 'Atsakyti visiems'; +$labels['replylist'] = 'Atsakyti el. paÅ¡to grupei'; $labels['forwardmessage'] = 'Persiųsti laiÅ¡kÄ…'; $labels['deletemessage'] = 'PaÅ¡alinti laiÅ¡kÄ…'; $labels['movemessagetotrash'] = 'Perkelti laiÅ¡kÄ… į Å¡iukÅ¡linÄ™'; @@ -169,7 +175,8 @@ $labels['sendmessage'] = 'IÅ¡siųsti laiskÄ…'; $labels['addattachment'] = 'PridÄ—ti failÄ…'; $labels['charset'] = 'KoduotÄ—'; $labels['editortype'] = 'LaiÅ¡ko tipas'; -$labels['returnreceipt'] = 'PraÅ¡yti gavimo pažymos'; +$labels['returnreceipt'] = 'PraÅ¡yti pristatymo pažymos'; +$labels['dsn'] = 'LaiÅ¡ko pristatymo pažyma'; $labels['editidents'] = 'Tvarkyti tapatybes'; $labels['checkspelling'] = 'Tikrinti raÅ¡ybÄ…'; $labels['resumeediting'] = 'TÄ™sti redagavimÄ…'; @@ -194,6 +201,7 @@ $labels['maxuploadsize'] = 'Maksimalus leistinas failo dydis yra $size'; $labels['addcc'] = 'PridÄ—ti Cc'; $labels['addbcc'] = 'PridÄ—ti Bcc'; $labels['addreplyto'] = 'PridÄ—ti Reply-To'; +$labels['addfollowupto'] = 'PridÄ—ti Followup-To'; $labels['mdnrequest'] = 'Å io laiÅ¡ko siuntÄ—jas papraÅ¡Ä— patvirtinti, kad jÅ«s jį perskaitÄ—te. Ar iÅ¡siųsti tai patvirtinanÄiÄ… pažymÄ…?'; $labels['receiptread'] = 'Patvirtinimas (laiÅ¡kas perskaitytas)'; $labels['yourmessage'] = 'Tai – pažyma, patvirtinanti, jog buvo perskaitytas JÅ«sų laiÅ¡kas'; @@ -205,6 +213,7 @@ $labels['email'] = 'El. paÅ¡tas'; $labels['addcontact'] = 'PridÄ—ti adresatÄ…'; $labels['editcontact'] = 'Taisyti adresatÄ…'; $labels['contacts'] = 'Adresatai'; +$labels['contactproperties'] = 'Adresato savybÄ—s'; $labels['edit'] = 'Redaguoti'; $labels['cancel'] = 'Atsisakyti'; $labels['save'] = 'Ä®raÅ¡yti'; @@ -252,6 +261,7 @@ $labels['pagesize'] = 'EiluÄių skaiÄius puslapyje'; $labels['signature'] = 'ParaÅ¡as'; $labels['dstactive'] = 'Vasaros laikas skiriasi'; $labels['htmleditor'] = 'LaiÅ¡kus kurti HTML formatu'; +$labels['htmlonreply'] = 'tik atsakymus į HTML formato laiÅ¡kus'; $labels['htmlsignature'] = 'HTML paraÅ¡as'; $labels['previewpane'] = 'Rodyti laiÅ¡ko peržiÅ«ros polangį'; $labels['skin'] = 'Grafinis apvalkalas'; @@ -259,12 +269,13 @@ $labels['logoutclear'] = 'IÅ¡valyti Å iukÅ¡linÄ™ atsijungiant'; $labels['logoutcompact'] = 'Suspausti Gautų laiÅ¡kų aplankÄ… atsijungiant'; $labels['uisettings'] = 'Naudotojo sÄ…saja'; $labels['serversettings'] = 'Serverio nustatymai'; -$labels['mailboxview'] = 'PaÅ¡to dėžutÄ—s rodinys'; -$labels['mdnrequests'] = 'SiuntÄ—jų praÅ¡omos pažymos'; -$labels['askuser'] = 'kaskart klausti'; -$labels['autosend'] = 'siųsti automatiÅ¡kai'; -$labels['autosendknown'] = 'siųsti tik adresų knygoje esantiems adresatams'; -$labels['ignore'] = 'nesiųsti'; +$labels['mailboxview'] = 'PaÅ¡to dėžutÄ—s rodymas'; +$labels['mdnrequests'] = 'Gavus praÅ¡ymÄ… patvirtinti, jog laiÅ¡kas perskaitytas'; +$labels['askuser'] = 'visuomet klausti, ar siųsti patvirtinimÄ…'; +$labels['autosend'] = 'visuomet siųsti patvirtinimÄ… automatiÅ¡kai'; +$labels['autosendknown'] = 'automatiÅ¡kai siųsti patvirtinimÄ… adresų knygoje esantiems adresatams, kitu atveju klausti'; +$labels['autosendknownignore'] = 'automatiÅ¡kai siųsti patvirtinimÄ… adresų knygoje esantiems adresatams, kitu atveju nesiųsti'; +$labels['ignore'] = 'niekada nesiųsti patvirtinimo'; $labels['readwhendeleted'] = 'PažymÄ—ti laiÅ¡kÄ… kaip skaitytÄ… prieÅ¡ Å¡alinant'; $labels['flagfordeletion'] = 'PažymÄ—ti laiÅ¡kÄ… Å¡alinimui užuot Å¡alinus'; $labels['skipdeleted'] = 'Nerodyti paÅ¡alintų laiÅ¡kų'; @@ -308,7 +319,9 @@ $labels['abovequote'] = 'virÅ¡ citatos'; $labels['insertsignature'] = 'PridÄ—ti paraÅ¡Ä…'; $labels['previewpanemarkread'] = 'PeržiÅ«ros polangyje parodytus laiÅ¡kus žymÄ—ti skaitytais'; $labels['afternseconds'] = 'praÄ—jus $n sek.'; -$labels['reqmdn'] = 'Visuomet praÅ¡yti gavimo pažymos'; +$labels['reqmdn'] = 'Visuomet praÅ¡yti patvirtinimo, jog laiÅ¡kas perskaitytas'; +$labels['reqdsn'] = 'Visuomet praÅ¡yti laiÅ¡ko pristatymo pažymos'; +$labels['replysamefolder'] = 'Atsakymus talpinti į tÄ… patį aplankÄ…, kuriame yra pirminis laiÅ¡kas'; $labels['folder'] = 'Aplankas'; $labels['folders'] = 'Aplankai'; $labels['foldername'] = 'Aplanko vardas'; @@ -316,9 +329,6 @@ $labels['subscribed'] = 'Užsakytas'; $labels['messagecount'] = 'LaiÅ¡kai'; $labels['create'] = 'Sukurti'; $labels['createfolder'] = 'Sukurti naujÄ… aplankÄ…'; -$labels['rename'] = 'Pervardinti'; -$labels['renamefolder'] = 'Pervardinti aplankÄ…'; -$labels['deletefolder'] = 'PaÅ¡alinti aplankÄ…'; $labels['managefolders'] = 'Tvarkyti aplankus'; $labels['specialfolders'] = 'Specialieji aplankai'; $labels['sortby'] = 'Rikiuoti pagal'; diff --git a/program/localization/lt_LT/messages.inc b/program/localization/lt_LT/messages.inc index 62d59dec4..f6cdb6247 100644 --- a/program/localization/lt_LT/messages.inc +++ b/program/localization/lt_LT/messages.inc @@ -24,6 +24,7 @@ $messages['cookiesdisabled'] = 'JÅ«sų narÅ¡yklÄ— nepriima slapukų'; $messages['sessionerror'] = 'JÅ«sų sesija negaliojanti'; $messages['imaperror'] = 'Nepavyko prisijungti prie IMAP serverio'; $messages['servererror'] = 'Serverio klaida!'; +$messages['servererrormsg'] = 'Serverio klaida: $msg'; $messages['invalidrequest'] = 'Netinkama užklausa! Duomenys neiÅ¡saugoti.'; $messages['nomessagesfound'] = 'Å ioje paÅ¡to dėžutÄ—je laiÅ¡kų nÄ—ra '; $messages['loggedout'] = 'JÅ«s sÄ—kmingai atsijungÄ—te. Iki kito karto!'; @@ -55,10 +56,10 @@ $messages['deletecontactconfirm'] = 'Ar tikrai paÅ¡alinti pažymÄ—tÄ…(-us) adres $messages['deletemessagesconfirm'] = 'Ar tikrai paÅ¡alinti pažymÄ—tÄ…(-us) laiÅ¡kÄ…(-us)?'; $messages['deletefolderconfirm'] = 'Ar tikrai paÅ¡alinti šį aplankÄ…?'; $messages['purgefolderconfirm'] = 'Ar tikrai paÅ¡alinti visus Å¡iame aplanke esanÄius laiÅ¡kus?'; -$messages['foldercreating'] = 'Aplankas kuriamas…'; $messages['folderdeleting'] = 'Aplankas Å¡alinamas…'; -$messages['folderrenaming'] = 'Aplankas pervardinamas…'; $messages['foldermoving'] = 'Aplankas perkeliamas…'; +$messages['foldersubscribing'] = 'Aplankas prenumeruojamas…'; +$messages['folderunsubscribing'] = 'Atsisakoma aplanko prenumeratos…'; $messages['formincomplete'] = 'Formos laukai nepilnai užpildyti'; $messages['noemailwarning'] = 'PraÅ¡om įvesti teisingÄ… el. paÅ¡to adresÄ…'; $messages['nonamewarning'] = 'PraÅ¡om įvesti vardÄ…'; @@ -78,6 +79,9 @@ $messages['searching'] = 'IeÅ¡koma…'; $messages['checking'] = 'Tikrinama…'; $messages['nospellerrors'] = 'RaÅ¡ybos klaidų nerasta'; $messages['folderdeleted'] = 'Aplankas sÄ—kmingai paÅ¡alintas'; +$messages['foldersubscribed'] = 'Aplankas sÄ—kmingai užprenumeruotas'; +$messages['folderunsubscribed'] = 'Aplanko prenumeratos sÄ—kmingai atsisakyta'; +$messages['folderpurged'] = 'Aplankas sÄ—kmingai iÅ¡tuÅ¡tintas'; $messages['deletedsuccessfully'] = 'SÄ—kmingai paÅ¡alinta'; $messages['converting'] = 'Å alinamas laiÅ¡ko formatavimas…'; $messages['messageopenerror'] = 'Nepavyko įkelti laiÅ¡ko iÅ¡ serverio'; @@ -87,12 +91,13 @@ $messages['copysuccess'] = 'Nukopijuota adresų: $nr'; $messages['copyerror'] = 'Adresų nukopijuoti nepavyko'; $messages['sourceisreadonly'] = 'Å is adresų Å¡altinis prieinamas tik skaitymui'; $messages['errorsavingcontact'] = 'Asmens adreso įraÅ¡yti nepavyko'; -$messages['movingmessage'] = 'LaiÅ¡kas perkeliamas…'; -$messages['copyingmessage'] = 'LaiÅ¡kas kopijuojamas…'; +$messages['movingmessage'] = 'LaiÅ¡kas(-ai) perkeliamas(-i)…'; +$messages['copyingmessage'] = 'LaiÅ¡kai(-ai) kopijuojamas(-i)…'; +$messages['deletingmessage'] = 'LaiÅ¡kas(-ai) Å¡alinamas(-i)…'; +$messages['markingmessage'] = 'LaiÅ¡kas(-ai) žymimas(-i)…'; $messages['receiptsent'] = 'LaiÅ¡ko perskaitymo pažyma sÄ—kmingai iÅ¡siųsta'; $messages['errorsendingreceipt'] = 'LaiÅ¡ko perskaitymo pažymos iÅ¡siųsti nepavyko'; $messages['nodeletelastidentity'] = 'JÅ«s negalite iÅ¡trinti Å¡ios tapatybÄ—s, nes ji yra vienintelÄ— likusi.'; -$messages['addsubfolderhint'] = 'Å is aplankas bus sukurtas kaip pažymÄ—tojo aplanko poaplankis'; $messages['forbiddencharacter'] = 'Aplanko varde rasta neleistinų simbolių'; $messages['selectimportfile'] = 'Parinkite įkelti norimÄ… failÄ…'; $messages['addresswriterror'] = 'Pasirinktoji adresų knyga prieinama tik skaitymui'; @@ -110,10 +115,25 @@ $messages['smtpautherror'] = 'SMTP klaida ($code): nepavyko autentikuotis'; $messages['smtpfromerror'] = 'SMTP klaida ($code): nepavyko nurodyti siuntÄ—jo „$from“ ($msg)'; $messages['smtptoerror'] = 'SMTP klaida ($code): nepavyko pridÄ—ti gavÄ—jo „$to“ ($msg)'; $messages['smtprecipientserror'] = 'SMTP klaida: nepavyko apdoroti gavÄ—jų sÄ…raÅ¡o'; +$messages['smtpdsnerror'] = 'SMTP klaida: laiÅ¡kų pristatymo pažymos nepalaikomos'; $messages['smtperror'] = 'SMTP klaida: $msg'; $messages['emailformaterror'] = 'Netinkamas el. paÅ¡to adresas: $email'; $messages['toomanyrecipients'] = 'Per daug gavÄ—jų. Sumažinkite jų bent iki $max.'; $messages['maxgroupmembersreached'] = 'GrupÄ—s narių skaiÄius virÅ¡ijo maksimalų leistinÄ… ($max)'; $messages['internalerror'] = 'Ä®vyko klaida. PraÅ¡om bandyti iÅ¡ naujo.'; +$messages['contactdelerror'] = 'Nepavyko paÅ¡alinti adresato(-ų)'; +$messages['contactdeleted'] = 'Adresatas(-ai) sÄ—kmingai paÅ¡alintas(-i)'; +$messages['groupdeleted'] = 'GrupÄ— sÄ—kmingai paÅ¡alinta'; +$messages['grouprenamed'] = 'GrupÄ— sÄ—kmingai pervardinta'; +$messages['groupcreated'] = 'GrupÄ— sÄ—kmingai sukurta'; +$messages['messagedeleted'] = 'LaiÅ¡kas(-ai) sÄ—kmingai paÅ¡alintas(-i)'; +$messages['messagemoved'] = 'LaiÅ¡kas(-ai) sÄ—kmingai perkeltas(-i)'; +$messages['messagecopied'] = 'LaiÅ¡kas(-ai) sÄ—kmingai nukopijuotas(-i)'; +$messages['messagemarked'] = 'LaiÅ¡kas(-ai) sÄ—kmingai pažymÄ—tas(-i)'; +$messages['autocompletechars'] = 'Automatiniam užbaigimui bÅ«tini bent $min simboliai'; +$messages['namecannotbeempty'] = 'Vardas negali bÅ«ti tuÅ¡Äias'; +$messages['nametoolong'] = 'Vardas yra per ilgas'; +$messages['folderupdated'] = 'Aplanko savybÄ—s sÄ—kmingai atnaujintos'; +$messages['foldercreated'] = 'Aplankas sÄ—kmingai sukurtas'; ?> diff --git a/program/localization/lv_LV/labels.inc b/program/localization/lv_LV/labels.inc index cafa1d397..797b455f8 100644 --- a/program/localization/lv_LV/labels.inc +++ b/program/localization/lv_LV/labels.inc @@ -277,9 +277,6 @@ $labels['subscribed'] = 'AbonÄ“ta'; $labels['messagecount'] = 'VÄ“stules'; $labels['create'] = 'Izveidot'; $labels['createfolder'] = 'Izveidot jaunu mapi'; -$labels['rename'] = 'PÄrsaukt'; -$labels['renamefolder'] = 'PÄrsaukt mapi'; -$labels['deletefolder'] = 'DzÄ“st mapi'; $labels['managefolders'] = 'Rediģēt mapes'; $labels['specialfolders'] = 'ĪpaÅ¡Äs mapes'; $labels['sortby'] = 'KÄrtot pÄ“c'; diff --git a/program/localization/lv_LV/messages.inc b/program/localization/lv_LV/messages.inc index e84a83246..78b3a4abe 100644 --- a/program/localization/lv_LV/messages.inc +++ b/program/localization/lv_LV/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st iezÄ«mÄ“to(Ä $messages['deletemessagesconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st iezÄ«mÄ“to(Äs) vÄ“stules?'; $messages['deletefolderconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o mapi?'; $messages['purgefolderconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st visas vÄ“stules, kas atrodas Å¡ajÄ mapÄ“?'; -$messages['foldercreating'] = 'Izveidoju mapi...'; $messages['folderdeleting'] = 'DzÄ“Å¡u mapi...'; -$messages['folderrenaming'] = 'PÄrsaucu mapi...'; $messages['foldermoving'] = 'PÄrvietoju mapi...'; $messages['formincomplete'] = 'FormulÄrs nav pilnÄ«bÄ aizpildÄ«ts'; $messages['noemailwarning'] = 'LÅ«dzu ievadiet pareizu e-pasta adresi'; @@ -91,7 +89,6 @@ $messages['movingmessage'] = 'PÄrvietoju vÄ“stules...'; $messages['receiptsent'] = 'SaņemÅ¡anas apstiprinÄjums nosÅ«tÄ«ts'; $messages['errorsendingreceipt'] = 'NeizdevÄs nosÅ«tÄ«t apstiprinÄjumu'; $messages['nodeletelastidentity'] = 'Å o identitÄti nevar izdzÄ“st, tÄ ir pati pÄ“dÄ“jÄ.'; -$messages['addsubfolderhint'] = 'Å is folderis tiks izveidots kÄ apakÅ¡folderis tam, kurÅ¡ patreiz ir izvÄ“lÄ“ts'; $messages['forbiddencharacter'] = 'Mapes nosaukums satur aizliegtus simbolus'; $messages['selectimportfile'] = 'LÅ«dzu izvÄ“lieties failu, ko vÄ“laties augÅ¡upielÄdÄ“t'; $messages['addresswriterror'] = 'IzvÄ“lÄ“tÄs adreÅ¡u grÄmatas datus nevar labot'; diff --git a/program/localization/mk_MK/labels.inc b/program/localization/mk_MK/labels.inc index 4d8d69f56..462fdce4b 100755 --- a/program/localization/mk_MK/labels.inc +++ b/program/localization/mk_MK/labels.inc @@ -274,9 +274,6 @@ $labels['subscribed'] = 'Претплатен'; $labels['messagecount'] = 'Пораки'; $labels['create'] = 'Создај'; $labels['createfolder'] = 'Создај нова папка'; -$labels['rename'] = 'Преименувај'; -$labels['renamefolder'] = 'Преименувај папка'; -$labels['deletefolder'] = 'Избриши папка'; $labels['managefolders'] = 'Организирање на папки'; $labels['specialfolders'] = 'Специјални папки'; $labels['sortby'] = 'Сортирај по'; diff --git a/program/localization/mk_MK/messages.inc b/program/localization/mk_MK/messages.inc index 4d51bb51c..03440616e 100755 --- a/program/localization/mk_MK/messages.inc +++ b/program/localization/mk_MK/messages.inc @@ -52,9 +52,7 @@ $messages['deletecontactconfirm'] = 'Дали Ñте Ñигурни дека ÑÐ $messages['deletemessagesconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да го(и) избришете обележаниот(те) пиÑмо(а)?'; $messages['deletefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ја избришете оваа папка?'; $messages['purgefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ги избршете Ñите пиÑма во оваа папка?'; -$messages['foldercreating'] = 'Ја Ñоздавам папката...'; $messages['folderdeleting'] = 'Ја бришам папката...'; -$messages['folderrenaming'] = 'Ја преименувам папката...'; $messages['foldermoving'] = 'Ја премеÑтувам папката...'; $messages['formincomplete'] = 'Имате изоÑтавено непополнети информации'; $messages['noemailwarning'] = 'ВнеÑете валидна е-поштенÑка адреÑа'; @@ -88,7 +86,6 @@ $messages['movingmessage'] = 'Пораката Ñе премеÑтува...'; $messages['receiptsent'] = 'ИзвеÑтувањето е уÑпешно пратено'; $messages['errorsendingreceipt'] = 'ИзвеÑтувањето не е пратено'; $messages['nodeletelastidentity'] = 'Овој идентитет неможе да Ñе избрише, тој е поÑледниот.'; -$messages['addsubfolderhint'] = 'Оваа папка ќе биде креирана како потпапка на моментално избраната.'; $messages['forbiddencharacter'] = 'Името на папката Ñодржи неÑоодветен формат'; $messages['selectimportfile'] = 'Изберете ја податотеката која Ñакате да ја прикачите'; $messages['addresswriterror'] = 'Одбраниот именик не може да Ñе менува'; diff --git a/program/localization/mr_IN/labels.inc b/program/localization/mr_IN/labels.inc index a8cf8655e..218781381 100755 --- a/program/localization/mr_IN/labels.inc +++ b/program/localization/mr_IN/labels.inc @@ -378,9 +378,6 @@ $labels['subscribed'] = 'वरà¥à¤—णिदार होणे'; $labels['messagecount'] = 'संदेश'; $labels['create'] = 'तयार करा'; $labels['createfolder'] = 'नवीन फोलà¥à¤¡à¤° तयार करा'; -$labels['rename'] = 'नवीन नाव दà¥à¤¯à¤¾'; -$labels['renamefolder'] = 'फोलà¥à¤¡à¤°à¤²à¤¾ नवीन नाव दà¥à¤¯à¤¾'; -$labels['deletefolder'] = 'फोलà¥à¤¡à¤° काढून टाका'; $labels['managefolders'] = 'फोलà¥à¤¡à¤°à¥à¤¸à¤šà¥‡ नियोजन करा'; $labels['specialfolders'] = 'विषेश फोलà¥à¤¡à¤°'; $labels['sortby'] = 'ने वरà¥à¤—वारी करा'; diff --git a/program/localization/mr_IN/messages.inc b/program/localization/mr_IN/messages.inc index 3dc07fd5f..6ee3a5e8b 100755 --- a/program/localization/mr_IN/messages.inc +++ b/program/localization/mr_IN/messages.inc @@ -51,9 +51,7 @@ $messages['deletecontactconfirm'] = 'खूण केलेले सरà¥à¤µ à $messages['deletemessagesconfirm'] = 'खूण केलेले सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?'; $messages['deletefolderconfirm'] = 'हा फोलà¥à¤¡à¤° खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचा आहेत का?'; $messages['purgefolderconfirm'] = 'या फोलà¥à¤¡à¤°à¤®à¤§à¤¿à¤² सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?'; -$messages['foldercreating'] = 'फोलà¥à¤¡à¤° तयार करत आहे'; $messages['folderdeleting'] = 'फोलà¥à¤¡à¤° काढून टाकत आहे'; -$messages['folderrenaming'] = 'फोलà¥à¤¡à¤°à¤²à¤¾ नवीन नाव देत आहे.'; $messages['foldermoving'] = 'फोलà¥à¤¡à¤° हलवत आहे.'; $messages['formincomplete'] = 'फॉरà¥à¤® पूरà¥à¤£à¤ªà¤£à¥‡ à¤à¤°à¤²à¥‡à¤²à¤¾ नाही. '; $messages['noemailwarning'] = 'योगà¥à¤¯, बरोबर, आणि वैध इमेल पतà¥à¤¤à¤¾ दà¥à¤¯à¤¾. '; @@ -88,7 +86,6 @@ $messages['copyingmessage'] = 'संदेशाची नकà¥â€à¤•à¤² कठ$messages['receiptsent'] = 'पोचपावती यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ पाठवणà¥à¤¯à¤¾à¤¤ आली आहे. '; $messages['errorsendingreceipt'] = 'पोचपावती पाठवता आली नाही.'; $messages['nodeletelastidentity'] = 'तà¥à¤®à¥à¤¹à¥€ हे खाते काढून टाकू शकत नाही कारण हे तà¥à¤®à¤šà¥‡ शेवटचे खाते आहे.'; -$messages['addsubfolderhint'] = 'हा फोलà¥à¤¡à¤° निवडलेलà¥à¤¯à¤¾ फोलà¥à¤¡à¤°à¤šà¤¾ उप-फोलà¥à¤¡à¤° असेल'; $messages['forbiddencharacter'] = 'फोलà¥à¤¡à¤°à¤šà¥à¤¯à¤¾ नावात न चालणारी अकà¥à¤·à¤°à¥‡ किंवा खूणा आहेत.'; $messages['selectimportfile'] = 'चढवणà¥à¤¯à¤¾à¤¸à¤¾à¤ ी फाईल निवडा'; $messages['addresswriterror'] = 'निवडलेलà¥à¤¯à¤¾ पतà¥à¤¤à¤¾ नोंदवहीत नोंद करता येत नाही.'; diff --git a/program/localization/ms_MY/labels.inc b/program/localization/ms_MY/labels.inc index c6a585818..bf395daa1 100644 --- a/program/localization/ms_MY/labels.inc +++ b/program/localization/ms_MY/labels.inc @@ -215,9 +215,6 @@ $labels['subscribed'] = 'Dilanggan'; $labels['messagecount'] = 'Mesej-mesej'; $labels['create'] = 'Cipta'; $labels['createfolder'] = 'Cipta kabinet fail baru'; -$labels['rename'] = 'Namakan semula'; -$labels['renamefolder'] = 'Namakan semula kabinet fail'; -$labels['deletefolder'] = 'Hapus kabinet fail'; $labels['managefolders'] = 'Urus kabinet fail'; $labels['sortby'] = 'Susun dengan'; $labels['sortasc'] = 'Susun menaik'; diff --git a/program/localization/ms_MY/messages.inc b/program/localization/ms_MY/messages.inc index 2dac2bc90..907903b58 100644 --- a/program/localization/ms_MY/messages.inc +++ b/program/localization/ms_MY/messages.inc @@ -77,6 +77,5 @@ $messages['movingmessage'] = 'Memindah mesej...'; $messages['receiptsent'] = 'Berjaya menghantar resip bacaan'; $messages['errorsendingreceipt'] = 'Tidak dapat menghantar resip'; $messages['nodeletelastidentity'] = 'Anda tidak boleh membuang identiti ini, ia milik anda yang terakhir.'; -$messages['addsubfolderhint'] = 'Folder ini akan dibina sebagai subfolder kepada folder yang dipilih sekarang'; ?> diff --git a/program/localization/nb_NO/labels.inc b/program/localization/nb_NO/labels.inc index 0e828a26c..c9f3b0ff1 100644 --- a/program/localization/nb_NO/labels.inc +++ b/program/localization/nb_NO/labels.inc @@ -312,9 +312,6 @@ $labels['subscribed'] = 'Abonnere'; $labels['messagecount'] = 'Meldinger'; $labels['create'] = 'Opprett'; $labels['createfolder'] = 'Lag ny mappe'; -$labels['rename'] = 'Endre navn'; -$labels['renamefolder'] = 'Endre navn pÃ¥ mappe'; -$labels['deletefolder'] = 'Slett mappe'; $labels['managefolders'] = 'Rediger mapper'; $labels['specialfolders'] = 'Spesielle mapper'; $labels['sortby'] = 'Sorter etter'; diff --git a/program/localization/nb_NO/messages.inc b/program/localization/nb_NO/messages.inc index db00818a7..4f823a587 100644 --- a/program/localization/nb_NO/messages.inc +++ b/program/localization/nb_NO/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = 'Vil du virkelig slette valgte kontakt(er)?' $messages['deletemessagesconfirm'] = 'Vil du virkelig slette de(n) valgte meldingen(e)?'; $messages['deletefolderconfirm'] = 'Vil du virkelig slette denne mappen?'; $messages['purgefolderconfirm'] = 'Vil du virkelig slette alle meldingene i denne mappen?'; -$messages['foldercreating'] = 'Oppretter mappe...'; $messages['folderdeleting'] = 'Sletter mappe...'; -$messages['folderrenaming'] = 'Gir nytt navn til mappe...'; $messages['foldermoving'] = 'Flytter mappe...'; $messages['formincomplete'] = 'Skjemaet var ikke fullstendig fylt ut'; $messages['noemailwarning'] = 'Skriv inn en gyldig e-postadresse'; @@ -94,7 +92,6 @@ $messages['copyingmessage'] = 'Kopierer e-post...'; $messages['receiptsent'] = 'Kvittering er sent'; $messages['errorsendingreceipt'] = 'Kunne ikke sende kvittering'; $messages['nodeletelastidentity'] = 'Du kan ikke slette denne identiteten, det er din eneste.'; -$messages['addsubfolderhint'] = 'Mappen vil bli opprettet som en undermappe av nÃ¥værende valgt mappe'; $messages['forbiddencharacter'] = 'Mappenavnet inneholder tegn som ikke er tillatt'; $messages['selectimportfile'] = 'Vennligst velg en fil for opplasting'; $messages['addresswriterror'] = 'Den valgte adresseboken er ikke skrivbar'; diff --git a/program/localization/ne_NP/labels.inc b/program/localization/ne_NP/labels.inc index ee1cc09ec..ec4ed1aca 100644 --- a/program/localization/ne_NP/labels.inc +++ b/program/localization/ne_NP/labels.inc @@ -166,9 +166,6 @@ $labels['foldername'] = 'फोलà¥à¤¡à¤°à¤•à¥‹ नाम'; $labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ गरियो'; $labels['create'] = 'बनाउनà¥à¤¹à¥‹à¤¸'; $labels['createfolder'] = 'नया फोलडर बनाउनà¥à¤¹à¥‹à¤¸'; -$labels['rename'] = 'नाम बदलà¥à¤¨à¥à¤¹à¥‹à¤¸'; -$labels['renamefolder'] = 'फोलडरको नाम बदलà¥à¤¨à¥à¤¹à¥‹à¤¸'; -$labels['deletefolder'] = 'फोलडर मेटà¥à¤¨à¥à¤¹à¥‹à¤¸'; $labels['managefolders'] = 'फोलडर वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ गरà¥à¤¨à¥à¤¹à¥‹à¤¸'; $labels['sortby'] = 'यसरी तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸'; $labels['sortasc'] = 'पहिलो देखि अनà¥à¤¤à¤¿à¤® समà¥à¤® तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸'; diff --git a/program/localization/nl_BE/labels.inc b/program/localization/nl_BE/labels.inc index 2ac0eeae0..86b6c4b94 100644 --- a/program/localization/nl_BE/labels.inc +++ b/program/localization/nl_BE/labels.inc @@ -321,9 +321,6 @@ $labels['subscribed'] = 'Gebruiken'; $labels['messagecount'] = 'Berichten'; $labels['create'] = 'Aanmaken'; $labels['createfolder'] = 'Nieuwe map aanmaken'; -$labels['rename'] = 'Hernoemen'; -$labels['renamefolder'] = 'Hernoem map'; -$labels['deletefolder'] = 'Map verwijderen'; $labels['managefolders'] = 'Mappen beheren'; $labels['specialfolders'] = 'Speciale mappen'; $labels['sortby'] = 'Sorteren op'; diff --git a/program/localization/nl_BE/messages.inc b/program/localization/nl_BE/messages.inc index 8739fa5b0..71fbb3dec 100644 --- a/program/localization/nl_BE/messages.inc +++ b/program/localization/nl_BE/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Bent u zeker dat u de geselecteerde contact $messages['deletemessagesconfirm'] = 'Bent u zeker dat u de geselecteerde bericht(en) wilt verwijderen?'; $messages['deletefolderconfirm'] = 'Weet u zeker dat u deze map wilt verwijderen?'; $messages['purgefolderconfirm'] = 'Bent u zeker dat u alle berichten in deze map wilt verwijderen?'; -$messages['foldercreating'] = 'Map aanmaken...'; $messages['folderdeleting'] = 'Map verwijderen...'; -$messages['folderrenaming'] = 'Map hernoemen...'; $messages['foldermoving'] = 'Map verplaatsen...'; $messages['formincomplete'] = 'Het formulier is niet volledig ingevuld...'; $messages['noemailwarning'] = 'Geef een geldig e-mailadres op...'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Bericht wordt gekopieerd...'; $messages['receiptsent'] = 'Ontvangstbevestiging verstuurd'; $messages['errorsendingreceipt'] = 'Kon de ontvangstbevestigign niet versturen'; $messages['nodeletelastidentity'] = 'U kunt dit laatste afzendadres niet verwijderen.'; -$messages['addsubfolderhint'] = 'De map wordt aangemaakt als submap van de geselecteerde map.'; $messages['forbiddencharacter'] = 'De naam van de map bevat een karakter dat niet is toegestaan'; $messages['selectimportfile'] = 'Selecteer een bestand om te uploaden'; $messages['addresswriterror'] = 'Het geselecteerde adresboek is alleen-lezen'; diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc index 97ad8cc18..5097ec7a4 100644 --- a/program/localization/nl_NL/labels.inc +++ b/program/localization/nl_NL/labels.inc @@ -42,16 +42,15 @@ $labels['to'] = 'Ontvanger'; $labels['cc'] = 'Kopie'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Antwoord-aan'; -$labels['mailreplyto'] = 'Mail-Antwoord-Aan'; -$labels['mailfollowupto'] = 'Mail-Followup-Aan'; +$labels['followupto'] = 'Followup-Aan'; $labels['date'] = 'Datum'; $labels['size'] = 'Grootte'; $labels['priority'] = 'Prioriteit'; $labels['organization'] = 'Organisatie'; $labels['readstatus'] = 'Gelezen?'; $labels['reply-to'] = 'Antwoord-aan'; -$labels['mailreply-to'] = 'Mail-Antwoord-Aan'; -$labels['mailfollowup-to'] = 'Mail-Followup-Aan'; +$labels['mail-reply-to'] = 'Mail-Antwoord-Aan'; +$labels['mail-followup-to'] = 'Mail-Followup-Aan'; $labels['mailboxlist'] = 'Mappen'; $labels['messagesfromto'] = 'Bericht $from t/m $to van $count'; $labels['threadsfromto'] = 'Conversatie $from t/m $to van $count'; @@ -205,8 +204,7 @@ $labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size'; $labels['addcc'] = 'Cc toevoegen'; $labels['addbcc'] = 'Bcc toevoegen'; $labels['addreplyto'] = 'Antwoord-aan toevoegen'; -$labels['addmailreplyto'] = 'Mail-Antwoord-Aan toevoegen'; -$labels['addmailfollowupto'] = 'Mail-Followup-Aan toevoegen'; +$labels['addfollowupto'] = 'Mail-Followup-Aan toevoegen'; $labels['mdnrequest'] = 'De afzender van dit bericht heeft gevraagd een melding te ontvangen wanneer u dit bericht heeft gelezen. Wilt u deze melding verzenden?'; $labels['receiptread'] = 'Ontvangstbevestiging (gelezen)'; $labels['yourmessage'] = 'Dit is een ontvangstbevestiging voor uw bericht'; @@ -218,6 +216,7 @@ $labels['email'] = 'E-Mail'; $labels['addcontact'] = 'Nieuwe contactpersoon toevoegen'; $labels['editcontact'] = 'Contactpersoon wijzigen'; $labels['contacts'] = 'Contacten'; +$labels['contactproperties'] = 'Contact eigenschappen'; $labels['edit'] = 'Wijzig'; $labels['cancel'] = 'Annuleer'; $labels['save'] = 'Opslaan'; @@ -325,6 +324,7 @@ $labels['previewpanemarkread'] = 'Markeer voorbeeld bericht als gelezen'; $labels['afternseconds'] = 'Na $n seconden'; $labels['reqmdn'] = 'Vraag altijd een ontvangstbevestiging'; $labels['reqdsn'] = 'Vraag altijd een afleverings status notificatie (DSN)'; +$labels['replysamefolder'] = 'Plaats antwoorden in de folder van het beantwoorde bericht'; $labels['folder'] = 'Map'; $labels['folders'] = 'Mappen'; $labels['foldername'] = 'Mapnaam'; @@ -332,9 +332,6 @@ $labels['subscribed'] = 'Geabonneerd'; $labels['messagecount'] = 'Berichten'; $labels['create'] = 'Nieuw'; $labels['createfolder'] = 'Maak nieuwe map'; -$labels['rename'] = 'Wijzig naam'; -$labels['renamefolder'] = 'Wijzig mapnaam'; -$labels['deletefolder'] = 'Verwijder map'; $labels['managefolders'] = 'Beheer mappen'; $labels['specialfolders'] = 'Speciale mappen'; $labels['sortby'] = 'Sorteer op'; diff --git a/program/localization/nl_NL/messages.inc b/program/localization/nl_NL/messages.inc index 9fd802a39..f83789dd4 100644 --- a/program/localization/nl_NL/messages.inc +++ b/program/localization/nl_NL/messages.inc @@ -58,9 +58,7 @@ $messages['deletecontactconfirm'] = 'Weet u zeker dat u de geselecteerde contact $messages['deletemessagesconfirm'] = 'Weet u zeker dat u de geselecteerde bericht(en) wilt verwijderen?'; $messages['deletefolderconfirm'] = 'Weet u zeker dat u deze map wilt verwijderen?'; $messages['purgefolderconfirm'] = 'Weet u zeker dat u alle berichten in deze map wilt verwijderen?'; -$messages['foldercreating'] = 'Map aanmaken...'; $messages['folderdeleting'] = 'Map verwijderen...'; -$messages['folderrenaming'] = 'Mapnaam wijzigen...'; $messages['foldermoving'] = 'Map verplaatsen...'; $messages['formincomplete'] = 'Het formulier was niet volledig ingevuld'; $messages['noemailwarning'] = 'Geef een geldig e-mailadres op'; @@ -95,7 +93,6 @@ $messages['copyingmessage'] = 'Kopiëren bericht...'; $messages['receiptsent'] = 'Ontvangstbevestiging is verstuurd'; $messages['errorsendingreceipt'] = 'Kan de ontvangstbevestiging niet versturen'; $messages['nodeletelastidentity'] = 'U kunt uw enige identiteit niet verwijderen'; -$messages['addsubfolderhint'] = 'Deze map zal worden aangemaakt onder de geselecteerde map'; $messages['forbiddencharacter'] = 'De naam van de map bevat een karakter dat niet is toegestaan'; $messages['selectimportfile'] = 'Selecteer een bestand om de uploaden'; $messages['addresswriterror'] = 'Het geselecteerde adresboek is alleen lezen'; diff --git a/program/localization/nn_NO/labels.inc b/program/localization/nn_NO/labels.inc index 5f4a0a91c..d79c67c20 100644 --- a/program/localization/nn_NO/labels.inc +++ b/program/localization/nn_NO/labels.inc @@ -310,9 +310,6 @@ $labels['subscribed'] = 'Abonnert'; $labels['messagecount'] = 'Meldingar'; $labels['create'] = 'Opprette'; $labels['createfolder'] = 'Opprett ny mappe'; -$labels['rename'] = 'Gje nytt namn'; -$labels['renamefolder'] = 'Gje nytt namn til mappe'; -$labels['deletefolder'] = 'Slett mappe'; $labels['managefolders'] = 'Mappehandsaming'; $labels['specialfolders'] = 'Spesialmapper'; $labels['sortby'] = 'Sorter etter'; diff --git a/program/localization/nn_NO/messages.inc b/program/localization/nn_NO/messages.inc index 904e3b696..1e181a2dc 100644 --- a/program/localization/nn_NO/messages.inc +++ b/program/localization/nn_NO/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Sletta kontakt(ar)?'; $messages['deletemessagesconfirm'] = 'Sletta melding(ar)?'; $messages['deletefolderconfirm'] = 'Sletta mappa?'; $messages['purgefolderconfirm'] = 'Sletta alle meldingane i denne mappa?'; -$messages['foldercreating'] = 'Lagar mappe...'; $messages['folderdeleting'] = 'Slettar mappe...'; -$messages['folderrenaming'] = 'Endrar namn pÃ¥ mappe...'; $messages['foldermoving'] = 'Flyttar mappe...'; $messages['formincomplete'] = 'Fyll ut skjema'; $messages['noemailwarning'] = 'Skriv inn korrekt epostadresse'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Kopierer epost...'; $messages['receiptsent'] = 'Sende melding-er-lest-kvittering'; $messages['errorsendingreceipt'] = 'Kunne ikkje senda melding-er-lest-kvittering'; $messages['nodeletelastidentity'] = 'Du kan ikkje sletta denne identiteten, det er den siste.'; -$messages['addsubfolderhint'] = 'Denne mappa vert laga som ei undermappe til den du hev markert'; $messages['forbiddencharacter'] = 'Mappenamn inneheld eit teikn som ikkje er støtta'; $messages['selectimportfile'] = 'Vel ei fil til Ã¥ lasta opp'; $messages['addresswriterror'] = 'Denne adresseboka er ikkje skrivbar'; diff --git a/program/localization/pl_PL/labels.inc b/program/localization/pl_PL/labels.inc index 03eaa97ed..519eb34ef 100644 --- a/program/localization/pl_PL/labels.inc +++ b/program/localization/pl_PL/labels.inc @@ -42,13 +42,12 @@ $labels['from'] = 'Nadawca'; $labels['to'] = 'Odbiorca'; $labels['cc'] = 'Kopia'; $labels['bcc'] = 'Ukryta kopia'; -$labels['replyto'] = 'Odp. do'; +$labels['replyto'] = 'Odpowiedź do'; $labels['date'] = 'Data'; $labels['size'] = 'Rozmiar'; $labels['readstatus'] = 'Przeczytano'; $labels['priority'] = 'Priorytet'; $labels['organization'] = 'Organizacja'; -$labels['reply-to'] = 'Odpowiedz do'; $labels['mailboxlist'] = 'Foldery'; $labels['messagesfromto'] = 'WiadomoÅ›ci od $from do $to z $count'; $labels['threadsfromto'] = 'WÄ…tki od $from do $to z $count'; @@ -319,9 +318,6 @@ $labels['subscribed'] = 'Zasubskrybowany'; $labels['messagecount'] = 'WiadomoÅ›ci'; $labels['create'] = 'Utwórz'; $labels['createfolder'] = 'Utwórz nowy folder'; -$labels['rename'] = 'ZmieÅ„ nazwÄ™'; -$labels['renamefolder'] = 'ZmieÅ„ nazwÄ™ folderu'; -$labels['deletefolder'] = 'UsuÅ„ folder'; $labels['managefolders'] = 'ZarzÄ…dzaj folderami'; $labels['specialfolders'] = 'Foldery specjalne'; $labels['sortby'] = 'Sortuj wg'; @@ -352,18 +348,21 @@ $labels['chinese'] = 'chiÅ„ski'; $labels['folderactions'] = 'DziaÅ‚ania na folderach...'; $labels['contacts'] = 'Kontakty'; $labels['messageoptions'] = 'Opcje wiadomoÅ›ci...'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; -$labels['mail-reply-to'] = 'Mail-Reply-To'; -$labels['mail-followup-to'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Kontynuacja do'; $labels['replyall'] = 'Odpowiedz wszystkim'; $labels['replylist'] = 'Odpowiedz na listÄ™'; $labels['editidents'] = 'Edytuj tożsamoÅ›ci'; -$labels['addmailreplyto'] = 'Dodaj Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Dodaj Mail-Followup-To'; +$labels['addfollowupto'] = 'Dodaj Followup-To'; $labels['dsn'] = 'Status dostarczenia (DSN)'; $labels['reqdsn'] = 'Zawsze żądaj statusu dostarczenia (DSN)'; $labels['replysamefolder'] = 'Umieszczaj odpowiedzi w folderze wiadomoÅ›ci, na którÄ… odpowiadam'; $labels['contactproperties'] = 'WÅ‚aÅ›ciwoÅ›ci'; +$labels['properties'] = 'WÅ‚aÅ›ciwoÅ›ci'; +$labels['folderproperties'] = 'WÅ‚Ä…Å›ciwoÅ›ci folderu'; +$labels['parentfolder'] = 'Folder nadrzÄ™dny'; +$labels['location'] = 'PoÅ‚ożenie'; +$labels['info'] = 'Informacje'; +$labels['getfoldersize'] = 'Kliknij aby pobrać rozmiar folderu'; +$labels['changesubscription'] = 'Kliknij aby zmienić subskrypcjÄ™'; ?> diff --git a/program/localization/pl_PL/messages.inc b/program/localization/pl_PL/messages.inc index 29749caae..d3c205bf0 100644 --- a/program/localization/pl_PL/messages.inc +++ b/program/localization/pl_PL/messages.inc @@ -60,9 +60,7 @@ $messages['deletecontactconfirm'] = 'Czy na pewno chcesz usunąć wybrane kontak $messages['deletemessagesconfirm'] = 'Czy na pewno chcesz usunąć wybrane wiadomoÅ›ci?'; $messages['deletefolderconfirm'] = 'Czy na pewno chcesz usunąć wybrany folder?'; $messages['purgefolderconfirm'] = 'Czy na pewno chcesz usunąć wszystkie wiadomoÅ›ci w tym folderze?'; -$messages['foldercreating'] = 'Dodawanie folderu...'; $messages['folderdeleting'] = 'Usuwanie folderu...'; -$messages['folderrenaming'] = 'Zmiana nazwy folderu...'; $messages['foldermoving'] = 'Przenoszenie folderu...'; $messages['formincomplete'] = 'UzupeÅ‚nij formularz!'; $messages['noemailwarning'] = 'Podaj poprawny adres e-mail!'; @@ -99,7 +97,6 @@ $messages['markingmessage'] = 'Oznaczanie wiadomoÅ›ci...'; $messages['receiptsent'] = 'PomyÅ›lnie wysÅ‚ano potwierdzenie dostarczenia'; $messages['errorsendingreceipt'] = 'Nie można wysÅ‚ać potwierdzenia'; $messages['nodeletelastidentity'] = 'Nie można skasować tej tożsamoÅ›ci, ponieważ jest ostatniÄ….'; -$messages['addsubfolderhint'] = 'Ten folder zostanie utworzony jako podfolder aktualnie wybranego.'; $messages['forbiddencharacter'] = 'Nazwa folderu zawiera niedozwolony znak'; $messages['selectimportfile'] = 'ProszÄ™ wybrać plik do wysÅ‚ania'; $messages['addresswriterror'] = 'Wybrana książka adresowa jest tylko-do-odczytu'; @@ -133,5 +130,17 @@ $messages['messagemoved'] = 'WiadomoÅ›ci zostaÅ‚y przeniesione'; $messages['messagecopied'] = 'WiadomoÅ›ci zostaÅ‚y skopiowane'; $messages['messagemarked'] = 'WiadomoÅ›ci zostaÅ‚y oznaczone'; $messages['autocompletechars'] = 'Wprowadź co najmniej $min znak(ów) aby skorzystać z autouzupeÅ‚niania'; +$messages['foldersubscribing'] = 'Subskrybowanie folderu...'; +$messages['folderunsubscribing'] = 'Odsubskrybowanie folderu...'; +$messages['foldersubscribed'] = 'Folder pomyÅ›lnie zasubskrybowany'; +$messages['folderunsubscribed'] = 'Folder pomyÅ›lnie odsubskrybowany'; +$messages['folderpurged'] = 'Folder pomyÅ›lnie wyczyszczony'; +$messages['folderexpunged'] = 'Folder pomyÅ›lnie opróżniony'; +$messages['namecannotbeempty'] = 'Nazwa nie może być pusta'; +$messages['nametoolong'] = 'Name jest zbyt dÅ‚uga'; +$messages['folderupdated'] = 'Folder pomyÅ›lnie zaktualizowany'; +$messages['foldercreated'] = 'Folder pomyÅ›lnie utworzony'; +$messages['errorreadonly'] = 'Nie można wykonać operacji. Folder tylko do odczytu'; +$messages['errornoperm'] = 'Nie można wykonać operacji. Brak uprawnieÅ„'; ?> diff --git a/program/localization/ps/labels.inc b/program/localization/ps/labels.inc index 7dd643045..e7692e7bc 100755 --- a/program/localization/ps/labels.inc +++ b/program/localization/ps/labels.inc @@ -287,9 +287,6 @@ $labels['subscribed'] = 'Ú«Ú‰ شو '; $labels['messagecount'] = 'استوزي '; $labels['create'] = 'جوړول، Ø±Ø§Ù…Ù†Ú ØªÙ‡ کول '; $labels['createfolder'] = 'Ù†ÙˆÛ Ù¾ÙˆÚšÛ Ø¬ÙˆÚ“ Ú©Ú“Ù‡ '; -$labels['rename'] = 'بيانومول '; -$labels['renamefolder'] = 'Ù¾ÙˆÚšÛ Ø¨ÙŠØ§Ù†ÙˆÙ…ÙˆÙ„ '; -$labels['deletefolder'] = 'Ù¾ÙˆÚšÛ Ú“Ù†Ú«ÙˆÙ„ '; $labels['managefolders'] = 'پوښيو څارل '; $labels['specialfolders'] = 'Úانګړي پوښÛÛ'; diff --git a/program/localization/ps/messages.inc b/program/localization/ps/messages.inc index c5aae6aa9..f29475c6d 100755 --- a/program/localization/ps/messages.inc +++ b/program/localization/ps/messages.inc @@ -31,9 +31,7 @@ $messages['deletecontactconfirm'] = ' په رښتيا سره غواړئ Ú†Û Ù¼ $messages['deletemessagesconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ù¼Ø§Ú©Ù„ شوي استوزي‌ړنګ کړئ؟'; $messages['deletefolderconfirm'] = 'په رښتيآ سره غواړئ Ú†Û Ø¯Ø§ Ù¾ÙˆÚšÛ Ú“Ù†Ú«Ù‡ کړئ؟'; $messages['purgefolderconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ø¯Ø¯Û Ù¾ÙˆÚšÛ Ù¼ÙˆÙ„ استوزي‌ړنګ کړئ؟'; -$messages['foldercreating'] = 'Ù¾ÙˆÚšÛ Ø¬ÙˆÚ“ÙˆÙŠ'; $messages['folderdeleting'] = 'Ù¾ÙˆÚšÛ Ú“Ù†Ú«ÙˆÙŠ'; -$messages['folderrenaming'] = 'Ù¾ÙˆÚšÛ Ø¨ÙŠØ§Ù†ÙˆÙ…ÙˆÙŠ'; $messages['foldermoving'] = 'Ù¾ÙˆÚšÛ Ø®ÙˆÚوي'; $messages['formincomplete'] = 'دا پورمه بشپړه Ú‰Ú©Ù‡ Ø´ÙˆÛ Ù†Ù‡ ده'; $messages['noemailwarning'] = 'مهرباني وکړئ د يوه شته برÛښناليک پته ورÚای کړئ'; @@ -66,7 +64,6 @@ $messages['movingmessage'] = 'استوزه خوÚوي'; $messages['receiptsent'] = 'يو لوستل شوی رسليک په بشپړه توګه واستول شو'; $messages['errorsendingreceipt'] = 'رسليک ÙŠÛ ÙˆÙ†Ù‡ شوای ليږلی'; $messages['nodeletelastidentity'] = 'ØªØ§Ø³Û Ù†Ù‡ شئ کولی Ú†Û Ø¯Ø§ Ù¾Ûژندنه Ú“Ù†Ú«Ù‡ کړئ، داستاسو اخرنی پيژندنه ده'; -$messages['addsubfolderhint'] = 'دا Ù¾ÙˆÚšÛ Ø¯ Ø¯ÙˆÙŠÙ…Û Ù¾ÙˆÚšÛ Ù¾Ù‡ توګه د ټاکل شوي اوسني Úای Ú©Û Ø¬ÙˆÚ“Ø´ÙŠ'; $messages['forbiddencharacter'] = 'د Ù¾ÙˆÚšÛ Ù†ÙˆÙ… له Ùوربايډن تورو څخه جوړ دی'; $messages['selectimportfile'] = 'مهرباني وکړئ‌يو Ùايل د پورته کولو لپاره وټاکئ'; $messages['addresswriterror'] = 'ټاکل شوی Ù¾ØªÛ Ú©ØªØ§Ø¨ د بياليکلو نه دی'; diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc index 27c5bb51b..ee236d7da 100644 --- a/program/localization/pt_BR/labels.inc +++ b/program/localization/pt_BR/labels.inc @@ -316,9 +316,6 @@ $labels['subscribed'] = 'Ativo'; $labels['messagecount'] = 'Mensagens'; $labels['create'] = 'Criar'; $labels['createfolder'] = 'Criar nova pasta'; -$labels['rename'] = 'Renomear'; -$labels['renamefolder'] = 'Renomear pasta'; -$labels['deletefolder'] = 'Apagar pasta'; $labels['managefolders'] = 'Gerenciar pastas'; $labels['specialfolders'] = 'Pastas especiais'; $labels['sortby'] = 'Ordenado por'; diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc index 8e4e39f1b..2fd94373c 100644 --- a/program/localization/pt_BR/messages.inc +++ b/program/localization/pt_BR/messages.inc @@ -59,9 +59,7 @@ $messages['deletecontactconfirm'] = 'Deseja realmente excluir o(s) contato(s) se $messages['deletemessagesconfirm'] = 'Deseja realmente excluir a(s) mensagem(s) selecionada(s)?'; $messages['deletefolderconfirm'] = 'Deseja realmente excluir esta pasta?'; $messages['purgefolderconfirm'] = 'Deseja realmente excluir todas mensagens desta pasta?'; -$messages['foldercreating'] = 'Criando pasta...'; $messages['folderdeleting'] = 'Apagando pasta...'; -$messages['folderrenaming'] = 'Renomeando pasta...'; $messages['foldermoving'] = 'Movendo pasta...'; $messages['formincomplete'] = 'Os campos não foram completamente preenchidos'; $messages['noemailwarning'] = 'Por favor, informe um endereço de e-mail válido'; @@ -96,7 +94,6 @@ $messages['copyingmessage'] = 'Copiando mensagem...'; $messages['receiptsent'] = 'Confirmação de recebimento enviada com sucesso'; $messages['errorsendingreceipt'] = 'Não foi possÃvel enviar a confirmação de recebimento'; $messages['nodeletelastidentity'] = 'Você não pode excluir a única identidade'; -$messages['addsubfolderhint'] = 'Esta pasta será criada como uma sub-pasta da que está selecionada'; $messages['forbiddencharacter'] = 'O nome da pasta contém um caractere não permitido'; $messages['selectimportfile'] = 'Selecione o arquivo para envio'; $messages['addresswriterror'] = 'O catálogo de endereços selecionado não tem permissão de modificação'; diff --git a/program/localization/pt_PT/labels.inc b/program/localization/pt_PT/labels.inc index 0202eb373..8897c5138 100644 --- a/program/localization/pt_PT/labels.inc +++ b/program/localization/pt_PT/labels.inc @@ -42,8 +42,7 @@ $labels['to'] = 'Para'; $labels['cc'] = 'Cc'; $labels['bcc'] = 'Bcc'; $labels['replyto'] = 'Responder para'; -$labels['mailreplyto'] = 'Mensagem-Responder-Para'; -$labels['mailfollowupto'] = 'Mensagem-Reencaminhar-Para'; +$labels['followupto'] = 'Reencaminhar-Para'; $labels['date'] = 'Data'; $labels['size'] = 'Tamanho'; $labels['priority'] = 'Prioridade'; @@ -205,8 +204,7 @@ $labels['maxuploadsize'] = 'Tamanho máximo permitido do ficheiro é $size'; $labels['addcc'] = 'Adicionar Cc'; $labels['addbcc'] = 'Adicionar Bcc'; $labels['addreplyto'] = 'Adicionar Responder para'; -$labels['addmailreplyto'] = 'Adicionar Mensagem-Responder-Para'; -$labels['addmailfollowupto'] = 'Adicionar Mensagem-Reencaminhar-Para'; +$labels['addfollowupto'] = 'Adicionar Reencaminhar-Para'; $labels['mdnrequest'] = 'O remetente desta mensagem pediu para ser notificado quando esta mensagem fosse lida. Deseja enviar uma notificação?'; $labels['receiptread'] = 'Recibo de leitura'; $labels['yourmessage'] = 'Isto é um recibo de leitura da sua mensagem'; @@ -334,11 +332,15 @@ $labels['subscribed'] = 'Subscrita'; $labels['messagecount'] = 'Mensagens'; $labels['create'] = 'Criar'; $labels['createfolder'] = 'Criar nova pasta'; -$labels['rename'] = 'Renomear'; -$labels['renamefolder'] = 'Renomear pasta'; -$labels['deletefolder'] = 'Eliminar pasta'; $labels['managefolders'] = 'Gerir pastas'; $labels['specialfolders'] = 'Pastas especiais (predefinidas)'; +$labels['properties'] = 'Propriedades'; +$labels['folderproperties'] = 'Propriedades da pasta'; +$labels['parentfolder'] = 'Pasta de origem'; +$labels['location'] = 'Localização'; +$labels['info'] = 'Informação'; +$labels['getfoldersize'] = 'Clique para obter o tamanho da pasta'; +$labels['changesubscription'] = 'Clique para alterar a subscrição'; $labels['sortby'] = 'Ordenar por'; $labels['sortasc'] = 'Ordenação Ascendente'; $labels['sortdesc'] = 'Ordenação Descendente'; @@ -365,4 +367,4 @@ $labels['japanese'] = 'Japonês'; $labels['korean'] = 'Coreano'; $labels['chinese'] = 'Chinês'; -?>
\ No newline at end of file +?> diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc index 511a2ed05..8bd4b3908 100644 --- a/program/localization/pt_PT/messages.inc +++ b/program/localization/pt_PT/messages.inc @@ -58,10 +58,10 @@ $messages['deletecontactconfirm'] = 'Deseja realmente eliminar o(s) contacto(s) $messages['deletemessagesconfirm'] = 'Deseja realmente eliminar a(s) mensagem(ns) selecionada(s)?'; $messages['deletefolderconfirm'] = 'Deseja realmente eliminar esta pasta?'; $messages['purgefolderconfirm'] = 'Deseja realmente eliminar todas mensagens desta pasta?'; -$messages['foldercreating'] = 'A criar pasta...'; $messages['folderdeleting'] = 'A eliminar pasta...'; -$messages['folderrenaming'] = 'A renomear pasta...'; $messages['foldermoving'] = 'A mover pasta...'; +$messages['foldersubscribing'] = 'A subscrever pasta...'; +$messages['folderunsubscribing'] = 'A cancelar subscrição da pasta...'; $messages['formincomplete'] = 'Os campos não foram completamente preenchidos'; $messages['noemailwarning'] = 'Por favor escreva um endereço de e-mail válido'; $messages['nonamewarning'] = 'Por favor escreva o nome'; @@ -81,6 +81,9 @@ $messages['searching'] = 'A pesquisar...'; $messages['checking'] = 'A verificar...'; $messages['nospellerrors'] = 'Não foi encontrado nenhum erro ortográfico'; $messages['folderdeleted'] = 'Pasta eliminada com sucesso'; +$messages['foldersubscribed'] = 'Subscrição da pasta concluÃda com sucesso'; +$messages['folderunsubscribed'] = 'Subscrição da pasta cancelada com sucesso'; +$messages['folderpurged'] = 'Pasta eliminada com sucesso'; $messages['deletedsuccessfully'] = 'Eliminado com sucesso'; $messages['converting'] = 'A remover a formatação...'; $messages['messageopenerror'] = 'Não foi possÃvel carregar a mensagem'; @@ -97,7 +100,6 @@ $messages['markingmessage'] = 'A marcar mensagens...'; $messages['receiptsent'] = 'Recibo de leitura enviadocom sucesso'; $messages['errorsendingreceipt'] = 'Não foi possÃvel enviar o recibo'; $messages['nodeletelastidentity'] = 'Esta é a última identidade, não é possÃvel eliminá-la.'; -$messages['addsubfolderhint'] = 'Esta pasta será criada como uma sub-pasta da que está seleccionada'; $messages['forbiddencharacter'] = 'O nome da pasta contém um caractere inválido'; $messages['selectimportfile'] = 'Por favor seleccione um ficheiro para carregar'; $messages['addresswriterror'] = 'Não é possÃvel escrever no livro de endereços seleccionado'; @@ -131,5 +133,9 @@ $messages['messagemoved'] = 'Mensagens movidas com sucesso'; $messages['messagecopied'] = 'Mensagens copiadas com sucesso'; $messages['messagemarked'] = 'Mensagens marcadas com sucesso'; $messages['autocompletechars'] = 'Indique pelo menos $min caracteres para auto completar'; +$messages['namecannotbeempty'] = 'O nome não pode estar em branco'; +$messages['nametoolong'] = 'O nome é demasiado longo'; +$messages['folderupdated'] = 'Actualização da pasta concluÃda com sucesso'; +$messages['foldercreated'] = 'Pasta criada com sucesso'; -?>
\ No newline at end of file +?> diff --git a/program/localization/ro_RO/labels.inc b/program/localization/ro_RO/labels.inc index 6f77b1fed..83778a081 100644 --- a/program/localization/ro_RO/labels.inc +++ b/program/localization/ro_RO/labels.inc @@ -310,9 +310,6 @@ $labels['subscribed'] = 'ÃŽnscris'; $labels['messagecount'] = 'Mesaje'; $labels['create'] = 'Creează'; $labels['createfolder'] = 'Creează dosar nou'; -$labels['rename'] = 'RedenumeÅŸte'; -$labels['renamefolder'] = 'RedenumeÅŸte dosar'; -$labels['deletefolder'] = 'Åžterge dosar'; $labels['managefolders'] = 'Administrează dosare'; $labels['specialfolders'] = 'Dosare speciale'; $labels['sortby'] = 'Sortează după'; diff --git a/program/localization/ro_RO/messages.inc b/program/localization/ro_RO/messages.inc index 8027f427a..8ced7d260 100644 --- a/program/localization/ro_RO/messages.inc +++ b/program/localization/ro_RO/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'SunteÅ£i sigur că doriÅ£i să ÅŸtergeÅ£i c $messages['deletemessagesconfirm'] = 'Chiar doriÅ£i să ÅŸtergeÅ£i mesajele selectate ?'; $messages['deletefolderconfirm'] = 'SunteÅ£i sigur că doriÅ£i să ÅŸtergeÅ£i acest dosar?'; $messages['purgefolderconfirm'] = 'SunteÅ£i sigur că doriÅ£i să ÅŸtergeÅ£i toate mesajele din acest dosar?'; -$messages['foldercreating'] = 'Se creează dosarul...'; $messages['folderdeleting'] = 'Se ÅŸterge dosarul...'; -$messages['folderrenaming'] = 'Se redenumeÅŸte dosarul...'; $messages['foldermoving'] = 'Se mută dosarul...'; $messages['formincomplete'] = 'Formularul nu a fost completat corect'; $messages['noemailwarning'] = 'Vă rugăm să introduceÅ£i o adresă de e-mail validă'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Copiere mesaj...'; $messages['receiptsent'] = 'Confirmarea de citire a fost trimisă cu succes'; $messages['errorsendingreceipt'] = 'Confirmarea nu a putut fi trimisă'; $messages['nodeletelastidentity'] = 'Nu puteÅ£i ÅŸterge această identitate, este ultima.'; -$messages['addsubfolderhint'] = 'Acest dosar va fi creat ca subdosar al celui selectat.'; $messages['forbiddencharacter'] = 'Numele dosarului conÅ£ine un caracter nepermis.'; $messages['selectimportfile'] = 'Va rugăm să selectaÅ£i fiÅŸierul pentru încărcare'; $messages['addresswriterror'] = 'Agenda selectată nu poate fi actualizată'; diff --git a/program/localization/ru_RU/labels.inc b/program/localization/ru_RU/labels.inc index d8e5ff84a..6aeeff4f4 100644 --- a/program/localization/ru_RU/labels.inc +++ b/program/localization/ru_RU/labels.inc @@ -40,13 +40,15 @@ $labels['to'] = 'Кому'; $labels['cc'] = 'КопиÑ'; $labels['bcc'] = 'СкрытаÑ'; $labels['replyto'] = 'Ответить'; -$labels['mailreplyto'] = 'Ответить в ÑпиÑке раÑÑылки'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Дата'; $labels['size'] = 'Размер'; $labels['priority'] = 'Приоритет'; $labels['organization'] = 'ОрганизациÑ'; +$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ'; $labels['reply-to'] = 'Ответить'; -$labels['mailreply-to'] = 'Ответить в ÑпиÑке раÑÑылки'; +$labels['mail-reply-to'] = 'Mail-Reply-To'; +$labels['mail-followup-to'] = 'Mail-Followup-To'; $labels['mailboxlist'] = 'Папки'; $labels['messagesfromto'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ $from по $to из $count'; $labels['threadsfromto'] = 'ОбÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ $from по $to из $count'; @@ -200,7 +202,7 @@ $labels['maxuploadsize'] = 'МакÑимальный размер файла $si $labels['addcc'] = 'КопиÑ'; $labels['addbcc'] = 'Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ'; $labels['addreplyto'] = 'Кому ответить'; -$labels['addmailreplyto'] = 'Кому ответить в ÑпиÑке раÑÑылки'; +$labels['addfollowupto'] = 'Добавить Followup-To'; $labels['mdnrequest'] = 'Отправитель Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñил уведомление о прочтении. Отправить уведомление?'; $labels['receiptread'] = 'Уведомление о прочтении'; $labels['yourmessage'] = 'Ðто уведомление о прочтении вашего ÑообщениÑ'; @@ -212,6 +214,7 @@ $labels['email'] = 'E-Mail'; $labels['addcontact'] = 'Добавить выбранные контакты в ÑпиÑок контактов'; $labels['editcontact'] = 'Редактировать контакт'; $labels['contacts'] = 'Контакты'; +$labels['contactproperties'] = 'СвойÑтва контакта'; $labels['edit'] = 'Правка'; $labels['cancel'] = 'Отмена'; $labels['save'] = 'Сохранить'; @@ -319,6 +322,7 @@ $labels['previewpanemarkread'] = 'Отмечать проÑмотренные Ñ $labels['afternseconds'] = 'через $n Ñекунд'; $labels['reqmdn'] = 'Ð’Ñегда запрашивать уведомление о доÑтавке'; $labels['reqdsn'] = 'Ð’Ñегда запрашивать уведомление о ÑоÑтоÑнии доÑтавки'; +$labels['replysamefolder'] = 'Помещать ответы в ту же папку, где находитÑÑ Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»'; $labels['folder'] = 'Папка'; $labels['folders'] = 'Папки'; $labels['foldername'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸'; @@ -326,9 +330,6 @@ $labels['subscribed'] = 'ПодпиÑан'; $labels['messagecount'] = 'СообщениÑ'; $labels['create'] = 'Создать'; $labels['createfolder'] = 'Создать новую папку'; -$labels['rename'] = 'Переименовать'; -$labels['renamefolder'] = 'Переименовать папку'; -$labels['deletefolder'] = 'Удалить папку'; $labels['managefolders'] = 'Управление папками'; $labels['specialfolders'] = 'ОÑобые папки'; $labels['sortby'] = 'Сортировать по'; diff --git a/program/localization/ru_RU/messages.inc b/program/localization/ru_RU/messages.inc index 75c6d77ce..f37c07816 100644 --- a/program/localization/ru_RU/messages.inc +++ b/program/localization/ru_RU/messages.inc @@ -56,9 +56,7 @@ $messages['deletecontactconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотитР$messages['deletemessagesconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выбранные ÑообщениÑ?'; $messages['deletefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñту папку?'; $messages['purgefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² Ñтой папке?'; -$messages['foldercreating'] = 'Создание папки...'; $messages['folderdeleting'] = 'Удаление папки...'; -$messages['folderrenaming'] = 'Переименование папки...'; $messages['foldermoving'] = 'Перемещение папки...'; $messages['formincomplete'] = 'Заполнены не вÑе полÑ'; $messages['noemailwarning'] = 'ПожалуйÑта, введите корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты'; @@ -95,7 +93,6 @@ $messages['markingmessage'] = 'Выделение Ñообщений...'; $messages['receiptsent'] = 'Уведомление о прочтении отправлено'; $messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено'; $messages['nodeletelastidentity'] = 'Ð’Ñ‹ не можете удалить Ñтот профиль, он у Ð²Ð°Ñ Ð¿Ð¾Ñледний'; -$messages['addsubfolderhint'] = 'Ðта папка будет Ñоздана как подпапка в текущей папке'; $messages['forbiddencharacter'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñодержит недопуÑтимые Ñимволы'; $messages['selectimportfile'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; $messages['addresswriterror'] = 'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð°Ð´Ñ€ÐµÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð° недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; diff --git a/program/localization/si_LK/labels.inc b/program/localization/si_LK/labels.inc index 632b9679e..6b3ad9ef8 100644 --- a/program/localization/si_LK/labels.inc +++ b/program/localization/si_LK/labels.inc @@ -179,9 +179,6 @@ $labels['subscribed'] = 'à·ƒà·à¶¸à·à¶¢à·’ක'; $labels['messagecount'] = 'පනිවුඩ'; $labels['create'] = 'සෑදීම'; $labels['createfolder'] = 'අඵà¶à·Š à·†à·à¶½à·Šà¶©à¶»à¶ºà¶šà·Š සෑදීම'; -$labels['rename'] = 'නà·à·€à¶ නම් කිරීම'; -$labels['renamefolder'] = 'à·†à·à¶½à·Šà¶©à¶»à¶º නà·à·€à¶ නම් කිරීම'; -$labels['deletefolder'] = 'à·†à·à¶½à·Šà¶©à¶»à¶º මක෠දà·à¶¸à·“ම'; $labels['managefolders'] = 'à·„à·à·ƒà·’රවීම à·„à·à·ƒà·’රවීම'; $labels['sortby'] = 'චිසින් වර්ග කිරීම'; $labels['sortasc'] = 'ආරà·à·„ණ වර්ග කිරීම'; diff --git a/program/localization/si_LK/messages.inc b/program/localization/si_LK/messages.inc index 61a0b429f..0a5a5fc25 100644 --- a/program/localization/si_LK/messages.inc +++ b/program/localization/si_LK/messages.inc @@ -76,6 +76,5 @@ $messages['movingmessage'] = 'පනිවුඩය ගෙනයමින් ප $messages['receiptsent'] = 'කියවීම් භà·à¶» ගà·à¶±à·“ම à·ƒà·à¶»à·Šà¶®à¶šà·€ යවන ලදී'; $messages['errorsendingreceipt'] = 'කියවීම් භà·à¶» ගà·à¶±à·“ම යà·à·€à·“මට නොහà·à¶š'; $messages['nodeletelastidentity'] = 'අවසà·à¶± අනන්â€à¶ºà¶à·à·€à¶º මක෠දà·à¶¸à·’ය නොහà·à¶š'; -$messages['addsubfolderhint'] = 'à·†à·à¶½à·Šà¶©à¶»à¶º දà·à¶±à¶§ à¶à·à¶»à·à¶œà·™à¶± ඇà¶à·’ à·†à·à¶½à·Šà¶©à¶»à¶ºà·™à·„à·’ අනු à·†à·à¶½à·Šà¶©à¶»à¶ºà¶šà·Š ලෙස සෑදේ'; ?> diff --git a/program/localization/sk_SK/labels.inc b/program/localization/sk_SK/labels.inc index e2c22e01e..ce93f888f 100644 --- a/program/localization/sk_SK/labels.inc +++ b/program/localization/sk_SK/labels.inc @@ -318,9 +318,6 @@ $labels['subscribed'] = 'Prihlásený k odberu'; $labels['messagecount'] = 'PoÄet správ'; $labels['create'] = 'VytvoriÅ¥'; $labels['createfolder'] = 'Vytvor nový prieÄinok'; -$labels['rename'] = 'PremenovaÅ¥'; -$labels['renamefolder'] = 'PremenovaÅ¥ prieÄinok'; -$labels['deletefolder'] = 'ZmazaÅ¥ prieÄinok'; $labels['managefolders'] = 'SpravovaÅ¥ prieÄinky'; $labels['specialfolders'] = 'Å peciálne prieÄinky'; $labels['sortby'] = 'TriediÅ¥ podľa'; diff --git a/program/localization/sk_SK/messages.inc b/program/localization/sk_SK/messages.inc index 4476fd729..315038f96 100644 --- a/program/localization/sk_SK/messages.inc +++ b/program/localization/sk_SK/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ zvolený(à $messages['deletemessagesconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ zvolenú(é) správu(y)?'; $messages['deletefolderconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ tento prieÄinok?'; $messages['purgefolderconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ vÅ¡etky správy v tomto prieÄinku?'; -$messages['foldercreating'] = 'Vytvára sa prieÄinok ...'; $messages['folderdeleting'] = 'Odstraňuje sa prieÄinok ...'; -$messages['folderrenaming'] = 'Menà sa názov prieÄinka ...'; $messages['foldermoving'] = 'PreÄinok sa presúva ...'; $messages['formincomplete'] = 'Formulár nie je kompletne vyplnený'; $messages['noemailwarning'] = 'ProsÃm, vložte platnú emailovú adresu'; @@ -94,7 +92,6 @@ $messages['copyingmessage'] = 'Správa sa kopÃruje...'; $messages['receiptsent'] = 'Potvrdenie o prijatà správy bolo odoslané'; $messages['errorsendingreceipt'] = 'Potvrdenie o prijatà správy sa nedalo odoslaÅ¥'; $messages['nodeletelastidentity'] = 'Identita sa nedá odstrániÅ¥, je posledná a musà zostaÅ¥.'; -$messages['addsubfolderhint'] = 'Tento prieÄinok bude vytvorený ako podprieÄinok aktuálne zvoleného prieÄinka'; $messages['forbiddencharacter'] = 'Názov prieÄinka obsahuje nepovolený znak'; $messages['selectimportfile'] = 'Zvoľte súbor, ktorý chcete naÄÃtaÅ¥'; $messages['addresswriterror'] = 'Zvolený adresár kontaktov je iba na ÄÃtanie'; diff --git a/program/localization/sl_SI/labels.inc b/program/localization/sl_SI/labels.inc index 8b90a004c..191a55251 100644 --- a/program/localization/sl_SI/labels.inc +++ b/program/localization/sl_SI/labels.inc @@ -39,16 +39,15 @@ $labels['to'] = 'Prejemnik'; $labels['cc'] = 'Kp'; $labels['bcc'] = 'Skp'; $labels['replyto'] = 'Odgovor na'; -$labels['mailreplyto'] = 'Odgovor na'; -$labels['mailfollowupto'] = 'Odgovor na'; +$labels['followupto'] = 'Odgovor na'; $labels['date'] = 'Datum'; $labels['size'] = 'Velikost'; $labels['priority'] = 'Prioriteta'; $labels['organization'] = 'Organizacija'; $labels['readstatus'] = 'Status'; $labels['reply-to'] = 'Odgovor na'; -$labels['mailreply-to'] = 'Odgovor na'; -$labels['mailfollowup-to'] = 'Odgovor na'; +$labels['mail-reply-to'] = 'Odgovor na'; +$labels['mail-followup-to'] = 'Odgovor na'; $labels['mailboxlist'] = 'Mape'; $labels['messagesfromto'] = 'SporoÄila $from do $to od $count'; $labels['threadsfromto'] = 'Nit $from do $to od $count'; @@ -202,8 +201,7 @@ $labels['maxuploadsize'] = 'NajveÄja dovoljena velikost datoteke je $size'; $labels['addcc'] = 'Dodaj Kp'; $labels['addbcc'] = 'Dodaj Skp'; $labels['addreplyto'] = 'Dodaj naslov za odgovor'; -$labels['addmailreplyto'] = 'Dodaj naslov za odgovor'; -$labels['addmailfollowupto'] = 'Dodaj naslov za odgovor'; +$labels['addfollowupto'] = 'Dodaj naslov za odgovor'; $labels['mdnrequest'] = 'PoÅ¡iljatelj tega sporoÄila je zaprosil za potrdilo o branju. Želite o tem obvestiti poÅ¡iljatelja?'; $labels['receiptread'] = 'Potrdilo o branju'; $labels['yourmessage'] = 'To je potrdilo o branju.'; @@ -329,9 +327,6 @@ $labels['subscribed'] = 'Vpisan'; $labels['messagecount'] = 'SporoÄila'; $labels['create'] = 'Ustvari'; $labels['createfolder'] = 'Ustvari novo mapo'; -$labels['rename'] = 'Preimenuj'; -$labels['renamefolder'] = 'Preimenuj mapo'; -$labels['deletefolder'] = 'IzbriÅ¡i mapo'; $labels['managefolders'] = 'Uredi mape'; $labels['specialfolders'] = 'Posebne mape'; $labels['sortby'] = 'Uredi po'; diff --git a/program/localization/sl_SI/messages.inc b/program/localization/sl_SI/messages.inc index 7570919b8..689685873 100644 --- a/program/localization/sl_SI/messages.inc +++ b/program/localization/sl_SI/messages.inc @@ -52,9 +52,7 @@ $messages['deletecontactconfirm'] = 'Ste prepriÄani, da želite izbrisati oznaÄ $messages['deletemessagesconfirm'] = 'Ste prepriÄani, da želite izbrisati oznaÄeno(a) sporoÄilo(a)?'; $messages['deletefolderconfirm'] = 'Ste prepriÄani, da želite to mapo izbrisati?'; $messages['purgefolderconfirm'] = 'Ste prepriÄani, da želite izbrisati vsa sporoÄila v mapi?'; -$messages['foldercreating'] = 'Ustvarjanje mape...'; $messages['folderdeleting'] = 'Brisanje mape...'; -$messages['folderrenaming'] = 'Preimenovanje mape...'; $messages['foldermoving'] = 'Premikanje mape...'; $messages['formincomplete'] = 'Obrazec ni v celoti izpolnjen'; $messages['noemailwarning'] = 'Vnesite veljaven elektronski naslov'; @@ -89,7 +87,6 @@ $messages['copyingmessage'] = 'Kopiranje sporoÄila...'; $messages['receiptsent'] = 'SporoÄilo o branju je bilo uspeÅ¡no poslano'; $messages['errorsendingreceipt'] = 'SporoÄila o branju ni bilo mogoÄe poslati'; $messages['nodeletelastidentity'] = 'Te identitete ni mogoÄe izbrisati, saj je edina.'; -$messages['addsubfolderhint'] = 'Ta mapa bo ustvarjena kot podmapa od izbrane mape.'; $messages['forbiddencharacter'] = 'Ime mape vsebuje nedovoljen znak'; $messages['selectimportfile'] = 'Izberite datoteko, ki jo želite prenesti'; $messages['addresswriterror'] = 'Izbran imenik ni zapisljiv'; diff --git a/program/localization/sq_AL/labels.inc b/program/localization/sq_AL/labels.inc index 2e0f437b2..51ffb7aa8 100644 --- a/program/localization/sq_AL/labels.inc +++ b/program/localization/sq_AL/labels.inc @@ -180,9 +180,6 @@ $labels['subscribed'] = 'Regjistruar'; $labels['messagecount'] = 'Mesazhe'; $labels['create'] = 'Krijo'; $labels['createfolder'] = 'Krijo kuti të re'; -$labels['rename'] = 'Riemëro'; -$labels['renamefolder'] = 'Riemëro kutinë'; -$labels['deletefolder'] = 'Fshi kutinë'; $labels['managefolders'] = 'Sistemo kutitë'; $labels['sortby'] = 'Rradhit sipas'; $labels['sortasc'] = 'Rradhitje rritëse'; diff --git a/program/localization/sq_AL/messages.inc b/program/localization/sq_AL/messages.inc index d5bcad621..4af0b1b37 100644 --- a/program/localization/sq_AL/messages.inc +++ b/program/localization/sq_AL/messages.inc @@ -77,6 +77,5 @@ $messages['movingmessage'] = 'Po lëviz mesazhin...'; $messages['receiptsent'] = 'U dërgua me sukses një njoftim leximi'; $messages['errorsendingreceipt'] = 'Nuk mund të dërgohet njoftimi'; $messages['nodeletelastidentity'] = 'Ju nuk mund ta fshini këtë identitet sepse nuk ju ka mbetur tjetër.'; -$messages['addsubfolderhint'] = 'Kjo kuti do të krijohet si një nënkuti e asaj që është e zgjedhur'; ?> diff --git a/program/localization/sr_CS/labels.inc b/program/localization/sr_CS/labels.inc index 780e6d675..64f5f373e 100644 --- a/program/localization/sr_CS/labels.inc +++ b/program/localization/sr_CS/labels.inc @@ -180,9 +180,6 @@ $labels['subscribed'] = 'ПотпиÑана'; $labels['messagecount'] = 'Поруке'; $labels['create'] = 'Креирај'; $labels['createfolder'] = 'Креирај нову фаÑциклу'; -$labels['rename'] = 'Преименуј'; -$labels['renamefolder'] = 'Преименуј фаÑциклу'; -$labels['deletefolder'] = 'Обриши фаÑциклу'; $labels['managefolders'] = 'ПодеÑи фаÑциклу'; $labels['sortby'] = 'Сортирај по'; $labels['sortasc'] = 'Сортирај раÑтуће'; diff --git a/program/localization/sr_CS/messages.inc b/program/localization/sr_CS/messages.inc index 4756b5cec..76f178c45 100644 --- a/program/localization/sr_CS/messages.inc +++ b/program/localization/sr_CS/messages.inc @@ -77,6 +77,5 @@ $messages['movingmessage'] = 'Премештам поруку...'; $messages['receiptsent'] = 'УÑпешно поÑлато обавештење о приÑпећу'; $messages['errorsendingreceipt'] = 'ÐеуÑпело Ñлање обавештења о приÑпећу'; $messages['nodeletelastidentity'] = 'Ðе можете обриÑати овај идентитет, он Вам је поÑледњи.'; -$messages['addsubfolderhint'] = 'Ова фаÑцикла ће бити креирана као подфаÑцикла тренутне'; ?> diff --git a/program/localization/sv_SE/labels.inc b/program/localization/sv_SE/labels.inc index 3519e2b91..55dfddad0 100644 --- a/program/localization/sv_SE/labels.inc +++ b/program/localization/sv_SE/labels.inc @@ -40,12 +40,12 @@ $labels['to'] = 'Mottagare'; $labels['cc'] = 'Kopia'; $labels['bcc'] = 'Hemlig kopia'; $labels['replyto'] = 'Svara till'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Datum'; $labels['size'] = 'Storlek'; $labels['priority'] = 'Prioritet'; $labels['organization'] = 'Organisation'; +$labels['readstatus'] = 'Lässtatus'; $labels['reply-to'] = 'Svara till'; $labels['mail-reply-to'] = 'Mail-Reply-To'; $labels['mail-followup-to'] = 'Mail-Followup-To'; @@ -202,8 +202,7 @@ $labels['maxuploadsize'] = 'TillÃ¥ten filstorlek är $size'; $labels['addcc'] = 'Kopia'; $labels['addbcc'] = 'Hemlig kopia'; $labels['addreplyto'] = 'Svara till'; -$labels['addmailreplyto'] = 'Lägg till Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Lägg till Mail-Followup-To'; +$labels['addfollowupto'] = 'Lägg till Mail-Followup-To'; $labels['mdnrequest'] = 'Avsändaren har begärt mottagarkvitto för det här meddelandet. Vill du skicka ett mottagarkvitto?'; $labels['receiptread'] = 'Mottagarkvitto (läst)'; $labels['yourmessage'] = 'Det här är ett mottagarkvitto för ditt meddelande'; @@ -215,6 +214,7 @@ $labels['email'] = 'E-post'; $labels['addcontact'] = 'Lägg till ny kontakt'; $labels['editcontact'] = 'Redigera kontakt'; $labels['contacts'] = 'Kontakter'; +$labels['contactproperties'] = 'Kontaktegenskaper'; $labels['edit'] = 'Redigera'; $labels['cancel'] = 'Avbryt'; $labels['save'] = 'Spara'; @@ -322,6 +322,7 @@ $labels['previewpanemarkread'] = 'Märk meddelande som läst vid visning'; $labels['afternseconds'] = 'Efter $n sekunder'; $labels['reqmdn'] = 'Begär alltid mottagningskvitto'; $labels['reqdsn'] = 'Begär alltid leveransstatusmeddelande'; +$labels['replysamefolder'] = 'Placera svar i samma katalog som besvarat meddelande'; $labels['folder'] = 'Katalog'; $labels['folders'] = 'Kataloger'; $labels['foldername'] = 'Katalognamn'; @@ -329,9 +330,6 @@ $labels['subscribed'] = 'Ansluten'; $labels['messagecount'] = 'Meddelanden'; $labels['create'] = 'Skapa'; $labels['createfolder'] = 'Ny katalog'; -$labels['rename'] = 'Ändra namn'; -$labels['renamefolder'] = 'Ändra katalognamn'; -$labels['deletefolder'] = 'Radera katalog'; $labels['managefolders'] = 'Hantera kataloger'; $labels['specialfolders'] = 'Speciella kataloger'; $labels['sortby'] = 'Sortera pÃ¥'; diff --git a/program/localization/sv_SE/messages.inc b/program/localization/sv_SE/messages.inc index 1933d73ce..6e2a419fa 100644 --- a/program/localization/sv_SE/messages.inc +++ b/program/localization/sv_SE/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = 'Vill du verkligen radera valda kontakter?'; $messages['deletemessagesconfirm'] = 'Vill du verkligen ta bort valda meddelanden?'; $messages['deletefolderconfirm'] = 'Vill du verkligen radera den här katalogen?'; $messages['purgefolderconfirm'] = 'Vill du verkligen radera alla meddelanden i den här katalogen?'; -$messages['foldercreating'] = 'Skapar katalog...'; $messages['folderdeleting'] = 'Raderar katalog...'; -$messages['folderrenaming'] = 'Namnändrar katalog...'; $messages['foldermoving'] = 'Flyttar katalog...'; $messages['formincomplete'] = 'Formuläret var inte ifyllt i sin helhet'; $messages['noemailwarning'] = 'Vänligen ange en giltig adress'; @@ -91,10 +89,11 @@ $messages['sourceisreadonly'] = 'Denna adresskälla är skrivskyddad'; $messages['errorsavingcontact'] = 'Kunde inte spara kontaktadressen'; $messages['movingmessage'] = 'Flyttar meddelande...'; $messages['copyingmessage'] = 'Kopierar meddelande...'; +$messages['deletingmessage'] = 'Raderar meddelande...'; +$messages['markingmessage'] = 'Markerar meddelande...'; $messages['receiptsent'] = 'Mottagarkvitto har skickats'; $messages['errorsendingreceipt'] = 'Kunde inte skicka mottagarkvitto'; $messages['nodeletelastidentity'] = 'Du kan inte radera den här identiteten, det är din sista.'; -$messages['addsubfolderhint'] = 'Den här katalogen kommer att skapas som en underkatalog till den valda'; $messages['forbiddencharacter'] = 'Katalognamnet innehÃ¥ller otillÃ¥tna tecken'; $messages['selectimportfile'] = 'Välj en fil att ladda upp'; $messages['addresswriterror'] = 'Angiven adressbok är skrivskyddad'; @@ -118,5 +117,15 @@ $messages['emailformaterror'] = 'Felaktig adress: $email'; $messages['toomanyrecipients'] = 'FörmÃ¥nga mottagare. Minska antalet till högst $max.'; $messages['maxgroupmembersreached'] = 'Antalet gruppmedlemmar fÃ¥r inte överstiga $max'; $messages['internalerror'] = 'Ett internt fel uppstod. Vänligen försök igen.'; +$messages['contactdelerror'] = 'Kunde inte radera kontakt'; +$messages['contactdeleted'] = 'Kontakt raderad'; +$messages['groupdeleted'] = 'Grupp raderad'; +$messages['grouprenamed'] = 'Gruppnamn ändrat'; +$messages['groupcreated'] = 'Grupp skapad'; +$messages['messagedeleted'] = 'Meddelande raderat'; +$messages['messagemoved'] = 'Meddelande flyttat'; +$messages['messagecopied'] = 'Meddelande kopierat'; +$messages['messagemarked'] = 'Meddelande markerat'; +$messages['autocompletechars'] = 'Ange minst $min tecken för automatisk komplettering'; ?> diff --git a/program/localization/ta_IN/labels.inc b/program/localization/ta_IN/labels.inc index 9492ad999..2045c7b06 100644 --- a/program/localization/ta_IN/labels.inc +++ b/program/localization/ta_IN/labels.inc @@ -272,9 +272,6 @@ $labels['subscribed'] = 'சநà¯à®¤à®¾'; $labels['messagecount'] = 'செயà¯à®¤à®¿à®•à®³à¯'; $labels['create'] = 'உரà¯à®µà®¾à®•à¯à®•à¯'; $labels['createfolder'] = 'பà¯à®¤à¯ அடைவ௠உரà¯à®µà®¾à®•à¯à®•à¯'; -$labels['rename'] = 'மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿà¯'; -$labels['renamefolder'] = 'அடைவை மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿà¯'; -$labels['deletefolder'] = 'அடைவை நீகà¯à®•à¯'; $labels['managefolders'] = 'அடைவà¯à®•à®³à¯ˆ நிறà¯à®µà®•à®¿'; $labels['specialfolders'] = 'சிறபà¯à®ªà¯ அடைவà¯à®•à®³à¯'; $labels['sortby'] = 'வாரியாக அடà¯à®•à¯à®•à¯'; diff --git a/program/localization/ta_IN/messages.inc b/program/localization/ta_IN/messages.inc index 40684a55b..7f722f6fb 100644 --- a/program/localization/ta_IN/messages.inc +++ b/program/localization/ta_IN/messages.inc @@ -50,9 +50,7 @@ $messages['deletecontactconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤ $messages['deletemessagesconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®•à®³à¯ˆ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?'; $messages['deletefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவை நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?'; $messages['purgefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவிலிரà¯à®•à¯à®•à¯à®®à¯ எலà¯à®²à®¾ செயà¯à®¤à®¿à®•à®³à¯ˆà®¯à¯à®®à¯ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?'; -$messages['foldercreating'] = 'அடைவை உரà¯à®µà®¾à®•à¯à®•à¯à®•à®¿à®±à®¤à¯...'; $messages['folderdeleting'] = 'அடைவை நீகà¯à®•à¯à®•à®¿à®±à®¤à¯...'; -$messages['folderrenaming'] = 'அடைவை மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿà¯à®•à®¿à®±à®¤à¯...'; $messages['foldermoving'] = 'அடைவை நகரà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯...'; $messages['formincomplete'] = 'விணà¯à®£à®ªà¯à®ªà®¤à¯à®¤à¯ˆ à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®• நிறைவ௠செயà¯à®¯à®µà®¿à®²à¯à®²à¯ˆ'; $messages['noemailwarning'] = 'தயவ௠செயà¯à®¤à¯ உணà¯à®®à¯ˆà®¯à®¾à®© மினà¯à®©à®žà¯à®šà®²à¯ˆ எழà¯à®¤à¯à®™à¯à®•à®³à¯'; @@ -86,7 +84,6 @@ $messages['movingmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯à $messages['receiptsent'] = 'படிதà¯à®¤ சீடà¯à®Ÿà¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯'; $messages['errorsendingreceipt'] = 'சீடà¯à®Ÿà¯ˆ அனà¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ'; $messages['nodeletelastidentity'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடையாளதà¯à®¤à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ இத௠தான௠கடைசி'; -$messages['addsubfolderhint'] = 'இநà¯à®¤ அடைவ௠இபà¯à®ªà¯‡à®¾à®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à®©à¯ தà¯à®£à¯ˆ அடைவாக உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯'; $messages['forbiddencharacter'] = 'அடைவ௠பெயரில௠தடை செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ எழà¯à®¤à¯à®¤à¯à®•à¯à®•à®³à¯ உளà¯à®³à®¤à¯'; $messages['selectimportfile'] = 'தயவ௠செயà¯à®¤à¯ à®à®±à¯à®±à¯à®µà®¤à®±à¯à®•à¯ ஒர௠கோபà¯à®ªà¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®™à¯à®•à®³à¯'; $messages['addresswriterror'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à®¿à®²à¯ எழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯'; diff --git a/program/localization/th_TH/labels.inc b/program/localization/th_TH/labels.inc index 4daa87bbb..3a6ea4948 100644 --- a/program/localization/th_TH/labels.inc +++ b/program/localization/th_TH/labels.inc @@ -162,9 +162,6 @@ $labels['foldername'] = 'ชื่à¸à¸à¸¥à¹ˆà¸à¸‡à¸ˆà¸”หมาย'; $labels['subscribed'] = 'ลงชื่à¸'; $labels['create'] = 'สร้าง'; $labels['createfolder'] = 'สร้างà¸à¸¥à¹ˆà¸à¸‡à¸ˆà¸”หมาย'; -$labels['rename'] = 'เปลื่ยนชื่à¸'; -$labels['renamefolder'] = 'เปลี่ยนชื่à¸à¸à¸¥à¹ˆà¸à¸‡à¸ˆà¸”หมาย'; -$labels['deletefolder'] = 'ลบà¸à¸¥à¹ˆà¸à¸‡à¸ˆà¸”หมาย'; $labels['managefolders'] = 'จัดà¸à¸²à¸£à¸à¸¥à¹ˆà¸à¸‡à¸ˆà¸”หมาย'; $labels['sortby'] = 'เรียงตาม'; $labels['sortasc'] = 'เรียงจาà¸à¸«à¸™à¹‰à¸²à¹„ปหลัง'; diff --git a/program/localization/tr_TR/labels.inc b/program/localization/tr_TR/labels.inc index fc1e0bdd2..31707336d 100644 --- a/program/localization/tr_TR/labels.inc +++ b/program/localization/tr_TR/labels.inc @@ -313,9 +313,6 @@ $labels['subscribed'] = 'Abonelik'; $labels['messagecount'] = 'Postalar'; $labels['create'] = 'OluÅŸtur'; $labels['createfolder'] = 'Yeni klasör oluÅŸtur'; -$labels['rename'] = 'Yeniden adlandır'; -$labels['renamefolder'] = 'Klasörü yeniden adlandır'; -$labels['deletefolder'] = 'Klasörü sil'; $labels['managefolders'] = 'Klasörleri düzenle'; $labels['specialfolders'] = 'Özel klasörler'; $labels['sortby'] = 'Sırala'; diff --git a/program/localization/tr_TR/messages.inc b/program/localization/tr_TR/messages.inc index 2d057d35b..bab14905e 100644 --- a/program/localization/tr_TR/messages.inc +++ b/program/localization/tr_TR/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Seçili kiÅŸileri silmek istediÄŸinizden em $messages['deletemessagesconfirm'] = 'Seçili postaları silmek istediÄŸinizden emin misiniz?'; $messages['deletefolderconfirm'] = 'Bu klasörü silmek istediÄŸinizden emin misiniz?'; $messages['purgefolderconfirm'] = 'Bu klasördeki tüm postaları silmek istediÄŸinizden emin misiniz?'; -$messages['foldercreating'] = 'Klasör oluÅŸtuluyor...'; $messages['folderdeleting'] = 'Klasör siliniyor...'; -$messages['folderrenaming'] = 'Klasör yeniden adlandırılıyor...'; $messages['foldermoving'] = 'Klasör taşınıyor...'; $messages['formincomplete'] = 'Form tam olarak doldurulmadı'; $messages['noemailwarning'] = 'Lütfen geçerli bir e-posta adresi girin'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'Posta kopyalanıyor...'; $messages['receiptsent'] = 'Okundu onayı gönderildi'; $messages['errorsendingreceipt'] = 'Okundu onayı gönderilemedi'; $messages['nodeletelastidentity'] = 'Son kimliÄŸiniz olduÄŸu için bu kimliÄŸi silemezsiniz'; -$messages['addsubfolderhint'] = 'Bu klasör, ÅŸu an seçili olanın alt klasörü olarak oluÅŸturulacak'; $messages['forbiddencharacter'] = 'Klasör ismi yasaklanmış bir karakter içeriyor'; $messages['selectimportfile'] = 'Lütfen yüklenecek dosyayı seçin'; $messages['addresswriterror'] = 'Seçili adres defterine yazılamaz'; diff --git a/program/localization/uk_UA/labels.inc b/program/localization/uk_UA/labels.inc index be69f41af..877682dd1 100644 --- a/program/localization/uk_UA/labels.inc +++ b/program/localization/uk_UA/labels.inc @@ -38,15 +38,15 @@ $labels['to'] = 'Кому'; $labels['cc'] = 'КопіÑ'; $labels['bcc'] = 'Прихована'; $labels['replyto'] = 'Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа'; -$labels['mailreplyto'] = 'Mail-Reply-To'; -$labels['mailfollowupto'] = 'Mail-Followup-To'; +$labels['followupto'] = 'Followup-To'; $labels['date'] = 'Дата'; $labels['size'] = 'Розмір'; $labels['priority'] = 'Пріоритет'; $labels['organization'] = 'ОрганізаціÑ'; +$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ'; $labels['reply-to'] = 'ВідповіÑти'; -$labels['mailreply-to'] = 'Mail-Reply-To'; -$labels['mailfollowup-to'] = 'Mail-Followup-To'; +$labels['mail-reply-to'] = 'Mail-Reply-To'; +$labels['mail-followup-to'] = 'Mail-Followup-To'; $labels['mailboxlist'] = 'Папки'; $labels['messagesfromto'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· $from по $to із $count'; $labels['threadsfromto'] = 'ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· $from по $to із $count'; @@ -200,8 +200,7 @@ $labels['maxuploadsize'] = 'МакÑимальний розмір файлу $si $labels['addcc'] = 'Додати копію'; $labels['addbcc'] = 'Додати приховану копію'; $labels['addreplyto'] = 'Додати зворотню адреÑу'; -$labels['addmailreplyto'] = 'Додати Mail-Reply-To'; -$labels['addmailfollowupto'] = 'Додати Mail-Followup-To'; +$labels['addfollowupto'] = 'Додати Followup-To'; $labels['mdnrequest'] = 'Відправник цього лиÑта запитав про прочитаннÑ. Повідомити відправника?'; $labels['receiptread'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ'; $labels['yourmessage'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð’Ð°ÑˆÐ¾Ð³Ð¾ лиÑта'; @@ -213,6 +212,7 @@ $labels['email'] = 'Електронна адреÑа'; $labels['addcontact'] = 'Додати вибрані контакти до ÑпиÑку контактів'; $labels['editcontact'] = 'Редагувати контакт'; $labels['contacts'] = 'Контакти'; +$labels['contactproperties'] = 'ВлаÑтивоÑÑ‚Ñ– контакта'; $labels['edit'] = 'Правка'; $labels['cancel'] = 'СкаÑувати'; $labels['save'] = 'Зберегти'; @@ -320,6 +320,7 @@ $labels['previewpanemarkread'] = 'Позначити переглÑнуті ли $labels['afternseconds'] = 'через $n Ñекунд'; $labels['reqmdn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ доÑтавку'; $labels['reqdsn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ñтавки'; +$labels['replysamefolder'] = 'РозміÑтити відповіді у тій же папці, де знаходитьÑÑ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»'; $labels['folder'] = 'Папка'; $labels['folders'] = 'Папки'; $labels['foldername'] = 'Ðазва папки'; @@ -327,9 +328,6 @@ $labels['subscribed'] = 'ПідпиÑані'; $labels['messagecount'] = 'ЛиÑти'; $labels['create'] = 'Створити'; $labels['createfolder'] = 'Створити нову папку'; -$labels['rename'] = 'Перейменувати'; -$labels['renamefolder'] = 'Перейменувати папку'; -$labels['deletefolder'] = 'Видалити папку'; $labels['managefolders'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ°Ð¼Ð¸'; $labels['specialfolders'] = 'ОÑобливі папки'; $labels['sortby'] = 'ВідÑортувати за'; diff --git a/program/localization/uk_UA/messages.inc b/program/localization/uk_UA/messages.inc index 6ec33e506..c917c318b 100644 --- a/program/localization/uk_UA/messages.inc +++ b/program/localization/uk_UA/messages.inc @@ -23,6 +23,7 @@ $messages['cookiesdisabled'] = 'Ваш переглÑдач не приймає $messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð·Ð°Ñтаріла'; $messages['imaperror'] = 'Ðевдале з`Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· IMAP Ñервером'; $messages['servererror'] = 'Помилка Ñервера!'; +$messages['servererrormsg'] = 'Помилка Ñервера: $msg'; $messages['invalidrequest'] = 'Ðевірний запит! Дані не збережено.'; $messages['nomessagesfound'] = 'ЛиÑтів не знайдено'; $messages['loggedout'] = 'Вашу ÑеÑÑ–ÑŽ завершено. Ð’Ñього найкращого!'; @@ -54,9 +55,7 @@ $messages['deletecontactconfirm'] = 'Ви дійÑно бажаєте видал $messages['deletemessagesconfirm'] = 'Ви дійÑно бажаєте видалити вибрані лиÑти?'; $messages['deletefolderconfirm'] = 'Ви дійÑно бажаєте видалити цю папку?'; $messages['purgefolderconfirm'] = 'Ви дійÑно бажаєте видалити вÑÑ– лиÑти у цій папці?'; -$messages['foldercreating'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...'; $messages['folderdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...'; -$messages['folderrenaming'] = 'ÐŸÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...'; $messages['foldermoving'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...'; $messages['formincomplete'] = 'Заповнено не вÑÑ– полÑ'; $messages['noemailwarning'] = 'Будь лаÑка, введіть коректну адреÑу електронної пошти'; @@ -88,10 +87,11 @@ $messages['sourceisreadonly'] = 'Дане джерело Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ñтуп $messages['errorsavingcontact'] = 'Ðеможливо зберегти адреÑу контакту'; $messages['movingmessage'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð»Ð¸Ñта...'; $messages['copyingmessage'] = 'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñта...'; +$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)'; +$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)'; $messages['receiptsent'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾'; $messages['errorsendingreceipt'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ'; $messages['nodeletelastidentity'] = 'Ви не можете видалити цей профіль, він у Ð’Ð°Ñ Ð¾Ñтанній.'; -$messages['addsubfolderhint'] = 'Цю папку буде Ñтворено Ñк підпапку в поточній.'; $messages['forbiddencharacter'] = 'Ім\'Ñ Ð¿Ð°Ð¿ÐºÐ¸ міÑтить заборонені Ñимволи'; $messages['selectimportfile'] = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ'; $messages['addresswriterror'] = 'Обрана адреÑна книга недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу'; @@ -115,5 +115,15 @@ $messages['emailformaterror'] = 'Ðевірна електронна адреÑÐ $messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max.'; $messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max.'; $messages['internalerror'] = 'Виникла Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз'; +$messages['contactdelerror'] = 'Ðеможливо видалити контакт(и)'; +$messages['contactdeleted'] = 'Контакт(и) видалено уÑпішно'; +$messages['groupdeleted'] = 'Група видалена уÑпішно'; +$messages['grouprenamed'] = 'Група перейменована уÑпішно'; +$messages['groupcreated'] = 'Група Ñтворена уÑпішно'; +$messages['messagedeleted'] = 'ЛиÑÑ‚(и) видалено уÑпішно'; +$messages['messagemoved'] = 'ЛиÑÑ‚(и) переміщено уÑпішно'; +$messages['messagecopied'] = 'ЛиÑÑ‚(и) Ñкопійовано уÑпішно'; +$messages['messagemarked'] = 'ЛиÑÑ‚(и) помічено уÑпішно'; +$messages['autocompletechars'] = 'Введіть щонайменьше $min Ñимволів Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ'; ?> diff --git a/program/localization/vi_VN/labels.inc b/program/localization/vi_VN/labels.inc index 611b5a40c..ece0a5ced 100644 --- a/program/localization/vi_VN/labels.inc +++ b/program/localization/vi_VN/labels.inc @@ -205,9 +205,6 @@ $labels['foldername'] = 'Tên thÆ° mục'; $labels['subscribed'] = 'Cho sá» dụng'; $labels['create'] = 'Tạo'; $labels['createfolder'] = 'Tạo thÆ° mục má»›i'; -$labels['rename'] = 'Äổi tên'; -$labels['renamefolder'] = 'Äổi tên thÆ° mục'; -$labels['deletefolder'] = 'Xóa thÆ° mục'; $labels['managefolders'] = 'Quản trị thÆ° mục'; $labels['sortby'] = 'Sắp xếp'; diff --git a/program/localization/zh_CN/labels.inc b/program/localization/zh_CN/labels.inc index acebdf718..6c3c79ad6 100644 --- a/program/localization/zh_CN/labels.inc +++ b/program/localization/zh_CN/labels.inc @@ -311,9 +311,6 @@ $labels['subscribed'] = '已订阅'; $labels['messagecount'] = '邮件数é‡'; $labels['create'] = '建立'; $labels['createfolder'] = '建立新邮件夹'; -$labels['rename'] = 'é‡å‘½å'; -$labels['renamefolder'] = 'é‡å‘½å邮件夹'; -$labels['deletefolder'] = 'åˆ é™¤é‚®ä»¶å¤¹'; $labels['managefolders'] = '管ç†é‚®ä»¶å¤¹'; $labels['specialfolders'] = '指定邮件夹'; $labels['sortby'] = '排åº'; diff --git a/program/localization/zh_CN/messages.inc b/program/localization/zh_CN/messages.inc index 5fc0d3f95..dbe5af585 100644 --- a/program/localization/zh_CN/messages.inc +++ b/program/localization/zh_CN/messages.inc @@ -55,9 +55,7 @@ $messages['deletecontactconfirm'] = '确定è¦åˆ 除已选ä¸çš„è”系人?'; $messages['deletemessagesconfirm'] = '确定è¦åˆ 除已选ä¸çš„邮件?'; $messages['deletefolderconfirm'] = '确定è¦åˆ 除已选ä¸çš„邮件夹?'; $messages['purgefolderconfirm'] = '是å¦ç¡®è®¤è¦åˆ 除当å‰é‚®ä»¶å¤¹ä¸çš„所有邮件?'; -$messages['foldercreating'] = 'æ£åœ¨åˆ›å»ºé‚®ä»¶å¤¹'; $messages['folderdeleting'] = 'æ£åœ¨åˆ 除邮件夹'; -$messages['folderrenaming'] = 'æ£åœ¨é‡å‘½å邮件夹'; $messages['foldermoving'] = 'æ£åœ¨ç§»åŠ¨ç›®å½•...'; $messages['formincomplete'] = '当å‰è¡¨å•æœªå¡«å†™å®Œæ•´ï¼Œè¯·å®Œæ•´å¡«å†™'; $messages['noemailwarning'] = '请输入一个有效的邮件地å€'; @@ -92,7 +90,6 @@ $messages['copyingmessage'] = 'å¤åˆ¶é‚®ä»¶åˆ°...'; $messages['receiptsent'] = 'æˆåŠŸå‘é€äº†ä¸€ä¸ªå·²è¯»å›žæ‰§'; $messages['errorsendingreceipt'] = 'æ— æ³•å‘é€å›žæ‰§'; $messages['nodeletelastidentity'] = 'æ— æ³•åˆ é™¤è¿™ä¸ªèº«ä»½ï¼Œè¿™æ˜¯æœ€åŽä¸€ä¸ªã€‚'; -$messages['addsubfolderhint'] = '新建的文件夹将æˆä¸ºæ‰€é€‰æ–‡ä»¶å¤¹çš„å文件夹'; $messages['forbiddencharacter'] = '目录å包å«éšè—å—符'; $messages['selectimportfile'] = '请选择è¦ä¸Šä¼ 的文件'; $messages['addresswriterror'] = '已选择的地å€ç°¿ä¸å¯å†™'; diff --git a/program/localization/zh_TW/labels.inc b/program/localization/zh_TW/labels.inc index c05622edf..886d3a380 100644 --- a/program/localization/zh_TW/labels.inc +++ b/program/localization/zh_TW/labels.inc @@ -40,8 +40,7 @@ $labels['to'] = '收件者'; $labels['cc'] = '副本'; $labels['bcc'] = '密件副本'; $labels['replyto'] = '回覆至'; -$labels['mailreplyto'] = '信件回覆至'; -$labels['mailfollowupto'] = '信件跟隨至'; +$labels['followupto'] = '信件跟隨至'; $labels['date'] = '日期'; $labels['size'] = '大å°'; $labels['priority'] = 'å„ªå…ˆé †åº'; @@ -203,8 +202,7 @@ $labels['maxuploadsize'] = '上傳檔案大å°é™åˆ¶ç‚º $size'; $labels['addcc'] = '新增副本'; $labels['addbcc'] = '新增密件副本'; $labels['addreplyto'] = '新增回覆地å€'; -$labels['addmailreplyto'] = '新增 信件回覆至'; -$labels['addmailfollowupto'] = '新增 信件跟隨至'; +$labels['addfollowupto'] = '新增 信件跟隨至'; $labels['mdnrequest'] = 'æ¤éƒµä»¶çš„å¯„ä»¶è€…å¸Œæœ›åœ¨ä½ é–±è®€æ¤éƒµä»¶æ™‚å—åˆ°é€šçŸ¥ã€‚ä½ æƒ³è¦é€šçŸ¥å¯„件者嗎?'; $labels['receiptread'] = '郵件回æ¢ï¼ˆå·²é–±è®€ï¼‰'; $labels['yourmessage'] = 'é€™æ˜¯ä½ éƒµä»¶çš„éƒµä»¶å›žæ¢'; @@ -332,9 +330,6 @@ $labels['subscribed'] = '顯示'; $labels['messagecount'] = '郵件數目'; $labels['create'] = '建立'; $labels['createfolder'] = '建立新資料夾'; -$labels['rename'] = 'é‡æ–°å‘½å'; -$labels['renamefolder'] = 'é‡æ–°å‘½å資料夾'; -$labels['deletefolder'] = '刪除資料夾'; $labels['managefolders'] = '管ç†è³‡æ–™å¤¾'; $labels['specialfolders'] = 'é è¨è³‡æ–™å¤¾è¨å®š'; $labels['sortby'] = '排åº'; diff --git a/program/localization/zh_TW/messages.inc b/program/localization/zh_TW/messages.inc index fc3ebbf8e..68c543fc2 100644 --- a/program/localization/zh_TW/messages.inc +++ b/program/localization/zh_TW/messages.inc @@ -57,9 +57,7 @@ $messages['deletecontactconfirm'] = 'ä½ ç¢ºå®šè¦åˆªé™¤å·²é¸æ“‡çš„è¯çµ¡äººï¼Ÿ' $messages['deletemessagesconfirm'] = 'ä½ ç¢ºå®šè¦åˆªé™¤å·²é¸æ“‡çš„郵件?'; $messages['deletefolderconfirm'] = 'ä½ ç¢ºå®šè¦åˆªé™¤é€™å€‹è³‡æ–™å¤¾å—Žï¼Ÿ'; $messages['purgefolderconfirm'] = 'ä½ ç¢ºå®šè¦åˆªé™¤é€™å€‹è³‡æ–™å¤¾è£¡é¢æ‰€æœ‰çš„郵件嗎?'; -$messages['foldercreating'] = '建立資料夾ä¸...'; $messages['folderdeleting'] = '刪除資料夾ä¸...'; -$messages['folderrenaming'] = 'é‡æ–°å‘½å資料夾ä¸...'; $messages['foldermoving'] = '移動資料夾ä¸...'; $messages['formincomplete'] = '這個表單有部分未填,請完整填寫'; $messages['noemailwarning'] = '請輸入一個有效的電å郵件ä½å€'; @@ -96,7 +94,6 @@ $messages['markingmessage'] = '標示訊æ¯...'; $messages['receiptsent'] = '閱讀回æ¢å‚³é€æˆåŠŸ'; $messages['errorsendingreceipt'] = '無法傳é€å›žæ¢'; $messages['nodeletelastidentity'] = 'ä½ ä¸èƒ½åˆªé™¤æ¤èº«ä»½ï¼Œå› 為åªå‰©ä¸€å€‹èº«ä»½ã€‚'; -$messages['addsubfolderhint'] = 'æ¤è³‡æ–™å¤¾æœƒæˆç‚ºç›®å‰æ‰€é¸è³‡æ–™å¤¾çš„å資料夾'; $messages['forbiddencharacter'] = '資料夾å稱ä¸åŒ…å«éžæ³•çš„å—å…ƒ'; $messages['selectimportfile'] = 'è«‹é¸æ“‡ä¸€å€‹ä¸Šå‚³çš„檔案'; $messages['addresswriterror'] = '無法寫入é¸æ“‡çš„通訊錄'; @@ -129,5 +126,6 @@ $messages['messagedeleted'] = '訊æ¯æˆåŠŸåˆªé™¤'; $messages['messagemoved'] = '訊æ¯æˆåŠŸç§»å‹•'; $messages['messagecopied'] = '訊æ¯æˆåŠŸè¤‡è£½'; $messages['messagemarked'] = '訊æ¯æˆåŠŸæ¨™ç¤º'; +$messages['autocompletechars'] = '輸入至少 $min å—å…ƒæ‰èƒ½è‡ªå‹•å®Œæˆè‡ªå‹•å®Œæˆ'; ?> diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 828a94f3b..45b95c937 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -267,19 +267,11 @@ function rcmail_compose_headers($attrib) $param = 'replyto'; $header = 'reply-to'; - case 'mailreplyto': - case 'mail-reply-to': + case 'followupto': + case 'followup-to': if (!$fname) { - $fname = '_mailreplyto'; - $param = 'mailreplyto'; - $header = 'mail-reply-to'; - } - - case 'mailfollowupto': - case 'mail-followup-to': - if (!$fname) { - $fname = '_mailfollowupto'; - $param = 'mailfollowupto'; + $fname = '_followupto'; + $param = 'followupto'; $header = 'mail-followup-to'; } @@ -354,10 +346,10 @@ function rcmail_compose_headers($attrib) $fvalue = $MESSAGE->get_header('cc'); else if ($header=='bcc' && !empty($MESSAGE->headers->bcc)) $fvalue = $MESSAGE->get_header('bcc'); + else if ($header=='reply-to' && !empty($MESSAGE->headers->others['mail-reply-to'])) + $fvalue = $MESSAGE->get_header('mail-reply-to'); else if ($header=='reply-to' && !empty($MESSAGE->headers->replyto)) $fvalue = $MESSAGE->get_header('reply-to'); - else if ($header=='mail-reply-to' && !empty($MESSAGE->headers->others['mail-reply-to'])) - $fvalue = $MESSAGE->get_header('followup-to'); else if ($header=='mail-followup-to' && !empty($MESSAGE->headers->others['mail-followup-to'])) $fvalue = $MESSAGE->get_header('mail-followup-to'); @@ -742,7 +734,7 @@ function rcmail_create_reply_body($body, $bodyIsHtml) // build reply prefix $from = array_pop($RCMAIL->imap->decode_address_list($MESSAGE->get_header('from'))); $prefix = sprintf("On %s, %s wrote:", - $MESSAGE->headers->date, $from['name'] ? $from['name'] : idn_to_utf8($from['email'])); + $MESSAGE->headers->date, $from['name'] ? $from['name'] : idn_to_utf8($from['mailto'])); if (!$bodyIsHtml) { $body = preg_replace('/\r?\n/', "\n", $body); diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc index 4cd51d816..8a7c5916b 100644 --- a/program/steps/mail/copy.inc +++ b/program/steps/mail/copy.inc @@ -33,7 +33,7 @@ if (!empty($_POST['_uid']) && !empty($_POST['_target_mbox'])) { if (!$copied) { // send error message - $OUTPUT->show_message('errorcopying', 'error'); + rcmail_display_server_error('errorcopying'); $OUTPUT->send(); exit; } @@ -52,5 +52,3 @@ else { // send response $OUTPUT->send(); - - diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc index 26f464b0c..3b96dc29c 100644 --- a/program/steps/mail/folders.inc +++ b/program/steps/mail/folders.inc @@ -20,55 +20,61 @@ // only process ajax requests if (!$OUTPUT->ajax_call) - return; + return; $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); // send EXPUNGE command -if ($RCMAIL->action=='expunge') -{ - $success = $IMAP->expunge($mbox); +if ($RCMAIL->action == 'expunge') { - // reload message list if current mailbox - if ($success && !empty($_REQUEST['_reload'])) - { - $OUTPUT->command('set_quota', rcmail_quota_content()); - $OUTPUT->command('message_list.clear'); - $RCMAIL->action = 'list'; - return; - } - else - $commands = "// expunged: $success\n"; + $success = $IMAP->expunge($mbox); + + // reload message list if current mailbox + if ($success) { + $OUTPUT->show_message('folderexpunged', 'confirmation'); + + if (!empty($_REQUEST['_reload'])) { + $OUTPUT->command('set_quota', rcmail_quota_content()); + $OUTPUT->command('message_list.clear'); + $RCMAIL->action = 'list'; + return; + } + } + else { + rcmail_display_server_error(); + } } // clear mailbox -else if ($RCMAIL->action=='purge') +else if ($RCMAIL->action == 'purge') { - $delimiter = $IMAP->get_hierarchy_delimiter(); - $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; - $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; + $delimiter = $IMAP->get_hierarchy_delimiter(); + $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; + $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; - // we should only be purging trash and junk (or their subfolders) - if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] - || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox)) - { - $success = $IMAP->clear_mailbox($mbox); - - if ($success && !empty($_REQUEST['_reload'])) - { - $OUTPUT->set_env('messagecount', 0); - $OUTPUT->set_env('pagecount', 0); - $OUTPUT->command('message_list.clear'); - $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); - $OUTPUT->command('set_unread_count', $mbox, 0); - $OUTPUT->command('set_quota', rcmail_quota_content()); - $_SESSION['unseen_count'][$mbox] = 0; - } - else - $commands = "// purged: $success"; - } -} + // we should only be purging trash and junk (or their subfolders) + if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] + || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox) + ) { + $success = $IMAP->clear_mailbox($mbox); -$OUTPUT->send($commands); + if ($success) { + $OUTPUT->show_message('folderpurged', 'confirmation'); + if (!empty($_REQUEST['_reload'])) { + $OUTPUT->set_env('messagecount', 0); + $OUTPUT->set_env('pagecount', 0); + $OUTPUT->command('message_list.clear'); + $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); + $OUTPUT->command('set_unread_count', $mbox, 0); + $OUTPUT->command('set_quota', rcmail_quota_content()); + rcmail_set_unseen_count($mbox, 0); + } + } + else { + rcmail_display_server_error(); + } + } +} +$OUTPUT->send(); diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index c7498d5b1..750cf6f61 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -436,65 +436,6 @@ function rcmail_messagecount_display($attrib) } -function rcmail_quota_display($attrib) - { - global $OUTPUT; - - if (!$attrib['id']) - $attrib['id'] = 'rcmquotadisplay'; - - if(isset($attrib['display'])) - $_SESSION['quota_display'] = $attrib['display']; - - $OUTPUT->add_gui_object('quotadisplay', $attrib['id']); - - $quota = rcmail_quota_content($attrib); - - $OUTPUT->add_script('$(document).ready(function(){ - rcmail.set_quota('.json_serialize($quota).')});', 'foot'); - - return html::span($attrib, ''); - } - - -function rcmail_quota_content($attrib=NULL) - { - global $COMM_PATH, $RCMAIL; - - $quota = $RCMAIL->imap->get_quota(); - $quota = $RCMAIL->plugins->exec_hook('quota', $quota); - - $quota_result = (array) $quota; - $quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : ''; - - if (!$quota['total'] && $RCMAIL->config->get('quota_zero_as_unlimited')) { - $quota_result['title'] = rcube_label('unlimited'); - $quota_result['percent'] = 0; - } - else if ($quota['total']) { - if (!isset($quota['percent'])) - $quota_result['percent'] = min(100, round(($quota['used']/max(1,$quota['total']))*100)); - - $title = sprintf('%s / %s (%.0f%%)', - show_bytes($quota['used'] * 1024), show_bytes($quota['total'] * 1024), - $quota_result['percent']); - - $quota_result['title'] = $title; - - if ($attrib['width']) - $quota_result['width'] = $attrib['width']; - if ($attrib['height']) - $quota_result['height'] = $attrib['height']; - } - else { - $quota_result['title'] = rcube_label('unknown'); - $quota_result['percent'] = 0; - } - - return $quota_result; - } - - function rcmail_get_messagecount_text($count=NULL, $page=NULL) { global $RCMAIL, $IMAP; @@ -545,7 +486,7 @@ function rcmail_send_unread_count($mbox_name, $force=false, $count=null) { global $RCMAIL; - $old_unseen = $_SESSION['unseen_count'][$mbox_name]; + $old_unseen = rcmail_get_unseen_count($mbox_name); if ($count === null) $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force); @@ -555,13 +496,33 @@ function rcmail_send_unread_count($mbox_name, $force=false, $count=null) if ($unseen != $old_unseen || ($mbox_name == 'INBOX')) $RCMAIL->output->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX')); - // @TODO: this data is doubled (session and cache tables) if caching is enabled - $_SESSION['unseen_count'][$mbox_name] = $unseen; + rcmail_set_unseen_count($mbox_name, $unseen); return $unseen; } +function rcmail_set_unseen_count($mbox_name, $count) +{ + // @TODO: this data is doubled (session and cache tables) if caching is enabled + + // Make sure we have an array here (#1487066) + if (!is_array($_SESSION['unseen_count'])) + $_SESSION['unseen_count'] = array(); + + $_SESSION['unseen_count'][$mbox_name] = $count; +} + + +function rcmail_get_unseen_count($mbox_name) +{ + if (is_array($_SESSION['unseen_count']) && array_key_exists($mbox_name, $_SESSION['unseen_count'])) + return $_SESSION['unseen_count'][$mbox_name]; + else + return null; +} + + /** * Sets message is_safe flag according to 'show_images' option value * @@ -966,10 +927,14 @@ function rcmail_message_headers($attrib, $headers=NULL) else $header_value = trim($IMAP->decode_header($value)); - $output_headers[$hkey] = array('title' => rcube_label($hkey), 'value' => $header_value, 'raw' => $value); + $output_headers[$hkey] = array( + 'title' => rcube_label(preg_replace('/(^mail-|-)/', '', $hkey)), + 'value' => $header_value, 'raw' => $value + ); } - $plugin = $RCMAIL->plugins->exec_hook('message_headers_output', array('output' => $output_headers, 'headers' => $MESSAGE->headers)); + $plugin = $RCMAIL->plugins->exec_hook('message_headers_output', + array('output' => $output_headers, 'headers' => $MESSAGE->headers)); // compose html table $table = new html_table(array('cols' => 2)); diff --git a/program/steps/mail/getunread.inc b/program/steps/mail/getunread.inc index a035f5204..e60f36cae 100644 --- a/program/steps/mail/getunread.inc +++ b/program/steps/mail/getunread.inc @@ -28,15 +28,18 @@ if (!empty($a_folders)) $check_all = (bool)$RCMAIL->config->get('check_all_folders'); foreach ($a_folders as $mbox_row) { - if (!$check_all && isset($_SESSION['unseen_count'][$mbox_row]) && $mbox_row != $current) - $unseen = $_SESSION['unseen_count'][$mbox_row]; + $unseen_old = rcmail_get_unseen_count($mbox_row); + + if (!$check_all && $unseen_old !== null && $mbox_row != $current) + $unseen = $unseen_old; else - $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', !isset($_SESSION['unseen_count'][$mbox_row])); + $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', $unseen_old === null); - if ($unseen || !isset($_SESSION['unseen_count'][$mbox_row])) { + if ($unseen || $unseen_old === null) { $OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX'); } - $_SESSION['unseen_count'][$mbox_row] = $unseen; + + rcmail_set_unseen_count($mbox_row, $unseen); } } diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc index 6353be7cc..7e6d294c8 100644 --- a/program/steps/mail/list.inc +++ b/program/steps/mail/list.inc @@ -106,8 +106,7 @@ if (isset($a_headers) && count($a_headers)) else { // handle IMAP errors (e.g. #1486905) if ($err_code = $IMAP->get_error_code()) { - $err_str = $IMAP->get_error_str(); - $OUTPUT->show_message('servererrormsg', 'error', array('msg' => $err_str)); + rcmail_display_server_error(); } else if ($search_request) $OUTPUT->show_message('searchnomatch', 'notice'); diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc index 5411e3f46..1ff4407c5 100644 --- a/program/steps/mail/mark.inc +++ b/program/steps/mail/mark.inc @@ -47,7 +47,7 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va // send error message if ($_POST['_from'] != 'show') $OUTPUT->command('list_mailbox'); - $OUTPUT->show_message('errormarking', 'error'); + rcmail_display_server_error('errormarking'); $OUTPUT->send(); exit; } @@ -98,11 +98,11 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va // update mailboxlist $mbox = $IMAP->get_mailbox_name(); $unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0; - $old_unseen = $_SESSION['unseen_count'][$mbox]; + $old_unseen = rcmail_get_unseen_count($mbox); if ($old_unseen != $unseen_count) { $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); - $_SESSION['unseen_count'][$mbox] = $unseen_count; + rcmail_set_unseen_count($mbox, $unseen_count); } $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count)); diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc index 3940b6db9..2db3ec31a 100644 --- a/program/steps/mail/move_del.inc +++ b/program/steps/mail/move_del.inc @@ -39,7 +39,7 @@ if ($RCMAIL->action=='moveto' && !empty($_POST['_uid']) && strlen($_POST['_targe // send error message if ($_POST['_from'] != 'show') $OUTPUT->command('list_mailbox'); - $OUTPUT->show_message('errormoving', 'error'); + rcmail_display_server_error('errormoving'); $OUTPUT->send(); exit; } @@ -60,7 +60,7 @@ else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) { // send error message if ($_POST['_from'] != 'show') $OUTPUT->command('list_mailbox'); - $OUTPUT->show_message('errordeleting', 'error'); + rcmail_display_server_error('errordeleting'); $OUTPUT->send(); exit; } @@ -109,11 +109,11 @@ else // update mailboxlist $mbox = $IMAP->get_mailbox_name(); $unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0; - $old_unseen = $_SESSION['unseen_count'][$mbox]; - + $old_unseen = rcmail_get_unseen_count($mbox); + if ($old_unseen != $unseen_count) { $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); - $_SESSION['unseen_count'][$mbox] = $unseen_count; + rcmail_set_unseen_count($mbox, $unseen_count); } if ($RCMAIL->action=='moveto' && strlen($target)) { diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc index 90d1c374c..39fb32fc9 100644 --- a/program/steps/mail/search.inc +++ b/program/steps/mail/search.inc @@ -124,8 +124,7 @@ if (!empty($result_h)) { } // handle IMAP errors (e.g. #1486905) else if ($err_code = $IMAP->get_error_code()) { - $err_str = $IMAP->get_error_str(); - $OUTPUT->show_message('servererrormsg', 'error', array('msg' => $err_str)); + rcmail_display_server_error(); } else { $OUTPUT->show_message('searchnomatch', 'notice'); diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 796e7782b..09f12ed07 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -70,7 +70,7 @@ function rcmail_encrypt_header($what) function rcmail_get_identity($id) { global $USER, $OUTPUT; - + if ($sql_arr = $USER->get_identity($id)) { $out = $sql_arr; $out['mailto'] = $sql_arr['email']; @@ -100,7 +100,7 @@ function rcmail_fix_emoticon_paths(&$mime_message) // remove any null-byte characters before parsing $body = preg_replace('/\x00/', '', $body); - + $searchstr = 'program/js/tiny_mce/plugins/emotions/img/'; $offset = 0; @@ -193,6 +193,7 @@ function rcmail_email_input_format($mailto, $count=false, $check=true) return implode(', ', $result); } + /****** compose message ********/ if (strlen($_POST['_draft_saveid']) > 3) @@ -297,12 +298,12 @@ $headers['From'] = rcube_charset_convert($from_string, RCMAIL_CHARSET, $message_ $headers['To'] = $mailto; // additional recipients -if (!empty($mailcc)) +if (!empty($mailcc)) { $headers['Cc'] = $mailcc; - -if (!empty($mailbcc)) +} +if (!empty($mailbcc)) { $headers['Bcc'] = $mailbcc; - +} if (!empty($identity_arr['bcc'])) { $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc']; $RECIPIENT_COUNT ++; @@ -318,36 +319,43 @@ if (($max_recipients = (int) $RCMAIL->config->get('max_recipients')) > 0) { // add subject $headers['Subject'] = trim(get_input_value('_subject', RCUBE_INPUT_POST, TRUE, $message_charset)); -if (!empty($identity_arr['organization'])) +if (!empty($identity_arr['organization'])) { $headers['Organization'] = $identity_arr['organization']; - -if (!empty($_POST['_replyto'])) +} +if (!empty($_POST['_replyto'])) { $headers['Reply-To'] = rcmail_email_input_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset)); -else if (!empty($identity_arr['reply-to'])) +} +else if (!empty($identity_arr['reply-to'])) { $headers['Reply-To'] = rcmail_email_input_format($identity_arr['reply-to'], false, true); - -if (!empty($_POST['_mailfollowupto'])) - $headers['Mail-Followup-To'] = rcmail_email_input_format(get_input_value('_mailfollowupto', RCUBE_INPUT_POST, TRUE, $message_charset)); -if (!empty($_POST['_mailreplyto'])) - $headers['Mail-Reply-To'] = rcmail_email_input_format(get_input_value('_mailreplyto', RCUBE_INPUT_POST, TRUE, $message_charset)); - -if (!empty($_SESSION['compose']['reply_msgid'])) +} +if (!empty($headers['Reply-To'])) { + $headers['Mail-Reply-To'] = $headers['Reply-To']; +} +if (!empty($_POST['_followupto'])) { + $headers['Mail-Followup-To'] = rcmail_email_input_format(get_input_value('_followupto', RCUBE_INPUT_POST, TRUE, $message_charset)); +} +if (!empty($_SESSION['compose']['reply_msgid'])) { $headers['In-Reply-To'] = $_SESSION['compose']['reply_msgid']; +} // remember reply/forward UIDs in special headers -if (!empty($_SESSION['compose']['reply_uid']) && $savedraft) +if (!empty($_SESSION['compose']['reply_uid']) && $savedraft) { $headers['X-Draft-Info'] = array('type' => 'reply', 'uid' => $_SESSION['compose']['reply_uid']); -else if (!empty($_SESSION['compose']['forward_uid']) && $savedraft) +} +else if (!empty($_SESSION['compose']['forward_uid']) && $savedraft) { $headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => $_SESSION['compose']['forward_uid']); +} -if (!empty($_SESSION['compose']['references'])) +if (!empty($_SESSION['compose']['references'])) { $headers['References'] = $_SESSION['compose']['references']; +} if (!empty($_POST['_priority'])) { $priority = intval($_POST['_priority']); $a_priorities = array(1=>'highest', 2=>'high', 4=>'low', 5=>'lowest'); - if ($str_priority = $a_priorities[$priority]) + if ($str_priority = $a_priorities[$priority]) { $headers['X-Priority'] = sprintf("%d (%s)", $priority, ucfirst($str_priority)); + } } if (!empty($_POST['_receipt'])) { @@ -359,11 +367,12 @@ if (!empty($_POST['_receipt'])) { $headers['Message-ID'] = $message_id; $headers['X-Sender'] = $from; -if (is_array($headers['X-Draft-Info'])) +if (is_array($headers['X-Draft-Info'])) { $headers['X-Draft-Info'] = rcmail_draftinfo_encode($headers['X-Draft-Info'] + array('folder' => $_SESSION['compose']['mailbox'])); - -if (!empty($CONFIG['useragent'])) +} +if (!empty($CONFIG['useragent'])) { $headers['User-Agent'] = $CONFIG['useragent']; +} // exec hook for header checking and manipulation $data = $RCMAIL->plugins->exec_hook('message_outgoing_headers', array('headers' => $headers)); @@ -441,13 +450,16 @@ if ($isHtml) { $MAIL_MIME->setHTMLBody($plugin['body']); + // replace emoticons + $plugin['body'] = rcmail_replace_emoticons($plugin['body']); + // add a plain text version of the e-mail as an alternative part. $h2t = new html2text($plugin['body'], false, true, 0); $plainTextPart = rc_wordwrap($h2t->get_text(), $LINE_LENGTH, "\r\n"); $plainTextPart = wordwrap($plainTextPart, 998, "\r\n", true); if (!$plainTextPart) { - // empty message body breaks attachment handling in drafts - $plainTextPart = "\r\n"; + // empty message body breaks attachment handling in drafts + $plainTextPart = "\r\n"; } else { // make sure all line endings are CRLF (#1486712) @@ -513,9 +525,10 @@ if (is_array($_SESSION['compose']['attachments'])) ($attachment['data'] ? false : true), ($ctype == 'message/rfc822' ? '8bit' : 'base64'), ($ctype == 'message/rfc822' ? 'inline' : 'attachment'), - $message_charset, '', '', + '', '', '', $CONFIG['mime_param_folding'] ? 'quoted-printable' : NULL, - $CONFIG['mime_param_folding'] == 2 ? 'quoted-printable' : NULL + $CONFIG['mime_param_folding'] == 2 ? 'quoted-printable' : NULL, + '', RCMAIL_CHARSET ); } } diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index e660207cd..45dd8e168 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -196,8 +196,11 @@ else if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) { - if ($IMAP->set_flag($MESSAGE->uid, 'SEEN') && $_SESSION['unseen_count'][$mbox_name]) - $_SESSION['unseen_count'][$mbox_name] -= 1; + if ($IMAP->set_flag($MESSAGE->uid, 'SEEN')) { + if ($count = rcmail_get_unseen_count($mbox_name)) { + rcmail_set_unseen_count($mbox_name, $count - 1); + } + } } exit; diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc new file mode 100644 index 000000000..3a7c0d946 --- /dev/null +++ b/program/steps/settings/edit_folder.inc @@ -0,0 +1,294 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/settings/edit_folder.inc | + | | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | + | Licensed under the GNU GPL | + | | + | PURPOSE: | + | Provide functionality to create/edit a folder | + | | + +-----------------------------------------------------------------------+ + | Author: Aleksander Machniak <alec@alec.pl> | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +// WARNING: folder names in UI are encoded with RCMAIL_CHARSET + +// init IMAP connection +$RCMAIL->imap_connect(); + +function rcube_folder_form($attrib) +{ + global $RCMAIL; + + // edited folder name (empty in create-folder mode) + $mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); + $mbox_imap = rcube_charset_convert($mbox, RCMAIL_CHARSET, 'UTF7-IMAP'); + + // predefined path for new folder + $parent = trim(get_input_value('_path', RCUBE_INPUT_GPC, true)); + $parent_imap = rcube_charset_convert($parent, RCMAIL_CHARSET, 'UTF7-IMAP'); + + $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); + $special = (strlen($mbox_imap) && in_array($mbox_imap, (array) $RCMAIL->config->get('default_imap_folders'))); + $protected = ($special && $RCMAIL->config->get('protect_default_folders')); + $threading_supported = $RCMAIL->imap->get_capability('thread=references') + || $IMAP->get_capability('thread=orderedsubject') + || $IMAP->get_capability('thread=refs'); + + // Get mailbox stats (messages count, etc.), mailbox name and parent + if (strlen($mbox)) { + $msgcount = $RCMAIL->imap->messagecount($mbox_imap, 'ALL', true, false); + + $path = explode($delimiter, $mbox_imap); + $folder = array_pop($path); + $path = implode($delimiter, $path); + + $folder = rcube_charset_convert($folder, 'UTF7-IMAP'); + + $hidden_fields = array('name' => '_mbox', 'value' => $mbox); + } + else { + $path = $parent_imap; + } + + $form = array(); + + // General tab + $form['props'] = array( + 'name' => rcube_label('properties'), + ); + + // Location (name) + if ($protected) + $foldername = rcmail_localize_foldername($mbox_imap); + else { + if (isset($_POST['_name'])) + $folder = trim(get_input_value('_name', RCUBE_INPUT_POST, true)); + + $foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30)); + $foldername = $foldername->show($folder); + + if ($special) + $foldername .= ' (' . rcmail_localize_foldername($mbox_imap) .')'; + } + + $form['props']['fieldsets']['location'] = array( + 'name' => rcube_label('location'), + 'content' => array( + 'name' => array( + 'label' => rcube_label('foldername'), + 'value' => $foldername, + ), + ), + ); + + if (strlen($path)) { + $radio1 = new html_radiobutton(array('name' => '_parent', 'value' => '')); + $radio2 = new html_radiobutton(array('name' => '_parent', 'value' => $path)); + $selected = isset($_POST['_parent']) ? $_POST['_parent'] : $path; + + $html_path = str_replace($delimiter, ' » ', rcmail_localize_folderpath($path)); + + $folderpath = $radio1->show($selected) . Q(rcube_label('none')) . ' ' + .$radio2->show($selected) . Q($html_path); + + $form['props']['fieldsets']['location']['content']['path'] = array( + 'label' => rcube_label('parentfolder'), + 'value' => $folderpath, + ); + } + + // Settings + $form['props']['fieldsets']['settings'] = array( + 'name' => rcube_label('settings'), + ); + + // Settings: threading + if ($threading_supported) { + $select = new html_select(array('name' => '_viewmode', 'id' => '_listmode')); + $select->add(rcube_label('list'), 0); + $select->add(rcube_label('threads'), 1); + + if (isset($_POST['_viewmode'])) { + $value = (int) $_POST['_viewmode']; + } + else if (strlen($mbox_imap)) { + $a_threaded = $RCMAIL->config->get('message_threading', array()); + $value = (int) isset($a_threaded[$mbox_imap]); + } + + $form['props']['fieldsets']['settings']['content']['viewmode'] = array( + 'label' => rcube_label('listmode'), + 'value' => $select->show($value), + ); + } +/* + // Settings: sorting column + $select = new html_select(array('name' => '_sortcol', 'id' => '_sortcol')); + $select->add(rcube_label('nonesort'), ''); + $select->add(rcube_label('arrival'), 'arrival'); + $select->add(rcube_label('sentdate'), 'date'); + $select->add(rcube_label('subject'), 'subject'); + $select->add(rcube_label('fromto'), 'from'); + $select->add(rcube_label('replyto'), 'replyto'); + $select->add(rcube_label('cc'), 'cc'); + $select->add(rcube_label('size'), 'size'); + + $value = isset($_POST['_sortcol']) ? $_POST['_sortcol'] : ''; + + $form['props']['fieldsets']['settings']['content']['sortcol'] = array( + 'label' => rcube_label('listsorting'), + 'value' => $select->show($value), + ); + + // Settings: sorting order + $select = new html_select(array('name' => '_sortord', 'id' => '_sortord')); + $select->add(rcube_label('asc'), 'ASC'); + $select->add(rcube_label('desc'), 'DESC'); + + $value = isset($_POST['_sortord']) ? $_POST['_sortord'] : ''; + + $form['props']['fieldsets']['settings']['content']['sortord'] = array( + 'label' => rcube_label('listorder'), + 'value' => $select->show(), + ); +*/ + // Information (count, size) - Edit mode + if (strlen($mbox)) { + // Number of messages + $form['props']['fieldsets']['info'] = array( + 'name' => rcube_label('info'), + 'content' => array( + 'count' => array( + 'label' => rcube_label('messagecount'), + 'value' => (int) $msgcount, + ), + ), + ); + + // Size + if ($msgcount) { + // create link with folder-size command + $onclick = sprintf("return %s.command('folder-size', '%s', this)", + JS_OBJECT_NAME, JQ($mbox_imap)); + $size = html::a(array('href' => '#', 'onclick' => $onclick, 'id' => 'folder-size'), + rcube_label('getfoldersize')); + } + else { + // no messages -> zero size + $size = 0; + } + $form['props']['fieldsets']['info']['content']['size'] = array( + 'label' => rcube_label('size'), + 'value' => $size, + ); + } + + // Allow plugins to modify folder form content + $plugin = $RCMAIL->plugins->exec_hook('folder_form', array('form' => $form)); + + $form = $plugin['form']; + + // Set form tags and hidden fields + list($form_start, $form_end) = get_form_tags($attrib, 'save-folder', null, $hidden_fields); + + unset($attrib['form']); + + // return the complete edit form as table + $out = "$form_start\n"; + + // Create form output + foreach ($form as $tab) { + if (!empty($tab['fieldsets']) && is_array($tab['fieldsets'])) { + $content = ''; + foreach ($tab['fieldsets'] as $fieldset) { + $subcontent = rcmail_get_form_part($fieldset); + if ($subcontent) { + $content .= html::tag('fieldset', null, html::tag('legend', null, Q($fieldset['name'])) . $subcontent) ."\n"; + } + } + } + else { + $content = rcmail_get_form_part($tab); + } + + if ($content) { + $out .= html::tag('fieldset', null, html::tag('legend', null, Q($tab['name'])) . $content) ."\n"; + } + } + + $out .= "\n$form_end"; + + $RCMAIL->output->set_env('messagecount', (int) $msgcount); + + return $out; +} + +function rcmail_get_form_part($form) +{ + $content = ''; + + if (is_array($form['content']) && !empty($form['content'])) { + $table = new html_table(array('cols' => 2)); + foreach ($form['content'] as $col => $colprop) { + $colprop['id'] = '_'.$col; + $label = !empty($colprop['label']) ? $colprop['label'] : rcube_label($col); + + $table->add('title', sprintf('<label for="%s">%s</label>', $colprop['id'], Q($label))); + $table->add(null, $colprop['value']); + } + $content = $table->show(); + } + else { + $content = $tag['content']; + } + + return $content; +} + +function rcmail_localize_folderpath($path) +{ + global $RCMAIL; + + $protect_folders = $RCMAIL->config->get('protect_default_folders'); + $default_folders = (array) $RCMAIL->config->get('default_imap_folders'); + $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); + $path = explode($delimiter, $path); + $result = array(); + + foreach ($path as $idx => $dir) { + $directory = implode($delimiter, array_slice($path, 0, $idx+1)); + if ($protect_folders && in_array($directory, $default_folders)) { + unset($result); + $result[] = rcmail_localize_foldername($directory); + } + else if ($protect_folders && in_array($dir, $default_folders)) { + $result[] = rcmail_localize_foldername($dir); + } + else { + $result[] = rcube_charset_convert($dir, 'UTF7-IMAP'); + } + } + + return implode($delimiter, $result); +} + + +//$OUTPUT->set_pagetitle(rcube_label('folders')); + +// register UI objects +$OUTPUT->add_handlers(array( + 'folderdetails' => 'rcube_folder_form', +)); + +$OUTPUT->add_label('nonamewarning'); + +$OUTPUT->send('folderedit'); diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index ef2be6584..f458cbfee 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -126,7 +126,8 @@ function rcube_identity_form($attrib) foreach ($fieldset['content'] as $col => $colprop) { $colprop['id'] = 'rcmfd_'.$col; - $label = !empty($colprop['label']) ? $colprop['label'] : rcube_label($col); + $label = !empty($colprop['label']) ? $colprop['label'] : + rcube_label(str_replace('-', '', $col)); $value = !empty($colprop['value']) ? $colprop['value'] : rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']); diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc new file mode 100644 index 000000000..7ae4fb35d --- /dev/null +++ b/program/steps/settings/folders.inc @@ -0,0 +1,377 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/settings/folders.inc | + | | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | + | Licensed under the GNU GPL | + | | + | PURPOSE: | + | Provide functionality of folders management | + | | + +-----------------------------------------------------------------------+ + | Author: Thomas Bruederli <roundcube@gmail.com> | + | Author: Aleksander Machniak <alec@alec.pl> | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +// WARNING: folder names in UI are encoded with RCMAIL_CHARSET + +// init IMAP connection +$RCMAIL->imap_connect(); + +// subscribe mailbox +if ($RCMAIL->action == 'subscribe') +{ + $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); + if (strlen($mbox)) { + $result = $IMAP->subscribe(array($mbox)); + + // Handle virtual (non-existing) folders + if (!$result && $IMAP->get_error_code() == -1 && + $IMAP->get_response_code() == rcube_imap::TRYCREATE + ) { + $result = $IMAP->create_mailbox($mbox, true); + if ($result) { + // @TODO: remove 'virtual' class of folder's row + } + } + + if ($result) + $OUTPUT->show_message('foldersubscribed', 'confirmation'); + else + rcmail_display_server_error('errorsaving'); + } +} + +// unsubscribe mailbox +else if ($RCMAIL->action == 'unsubscribe') +{ + $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); + if (strlen($mbox)) { + $result = $IMAP->unsubscribe(array($mbox)); + if ($result) + $OUTPUT->show_message('folderunsubscribed', 'confirmation'); + else + rcmail_display_server_error('errorsaving'); + } +} + +// delete an existing mailbox +else if ($RCMAIL->action == 'delete-folder') +{ + $mbox_utf8 = get_input_value('_mbox', RCUBE_INPUT_POST, true); + $mbox = rcube_charset_convert($mbox_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); + + // get folder's children or all folders if the name contains special characters + $delimiter = $IMAP->get_hierarchy_delimiter(); + if ((strpos($mbox, '%') === false) && (strpos($mbox, '*') === false)) + $a_mboxes = $IMAP->list_unsubscribed('', $mbox.$delimiter.'*'); + else + $a_mboxes = $IMAP->list_unsubscribed(); + + if (strlen($mbox)) + $deleted = $IMAP->delete_mailbox($mbox); + + if ($OUTPUT->ajax_call && $deleted) { + // Remove folder and subfolders rows + $OUTPUT->command('remove_folder_row', $mbox_utf8); + foreach ($a_mboxes as $folder) { + if (preg_match('/^'. preg_quote($mbox.$delimiter, '/') .'/', $folder)) { + $OUTPUT->command('remove_folder_row', rcube_charset_convert($folder, 'UTF7-IMAP')); + } + } + $OUTPUT->show_message('folderdeleted', 'confirmation'); + // Clear content frame + $OUTPUT->command('subscription_select'); + $OUTPUT->command('set_quota', rcmail_quota_content()); + } + else if (!$deleted) { + rcmail_display_server_error('errorsaving'); + } +} + +// rename an existing mailbox +else if ($RCMAIL->action == 'rename-folder') +{ + $name_utf8 = trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, true)); + $oldname_utf8 = trim(get_input_value('_folder_oldname', RCUBE_INPUT_POST, true)); + + if (strlen($name_utf8) && strlen($oldname_utf8)) { + $name = rcube_charset_convert($name_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); + $oldname = rcube_charset_convert($oldname_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); + + $rename = rcmail_rename_folder($oldname, $name); + } + + if ($rename && $OUTPUT->ajax_call) { + $folderlist = $IMAP->list_unsubscribed(); + $delimiter = $IMAP->get_hierarchy_delimiter(); + + $regexp = '/^' . preg_quote($name . $delimiter, '/') . '/'; + + // subfolders + for ($x=sizeof($folderlist)-1; $x>=0; $x--) { + if (preg_match($regexp, $folderlist[$x])) { + $oldfolder = $oldname . $delimiter . preg_replace($regexp, '', $folderlist[$x]); + $foldersplit = explode($delimiter, $folderlist[$x]); + $level = count($foldersplit) - 1; + $display_rename = str_repeat(' ', $level) + . rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP'); + + $before = isset($folderlist[$x+1]) ? rcube_charset_convert($folderlist[$x+1], 'UTF7-IMAP') : false; + + $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldfolder, 'UTF7-IMAP'), + rcube_charset_convert($folderlist[$x], 'UTF7-IMAP'), $display_rename, $before); + } + } + + $foldersplit = explode($delimiter, $name); + $level = count($foldersplit) - 1; + $display_rename = str_repeat(' ', $level) . rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP'); + $index = array_search($name, $folderlist); + $before = $index !== false && isset($folderlist[$index+1]) ? rcube_charset_convert($folderlist[$index+1], 'UTF7-IMAP') : false; + + $OUTPUT->command('replace_folder_row', $oldname_utf8, + rcube_charset_convert($name, 'UTF7-IMAP'), $display_rename, $before); + } + else if (!$rename) { + rcmail_display_server_error('errorsaving'); + } +} + +// clear mailbox +else if ($RCMAIL->action == 'purge') +{ + $mbox_utf8 = get_input_value('_mbox', RCUBE_INPUT_POST, true); + $mbox = rcube_charset_convert($mbox_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); + $delimiter = $IMAP->get_hierarchy_delimiter(); + $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; + + // we should only be purging trash (or their subfolders) + if (!strlen($CONFIG['trash_mbox']) || $mbox == $CONFIG['trash_mbox'] + || preg_match($trash_regexp, $mbox) + ) { + $success = $IMAP->clear_mailbox($mbox); + $delete = true; + } + // copy to Trash + else { + $success = $IMAP->move_message('1:*', $CONFIG['trash_mbox'], $mbox); + $delete = false; + } + + if ($success) { + $OUTPUT->set_env('messagecount', 0); + if ($delete) { + $OUTPUT->show_message('folderpurged', 'confirmation'); + $OUTPUT->command('set_quota', rcmail_quota_content()); + } + else { + $OUTPUT->show_message('messagemoved', 'confirmation'); + } + $_SESSION['unseen_count'][$mbox] = 0; + $OUTPUT->command('show_folder', $mbox_utf8, null, true); + } + else { + rcmail_display_server_error('errorsaving'); + } +} + +// get mailbox size +else if ($RCMAIL->action == 'folder-size') +{ + $name = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true)); + + $size = $IMAP->get_mailbox_size($name); + + // @TODO: check quota and show percentage usage of specified mailbox? + + if ($size !== false) { + $OUTPUT->command('folder_size_update', show_bytes($size)); + } + else { + rcmail_display_server_error(); + } +} + +if ($OUTPUT->ajax_call) + $OUTPUT->send(); + + +// build table with all folders listed by server +function rcube_subscription_form($attrib) +{ + global $RCMAIL, $IMAP, $CONFIG, $OUTPUT; + + list($form_start, $form_end) = get_form_tags($attrib, 'folders'); + unset($attrib['form']); + + if (!$attrib['id']) + $attrib['id'] = 'rcmSubscriptionlist'; + + $table = new html_table(); + + if ($attrib['noheader'] !== true && $attrib['noheader'] != "true") { + // add table header + $table->add_header('name', rcube_label('foldername')); + $table->add_header('subscribed', ''); + } + + // get folders from server + $IMAP->clear_cache('mailboxes'); + + $a_unsubscribed = $IMAP->list_unsubscribed(); + $a_subscribed = $IMAP->list_mailboxes(); + $delimiter = $IMAP->get_hierarchy_delimiter(); + $a_js_folders = array(); + $seen = array(); + $list_folders = array(); + + // pre-process folders list + foreach ($a_unsubscribed as $i => $folder) { + $foldersplit = explode($delimiter, $folder); + $name = rcube_charset_convert(array_pop($foldersplit), 'UTF7-IMAP'); + $parent_folder = join($delimiter, $foldersplit); + $level = count($foldersplit); + + // add any necessary "virtual" parent folders + if ($parent_folder && !$seen[$parent_folder]) { + for ($i=1; $i<=$level; $i++) { + $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i)); + if ($ancestor_folder && !$seen[$ancestor_folder]++) { + $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP'); + $list_folders[] = array( + 'id' => $ancestor_folder, + 'name' => $ancestor_name, + 'level' => $i-1, + 'virtual' => true, + ); + } + } + } + + $seen[$folder]++; + + $list_folders[] = array( + 'id' => $folder, + 'name' => $name, + 'level' => $level, + ); + } + + unset($seen); + + $checkbox_subscribe = new html_checkbox(array( + 'name' => '_subscribed[]', + 'title' => rcube_label('changesubscription'), + 'onclick' => JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)", + )); + + // create list of available folders + foreach ($list_folders as $i => $folder) { + $idx = $i + 1; + $subscribed = in_array($folder['id'], $a_subscribed); + $protected = ($CONFIG['protect_default_folders'] == true && in_array($folder['id'], $CONFIG['default_imap_folders'])); + $classes = array($i%2 ? 'even' : 'odd'); + + $folder_js = Q($folder['id']); + $folder_utf8 = rcube_charset_convert($folder['id'], 'UTF7-IMAP'); + $display_folder = str_repeat(' ', $folder['level']) + . Q($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']); + + if ($folder['virtual']) { + $classes[] = 'virtual'; + } + + if (!$protected) { + $opts = $IMAP->mailbox_options($folder['id']); + $noselect = in_array('\\Noselect', $opts); + } + + $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes))); + + $table->add('name', $display_folder); + $table->add('subscribed', $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''), + array('value' => $folder_utf8, 'disabled' => ($protected || $noselect) ? 'disabled' : ''))); + + $a_js_folders['rcmrow'.$idx] = array($folder_utf8, Q($display_folder), $protected || $folder['virtual']); + } + + $RCMAIL->plugins->exec_hook('folders_list', array('table' => $table)); + + $OUTPUT->add_gui_object('subscriptionlist', $attrib['id']); + $OUTPUT->set_env('subscriptionrows', $a_js_folders); + $OUTPUT->set_env('defaultfolders', $CONFIG['default_imap_folders']); + $OUTPUT->set_env('delimiter', $delimiter); + + return $form_start . $table->show($attrib) . $form_end; +} + +function rcmail_folder_frame($attrib) +{ + global $OUTPUT; + + if (!$attrib['id']) + $attrib['id'] = 'rcmfolderframe'; + + $attrib['name'] = $attrib['id']; + + $OUTPUT->set_env('contentframe', $attrib['name']); + $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif'); + + return html::iframe($attrib); +} + +function rcmail_rename_folder($oldname, $newname) +{ + global $RCMAIL; + + $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); + $rename = $RCMAIL->imap->rename_mailbox($oldname, $newname); + + // update per-folder options for modified folder and its subfolders + if ($rename !== false) { + $a_threaded = (array) $RCMAIL->config->get('message_threading', array()); + $oldprefix = '/^' . preg_quote($oldname . $delimiter, '/') . '/'; + + foreach ($a_threaded as $key => $val) { + if ($key == $oldname) { + unset($a_threaded[$key]); + $a_threaded[$newname] = true; + } + else if (preg_match($oldprefix, $key)) { + unset($a_threaded[$key]); + $a_threaded[preg_replace($oldprefix, $newname.$delimiter, $key)] = true; + } + } + $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); + + return true; + } + + return false; +} + +$OUTPUT->set_pagetitle(rcube_label('folders')); +$OUTPUT->include_script('list.js'); +$OUTPUT->set_env('quota', $IMAP->get_capability('QUOTA')); + +// add some labels to client +$OUTPUT->add_label('deletefolderconfirm', 'purgefolderconfirm', 'folderdeleting', + 'foldermoving', 'foldersubscribing', 'folderunsubscribing', 'quota'); + +// register UI objects +$OUTPUT->add_handlers(array( + 'foldersubscription' => 'rcube_subscription_form', + 'folderframe' => 'rcmail_folder_frame', + 'quotadisplay' => 'rcmail_quota_display', +)); + +$OUTPUT->send('folders'); + diff --git a/program/steps/settings/manage_folders.inc b/program/steps/settings/manage_folders.inc deleted file mode 100644 index 3a5d909e4..000000000 --- a/program/steps/settings/manage_folders.inc +++ /dev/null @@ -1,443 +0,0 @@ -<?php - -/* - +-----------------------------------------------------------------------+ - | program/steps/settings/manage_folders.inc | - | | - | This file is part of the Roundcube Webmail client | - | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | - | Licensed under the GNU GPL | - | | - | PURPOSE: | - | Provide functionality to create/delete/rename folders | - | | - +-----------------------------------------------------------------------+ - | Author: Thomas Bruederli <roundcube@gmail.com> | - +-----------------------------------------------------------------------+ - - $Id$ - -*/ - -// WARNING: folder names in UI are encoded with RCMAIL_CHARSET - -// init IMAP connection -$RCMAIL->imap_connect(); - -// subscribe to one or more mailboxes -if ($RCMAIL->action=='subscribe') - { - $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); - if (strlen($mbox)) - $IMAP->subscribe(array($mbox)); - } - -// unsubscribe one or more mailboxes -else if ($RCMAIL->action=='unsubscribe') - { - $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); - if (strlen($mbox)) - $IMAP->unsubscribe(array($mbox)); - } - -// enable threading for one or more mailboxes -else if ($RCMAIL->action=='enable-threading') - { - $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); - if (strlen($mbox)) - rcube_set_threading($mbox, true); - } - -// enable threading for one or more mailboxes -else if ($RCMAIL->action=='disable-threading') - { - $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP'); - if (strlen($mbox)) - rcube_set_threading($mbox, false); - } - -// create a new mailbox -else if ($RCMAIL->action=='create-folder') - { - if (strlen(trim($_POST['_name']))) - { - $name = trim(get_input_value('_name', RCUBE_INPUT_POST, true, 'UTF7-IMAP')); - $create = $IMAP->create_mailbox($name, TRUE); - } - - if ($create && $OUTPUT->ajax_call) - { - $delimiter = $IMAP->get_hierarchy_delimiter(); - $folderlist = $IMAP->list_unsubscribed(); - $index = array_search($create, $folderlist); - $before = $index !== false && isset($folderlist[$index+1]) ? rcube_charset_convert($folderlist[$index+1], 'UTF7-IMAP') : false; - - $create = rcube_charset_convert($create, 'UTF7-IMAP'); - $foldersplit = explode($delimiter, $create); - $display_create = str_repeat(' ', substr_count($create, $delimiter)) - . Q($foldersplit[count($foldersplit)-1]); - - $OUTPUT->command('add_folder_row', $create, $display_create, false, $before); - } - else if (!$create) - { - $OUTPUT->show_message('errorsaving', 'error'); - } - } - -// rename a mailbox -else if ($RCMAIL->action=='rename-folder') - { - if (strlen(trim($_POST['_folder_oldname'])) && strlen(trim($_POST['_folder_newname']))) - { - $name_utf8 = trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, true)); - $oldname_utf8 = get_input_value('_folder_oldname', RCUBE_INPUT_POST, true); - $name = rcube_charset_convert($name_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); - $oldname = rcube_charset_convert($oldname_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); - - $rename = $IMAP->rename_mailbox($oldname, $name); - } - - // update per-folder options for modified folder and its subfolders - if ($rename) { - $a_threaded = $RCMAIL->config->get('message_threading', array()); - $delimiter = $IMAP->get_hierarchy_delimiter(); - $oldprefix = '/^' . preg_quote($oldname . $delimiter, '/') . '/'; - foreach ($a_threaded as $key => $val) - if ($key == $oldname) { - unset($a_threaded[$key]); - $a_threaded[$name] = true; - } - else if (preg_match($oldprefix, $key)) { - unset($a_threaded[$key]); - $a_threaded[preg_replace($oldprefix, $name.$delimiter, $key)] = true; - } - - $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); - } - - if ($rename && $OUTPUT->ajax_call) - { - $folderlist = $IMAP->list_unsubscribed(); - $delimiter = $IMAP->get_hierarchy_delimiter(); - - $regexp = '/^' . preg_quote($rename . $delimiter, '/') . '/'; - - // subfolders - for ($x=sizeof($folderlist)-1; $x>=0; $x--) - { - if (preg_match($regexp, $folderlist[$x])) - { - $oldfolder = $oldname . $delimiter . preg_replace($regexp, '', $folderlist[$x]); - $foldersplit = explode($delimiter, $folderlist[$x]); - $level = count($foldersplit) - 1; - $display_rename = str_repeat(' ', $level) - . Q(rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP')); - - $before = isset($folderlist[$x+1]) ? rcube_charset_convert($folderlist[$x+1], 'UTF7-IMAP') : false; - - $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldfolder, 'UTF7-IMAP'), - rcube_charset_convert($folderlist[$x], 'UTF7-IMAP'), $display_rename, $before); - } - } - - $foldersplit = explode($delimiter, $rename); - $level = count($foldersplit) - 1; - $display_rename = str_repeat(' ', $level) . Q(rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP')); - $index = array_search($rename, $folderlist); - $before = $index !== false && isset($folderlist[$index+1]) ? rcube_charset_convert($folderlist[$index+1], 'UTF7-IMAP') : false; - - $OUTPUT->command('replace_folder_row', $oldname_utf8, rcube_charset_convert($rename, 'UTF7-IMAP'), $display_rename, $before); - $OUTPUT->command('reset_folder_rename'); - } - else if (!$rename && $OUTPUT->ajax_call) - { - $OUTPUT->command('reset_folder_rename'); - $OUTPUT->show_message('errorsaving', 'error'); - } - else if (!$rename) - $OUTPUT->show_message('errorsaving', 'error'); - } - -// delete an existing IMAP mailbox -else if ($RCMAIL->action=='delete-folder') - { - $a_mboxes = $IMAP->list_unsubscribed(); - $delimiter = $IMAP->get_hierarchy_delimiter(); - - $mboxes_utf8 = get_input_value('_mboxes', RCUBE_INPUT_POST, true); - $mboxes = rcube_charset_convert($mboxes_utf8, RCMAIL_CHARSET, 'UTF7-IMAP'); - - if (strlen($mboxes)) - $deleted = $IMAP->delete_mailbox(array($mboxes)); - - if ($OUTPUT->ajax_call && $deleted) - { - $OUTPUT->command('remove_folder_row', $mboxes_utf8); - foreach ($a_mboxes as $mbox) - { - if (preg_match('/^'. preg_quote($mboxes.$delimiter, '/') .'/', $mbox)) - { - $OUTPUT->command('remove_folder_row', rcube_charset_convert($mbox, 'UTF7-IMAP')); - } - } - $OUTPUT->show_message('folderdeleted', 'confirmation'); - } - else if (!$deleted) - { - $OUTPUT->show_message('errorsaving', 'error'); - } - } - -if ($OUTPUT->ajax_call) - $OUTPUT->send(); - - -// build table with all folders listed by server -function rcube_subscription_form($attrib) - { - global $RCMAIL, $IMAP, $CONFIG, $OUTPUT; - - $threading_supported = $IMAP->get_capability('thread=references') - || $IMAP->get_capability('thread=orderedsubject') - || $IMAP->get_capability('thread=refs'); - - list($form_start, $form_end) = get_form_tags($attrib, 'folders'); - unset($attrib['form']); - - if (!$attrib['id']) - $attrib['id'] = 'rcmSubscriptionlist'; - - $table = new html_table(); - - // add table header - $table->add_header('name', rcube_label('foldername')); - $table->add_header('msgcount', rcube_label('messagecount')); - $table->add_header('subscribed', rcube_label('subscribed')); - if ($threading_supported) - $table->add_header('threaded', rcube_label('threaded')); - $table->add_header('rename', ' '); - $table->add_header('delete', ' '); - - // get folders from server - $IMAP->clear_cache('mailboxes'); - - $a_unsubscribed = $IMAP->list_unsubscribed(); - $a_subscribed = $IMAP->list_mailboxes(); - $a_threaded = $a_threaded_copy = $RCMAIL->config->get('message_threading', array()); - $delimiter = $IMAP->get_hierarchy_delimiter(); - $a_js_folders = $seen = $list_folders = array(); - - // pre-process folders list - foreach ($a_unsubscribed as $i => $folder) { - $foldersplit = explode($delimiter, $folder); - $name = rcube_charset_convert(array_pop($foldersplit), 'UTF7-IMAP'); - $parent_folder = join($delimiter, $foldersplit); - $level = count($foldersplit); - - // add any necessary "virtual" parent folders - if ($parent_folder && !$seen[$parent_folder]) { - for ($i=1; $i<=$level; $i++) { - $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i)); - if ($ancestor_folder && !$seen[$ancestor_folder]++) { - $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP'); - $list_folders[] = array('id' => $ancestor_folder, 'name' => $ancestor_name, 'level' => $i-1, 'virtual' => true); - } - } - } - - unset($a_threaded_copy[$folder]); - - $list_folders[] = array('id' => $folder, 'name' => $name, 'level' => $level); - $seen[$folder]++; - } - - unset($seen); - - // remove 'message_threading' option for not existing folders - if ($a_threaded_copy) { - foreach ($a_threaded_copy as $key => $val) - unset($a_threaded[$key]); - unset($a_threaded_copy); - $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); - } - - $checkbox_subscribe = new html_checkbox(array( - 'name' => '_subscribed[]', - 'onclick' => JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)", - )); - $checkbox_threaded = new html_checkbox(array( - 'name' => '_threaded[]', - 'onclick' => JS_OBJECT_NAME.".command(this.checked?'enable-threading':'disable-threading',this.value)", - )); - - if (!empty($attrib['deleteicon'])) - $del_button = html::img(array('src' => $CONFIG['skin_path'] . $attrib['deleteicon'], 'alt' => rcube_label('delete'))); - else - $del_button = rcube_label('delete'); - - if (!empty($attrib['renameicon'])) - $edit_button = html::img(array('src' => $CONFIG['skin_path'] . $attrib['renameicon'], 'alt' => rcube_label('rename'))); - else - $edit_button = rcube_label('rename'); - - // create list of available folders - foreach ($list_folders as $i => $folder) { - $idx = $i + 1; - $subscribed = in_array($folder['id'], $a_subscribed); - $threaded = $a_threaded[$folder['id']]; - $protected = ($CONFIG['protect_default_folders'] == true && in_array($folder['id'], $CONFIG['default_imap_folders'])); - $classes = array($i%2 ? 'even' : 'odd'); - $folder_js = Q($folder['id']); - $display_folder = str_repeat(' ', $folder['level']) . Q($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']); - $folder_utf8 = rcube_charset_convert($folder['id'], 'UTF7-IMAP'); - - if ($folder['virtual']) { - $classes[] = 'virtual'; - } - - if (!$protected) { - $opts = $IMAP->mailbox_options($folder['id']); - $noselect = in_array('\\Noselect', $opts); - } - - $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes))); - - $table->add('name', $display_folder); - $table->add('msgcount', (($folder['virtual'] || $noselect) ? '' : $IMAP->messagecount($folder['id'], 'ALL', false, false))); - $table->add('subscribed', $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''), - array('value' => $folder_utf8, 'disabled' => ($protected || $noselect) ? 'disabled' : ''))); - if ($threading_supported) { - $table->add('threaded', $folder['virtual'] ? '' : - $checkbox_threaded->show(($threaded ? $folder_utf8 : ''), array('value' => $folder_utf8))); - } - - // add rename and delete buttons - if (!$protected && !$folder['virtual']) { - $table->add('rename', html::a(array('href' => "#rename", 'title' => rcube_label('renamefolder')), $edit_button)); - $table->add('delete', html::a(array('href' => "#delete", 'title' => rcube_label('deletefolder')), $del_button)); - } - else { - $table->add('rename', ' '); - $table->add('delete', ' '); - } - - $a_js_folders['rcmrow'.$idx] = array($folder_utf8, Q($display_folder), $protected || $folder['virtual']); - } - - rcmail::get_instance()->plugins->exec_hook('folders_list', array('table' => $table)); - - $OUTPUT->add_gui_object('subscriptionlist', $attrib['id']); - $OUTPUT->set_env('subscriptionrows', $a_js_folders); - $OUTPUT->set_env('defaultfolders', $CONFIG['default_imap_folders']); - $OUTPUT->set_env('delimiter', $delimiter); - - return $form_start . $table->show($attrib) . $form_end; - } - - -function rcube_create_folder_form($attrib) - { - global $OUTPUT; - - list($form_start, $form_end) = get_form_tags($attrib, 'create-folder'); - unset($attrib['form']); - - if ($attrib['hintbox']) - $OUTPUT->add_gui_object('createfolderhint', $attrib['hintbox']); - - // return the complete edit form as table - $out = "$form_start\n"; - - $input = new html_inputfield(array('name' => '_folder_name')); - $out .= $input->show(); - - if (get_boolean($attrib['button'])) - { - $button = new html_inputfield(array('type' => 'button', - 'value' => rcube_label('create'), - 'onclick' => JS_OBJECT_NAME.".command('create-folder',this.form)")); - $out .= $button->show(); - } - - $out .= "\n$form_end"; - - return $out; - } - -function rcube_rename_folder_form($attrib) - { - global $CONFIG, $IMAP; - - list($form_start, $form_end) = get_form_tags($attrib, 'rename-folder'); - unset($attrib['form']); - - // return the complete edit form as table - $out = "$form_start\n"; - - $a_unsubscribed = $IMAP->list_unsubscribed(); - $select_folder = new html_select(array('name' => '_folder_oldname', 'id' => 'rcmfd_oldfolder')); - - foreach ($a_unsubscribed as $i => $folder) - { - if ($CONFIG['protect_default_folders'] == TRUE && in_array($folder,$CONFIG['default_imap_folders'])) - continue; - - $select_folder->add($folder); - } - - $out .= $select_folder->show(); - - $out .= " to "; - $inputtwo = new html_inputfield(array('name' => '_folder_newname')); - $out .= $inputtwo->show(); - - if (get_boolean($attrib['button'])) - { - $button = new html_inputfield(array('type' => 'button', - 'value' => rcube_label('rename'), - 'onclick' => JS_OBJECT_NAME.".command('rename-folder',this.form)")); - $out .= $button->show(); - } - - $out .= "\n$form_end"; - - return $out; - } - - -// (un)set 'threading' for selected folder -function rcube_set_threading($mbox, $state=true) - { - global $RCMAIL; - $mbox = (array)$mbox; - $a_prefs = (array)$RCMAIL->config->get('message_threading'); - - if ($state) { - foreach ($mbox as $box) - $a_prefs[$box] = true; - } - else { - foreach ($mbox as $box) - unset($a_prefs[$box]); - } - - $RCMAIL->user->save_prefs(array('message_threading' => $a_prefs)); - } - - -$OUTPUT->set_pagetitle(rcube_label('folders')); -$OUTPUT->include_script('list.js'); - -// register UI objects -$OUTPUT->add_handlers(array( - 'foldersubscription' => 'rcube_subscription_form', - 'createfolder' => 'rcube_create_folder_form', - 'renamefolder' => 'rcube_rename_folder_form' -)); - -// add some labels to client -$OUTPUT->add_label('deletefolderconfirm','addsubfolderhint','forbiddencharacter','folderdeleting','folderrenaming','foldercreating','foldermoving'); - -$OUTPUT->send('managefolders'); - diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc new file mode 100644 index 000000000..da646a56e --- /dev/null +++ b/program/steps/settings/save_folder.inc @@ -0,0 +1,176 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/settings/save_folder.inc | + | | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | + | Licensed under the GNU GPL | + | | + | PURPOSE: | + | Provide functionality to create/edit a folder | + | | + +-----------------------------------------------------------------------+ + | Author: Aleksander Machniak <alec@alec.pl> | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +// WARNING: folder names in UI are encoded with RCMAIL_CHARSET + +// init IMAP connection +$RCMAIL->imap_connect(); + + +$name = trim(get_input_value('_name', RCUBE_INPUT_POST, true)); +$old = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true)); +$path = trim(get_input_value('_parent', RCUBE_INPUT_POST, true)); + +$name_imap = rcube_charset_convert($name, RCMAIL_CHARSET, 'UTF7-IMAP'); +$old_imap = rcube_charset_convert($old, RCMAIL_CHARSET, 'UTF7-IMAP'); +// $path is in UTF7-IMAP already + +$delimiter = $IMAP->get_hierarchy_delimiter(); +$special = (strlen($old_imap) && in_array($old_imap, (array) $RCMAIL->config->get('default_imap_folders'))); +$protected = ($special && $RCMAIL->config->get('protect_default_folders')); + + +// Folder name checks +if ($protected) { +} +else if (!strlen($name)) { + $error = rcube_label('cannotbeempty'); +} +else if (mb_strlen($name) > 128) { + $error = rcube_label('nametoolong'); +} +else { + // these characters are problematic e.g. when used in LIST/LSUB + foreach (array($delimiter, '%', '*') as $char) { + if (strpos($name, $delimiter) !== false) { + $error = rcube_label('forbiddencharacter') . " ($char)"; + break; + } + } +} + +if ($error) { + $OUTPUT->command('display_message', $error, 'error'); +} +else { + if ($protected) { + $name_imap = $old_imap; + } + else if (strlen($path)) { + $name_imap = $path . $delimiter . $name_imap; + } + + $folder['name'] = $name_imap; + $folder['oldname'] = $old_imap; + $folder['settings'] = array( + // List view mode: 0-list, 1-threads + 'view_mode' => (int) get_input_value('_viewmode', RCUBE_INPUT_POST), + 'sort_column' => get_input_value('_sortcol', RCUBE_INPUT_POST), + 'sort_order' => get_input_value('_sortord', RCUBE_INPUT_POST), + ); +} + +// create a new mailbox +if (!$error && !strlen($old)) { + + $plugin = $RCMAIL->plugins->exec_hook('folder_create', array('record' => $folder)); + + $folder = $plugin['record']; + + if (!$plugin['abort']) { + $created = $IMAP->create_mailbox($folder['name'], TRUE); + } + else { + $created = $plugin['result']; + } + + if ($created) { + // Save folder settings + if (isset($_POST['_viewmode'])) { + $a_threaded = (array) $RCMAIL->config->get('message_threading', array()); + + if ($_POST['_viewmode']) + $a_threaded[$folder['name']] = true; + else + unset($a_threaded[$folder['name']]); + + $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); + } + + $OUTPUT->show_message('foldercreated', 'confirmation'); + $OUTPUT->command('reload', 250); + $OUTPUT->send('iframe'); + } + else { + // show error message + $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); + } +} + +// update a mailbox +else if (!$error) { + $plugin = $RCMAIL->plugins->exec_hook('folder_update', array('record' => $folder)); + + $folder = $plugin['record']; + $rename = ($folder['oldname'] != $folder['name']); + + if (!$plugin['abort']) { + if ($rename) { + $updated = $RCMAIL->imap->rename_mailbox($folder['oldname'], $folder['name']); + } + else { + $updated = true; + } + } + else { + $updated = $plugin['result']; + } + + if ($updated) { + // Update folder settings, + if (isset($_POST['_viewmode'])) { + $a_threaded = (array) $RCMAIL->config->get('message_threading', array()); + + // In case of name change update names of childrens in settings + if ($rename) { + $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); + $oldprefix = '/^' . preg_quote($folder['oldname'] . $delimiter, '/') . '/'; + foreach ($a_threaded as $key => $val) { + if ($key == $folder['oldname']) { + unset($a_threaded[$key]); + } + else if (preg_match($oldprefix, $key)) { + unset($a_threaded[$key]); + $a_threaded[preg_replace($oldprefix, $folder['name'].$delimiter, $key)] = true; + } + } + } + if ($_POST['_viewmode']) + $a_threaded[$folder['name']] = true; + else + unset($a_threaded[$folder['name']]); + + $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); + } + + $OUTPUT->show_message('folderupdated', 'confirmation'); + if ($rename) { + $OUTPUT->command('reload', 250); + $OUTPUT->send('iframe'); + } + } + else { + // show error message + $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); + } +} + +rcmail_overwrite_action('edit-folder'); diff --git a/program/steps/utils/html2text.inc b/program/steps/utils/html2text.inc index ef74ec49e..15c6a52a4 100644 --- a/program/steps/utils/html2text.inc +++ b/program/steps/utils/html2text.inc @@ -19,7 +19,12 @@ */ -$converter = new html2text($HTTP_RAW_POST_DATA); +$html = $HTTP_RAW_POST_DATA; + +// Replace emoticon images with its text representation +$html = rcmail_replace_emoticons($html); + +$converter = new html2text($html); header('Content-Type: text/plain; charset=UTF-8'); print rtrim($converter->get_text()); diff --git a/skins/default/common.css b/skins/default/common.css index 938c68a5e..622fba949 100644 --- a/skins/default/common.css +++ b/skins/default/common.css @@ -249,6 +249,11 @@ img background: url(images/listheader.gif) top left repeat-x #CCC; } +.boxtitle .rightalign +{ + float: right; +} + .boxcontent { padding: 15px 10px 10px 10px; @@ -861,3 +866,17 @@ fieldset.tabbed padding-top: 12px; } +.quota_text { + text-align: center; + font-size: 10px; + color: #666; + border: 1px solid #999; + cursor: default; +} +.quota_bg { background-color: white; } +.quota_high { background-color: #F33131; } +.quota_mid { background-color: #F5AD3C; } +.quota_low { background-color: #91E164; } +.quota_text_high { color: white; } +.quota_text_mid { color: #666; } +.quota_text_low { color: #666; } diff --git a/skins/default/functions.js b/skins/default/functions.js index 3197c9847..77cdeb8d2 100644 --- a/skins/default/functions.js +++ b/skins/default/functions.js @@ -353,7 +353,7 @@ switch_preview_pane: function(elem) /* Message composing */ init_compose_form: function() { - var f, field, fields = ['cc', 'bcc', 'replyto', 'mailreplyto', 'mailfollowupto'], + var f, field, fields = ['cc', 'bcc', 'replyto', 'followupto'], div = document.getElementById('compose-div'), headers_div = document.getElementById('compose-headers-div'); diff --git a/skins/default/iehacks.css b/skins/default/iehacks.css index 2b2180fb9..29ab8cb75 100644 --- a/skins/default/iehacks.css +++ b/skins/default/iehacks.css @@ -38,11 +38,6 @@ input, textarea height: expression((parseInt(document.documentElement.clientHeight)-105)+'px'); } -#folder-manager -{ - height: expression((parseInt(this.parentNode.offsetHeight)-105)+'px'); -} - #messagetoolbar { width: expression((parseInt(document.documentElement.clientWidth)-215)+'px'); @@ -90,7 +85,8 @@ input, textarea #messageframe, #identity-details, #contacts-box, -#prefs-box +#prefs-box, +#folder-box { height: expression(parseInt(this.parentNode.offsetHeight)+'px'); } diff --git a/skins/default/mail.css b/skins/default/mail.css index ead0aa610..7bb308c06 100644 --- a/skins/default/mail.css +++ b/skins/default/mail.css @@ -1337,8 +1337,7 @@ input.from_address #compose-cc, #compose-bcc, #compose-replyto, -#compose-mailreplyto, -#compose-mailfollowupto +#compose-followupto { display: none; } @@ -1435,9 +1434,6 @@ input.from_address margin-top: 4px; } - -/** quota indicator */ - #quota { position: absolute; @@ -1453,19 +1449,3 @@ input.from_address right: 6px; z-index: 101; } - -.quota_text { - text-align: center; - font-size: 10px; - color: #666; - border: 1px solid #999; - cursor: default; -} -.quota_bg { background-color: white; } -.quota_high { background-color: #F33131; } -.quota_mid { background-color: #F5AD3C; } -.quota_low { background-color: #91E164; } -.quota_text_high { color: white; } -.quota_text_mid { color: #666; } -.quota_text_low { color: #666; } - diff --git a/skins/default/settings.css b/skins/default/settings.css index c902740a6..5624f80e3 100644 --- a/skins/default/settings.css +++ b/skins/default/settings.css @@ -5,41 +5,20 @@ width: 300px; } -#folder-manager -{ - position: absolute; - width: 600px; - top: 0; - left: 0; - bottom: 105px; - overflow: auto; - border: 1px solid #999999; -} - #folder-manager.droptarget { border: 1px solid #CC3333; background-color: #FFFFA6; } -#listbuttons -{ - position: absolute; - left: 20px; - bottom: 18px; -} - -#identities-table +#identities-table, +#subscription-table, +#sections-table { width: 100%; table-layout: fixed; } -#subscription-table -{ - width: 100%; -} - #subscription-table input { font: inherit; @@ -50,14 +29,8 @@ #sections-table tbody td { cursor: default; - overflow: hidden; text-overflow: ellipsis; -o-text-overflow: ellipsis; -} - -#subscription-table tbody td -{ - height: 22px !important; height: 18px; } @@ -66,49 +39,26 @@ color: #666; } -#subscription-table tr.selected td, -#subscription-table tr.selected td a +#subscription-table tr.selected td { color: #FFFFFF; background-color: #CC3333; } -#subscription-table tr.droptarget td, -#subscription-table tr.droptarget td a +#subscription-table tr.droptarget td { background-color: #FFFFA6; } -#subscription-table thead td.name -{ - width: 95%; -} - -#subscription-table thead td.msgcount, -#subscription-table thead td.subscribed, -#subscription-table thead td.threaded -{ - white-space: nowrap; - min-width: 50px; -} - -#subscription-table tbody td.subscribed, -#subscription-table tbody td.rename, -#subscription-table tbody td.delete -{ - padding: 1px 4px; -} - -#subscription-table thead td.rename, -#subscription-table thead td.delete +#subscription-table td.name { - width: 30px; + width: auto; } -#subscription-table td.name input +#subscription-table td.subscribed { - font: inherit; - width: 90%; + text-align: right; + padding-right: 12px; } #identity-frame @@ -118,7 +68,9 @@ border: 1px solid #999999; } -#identity-details +#identity-details, +#folder-box, +#prefs-box { position: absolute; top: 0; @@ -129,7 +81,8 @@ background-color: #F2F2F2; } -#identity-details table td.title +#identity-details table td.title, +#folder-details table td.title { font-weight: bold; text-align: right; @@ -150,6 +103,7 @@ input.disabled } #identities-list, +#folder-manager, #sectionslist { position: absolute; @@ -161,24 +115,9 @@ input.disabled overflow: hidden; } -#sections-table -{ - width: 100%; - table-layout: fixed; -} - -#prefs-box -{ - position: absolute; - top: 0; - right: 0; - bottom: 0; - border: 1px solid #999999; - overflow: hidden; -} - body.iframe, -#prefs-frame +#prefs-frame, +#folder-frame { background-color: #F2F2F2; border: none; @@ -203,3 +142,24 @@ body.iframe, text-align: right; float: right; } + +#quota +{ + position: absolute; + top: 3px; + right: 8px; + width: 100px; +} + +#quotaimg +{ + position: absolute; + top: 3px; + right: 6px; + z-index: 101; +} + +#rcmfd_signature +{ + font-family: monospace; +} diff --git a/skins/default/splitter.js b/skins/default/splitter.js index de228c58a..e11f9fea5 100644 --- a/skins/default/splitter.js +++ b/skins/default/splitter.js @@ -24,7 +24,7 @@ function rcube_splitter(attrib) // create and position the handle for this splitter this.p1pos = this.relative ? $(this.p1).position() : $(this.p1).offset(); this.p2pos = this.relative ? $(this.p2).position() : $(this.p2).offset(); - + if (this.horizontal) { var top = this.p1pos.top + this.p1.offsetHeight; this.layer = new rcube_layer(this.id, {x: 0, y: top, height: 10, @@ -92,7 +92,7 @@ function rcube_splitter(attrib) this.onDragStart = function(e) { // disable text selection while dragging the splitter - if (window.webkit || bw.safari) + if (bw.konq || bw.chrome || bw.safari) document.body.style.webkitUserSelect = 'none'; this.p1pos = this.relative ? $(this.p1).position() : $(this.p1).offset(); @@ -155,7 +155,7 @@ function rcube_splitter(attrib) this.onDragStop = function(e) { // resume the ability to highlight text - if (window.webkit || bw.safari) + if (bw.konq || bw.chrome || bw.safari) document.body.style.webkitUserSelect = 'auto'; // cancel the listening for drag events diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html index 99015abee..2dcf8b0c1 100644 --- a/skins/default/templates/compose.html +++ b/skins/default/templates/compose.html @@ -78,18 +78,12 @@ <label for="_replyto"><roundcube:label name="replyto" /></label> </td> <td class="editfield"><roundcube:object name="composeHeaders" part="replyto" form="form" id="_replyto" size="70" tabindex="5" /></td> - </tr><tr id="compose-mailreplyto"> + </tr><tr id="compose-followupto"> <td class="title top"> - <a href="#mailreplyto" onclick="return rcmail_ui.hide_header_form('mailreplyto');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a> - <label for="_mailreplyto"><roundcube:label name="mailreplyto" /></label> + <a href="#followupto" onclick="return rcmail_ui.hide_header_form('followupto');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a> + <label for="_followupto"><roundcube:label name="followupto" /></label> </td> - <td class="editfield"><roundcube:object name="composeHeaders" part="mailreplyto" form="form" id="_mailreplyto" size="70" tabindex="6" /></td> - </tr><tr id="compose-mailfollowupto"> - <td class="title top"> - <a href="#mailfollowupto" onclick="return rcmail_ui.hide_header_form('mailfollowupto');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a> - <label for="_mailfollowupto"><roundcube:label name="mailfollowupto" /></label> - </td> - <td class="editfield"><roundcube:object name="composeHeaders" part="mailfollowupto" form="form" id="_mailfollowupto" size="70" tabindex="7" /></td> + <td class="editfield"><roundcube:object name="composeHeaders" part="followupto" form="form" id="_followupto" size="70" tabindex="7" /></td> </tr><tr> <td></td> <td class="formlinks"> @@ -99,9 +93,7 @@ <span class="separator">|</span> <a href="#reply-to" onclick="return rcmail_ui.show_header_form('replyto')" id="replyto-link"><roundcube:label name="addreplyto" /></a> <span class="separator">|</span> - <a href="#mailreply-to" onclick="return rcmail_ui.show_header_form('mailreplyto')" id="mailreplyto-link"><roundcube:label name="addmailreplyto" /></a> - <span class="separator">|</span> - <a href="#mailfollowup-to" onclick="return rcmail_ui.show_header_form('mailfollowupto')" id="mailfollowupto-link"><roundcube:label name="addmailfollowupto" /></a> + <a href="#followup-to" onclick="return rcmail_ui.show_header_form('followupto')" id="followupto-link"><roundcube:label name="addfollowupto" /></a> </td> </tr><tr> <td class="title"><label for="compose-subject"><roundcube:label name="subject" /></label></td> diff --git a/skins/default/templates/folderedit.html b/skins/default/templates/folderedit.html new file mode 100644 index 000000000..78ddd335e --- /dev/null +++ b/skins/default/templates/folderedit.html @@ -0,0 +1,24 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<script type="text/javascript" src="/functions.js"></script> +</head> +<body class="iframe"> + +<div id="folder-title" class="boxtitle"><roundcube:label name="folderproperties" /></div> + +<div id="folder-details" class="boxcontent"> + <roundcube:object name="folderdetails" /> + <p> + <roundcube:if condition="!strlen(request:_mbox)" /> + <input type="button" value="<roundcube:label name="cancel" />" class="button" onclick="history.back()" /> + <roundcube:endif /> + <roundcube:button command="save" type="input" class="button mainaction" label="save" /> + </p> +</div> +<script type="text/javascript">rcube_init_tabs('folder-details')</script> + +</body> +</html> diff --git a/skins/default/templates/folders.html b/skins/default/templates/folders.html new file mode 100644 index 000000000..1710b8ca0 --- /dev/null +++ b/skins/default/templates/folders.html @@ -0,0 +1,62 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<script type="text/javascript" src="/functions.js"></script> +<script type="text/javascript" src="/splitter.js"></script> +<style type="text/css"> +#folder-manager { width: <roundcube:exp expression="!empty(cookie:folderviewsplitter) ? cookie:folderviewsplitter-5 : 295" />px; } +#folder-box { left: <roundcube:exp expression="!empty(cookie:folderviewsplitter) ? cookie:folderviewsplitter+5 : 305" />px; + <roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:folderviewsplitter) ? cookie:folderviewsplitter+5 : 305).')+\\'px\\');') : ''" /> +} +</style> +</head> +<body onload="rcube_init_mail_ui()"> + +<roundcube:include file="/includes/taskbar.html" /> +<roundcube:include file="/includes/header.html" /> +<roundcube:include file="/includes/settingstabs.html" /> + +<div id="mainscreen"> + +<div id="folder-manager"> +<div id="folder-title" class="boxtitle"><roundcube:label name="folders" /><span class="rightalign"><roundcube:label name="subscribed" /></span></div> +<div class="boxlistcontent"> + <roundcube:object name="foldersubscription" form="subscriptionform" id="subscription-table" noheader="true" + cellpadding="1" cellspacing="0" summary="Folder subscription table" class="records-table" /> +</div> +<div class="boxfooter"> + <roundcube:button command="create-folder" type="link" title="createfolder" class="buttonPas addgroup" classAct="button addgroup" content=" " /> + <roundcube:button name="mailboxmenulink" id="mailboxmenulink" type="link" title="folderactions" class="button groupactions" onclick="rcmail_ui.show_popup('mailboxmenu');return false" content=" " /> + + <roundcube:if condition="env:quota" /> + <img id="quotaimg" src="/images/quota.gif" alt="" /> + <div id="quota"> + <roundcube:object name="quotaDisplay" display="image" width="100" height="14" id="quotadisplay" /> + </div> + <roundcube:endif /> +</div> +</div> + +<script type="text/javascript"> + var folderviewsplit = new rcube_splitter({id:'folderviewsplitter', p1: 'folder-manager', p2: 'folder-box', orientation: 'v', relative: true, start: 300 }); + rcmail.add_onload('folderviewsplit.init()'); +</script> + +<div id="folder-box"> + <roundcube:object name="folderframe" id="folder-frame" width="100%" height="100%" frameborder="0" src="/watermark.html" /> +</div> + +</div> + +<div id="mailboxoptionsmenu" class="popupmenu"> + <ul> + <li><roundcube:button command="delete-folder" label="delete" classAct="active" /></li> + <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li> + <roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" /> + </ul> +</div> + +</body> +</html> diff --git a/skins/default/templates/identityedit.html b/skins/default/templates/identityedit.html index 24c37a629..45c68f1ad 100644 --- a/skins/default/templates/identityedit.html +++ b/skins/default/templates/identityedit.html @@ -40,7 +40,7 @@ <div id="identity-title" class="boxtitle"><roundcube:object name="steptitle" /></div> <div class="boxcontent"> -<roundcube:object name="identityform" size="40" textareacols="60" textarearows="6" /> +<roundcube:object name="identityform" size="40" textareacols="70" textarearows="6" /> <p> <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" style="margin-right:0.5em" /> <roundcube:button command="save" type="input" class="button mainaction" label="save" /> diff --git a/skins/default/templates/managefolders.html b/skins/default/templates/managefolders.html deleted file mode 100644 index 164d56f54..000000000 --- a/skins/default/templates/managefolders.html +++ /dev/null @@ -1,41 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title><roundcube:object name="pagetitle" /></title> -<roundcube:include file="/includes/links.html" /> -<script type="text/javascript" src="/functions.js"></script> -</head> -<body> - -<roundcube:include file="/includes/taskbar.html" /> -<roundcube:include file="/includes/header.html" /> -<roundcube:include file="/includes/settingstabs.html" /> - -<form name="subscriptionform" action="./" onsubmit="rcmail.command('create-folder');return false;"> - -<div id="mainscreen"> - -<div id="folder-manager"> -<roundcube:object name="foldersubscription" form="subscriptionform" id="subscription-table" - cellpadding="1" cellspacing="0" summary="Folder subscription table" class="records-table" - deleteIcon="/images/icons/delete.png" - renameIcon="/images/icons/rename.png" /> -</div> - -<div id="bottomboxes" class="box"> -<div class="boxtitle"><roundcube:label name="createfolder" /></div> - -<div class="boxcontent"> -<roundcube:label name="foldername" />: -<roundcube:object name="createfolder" form="subscriptionform" hintbox="rcmailaddfolderhint" /> -<roundcube:button command="create-folder" type="input" class="button" label="create" /> -<div id="rcmailaddfolderhint" class="hint" style="margin-top:1em; height:16px"></div> -</div> -</div> - -</div> - -</form> - -</body> -</html> |