thomascube
2010-12-17 db1a87cd6c506f2afbd1a37c64cb56ae11120b49
Update branch for 0.5-rc release

5 files added
183 files modified
2 files deleted
7585 ■■■■■ changed files
CHANGELOG 24 ●●●●● patch | view | raw | blame | history
INSTALL 3 ●●●● patch | view | raw | blame | history
README 3 ●●●●● patch | view | raw | blame | history
UPGRADING 5 ●●●●● patch | view | raw | blame | history
bin/update.sh 2 ●●● patch | view | raw | blame | history
config/main.inc.php.dist 10 ●●●● patch | view | raw | blame | history
index.php 27 ●●●●● patch | view | raw | blame | history
plugins/emoticons/emoticons.php 63 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/fr_FR.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/ru_RU.inc 33 ●●●● patch | view | raw | blame | history
plugins/new_user_dialog/localization/es_ES.inc 4 ●●●● patch | view | raw | blame | history
plugins/new_user_dialog/new_user_dialog.php 1 ●●●● patch | view | raw | blame | history
plugins/new_user_dialog/package.xml 26 ●●●● patch | view | raw | blame | history
plugins/password/config.inc.php.dist 2 ●●●●● patch | view | raw | blame | history
plugins/password/drivers/chpasswd.php 2 ●●● patch | view | raw | blame | history
plugins/password/drivers/ldap.php 38 ●●●●● patch | view | raw | blame | history
plugins/password/drivers/ldap_simple.php 35 ●●●● patch | view | raw | blame | history
plugins/password/drivers/sql.php 8 ●●●● patch | view | raw | blame | history
plugins/password/package.xml 4 ●●●● patch | view | raw | blame | history
program/include/iniset.php 2 ●●● patch | view | raw | blame | history
program/include/main.inc 180 ●●●●● patch | view | raw | blame | history
program/include/rcmail.php 32 ●●●● patch | view | raw | blame | history
program/include/rcube_imap.php 331 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap_generic.php 2725 ●●●● patch | view | raw | blame | history
program/include/rcube_message.php 6 ●●●● patch | view | raw | blame | history
program/include/rcube_template.php 20 ●●●● patch | view | raw | blame | history
program/include/rcube_user.php 8 ●●●● patch | view | raw | blame | history
program/js/app.js 329 ●●●●● patch | view | raw | blame | history
program/js/editor.js 4 ●●● patch | view | raw | blame | history
program/js/list.js 9 ●●●●● patch | view | raw | blame | history
program/lib/Mail/mime.php 57 ●●●●● patch | view | raw | blame | history
program/lib/Mail/mimePart.php 104 ●●●●● patch | view | raw | blame | history
program/localization/ar_SA/labels.inc 92 ●●●●● patch | view | raw | blame | history
program/localization/ar_SA/messages.inc 28 ●●●● patch | view | raw | blame | history
program/localization/ast/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ast/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/az_AZ/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/az_AZ/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/bg_BG/labels.inc 9 ●●●● patch | view | raw | blame | history
program/localization/bg_BG/messages.inc 5 ●●●● patch | view | raw | blame | history
program/localization/bn_BD/labels.inc 5 ●●●● patch | view | raw | blame | history
program/localization/bn_BD/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/br/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/bs_BA/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ca_ES/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ca_ES/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/cs_CZ/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/cs_CZ/messages.inc 23 ●●●● patch | view | raw | blame | history
program/localization/cy_GB/labels.inc 26 ●●●●● patch | view | raw | blame | history
program/localization/cy_GB/messages.inc 29 ●●●● patch | view | raw | blame | history
program/localization/da_DK/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/da_DK/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/de_CH/labels.inc 16 ●●●●● patch | view | raw | blame | history
program/localization/de_CH/messages.inc 15 ●●●● patch | view | raw | blame | history
program/localization/de_DE/labels.inc 16 ●●●●● patch | view | raw | blame | history
program/localization/de_DE/messages.inc 15 ●●●● patch | view | raw | blame | history
program/localization/el_GR/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/el_GR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/en_GB/labels.inc 24 ●●●●● patch | view | raw | blame | history
program/localization/en_GB/messages.inc 29 ●●●●● patch | view | raw | blame | history
program/localization/en_US/labels.inc 21 ●●●●● patch | view | raw | blame | history
program/localization/en_US/messages.inc 15 ●●●● patch | view | raw | blame | history
program/localization/eo/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/eo/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/es_AR/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/es_AR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/es_ES/labels.inc 21 ●●●● patch | view | raw | blame | history
program/localization/es_ES/messages.inc 17 ●●●● patch | view | raw | blame | history
program/localization/et_EE/labels.inc 16 ●●●●● patch | view | raw | blame | history
program/localization/et_EE/messages.inc 18 ●●●●● patch | view | raw | blame | history
program/localization/eu_ES/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/eu_ES/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/fa/labels.inc 4 ●●●● patch | view | raw | blame | history
program/localization/fa/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fa_AF/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fa_AF/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fi_FI/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fi_FI/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fr_FR/labels.inc 19 ●●●● patch | view | raw | blame | history
program/localization/fr_FR/messages.inc 19 ●●●● patch | view | raw | blame | history
program/localization/ga_IE/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/gl_ES/labels.inc 41 ●●●●● patch | view | raw | blame | history
program/localization/gl_ES/messages.inc 27 ●●●● patch | view | raw | blame | history
program/localization/he_IL/labels.inc 21 ●●●● patch | view | raw | blame | history
program/localization/he_IL/messages.inc 17 ●●●● patch | view | raw | blame | history
program/localization/hi_IN/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/hr_HR/labels.inc 88 ●●●● patch | view | raw | blame | history
program/localization/hr_HR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/hu_HU/labels.inc 13 ●●●●● patch | view | raw | blame | history
program/localization/hu_HU/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/hy_AM/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/hy_AM/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/id_ID/labels.inc 25 ●●●● patch | view | raw | blame | history
program/localization/id_ID/messages.inc 21 ●●●● patch | view | raw | blame | history
program/localization/is_IS/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/it_IT/labels.inc 13 ●●●●● patch | view | raw | blame | history
program/localization/it_IT/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ja_JP/labels.inc 280 ●●●●● patch | view | raw | blame | history
program/localization/ja_JP/messages.inc 46 ●●●●● patch | view | raw | blame | history
program/localization/ka_GE/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ka_GE/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/kh_KH/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/kh_KH/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ko_KR/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ko_KR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ku/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ku/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/lt_LT/labels.inc 34 ●●●●● patch | view | raw | blame | history
program/localization/lt_LT/messages.inc 30 ●●●● patch | view | raw | blame | history
program/localization/lv_LV/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/lv_LV/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/mk_MK/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/mk_MK/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/mr_IN/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/mr_IN/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ms_MY/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ms_MY/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/nb_NO/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nb_NO/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ne_NP/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nl_BE/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nl_BE/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nl_NL/labels.inc 15 ●●●●● patch | view | raw | blame | history
program/localization/nl_NL/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nn_NO/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/nn_NO/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/pl_PL/labels.inc 21 ●●●● patch | view | raw | blame | history
program/localization/pl_PL/messages.inc 15 ●●●● patch | view | raw | blame | history
program/localization/ps/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ps/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/pt_BR/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/pt_BR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/pt_PT/labels.inc 18 ●●●●● patch | view | raw | blame | history
program/localization/pt_PT/messages.inc 14 ●●●● patch | view | raw | blame | history
program/localization/ro_RO/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ro_RO/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ru_RU/labels.inc 13 ●●●● patch | view | raw | blame | history
program/localization/ru_RU/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/si_LK/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/si_LK/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/sk_SK/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/sk_SK/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/sl_SI/labels.inc 13 ●●●●● patch | view | raw | blame | history
program/localization/sl_SI/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/sq_AL/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/sq_AL/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/sr_CS/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/sr_CS/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/sv_SE/labels.inc 12 ●●●●● patch | view | raw | blame | history
program/localization/sv_SE/messages.inc 15 ●●●● patch | view | raw | blame | history
program/localization/ta_IN/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ta_IN/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/th_TH/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/tr_TR/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/tr_TR/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/uk_UA/labels.inc 16 ●●●●● patch | view | raw | blame | history
program/localization/uk_UA/messages.inc 16 ●●●● patch | view | raw | blame | history
program/localization/vi_VN/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/zh_CN/labels.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/zh_CN/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/zh_TW/labels.inc 9 ●●●● patch | view | raw | blame | history
program/localization/zh_TW/messages.inc 4 ●●● patch | view | raw | blame | history
program/steps/mail/compose.inc 22 ●●●●● patch | view | raw | blame | history
program/steps/mail/copy.inc 4 ●●● patch | view | raw | blame | history
program/steps/mail/folders.inc 84 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 93 ●●●●● patch | view | raw | blame | history
program/steps/mail/getunread.inc 15 ●●●●● patch | view | raw | blame | history
program/steps/mail/list.inc 3 ●●●● patch | view | raw | blame | history
program/steps/mail/mark.inc 6 ●●●● patch | view | raw | blame | history
program/steps/mail/move_del.inc 10 ●●●● patch | view | raw | blame | history
program/steps/mail/search.inc 3 ●●●● patch | view | raw | blame | history
program/steps/mail/sendmail.inc 69 ●●●●● patch | view | raw | blame | history
program/steps/mail/show.inc 7 ●●●● patch | view | raw | blame | history
program/steps/settings/edit_folder.inc 294 ●●●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc 3 ●●●● patch | view | raw | blame | history
program/steps/settings/folders.inc 377 ●●●●● patch | view | raw | blame | history
program/steps/settings/manage_folders.inc 443 ●●●●● patch | view | raw | blame | history
program/steps/settings/save_folder.inc 176 ●●●●● patch | view | raw | blame | history
program/steps/utils/html2text.inc 7 ●●●● patch | view | raw | blame | history
skins/default/common.css 19 ●●●●● patch | view | raw | blame | history
skins/default/functions.js 2 ●●● patch | view | raw | blame | history
skins/default/iehacks.css 8 ●●●● patch | view | raw | blame | history
skins/default/mail.css 22 ●●●●● patch | view | raw | blame | history
skins/default/settings.css 118 ●●●●● patch | view | raw | blame | history
skins/default/splitter.js 6 ●●●● patch | view | raw | blame | history
skins/default/templates/compose.html 18 ●●●● patch | view | raw | blame | history
skins/default/templates/folderedit.html 24 ●●●●● patch | view | raw | blame | history
skins/default/templates/folders.html 62 ●●●●● patch | view | raw | blame | history
skins/default/templates/identityedit.html 2 ●●● patch | view | raw | blame | history
skins/default/templates/managefolders.html 41 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
INSTALL
@@ -17,8 +17,9 @@
   - 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)
README
@@ -25,9 +25,6 @@
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:
----------
UPGRADING
@@ -22,6 +22,7 @@
   ./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.
bin/update.sh
@@ -80,7 +80,7 @@
        // 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";
config/main.inc.php.dist
@@ -83,6 +83,7 @@
// 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 @@
// 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.
index.php
@@ -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 @@
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 @@
    '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',
  )
);
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 @@
        // 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 @@
        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));
    }
}
plugins/managesieve/localization/fr_FR.inc
@@ -26,6 +26,8 @@
$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';
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['addrule'] = 'Добавить правило';
$labels['delrule'] = 'Удалить правило';
$labels['messagemoveto'] = 'Переместить сообщение в';
$labels['messageredirect'] = 'Перенаправить сообщение на ';
$labels['messageredirect'] = 'Перенаправить сообщение на';
$labels['messagecopyto'] = 'Скопировать сообщение в';
$labels['messagesendcopy'] = 'Отправить копию сообщения на';
$labels['messagereply'] = 'Ответить с сообщением';
$labels['messagedelete'] = 'Удалить сообщение';
$labels['messagediscard'] = 'Отбросить с сообщением';
@@ -38,12 +58,13 @@
$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['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'] = 'Невозможно создать набор фильтров. Ошибка сервера';
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.';
?>
plugins/new_user_dialog/new_user_dialog.php
@@ -85,6 +85,7 @@
        "$(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');
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>
plugins/password/config.inc.php.dist
@@ -127,6 +127,7 @@
// '%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 @@
// '%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)';
plugins/password/drivers/chpasswd.php
@@ -18,7 +18,7 @@
    $username = $_SESSION['username'];
    $handle = popen($cmd, "w");
    fwrite($handle, "$username:$newpass");
    fwrite($handle, "$username:$newpass\n");
    if (pclose($handle) == 0) {
        return PASSWORD_SUCCESS;
plugins/password/drivers/ldap.php
@@ -18,18 +18,18 @@
{
    $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 @@
            $bindpw = $curpass;
            break;
    }
    // Configuration array
    $ldapConfig = array (
        'binddn'    => $binddn,
@@ -53,27 +53,27 @@
        '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 @@
    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 @@
        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 @@
 * @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 @@
    $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;
}
plugins/password/drivers/ldap_simple.php
@@ -20,7 +20,7 @@
        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 @@
    } 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 @@
        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 @@
    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 @@
    while (strlen($str) < $length) {
        $str .= substr($possible, (rand() % strlen($possible)), 1);
    }
    return $str;
}
plugins/password/drivers/sql.php
@@ -33,7 +33,7 @@
    if ($err = $db->is_error())
        return PASSWORD_ERROR;
    // crypted password
    if (strpos($sql, '%c') !== FALSE) {
        $salt = '';
@@ -56,7 +56,11 @@
            $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);
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="/">
program/include/iniset.php
@@ -36,7 +36,7 @@
}
// 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));
program/include/main.inc
@@ -1193,21 +1193,33 @@
  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'];
  }
  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));
    $RCMAIL->user->get_username(), $RCMAIL->user->ID, rcmail_remote_ip()));
}
/**
 * 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 @@
{
  return microtime(true);
}
/**
 * @access private
@@ -1314,8 +1326,13 @@
  
  $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_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
 *
@@ -1579,6 +1687,43 @@
  $RCMAIL->output->add_script(sprintf("rcmail_editor_init('\$__skin_path', '%s', %d, '%s');",
    JQ($lang), intval($CONFIG['enable_spellcheck']), $mode),
    'foot');
}
/**
 * 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);
}
@@ -1817,3 +1962,4 @@
        flush();
    }
}
program/include/rcmail.php
@@ -678,10 +678,16 @@
        $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 @@
    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 @@
    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);
program/include/rcube_imap.php
@@ -100,6 +100,16 @@
        '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 @@
        $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 @@
     */
    function close()
    {
        $this->conn->close();
        $this->conn->closeConnection();
        $this->write_cache();
    }
@@ -198,11 +207,11 @@
     */
    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 @@
     */
    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 @@
     * @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 @@
        $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) {
            $this->namespace['other'] = NULL;
            foreach ((array)$imap_other as $dir) {
                if ($dir) {
                    $this->namespace['other'][] = 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_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 @@
        }
        // 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 @@
        // 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);
        }
@@ -2552,6 +2606,9 @@
        $tbox = $to_mbox;
        $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);
@@ -2771,7 +2828,23 @@
        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 @@
    /**
     * 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 @@
    /**
     * 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);
        $mailbox  = $this->mod_mailbox($mbox_name);
        $abs_name = $this->mod_mailbox($new_name);
        $delm     = $this->get_hierarchy_delimiter();
        // check if mailbox is subscribed
        $a_subscribed = $this->_list_mailboxes();
        $subscribed = in_array($mailbox, $a_subscribed);
        // 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|array $mbox_name sMailbox name(s) string/array
     * @param string $mbox_name Mailbox name
     *
     * @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 mailbox-related cache
            $this->clear_message_cache($mailbox.'.msg');
            $this->clear_cache('mailboxes');
        }
        // clear mailboxlist cache
        if ($deleted)
            $this->clear_cache('mailboxes');
        return $deleted;
        return $result;
    }
@@ -3208,7 +3291,7 @@
        }
        else {
            $a_folders = $this->conn->listMailboxes('', $mbox);
       }
        }
        if (is_array($a_folders) && in_array($mbox, $a_folders)) {
            $this->icache[$key][] = $mbox;
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 @@
/**
 * 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 @@
    );
    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 @@
    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 @@
        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 @@
        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)
                $this->error = $err_prefix ? $err_prefix.$str : $str;
            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;
            return $this->errornum;
        }
        return self::ERROR_UNKNOWN;
                if ($this->errornum != self::ERROR_OK) {
                    $this->error = $err_prefix ? $err_prefix.$str : $str;
                }
            }
            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 @@
    // 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 @@
            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 @@
                // 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 @@
                $this->putLine('');
            }
            $line = $this->readLine(1024);
            $line = $this->readReply();
            $result = $this->parseResult($line);
        }
        else { // PLAIN
@@ -496,29 +511,29 @@
                    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 @@
            $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 @@
     */
    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 @@
        }
        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 @@
    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;
        }
            $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;
        }
        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->prefs['timeout'] > 0)
            stream_set_timeout($this->fp, $this->prefs['timeout']);
        $line = trim(fgets($this->fp, 8192));
        if ($this->prefs['debug_mode'] && $line) {
            write_log('imap', 'S: '. $line);
        if (!$this->fp) {
            $this->setError(self::ERROR_BAD, sprintf("Could not connect to %s:%d: %s", $host, $this->prefs['port'], $errstr));
            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']);
        if ($this->prefs['timeout'] > 0)
            stream_set_timeout($this->fp, $this->prefs['timeout']);
            $this->setError(self::ERROR_BAD, $error);
            $this->close();
            return false;
        }
        $line = trim(fgets($this->fp, 8192));
        // RFC3501 [7.1] optional CAPABILITY response
        if (preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) {
            $this->parseCapability($matches[1], true);
        }
        if ($this->prefs['debug_mode'] && $line) {
            write_log('imap', 'S: '. $line);
        }
        $this->message = $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']);
        // TLS connection
        if ($this->prefs['ssl_mode'] == 'tls' && $this->getCapability('STARTTLS')) {
            if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
                   $res = $this->execute('STARTTLS');
            $this->setError(self::ERROR_BAD, $error);
            $this->closeConnection();
            return false;
        }
        // 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');
                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 @@
            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 @@
        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 @@
     */
    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 @@
            $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;
        }
        $this->select($mailbox);
        if (!$this->data['READ-WRITE']) {
            $this->setError(self::ERROR_READONLY, "Mailbox is read-only", 'EXPUNGE');
            return false;
        }
        if ($this->selected == $mailbox) {
            return $this->data['RECENT'];
        }
        // Clear internal status cache
        unset($this->data['STATUS:'.$mailbox]);
        return false;
        if ($messages)
            $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
        else
            $result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE);
        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];
@@ -922,6 +1065,29 @@
        $counts = $this->status($mailbox);
        if (is_array($counts)) {
            return (int) $counts['MESSAGES'];
        }
        return false;
    }
    /**
     * 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;
@@ -960,218 +1126,218 @@
    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)) {
            $this->setError(self::ERROR_COMMAND, "Unable to send command: $request");
            return 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;
            }
        }
        $result = array();
        $index_field = empty($index_field) ? 'DATE' : strtoupper($index_field);
        do {
            $line = rtrim($this->readLine(200));
            $line = $this->multLine($line);
        $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 (preg_match('/^\* ([0-9]+) FETCH/', $line, $m)) {
                $id     = $m[1];
                $flags  = NULL;
        if (!($mode = $fields_a[$index_field])) {
            return false;
        }
                if ($skip_deleted && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) {
                    $flags = explode(' ', strtoupper($matches[1]));
                    if (in_array('\\DELETED', $flags)) {
                        $deleted[$id] = $id;
                        continue;
                    }
                }
        /*  Do "SELECT" command */
        if (!$this->select($mailbox)) {
            return false;
        }
                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));
        // build FETCH command string
        $key     = $this->nextTag();
        $cmd     = $uidfetch ? 'UID FETCH' : 'FETCH';
        $deleted = $skip_deleted ? ' FLAGS' : '';
        return $result;
        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;
    }
    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;
            }
            // 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;
            }
            // 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];
        $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;
        }
        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 @@
     */
    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 @@
     */
    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]);
            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;
                $result[$id]            = new rcube_mail_header;
                $result[$id]->id        = $id;
                $result[$id]->subject   = '';
                $result[$id]->messageID = 'mid:' . $id;
                $lines = array();
                $ln = 0;
                $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 ...
                // 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];
                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);
                    // 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];
                        }
                    // 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);
                        $time_str = str_replace('"', '', $time_str);
                        // if time is gmt...
                        $time_str = str_replace('GMT','+0000',$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;
                    }
                        $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];
                    }
                    // 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);
                        }
                    }
                }
                    // 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.
                // 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");
                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;
                    }
                    // 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;
                    }
                    // 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 (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] = '';
                        }
                    }
                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);
                    // 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);
                        $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 ()
                }
                        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);
                // 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));
                    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;
        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);
            $field = strtolower($field);
        }
        if ($field == 'date' || $field == 'internaldate') {
            $field = 'timestamp';
        }
        if (empty($flag)) {
            $flag = 'ASC';
        } else {
            $flag = strtoupper($flag);
        if ($field == 'date' || $field == 'internaldate') {
            $field = 'timestamp';
        }
        $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 (empty($flag)) {
            $flag = 'ASC';
        } else {
            $flag = strtoupper($flag);
        }
            // 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);
        $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;
            }
                        $data = strtoupper($data);
                    }
                }
                $index[$key] = $data;
            }
            // sort index
            if ($flag == 'ASC') {
                asort($index);
            } else {
                arsort($index);
            }
            // 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;
    }
    function expunge($mailbox, $messages=NULL)
    {
        if (!$this->select($mailbox)) {
            return false;
            // form new array based on index
            $result = array();
            reset($index);
            while (list($key, $val) = each($index)) {
                $result[$key] = $a[$key];
            }
        }
        // Clear internal status cache
        unset($this->data['STATUS:'.$mailbox]);
        if ($messages)
            $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
        else
            $result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE);
        if ($result == self::ERROR_OK) {
            $this->selected = ''; // state has changed, need to reselect
            return true;
        }
        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 @@
            $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 @@
    // 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);
            }
        }
        $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;
        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 @@
                null, null, 0, $depthmap, $haschildren);
            return array($tree, $depthmap, $haschildren);
        }
        }
        return false;
        return false;
    }
    /**
@@ -1752,9 +1918,9 @@
    {
        $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 @@
                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 @@
            $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 @@
                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 @@
    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 @@
                    // Add to result array
                    if (!$lstatus) {
                           $folders[] = $mailbox;
                        $folders[] = $mailbox;
                    }
                    else {
                        $folders[$mailbox] = array();
@@ -1937,406 +2107,378 @@
                        $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;
        }
        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])";
        // format request
        $reply_key = '* ' . $id;
        $key       = $this->nextTag();
        $request   = $key . ($is_uid ? ' UID' : '') . " FETCH $id (BODY.PEEK[$part])";
        // 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;
        }
           // receive reply line
           do {
               $line = rtrim($this->readLine(1024));
               $a    = explode(' ', $line);
           } while (!($end = $this->startsWith($line, $key, true)) && $a[2] != 'FETCH');
        // 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;
        $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);
            }
        // 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);
            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      = '';
        } 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);
            while ($bytes > 0) {
                $line = $this->readLine(4096);
                if ($line === NULL)
                    break;
                if ($line === NULL) {
                    break;
                }
                $len  = strlen($line);
                $len  = strlen($line);
                if ($len > $bytes) {
                    $line = substr($line, 0, $bytes);
                    $len = strlen($line);
                }
                $bytes -= $len;
                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";
                }
                } else {
                    $line = rtrim($line, "\t\r\n\0\x0B") . "\n";
                }
                if ($file)
                    fwrite($file, $line);
                   else if ($print)
                    echo $line;
                else
                    $result .= $line;
            }
        }
                if ($file)
                    fwrite($file, $line);
                else if ($print)
                    echo $line;
                else
                    $result .= $line;
            }
        }
        // read in anything up until last line
        if (!$end)
            do {
                    $line = $this->readLine(1024);
            } while (!$this->startsWith($line, $key, true));
        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;
           }
        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);
            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);
        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 @@
         * 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;
            $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 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 @@
            $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 @@
            $this->escape($mailbox), $this->escape($user)),
            self::COMMAND_NORESPONSE);
        return ($result == self::ERROR_OK);
        return ($result == self::ERROR_OK);
    }
    /**
@@ -2554,11 +2697,12 @@
        }
        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 @@
     */
    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 @@
            $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 @@
            $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 @@
                        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 @@
        $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);
        }
        // return last line only (without command tag and result)
        if ($line && ($options & self::COMMAND_LASTLINE)) {
            $response = preg_replace("/^$tag (OK|NO|BAD|BYE|PREAUTH)?\s*/i", '', trim($line));
            $this->parseCapability($matches[1], true);
        }
        return $noresp ? $code : array($code, $response);
        // 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*(\[[a-z-]+\])?\s*/i", '', trim($line));
        }
        return $noresp ? $code : array($code, $response);
    }
    /**
@@ -2917,7 +3072,7 @@
                $result[] = substr($str, $epos + 3, $bytes);
                // Advance the string
                $str = substr($str, $epos + 3 + $bytes);
            break;
                break;
            // Quoted string
            case '"':
@@ -2939,17 +3094,17 @@
                // 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 @@
                    $result[] = $m[1] == 'NIL' ? NULL : $m[1];
                    $str = substr($str, strlen($m[1]));
                }
            break;
                break;
            }
        }
@@ -2977,12 +3132,14 @@
    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 @@
     */
    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 @@
     */
    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 @@
    static function unEscape($string)
    {
        return strtr($string, array('\\"'=>'"', '\\\\' => '\\'));
        return strtr($string, array('\\"'=>'"', '\\\\' => '\\'));
    }
}
program/include/rcube_message.php
@@ -426,7 +426,7 @@
                        $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 @@
                    // 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)) {
program/include/rcube_template.php
@@ -1045,7 +1045,7 @@
    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 @@
        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 @@
                '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 @@
        $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 @@
        // 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();
program/include/rcube_user.php
@@ -358,13 +358,17 @@
    {
        $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);
        }
program/js/app.js
@@ -148,7 +148,7 @@
    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 @@
          }
          // 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 @@
          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 @@
    // 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 @@
  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
@@ -1148,6 +1155,12 @@
    else
      return url + '?' + name + '=' + value;
  };
  this.is_framed = function()
  {
    return (this.env.framed && parent.rcmail);
  };
  /*********************************************************/
  /*********        event handling methods         *********/
@@ -1528,7 +1541,7 @@
    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 @@
      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 @@
      }
    }
    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 @@
    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 @@
  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 @@
    // 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 @@
      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 @@
  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 @@
      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 @@
  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 @@
    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)
  this.create_folder = function()
  {
    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()
  {
    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 @@
      // 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 @@
  // 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 @@
    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');
@@ -4409,6 +4282,42 @@
    }
    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);
  };
@@ -4599,7 +4508,7 @@
  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 @@
  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') {
program/js/editor.js
@@ -71,8 +71,10 @@
  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
program/js/list.js
@@ -110,7 +110,7 @@
    // 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 @@
  }
  // 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 @@
  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 @@
  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);
program/lib/Mail/mime.php
@@ -365,30 +365,28 @@
     * 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 @@
        $location    = '',
        $n_encoding  = null,
        $f_encoding  = null,
        $description = ''
        $description = '',
        $h_charset   = null
    ) {
        $bodyfile = null;
@@ -437,14 +436,15 @@
            '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 @@
        $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 @@
    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 @@
        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'])
program/lib/Mail/mimePart.php
@@ -141,17 +141,19 @@
    *     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 @@
            $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;
@@ -180,29 +176,6 @@
            case 'cid':
                $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':
@@ -216,53 +189,56 @@
        }
        // 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
            );
        }
program/localization/ar_SA/labels.inc
@@ -38,14 +38,18 @@
$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['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['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['writenewmessage'] = 'إنشاء رسالة جديدة';
$labels['replytomessage'] = 'الرد على الرسالة';
$labels['replytoallmessage'] = 'الرد على المرسل وجميع مستقبلي الرسالة';
$labels['replyall'] = 'الرد على الجميع';
$labels['replylist'] = 'الرد على القائمة';
$labels['forwardmessage'] = 'تمرير الرسالة';
$labels['deletemessage'] = 'حذف الرسالة إلى المهملات';
$labels['movemessagetotrash'] = 'انقل الرسالة إلى سلة المهملات';
@@ -169,6 +175,8 @@
$labels['charset'] = 'مجموعة المحارف';
$labels['editortype'] = 'نوع المُحرّر';
$labels['returnreceipt'] = 'ايصال استلام';
$labels['dsn'] = 'تنويه حالة التوصيل';
$labels['editidents'] = 'تعديل الهويات';
$labels['checkspelling'] = 'التدقيق الإملائي';
$labels['resumeediting'] = 'متابعة التحرير';
$labels['revertto'] = 'استعادة إلى';
@@ -192,6 +200,7 @@
$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['addcontact'] = 'إضافة المراسل المحدد إلى دفتر عناويني';
$labels['editcontact'] = 'تحرير بيانات المراسل';
$labels['contacts'] = 'المراسلين';
$labels['contactproperties'] = 'خواص جهة الإتصال';
$labels['edit'] = 'تحرير';
$labels['cancel'] = 'إلغاء';
$labels['save'] = 'حفظ';
@@ -246,33 +256,36 @@
$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['2047folding'] = 'RFC 2047 بأكملها (غيرها)';
$labels['force7bit'] = 'استخدام ترميز MIME للحروف ذات الثمانية بتّات';
$labels['advancedoptions'] = 'خيارات متقدّمة';
$labels['focusonnewmessage'] = 'وجّه نافذة المتصفح عند وجود رسالة جديدة';
$labels['focusonnewmessage'] = 'التركيز على نافذة المتصفح عند وجود رسالة جديدة';
$labels['checkallfolders'] = 'التحقق من وجود رسائل جديدة في جميع المجلدات';
$labels['displaynext'] = 'إظهار الرسالة التالية بعد حذف/نقل الرسالة الحالية';
$labels['mainoptions'] = 'الخيارات الأساسية';
@@ -305,6 +318,9 @@
$labels['insertsignature'] = 'إضافة التوقيع';
$labels['previewpanemarkread'] = 'تحديد الرسائل المُعاينة كمقروءة';
$labels['afternseconds'] = 'بعد $n ثواني';
$labels['reqmdn'] = 'طلب إشعار استلام دائماً';
$labels['reqdsn'] = 'طلب تنويه لحالة التوصيل دائماً';
$labels['replysamefolder'] = 'وضع الردود في المجلد الذي يحوي الرسالة المردود عليها';
$labels['folder'] = 'مجلد';
$labels['folders'] = 'مجلدات';
$labels['foldername'] = 'اسم المجلد';
@@ -312,11 +328,15 @@
$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['MB'] = 'م.ب';
$labels['GB'] = 'ج.ب';
$labels['unicode'] = 'يونيكود';
$labels['english'] = 'الانجليزية';
$labels['english'] = 'الإنجليزية';
$labels['westerneuropean'] = 'الغرب أوروبية';
$labels['easterneuropean'] = 'الشرق أوروبية';
$labels['southeasterneuropean'] = 'الجنوب شرق أوروبية';
program/localization/ar_SA/messages.inc
@@ -23,9 +23,10 @@
$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['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['checking'] = 'جاري التحقق...';
$messages['nospellerrors'] = 'لم يعثر على أية أخطاء إملائية';
$messages['folderdeleted'] = 'تم حذف المجلد بنجاح';
$messages['foldersubscribed'] = 'تم الإشتراك في المجلد بنجاح';
$messages['folderunsubscribed'] = 'تم إلغاء الإشتراك في المجلد بنجاح';
$messages['folderpurged'] = 'تم تفريغ المجلد بنجاح';
$messages['deletedsuccessfully'] = 'تم الحذف بنجاح';
$messages['converting'] = 'إزالة التنسيق من الرسالة...';
$messages['messageopenerror'] = 'تعذرت قراءة الرسالة من الخادم';
@@ -88,10 +92,11 @@
$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['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'] = 'تم إنشاء المجلد بنجاح';
?>
program/localization/ast/labels.inc
@@ -265,9 +265,6 @@
$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';
program/localization/ast/messages.inc
@@ -54,9 +54,7 @@
$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['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';
program/localization/az_AZ/labels.inc
@@ -310,9 +310,6 @@
$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ə';
program/localization/az_AZ/messages.inc
@@ -52,9 +52,7 @@
$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['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';
program/localization/bg_BG/labels.inc
@@ -39,8 +39,7 @@
$labels['cc'] = 'Копие до';
$labels['bcc'] = 'Скрито копие до';
$labels['replyto'] = 'Отговор до';
$labels['mailreplyto'] = 'Отговор към';
$labels['mailfollowupto'] = 'Препращане към';
$labels['followupto'] = 'Препращане към';
$labels['date'] = 'Дата';
$labels['size'] = 'Размер';
$labels['priority'] = 'Приоритет';
@@ -202,8 +201,7 @@
$labels['addcc'] = 'Копие до';
$labels['addbcc'] = 'Скрито копие до';
$labels['addreplyto'] = 'Отговор на';
$labels['addmailreplyto'] = 'Добавяне на отговор към';
$labels['addmailfollowupto'] = 'Добавяне на препращане към';
$labels['addfollowupto'] = 'Добавяне на препращане към';
$labels['mdnrequest'] = 'Подателят на писмото е пожелал да бъде уведомен, че сте го прочели. Желаете ли да изпратите обратна разписка?';
$labels['receiptread'] = 'Обратна разписка (прочетено)';
$labels['yourmessage'] = 'Това е обратна разписка за писмото Ви';
@@ -330,9 +328,6 @@
$labels['messagecount'] = 'Писма';
$labels['create'] = 'Създай';
$labels['createfolder'] = 'Направи нова папка';
$labels['rename'] = 'Преименувай';
$labels['renamefolder'] = 'Преименувай папката';
$labels['deletefolder'] = 'Изтрий';
$labels['managefolders'] = 'Настройки на папките';
$labels['specialfolders'] = 'Служебни папки';
$labels['sortby'] = 'Сортирай по';
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['deletemessagesconfirm'] = 'Искате ли да изтриете маркираните съобщения?';
$messages['deletefolderconfirm'] = 'Искате ли да изтриете тази папка?';
$messages['purgefolderconfirm'] = 'Искате ли да изтриете всички писма в тази папка?';
$messages['foldercreating'] = 'Създаване на папка...';
$messages['folderdeleting'] = 'Изтриване на папка...';
$messages['folderrenaming'] = 'Преименуване на папка...';
$messages['foldermoving'] = 'Преместване на папка...';
$messages['formincomplete'] = 'Не сте попълнили всички полета';
$messages['noemailwarning'] = 'Моля, въведете валиден e-mail адрес';
@@ -95,7 +93,6 @@
$messages['receiptsent'] = 'Обратната разписка е изпратена.';
$messages['errorsendingreceipt'] = 'Грешка при изпращането на обратна разписка.';
$messages['nodeletelastidentity'] = 'Не можете да изтриете тази самоличност, трябва да имате поне една.';
$messages['addsubfolderhint'] = 'Тази папка ще бъде създадена като подпапка на текущо избраната';
$messages['forbiddencharacter'] = 'Името на папката съдържа непозволени символи';
$messages['selectimportfile'] = 'Моля изберете файл за качване';
$messages['addresswriterror'] = 'Избраната адресна книга не може да бъде записвана';
program/localization/bn_BD/labels.inc
@@ -243,13 +243,10 @@
$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'] = 'সাজান';
program/localization/bn_BD/messages.inc
@@ -46,9 +46,7 @@
$messages['deletemessagesconfirm'] = 'আপনি কি আসলেই এই চিঠি(গুলো) ফেলো দিতে চান?';
$messages['deletefolderconfirm'] = 'আপনি কি আসলেই এই ফোল্ডার/মেইলবক্স ফেলো দিতে চান?';
$messages['purgefolderconfirm'] = 'আপনি কি আসলেই এই ফোল্ডার/মেইলবক্স এর সব চিঠি ফেলো দিতে চান?';
$messages['foldercreating'] = 'ফোল্ডার/মেইলবক্স প্রস্তুত করা হচ্ছে';
$messages['folderdeleting'] = 'ফোল্ডার/মেইলবক্স ফেলে দেওয়া হচ্ছে';
$messages['folderrenaming'] = 'ফোল্ডার/মেইলবক্স এর নাম বদলানো হচ্ছে';
$messages['foldermoving'] = 'ফোল্ডার/মেইলবক্স সরানো হচ্ছে';
$messages['formincomplete'] = 'আপনি সবগুলো জিনিষ লেখেননি';
$messages['noemailwarning'] = 'একটি সঠিক ই-মেইল লিখুন';
@@ -81,7 +79,6 @@
$messages['receiptsent'] = 'ঠিকঠাক মতো ফিরতি রশিদ পাঠানো হয়েছে';
$messages['errorsendingreceipt'] = 'রশিদ পাঠানো গেলোনা';
$messages['nodeletelastidentity'] = 'আপনি এই পরিচিতি ফেলতে পারবেন না কারন এইটায় বর্তমানে আপনার একমাত্র পরিচিতি। ';
$messages['addsubfolderhint'] = 'এই ফোল্ডারটি বর্তমান ফোল্ডার এর সাব-ফোল্ডার হিসাবে তৈরি হবে';
$messages['forbiddencharacter'] = 'ফোল্ডার এর নামের মধ্যে নিষিদ্ধ অক্ষর আছে';
$messages['selectimportfile'] = 'একটা ফাইল বেছে নিন তোলার জন্য';
$messages['addresswriterror'] = 'বেছে নেওয়া ঠিকানার বইটিতে লেখাযায় না';
program/localization/br/labels.inc
@@ -171,9 +171,6 @@
$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';
program/localization/bs_BA/labels.inc
@@ -221,9 +221,6 @@
$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';
program/localization/ca_ES/labels.inc
@@ -317,9 +317,6 @@
$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';
program/localization/ca_ES/messages.inc
@@ -56,9 +56,7 @@
$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['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';
program/localization/cs_CZ/labels.inc
@@ -319,9 +319,6 @@
$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';
program/localization/cs_CZ/messages.inc
@@ -26,6 +26,7 @@
$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['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['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['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í';
?>
?>
program/localization/cy_GB/labels.inc
@@ -35,15 +35,12 @@
$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['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['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['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['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['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['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['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';
program/localization/cy_GB/messages.inc
@@ -20,6 +20,9 @@
$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['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['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['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['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';
?>
program/localization/da_DK/labels.inc
@@ -309,9 +309,6 @@
$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';
program/localization/da_DK/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/de_CH/labels.inc
@@ -38,8 +38,7 @@
$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['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['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';
program/localization/de_CH/messages.inc
@@ -55,10 +55,10 @@
$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['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['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['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.';
?>
program/localization/de_DE/labels.inc
@@ -38,8 +38,7 @@
$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['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['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';
program/localization/de_DE/messages.inc
@@ -55,10 +55,10 @@
$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['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['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['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.';
?>
program/localization/el_GR/labels.inc
@@ -238,9 +238,6 @@
$labels['messagecount'] = 'Μηνύματα';
$labels['create'] = 'Δημιουργία';
$labels['createfolder'] = 'Δημιουργία νέου φακέλου';
$labels['rename'] = 'Μετονομασία';
$labels['renamefolder'] = 'Μετονομασία φακέλου';
$labels['deletefolder'] = 'Διαγραφή φακέλου';
$labels['managefolders'] = 'Διαχείριση φακέλων';
$labels['specialfolders'] = 'Ειδικοί Φάκελοι';
$labels['sortby'] = 'Ταξινόμηση κατά';
program/localization/el_GR/messages.inc
@@ -52,9 +52,7 @@
$messages['deletemessagesconfirm'] = 'Θέλετε να διαγράψετε το συγκεκριμένο μήνυμα/τα;';
$messages['deletefolderconfirm'] = 'Θέλετε να διαγράψετε το συγκεκριμένο φάκελο;';
$messages['purgefolderconfirm'] = 'Θέλετε να διαγράψετε όλα τα μηνύματα στο συγκεκριμένο φάκελο;';
$messages['foldercreating'] = 'Δημιουργία φακέλου';
$messages['folderdeleting'] = 'Διαγραφή φακέλου';
$messages['folderrenaming'] = 'Μετονομασία φακέλου';
$messages['foldermoving'] = 'Μεταφορά φακέλου';
$messages['formincomplete'] = 'Η φόρμα δεν έχει συμπληρωθεί πλήρως';
$messages['noemailwarning'] = 'Παρακαλώ εισάγετε έγκυρη διεύθυνση email';
@@ -88,7 +86,6 @@
$messages['receiptsent'] = 'Επιτυχής αποστολή αναφοράς ανάγνωσης';
$messages['errorsendingreceipt'] = 'Αποστολή αναφοράς απέτυχε';
$messages['nodeletelastidentity'] = 'Δε μπορείτε να διαγράψετε αυτήν την ταυτότητα, είναι η τελευταία.';
$messages['addsubfolderhint'] = 'Αυτός ο φάκελος θα δημιουργηθεί ως υποφάκελος του επιλεγμένου';
$messages['forbiddencharacter'] = 'Η ονομασία φακέλου περιέχει μη επιτρεπτό χαρακτήρα';
$messages['selectimportfile'] = 'Επιλέξτε αρχείο για ανέβασμα';
$messages['addresswriterror'] = 'Η επιλεγμένη ατζέντα διευθύνσεων δεν είνα εγγράψιμη';
program/localization/en_GB/labels.inc
@@ -38,11 +38,12 @@
$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['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['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['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['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['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['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['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';
program/localization/en_GB/messages.inc
@@ -23,6 +23,7 @@
$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['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['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['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';
?>
?>
program/localization/en_US/labels.inc
@@ -46,18 +46,12 @@
$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';
@@ -241,8 +235,7 @@
$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['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';
program/localization/en_US/messages.inc
@@ -24,6 +24,8 @@
$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['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['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['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['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';
?>
program/localization/eo/labels.inc
@@ -220,9 +220,6 @@
$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';
program/localization/eo/messages.inc
@@ -75,7 +75,6 @@
$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';
?>
program/localization/es_AR/labels.inc
@@ -301,9 +301,6 @@
$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';
program/localization/es_AR/messages.inc
@@ -57,9 +57,7 @@
$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['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';
program/localization/es_ES/labels.inc
@@ -40,11 +40,15 @@
$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['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['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['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['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['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['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['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['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';
program/localization/es_ES/messages.inc
@@ -25,6 +25,7 @@
$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['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['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['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';
?>
program/localization/et_EE/labels.inc
@@ -40,8 +40,7 @@
$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['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['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';
program/localization/et_EE/messages.inc
@@ -26,6 +26,8 @@
$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['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['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['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['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';
?>
program/localization/eu_ES/labels.inc
@@ -224,9 +224,6 @@
$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';
program/localization/eu_ES/messages.inc
@@ -78,7 +78,6 @@
$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';
?>
program/localization/fa/labels.inc
@@ -247,13 +247,9 @@
$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'] = 'مرتب‌سازی بر اساس';
program/localization/fa/messages.inc
@@ -50,9 +50,7 @@
$messages['deletemessagesconfirm'] = 'آیا واقعاً می‌خواهید پیغام (های) انتخاب شده را حذف کنید؟';
$messages['deletefolderconfirm'] = 'آیا واقعاً می‌خواهید این پوشه را حذف کنید؟';
$messages['purgefolderconfirm'] = 'آیا واقعاً می‌خواهید همه‌ی پیغام‌های داخل این پوشه را حذف کنید؟';
$messages['foldercreating'] = '...در حال ایجاد پوشه ';
$messages['folderdeleting'] = '...در حال حذف پوشه ';
$messages['folderrenaming'] = '...در حال تغییر نام پوشه ';
$messages['foldermoving'] = '...در حال انتقال پوشه ';
$messages['formincomplete'] = 'فرم کاملاً پر نشده بود';
$messages['noemailwarning'] = 'لطفاً یک نشانی ایمیل معتبر وارد کنید';
@@ -85,7 +83,6 @@
$messages['receiptsent'] = 'رسید خواندن با موفقیت ارسال شد';
$messages['errorsendingreceipt'] = 'ناتوان در ارسال رسید';
$messages['nodeletelastidentity'] = '.نمی‌توانید این هویت را حذف کنید، زیرا آخرین هویت شماست';
$messages['addsubfolderhint'] = 'پوشه به عنوان زیرپوشه ای ساخته خواهد شد که هم اکنون انتخاب شده است';
$messages['forbiddencharacter'] = 'نام پوشه شامل یک حرف غیر مجاز است';
$messages['selectimportfile'] = 'لطفاً فایل را جهت بارگذاری انتخاب کنید';
$messages['addresswriterror'] = 'در دفترچه تلفن انتخابی ، اجازه نوشتن ندارید';
program/localization/fa_AF/labels.inc
@@ -287,9 +287,6 @@
$labels['messagecount'] = 'پيغام ها ';
$labels['create']  = 'ایجاد کردن';
$labels['createfolder']  = 'ایجاد پوشه جدید';
$labels['rename'] = 'تغيير نام ';
$labels['renamefolder'] = 'تغييرنام پوشه ';
$labels['deletefolder']  = 'حذف کردن پوشه ';
$labels['managefolders']  = 'اداره کردن پوشه ها ';
$labels['specialfolders'] = 'پوشه های مخصوص';
program/localization/fa_AF/messages.inc
@@ -31,9 +31,7 @@
$messages['deletemessagesconfirm'] = 'آيا واقعاً شما ميخواهيد که پيغام هاي انتخاب شده را حذف کنيد؟ ';
$messages['deletefolderconfirm']  = 'آيا واقعاً شما ميخواهيد که اين پوشه را حذف کنيد؟ ';
$messages['purgefolderconfirm']  = 'آيا واقعاً شما ميخواهيد  تمام پيغام های که  در اين پوشه وجود دارد حذف کنيد؟ ';
$messages['foldercreating'] = 'در حال ایجاد پوشه';
$messages['folderdeleting'] = 'در حال حذف پوشه';
$messages['folderrenaming'] = 'در حال تغییر نام پوشه';
$messages['foldermoving'] = 'در حال انتقال پوشه';
$messages['formincomplete'] = 'فورمه بصورت مکمل خانه پري نه شده است ';
$messages['noemailwarning'] = 'لطفاً يک ايميل ادرس موجود را داخل کنيد ';
@@ -66,7 +64,6 @@
$messages['receiptsent'] = 'یک رسید برای ارسال کننده این پیام فرستاده شد.';
$messages['errorsendingreceipt'] = 'رسيد ارسال شده نتوانست  ';
$messages['nodeletelastidentity'] = 'شما این شناخت نامه را حذف کرده نمیتوانید. این آخرین شناخت نامه شما است.';
$messages['addsubfolderhint'] = 'این پوشه به حیث پوشه فرعی پوشه انتخاب شده فعلی ساخته خواهد شد.';
$messages['forbiddencharacter'] = 'نام پوشه دارای یک کرکتر ممنوعه است.';
$messages['selectimportfile'] = 'لطفاً یک فایل را برای آپلود کردن انتخاب نمایید.';
$messages['addresswriterror'] = 'کتابچه آدرس انتخاب شده دارای اجازه نامه نوشتاری نیست.';
program/localization/fi_FI/labels.inc
@@ -308,9 +308,6 @@
$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ä';
program/localization/fi_FI/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/fr_FR/labels.inc
@@ -44,6 +44,7 @@
$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['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['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['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['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['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['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['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';
program/localization/fr_FR/messages.inc
@@ -25,6 +25,7 @@
$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['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['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['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';
?>
?>
program/localization/ga_IE/labels.inc
@@ -167,9 +167,6 @@
$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';
program/localization/gl_ES/labels.inc
@@ -28,18 +28,22 @@
$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['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['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['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['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['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['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['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['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';
program/localization/gl_ES/messages.inc
@@ -19,7 +19,8 @@
$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['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['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['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';
?>
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['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['addcc'] = 'הוספת מכותב לידיעה';
$labels['addbcc'] = 'הוספת מכותב נסתר';
$labels['addreplyto'] = 'הוספת כתובת למענה';
$labels['addmailreplyto'] = 'הוספת כתובת למענה';
$labels['addmailfollowupto'] = 'הוספת כתובת להעברת הודעה';
$labels['addfollowupto'] = 'הוספת כתובת להעברת הודעה';
$labels['mdnrequest'] = 'השולח ביקש לדעת אם ההודעה נקראה. האם להודיע לשולח?';
$labels['receiptread'] = 'אישור קבלה (נקרא)';
$labels['yourmessage'] = 'אישור קבלה להודעתך';
@@ -328,11 +323,15 @@
$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'] = 'מיון בסדר יורד';
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['imaperror'] = 'הקשר לשרת הדואר נכשל';
$messages['servererror'] = '! שגיאת שרת';
$messages['servererrormsg'] = '$msg  שגיאת שרת';
$messages['errorreadonly'] = 'לא ניתן לבצע הפעולה כי התיק ניתן לקריאה בלבד';
$messages['errornoperm'] = 'לא ניתן לבצע הפעולה כי אין הרשאה לבצעה';
$messages['invalidrequest'] = 'בקשה לא חוקית. המידע לא נשמר';
$messages['nomessagesfound'] = 'לא נמצאו הודעות בתיבה זו';
$messages['loggedout'] = 'הקשר הסתיים. להתראות!';
@@ -54,10 +56,10 @@
$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['checking'] = 'בדיקה...';
$messages['nospellerrors'] = 'לא נמצאו שגיאות כתיב';
$messages['folderdeleted'] = 'התיק נמחק בהצלחה';
$messages['foldersubscribed'] = 'התיק נרשם בהצלחה';
$messages['folderunsubscribed'] = 'ביטול רישום תיק הצליח';
$messages['folderpurged'] = 'התיק נמחק בהצלחה';
$messages['folderexpunged'] = 'התיק רוקן בהצלחה';
$messages['deletedsuccessfully'] = 'המחיקה הסתיימה בהצלחה';
$messages['converting'] = 'הסרת העיצוב מההודעה';
$messages['messageopenerror'] = 'לא ניתן לטעון ההודעה מהשרת';
@@ -93,7 +99,6 @@
$messages['receiptsent'] = 'אישור הקבלה נשלח בהצלחה';
$messages['errorsendingreceipt'] = 'לא ניתן לשלוח אישור קבלה';
$messages['nodeletelastidentity'] = 'זו הזהות האחרונה ולכן לא ניתן לבטלה';
$messages['addsubfolderhint'] = 'תיקיה זו תוקם תחת התיקיה שנבחרה';
$messages['forbiddencharacter'] = 'שם התיקיה מכיל תוים אסורים';
$messages['selectimportfile'] = 'נא לבחור קובץ לייבוא';
$messages['addresswriterror'] = 'פנקס הכתובות שנבחר אינו ניתן לכתיבה';
@@ -127,5 +132,9 @@
$messages['messagecopied'] = 'ההודעה הועתקה בהצלחה';
$messages['messagemarked'] = 'ההודעה סומנה בהצלחה';
$messages['autocompletechars'] = 'יש להקיש לפחות $min תווים להשלמה אוטומטית של המחרוזת';
$messages['namecannotbeempty'] = 'השם אינו יכול להיות ריק';
$messages['nametoolong'] = 'השם ארוך מדי';
$messages['folderupdated'] = 'התיק עודכן בהצלחה';
$messages['foldercreated'] = 'התיק נוצר בהצלחה';
?>
program/localization/hi_IN/labels.inc
@@ -226,9 +226,6 @@
$labels['subscribed']        = 'सबस्क्राईब किया गया';
$labels['create']        = 'बनाऐं';
$labels['createfolder']        = 'फ़ोलडर बनाऐं';
$labels['rename']        = 'नाम बदलें';
$labels['renamefolder']        = 'फ़ोलडर का नाम बदलें';
$labels['deletefolder']        = 'फ़ोलडर मिटाऐं';
$labels['managefolders']    = 'फ़ोलडर को व्यवस्थित करें';
$labels['sortby']        = 'ऐसे तय करें';
program/localization/hr_HR/labels.inc
@@ -38,21 +38,25 @@
$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['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['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['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['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['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['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['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['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['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['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['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['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['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';
?>
program/localization/hr_HR/messages.inc
@@ -53,9 +53,7 @@
$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['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...';
program/localization/hu_HU/labels.inc
@@ -40,16 +40,15 @@
$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['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['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';
program/localization/hu_HU/messages.inc
@@ -57,9 +57,7 @@
$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['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ó';
program/localization/hy_AM/labels.inc
@@ -249,9 +249,6 @@
$labels['messagecount'] = 'Նամակներ';
$labels['create'] = 'Ստեղծել';
$labels['createfolder'] = 'Բացել նոր դարակ';
$labels['rename'] = 'Վերանվանել';
$labels['renamefolder'] = 'Վերանվանել դարակը';
$labels['deletefolder'] = 'Ջնջել դարակը';
$labels['managefolders'] = 'Կարգավորել դարակները';
$labels['specialfolders'] = 'Հատուկ դարակներ';
$labels['sortby'] = 'Դասավորել';
program/localization/hy_AM/messages.inc
@@ -48,9 +48,7 @@
$messages['deletemessagesconfirm'] = 'Ուզու՞մ էք ջնջել նշված նամակները';
$messages['deletefolderconfirm'] = 'Ուզու՞մ էք ջնջել այս դարակը';
$messages['purgefolderconfirm'] = 'Ուզու՞մ էք ջնջել այս դարակի բոլոր նամակները';
$messages['foldercreating'] = 'Դարակը ստեղծվում է…';
$messages['folderdeleting'] = 'Դարակը ջնջվում է…';
$messages['folderrenaming'] = 'Դարակը վերանվանվում է…';
$messages['foldermoving'] = 'Դարակը տեղափոխվում է…';
$messages['formincomplete'] = 'Ձևը թերի է լրացված';
$messages['noemailwarning'] = 'Մուտքագրեք ճիշտ էլ. հասցե';
@@ -83,7 +81,6 @@
$messages['receiptsent'] = 'Նամակի ընթերցման ծանուցագիրն ուղարկված է';
$messages['errorsendingreceipt'] = 'Ծանուցագրի ուղարկումը ձախողվեց';
$messages['nodeletelastidentity'] = 'Անհնար է ջնջել վերջին տարբերակը';
$messages['addsubfolderhint'] = 'Այս դարակը կստեղծվի որպես նշվածի ենթադարակ';
$messages['forbiddencharacter'] = 'Դարակի անունը պարունակում է անթույլատրելի նշան';
$messages['selectimportfile'] = 'Ընտրեք ուղարկվող ֆայլը';
$messages['addresswriterror'] = 'Ընտրված հասցեագիրքը ենթակա չէ փոփոխման';
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['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['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['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['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['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['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['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['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['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';
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['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['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['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['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['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';
?>
program/localization/is_IS/labels.inc
@@ -250,9 +250,6 @@
$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';
program/localization/it_IT/labels.inc
@@ -39,15 +39,14 @@
$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['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['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';
program/localization/it_IT/messages.inc
@@ -55,9 +55,7 @@
$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['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';
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['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['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['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['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['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['force7bit'] = 'マルチバイト文字列を MIME エンコードする';
$labels['advancedoptions'] = '高度な設定';
$labels['focusonnewmessage'] = '新着メールが届いたらブラウザーをアクティブにする';
$labels['checkallfolders'] = 'すべてのフォルダーで新着メールを表示する';
$labels['checkallfolders'] = 'すべてのフォルダで新着メールを表示する';
$labels['displaynext'] = 'メールの削除や移動後に次のメールを表示する';
$labels['mainoptions'] = '基本設定';
$labels['section'] = '設定項目';
@@ -370,7 +312,7 @@
$labels['replytopposting'] = '元のメッセージ引用部の前に本文を作成する';
$labels['replybottomposting'] = '元のメッセージ引用部の後に本文を作成する';
$labels['replyremovesignature'] = '返信時にメッセージからオリジナルの署名を除去する';
$labels['autoaddsignature'] = '自動的に署名を付加する';
$labels['autoaddsignature'] = '署名を自動的に付加する';
$labels['newmessageonly'] = '新規作成時のみ';
$labels['replyandforwardonly'] = '返信・転送時のみ';
$labels['replysignaturepos'] = '返信・転送時に署名を挿入する位置';
@@ -379,34 +321,32 @@
$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'] = '西ヨーロッパ言語';
program/localization/ja_JP/messages.inc
@@ -26,7 +26,7 @@
$messages['sessionerror'] = 'セッションが正しくないか期限切れです。';
$messages['imaperror'] = 'IMAP サーバーへの接続に失敗しました。';
$messages['servererror'] = 'サーバーでエラーが発生しました。';
$messages['servererrormsg'] = 'サーバー エラー: $msg';
$messages['servererrormsg'] = 'サーバーエラー: $msg';
$messages['invalidrequest'] = '不正なリクエストです。データは保存されませんでした。';
$messages['nomessagesfound'] = 'メールはありません。';
$messages['loggedout'] = 'ログアウトしました。';
@@ -53,15 +53,15 @@
$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['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['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['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'] = 'フォルダを作成しました。';
?>
program/localization/ka_GE/labels.inc
@@ -274,9 +274,6 @@
$labels['messagecount'] = 'შეტყობინებები';
$labels['create'] = 'შექმნა';
$labels['createfolder'] = 'საქაღალდის შექმნა';
$labels['rename'] = 'სახელის გადარქმევა';
$labels['renamefolder'] = 'სახელის გადარქმევა საქაღალდისთვის';
$labels['deletefolder'] = 'საქაღალდის წაშლა';
$labels['managefolders'] = 'საქაღალდეების მართვა';
$labels['specialfolders'] = 'სპეციალური საქაღალდე';
$labels['sortby'] = 'დალაგება';
program/localization/ka_GE/messages.inc
@@ -52,9 +52,7 @@
$messages['deletemessagesconfirm'] = 'ნამდვილად გსურთ მონიშნული შეტყობინებების წაშლა?';
$messages['deletefolderconfirm'] = 'ნამდვილად გსურთ ამ საქაღალდის წაშლა?';
$messages['purgefolderconfirm'] = 'ნამდვილად გსურთ ყველა შეტყობინების წაშლა აღნიშნულ საქაღალდეში?';
$messages['foldercreating'] = 'საქაღალდის შექმნა...';
$messages['folderdeleting'] = 'საქაღალდის წაშლა...';
$messages['folderrenaming'] = 'საქაღალდის სახელის შეცვლა...';
$messages['foldermoving'] = 'საქაღალდის გადატანა...';
$messages['formincomplete'] = 'ყველა ველი არ არის შევსებული';
$messages['noemailwarning'] = 'მიუთითეთ სწორი ელ–ფოსტის მისამართი';
@@ -88,7 +86,6 @@
$messages['receiptsent'] = 'წარმატებით გაიგზავნა';
$messages['errorsendingreceipt'] = 'არ გაიგზავნა';
$messages['nodeletelastidentity'] = 'წაშლა შეუძლებელია, ის თქვენთვის ერთადერთია';
$messages['addsubfolderhint'] = 'საქაღალდე შეიქმნება როგორც ქვესაქაღალდე მონიშნულ საქაღალდეში';
$messages['forbiddencharacter'] = 'საქაღალდის სახელი შეიცავს აკრძალულ სიმბოლოებს';
$messages['selectimportfile'] = 'გთხოვთ მონიშნოთ ფაილი ასატვირთად';
$messages['addresswriterror'] = 'მონიშნულ მისამართებში ჩაწერა შეუძლებელია';
program/localization/kh_KH/labels.inc
@@ -312,9 +312,6 @@
$labels['messagecount'] = 'សារ';
$labels['create'] = 'បង្កើត';
$labels['createfolder'] = 'បង្កើត Folder ថ្មី';
$labels['rename'] = 'ប្តូឈ្មោះ';
$labels['renamefolder'] = 'ប្តូឈ្មោះថត';
$labels['deletefolder'] = 'លុបថត';
$labels['managefolders'] = 'រៀបចំថត';
$labels['specialfolders'] = 'ថតពិសេស';
$labels['sortby'] = 'តំរៀបតាម';
program/localization/kh_KH/messages.inc
@@ -54,9 +54,7 @@
$messages['deletemessagesconfirm'] = 'តើអ្នកពិតជាចង់លុបសារនេះមែនទេ?';
$messages['deletefolderconfirm'] = 'តើអ្នកពិតជាចង់លុបថតនេះមែនទេ?';
$messages['purgefolderconfirm'] = 'តើអ្នកពិតជាចង់លុបសារទាំងអស់មែនទេ?';
$messages['foldercreating'] = 'កំពុងបង្កើតថតសំរាប់ទុកឯកសារ...';
$messages['folderdeleting'] = 'កំពុងលុបថតសំរាប់ទុកឯកសារ...';
$messages['folderrenaming'] = 'កំពុងប្តូរឈ្មោះថតសំរាប់ទុកឯកសារ...';
$messages['foldermoving'] = 'កំពុងផ្តេរថតសំរាប់ទុកឯកសារ...';
$messages['formincomplete'] = 'ទំរង់នេះមិនទាន់ពេញលេញនៅឡើយទេ';
$messages['noemailwarning'] = 'សូមវាយបញ្ចូលអ៊ីមែលរបស់អ្នក';
@@ -91,7 +89,6 @@
$messages['receiptsent'] = 'ការបញ្ជូន read receipt បានសំរេច';
$messages['errorsendingreceipt'] = 'មិនអាចបញ្ជុន receipt ទេ';
$messages['nodeletelastidentity'] = 'អ្នកមិនអាចលុបអត្តសញ្ញាណនេះទេ ព្រោះវានៅសល់ចុងក្រោយគេ';
$messages['addsubfolderhint'] = 'Folder នេះនឹងបង្កើតជា Subfolder នៃ Folder ដែលកំពុងស្ថិតនៅនេះ';
$messages['forbiddencharacter'] = 'ឈ្មោះ Folder នេះមានអក្សរដែលត្រូវហាមឃាត់';
$messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីផ្ញើ';
$messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសេរចូលបានទេ';
program/localization/ko_KR/labels.inc
@@ -250,9 +250,6 @@
$labels['messagecount'] = '메시지';
$labels['create'] = '만들기';
$labels['createfolder'] = '새 폴더 만들기';
$labels['rename'] = '이름 바꾸기';
$labels['renamefolder'] = '폴더 이름 바꾸기';
$labels['deletefolder'] = '폴더 지우기';
$labels['managefolders'] = '폴더 관리';
$labels['specialfolders'] = '특수 폴더';
$labels['sortby'] = '정렬';
program/localization/ko_KR/messages.inc
@@ -49,9 +49,7 @@
$messages['deletemessagesconfirm'] = '정말 선택한 메일들을 삭제하시겠습니까?';
$messages['deletefolderconfirm'] = '정말 이 폴더를 삭제하시겠습니까?';
$messages['purgefolderconfirm'] = '정말 이 폴더의 모든 메일을 삭제하시겠습니까?';
$messages['foldercreating'] = '폴더 만드는 중...';
$messages['folderdeleting'] = '폴더 지우는 중...';
$messages['folderrenaming'] = '폴더 이름 바꾸는 중...';
$messages['foldermoving'] = '폴더 옮기는 중...';
$messages['formincomplete'] = '양식을 완전히 채우지 않았습니다';
$messages['noemailwarning'] = '유효한 이메일 주소를 넣어주십시오';
@@ -84,7 +82,6 @@
$messages['receiptsent'] = '메일 읽음 확인을 보냈습니다';
$messages['errorsendingreceipt'] = '읽음 확인을 보낼 수 없습니다';
$messages['nodeletelastidentity'] = '이 정보는 마지막 남은 것이므로 지울 수 없습니다';
$messages['addsubfolderhint'] = '이 폴더는 현재 선택된 폴더의 서브 폴더로 만들어질 것입니다';
$messages['forbiddencharacter'] = '폴더 이름에 쓸 수 없는 문자가 포함되어 있습니다';
$messages['selectimportfile'] = '업로드할 파일을 선택하세요';
$messages['addresswriterror'] = '선택한 주소록은 쓸 수 없습니다';
program/localization/ku/labels.inc
@@ -177,9 +177,6 @@
$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';
program/localization/ku/messages.inc
@@ -74,6 +74,5 @@
$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';
?>
program/localization/lt_LT/labels.inc
@@ -39,11 +39,15 @@
$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['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['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['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['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['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['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['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['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';
program/localization/lt_LT/messages.inc
@@ -24,6 +24,7 @@
$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['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['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['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['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';
?>
program/localization/lv_LV/labels.inc
@@ -277,9 +277,6 @@
$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';
program/localization/lv_LV/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/mk_MK/labels.inc
@@ -274,9 +274,6 @@
$labels['messagecount'] = 'Пораки';
$labels['create'] = 'Создај';
$labels['createfolder'] = 'Создај нова папка';
$labels['rename'] = 'Преименувај';
$labels['renamefolder'] = 'Преименувај папка';
$labels['deletefolder'] = 'Избриши папка';
$labels['managefolders'] = 'Организирање на папки';
$labels['specialfolders'] = 'Специјални папки';
$labels['sortby'] = 'Сортирај по';
program/localization/mk_MK/messages.inc
@@ -52,9 +52,7 @@
$messages['deletemessagesconfirm'] = 'Дали сте сигурни дека сакате да го(и) избришете обележаниот(те) писмо(а)?';
$messages['deletefolderconfirm'] = 'Дали сте сигурни дека сакате да ја избришете оваа папка?';
$messages['purgefolderconfirm'] = 'Дали сте сигурни дека сакате да ги избршете сите писма во оваа папка?';
$messages['foldercreating'] = 'Ја создавам папката...';
$messages['folderdeleting'] = 'Ја бришам папката...';
$messages['folderrenaming'] = 'Ја преименувам папката...';
$messages['foldermoving'] = 'Ја преместувам папката...';
$messages['formincomplete'] = 'Имате изоставено непополнети информации';
$messages['noemailwarning'] = 'Внесете валидна е-поштенска адреса';
@@ -88,7 +86,6 @@
$messages['receiptsent'] = 'Известувањето е успешно пратено';
$messages['errorsendingreceipt'] = 'Известувањето не е пратено';
$messages['nodeletelastidentity'] = 'Овој идентитет неможе да се избрише, тој е последниот.';
$messages['addsubfolderhint'] = 'Оваа папка ќе биде креирана како потпапка на моментално избраната.';
$messages['forbiddencharacter'] = 'Името на папката содржи несоодветен формат';
$messages['selectimportfile'] = 'Изберете ја податотеката која сакате да ја прикачите';
$messages['addresswriterror'] = 'Одбраниот именик не може да се менува';
program/localization/mr_IN/labels.inc
@@ -378,9 +378,6 @@
$labels['messagecount'] = 'संदेश';
$labels['create'] = 'तयार करा';
$labels['createfolder'] = 'नवीन फोल्डर तयार करा';
$labels['rename'] = 'नवीन नाव द्या';
$labels['renamefolder'] = 'फोल्डरला नवीन नाव द्या';
$labels['deletefolder'] = 'फोल्डर काढून टाका';
$labels['managefolders'] = 'फोल्डर्सचे नियोजन करा';
$labels['specialfolders'] = 'विषेश फोल्डर';
$labels['sortby'] = 'ने वर्गवारी करा';
program/localization/mr_IN/messages.inc
@@ -51,9 +51,7 @@
$messages['deletemessagesconfirm'] = 'खूण केलेले सर्व संदेश खरोखरच तुम्हाला काढून टाकायचे आहेत का?';
$messages['deletefolderconfirm'] = 'हा फोल्डर खरोखरच तुम्हाला काढून टाकायचा आहेत का?';
$messages['purgefolderconfirm'] = 'या फोल्डरमधिल सर्व संदेश खरोखरच तुम्हाला काढून टाकायचे आहेत का?';
$messages['foldercreating'] = 'फोल्डर तयार करत आहे';
$messages['folderdeleting'] = 'फोल्डर काढून टाकत आहे';
$messages['folderrenaming'] = 'फोल्डरला नवीन नाव देत आहे.';
$messages['foldermoving'] = 'फोल्डर हलवत आहे.';
$messages['formincomplete'] = 'फॉर्म पूर्णपणे भरलेला  नाही. ';
$messages['noemailwarning'] = 'योग्य, बरोबर, आणि वैध इमेल पत्ता द्या. ';
@@ -88,7 +86,6 @@
$messages['receiptsent'] = 'पोचपावती यशस्वीरित्या पाठवण्यात आली आहे. ';
$messages['errorsendingreceipt'] = 'पोचपावती पाठवता आली नाही.';
$messages['nodeletelastidentity'] = 'तुम्ही हे खाते काढून टाकू शकत नाही कारण हे तुमचे शेवटचे खाते आहे.';
$messages['addsubfolderhint'] = 'हा फोल्डर निवडलेल्या फोल्डरचा उप-फोल्डर असेल';
$messages['forbiddencharacter'] = 'फोल्डरच्या नावात न चालणारी अक्षरे किंवा खूणा आहेत.';
$messages['selectimportfile'] = 'चढवण्यासाठी फाईल निवडा';
$messages['addresswriterror'] = 'निवडलेल्या पत्ता नोंदवहीत नोंद करता येत नाही.';
program/localization/ms_MY/labels.inc
@@ -215,9 +215,6 @@
$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';
program/localization/ms_MY/messages.inc
@@ -77,6 +77,5 @@
$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';
?>
program/localization/nb_NO/labels.inc
@@ -312,9 +312,6 @@
$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';
program/localization/nb_NO/messages.inc
@@ -57,9 +57,7 @@
$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['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';
program/localization/ne_NP/labels.inc
@@ -166,9 +166,6 @@
$labels['subscribed'] = 'सबस्क्राईब गरियो';
$labels['create'] = 'बनाउनुहोस';
$labels['createfolder'] = 'नया फोलडर बनाउनुहोस';
$labels['rename'] = 'नाम बदल्नुहोस';
$labels['renamefolder'] = 'फोलडरको नाम बदल्नुहोस';
$labels['deletefolder'] = 'फोलडर मेट्नुहोस';
$labels['managefolders'] = 'फोलडर व्यवस्थित गर्नुहोस';
$labels['sortby'] = 'यसरी तय गर्नुहोस';
$labels['sortasc'] = 'पहिलो देखि अन्तिम सम्म तय गर्नुहोस';
program/localization/nl_BE/labels.inc
@@ -321,9 +321,6 @@
$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';
program/localization/nl_BE/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/nl_NL/labels.inc
@@ -42,16 +42,15 @@
$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['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['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['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['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';
program/localization/nl_NL/messages.inc
@@ -58,9 +58,7 @@
$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['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';
program/localization/nn_NO/labels.inc
@@ -310,9 +310,6 @@
$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';
program/localization/nn_NO/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/pl_PL/labels.inc
@@ -42,13 +42,12 @@
$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['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['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ę';
?>
program/localization/pl_PL/messages.inc
@@ -60,9 +60,7 @@
$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['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['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ń';
?>
program/localization/ps/labels.inc
@@ -287,9 +287,6 @@
$labels['messagecount'] = 'استوزي ';
$labels['create']  = 'جوړول، رامنځ ته کول ';
$labels['createfolder']  = 'نوې پوښۍ جوړ کړه ';
$labels['rename'] = 'بيانومول ';
$labels['renamefolder'] = 'پوښۍ بيانومول ';
$labels['deletefolder']  = 'پوښۍ ړنګول ';
$labels['managefolders']  = 'پوښيو څارل ';
$labels['specialfolders'] = 'ځانګړي پوښۍۍ';
program/localization/ps/messages.inc
@@ -31,9 +31,7 @@
$messages['deletemessagesconfirm'] = 'په رښتيا سره غواړئ چې ټاکل شوي استوزي‌ړنګ کړئ؟';
$messages['deletefolderconfirm']  = 'په رښتيآ سره غواړئ چې دا پوښۍ ړنګه کړئ؟';
$messages['purgefolderconfirm']  = 'په رښتيا سره غواړئ چې ددې پوښۍ ټول استوزي‌ړنګ کړئ؟';
$messages['foldercreating'] = 'پوښۍ جوړوي';
$messages['folderdeleting'] = 'پوښۍ ړنګوي';
$messages['folderrenaming'] = 'پوښۍ بيانوموي';
$messages['foldermoving'] = 'پوښۍ خوځوي';
$messages['formincomplete'] = 'دا پورمه بشپړه ډکه شوې نه ده';
$messages['noemailwarning'] = 'مهرباني وکړئ د يوه شته برېښناليک پته ورځای کړئ';
@@ -66,7 +64,6 @@
$messages['receiptsent'] = 'يو لوستل شوی رسليک په بشپړه توګه واستول شو';
$messages['errorsendingreceipt'] = 'رسليک يې ونه شوای ليږلی';
$messages['nodeletelastidentity'] = 'تاسې نه شئ کولی چې دا پېژندنه ړنګه کړئ، داستاسو اخرنی پيژندنه ده';
$messages['addsubfolderhint'] = 'دا پوښۍ د دويمۍ پوښۍ په توګه د ټاکل شوي اوسني ځای کې جوړشي';
$messages['forbiddencharacter'] = 'د پوښۍ نوم له فوربايډن تورو څخه جوړ دی';
$messages['selectimportfile'] = 'مهرباني وکړئ‌يو فايل د پورته کولو لپاره وټاکئ';
$messages['addresswriterror'] = 'ټاکل شوی پتې کتاب د بياليکلو نه دی';
program/localization/pt_BR/labels.inc
@@ -316,9 +316,6 @@
$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';
program/localization/pt_BR/messages.inc
@@ -59,9 +59,7 @@
$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['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';
program/localization/pt_PT/labels.inc
@@ -42,8 +42,7 @@
$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['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['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['korean'] = 'Coreano';
$labels['chinese'] = 'Chinês';
?>
?>
program/localization/pt_PT/messages.inc
@@ -58,10 +58,10 @@
$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['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['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['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';
?>
?>
program/localization/ro_RO/labels.inc
@@ -310,9 +310,6 @@
$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ă';
program/localization/ro_RO/messages.inc
@@ -55,9 +55,7 @@
$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['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ă';
program/localization/ru_RU/labels.inc
@@ -40,13 +40,15 @@
$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['addcc'] = 'Копия';
$labels['addbcc'] = 'Скрытая копия';
$labels['addreplyto'] = 'Кому ответить';
$labels['addmailreplyto'] = 'Кому ответить в списке рассылки';
$labels['addfollowupto'] = 'Добавить Followup-To';
$labels['mdnrequest'] = 'Отправитель этого сообщения запросил уведомление о прочтении. Отправить уведомление?';
$labels['receiptread'] = 'Уведомление о прочтении';
$labels['yourmessage'] = 'Это уведомление о прочтении вашего сообщения';
@@ -212,6 +214,7 @@
$labels['addcontact'] = 'Добавить выбранные контакты в список контактов';
$labels['editcontact'] = 'Редактировать контакт';
$labels['contacts'] = 'Контакты';
$labels['contactproperties'] = 'Свойства контакта';
$labels['edit'] = 'Правка';
$labels['cancel'] = 'Отмена';
$labels['save'] = 'Сохранить';
@@ -319,6 +322,7 @@
$labels['afternseconds'] = 'через $n секунд';
$labels['reqmdn'] = 'Всегда запрашивать уведомление о доставке';
$labels['reqdsn'] = 'Всегда запрашивать уведомление о состоянии доставки';
$labels['replysamefolder'] = 'Помещать ответы в ту же папку, где находится оригинал';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Имя папки';
@@ -326,9 +330,6 @@
$labels['messagecount'] = 'Сообщения';
$labels['create'] = 'Создать';
$labels['createfolder'] = 'Создать новую папку';
$labels['rename'] = 'Переименовать';
$labels['renamefolder'] = 'Переименовать папку';
$labels['deletefolder'] = 'Удалить папку';
$labels['managefolders'] = 'Управление папками';
$labels['specialfolders'] = 'Особые папки';
$labels['sortby'] = 'Сортировать по';
program/localization/ru_RU/messages.inc
@@ -56,9 +56,7 @@
$messages['deletemessagesconfirm'] = 'Вы действительно хотите удалить выбранные сообщения?';
$messages['deletefolderconfirm'] = 'Вы действительно хотите удалить эту папку?';
$messages['purgefolderconfirm'] = 'Вы действительно хотите удалить все сообщения в этой папке?';
$messages['foldercreating'] = 'Создание папки...';
$messages['folderdeleting'] = 'Удаление папки...';
$messages['folderrenaming'] = 'Переименование папки...';
$messages['foldermoving'] = 'Перемещение папки...';
$messages['formincomplete'] = 'Заполнены не все поля';
$messages['noemailwarning'] = 'Пожалуйста, введите корректный адрес электронной почты';
@@ -95,7 +93,6 @@
$messages['receiptsent'] = 'Уведомление о прочтении отправлено';
$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено';
$messages['nodeletelastidentity'] = 'Вы не можете удалить этот профиль, он у вас последний';
$messages['addsubfolderhint'] = 'Эта папка будет создана как подпапка в текущей папке';
$messages['forbiddencharacter'] = 'Имя папки содержит недопустимые символы';
$messages['selectimportfile'] = 'Выберите файл для загрузки';
$messages['addresswriterror'] = 'Выбранная адресная книга недоступна для записи';
program/localization/si_LK/labels.inc
@@ -179,9 +179,6 @@
$labels['messagecount'] = 'පනිවුඩ';
$labels['create'] = 'සෑදීම';
$labels['createfolder'] = 'අඵත් ෆෝල්ඩරයක් සෑදීම';
$labels['rename'] = 'නැවත නම් කිරීම';
$labels['renamefolder'] = 'ෆෝල්ඩරය නැවත නම් කිරීම';
$labels['deletefolder'] = 'ෆෝල්ඩරය මකා දැමීම';
$labels['managefolders'] = 'හැසිරවීම හැසිරවීම';
$labels['sortby'] = 'චිසින් වර්ග කිරීම';
$labels['sortasc'] = 'ආරෝහණ වර්ග කිරීම';
program/localization/si_LK/messages.inc
@@ -76,6 +76,5 @@
$messages['receiptsent'] = 'කියවීම් භාර ගැනීම සාර්ථකව යවන ලදී';
$messages['errorsendingreceipt'] = 'කියවීම් භාර ගැනීම යැවීමට නොහැක';
$messages['nodeletelastidentity'] = 'අවසාන අනන්‍යතාවය මකා දැමිය නොහැක';
$messages['addsubfolderhint'] = 'ෆෝල්ඩරය දැනට තෝරාගෙන ඇති ෆෝල්ඩරයෙහි අනු ෆෝල්ඩරයක් ලෙස සෑදේ';
?>
program/localization/sk_SK/labels.inc
@@ -318,9 +318,6 @@
$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';
program/localization/sk_SK/messages.inc
@@ -57,9 +57,7 @@
$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['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';
program/localization/sl_SI/labels.inc
@@ -39,16 +39,15 @@
$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['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['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';
program/localization/sl_SI/messages.inc
@@ -52,9 +52,7 @@
$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['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';
program/localization/sq_AL/labels.inc
@@ -180,9 +180,6 @@
$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';
program/localization/sq_AL/messages.inc
@@ -77,6 +77,5 @@
$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';
?>
program/localization/sr_CS/labels.inc
@@ -180,9 +180,6 @@
$labels['messagecount'] = 'Поруке';
$labels['create'] = 'Креирај';
$labels['createfolder'] = 'Креирај нову фасциклу';
$labels['rename'] = 'Преименуј';
$labels['renamefolder'] = 'Преименуј фасциклу';
$labels['deletefolder'] = 'Обриши фасциклу';
$labels['managefolders'] = 'Подеси фасциклу';
$labels['sortby'] = 'Сортирај по';
$labels['sortasc'] = 'Сортирај растуће';
program/localization/sr_CS/messages.inc
@@ -77,6 +77,5 @@
$messages['receiptsent'] = 'Успешно послато обавештење о приспећу';
$messages['errorsendingreceipt'] = 'Неуспело слање обавештења о приспећу';
$messages['nodeletelastidentity'] = 'Не можете обрисати овај идентитет, он Вам је последњи.';
$messages['addsubfolderhint'] = 'Ова фасцикла ће бити креирана као подфасцикла тренутне';
?>
program/localization/sv_SE/labels.inc
@@ -40,12 +40,12 @@
$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['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['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['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['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å';
program/localization/sv_SE/messages.inc
@@ -57,9 +57,7 @@
$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['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['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';
?>
program/localization/ta_IN/labels.inc
@@ -272,9 +272,6 @@
$labels['messagecount'] = 'செய்திகள்';
$labels['create'] = 'உருவாக்கு';
$labels['createfolder'] = 'புது அடைவு உருவாக்கு';
$labels['rename'] = 'மறுபெயரிடு';
$labels['renamefolder'] = 'அடைவை மறுபெயரிடு';
$labels['deletefolder'] = 'அடைவை நீக்கு';
$labels['managefolders'] = 'அடைவுகளை நிற்வகி';
$labels['specialfolders'] = 'சிறப்பு அடைவுகள்';
$labels['sortby'] = 'வாரியாக அடுக்கு';
program/localization/ta_IN/messages.inc
@@ -50,9 +50,7 @@
$messages['deletemessagesconfirm'] = 'நீங்கள் தேர்ந்தெடுத்த செய்திகளை நீக்க விரும்புகிறீர்களா ?';
$messages['deletefolderconfirm'] = 'நீங்கள் இந்த அடைவை நீக்க விரும்புகிறீர்களா ?';
$messages['purgefolderconfirm'] = 'நீங்கள் இந்த அடைவிலிருக்கும் எல்லா செய்திகளையும் நீக்க விரும்புகிறீர்களா ?';
$messages['foldercreating'] = 'அடைவை உருவாக்குகிறது...';
$messages['folderdeleting'] = 'அடைவை நீக்குகிறது...';
$messages['folderrenaming'] = 'அடைவை மறுபெயரிடுகிறது...';
$messages['foldermoving'] = 'அடைவை நகர்த்துகிறது...';
$messages['formincomplete'] = 'விண்ணப்பத்தை முழுமையாக நிறைவு செய்யவில்லை';
$messages['noemailwarning'] = 'தயவு செய்து உண்மையான மின்னஞ்சலை எழுதுங்கள்';
@@ -86,7 +84,6 @@
$messages['receiptsent'] = 'படித்த சீட்டு வெற்றிகரமாக அனுப்பப்பட்டது';
$messages['errorsendingreceipt'] = 'சீட்டை அனுப்ப முடியவில்லை';
$messages['nodeletelastidentity'] = 'நீங்கள் இந்த அடையாளத்தை நீக்க முடியாது இது தான் கடைசி';
$messages['addsubfolderhint'] = 'இந்த அடைவு இப்போது தேர்ந்தெடுக்கப்பட்டதன் துணை அடைவாக உருவாக்கப்படும்';
$messages['forbiddencharacter'] = 'அடைவு பெயரில் தடை செய்யப்பட்ட எழுத்துக்கள் உள்ளது';
$messages['selectimportfile'] = 'தயவு செய்து ஏற்றுவதற்கு ஒரு கோப்பை தேர்ந்தெடுங்கள்';
$messages['addresswriterror'] = 'நீங்கள் தேர்ந்தெடுத்த தொடர்புகளில் எழுத முடியாது';
program/localization/th_TH/labels.inc
@@ -162,9 +162,6 @@
$labels['subscribed'] = 'ลงชื่อ';
$labels['create'] = 'สร้าง';
$labels['createfolder'] = 'สร้างกล่องจดหมาย';
$labels['rename'] = 'เปลื่ยนชื่อ';
$labels['renamefolder'] = 'เปลี่ยนชื่อกล่องจดหมาย';
$labels['deletefolder'] = 'ลบกล่องจดหมาย';
$labels['managefolders'] = 'จัดการกล่องจดหมาย';
$labels['sortby'] = 'เรียงตาม';
$labels['sortasc'] = 'เรียงจากหน้าไปหลัง';
program/localization/tr_TR/labels.inc
@@ -313,9 +313,6 @@
$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';
program/localization/tr_TR/messages.inc
@@ -55,9 +55,7 @@
$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['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';
program/localization/uk_UA/labels.inc
@@ -38,15 +38,15 @@
$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['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['addcontact'] = 'Додати вибрані контакти до списку контактів';
$labels['editcontact'] = 'Редагувати контакт';
$labels['contacts'] = 'Контакти';
$labels['contactproperties'] = 'Властивості контакта';
$labels['edit'] = 'Правка';
$labels['cancel'] = 'Скасувати';
$labels['save'] = 'Зберегти';
@@ -320,6 +320,7 @@
$labels['afternseconds'] = 'через $n секунд';
$labels['reqmdn'] = 'Завжди вимагати повідомлення про доставку';
$labels['reqdsn'] = 'Завжди вимагати повідомлення про статус доставки';
$labels['replysamefolder'] = 'Розмістити відповіді у тій же папці, де знаходиться оригінал';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Назва папки';
@@ -327,9 +328,6 @@
$labels['messagecount'] = 'Листи';
$labels['create'] = 'Створити';
$labels['createfolder'] = 'Створити нову папку';
$labels['rename'] = 'Перейменувати';
$labels['renamefolder'] = 'Перейменувати папку';
$labels['deletefolder'] = 'Видалити папку';
$labels['managefolders'] = 'Керування папками';
$labels['specialfolders'] = 'Особливі папки';
$labels['sortby'] = 'Відсортувати за';
program/localization/uk_UA/messages.inc
@@ -23,6 +23,7 @@
$messages['sessionerror'] = 'Ваша сесія застаріла';
$messages['imaperror'] = 'Невдале з`єднання з IMAP сервером';
$messages['servererror'] = 'Помилка сервера!';
$messages['servererrormsg'] = 'Помилка сервера: $msg';
$messages['invalidrequest'] = 'Невірний запит! Дані не збережено.';
$messages['nomessagesfound'] = 'Листів не знайдено';
$messages['loggedout'] = 'Вашу сесію завершено. Всього найкращого!';
@@ -54,9 +55,7 @@
$messages['deletemessagesconfirm'] = 'Ви дійсно бажаєте видалити вибрані листи?';
$messages['deletefolderconfirm'] = 'Ви дійсно бажаєте видалити цю папку?';
$messages['purgefolderconfirm'] = 'Ви дійсно бажаєте видалити всі листи у цій папці?';
$messages['foldercreating'] = 'Створення папки...';
$messages['folderdeleting'] = 'Видалення папки...';
$messages['folderrenaming'] = 'Перейменування папки...';
$messages['foldermoving'] = 'Переміщення папки...';
$messages['formincomplete'] = 'Заповнено не всі поля';
$messages['noemailwarning'] = 'Будь ласка, введіть коректну адресу електронної пошти';
@@ -88,10 +87,11 @@
$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['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 символів для автозаповнення';
?>
program/localization/vi_VN/labels.inc
@@ -205,9 +205,6 @@
$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';
program/localization/zh_CN/labels.inc
@@ -311,9 +311,6 @@
$labels['messagecount'] = '邮件数量';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新邮件夹';
$labels['rename'] = '重命名';
$labels['renamefolder'] = '重命名邮件夹';
$labels['deletefolder'] = '删除邮件夹';
$labels['managefolders'] = '管理邮件夹';
$labels['specialfolders'] = '指定邮件夹';
$labels['sortby'] = '排序';
program/localization/zh_CN/messages.inc
@@ -55,9 +55,7 @@
$messages['deletemessagesconfirm'] = '确定要删除已选中的邮件?';
$messages['deletefolderconfirm'] = '确定要删除已选中的邮件夹?';
$messages['purgefolderconfirm'] = '是否确认要删除当前邮件夹中的所有邮件?';
$messages['foldercreating'] = '正在创建邮件夹';
$messages['folderdeleting'] = '正在删除邮件夹';
$messages['folderrenaming'] = '正在重命名邮件夹';
$messages['foldermoving'] = '正在移动目录...';
$messages['formincomplete'] = '当前表单未填写完整,请完整填写';
$messages['noemailwarning'] = '请输入一个有效的邮件地址';
@@ -92,7 +90,6 @@
$messages['receiptsent'] = '成功发送了一个已读回执';
$messages['errorsendingreceipt'] = '无法发送回执';
$messages['nodeletelastidentity'] = '无法删除这个身份,这是最后一个。';
$messages['addsubfolderhint'] = '新建的文件夹将成为所选文件夹的子文件夹';
$messages['forbiddencharacter'] = '目录名包含隐藏字符';
$messages['selectimportfile'] = '请选择要上传的文件';
$messages['addresswriterror'] = '已选择的地址簿不可写';
program/localization/zh_TW/labels.inc
@@ -40,8 +40,7 @@
$labels['cc'] = '副本';
$labels['bcc'] = '密件副本';
$labels['replyto'] = '回覆至';
$labels['mailreplyto'] = '信件回覆至';
$labels['mailfollowupto'] = '信件跟隨至';
$labels['followupto'] = '信件跟隨至';
$labels['date'] = '日期';
$labels['size'] = '大小';
$labels['priority'] = '優先順序';
@@ -203,8 +202,7 @@
$labels['addcc'] = '新增副本';
$labels['addbcc'] = '新增密件副本';
$labels['addreplyto'] = '新增回覆地址';
$labels['addmailreplyto'] = '新增 信件回覆至';
$labels['addmailfollowupto'] = '新增 信件跟隨至';
$labels['addfollowupto'] = '新增 信件跟隨至';
$labels['mdnrequest'] = '此郵件的寄件者希望在你閱讀此郵件時受到通知。你想要通知寄件者嗎?';
$labels['receiptread'] = '郵件回條(已閱讀)';
$labels['yourmessage'] = '這是你郵件的郵件回條';
@@ -332,9 +330,6 @@
$labels['messagecount'] = '郵件數目';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新資料夾';
$labels['rename'] = '重新命名';
$labels['renamefolder'] = '重新命名資料夾';
$labels['deletefolder'] = '刪除資料夾';
$labels['managefolders'] = '管理資料夾';
$labels['specialfolders'] = '預設資料夾設定';
$labels['sortby'] = '排序';
program/localization/zh_TW/messages.inc
@@ -57,9 +57,7 @@
$messages['deletemessagesconfirm'] = '你確定要刪除已選擇的郵件?';
$messages['deletefolderconfirm'] = '你確定要刪除這個資料夾嗎?';
$messages['purgefolderconfirm'] = '你確定要刪除這個資料夾裡面所有的郵件嗎?';
$messages['foldercreating'] = '建立資料夾中...';
$messages['folderdeleting'] = '刪除資料夾中...';
$messages['folderrenaming'] = '重新命名資料夾中...';
$messages['foldermoving'] = '移動資料夾中...';
$messages['formincomplete'] = '這個表單有部分未填,請完整填寫';
$messages['noemailwarning'] = '請輸入一個有效的電子郵件位址';
@@ -96,7 +94,6 @@
$messages['receiptsent'] = '閱讀回條傳送成功';
$messages['errorsendingreceipt'] = '無法傳送回條';
$messages['nodeletelastidentity'] = '你不能刪除此身份,因為只剩一個身份。';
$messages['addsubfolderhint'] = '此資料夾會成為目前所選資料夾的子資料夾';
$messages['forbiddencharacter'] = '資料夾名稱中包含非法的字元';
$messages['selectimportfile'] = '請選擇一個上傳的檔案';
$messages['addresswriterror'] = '無法寫入選擇的通訊錄';
@@ -129,5 +126,6 @@
$messages['messagemoved'] = '訊息成功移動';
$messages['messagecopied'] = '訊息成功複製';
$messages['messagemarked'] = '訊息成功標示';
$messages['autocompletechars'] = '輸入至少 $min 字元才能自動完成自動完成';
?>
program/steps/mail/compose.inc
@@ -267,19 +267,11 @@
      $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 @@
      $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 @@
  // 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);
program/steps/mail/copy.inc
@@ -33,7 +33,7 @@
    if (!$copied) {
        // send error message
        $OUTPUT->show_message('errorcopying', 'error');
        rcmail_display_server_error('errorcopying');
        $OUTPUT->send();
        exit;
    }
@@ -52,5 +52,3 @@
// send response
$OUTPUT->send();
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;
    // 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) {
            $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();
        }
    }
    else
      $commands = "// purged: $success";
  }
}
$OUTPUT->send($commands);
$OUTPUT->send();
program/steps/mail/func.inc
@@ -436,65 +436,6 @@
  }
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 @@
{
  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,10 +496,30 @@
  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;
}
@@ -966,10 +927,14 @@
    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));
program/steps/mail/getunread.inc
@@ -28,15 +28,18 @@
  $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];
    else
      $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', !isset($_SESSION['unseen_count'][$mbox_row]));
    $unseen_old = rcmail_get_unseen_count($mbox_row);
    if ($unseen || !isset($_SESSION['unseen_count'][$mbox_row])) {
    if (!$check_all && $unseen_old !== null && $mbox_row != $current)
      $unseen = $unseen_old;
    else
      $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', $unseen_old === null);
    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);
  }
}
program/steps/mail/list.inc
@@ -106,8 +106,7 @@
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');
program/steps/mail/mark.inc
@@ -47,7 +47,7 @@
    // 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 @@
      // 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));
program/steps/mail/move_del.inc
@@ -39,7 +39,7 @@
        // 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 @@
        // 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 @@
  // 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)) {
program/steps/mail/search.inc
@@ -124,8 +124,7 @@
}
// 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');
program/steps/mail/sendmail.inc
@@ -70,7 +70,7 @@
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 @@
  // remove any null-byte characters before parsing
  $body = preg_replace('/\x00/', '', $body);
  $searchstr = 'program/js/tiny_mce/plugins/emotions/img/';
  $offset = 0;
@@ -192,6 +192,7 @@
  return implode(', ', $result);
}
/****** compose message ********/
@@ -297,12 +298,12 @@
$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 @@
// 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 @@
$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 @@
  $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 @@
        ($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
      );
    }
  }
program/steps/mail/show.inc
@@ -196,8 +196,11 @@
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;
program/steps/settings/edit_folder.inc
New file
@@ -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 .= '&nbsp;(' . 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, ' &raquo; ', rcmail_localize_folderpath($path));
        $folderpath = $radio1->show($selected) . Q(rcube_label('none')) . '&nbsp;'
            .$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');
program/steps/settings/edit_identity.inc
@@ -126,7 +126,8 @@
      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']);
program/steps/settings/folders.inc
New file
@@ -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('&nbsp;&nbsp;&nbsp;&nbsp;', $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('&nbsp;&nbsp;&nbsp;&nbsp;', $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('&nbsp;&nbsp;&nbsp;&nbsp;', $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');
program/steps/settings/manage_folders.inc
File was deleted
program/steps/settings/save_folder.inc
New file
@@ -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');
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());
skins/default/common.css
@@ -249,6 +249,11 @@
  background: url(images/listheader.gif) top left repeat-x #CCC;
}
.boxtitle .rightalign
{
  float: right;
}
.boxcontent
{
  padding: 15px 10px 10px 10px;
@@ -861,3 +866,17 @@
  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; }
skins/default/functions.js
@@ -353,7 +353,7 @@
/* 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');
skins/default/iehacks.css
@@ -38,11 +38,6 @@
  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 @@
#messageframe,
#identity-details,
#contacts-box,
#prefs-box
#prefs-box,
#folder-box
{
  height: expression(parseInt(this.parentNode.offsetHeight)+'px');
}
skins/default/mail.css
@@ -1337,8 +1337,7 @@
#compose-cc,
#compose-bcc,
#compose-replyto,
#compose-mailreplyto,
#compose-mailfollowupto
#compose-followupto
{
  display: none;
}
@@ -1435,9 +1434,6 @@
  margin-top: 4px;
}
/** quota indicator */
#quota
{
  position: absolute;
@@ -1453,19 +1449,3 @@
  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; }
skins/default/settings.css
@@ -5,39 +5,18 @@
  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
@@ -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
#subscription-table td.name
{
  width: 95%;
  width: auto;
}
#subscription-table thead td.msgcount,
#subscription-table thead td.subscribed,
#subscription-table thead td.threaded
#subscription-table td.subscribed
{
  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
{
  width: 30px;
}
#subscription-table td.name input
{
  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 @@
}
#identities-list,
#folder-manager,
#sectionslist
{
  position: absolute;
@@ -161,24 +115,9 @@
  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 @@
  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;
}
skins/default/splitter.js
@@ -24,7 +24,7 @@
    // 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 @@
  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 @@
  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
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>
skins/default/templates/folderedit.html
New file
@@ -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()" />&nbsp;
    <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>
skins/default/templates/folders.html
New file
@@ -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>
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" />
skins/default/templates/managefolders.html
File was deleted