summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG66
-rw-r--r--config/defaults.inc.php14
-rw-r--r--installer/index.php4
-rw-r--r--plugins/acl/config.inc.php.dist12
-rw-r--r--plugins/acl/localization/az_AZ.inc2
-rw-r--r--plugins/acl/localization/fa_IR.inc28
-rw-r--r--plugins/acl/localization/lt_LT.inc2
-rw-r--r--plugins/additional_message_headers/additional_message_headers.php25
-rw-r--r--plugins/additional_message_headers/config.inc.php.dist10
-rw-r--r--plugins/additional_message_headers/package.xml7
-rw-r--r--plugins/archive/localization/fa_IR.inc6
-rw-r--r--plugins/database_attachments/config.inc.php.dist4
-rw-r--r--plugins/debug_logger/debug_logger.php6
-rw-r--r--plugins/enigma/config.inc.php.dist6
-rw-r--r--plugins/help/config.inc.php.dist12
-rw-r--r--plugins/hide_blockquote/hide_blockquote.php2
-rw-r--r--plugins/http_authentication/config.inc.php.dist4
-rw-r--r--plugins/http_authentication/http_authentication.php2
-rw-r--r--plugins/identity_select/identity_select.php4
-rw-r--r--plugins/jqueryui/config.inc.php.dist4
-rw-r--r--plugins/managesieve/config.inc.php.dist30
-rw-r--r--plugins/managesieve/localization/cs_CZ.inc22
-rw-r--r--plugins/managesieve/localization/fi_FI.inc24
-rw-r--r--plugins/managesieve/localization/fr_FR.inc1
-rw-r--r--plugins/managesieve/localization/hr_HR.inc26
-rw-r--r--plugins/managesieve/localization/it_IT.inc32
-rw-r--r--plugins/managesieve/managesieve.js1
-rw-r--r--plugins/markasjunk/localization/ru_RU.inc4
-rw-r--r--plugins/markasjunk/markasjunk.php31
-rw-r--r--plugins/markasjunk/package.xml7
-rw-r--r--plugins/new_user_identity/new_user_identity.php6
-rw-r--r--plugins/newmail_notifier/config.inc.php.dist6
-rw-r--r--plugins/newmail_notifier/newmail_notifier.js9
-rw-r--r--plugins/password/README13
-rw-r--r--plugins/password/config.inc.php.dist130
-rw-r--r--plugins/password/drivers/hmail.php4
-rw-r--r--plugins/password/drivers/xmail.php8
-rw-r--r--plugins/password/localization/ru_RU.inc4
-rw-r--r--plugins/redundant_attachments/config.inc.php.dist4
-rw-r--r--plugins/redundant_attachments/redundant_attachments.php7
-rw-r--r--plugins/show_additional_headers/show_additional_headers.php2
-rw-r--r--plugins/squirrelmail_usercopy/config.inc.php.dist18
-rw-r--r--plugins/subscriptions_option/localization/ru_RU.inc2
-rw-r--r--plugins/subscriptions_option/subscriptions_option.php4
-rw-r--r--plugins/virtuser_file/virtuser_file.php2
-rw-r--r--plugins/virtuser_query/virtuser_query.php4
-rw-r--r--plugins/zipdownload/README2
-rw-r--r--plugins/zipdownload/config.inc.php.dist8
-rw-r--r--plugins/zipdownload/localization/ru_RU.inc2
-rw-r--r--program/include/rcmail.php17
-rw-r--r--program/js/app.js12
-rw-r--r--program/js/common.js8
-rw-r--r--program/js/list.js30
-rw-r--r--program/lib/Roundcube/bootstrap.php12
-rw-r--r--program/lib/Roundcube/rcube.php17
-rw-r--r--program/lib/Roundcube/rcube_base_replacer.php4
-rw-r--r--program/lib/Roundcube/rcube_config.php24
-rw-r--r--program/lib/Roundcube/rcube_image.php89
-rw-r--r--program/lib/Roundcube/rcube_imap.php21
-rw-r--r--program/lib/Roundcube/rcube_imap_generic.php49
-rw-r--r--program/lib/Roundcube/rcube_ldap.php13
-rw-r--r--program/lib/Roundcube/rcube_storage.php2
-rw-r--r--program/lib/Roundcube/rcube_string_replacer.php2
-rw-r--r--program/lib/Roundcube/rcube_utils.php17
-rw-r--r--program/localization/ar_SA/messages.inc9
-rw-r--r--program/localization/ast/messages.inc9
-rw-r--r--program/localization/az_AZ/messages.inc9
-rw-r--r--program/localization/be_BE/messages.inc9
-rw-r--r--program/localization/bg_BG/messages.inc9
-rw-r--r--program/localization/bn_BD/messages.inc9
-rw-r--r--program/localization/br/messages.inc9
-rw-r--r--program/localization/bs_BA/messages.inc9
-rw-r--r--program/localization/ca_ES/messages.inc9
-rw-r--r--program/localization/cy_GB/messages.inc9
-rw-r--r--program/localization/da_DK/messages.inc9
-rw-r--r--program/localization/de_DE/messages.inc9
-rw-r--r--program/localization/el_GR/messages.inc9
-rw-r--r--program/localization/en_GB/messages.inc9
-rw-r--r--program/localization/eo/messages.inc9
-rw-r--r--program/localization/es_AR/messages.inc9
-rw-r--r--program/localization/eu_ES/messages.inc195
-rw-r--r--program/localization/fa_AF/messages.inc55
-rw-r--r--program/localization/fa_IR/messages.inc163
-rwxr-xr-xprogram/localization/ga_IE/messages.inc9
-rw-r--r--program/localization/hi_IN/messages.inc9
-rw-r--r--program/localization/hr_HR/messages.inc9
-rw-r--r--program/localization/hu_HU/messages.inc9
-rw-r--r--program/localization/hy_AM/messages.inc9
-rw-r--r--program/localization/ia/messages.inc9
-rw-r--r--program/localization/id_ID/labels.inc15
-rw-r--r--program/localization/id_ID/messages.inc11
-rw-r--r--program/localization/is_IS/messages.inc9
-rw-r--r--program/localization/it_IT/messages.inc11
-rw-r--r--program/localization/ja_JP/messages.inc9
-rwxr-xr-xprogram/localization/ka_GE/messages.inc9
-rw-r--r--program/localization/km_KH/messages.inc9
-rw-r--r--program/localization/ko_KR/messages.inc9
-rw-r--r--program/localization/ku/messages.inc9
-rw-r--r--program/localization/lt_LT/messages.inc9
-rwxr-xr-xprogram/localization/mk_MK/messages.inc9
-rw-r--r--program/localization/ml_IN/messages.inc9
-rwxr-xr-xprogram/localization/mr_IN/messages.inc9
-rw-r--r--program/localization/ms_MY/messages.inc9
-rw-r--r--program/localization/nb_NO/messages.inc9
-rw-r--r--program/localization/ne_NP/messages.inc9
-rw-r--r--program/localization/nl_BE/messages.inc9
-rw-r--r--program/localization/nl_NL/messages.inc9
-rw-r--r--program/localization/nn_NO/messages.inc9
-rwxr-xr-xprogram/localization/ps/messages.inc9
-rw-r--r--program/localization/pt_BR/messages.inc9
-rw-r--r--program/localization/pt_PT/messages.inc9
-rw-r--r--program/localization/ru_RU/labels.inc15
-rw-r--r--program/localization/ru_RU/messages.inc175
-rw-r--r--program/localization/si_LK/messages.inc9
-rw-r--r--program/localization/sk_SK/messages.inc9
-rw-r--r--program/localization/sq_AL/messages.inc9
-rw-r--r--program/localization/sr_CS/messages.inc9
-rw-r--r--program/localization/sv_SE/messages.inc63
-rw-r--r--program/localization/ta_IN/messages.inc9
-rw-r--r--program/localization/th_TH/messages.inc9
-rw-r--r--program/localization/uk_UA/messages.inc9
-rw-r--r--program/localization/vi_VN/messages.inc9
-rw-r--r--program/localization/zh_TW/messages.inc9
-rw-r--r--program/steps/addressbook/edit.inc14
-rw-r--r--program/steps/addressbook/func.inc21
-rw-r--r--program/steps/addressbook/photo.inc91
-rw-r--r--program/steps/addressbook/show.inc52
-rw-r--r--program/steps/mail/compose.inc20
-rw-r--r--program/steps/mail/func.inc4
-rw-r--r--program/steps/mail/sendmail.inc1
-rw-r--r--program/steps/settings/folders.inc2
-rw-r--r--program/steps/settings/func.inc13
-rw-r--r--program/steps/settings/save_prefs.inc2
-rw-r--r--program/steps/utils/spell.inc2
-rw-r--r--skins/classic/addressbook.css3
-rw-r--r--skins/larry/addressbook.css2
-rw-r--r--skins/larry/includes/links.html1
-rw-r--r--skins/larry/styles.css10
-rw-r--r--skins/larry/templates/mail.html2
-rw-r--r--skins/larry/ui.js4
-rw-r--r--tests/Framework/BaseReplacer.php14
-rw-r--r--tests/Framework/StringReplacer.php1
-rw-r--r--tests/Framework/Utils.php10
143 files changed, 1503 insertions, 869 deletions
diff --git a/CHANGELOG b/CHANGELOG
index fc659132c..f172d4081 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,46 +1,40 @@
CHANGELOG Roundcube Webmail
===========================
-- Fix XSS vulnerability when saving HTML signatures (#1489251)
+- Fix issue where legacy config was overriden by default config (#1489288)
+- Add temp_dir_ttl configuration option (#1489304)
+- Fix newmail_notifier issue where favicon wasn't changed back to default (#1489313)
+- Allow setting INBOX as Sent folder (#1489219)
+- Fix setting of Junk and NonJunk flags by markasjunk plugin (#1489285)
+- Fix lack of Reply-To address in header of forwarded message body (#1489298)
+- Fix bugs when invoking contact creation form when read-only addressbook is selected (#1489296)
+- Fix identity selection on reply (#1489291)
+- Fix so additional headers are added to all messages sent (#1489284)
+- Fix display issue after moving folder in Folder Manager (#1489293)
+- Fix handling of non-default date formats (#1489294)
+- Fix unquoted path in PREG expression on Windows (#1489290)
+- Fix replacement variables in user-specific base_dn in some LDAP requests (#1489279)
+- Fix image scaling issues when image has only one dimension smaller than the limit (#1489274)
+- Fix issue where uploaded photo was lost when contact form did not validate (#1489274)
- Move identity selection based on non-standard headers into (new) identity_select plugin (#1488553)
-- Fix colorspace issue on image conversion using ImageMagick (#1489270)
-- Fix XSS vulnerability when editing a message "as new" or draft (#1489251)
- Fix downloading binary files with (wrong) text/* content-type (#1489267)
-- Fix rewrite rule in .htaccess (#1489240)
-- Fix detecting Turkish language in ISO-8859-9 encoding (#1489252)
-- Fix identity-selection using Return-Path headers (#1489241)
-- Fix parsing of links with ... in URL (#1489192)
-- Fix compose priority selector when opening in new window (#1489257)
- Respect HTTP_X_FORWARDED_FOR and HTTP_X_REAL_IP variables for session IP check
- Simplified configuration by merging it into one file + defaults (#1487311)
- Make message list header stay on top when scrolling (#1295420)
-- Fix bug where signature wasn't changed on identity selection when editing a draft (#1489229)
-- Fix IMAP SETMETADATA parameters quoting (#1489231)
- Add support for 'enchant' spellcheck engine
-- Fix "could not load message" error on valid empty message body (#1489228)
- Check filetype detection in installer and update script (#1489193)
-- Fix handling of message/rfc822 attachments on message forward and edit (#1489214)
- Fix folder names truncation in Classic skin (#1489220)
-- Fix parsing of square bracket characters in IMAP response strings (#1489223)
-- Don't clear References and in-Reply-To when a message is "edited as new" (#1489216)
- Make possible to disable some (broken) IMAP extensions with imap_disable_caps option (#1489184)
- Contacts drag-n-drop default action is to move contacts (#1488751)
- Added possibility to choose to move or copy contacts from drag-n-drop menu (#1488751)
-- Fix messages list sorting with THREAD=REFS
- Fix Close link and remove About link on error pages (#1489109)
-- Remove deprecated (in PHP 5.5) PREG /e modifier usage (#1489174)
-- Fix empty messages list when register_globals is enabled (#1489157)
- Improved/unified attachment preview screen, added print button
- Fix lack of space between searchfiler and quicksearchbar in Larry skin (#1489158)
-- Fix so valid and set date.timezone is not required by installer checks (#1489180)
-- Canonize boolean ini_get() results (#1489189)
- Cache LDAP's user_specific search and use vlv for better performance (#1489186)
- LDAP: auto-detect and use VLV indices for all search operations
- LDAP: additional group configuration options for address books
- LDAP: separated address book implementation from a generic LDAP wrapper class
- Allow address books to browse a multi-level group hierarchy in the contacts list
-- Fix so install do not fail when one of DB driver checks fails but other drivers exist (#1489178)
-- Fix so exported vCard specifies encoding in v3-compatible format (#1489183)
- Fix session issues when local and database time differs (#1486132)
- Fix thread cache syncronization/validation (#1489028)
- Added feature to import messages to the currently selected folder
@@ -75,6 +69,36 @@ CHANGELOG Roundcube Webmail
- Fix export of selected contacts from search result (#1488905)
- Feature to export only selected contacts from addressbook (by Phil Weir)
+RELEASE 0.9.3
+-------------
+- Fix setting refresh_interval to "Never" in Preferences (#1489286)
+- Fixed iframe scrolling on touch devices
+- Optimized message list for touch devices
+- Fix purge action in folder manager (#1489280)
+- Fix base URL resolving on attribute values with no quotes (#1489275)
+- Fix wrong handling of links with '|' character (#1489276)
+- Fix colorspace issue on image conversion using ImageMagick (#1489270)
+- Fix XSS vulnerability when editing a message "as new" or draft (#1489251)
+- Fix XSS vulnerability when saving HTML signatures (#1489251)
+- Fix rewrite rule in .htaccess (#1489240)
+- Fix detecting Turkish language in ISO-8859-9 encoding (#1489252)
+- Fix identity-selection using Return-Path headers (#1489241)
+- Fix parsing of links with ... in URL (#1489192)
+- Fix compose priority selector when opening in new window (#1489257)
+- Fix bug where signature wasn't changed on identity selection when editing a draft (#1489229)
+- Fix IMAP SETMETADATA parameters quoting (#1489231)
+- Fix "could not load message" error on valid empty message body (#1489228)
+- Fix handling of message/rfc822 attachments on message forward and edit (#1489214)
+- Fix parsing of square bracket characters in IMAP response strings (#1489223)
+- Don't clear References and in-Reply-To when a message is "edited as new" (#1489216)
+- Fix messages list sorting with THREAD=REFS
+- Remove deprecated (in PHP 5.5) PREG /e modifier usage (#1489174)
+- Fix empty messages list when register_globals is enabled (#1489157)
+- Fix so valid and set date.timezone is not required by installer checks (#1489180)
+- Canonize boolean ini_get() results (#1489189)
+- Fix so install do not fail when one of DB driver checks fails but other drivers exist (#1489178)
+- Fix so exported vCard specifies encoding in v3-compatible format (#1489183)
+
RELEASE 0.9.2
-------------
- Fix image thumbnails display in print mode (#1489134)
diff --git a/config/defaults.inc.php b/config/defaults.inc.php
index 32dba4918..512455275 100644
--- a/config/defaults.inc.php
+++ b/config/defaults.inc.php
@@ -143,7 +143,7 @@ $config['imap_force_ns'] = false;
// Note: Because the list is cached, re-login is required after change.
$config['imap_disabled_caps'] = array();
-// IMAP connection timeout, in seconds. Default: 0 (no limit)
+// IMAP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
$config['imap_timeout'] = 0;
// Optional IMAP authentication identifier to be used as authorization proxy
@@ -208,7 +208,7 @@ $config['smtp_auth_pw'] = null;
// localhost if that isn't defined.
$config['smtp_helo_host'] = '';
-// SMTP connection timeout, in seconds. Default: 0 (no limit)
+// SMTP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
// Note: There's a known issue where using ssl connection with
// timeout > 0 causes connection errors (https://bugs.php.net/bug.php?id=54511)
$config['smtp_timeout'] = 0;
@@ -257,6 +257,10 @@ $config['log_dir'] = 'logs/';
// use this folder to store temp files (must be writeable for apache user)
$config['temp_dir'] = 'temp/';
+// expire files in temp_dir after 48 hours
+// possible units: s, m, h, d, w
+$config['temp_dir_ttl'] = '48h';
+
// enforce connections over https
// with this option enabled, all non-secure connections will be redirected.
// set the port for the ssl connection as value of this option if it differs from the default 443
@@ -294,6 +298,9 @@ $config['session_domain'] = '';
// Session name. Default: 'roundcube_sessid'
$config['session_name'] = null;
+// Session authentication cookie name. Default: 'roundcube_sessauth'
+$config['session_auth_name'] = null;
+
// Session path. Defaults to PHP session.cookie_path setting.
$config['session_path'] = null;
@@ -475,7 +482,8 @@ $config['language'] = null;
$config['date_format'] = 'Y-m-d';
// give this choice of date formats to the user to select from
-$config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y');
+// Note: do not use ambiguous formats like m/d/Y
+$config['date_formats'] = array('Y-m-d', 'Y/m/d', 'Y.m.d', 'd-m-Y', 'd/m/Y', 'd.m.Y', 'j.n.Y');
// use this format for time display (date or strftime format)
$config['time_format'] = 'H:i';
diff --git a/installer/index.php b/installer/index.php
index d084c8aa5..d90c4f981 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -125,12 +125,12 @@ if ($RCI->configured && empty($_REQUEST['_step'])) {
if ($RCI->configured && $RCI->legacy_config) {
echo '<h2 class="error">Your configuration needs to be migrated!</h2>';
echo '<p>We changed the configuration files structure and your installation needs to be updated accordingly.</p>';
- echo '<p>Please run the <tt>bin/update.sh</tt> script from the command line or set <p>&nbsp; <tt>$rcmail_config[\'enable_installer\'] = true;</tt></p>';
+ echo '<p>Please run the <tt>bin/update.sh</tt> script from the command line or set <p>&nbsp; <tt>$rcube_config[\'enable_installer\'] = true;</tt></p>';
echo ' in your RCUBE_CONFIG_DIR/main.inc.php to let the installer help you migrating it.</p>';
}
else {
echo '<h2 class="error">The installer is disabled!</h2>';
- echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in RCUBE_CONFIG_DIR/config.inc.php</p>';
+ echo '<p>To enable it again, set <tt>$config[\'enable_installer\'] = true;</tt> in RCUBE_CONFIG_DIR/config.inc.php</p>';
}
echo '</div></body></html>';
exit;
diff --git a/plugins/acl/config.inc.php.dist b/plugins/acl/config.inc.php.dist
index d0e1a0932..3f0b1efb6 100644
--- a/plugins/acl/config.inc.php.dist
+++ b/plugins/acl/config.inc.php.dist
@@ -3,23 +3,23 @@
// Default look of access rights table
// In advanced mode all access rights are displayed separately
// In simple mode access rights are grouped into four groups: read, write, delete, full
-$rcmail_config['acl_advanced_mode'] = false;
+$config['acl_advanced_mode'] = false;
// LDAP addressbook that would be searched for user names autocomplete.
-// That should be an array refering to the $rcmail_config['ldap_public'] array key
+// That should be an array refering to the $config['ldap_public'] array key
// or complete addressbook configuration array.
-$rcmail_config['acl_users_source'] = '';
+$config['acl_users_source'] = '';
// The LDAP attribute which will be used as ACL user identifier
-$rcmail_config['acl_users_field'] = 'mail';
+$config['acl_users_field'] = 'mail';
// The LDAP search filter will be &'d with search queries
-$rcmail_config['acl_users_filter'] = '';
+$config['acl_users_filter'] = '';
// Include the following 'special' access control subjects in the ACL dialog;
// Defaults to array('anyone', 'anonymous') (not when set to an empty array)
// Example: array('anyone') to exclude 'anonymous'.
// Set to an empty array to exclude all special aci subjects.
-$rcmail_config['acl_specials'] = array('anyone', 'anonymous');
+$config['acl_specials'] = array('anyone', 'anonymous');
?>
diff --git a/plugins/acl/localization/az_AZ.inc b/plugins/acl/localization/az_AZ.inc
index d5543ddaa..5d875a2b7 100644
--- a/plugins/acl/localization/az_AZ.inc
+++ b/plugins/acl/localization/az_AZ.inc
@@ -89,7 +89,7 @@ $messages['saving'] = 'Giriş hüququnun saxlanılması...';
$messages['updatesuccess'] = 'Giriş hüququ dəyişdirildi';
$messages['deletesuccess'] = 'Giriş hüququ silindi';
$messages['createsuccess'] = 'Giriş hüququ əlavə edildi';
-$messages['updateerror'] = 'Giriş hüququnu yeniləmək mümkün deyil';
+$messages['updateerror'] = 'Hüquqları yeniləmək alınmadı';
$messages['deleteerror'] = 'Giriş hüququnu silmək mümkün deyil';
$messages['createerror'] = 'Giriş hüququnu əlavə etmək mümkün deyil';
$messages['deleteconfirm'] = 'Seçilmiş istifadəçilərin giriş hüququnu silməkdə əminsiniz?';
diff --git a/plugins/acl/localization/fa_IR.inc b/plugins/acl/localization/fa_IR.inc
index 48fb8a225..2face4fba 100644
--- a/plugins/acl/localization/fa_IR.inc
+++ b/plugins/acl/localization/fa_IR.inc
@@ -22,51 +22,51 @@ $labels['username'] = 'کاربر:';
$labels['advanced'] = 'حالت پیشرفته';
$labels['newuser'] = 'افزودن مدخل';
$labels['actions'] = 'فعالیت‌های مجوز دسترسی...';
-$labels['anyone'] = 'همه کاربران (هر کسی)';
-$labels['anonymous'] = 'مهمان‌ها (ناشناس‌ها)';
+$labels['anyone'] = 'همه‌ی کاربران (هر کسی)';
+$labels['anonymous'] = 'مهمان‌ها (ناشناس)';
$labels['identifier'] = 'شناساگر';
$labels['acll'] = 'یافتن';
-$labels['aclr'] = 'پیام های خوانده شده';
+$labels['aclr'] = 'پیغام‌های خوانده شده';
$labels['acls'] = 'نگه داشتن حالت بازدید';
$labels['aclw'] = 'پرچم‌های نوشتن';
$labels['acli'] = 'وارد کردن (کپی کردن در)';
-$labels['aclp'] = 'نوشته';
+$labels['aclp'] = 'ارسال';
$labels['aclc'] = 'ایجاد زیرپوشه‌ها';
$labels['aclk'] = 'ایجاد زیرپوشه‌ها';
$labels['acld'] = 'پاک کردن پیغام‌ها';
$labels['aclt'] = 'پاک کردن پیغام‌ها';
$labels['acle'] = 'پاک کردن';
$labels['aclx'] = 'حذف پوشه';
-$labels['acla'] = 'مدیر';
+$labels['acla'] = 'مدیریت کردن';
$labels['aclfull'] = 'کنترل کامل';
$labels['aclother'] = 'دیگر';
-$labels['aclread'] = 'خوانده شده';
+$labels['aclread'] = 'خواندن';
$labels['aclwrite'] = 'نوشتن';
$labels['acldelete'] = 'حذف';
$labels['shortacll'] = 'یافتن';
-$labels['shortaclr'] = 'خوانده شده';
+$labels['shortaclr'] = 'خواندن';
$labels['shortacls'] = 'نگه داشتن';
$labels['shortaclw'] = 'نوشتن';
-$labels['shortacli'] = 'جاگذارى';
-$labels['shortaclp'] = 'نوشته';
+$labels['shortacli'] = 'اضافه کردن';
+$labels['shortaclp'] = 'ارسال';
$labels['shortaclc'] = 'ایجاد';
$labels['shortaclk'] = 'ایجاد';
$labels['shortacld'] = 'حذف';
$labels['shortaclt'] = 'حذف';
$labels['shortacle'] = 'پاک کردن';
$labels['shortaclx'] = 'حذف کردن پوشه';
-$labels['shortacla'] = 'مدیر';
+$labels['shortacla'] = 'مدیریت کردن';
$labels['shortaclother'] = 'دیگر';
-$labels['shortaclread'] = 'خوانده شده';
+$labels['shortaclread'] = 'خواندن';
$labels['shortaclwrite'] = 'نوشتن';
$labels['shortacldelete'] = 'حذف';
-$labels['longacll'] = 'پوشه در فهرست‌ها قابل مشاهده است و می‌تواند مشترک به';
-$labels['longaclr'] = 'پوشه می‌تواند برای خواندن باز شود';
+$labels['longacll'] = 'پوشه را می‌توان در فهرست‌ها دید و در آن مشترک شد';
+$labels['longaclr'] = 'پوشه می‌تواند برای خوانده شدن باز شود';
$labels['longacls'] = 'پرچم بازدید پیغام‌ها می‌تواند تغییر داده شود';
$labels['longaclw'] = 'پرچم و کلیدواژه پیغام‌ها می‌تواند تغییر داده شود، به غیر از بازدید و حذف';
$labels['longacli'] = 'پیغام‌ها می‌توانند کپی یا نوشته شوند به پوشه';
@@ -89,7 +89,7 @@ $messages['saving'] = 'ذخیره قوانین دسترسی...';
$messages['updatesuccess'] = 'قوانین دسترسی با موفقیت تغییر کردند';
$messages['deletesuccess'] = 'قوانین دسترسی با موفقیت حذف شدند';
$messages['createsuccess'] = 'قوانین دسترسی با موفقیت اضافه شدند';
-$messages['updateerror'] = 'ناتوانی در بروزرسانی قوانین دسترسی';
+$messages['updateerror'] = 'ناتوانی در به روز کردن قوانین دسترسی';
$messages['deleteerror'] = 'ناتوانی در حذف قوانین دسترسی';
$messages['createerror'] = 'ناتوانی در اضافه کردن قوانین دسترسی';
$messages['deleteconfirm'] = 'آیا شما مطمئن هستید که می‌خواهید قوانین دسترسی را برای کاربر(ان) انتخاب شده حذف نمایید؟';
diff --git a/plugins/acl/localization/lt_LT.inc b/plugins/acl/localization/lt_LT.inc
index 59393012f..39a4d1be2 100644
--- a/plugins/acl/localization/lt_LT.inc
+++ b/plugins/acl/localization/lt_LT.inc
@@ -89,7 +89,7 @@ $messages['saving'] = 'Išsaugomos prieigos teisės';
$messages['updatesuccess'] = 'Prieigos teisės sėkmingai pakeistos';
$messages['deletesuccess'] = 'Prieigos teisės sėkmingai panaikintos';
$messages['createsuccess'] = 'Prieigos teisės sėkmingai pridėtos';
-$messages['updateerror'] = 'Neįmanoma atnaujinti prieigos teises';
+$messages['updateerror'] = 'Nepavyko pakeisti prieigos teisių';
$messages['deleteerror'] = 'Neįmanoma panaikinti prieigos teises';
$messages['createerror'] = 'Neišeina pridėti prieigos teises';
$messages['deleteconfirm'] = 'Ar jūs esate įsitikinę, jog norite panaikinti prieigos teises pažymėtiems vartotojams(-ui)?';
diff --git a/plugins/additional_message_headers/additional_message_headers.php b/plugins/additional_message_headers/additional_message_headers.php
index a43018176..0d16e605e 100644
--- a/plugins/additional_message_headers/additional_message_headers.php
+++ b/plugins/additional_message_headers/additional_message_headers.php
@@ -7,7 +7,7 @@
* to or remove them from outgoing messages.
*
* Enable the plugin in config.inc.php and add your desired headers:
- * $rcmail_config['additional_message_headers'] = array('User-Agent');
+ * $config['additional_message_headers'] = array('User-Agent' => 'My-Very-Own-Webmail');
*
* @version @package_version@
* @author Ziba Scott
@@ -15,27 +15,32 @@
*/
class additional_message_headers extends rcube_plugin
{
- public $task = 'mail';
-
function init()
{
- $this->add_hook('message_outgoing_headers', array($this, 'message_headers'));
+ $this->add_hook('message_before_send', array($this, 'message_headers'));
}
function message_headers($args)
{
- $this->load_config();
+ $this->load_config();
+
+ $headers = $args['message']->headers();
+ $rcube = rcube::get_instance();
// additional email headers
- $additional_headers = rcmail::get_instance()->config->get('additional_message_headers',array());
- foreach($additional_headers as $header=>$value){
+ $additional_headers = $rcube->config->get('additional_message_headers', array());
+ foreach ((array)$additional_headers as $header => $value) {
if (null === $value) {
- unset($args['headers'][$header]);
- } else {
- $args['headers'][$header] = $value;
+ unset($headers[$header]);
+ }
+ else {
+ $headers[$header] = $value;
}
}
+ $args['message']->_headers = array();
+ $args['message']->headers($headers);
+
return $args;
}
}
diff --git a/plugins/additional_message_headers/config.inc.php.dist b/plugins/additional_message_headers/config.inc.php.dist
index 83ccd869c..72a4f1cee 100644
--- a/plugins/additional_message_headers/config.inc.php.dist
+++ b/plugins/additional_message_headers/config.inc.php.dist
@@ -1,14 +1,14 @@
<?php
-// $rcmail_config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT'];
-// $rcmail_config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
-// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];
+// $config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT'];
+// $config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
+// $config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];
// if( isset( $_SERVER['MACHINE_NAME'] )) {
-// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] .= ' (' . $_SERVER['MACHINE_NAME'] . ')';
+// $config['additional_message_headers']['X-RoundCube-Server'] .= ' (' . $_SERVER['MACHINE_NAME'] . ')';
// }
// To remove (e.g. X-Sender) message header use null value
-// $rcmail_config['additional_message_headers']['X-Sender'] = null;
+// $config['additional_message_headers']['X-Sender'] = null;
?>
diff --git a/plugins/additional_message_headers/package.xml b/plugins/additional_message_headers/package.xml
index 73c24fba7..c15d9f8b3 100644
--- a/plugins/additional_message_headers/package.xml
+++ b/plugins/additional_message_headers/package.xml
@@ -13,11 +13,10 @@
<email>email@example.org</email>
<active>yes</active>
</lead>
- <date>2010-01-16</date>
- <time>18:19:33</time>
+ <date>2013-08-25</date>
<version>
- <release>1.1.0</release>
- <api>1.1.0</api>
+ <release>1.2.0</release>
+ <api>1.2.0</api>
</version>
<stability>
<release>stable</release>
diff --git a/plugins/archive/localization/fa_IR.inc b/plugins/archive/localization/fa_IR.inc
index 9df31ed31..03bf6d8bd 100644
--- a/plugins/archive/localization/fa_IR.inc
+++ b/plugins/archive/localization/fa_IR.inc
@@ -20,11 +20,11 @@ $labels = array();
$labels['buttontext'] = 'بایگانی';
$labels['buttontitle'] = 'بایگانی این پیغام';
$labels['archived'] = 'با موفقیت بایگانی شد';
-$labels['archivedreload'] = 'با موفقیت بایگانی شد، بارگذاری مجدد صفحه برای دیدن پوشه‌های بایگانی جدید.';
-$labels['archiveerror'] = 'برخی پیغام‌ها بایگانی نخواهند شد';
+$labels['archivedreload'] = 'با موفقیت بایگانی شد. برای دیدن پوشه‌های بایگانی جدید صفحه را مجددا بارگذاری نمایید.';
+$labels['archiveerror'] = 'برخی از پیغام‌ها بایگانی نشدند.';
$labels['archivefolder'] = 'بایگانی';
$labels['settingstitle'] = 'بایگانی';
-$labels['archivetype'] = 'جدا کردن بایگانی با';
+$labels['archivetype'] = 'تقسیم بایگانی با';
$labels['archivetypeyear'] = 'سال (به عنوان مثال بایگانی/۲۰۱۲)';
$labels['archivetypemonth'] = 'ماه (به عنوان مثال بایگانی/۲۰۱۲/۰۶)';
$labels['archivetypefolder'] = 'پوشه اصلی';
diff --git a/plugins/database_attachments/config.inc.php.dist b/plugins/database_attachments/config.inc.php.dist
index b23a9a1be..c371cbbb7 100644
--- a/plugins/database_attachments/config.inc.php.dist
+++ b/plugins/database_attachments/config.inc.php.dist
@@ -3,10 +3,10 @@
// By default this plugin stores attachments in filesystem
// and copies them into sql database.
// You can change it to use 'memcache' or 'apc'.
-$rcmail_config['database_attachments_cache'] = 'db';
+$config['database_attachments_cache'] = 'db';
// Attachment data expires after specied TTL time in seconds (max.2592000).
// Default is 12 hours.
-$rcmail_config['database_attachments_cache_ttl'] = 12 * 60 * 60;
+$config['database_attachments_cache_ttl'] = 12 * 60 * 60;
?>
diff --git a/plugins/debug_logger/debug_logger.php b/plugins/debug_logger/debug_logger.php
index deb6deb91..88237d767 100644
--- a/plugins/debug_logger/debug_logger.php
+++ b/plugins/debug_logger/debug_logger.php
@@ -23,11 +23,11 @@
*
* config.inc.php:
*
- * // $rcmail_config['debug_logger'][type of logging] = name of file in log_dir
+ * // $config['debug_logger'][type of logging] = name of file in log_dir
* // The 'master' log includes timing information
- * $rcmail_config['debug_logger']['master'] = 'master';
+ * $config['debug_logger']['master'] = 'master';
* // If you want sql messages to also go into a separate file
- * $rcmail_config['debug_logger']['sql'] = 'sql';
+ * $config['debug_logger']['sql'] = 'sql';
*
* index.php (just after $RCMAIL->plugins->init()):
*
diff --git a/plugins/enigma/config.inc.php.dist b/plugins/enigma/config.inc.php.dist
index ca841d0ac..2adb4d9f6 100644
--- a/plugins/enigma/config.inc.php.dist
+++ b/plugins/enigma/config.inc.php.dist
@@ -4,11 +4,11 @@
// --------------------
// A driver to use for PGP. Default: "gnupg".
-$rcmail_config['enigma_pgp_driver'] = 'gnupg';
+$config['enigma_pgp_driver'] = 'gnupg';
// A driver to use for S/MIME. Default: "phpssl".
-$rcmail_config['enigma_smime_driver'] = 'phpssl';
+$config['enigma_smime_driver'] = 'phpssl';
// Keys directory for all users. Default 'enigma/home'.
// Must be writeable by PHP process
-$rcmail_config['enigma_pgp_homedir'] = null;
+$config['enigma_pgp_homedir'] = null;
diff --git a/plugins/help/config.inc.php.dist b/plugins/help/config.inc.php.dist
index 1dbc21753..7cc8d5f00 100644
--- a/plugins/help/config.inc.php.dist
+++ b/plugins/help/config.inc.php.dist
@@ -2,12 +2,12 @@
// Help content iframe source
// %l will be replaced by the language code resolved using the 'help_language_map' option
-$rcmail_config['help_source'] = 'http://roundcube.net/doc/help/0.9/%l/';
+$config['help_source'] = 'http://roundcube.net/doc/help/0.9/%l/';
// Map task/action combinations to deep-links
// Use '<task>/<action>' or only '<task>' strings as keys
// The values will be appended to the 'help_source' URL
-$rcmail_config['help_index_map'] = array(
+$config['help_index_map'] = array(
'login' => 'login.html',
'mail' => 'mail/index.html',
'mail/compose' => 'mail/compose.html',
@@ -20,16 +20,16 @@ $rcmail_config['help_index_map'] = array(
// Map to translate Roundcube language codes into help document languages
// The '*' entry will be used as default
-$rcmail_config['help_language_map'] = array('*' => 'en_US');
+$config['help_language_map'] = array('*' => 'en_US');
// Enter an absolute URL to a page displaying information about this webmail
// Alternatively, create a HTML file under <this-plugin-dir>/content/about.html
-$rcmail_config['help_about_url'] = null;
+$config['help_about_url'] = null;
// Enter an absolute URL to a page displaying information about this webmail
// Alternatively, put your license text to <this-plugin-dir>/content/license.html
-$rcmail_config['help_license_url'] = null;
+$config['help_license_url'] = null;
// Determine whether to open the help in a new window
-$rcmail_config['help_open_extwin'] = false;
+$config['help_open_extwin'] = false;
diff --git a/plugins/hide_blockquote/hide_blockquote.php b/plugins/hide_blockquote/hide_blockquote.php
index 1168656fd..2ad5dd8ac 100644
--- a/plugins/hide_blockquote/hide_blockquote.php
+++ b/plugins/hide_blockquote/hide_blockquote.php
@@ -8,7 +8,7 @@
* Configuration:
* // Minimum number of citation lines. Longer citation blocks will be hidden.
* // 0 - no limit (no hidding).
- * $rcmail_config['hide_blockquote_limit'] = 0;
+ * $config['hide_blockquote_limit'] = 0;
*
* @version @package_version@
* @license GNU GPLv3+
diff --git a/plugins/http_authentication/config.inc.php.dist b/plugins/http_authentication/config.inc.php.dist
index 0d798a586..0940dee1f 100644
--- a/plugins/http_authentication/config.inc.php.dist
+++ b/plugins/http_authentication/config.inc.php.dist
@@ -5,5 +5,5 @@
// Default mail host to log-in using user/password from HTTP Authentication.
// This is useful if the users are free to choose arbitrary mail hosts (or
// from a list), but have one host they usually want to log into.
-// Unlike $rcmail_config['default_host'] this must be a string!
-$rcmail_config['http_authentication_host'] = '';
+// Unlike $config['default_host'] this must be a string!
+$config['http_authentication_host'] = '';
diff --git a/plugins/http_authentication/http_authentication.php b/plugins/http_authentication/http_authentication.php
index 2631537a0..d86e1791c 100644
--- a/plugins/http_authentication/http_authentication.php
+++ b/plugins/http_authentication/http_authentication.php
@@ -7,7 +7,7 @@
*
* Configuration:
* // redirect the client to this URL after logout. This page is then responsible to clear HTTP auth
- * $rcmail_config['logout_url'] = 'http://server.tld/logout.html';
+ * $config['logout_url'] = 'http://server.tld/logout.html';
*
* See logout.html (in this directory) for an example how HTTP auth can be cleared.
*
diff --git a/plugins/identity_select/identity_select.php b/plugins/identity_select/identity_select.php
index 203776725..7973b5dad 100644
--- a/plugins/identity_select/identity_select.php
+++ b/plugins/identity_select/identity_select.php
@@ -10,7 +10,7 @@
* identity selection more accurate.
*
* Enable the plugin in config.inc.php and add your desired headers:
- * $rcmail_config['identity_select_headers'] = array('Delivered-To');
+ * $config['identity_select_headers'] = array('Delivered-To');
*
* @version @package_version@
* @author Aleksander Machniak <alec@alec.pl>
@@ -46,7 +46,7 @@ class identity_select extends rcube_plugin
*/
function select($p)
{
- if ($p['selected'] !== null) {
+ if ($p['selected'] !== null || !is_object($p['message']->headers)) {
return $p;
}
diff --git a/plugins/jqueryui/config.inc.php.dist b/plugins/jqueryui/config.inc.php.dist
index a3c3f75a0..8e111e0e1 100644
--- a/plugins/jqueryui/config.inc.php.dist
+++ b/plugins/jqueryui/config.inc.php.dist
@@ -1,10 +1,10 @@
<?php
// if you want to load localization strings for specific sub-libraries of jquery-ui, configure them here
-$rcmail_config['jquery_ui_i18n'] = array('datepicker');
+$config['jquery_ui_i18n'] = array('datepicker');
// map Roundcube skins with jquery-ui themes here
-$rcmail_config['jquery_ui_skin_map'] = array(
+$config['jquery_ui_skin_map'] = array(
'larry' => 'larry',
'default' => 'larry',
'groupvice4' => 'redmond',
diff --git a/plugins/managesieve/config.inc.php.dist b/plugins/managesieve/config.inc.php.dist
index 65dbcfc4e..cb56a0efd 100644
--- a/plugins/managesieve/config.inc.php.dist
+++ b/plugins/managesieve/config.inc.php.dist
@@ -2,7 +2,7 @@
// managesieve server port. When empty the port will be determined automatically
// using getservbyname() function, with 4190 as a fallback.
-$rcmail_config['managesieve_port'] = null;
+$config['managesieve_port'] = null;
// managesieve server address, default is localhost.
// Replacement variables supported in host name:
@@ -10,58 +10,58 @@ $rcmail_config['managesieve_port'] = null;
// %n - http hostname ($_SERVER['SERVER_NAME'])
// %d - domain (http hostname without the first part)
// For example %n = mail.domain.tld, %d = domain.tld
-$rcmail_config['managesieve_host'] = 'localhost';
+$config['managesieve_host'] = 'localhost';
// authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL
// or none. Optional, defaults to best method supported by server.
-$rcmail_config['managesieve_auth_type'] = null;
+$config['managesieve_auth_type'] = null;
// Optional managesieve authentication identifier to be used as authorization proxy.
// Authenticate as a different user but act on behalf of the logged in user.
// Works with PLAIN and DIGEST-MD5 auth.
-$rcmail_config['managesieve_auth_cid'] = null;
+$config['managesieve_auth_cid'] = null;
// Optional managesieve authentication password to be used for imap_auth_cid
-$rcmail_config['managesieve_auth_pw'] = null;
+$config['managesieve_auth_pw'] = null;
// use or not TLS for managesieve server connection
// Note: tls:// prefix in managesieve_host is also supported
-$rcmail_config['managesieve_usetls'] = false;
+$config['managesieve_usetls'] = false;
// default contents of filters script (eg. default spam filter)
-$rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/global';
+$config['managesieve_default'] = '/etc/dovecot/sieve/global';
// The name of the script which will be used when there's no user script
-$rcmail_config['managesieve_script_name'] = 'managesieve';
+$config['managesieve_script_name'] = 'managesieve';
// Sieve RFC says that we should use UTF-8 endcoding for mailbox names,
// but some implementations does not covert UTF-8 to modified UTF-7.
// Defaults to UTF7-IMAP
-$rcmail_config['managesieve_mbox_encoding'] = 'UTF-8';
+$config['managesieve_mbox_encoding'] = 'UTF-8';
// I need this because my dovecot (with listescape plugin) uses
// ':' delimiter, but creates folders with dot delimiter
-$rcmail_config['managesieve_replace_delimiter'] = '';
+$config['managesieve_replace_delimiter'] = '';
// disabled sieve extensions (body, copy, date, editheader, encoded-character,
// envelope, environment, ereject, fileinto, ihave, imap4flags, index,
// mailbox, mboxmetadata, regex, reject, relational, servermetadata,
// spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc.
// Note: not all extensions are implemented
-$rcmail_config['managesieve_disabled_extensions'] = array();
+$config['managesieve_disabled_extensions'] = array();
// Enables debugging of conversation with sieve server. Logs it into <log_dir>/sieve
-$rcmail_config['managesieve_debug'] = false;
+$config['managesieve_debug'] = false;
// Enables features described in http://wiki.kolab.org/KEP:14
-$rcmail_config['managesieve_kolab_master'] = false;
+$config['managesieve_kolab_master'] = false;
// Script name extension used for scripts including. Dovecot uses '.sieve',
// Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled.
-$rcmail_config['managesieve_filename_extension'] = '.sieve';
+$config['managesieve_filename_extension'] = '.sieve';
// List of reserved script names (without extension).
// Scripts listed here will be not presented to the user.
-$rcmail_config['managesieve_filename_exceptions'] = array();
+$config['managesieve_filename_exceptions'] = array();
?>
diff --git a/plugins/managesieve/localization/cs_CZ.inc b/plugins/managesieve/localization/cs_CZ.inc
index c14873bb7..758316b3f 100644
--- a/plugins/managesieve/localization/cs_CZ.inc
+++ b/plugins/managesieve/localization/cs_CZ.inc
@@ -49,13 +49,14 @@ $labels['messagesendcopy'] = 'Odeslat kopii zprávy na';
$labels['messagereply'] = 'Odpovědět se zprávou';
$labels['messagedelete'] = 'Smazat zprávu';
$labels['messagediscard'] = 'Smazat se zprávou';
+$labels['messagekeep'] = 'Ponechat zprávu v doručené poště';
$labels['messagesrules'] = 'Pravidla pro příchozí zprávu:';
$labels['messagesactions'] = '...vykonej následující akce:';
$labels['add'] = 'Přidej';
$labels['del'] = 'Smaž';
$labels['sender'] = 'Odesílatel';
$labels['recipient'] = 'Příjemce';
-$labels['vacationaddr'] = 'Moje další e-mailové adresy (aliasy) spojené s tímto účtem:';
+$labels['vacationaddr'] = 'Moje další e-mailová adresa(y):';
$labels['vacationdays'] = 'Počet dnů mezi automatickými odpověďmi:';
$labels['vacationinterval'] = 'Prodleva mezi automatickými odpověďmi:';
$labels['days'] = 'dnů';
@@ -121,6 +122,22 @@ $labels['filtercreate'] = 'Vytvořit filtr';
$labels['usedata'] = 'Použít následující údaje ve filtru:';
$labels['nextstep'] = 'Další krok';
$labels['...'] = '...';
+$labels['currdate'] = 'Aktuální datum';
+$labels['datetest'] = 'Datum';
+$labels['dateheader'] = 'hlavička:';
+$labels['year'] = 'rok';
+$labels['month'] = 'měsíc';
+$labels['day'] = 'den';
+$labels['date'] = 'datum (rrrr-mm-dd)';
+$labels['julian'] = 'datum (juliánské)';
+$labels['hour'] = 'hodina';
+$labels['minute'] = 'minuta';
+$labels['second'] = 'sekunda';
+$labels['time'] = 'čas (hh:mm:ss)';
+$labels['iso8601'] = 'datum (ISO8601)';
+$labels['std11'] = 'datum (RFC2822)';
+$labels['zone'] = 'časová zóna';
+$labels['weekday'] = 'všední den (0-6)';
$labels['advancedopts'] = 'Pokročilá nastavení';
$labels['body'] = 'Tělo';
$labels['address'] = 'adresa';
@@ -140,6 +157,8 @@ $labels['default'] = 'výchozí';
$labels['octet'] = 'striktní (oktet)';
$labels['asciicasemap'] = 'necitlivé na velikost písmen (ascii-casemap)';
$labels['asciinumeric'] = 'číslené (ascii-numeric)';
+$labels['index'] = 'index:';
+$labels['indexlast'] = 'pozpátku';
$messages = array();
$messages['filterunknownerror'] = 'Neznámá chyba serveru';
@@ -173,5 +192,6 @@ $messages['nametoolong'] = 'Příliš dlouhý název.';
$messages['namereserved'] = 'Vyhrazený název.';
$messages['setexist'] = 'Sada již existuje.';
$messages['nodata'] = 'Musí být vybrána minimálně jedna pozice!';
+$messages['invaliddateformat'] = 'Neplatné datum nebo část data';
?>
diff --git a/plugins/managesieve/localization/fi_FI.inc b/plugins/managesieve/localization/fi_FI.inc
index f006f6d23..67c819106 100644
--- a/plugins/managesieve/localization/fi_FI.inc
+++ b/plugins/managesieve/localization/fi_FI.inc
@@ -49,6 +49,7 @@ $labels['messagesendcopy'] = 'Send message copy to';
$labels['messagereply'] = 'Reply with message';
$labels['messagedelete'] = 'Delete message';
$labels['messagediscard'] = 'Discard with message';
+$labels['messagekeep'] = 'Keep message in Inbox';
$labels['messagesrules'] = 'For incoming mail:';
$labels['messagesactions'] = '...execute the following actions:';
$labels['add'] = 'Lisää';
@@ -83,13 +84,13 @@ $labels['countisgreaterthanequal'] = 'count is greater than or equal to';
$labels['countislessthan'] = 'count is less than';
$labels['countislessthanequal'] = 'count is less than or equal to';
$labels['countequals'] = 'count is equal to';
-$labels['countnotequals'] = 'count does not equal';
+$labels['countnotequals'] = 'count is not equal to';
$labels['valueisgreaterthan'] = 'value is greater than';
$labels['valueisgreaterthanequal'] = 'value is greater than or equal to';
$labels['valueislessthan'] = 'value is less than';
$labels['valueislessthanequal'] = 'value is less than or equal to';
$labels['valueequals'] = 'value is equal to';
-$labels['valuenotequals'] = 'value does not equal';
+$labels['valuenotequals'] = 'value is not equal to';
$labels['setflags'] = 'Aseta liput viestiin';
$labels['addflags'] = 'Lisää liput viestiin';
$labels['removeflags'] = 'Poista liput viestistä';
@@ -121,6 +122,22 @@ $labels['filtercreate'] = 'Luo suodatin';
$labels['usedata'] = 'Use following data in the filter:';
$labels['nextstep'] = 'Next Step';
$labels['...'] = '...';
+$labels['currdate'] = 'Current date';
+$labels['datetest'] = 'Date';
+$labels['dateheader'] = 'header:';
+$labels['year'] = 'year';
+$labels['month'] = 'month';
+$labels['day'] = 'day';
+$labels['date'] = 'date (yyyy-mm-dd)';
+$labels['julian'] = 'date (julian)';
+$labels['hour'] = 'hour';
+$labels['minute'] = 'minute';
+$labels['second'] = 'second';
+$labels['time'] = 'time (hh:mm:ss)';
+$labels['iso8601'] = 'date (ISO8601)';
+$labels['std11'] = 'date (RFC2822)';
+$labels['zone'] = 'time-zone';
+$labels['weekday'] = 'weekday (0-6)';
$labels['advancedopts'] = 'Lisävalinnat';
$labels['body'] = 'Body';
$labels['address'] = 'address';
@@ -140,6 +157,8 @@ $labels['default'] = 'oletus';
$labels['octet'] = 'strict (octet)';
$labels['asciicasemap'] = 'case insensitive (ascii-casemap)';
$labels['asciinumeric'] = 'numeric (ascii-numeric)';
+$labels['index'] = 'index:';
+$labels['indexlast'] = 'backwards';
$messages = array();
$messages['filterunknownerror'] = 'Tuntematon palvelinvirhe.';
@@ -173,5 +192,6 @@ $messages['nametoolong'] = 'Nimi on liian pitkä.';
$messages['namereserved'] = 'Reserved name.';
$messages['setexist'] = 'Set already exists.';
$messages['nodata'] = 'At least one position must be selected!';
+$messages['invaliddateformat'] = 'Invalid date or date part format';
?>
diff --git a/plugins/managesieve/localization/fr_FR.inc b/plugins/managesieve/localization/fr_FR.inc
index 821f9caab..3defe9f12 100644
--- a/plugins/managesieve/localization/fr_FR.inc
+++ b/plugins/managesieve/localization/fr_FR.inc
@@ -49,6 +49,7 @@ $labels['messagesendcopy'] = 'Envoyer une copie du message à';
$labels['messagereply'] = 'Répondre avec le message';
$labels['messagedelete'] = 'Supprimer le message';
$labels['messagediscard'] = 'Rejeter avec le message';
+$labels['messagekeep'] = 'Conserver le message dans la boîte de réception';
$labels['messagesrules'] = 'Pour les courriels entrants :';
$labels['messagesactions'] = '...exécuter les actions suivantes:';
$labels['add'] = 'Ajouter';
diff --git a/plugins/managesieve/localization/hr_HR.inc b/plugins/managesieve/localization/hr_HR.inc
index 64b9bef62..77b664b5f 100644
--- a/plugins/managesieve/localization/hr_HR.inc
+++ b/plugins/managesieve/localization/hr_HR.inc
@@ -49,13 +49,14 @@ $labels['messagesendcopy'] = 'Pošalji kopiju poruke na';
$labels['messagereply'] = 'Odgovori sa porukom';
$labels['messagedelete'] = 'Obriši poruku';
$labels['messagediscard'] = 'Otkaži sa porukom';
+$labels['messagekeep'] = 'Keep message in Inbox';
$labels['messagesrules'] = 'Za pristigle poruke:';
$labels['messagesactions'] = '...primijeni sljedeće akcije:';
$labels['add'] = 'Dodaj';
$labels['del'] = 'Obriši';
$labels['sender'] = 'Pošiljatelj';
$labels['recipient'] = 'Primatelj';
-$labels['vacationaddresses'] = 'Dodatna lista primatelja (odvojenih zarezom):';
+$labels['vacationaddr'] = 'My additional e-mail addresse(s):';
$labels['vacationdays'] = 'Koliko često slati poruku (u danima):';
$labels['vacationinterval'] = 'How often send messages:';
$labels['days'] = 'days';
@@ -83,13 +84,13 @@ $labels['countisgreaterthanequal'] = 'brojač je veći ili jednak od';
$labels['countislessthan'] = 'brojač je manji od';
$labels['countislessthanequal'] = 'brojač je manji ili jednak od';
$labels['countequals'] = 'brojač je jednak';
-$labels['countnotequals'] = 'brojač nije jednak';
+$labels['countnotequals'] = 'count is not equal to';
$labels['valueisgreaterthan'] = 'vrijednost je veća od';
$labels['valueisgreaterthanequal'] = 'vrijednost je veća ili jednaka od';
$labels['valueislessthan'] = 'vrijednost je manja od';
$labels['valueislessthanequal'] = 'vrijednost je manja ili jednaka od';
$labels['valueequals'] = 'vrijednost je jednaka';
-$labels['valuenotequals'] = 'vrijednost nije jednaka';
+$labels['valuenotequals'] = 'value is not equal to';
$labels['setflags'] = 'Postavi oznake na poruku';
$labels['addflags'] = 'Dodaj oznake na poruku';
$labels['removeflags'] = 'Ukloni oznake sa poruke';
@@ -121,6 +122,22 @@ $labels['filtercreate'] = 'Stvori filter';
$labels['usedata'] = 'Koristi podatke za filter:';
$labels['nextstep'] = 'Idući korak';
$labels['...'] = '…';
+$labels['currdate'] = 'Current date';
+$labels['datetest'] = 'Date';
+$labels['dateheader'] = 'header:';
+$labels['year'] = 'year';
+$labels['month'] = 'month';
+$labels['day'] = 'day';
+$labels['date'] = 'date (yyyy-mm-dd)';
+$labels['julian'] = 'date (julian)';
+$labels['hour'] = 'hour';
+$labels['minute'] = 'minute';
+$labels['second'] = 'second';
+$labels['time'] = 'time (hh:mm:ss)';
+$labels['iso8601'] = 'date (ISO8601)';
+$labels['std11'] = 'date (RFC2822)';
+$labels['zone'] = 'time-zone';
+$labels['weekday'] = 'weekday (0-6)';
$labels['advancedopts'] = 'Napredne postavke';
$labels['body'] = 'Tijelo poruke';
$labels['address'] = 'adresa';
@@ -140,6 +157,8 @@ $labels['default'] = 'preddefinirano';
$labels['octet'] = 'strogo (oktet)';
$labels['asciicasemap'] = 'neosjetljivo na veličinu slova (ascii-casemap)';
$labels['asciinumeric'] = 'numerički (ascii-numeric)';
+$labels['index'] = 'index:';
+$labels['indexlast'] = 'backwards';
$messages = array();
$messages['filterunknownerror'] = 'Nepoznata greška na poslužitelju';
@@ -173,5 +192,6 @@ $messages['nametoolong'] = 'Nemoguće napraviti grupu filtera. Naziv je preduga
$messages['namereserved'] = 'Rezervirano ime.';
$messages['setexist'] = 'Skup već postoji.';
$messages['nodata'] = 'Barem jedan pozicija mora biti odabrana!';
+$messages['invaliddateformat'] = 'Invalid date or date part format';
?>
diff --git a/plugins/managesieve/localization/it_IT.inc b/plugins/managesieve/localization/it_IT.inc
index b54c46d9a..9fc7dc570 100644
--- a/plugins/managesieve/localization/it_IT.inc
+++ b/plugins/managesieve/localization/it_IT.inc
@@ -49,17 +49,18 @@ $labels['messagesendcopy'] = 'Invia copia a';
$labels['messagereply'] = 'Rispondi con il messaggio';
$labels['messagedelete'] = 'Elimina il messaggio';
$labels['messagediscard'] = 'Rifiuta con messaggio';
+$labels['messagekeep'] = 'Mantieni il messaggio in Posta ricevuta';
$labels['messagesrules'] = 'Per la posta in arrivo';
$labels['messagesactions'] = '...esegui le seguenti azioni:';
$labels['add'] = 'Aggiungi';
$labels['del'] = 'Elimina';
$labels['sender'] = 'Mittente';
$labels['recipient'] = 'Destinatario';
-$labels['vacationaddr'] = 'Lista di indirizzi e-mail di destinatari addizionali:';
+$labels['vacationaddr'] = 'Account email aggiuntivo(i):';
$labels['vacationdays'] = 'Ogni quanti giorni ribadire il messaggio allo stesso mittente';
-$labels['vacationinterval'] = 'How often send messages:';
-$labels['days'] = 'days';
-$labels['seconds'] = 'seconds';
+$labels['vacationinterval'] = 'Ogni quanto tempo inviare i messaggi:';
+$labels['days'] = 'giorni';
+$labels['seconds'] = 'secondi';
$labels['vacationreason'] = 'Corpo del messaggio (dettagli relativi all\'assenza):';
$labels['vacationsubject'] = 'Oggetto del messaggio';
$labels['rulestop'] = 'Non valutare le regole successive';
@@ -83,13 +84,13 @@ $labels['countisgreaterthanequal'] = 'somma maggiore uguale a';
$labels['countislessthan'] = 'somma minore di';
$labels['countislessthanequal'] = 'somma minore o uguale a';
$labels['countequals'] = 'somma uguale a';
-$labels['countnotequals'] = 'somma diversa da';
+$labels['countnotequals'] = 'il conteggio non è uguale a';
$labels['valueisgreaterthan'] = 'valore maggiore di';
$labels['valueisgreaterthanequal'] = 'valore maggiore uguale a';
$labels['valueislessthan'] = 'valore minore di';
$labels['valueislessthanequal'] = 'valore minore uguale di';
$labels['valueequals'] = 'valore uguale a';
-$labels['valuenotequals'] = 'valore diverso da';
+$labels['valuenotequals'] = 'il valore non è uguale a';
$labels['setflags'] = 'Contrassegna il messaggio';
$labels['addflags'] = 'aggiungi flag al messaggio';
$labels['removeflags'] = 'togli flag dal messaggio';
@@ -121,6 +122,22 @@ $labels['filtercreate'] = 'Crea filtro';
$labels['usedata'] = 'utilizza i seguenti dati nel filtro';
$labels['nextstep'] = 'passo successivo';
$labels['...'] = '...';
+$labels['currdate'] = 'Data attuale';
+$labels['datetest'] = 'Data';
+$labels['dateheader'] = 'intestazione:';
+$labels['year'] = 'anno';
+$labels['month'] = 'mese';
+$labels['day'] = 'giorno';
+$labels['date'] = 'data (aaaa-mm-gg)';
+$labels['julian'] = 'data (Giuliana)';
+$labels['hour'] = 'ora';
+$labels['minute'] = 'minuto';
+$labels['second'] = 'secondo';
+$labels['time'] = 'tempo (hh:mm:ss)';
+$labels['iso8601'] = 'data (ISO8601)';
+$labels['std11'] = 'data (RFC2822)';
+$labels['zone'] = 'fuso orario';
+$labels['weekday'] = 'giorno della settimana (0-6)';
$labels['advancedopts'] = 'Opzioni avanzate';
$labels['body'] = 'Corpo';
$labels['address'] = 'indirizzo';
@@ -140,6 +157,8 @@ $labels['default'] = 'predefinito';
$labels['octet'] = 'strict (octet)';
$labels['asciicasemap'] = 'non differenziare maiuscole/minuscole (ascii-casemap)';
$labels['asciinumeric'] = 'numerico';
+$labels['index'] = 'indice:';
+$labels['indexlast'] = 'indietro';
$messages = array();
$messages['filterunknownerror'] = 'Errore sconosciuto del server';
@@ -173,5 +192,6 @@ $messages['nametoolong'] = 'Impossibile creare il gruppo: Nome troppo lungo';
$messages['namereserved'] = 'nome riservato';
$messages['setexist'] = 'Il gruppo esiste già';
$messages['nodata'] = 'selezionare almeno una posizione';
+$messages['invaliddateformat'] = 'Formato della data non valido';
?>
diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js
index 5201284fa..156bce6f0 100644
--- a/plugins/managesieve/managesieve.js
+++ b/plugins/managesieve/managesieve.js
@@ -660,7 +660,6 @@ function rule_adv_switch(id, elem)
function action_type_select(id)
{
-console.log(id);
var obj = document.getElementById('action_type' + id),
v = obj.value, enabled = {},
elems = {
diff --git a/plugins/markasjunk/localization/ru_RU.inc b/plugins/markasjunk/localization/ru_RU.inc
index cbf99d253..d2b6abd40 100644
--- a/plugins/markasjunk/localization/ru_RU.inc
+++ b/plugins/markasjunk/localization/ru_RU.inc
@@ -18,7 +18,7 @@
$labels = array();
$labels['buttontext'] = 'СПАМ';
-$labels['buttontitle'] = 'Переместить в "СПАМ';
-$labels['reportedasjunk'] = 'Перемещено в "СПАМ';
+$labels['buttontitle'] = 'Переместить в СПАМ';
+$labels['reportedasjunk'] = 'Перемещено в СПАМ';
?> \ No newline at end of file
diff --git a/plugins/markasjunk/markasjunk.php b/plugins/markasjunk/markasjunk.php
index 76b14c140..4448b506c 100644
--- a/plugins/markasjunk/markasjunk.php
+++ b/plugins/markasjunk/markasjunk.php
@@ -19,6 +19,7 @@ class markasjunk extends rcube_plugin
$rcmail = rcmail::get_instance();
$this->register_action('plugin.markasjunk', array($this, 'request_action'));
+ $this->add_hook('storage_init', array($this, 'storage_init'));
if ($rcmail->action == '' || $rcmail->action == 'show') {
$skin_path = $this->local_skin_path();
@@ -38,24 +39,36 @@ class markasjunk extends rcube_plugin
}
}
+ function storage_init($args)
+ {
+ $flags = array(
+ 'JUNK' => 'Junk',
+ 'NONJUNK' => 'NonJunk',
+ );
+
+ // register message flags
+ $args['message_flags'] = array_merge((array)$args['message_flags'], $flags);
+
+ return $args;
+ }
+
function request_action()
{
$this->add_texts('localization');
- $GLOBALS['IMAP_FLAGS']['JUNK'] = 'Junk';
- $GLOBALS['IMAP_FLAGS']['NONJUNK'] = 'NonJunk';
-
$uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST);
$mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST);
-
- $rcmail = rcmail::get_instance();
- $rcmail->storage->unset_flag($uids, 'NONJUNK');
- $rcmail->storage->set_flag($uids, 'JUNK');
-
+
+ $rcmail = rcmail::get_instance();
+ $storage = $rcmail->get_storage();
+
+ $storage->unset_flag($uids, 'NONJUNK');
+ $storage->set_flag($uids, 'JUNK');
+
if (($junk_mbox = $rcmail->config->get('junk_mbox')) && $mbox != $junk_mbox) {
$rcmail->output->command('move_messages', $junk_mbox);
}
-
+
$rcmail->output->command('display_message', $this->gettext('reportedasjunk'), 'confirmation');
$rcmail->output->send();
}
diff --git a/plugins/markasjunk/package.xml b/plugins/markasjunk/package.xml
index a5b4bf92c..95597481a 100644
--- a/plugins/markasjunk/package.xml
+++ b/plugins/markasjunk/package.xml
@@ -13,11 +13,10 @@
<email>roundcube@gmail.com</email>
<active>yes</active>
</lead>
- <date>2010-03-29</date>
- <time>13:20:00</time>
+ <date>2013-08-29</date>
<version>
- <release>1.1</release>
- <api>1.1</api>
+ <release>1.2</release>
+ <api>1.2</api>
</version>
<stability>
<release>stable</release>
diff --git a/plugins/new_user_identity/new_user_identity.php b/plugins/new_user_identity/new_user_identity.php
index bb0821a53..3943134b2 100644
--- a/plugins/new_user_identity/new_user_identity.php
+++ b/plugins/new_user_identity/new_user_identity.php
@@ -14,12 +14,12 @@
*
* // The id of the address book to use to automatically set a new
* // user's full name in their new identity. (This should be an
- * // string, which refers to the $rcmail_config['ldap_public'] array.)
- * $rcmail_config['new_user_identity_addressbook'] = 'People';
+ * // string, which refers to the $config['ldap_public'] array.)
+ * $config['new_user_identity_addressbook'] = 'People';
*
* // When automatically setting a new users's full name in their
* // new identity, match the user's login name against this field.
- * $rcmail_config['new_user_identity_match'] = 'uid';
+ * $config['new_user_identity_match'] = 'uid';
*/
class new_user_identity extends rcube_plugin
{
diff --git a/plugins/newmail_notifier/config.inc.php.dist b/plugins/newmail_notifier/config.inc.php.dist
index 067fe19f1..cdb563c40 100644
--- a/plugins/newmail_notifier/config.inc.php.dist
+++ b/plugins/newmail_notifier/config.inc.php.dist
@@ -1,12 +1,12 @@
<?php
// Enables basic notification
-$rcmail_config['newmail_notifier_basic'] = false;
+$config['newmail_notifier_basic'] = false;
// Enables sound notification
-$rcmail_config['newmail_notifier_sound'] = false;
+$config['newmail_notifier_sound'] = false;
// Enables desktop notification
-$rcmail_config['newmail_notifier_desktop'] = false;
+$config['newmail_notifier_desktop'] = false;
?>
diff --git a/plugins/newmail_notifier/newmail_notifier.js b/plugins/newmail_notifier/newmail_notifier.js
index c398424b6..b00f33d10 100644
--- a/plugins/newmail_notifier/newmail_notifier.js
+++ b/plugins/newmail_notifier/newmail_notifier.js
@@ -30,9 +30,9 @@ function newmail_notifier_run(prop)
function newmail_notifier_stop(prop)
{
// revert original favicon
- if (rcmail.env.favicon_href && (!prop || prop.action != 'check-recent')) {
+ if (rcmail.env.favicon_href && rcmail.env.favicon_changed && (!prop || prop.action != 'check-recent')) {
$('<link rel="shortcut icon" href="'+rcmail.env.favicon_href+'"/>').replaceAll('link[rel="shortcut icon"]');
- rcmail.env.favicon_href = null;
+ rcmail.env.favicon_changed = 0;
}
// Remove IE icon overlay if we're pinned to Taskbar
@@ -54,7 +54,10 @@ function newmail_notifier_basic()
var link = $('<link rel="shortcut icon" href="plugins/newmail_notifier/favicon.ico"/>'),
oldlink = $('link[rel="shortcut icon"]', w.document);
- rcmail.env.favicon_href = oldlink.attr('href');
+ if (!rcmail.env.favicon_href)
+ rcmail.env.favicon_href = oldlink.attr('href');
+
+ rcmail.env.favicon_changed = 1;
link.replaceAll(oldlink);
// Add IE icon overlay if we're pinned to Taskbar
diff --git a/plugins/password/README b/plugins/password/README
index af70156a6..262ebfd86 100644
--- a/plugins/password/README
+++ b/plugins/password/README
@@ -42,6 +42,7 @@
2.16. DBMail (dbmail)
2.17. Expect (expect)
2.18. Samba (smb)
+ 2.19. Vpopmail daemon (vpopmaild)
3. Driver API
@@ -246,7 +247,7 @@
This driver is fully compatible with the ldap driver, but
does not require (or uses) the
- $rcmail_config['password_ldap_force_replace'] variable.
+ $config['password_ldap_force_replace'] variable.
Other advantages:
* Connects only once with the LDAP server when using the search user.
* Does not read the DN, but only replaces the password within (that is
@@ -299,6 +300,16 @@
Driver to change Samba user password via the 'smbpasswd' command.
See config.inc.php.dist file for configuration description.
+ 2.19. Vpopmail daemon (vpopmaild)
+ -----------------------------------
+
+ Driver for the daemon of vpopmail. Vpopmail is used with qmail to
+ enable virtual users that are saved in a database and not in /etc/passwd.
+
+ Set $config['password_vpopmaild_host'] to the host where vpopmaild runs.
+
+ Set $config['password_vpopmaild_port'] to the port of vpopmaild.
+
3. Driver API
-------------
diff --git a/plugins/password/config.inc.php.dist b/plugins/password/config.inc.php.dist
index 9256829aa..82f6617e5 100644
--- a/plugins/password/config.inc.php.dist
+++ b/plugins/password/config.inc.php.dist
@@ -4,43 +4,43 @@
// -----------------------
// A driver to use for password change. Default: "sql".
// See README file for list of supported driver names.
-$rcmail_config['password_driver'] = 'sql';
+$config['password_driver'] = 'sql';
// Determine whether current password is required to change password.
// Default: false.
-$rcmail_config['password_confirm_current'] = true;
+$config['password_confirm_current'] = true;
// Require the new password to be a certain length.
// set to blank to allow passwords of any length
-$rcmail_config['password_minimum_length'] = 0;
+$config['password_minimum_length'] = 0;
// Require the new password to contain a letter and punctuation character
// Change to false to remove this check.
-$rcmail_config['password_require_nonalpha'] = false;
+$config['password_require_nonalpha'] = false;
// Enables logging of password changes into logs/password
-$rcmail_config['password_log'] = false;
+$config['password_log'] = false;
// Comma-separated list of login exceptions for which password change
// will be not available (no Password tab in Settings)
-$rcmail_config['password_login_exceptions'] = null;
+$config['password_login_exceptions'] = null;
// Array of hosts that support password changing. Default is NULL.
// Listed hosts will feature a Password option in Settings; others will not.
// Example:
-//$rcmail_config['password_hosts'] = array('mail.example.com', 'mail2.example.org');
-$rcmail_config['password_hosts'] = null;
+//$config['password_hosts'] = array('mail.example.com', 'mail2.example.org');
+$config['password_hosts'] = null;
// Enables saving the new password even if it matches the old password. Useful
// for upgrading the stored passwords after the encryption scheme has changed.
-$rcmail_config['password_force_save'] = false;
+$config['password_force_save'] = false;
// SQL Driver options
// ------------------
// PEAR database DSN for performing the query. By default
// Roundcube DB settings are used.
-$rcmail_config['password_db_dsn'] = '';
+$config['password_db_dsn'] = '';
// The SQL query used to change the password.
// The query can contain the following macros that will be expanded as follows:
@@ -60,52 +60,52 @@ $rcmail_config['password_db_dsn'] = '';
// (in case the username is an email address)
// Escaping of macros is handled by this module.
// Default: "SELECT update_passwd(%c, %u)"
-$rcmail_config['password_query'] = 'SELECT update_passwd(%c, %u)';
+$config['password_query'] = 'SELECT update_passwd(%c, %u)';
// By default the crypt() function which is used to create the '%c'
// parameter uses the md5 algorithm. To use different algorithms
// you can choose between: des, md5, blowfish, sha256, sha512.
// Before using other hash functions than des or md5 please make sure
// your operating system supports the other hash functions.
-$rcmail_config['password_crypt_hash'] = 'md5';
+$config['password_crypt_hash'] = 'md5';
// By default domains in variables are using unicode.
// Enable this option to use punycoded names
-$rcmail_config['password_idn_ascii'] = false;
+$config['password_idn_ascii'] = false;
// Path for dovecotpw (if not in $PATH)
-// $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
+// $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
// Dovecot method (dovecotpw -s 'method')
-$rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5';
+$config['password_dovecotpw_method'] = 'CRAM-MD5';
// Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
-$rcmail_config['password_dovecotpw_with_method'] = false;
+$config['password_dovecotpw_with_method'] = false;
// Using a password hash for %n and %q variables.
// Determine which hashing algorithm should be used to generate
// the hashed new and current password for using them within the
// SQL query. Requires PHP's 'hash' extension.
-$rcmail_config['password_hash_algorithm'] = 'sha1';
+$config['password_hash_algorithm'] = 'sha1';
// You can also decide whether the hash should be provided
// as hex string or in base64 encoded format.
-$rcmail_config['password_hash_base64'] = false;
+$config['password_hash_base64'] = false;
// Poppassd Driver options
// -----------------------
// The host which changes the password
-$rcmail_config['password_pop_host'] = 'localhost';
+$config['password_pop_host'] = 'localhost';
// TCP port used for poppassd connections
-$rcmail_config['password_pop_port'] = 106;
+$config['password_pop_port'] = 106;
// SASL Driver options
// -------------------
// Additional arguments for the saslpasswd2 call
-$rcmail_config['password_saslpasswd_args'] = '';
+$config['password_saslpasswd_args'] = '';
// LDAP and LDAP_SIMPLE Driver options
@@ -114,41 +114,41 @@ $rcmail_config['password_saslpasswd_args'] = '';
// You can provide one or several hosts in an array in which case the hosts are tried from left to right.
// Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com');
// Default: 'localhost'
-$rcmail_config['password_ldap_host'] = 'localhost';
+$config['password_ldap_host'] = 'localhost';
// LDAP server port to connect to
// Default: '389'
-$rcmail_config['password_ldap_port'] = '389';
+$config['password_ldap_port'] = '389';
// TLS is started after connecting
// Using TLS for password modification is recommanded.
// Default: false
-$rcmail_config['password_ldap_starttls'] = false;
+$config['password_ldap_starttls'] = false;
// LDAP version
// Default: '3'
-$rcmail_config['password_ldap_version'] = '3';
+$config['password_ldap_version'] = '3';
// LDAP base name (root directory)
// Exemple: 'dc=exemple,dc=com'
-$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com';
+$config['password_ldap_basedn'] = 'dc=exemple,dc=com';
// LDAP connection method
// There is two connection method for changing a user's LDAP password.
// 'user': use user credential (recommanded, require password_confirm_current=true)
// 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
// Default: 'user'
-$rcmail_config['password_ldap_method'] = 'user';
+$config['password_ldap_method'] = 'user';
// LDAP Admin DN
// Used only in admin connection mode
// Default: null
-$rcmail_config['password_ldap_adminDN'] = null;
+$config['password_ldap_adminDN'] = null;
// LDAP Admin Password
// Used only in admin connection mode
// Default: null
-$rcmail_config['password_ldap_adminPW'] = null;
+$config['password_ldap_adminPW'] = null;
// LDAP user DN mask
// The user's DN is mandatory and as we only have his login,
@@ -158,7 +158,7 @@ $rcmail_config['password_ldap_adminPW'] = null;
// '%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';
+$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
// LDAP search DN
// The DN roundcube should bind with to find out user's DN
@@ -169,7 +169,7 @@ $rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,d
// users login to find his DN instead. A common reason might be that
// your users are placed under different ou's like engineering or
// sales which cannot be derived from their login only.
-$rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
+$config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
// LDAP search password
// If password_ldap_searchDN is set, the password to use for
@@ -179,13 +179,13 @@ $rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,
// is only accesible to roundcube and don't forget to restrict roundcube's access to
// your directory as much as possible using ACLs. Should this password be compromised
// you want to minimize the damage.
-$rcmail_config['password_ldap_searchPW'] = 'secret';
+$config['password_ldap_searchPW'] = 'secret';
// LDAP search base
// If password_ldap_searchDN is set, the base to search in using the filter below.
// Note that you should comment out the default password_ldap_userDN_mask setting
// for this to take effect.
-$rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
+$config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
// LDAP search filter
// If password_ldap_searchDN is set, the filter to use when
@@ -197,7 +197,7 @@ $rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
// '%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)';
+$config['password_ldap_search_filter'] = '(uid=%login)';
// LDAP password hash type
// Standard LDAP encryption type which must be one of: crypt,
@@ -205,34 +205,34 @@ $rcmail_config['password_ldap_search_filter'] = '(uid=%login)';
// Please note that most encodage types require external libraries
// to be included in your PHP installation, see function hashPassword in drivers/ldap.php for more info.
// Default: 'crypt'
-$rcmail_config['password_ldap_encodage'] = 'crypt';
+$config['password_ldap_encodage'] = 'crypt';
// LDAP password attribute
// Name of the ldap's attribute used for storing user password
// Default: 'userPassword'
-$rcmail_config['password_ldap_pwattr'] = 'userPassword';
+$config['password_ldap_pwattr'] = 'userPassword';
// LDAP password force replace
// Force LDAP replace in cases where ACL allows only replace not read
// See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
// Default: true
-$rcmail_config['password_ldap_force_replace'] = true;
+$config['password_ldap_force_replace'] = true;
// LDAP Password Last Change Date
// Some places use an attribute to store the date of the last password change
// The date is meassured in "days since epoch" (an integer value)
// Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange)
-$rcmail_config['password_ldap_lchattr'] = '';
+$config['password_ldap_lchattr'] = '';
// LDAP Samba password attribute, e.g. sambaNTPassword
// Name of the LDAP's Samba attribute used for storing user password
-$rcmail_config['password_ldap_samba_pwattr'] = '';
+$config['password_ldap_samba_pwattr'] = '';
// LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet
// Some places use an attribute to store the date of the last password change
// The date is meassured in "seconds since epoch" (an integer value)
// Whenever the password is changed, the attribute will be updated if set
-$rcmail_config['password_ldap_samba_lchattr'] = '';
+$config['password_ldap_samba_lchattr'] = '';
// DirectAdmin Driver options
@@ -242,57 +242,57 @@ $rcmail_config['password_ldap_samba_lchattr'] = '';
// The host can contain the following macros that will be expanded as follows:
// %h is replaced with the imap host (from the session info)
// %d is replaced with the domain part of the username (if the username is an email)
-$rcmail_config['password_directadmin_host'] = 'tcp://localhost';
+$config['password_directadmin_host'] = 'tcp://localhost';
// TCP port used for DirectAdmin connections
-$rcmail_config['password_directadmin_port'] = 2222;
+$config['password_directadmin_port'] = 2222;
// vpopmaild Driver options
// -----------------------
// The host which changes the password
-$rcmail_config['password_vpopmaild_host'] = 'localhost';
+$config['password_vpopmaild_host'] = 'localhost';
// TCP port used for vpopmaild connections
-$rcmail_config['password_vpopmaild_port'] = 89;
+$config['password_vpopmaild_port'] = 89;
// cPanel Driver options
// --------------------------
// The cPanel Host name
-$rcmail_config['password_cpanel_host'] = 'host.domain.com';
+$config['password_cpanel_host'] = 'host.domain.com';
// The cPanel admin username
-$rcmail_config['password_cpanel_username'] = 'username';
+$config['password_cpanel_username'] = 'username';
// The cPanel admin password
-$rcmail_config['password_cpanel_password'] = 'password';
+$config['password_cpanel_password'] = 'password';
// The cPanel port to use
-$rcmail_config['password_cpanel_port'] = 2087;
+$config['password_cpanel_port'] = 2087;
// XIMSS (Communigate server) Driver options
// -----------------------------------------
// Host name of the Communigate server
-$rcmail_config['password_ximss_host'] = 'mail.example.com';
+$config['password_ximss_host'] = 'mail.example.com';
// XIMSS port on Communigate server
-$rcmail_config['password_ximss_port'] = 11024;
+$config['password_ximss_port'] = 11024;
// chpasswd Driver options
// ---------------------
// Command to use
-$rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null';
+$config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null';
// XMail Driver options
// ---------------------
-$rcmail_config['xmail_host'] = 'localhost';
-$rcmail_config['xmail_user'] = 'YourXmailControlUser';
-$rcmail_config['xmail_pass'] = 'YourXmailControlPass';
-$rcmail_config['xmail_port'] = 6017;
+$config['xmail_host'] = 'localhost';
+$config['xmail_user'] = 'YourXmailControlUser';
+$config['xmail_pass'] = 'YourXmailControlPass';
+$config['xmail_port'] = 6017;
// hMail Driver options
@@ -300,9 +300,9 @@ $rcmail_config['xmail_port'] = 6017;
// Remote hMailServer configuration
// true: HMailserver is on a remote box (php.ini: com.allow_dcom = true)
// false: Hmailserver is on same box as PHP
-$rcmail_config['hmailserver_remote_dcom'] = false;
+$config['hmailserver_remote_dcom'] = false;
// Windows credentials
-$rcmail_config['hmailserver_server'] = array(
+$config['hmailserver_server'] = array(
'Server' => 'localhost', // hostname or ip address
'Username' => 'administrator', // windows username
'Password' => 'password' // windows user password
@@ -321,7 +321,7 @@ $rcmail_config['hmailserver_server'] = array(
// 6: username_domain
// 7: domain_username
// 8: username@domain; mbox.username
-$rcmail_config['password_virtualmin_format'] = 8;
+$config['password_virtualmin_format'] = 8;
// pw_usermod Driver options
@@ -329,27 +329,27 @@ $rcmail_config['password_virtualmin_format'] = 8;
// Use comma delimited exlist to disable password change for users
// Add the following line to visudo to tighten security:
// www ALL=NOPASSWORD: /usr/sbin/pw
-$rcmail_config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n';
+$config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n';
// DBMail Driver options
// -------------------
// Additional arguments for the dbmail-users call
-$rcmail_config['password_dbmail_args'] = '-p sha512';
+$config['password_dbmail_args'] = '-p sha512';
// Expect Driver options
// ---------------------
// Location of expect binary
-$rcmail_config['password_expect_bin'] = '/usr/bin/expect';
+$config['password_expect_bin'] = '/usr/bin/expect';
// Location of expect script (see helpers/passwd-expect)
-$rcmail_config['password_expect_script'] = '';
+$config['password_expect_script'] = '';
// Arguments for the expect script. See the helpers/passwd-expect file for details.
// This is probably a good starting default:
// -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
-$rcmail_config['password_expect_params'] = '';
+$config['password_expect_params'] = '';
// smb Driver options
@@ -359,6 +359,6 @@ $rcmail_config['password_expect_params'] = '';
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
-$rcmail_config['password_smb_host'] = 'localhost';
+$config['password_smb_host'] = 'localhost';
// Location of smbpasswd binary
-$rcmail_config['password_smb_cmd'] = '/usr/bin/smbpasswd';
+$config['password_smb_cmd'] = '/usr/bin/smbpasswd';
diff --git a/plugins/password/drivers/hmail.php b/plugins/password/drivers/hmail.php
index a8f07a23b..650434617 100644
--- a/plugins/password/drivers/hmail.php
+++ b/plugins/password/drivers/hmail.php
@@ -5,7 +5,6 @@
*
* @version 2.0
* @author Roland 'rosali' Liebl <myroundcube@mail4us.net>
- *
*/
class rcube_hmail_password
@@ -39,8 +38,7 @@ class rcube_hmail_password
else {
$domain = $rcmail->config->get('username_domain',false);
if (!$domain) {
- rcube::write_log('errors','Plugin password (hmail driver): $rcmail_config[\'username_domain\'] is not defined.');
- rcube::write_log('errors','Plugin password (hmail driver): Hint: Use hmail_login plugin (http://myroundcube.googlecode.com');
+ rcube::write_log('errors','Plugin password (hmail driver): $config[\'username_domain\'] is not defined.');
return PASSWORD_ERROR;
}
$username = $username . "@" . $domain;
diff --git a/plugins/password/drivers/xmail.php b/plugins/password/drivers/xmail.php
index 59e467c5b..47beb2178 100644
--- a/plugins/password/drivers/xmail.php
+++ b/plugins/password/drivers/xmail.php
@@ -10,10 +10,10 @@
* Setup xmail_host, xmail_user, xmail_pass and xmail_port into
* config.inc.php of password plugin as follows:
*
- * $rcmail_config['xmail_host'] = 'localhost';
- * $rcmail_config['xmail_user'] = 'YourXmailControlUser';
- * $rcmail_config['xmail_pass'] = 'YourXmailControlPass';
- * $rcmail_config['xmail_port'] = 6017;
+ * $config['xmail_host'] = 'localhost';
+ * $config['xmail_user'] = 'YourXmailControlUser';
+ * $config['xmail_pass'] = 'YourXmailControlPass';
+ * $config['xmail_port'] = 6017;
*
*/
diff --git a/plugins/password/localization/ru_RU.inc b/plugins/password/localization/ru_RU.inc
index 79fbfedf6..2517f922b 100644
--- a/plugins/password/localization/ru_RU.inc
+++ b/plugins/password/localization/ru_RU.inc
@@ -26,11 +26,11 @@ $messages = array();
$messages['nopassword'] = 'Пожалуйста, введите новый пароль.';
$messages['nocurpassword'] = 'Пожалуйста, введите текущий пароль.';
$messages['passwordincorrect'] = 'Текущий пароль неверен.';
-$messages['passwordinconsistency'] = 'Пароли не совпадают, попробуйте, пожалуйста, ещё.';
+$messages['passwordinconsistency'] = 'Пароли не совпадают, попробуйте ещё раз, пожалуйста.';
$messages['crypterror'] = 'Не могу сохранить новый пароль. Отсутствует криптографическая функция.';
$messages['connecterror'] = 'Не могу сохранить новый пароль. Ошибка соединения.';
$messages['internalerror'] = 'Не могу сохранить новый пароль.';
-$messages['passwordshort'] = 'Пароль должен быть длиной как минимум $length символов.';
+$messages['passwordshort'] = 'Длина пароля должна быть как минимум $length символов.';
$messages['passwordweak'] = 'Пароль должен включать в себя как минимум одну цифру и один знак пунктуации.';
$messages['passwordforbidden'] = 'Пароль содержит недопустимые символы.';
diff --git a/plugins/redundant_attachments/config.inc.php.dist b/plugins/redundant_attachments/config.inc.php.dist
index a0be3755e..a6d1ad4dc 100644
--- a/plugins/redundant_attachments/config.inc.php.dist
+++ b/plugins/redundant_attachments/config.inc.php.dist
@@ -4,10 +4,10 @@
// and copies them into sql database.
// In environments with replicated database it is possible
// to use memcache as a fallback when write-master is unavailable.
-$rcmail_config['redundant_attachments_memcache'] = false;
+$config['redundant_attachments_memcache'] = false;
// Attachment data expires after specied TTL time in seconds (max.2592000).
// Default is 12 hours.
-$rcmail_config['redundant_attachments_cache_ttl'] = 12 * 60 * 60;
+$config['redundant_attachments_cache_ttl'] = 12 * 60 * 60;
?>
diff --git a/plugins/redundant_attachments/redundant_attachments.php b/plugins/redundant_attachments/redundant_attachments.php
index c0affad3c..91a027586 100644
--- a/plugins/redundant_attachments/redundant_attachments.php
+++ b/plugins/redundant_attachments/redundant_attachments.php
@@ -126,11 +126,12 @@ class redundant_attachments extends filesystem_attachments
$this->_load_drivers();
- if ($args['path'])
- $args['data'] = file_get_contents($args['path']);
+ $data = $args['path'] ? file_get_contents($args['path']) : $args['data'];
+
+ unset($args['data']);
$key = $this->_key($args);
- $data = base64_encode($args['data']);
+ $data = base64_encode($data);
$status = $this->cache->write($key, $data);
diff --git a/plugins/show_additional_headers/show_additional_headers.php b/plugins/show_additional_headers/show_additional_headers.php
index c2b0ca1d3..b7f01104c 100644
--- a/plugins/show_additional_headers/show_additional_headers.php
+++ b/plugins/show_additional_headers/show_additional_headers.php
@@ -7,7 +7,7 @@
* and display them in the message view.
*
* Enable the plugin in config.inc.php and add your desired headers:
- * $rcmail_config['show_additional_headers'] = array('User-Agent');
+ * $config['show_additional_headers'] = array('User-Agent');
*
* @version @package_version@
* @author Thomas Bruederli
diff --git a/plugins/squirrelmail_usercopy/config.inc.php.dist b/plugins/squirrelmail_usercopy/config.inc.php.dist
index cb62b1b86..03ec1cb86 100644
--- a/plugins/squirrelmail_usercopy/config.inc.php.dist
+++ b/plugins/squirrelmail_usercopy/config.inc.php.dist
@@ -1,25 +1,25 @@
<?php
// Driver - 'file' or 'sql'
-$rcmail_config['squirrelmail_driver'] = 'sql';
+$config['squirrelmail_driver'] = 'sql';
// full path to the squirrelmail data directory
-$rcmail_config['squirrelmail_data_dir'] = '';
-$rcmail_config['squirrelmail_data_dir_hash_level'] = 0;
+$config['squirrelmail_data_dir'] = '';
+$config['squirrelmail_data_dir_hash_level'] = 0;
// 'mysql://dbuser:dbpass@localhost/database'
-$rcmail_config['squirrelmail_dsn'] = 'mysql://user:password@localhost/webmail';
-$rcmail_config['squirrelmail_db_charset'] = 'iso-8859-1';
+$config['squirrelmail_dsn'] = 'mysql://user:password@localhost/webmail';
+$config['squirrelmail_db_charset'] = 'iso-8859-1';
-$rcmail_config['squirrelmail_address_table'] = 'address';
-$rcmail_config['squirrelmail_userprefs_table'] = 'userprefs';
+$config['squirrelmail_address_table'] = 'address';
+$config['squirrelmail_userprefs_table'] = 'userprefs';
// identities_level option value for squirrelmail plugin
// With this you can bypass/change identities_level checks
// for operations inside this plugin. See #1486773
-$rcmail_config['squirrelmail_identities_level'] = null;
+$config['squirrelmail_identities_level'] = null;
// Set to false if you don't want the email address of the default identity
// (squirrelmail preference "email_address") to be saved as alias.
// Recommended: set to false if your squirrelmail config setting $edit_identity has been true.
-$rcmail_config['squirrelmail_set_alias'] = true; \ No newline at end of file
+$config['squirrelmail_set_alias'] = true; \ No newline at end of file
diff --git a/plugins/subscriptions_option/localization/ru_RU.inc b/plugins/subscriptions_option/localization/ru_RU.inc
index 2b25783f3..b332e24ba 100644
--- a/plugins/subscriptions_option/localization/ru_RU.inc
+++ b/plugins/subscriptions_option/localization/ru_RU.inc
@@ -17,6 +17,6 @@
*/
$labels = array();
-$labels['useimapsubscriptions'] = 'Использовать IMAP подписку';
+$labels['useimapsubscriptions'] = 'Использовать IMAP подписки';
?>
diff --git a/plugins/subscriptions_option/subscriptions_option.php b/plugins/subscriptions_option/subscriptions_option.php
index 284c048df..130f16a8b 100644
--- a/plugins/subscriptions_option/subscriptions_option.php
+++ b/plugins/subscriptions_option/subscriptions_option.php
@@ -10,9 +10,9 @@
* Add it to the plugins list in config.inc.php to enable the user option
* The user option can be hidden and set globally by adding 'use_subscriptions'
* to the 'dont_override' configure line:
- * $rcmail_config['dont_override'] = array('use_subscriptions');
+ * $config['dont_override'] = array('use_subscriptions');
* and then set the global preference
- * $rcmail_config['use_subscriptions'] = true; // or false
+ * $config['use_subscriptions'] = true; // or false
*
* Roundcube caches folder lists. When a user changes this option or visits
* their folder list, this cache is refreshed. If the option is on the
diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php
index ed0eba189..f2b357aaf 100644
--- a/plugins/virtuser_file/virtuser_file.php
+++ b/plugins/virtuser_file/virtuser_file.php
@@ -6,7 +6,7 @@
* Add it to the plugins list in config.inc.php and set
* path to a virtuser table file to resolve user names and e-mail
* addresses
- * $rcmail_config['virtuser_file'] = '';
+ * $rcmail['virtuser_file'] = '';
*
* @version @package_version@
* @license GNU GPLv3+
diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php
index 3181cda94..a0b748288 100644
--- a/plugins/virtuser_query/virtuser_query.php
+++ b/plugins/virtuser_query/virtuser_query.php
@@ -12,13 +12,13 @@
* The email query could optionally select identity data columns in specified order:
* name, organization, reply-to, bcc, signature, html_signature
*
- * $rcmail_config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => '', 'alias' => '');
+ * $config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => '', 'alias' => '');
*
* The email query can return more than one record to create more identities.
* This requires identities_level option to be set to value less than 2.
*
* By default Roundcube database is used. To use different database (or host)
- * you can specify DSN string in $rcmail_config['virtuser_query_dsn'] option.
+ * you can specify DSN string in $config['virtuser_query_dsn'] option.
*
* @version @package_version@
* @author Aleksander Machniak <alec@alec.pl>
diff --git a/plugins/zipdownload/README b/plugins/zipdownload/README
index 4fa3c17b6..f253d63ee 100644
--- a/plugins/zipdownload/README
+++ b/plugins/zipdownload/README
@@ -23,7 +23,7 @@ folder for details on the skin license.
Install
=======
* Place this plugin folder into plugins directory of Roundcube
-* Add zipdownload to $rcmail_config['plugins'] in your Roundcube config
+* Add zipdownload to $config['plugins'] in your Roundcube config
NB: When downloading the plugin from GitHub you will need to create a
directory called zipdownload and place the files in there, ignoring the
diff --git a/plugins/zipdownload/config.inc.php.dist b/plugins/zipdownload/config.inc.php.dist
index 5c7489a15..0b2d14b60 100644
--- a/plugins/zipdownload/config.inc.php.dist
+++ b/plugins/zipdownload/config.inc.php.dist
@@ -7,15 +7,15 @@
// Zip attachments
// Only show the link when there are more than this many attachments
// -1 to prevent downloading of attachments as zip
-$rcmail_config['zipdownload_attachments'] = 1;
+$config['zipdownload_attachments'] = 1;
// Zip entire folders
-$rcmail_config['zipdownload_folder'] = false;
+$config['zipdownload_folder'] = false;
// Zip selection of messages
-$rcmail_config['zipdownload_selection'] = false;
+$config['zipdownload_selection'] = false;
// Charset to use for filenames inside the zip
-$rcmail_config['zipdownload_charset'] = 'ISO-8859-1';
+$config['zipdownload_charset'] = 'ISO-8859-1';
?> \ No newline at end of file
diff --git a/plugins/zipdownload/localization/ru_RU.inc b/plugins/zipdownload/localization/ru_RU.inc
index 014b2001e..0b58fa7fa 100644
--- a/plugins/zipdownload/localization/ru_RU.inc
+++ b/plugins/zipdownload/localization/ru_RU.inc
@@ -18,6 +18,6 @@
$labels = array();
$labels['downloadall'] = 'Загрузить все вложения';
-$labels['downloadfolder'] = 'Загрузить каталог';
+$labels['downloadfolder'] = 'Загрузить папку';
?> \ No newline at end of file
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 800eddac6..62f6b6c46 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -263,6 +263,23 @@ class rcmail extends rcube
/**
+ * Return identifier of the address book object
+ *
+ * @param rcube_addressbook Addressbook source object
+ *
+ * @return string Source identifier
+ */
+ public function get_address_book_id($object)
+ {
+ foreach ($this->address_books as $index => $book) {
+ if ($book === $object) {
+ return $index;
+ }
+ }
+ }
+
+
+ /**
* Return address books list
*
* @param boolean True if the address book needs to be writeable
diff --git a/program/js/app.js b/program/js/app.js
index 45a17d640..dedad37d2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -398,7 +398,7 @@ function rcube_webmail()
}
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.env.exists = this.env.messagecount;
parent.rcmail.enable_command('purge', this.env.messagecount);
$("input[type='text']").first().select();
}
@@ -1731,6 +1731,14 @@ function rcube_webmail()
if (!row.depth && row.has_children && (expando = document.getElementById('rcmexpando'+row.uid))) {
row.expando = expando;
expando.onmousedown = function(e) { return self.expand_message_row(e, uid); };
+ if (bw.touch) {
+ expando.addEventListener('touchend', function(e) {
+ if (e.changedTouches.length == 1) {
+ self.expand_message_row(e, uid);
+ return rcube_event.cancel(e);
+ }
+ }, false);
+ }
}
this.triggerEvent('insertrow', { uid:uid, row:row });
@@ -4995,7 +5003,7 @@ function rcube_webmail()
this.replace_contact_photo = function(id)
{
var img_src = id == '-del-' ? this.env.photo_placeholder :
- this.env.comm_path + '&_action=photo&_source=' + this.env.source + '&_cid=' + this.env.cid + '&_photo=' + id;
+ this.env.comm_path + '&_action=photo&_source=' + this.env.source + '&_cid=' + (this.env.cid || 0) + '&_photo=' + id;
this.set_photo_actions(id);
$(this.gui_objects.contactphoto).children('img').attr('src', img_src);
diff --git a/program/js/common.js b/program/js/common.js
index de07ec131..afaf91639 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -62,7 +62,7 @@ function roundcube_browser()
this.safari = (!this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0));
this.konq = (this.agent_lc.indexOf('konqueror') > 0);
this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0);
- this.iphone = (this.safari && this.agent_lc.indexOf('iphone') > 0);
+ this.iphone = (this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0));
this.ipad = (this.safari && this.agent_lc.indexOf('ipad') > 0);
this.opera = window.opera ? true : false;
@@ -83,7 +83,9 @@ function roundcube_browser()
if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc)))
this.lang = RegExp.$1;
- this.mobile = this.agent_lc.match(/iphone|ipad|ipod|android|blackberry|iemobile|opera mini|opera mobi/);
+ this.tablet = /ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);
+ this.mobile = /iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);
+ this.touch = this.mobile || this.tablet;
this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
this.vml = (this.win && this.ie && this.dom && !this.opera);
this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) ||
@@ -127,6 +129,8 @@ function roundcube_browser()
if (this.mobile)
classname += ' mobile';
+ if (this.tablet)
+ classname += ' tablet';
if (document.documentElement)
document.documentElement.className += classname;
diff --git a/program/js/list.js b/program/js/list.js
index 08e4444e1..c2ad3f7c3 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -122,17 +122,25 @@ init_row: function(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.mobile) {
+ if (bw.touch) {
row.addEventListener('touchstart', function(e) {
if (e.touches.length == 1) {
- if (!self.drag_row(rcube_event.touchevent(e.touches[0]), this.uid))
- e.preventDefault();
+ self.touchmoved = false;
+ self.drag_row(rcube_event.touchevent(e.touches[0]), this.uid)
}
}, false);
row.addEventListener('touchend', function(e) {
- if (e.changedTouches.length == 1)
- if (!self.click_row(rcube_event.touchevent(e.changedTouches[0]), this.uid))
+ if (e.changedTouches.length == 1) {
+ if (!self.touchmoved && !self.click_row(rcube_event.touchevent(e.changedTouches[0]), this.uid))
e.preventDefault();
+ }
+ }, false);
+ row.addEventListener('touchmove', function(e) {
+ if (e.changedTouches.length == 1) {
+ self.touchmoved = true;
+ if (self.drag_active)
+ e.preventDefault();
+ }
}, false);
}
@@ -157,7 +165,7 @@ init_header: function()
$(this.list.tHead).replaceWith($(this.fixed_header).find('thead').clone());
$(this.list.tHead).find('tr td').attr('style', ''); // remove fixed widths
}
- else if (this.list.className.indexOf('fixedheader') >= 0) {
+ else if (!bw.touch && this.list.className.indexOf('fixedheader') >= 0) {
this.init_fixed_header();
}
@@ -408,7 +416,7 @@ drag_row: function(e, id)
if (rcube_event.get_button(e) == 2)
return true;
- this.in_selection_before = this.in_selection(id) ? id : false;
+ this.in_selection_before = e && e.istouch || this.in_selection(id) ? id : false;
// selects currently unselected row
if (!this.in_selection_before) {
@@ -416,12 +424,12 @@ drag_row: function(e, id)
this.select_row(id, mod_key, false);
}
- if (this.draggable && this.selection.length) {
+ if (this.draggable && this.selection.length && this.in_selection(id)) {
this.drag_start = true;
this.drag_mouse_start = rcube_event.get_mouse_pos(e);
rcube_event.add_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
rcube_event.add_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
- if (bw.mobile) {
+ if (bw.touch) {
rcube_event.add_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
rcube_event.add_listener({event:'touchend', object:this, method:'drag_mouse_up'});
}
@@ -1256,7 +1264,7 @@ drag_mouse_move: function(e)
{
// convert touch event
if (e.type == 'touchmove') {
- if (e.changedTouches.length == 1)
+ if (e.touches.length == 1 && e.changedTouches.length == 1)
e = rcube_event.touchevent(e.changedTouches[0]);
else
return rcube_event.cancel(e);
@@ -1362,7 +1370,7 @@ drag_mouse_up: function(e)
rcube_event.remove_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
rcube_event.remove_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
- if (bw.mobile) {
+ if (bw.touch) {
rcube_event.remove_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
rcube_event.remove_listener({event:'touchend', object:this, method:'drag_mouse_up'});
}
diff --git a/program/lib/Roundcube/bootstrap.php b/program/lib/Roundcube/bootstrap.php
index 182ea1232..5d5a22387 100644
--- a/program/lib/Roundcube/bootstrap.php
+++ b/program/lib/Roundcube/bootstrap.php
@@ -58,7 +58,7 @@ define('RCUBE_VERSION', '1.0-git');
define('RCUBE_CHARSET', 'UTF-8');
if (!defined('RCUBE_LIB_DIR')) {
- define('RCUBE_LIB_DIR', dirname(__FILE__).'/');
+ define('RCUBE_LIB_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR);
}
if (!defined('RCUBE_INSTALL_PATH')) {
@@ -83,6 +83,16 @@ if (extension_loaded('mbstring')) {
@mb_regex_encoding(RCUBE_CHARSET);
}
+// make sure the Roundcube lib directory is in the include_path
+$rcube_path = realpath(RCUBE_LIB_DIR . '..');
+$sep = PATH_SEPARATOR;
+$regexp = "!(^|$sep)" . preg_quote($rcube_path, '!') . "($sep|\$)!";
+$path = ini_get('include_path');
+
+if (!preg_match($regexp, $path)) {
+ set_include_path($path . PATH_SEPARATOR . $rcube_path);
+}
+
// Register autoloader
spl_autoload_register('rcube_autoload');
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index e0f889a87..d9c3dd8b9 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -467,6 +467,10 @@ class rcube
$this->session->set_secret($this->config->get('des_key') . dirname($_SERVER['SCRIPT_NAME']));
$this->session->set_ip_check($this->config->get('ip_check'));
+ if ($this->config->get('session_auth_name')) {
+ $this->session->set_cookiename($this->config->get('session_auth_name'));
+ }
+
// start PHP session (if not in CLI mode)
if ($_SERVER['REMOTE_ADDR']) {
$this->session->start();
@@ -494,7 +498,14 @@ class rcube
public function gc_temp()
{
$tmp = unslashify($this->config->get('temp_dir'));
- $expire = time() - 172800; // expire in 48 hours
+
+ // expire in 48 hours by default
+ $temp_dir_ttl = $this->config->get('temp_dir_ttl', '48h');
+ $temp_dir_ttl = get_offset_sec($temp_dir_ttl);
+ if ($temp_dir_ttl < 6*3600)
+ $temp_dir_ttl = 6*3600; // 6 hours sensible lower bound.
+
+ $expire = time() - $temp_dir_ttl;
if ($tmp && ($dir = opendir($tmp))) {
while (($fname = readdir($dir)) !== false) {
@@ -1393,6 +1404,10 @@ class rcube
'options' => $options,
));
+ if ($plugin['abort']) {
+ return isset($plugin['result']) ? $plugin['result'] : false;
+ }
+
$from = $plugin['from'];
$mailto = $plugin['mailto'];
$options = $plugin['options'];
diff --git a/program/lib/Roundcube/rcube_base_replacer.php b/program/lib/Roundcube/rcube_base_replacer.php
index e41ccb1d9..a59bba926 100644
--- a/program/lib/Roundcube/rcube_base_replacer.php
+++ b/program/lib/Roundcube/rcube_base_replacer.php
@@ -44,8 +44,8 @@ class rcube_base_replacer
public function replace($body)
{
return preg_replace_callback(array(
- '/(src|background|href)=(["\']?)([^"\'\s]+)(\2|\s|>)/Ui',
- '/(url\s*\()(["\']?)([^"\'\)\s]+)(\2)\)/Ui',
+ '/(src|background|href)=(["\']?)([^"\'\s>]+)(\2|\s|>)/i',
+ '/(url\s*\()(["\']?)([^"\'\)\s]+)(\2)\)/i',
),
array($this, 'callback'), $body);
}
diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php
index 62567a0e0..90e1394cf 100644
--- a/program/lib/Roundcube/rcube_config.php
+++ b/program/lib/Roundcube/rcube_config.php
@@ -282,8 +282,8 @@ class rcube_config
*/
public function merge($prefs)
{
+ $prefs = $this->fix_legacy_props($prefs);
$this->prop = array_merge($this->prop, $prefs, $this->userprefs);
- $this->fix_legacy_props();
}
@@ -295,6 +295,8 @@ class rcube_config
*/
public function set_user_prefs($prefs)
{
+ $prefs = $this->fix_legacy_props($prefs);
+
// Honor the dont_override setting for any existing user preferences
$dont_override = $this->get('dont_override');
if (is_array($dont_override) && !empty($dont_override)) {
@@ -316,8 +318,6 @@ class rcube_config
$this->userprefs = $prefs;
$this->prop = array_merge($this->prop, $prefs);
- $this->fix_legacy_props();
-
// override timezone settings with client values
if ($this->prop['timezone'] == 'auto') {
$this->prop['_timezone_value'] = isset($_SESSION['timezone']) ? $this->client_timezone() : $this->prop['_timezone_value'];
@@ -330,7 +330,7 @@ class rcube_config
/**
* Getter for all config options
*
- * @return array Hash array containg all config properties
+ * @return array Hash array containing all config properties
*/
public function all()
{
@@ -482,16 +482,22 @@ class rcube_config
/**
* Convert legacy options into new ones
+ *
+ * @param array $props Hash array with config props
+ *
+ * @return array Converted config props
*/
- private function fix_legacy_props()
+ private function fix_legacy_props($props)
{
foreach ($this->legacy_props as $new => $old) {
- if (isset($this->prop[$old])) {
- if (!isset($this->prop[$new])) {
- $this->prop[$new] = $this->prop[$old];
+ if (isset($props[$old])) {
+ if (!isset($props[$new])) {
+ $props[$new] = $props[$old];
}
- unset($this->prop[$old]);
+ unset($props[$old]);
}
}
+
+ return $props;
}
}
diff --git a/program/lib/Roundcube/rcube_image.php b/program/lib/Roundcube/rcube_image.php
index c9a555300..4e4caae93 100644
--- a/program/lib/Roundcube/rcube_image.php
+++ b/program/lib/Roundcube/rcube_image.php
@@ -105,7 +105,6 @@ class rcube_image
if ($convert) {
$p['out'] = $filename;
$p['in'] = $this->image_file;
- $p['size'] = $size.'x'.$size;
$type = $props['type'];
if (!$type && ($data = $this->identify())) {
@@ -120,11 +119,37 @@ class rcube_image
$type = 'jpg';
}
- $p += array('type' => $type, 'types' => "bmp,eps,gif,jp2,jpg,png,svg,tif", 'quality' => 75);
- $p['-opts'] = array('-resize' => $p['size'].'>');
+ // If only one dimension is greater than the limit convert doesn't
+ // work as expected, we need to calculate new dimensions
+ $scale = $size / max($props['width'], $props['height']);
- if (in_array($type, explode(',', $p['types']))) { // Valid type?
- $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -strip -quality {quality} {-opts} {intype}:{in} {type}:{out}', $p);
+ // if file is smaller than the limit, we do nothing
+ // but copy original file to destination file
+ if ($scale >= 1 && $p['intype'] == $type) {
+ $result = ($this->image_file == $filename || copy($this->image_file, $filename)) ? '' : false;
+ }
+ else {
+ if ($scale >= 1) {
+ $width = $props['width'];
+ $height = $props['height'];
+ }
+ else {
+ $width = intval($props['width'] * $scale);
+ $height = intval($props['height'] * $scale);
+ }
+
+ $valid_types = "bmp,eps,gif,jp2,jpg,png,svg,tif";
+
+ $p += array(
+ 'type' => $type,
+ 'quality' => 75,
+ 'size' => $width . 'x' . $height,
+ );
+
+ if (in_array($type, explode(',', $valid_types))) { // Valid type?
+ $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -strip'
+ . ' -quality {quality} -resize {size} {intype}:{in} {type}:{out}', $p);
+ }
}
if ($result === '') {
@@ -161,34 +186,34 @@ class rcube_image
// Imagemagick resize is implemented in shrinking mode (see -resize argument above)
// we do the same here, if an image is smaller than specified size
// we do nothing but copy original file to destination file
- if ($scale > 1) {
- return $this->image_file == $filename || copy($this->image_file, $filename) ? $type : false;
- }
-
- $width = $props['width'] * $scale;
- $height = $props['height'] * $scale;
-
- $new_image = imagecreatetruecolor($width, $height);
-
- // Fix transparency of gif/png image
- if ($props['gd_type'] != IMAGETYPE_JPEG) {
- imagealphablending($new_image, false);
- imagesavealpha($new_image, true);
- $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
- imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
+ if ($scale >= 1) {
+ $result = $this->image_file == $filename || copy($this->image_file, $filename);
}
-
- imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
- $image = $new_image;
-
- if ($props['gd_type'] == IMAGETYPE_JPEG) {
- $result = imagejpeg($image, $filename, 75);
- }
- elseif($props['gd_type'] == IMAGETYPE_GIF) {
- $result = imagegif($image, $filename);
- }
- elseif($props['gd_type'] == IMAGETYPE_PNG) {
- $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
+ else {
+ $width = intval($props['width'] * $scale);
+ $height = intval($props['height'] * $scale);
+ $new_image = imagecreatetruecolor($width, $height);
+
+ // Fix transparency of gif/png image
+ if ($props['gd_type'] != IMAGETYPE_JPEG) {
+ imagealphablending($new_image, false);
+ imagesavealpha($new_image, true);
+ $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
+ imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
+ }
+
+ imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
+ $image = $new_image;
+
+ if ($props['gd_type'] == IMAGETYPE_JPEG) {
+ $result = imagejpeg($image, $filename, 75);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_GIF) {
+ $result = imagegif($image, $filename);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_PNG) {
+ $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
+ }
}
if ($result) {
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index c5346c8aa..689a6266d 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -70,7 +70,7 @@ class rcube_imap extends rcube_storage
protected $search_sort_field = '';
protected $search_threads = false;
protected $search_sorted = false;
- protected $options = array('auth_method' => 'check');
+ protected $options = array('auth_type' => 'check');
protected $caching = false;
protected $messages_caching = false;
protected $threading = false;
@@ -391,10 +391,10 @@ class rcube_imap extends rcube_storage
public function check_permflag($flag)
{
$flag = strtoupper($flag);
- $imap_flag = $this->conn->flags[$flag];
$perm_flags = $this->get_permflags($this->folder);
+ $imap_flag = $this->conn->flags[$flag];
- return in_array_nocase($imap_flag, $perm_flags);
+ return $imap_flag && !empty($perm_flags) && in_array_nocase($imap_flag, $perm_flags);
}
@@ -410,17 +410,7 @@ class rcube_imap extends rcube_storage
if (!strlen($folder)) {
return array();
}
-/*
- Checking PERMANENTFLAGS is rather rare, so we disable caching of it
- Re-think when we'll use it for more than only MDNSENT flag
- $cache_key = 'mailboxes.permanentflags.' . $folder;
- $permflags = $this->get_cache($cache_key);
-
- if ($permflags !== null) {
- return explode(' ', $permflags);
- }
-*/
if (!$this->check_connection()) {
return array();
}
@@ -435,10 +425,7 @@ class rcube_imap extends rcube_storage
if (!is_array($permflags)) {
$permflags = array();
}
-/*
- // Store permflags as string to limit cached object size
- $this->update_cache($cache_key, implode(' ', $permflags));
-*/
+
return $permflags;
}
diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php
index e1193749b..bce4cd4e2 100644
--- a/program/lib/Roundcube/rcube_imap_generic.php
+++ b/program/lib/Roundcube/rcube_imap_generic.php
@@ -704,22 +704,11 @@ class rcube_imap_generic
*/
function connect($host, $user, $password, $options=null)
{
- // set options
- if (is_array($options)) {
- $this->prefs = $options;
- }
- // set auth method
- if (!empty($this->prefs['auth_type'])) {
- $auth_method = strtoupper($this->prefs['auth_type']);
- } else {
- $auth_method = 'CHECK';
- }
+ // configure
+ $this->set_prefs($options);
- if (!empty($this->prefs['disabled_caps'])) {
- $this->prefs['disabled_caps'] = array_map('strtoupper', (array)$this->prefs['disabled_caps']);
- }
-
- $result = false;
+ $auth_method = $this->prefs['auth_type'];
+ $result = false;
// initialize connection
$this->error = '';
@@ -896,6 +885,36 @@ class rcube_imap_generic
}
/**
+ * Initializes environment
+ */
+ protected function set_prefs($prefs)
+ {
+ // set preferences
+ if (is_array($prefs)) {
+ $this->prefs = $prefs;
+ }
+
+ // set auth method
+ if (!empty($this->prefs['auth_type'])) {
+ $this->prefs['auth_type'] = strtoupper($this->prefs['auth_type']);
+ }
+ else {
+ $this->prefs['auth_type'] = 'CHECK';
+ }
+
+ // disabled capabilities
+ if (!empty($this->prefs['disabled_caps'])) {
+ $this->prefs['disabled_caps'] = array_map('strtoupper', (array)$this->prefs['disabled_caps']);
+ }
+
+ // additional message flags
+ if (!empty($this->prefs['message_flags'])) {
+ $this->flags = array_merge($this->flags, $this->prefs['message_flags']);
+ unset($this->prefs['message_flags']);
+ }
+ }
+
+ /**
* Checks connection status
*
* @return bool True if connection is active and user is logged in, False otherwise.
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index 555a56471..cb7fa8466 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -514,7 +514,8 @@ class rcube_ldap extends rcube_addressbook
$this->result = new rcube_result_set($entries['count'], ($this->list_page-1) * $this->page_size);
}
else {
- $prop = $this->group_id ? $this->group_data : $this->prop;
+ $prop = $this->group_id ? $this->group_data : $this->prop;
+ $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
// use global search filter
if (!empty($this->filter))
@@ -522,7 +523,7 @@ class rcube_ldap extends rcube_addressbook
// exec LDAP search if no result resource is stored
if ($this->ready && !$this->ldap_result)
- $this->ldap_result = $this->ldap->search($prop['base_dn'], $prop['filter'], $prop['scope'], $this->prop['attributes'], $prop);
+ $this->ldap_result = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], $this->prop['attributes'], $prop);
// count contacts for this user
$this->result = $this->count();
@@ -841,12 +842,13 @@ class rcube_ldap extends rcube_addressbook
}
// We have a connection but no result set, attempt to get one.
else if ($this->ready) {
- $prop = $this->group_id ? $this->group_data : $this->prop;
+ $prop = $this->group_id ? $this->group_data : $this->prop;
+ $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
if (!empty($this->filter)) { // Use global search filter
$prop['filter'] = $this->filter;
}
- $count = $this->ldap->search($prop['base_dn'], $prop['filter'], $prop['scope'], array('dn'), $prop, true);
+ $count = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], array('dn'), $prop, true);
}
return new rcube_result_set($count, ($this->list_page-1) * $this->page_size);
@@ -1584,6 +1586,7 @@ class rcube_ldap extends rcube_addressbook
$base_dn = $this->groups_base_dn;
$filter = $this->prop['groups']['filter'];
+ $scope = $this->prop['groups']['scope'];
$name_attr = $this->prop['groups']['name_attr'];
$email_attr = $this->prop['groups']['email_attr'] ? $this->prop['groups']['email_attr'] : 'mail';
$sort_attrs = $this->prop['groups']['sort'] ? (array)$this->prop['groups']['sort'] : array($name_attr);
@@ -1604,7 +1607,7 @@ class rcube_ldap extends rcube_addressbook
}
$attrs = array_unique(array('dn', 'objectClass', $name_attr, $email_attr, $sort_attr));
- $ldap_data = $ldap->search($base_dn, $filter, $this->prop['groups']['scope'], $attrs, $this->prop['groups']);
+ $ldap_data = $ldap->search($base_dn, $filter, $scope, $attrs, $this->prop['groups']);
if ($ldap_data === false) {
return array();
diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php
index de8334551..e697b2c73 100644
--- a/program/lib/Roundcube/rcube_storage.php
+++ b/program/lib/Roundcube/rcube_storage.php
@@ -39,7 +39,7 @@ abstract class rcube_storage
protected $default_charset = 'ISO-8859-1';
protected $default_folders = array('INBOX');
protected $search_set;
- protected $options = array('auth_method' => 'check');
+ protected $options = array('auth_type' => 'check');
protected $page_size = 10;
protected $threading = false;
diff --git a/program/lib/Roundcube/rcube_string_replacer.php b/program/lib/Roundcube/rcube_string_replacer.php
index d1f1f4dbc..354b4596d 100644
--- a/program/lib/Roundcube/rcube_string_replacer.php
+++ b/program/lib/Roundcube/rcube_string_replacer.php
@@ -37,7 +37,7 @@ class rcube_string_replacer
// Support unicode/punycode in top-level domain part
$utf_domain = '[^?&@"\'\\/()<>\s\r\t\n]+\\.?([^\\x00-\\x2f\\x3b-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-zA-Z0-9]{2,})';
$url1 = '.:;,';
- $url2 = 'a-zA-Z0-9%=#$@+?!&\\/_~\\[\\]\\(\\){}\*-';
+ $url2 = 'a-zA-Z0-9%=#$@+?|!&\\/_~\\[\\]\\(\\){}\*-';
$this->link_pattern = "/([\w]+:\/\/|\W[Ww][Ww][Ww]\.|^[Ww][Ww][Ww]\.)($utf_domain([$url1]*[$url2]+)*)/";
$this->mailto_pattern = "/("
diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php
index cf87dedb7..2540f779d 100644
--- a/program/lib/Roundcube/rcube_utils.php
+++ b/program/lib/Roundcube/rcube_utils.php
@@ -739,11 +739,22 @@ class rcube_utils
*/
public static function strtotime($date)
{
+ $date = trim($date);
+
// check for MS Outlook vCard date format YYYYMMDD
- if (preg_match('/^([12][90]\d\d)([01]\d)(\d\d)$/', trim($date), $matches)) {
- return mktime(0,0,0, intval($matches[2]), intval($matches[3]), intval($matches[1]));
+ if (preg_match('/^([12][90]\d\d)([01]\d)([0123]\d)$/', $date, $m)) {
+ return mktime(0,0,0, intval($m[2]), intval($m[3]), intval($m[1]));
}
- else if (is_numeric($date)) {
+
+ // common little-endian formats, e.g. dd/mm/yyyy (not all are supported by strtotime)
+ if (preg_match('/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})$/', $date, $m)
+ && $m[1] > 0 && $m[1] <= 31 && $m[2] > 0 && $m[2] <= 12 && $m[3] >= 1970
+ ) {
+ return mktime(0,0,0, intval($m[2]), intval($m[1]), intval($m[3]));
+ }
+
+ // unix timestamp
+ if (is_numeric($date)) {
return (int) $date;
}
diff --git a/program/localization/ar_SA/messages.inc b/program/localization/ar_SA/messages.inc
index 9429a3910..f989867de 100644
--- a/program/localization/ar_SA/messages.inc
+++ b/program/localization/ar_SA/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'إزالة التنسيق من الرسالة...';
$messages['messageopenerror'] = 'تعذرت قراءة الرسالة من الخادم';
$messages['fileuploaderror'] = 'فشل رفع الملف';
$messages['filesizeerror'] = 'حجم الملف الذي تحاول رفعه أكبر من الحجمالأقصى $size';
-$messages['copysuccess'] = 'تم نسخ $nr رسائل بنجاح';
-$messages['copyerror'] = 'لم يمكن نسخ أية عناوين';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'لا يمكن تعديل مصدر العنوان هذا';
$messages['errorsavingcontact'] = 'تعذر حفظ عنوان المراسل';
$messages['movingmessage'] = 'جاري نقل الرسالة...';
$messages['copyingmessage'] = 'جاري نسخ الرسالة...';
$messages['copyingcontact'] = 'جاري نسخ المُراسلين...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'جاري حذف الرسائل...';
$messages['markingmessage'] = 'جاري تحديد الرسائل...';
$messages['addingmember'] = 'جاري إضافة المُراسلين إلى المجموعة...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'جاري الاستيراد، رجاء انتظر...'
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>تم استيراد $inserted مراسلين بنجاح، وتجاهل$skipped موجودين مسبقاً</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>تم تجاهل $skipped عناصر موجودة</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'العملية ممنوعة!';
$messages['nofromaddress'] = 'عنوان البريد الالكتروني غير محدد فيالهويّة المنتقاة';
$messages['editorwarning'] = 'يتسبب الانتقال إلى محرر النص البسيط بضياع جميع التنسيق. هل تريد الاستمرار؟';
diff --git a/program/localization/ast/messages.inc b/program/localization/ast/messages.inc
index 9e415b8ec..512316c18 100644
--- a/program/localization/ast/messages.inc
+++ b/program/localization/ast/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Desaniciando\'l formatu del mensaxe...';
$messages['messageopenerror'] = 'Nun soi a baxer el mensaxe del sirvidor';
$messages['fileuploaderror'] = 'Fallu al xubir ficheros';
$messages['filesizeerror'] = 'El ficheru ye más grande de lo permitío ($size)';
-$messages['copysuccess'] = 'Copiaronse $nr direiciones correchamente';
-$messages['copyerror'] = 'Nun fui a copiar nenguna direición';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Esta direición ye de namái-llectura';
$messages['errorsavingcontact'] = 'Nun fui a guardar la direición del contautu';
$messages['movingmessage'] = 'Moviendo\'l mensaxe...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importando, dame un minutín...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Importaronse correchamente $inserted contautos, saltáronse $skipped entrase que yá esistíen</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Nun tienes permisu pa facelo.';
$messages['nofromaddress'] = 'Perdiose la direición de corréu de la identidá qu\'escoyisti';
$messages['editorwarning'] = 'Si pases a editor en modu testu vas perder tol estilu aplicáu al mensaxe. ¿Tas seguru de que quies facelo?';
diff --git a/program/localization/az_AZ/messages.inc b/program/localization/az_AZ/messages.inc
index 418f270be..745836e5f 100644
--- a/program/localization/az_AZ/messages.inc
+++ b/program/localization/az_AZ/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Məktubun formatlaşması silinir...';
$messages['messageopenerror'] = 'Məktubu serverdən yükləmək alınmır';
$messages['fileuploaderror'] = 'Fayl yüklənilmədi';
$messages['filesizeerror'] = 'Yüklənilən fayl maksimal ölçüdən çoxdur - $size';
-$messages['copysuccess'] = '$nr ünvan kopyalandı';
-$messages['copyerror'] = 'Ünvanları kopyalamaq alınmır';
+$messages['copysuccess'] = '$nr kontaktlar uğurlar kopyalanmışdır.';
+$messages['movesuccess'] = '$nr kontaktlar uğurla köçürülmüşdür.';
+$messages['copyerror'] = 'Heç bir kontaktı kopyalamaq olmur.';
+$messages['moveerror'] = 'Heç bir kontaktı köçürmək alınmır.';
$messages['sourceisreadonly'] = 'Verilən ünvanlar mənbəyi yalnız oxunmaq üçün';
$messages['errorsavingcontact'] = 'Əlaqəni ünvanda saxlamaq mümkün deyil';
$messages['movingmessage'] = 'Məktub köçürülür...';
$messages['copyingmessage'] = 'Məktub kopyalanır...';
$messages['copyingcontact'] = 'Kontakt(lar)ın kopyalanması...';
+$messages['movingcontact'] = 'Kontak(lar)ın köçürülməsi...';
$messages['deletingmessage'] = 'Məktub(lar) silinir...';
$messages['markingmessage'] = 'Məktub(lar) işarələnir...';
$messages['addingmember'] = 'Kontakt(lar)ın qrupa əlavə edilməsi...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'İdxal gedir, lütfən gözləyin...';
$messages['importformaterror'] = 'İdxal xətası. Yüklənilən fayl naməlum məlumat formatına malikdir.';
$messages['importconfirm'] = '<b>$inserted ünvanlar müvəffəqiyyətlə idxal edildi, mövcud $skipped buraxılıb</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Buraxılmış $skipped mövcud daxillər</b>';
+$messages['importmessagesuccess'] = '$nr məktublar uğurla idxal edildi';
+$messages['importmessageerror'] = 'İdxal alınmadı! Yüklənilmiş fayl düzgün məktub və ya poçt faylı deyil';
$messages['opnotpermitted'] = 'Əməliyyat qadağandır!';
$messages['nofromaddress'] = 'Seçilmiş kimlikdə e-poçt ünvanları yoxdur';
$messages['editorwarning'] = 'Adi mətn redaktoruna keçid, bütün mətn formatlarının itkisinə gətirəcək. Davam edilsin?';
diff --git a/program/localization/be_BE/messages.inc b/program/localization/be_BE/messages.inc
index 73cdb3ed8..c4033dad9 100644
--- a/program/localization/be_BE/messages.inc
+++ b/program/localization/be_BE/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/bg_BG/messages.inc b/program/localization/bg_BG/messages.inc
index 219772e74..5b6e7a596 100644
--- a/program/localization/bg_BG/messages.inc
+++ b/program/localization/bg_BG/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Премахване форматирането на
$messages['messageopenerror'] = 'Писмото не може да бъде заредено от сървъра';
$messages['fileuploaderror'] = 'Грешка при прикачването на файла';
$messages['filesizeerror'] = 'Прикаченият файл надвишава лимита от $size';
-$messages['copysuccess'] = 'Успешно копирани $nr адреса';
-$messages['copyerror'] = 'Грешка при копирането на адресите';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Този източник на адреси е само за четене';
$messages['errorsavingcontact'] = 'Грешка при записването на адреса';
$messages['movingmessage'] = 'Преместване на съобщение...';
$messages['copyingmessage'] = 'Копиране на съобщение(я)...';
$messages['copyingcontact'] = 'Копиране на контакт(и)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Изтриване на съобщение(я)...';
$messages['markingmessage'] = 'Маркиране на съобщение(я)...';
$messages['addingmember'] = 'Добавяне на контакт(и) в групата...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Импорт, моля изчакайте...';
$messages['importformaterror'] = 'Импорта пропадна! Каченият файл не е с валидни данни.';
$messages['importconfirm'] = '<b>Успешно са импортирани $inserted контакта, вече съществуващите $skipped контакта са пропуснати</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = 'b>Съществуващите записи $skipped са пропуснати</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Операцията не е позволена!';
$messages['nofromaddress'] = 'Липсва e-mail адрес за избраната самоличност';
$messages['editorwarning'] = 'Превключването на редактора в текстов режим ще доведе до загуба на форматирането на текса. Сигурни ли сте, че искате да продължите?';
diff --git a/program/localization/bn_BD/messages.inc b/program/localization/bn_BD/messages.inc
index 44d5fcc60..9de6c38de 100644
--- a/program/localization/bn_BD/messages.inc
+++ b/program/localization/bn_BD/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'বিন্যাস (formatting) সরানো
$messages['messageopenerror'] = 'সারভার থেকে চিঠি আনা গেলোনা';
$messages['fileuploaderror'] = 'ফাইলটা সারভারে উঠানো গেলোনা';
$messages['filesizeerror'] = 'যে ফাইলটা উঠানোর চেষ্টা করলেন সেটি সর্বোচ্চ সাইজ $size এর থেকে বেশি';
-$messages['copysuccess'] = 'ঠিকঠাকমতো $nr ঠিকানা নকল করে নেওয়া গেছে';
-$messages['copyerror'] = 'কোনো ঠিকানা তোলা গেলোনা';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'এইঠিকানাটা খালি পড়ার জন্যে';
$messages['errorsavingcontact'] = 'ঠিকানা জমা রাখা গেলোনা';
$messages['movingmessage'] = 'চিঠি সরানো হচ্ছে..';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'আমদানি করা হচ্ছে। এ
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ঠিকমতো $inserted ঠিকানা আমদানি করা গেছে, $skipped ঠিকানা আগের থেকেই ছিলো বলে তাদের টা যা ছিলো তাই রাখা হয়েছে</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'এই কাজটা করার অনুমতি নাই আপনার';
$messages['nofromaddress'] = 'বেছে নেওয়া যে পরিচিতিটা, তাতে ই-মেইল নেই';
$messages['editorwarning'] = 'যদি আপনি শুধু লেখার স্টাইলে যান তাহলে বর্তমানের কোনো বিন্যাস হারিয়ে যাবে';
diff --git a/program/localization/br/messages.inc b/program/localization/br/messages.inc
index c1988577d..fd1674d80 100644
--- a/program/localization/br/messages.inc
+++ b/program/localization/br/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'O tilemel furmaozañ...';
$messages['messageopenerror'] = 'N\'us ket tu da gargañ ar c\'hemennad adalek ar servijer';
$messages['fileuploaderror'] = 'Fazi o treuzkas ar restr';
$messages['filesizeerror'] = 'Re vras eo ar restr treuzkaset $size';
-$messages['copysuccess'] = 'Kopiañ mat $nr chomlec\'h';
-$messages['copyerror'] = 'Ne c\'hall ket kopiañ chomlec\'hioù';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Lenn hepken eo an tarzh chomlec\'h se';
$messages['errorsavingcontact'] = 'Ne c\'haller ket gwarediñ chomlec\'h darempred';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/bs_BA/messages.inc b/program/localization/bs_BA/messages.inc
index 7a1b26168..09e6df19e 100644
--- a/program/localization/bs_BA/messages.inc
+++ b/program/localization/bs_BA/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Uklanjam formatiranje...';
$messages['messageopenerror'] = 'Nije moguće učitati poruku sa servera.';
$messages['fileuploaderror'] = 'Dodavanje datoteke nije uspjelo.';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veličina je $size.';
-$messages['copysuccess'] = 'Uspješno kopirano $n adresa.';
-$messages['copyerror'] = 'Nije moguće kopirati adrese.';
+$messages['copysuccess'] = 'Uspješno kopirano $nr kontakata.';
+$messages['movesuccess'] = 'Uspješno premješteno $nr kontakata.';
+$messages['copyerror'] = 'Nije moguće kopirati kontakte.';
+$messages['moveerror'] = 'Nije moguće premjestiti kontakte.';
$messages['sourceisreadonly'] = 'Ovaj izvor adresa je samo za čitanje.';
$messages['errorsavingcontact'] = 'Nije moguće sačuvati kontakt adresu.';
$messages['movingmessage'] = 'Premještam poruke...';
$messages['copyingmessage'] = 'Kopiram poruke...';
$messages['copyingcontact'] = 'Kopiram kontakte...';
+$messages['movingcontact'] = 'Premještam kontakte...';
$messages['deletingmessage'] = 'Brišem poruke...';
$messages['markingmessage'] = 'Označavam poruke...';
$messages['addingmember'] = 'Dodajem kontakte u grupu...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Uvoz u toku, molimo sačekajte...';
$messages['importformaterror'] = 'Uvoz nije uspio! Dodana datoteka nije u ispravnom formatu za uvoz podataka.';
$messages['importconfirm'] = '<b>Uspješno je uvezeno $inserted kontakata</b>';
$messages['importconfirmskipped'] = '<b>Preskočeno $skipped postojećih unosa</b>';
+$messages['importmessagesuccess'] = 'Uspješno uvezeno $nr poruka';
+$messages['importmessageerror'] = 'Uvoz nije uspio! Dodana datoteke nije ispravna datoteka sa porukama';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'U odabrani identitet nije upisana email adresa.';
$messages['editorwarning'] = 'Prebacivanje u obični tekstualni uređivač će prouzrokovati gubljenje formatiranja teksta. Želite li nastaviti?';
diff --git a/program/localization/ca_ES/messages.inc b/program/localization/ca_ES/messages.inc
index 70c3fbd0c..9ee32d54e 100644
--- a/program/localization/ca_ES/messages.inc
+++ b/program/localization/ca_ES/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'S\'està traient el format del missatge...';
$messages['messageopenerror'] = 'No s\'ha pogut carregar el missatge del servidor.';
$messages['fileuploaderror'] = 'La pujada del fitxer ha fallat.';
$messages['filesizeerror'] = 'El fitxer pujat excedeix la mida màxima de $size.';
-$messages['copysuccess'] = 'S\'han copiat $nr adreces correctament.';
-$messages['copyerror'] = 'No s\'ha pogut copiar cap adreça.';
+$messages['copysuccess'] = 'S\'han copiat $nr contactes correctament.';
+$messages['movesuccess'] = 'S\'han mogut $nr contactes correctament.';
+$messages['copyerror'] = 'No s\'ha pogut copiar cap contacte.';
+$messages['moveerror'] = 'No s\'ha pogut moure cap contacte.';
$messages['sourceisreadonly'] = 'Aquesta adreça és només de lectura.';
$messages['errorsavingcontact'] = 'No s\'ha pogut desar l\'adreça de contacte.';
$messages['movingmessage'] = 'S\'està movent missatge(s)...';
$messages['copyingmessage'] = 'S\'està copiant missatge(s)...';
$messages['copyingcontact'] = 'S\'està copiant contacte(s)...';
+$messages['movingcontact'] = 'S\'estan movent els contacte(s)...';
$messages['deletingmessage'] = 'S\'està suprimint missatge(s)...';
$messages['markingmessage'] = 'S\'està marcant missatge(s)...';
$messages['addingmember'] = 'S\'està afegint contacte(s) al grup...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'S\'està important, espereu si us plau...';
$messages['importformaterror'] = 'La importació ha fallat. El fitxer pujat no és un fitxer de dades vàlid.';
$messages['importconfirm'] = '<b>S\'han importat $inserted contactes correctament</b>';
$messages['importconfirmskipped'] = '<b>S\'han descartat $skipped entrades ja existents</b>';
+$messages['importmessagesuccess'] = '<b>S\'han importat $nr missatges correctament</b>';
+$messages['importmessageerror'] = 'La importació ha fallat. El fitxer que heu pujat no és un fitxer de missatges vàlid o no és un fitxer de bústia.';
$messages['opnotpermitted'] = 'Operació no permesa!';
$messages['nofromaddress'] = 'Falta l\'adreça de correu a la identitat seleccionada.';
$messages['editorwarning'] = 'Si canvieu a l\'editor de text pla perdreu tot el format del text. Voleu continuar?';
diff --git a/program/localization/cy_GB/messages.inc b/program/localization/cy_GB/messages.inc
index edadc3b45..6323d8c9c 100644
--- a/program/localization/cy_GB/messages.inc
+++ b/program/localization/cy_GB/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Yn cael gwared a\'r fformatio...';
$messages['messageopenerror'] = 'Methwyd llwytho\'r neges o\'r gweinydd';
$messages['fileuploaderror'] = 'Methwyd llwytho\'r ffeil i fyny';
$messages['filesizeerror'] = 'Mae\'r ffeil a lwythyd fyny yn fwy na\'r maint uchaf ganiateir o $size';
-$messages['copysuccess'] = 'Copïwyd $nr cyfeiriad yn llwyddiannus';
-$messages['copyerror'] = 'Methwyd copïo unrhyw gyfeiriad';
+$messages['copysuccess'] = 'Copïwyd $nr cyswllt yn llwyddiannus';
+$messages['movesuccess'] = 'Symudwyd $nr cyswllt yn llwyddiannus.';
+$messages['copyerror'] = 'Methwyd copïo unrhyw gysylltiadau.';
+$messages['moveerror'] = 'Methwyd symud unrhyw gysylltiadau.';
$messages['sourceisreadonly'] = 'Mae ffynhonnell y cyfeiriadau i\'w ddarllen yn unig';
$messages['errorsavingcontact'] = 'Methwyd cadw cyfeiriad y cyswllt';
$messages['movingmessage'] = 'Yn symud neges...';
$messages['copyingmessage'] = 'Yn copïo\'r neges';
$messages['copyingcontact'] = 'Yn copïo cyswllt/cysylltiadau...';
+$messages['movingcontact'] = 'Yn symud cyswllt/cysylltiadau...';
$messages['deletingmessage'] = 'Yn dileu neges(euon)...';
$messages['markingmessage'] = 'Yn marcio neges(euon)...';
$messages['addingmember'] = 'Yn ychwanegu cyswllt/cysylltiadau i\'r grŵp...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Yn mewnforio, arhoswch os gwelwch yn dda...';
$messages['importformaterror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil ddata dilys.';
$messages['importconfirm'] = '<b>Fe mewnforiwyd $inserted cyswllt yn llwyddiannus, anwybyddwyd $skipped cofnod presennol</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Neidiwyd $skipped cofnod oedd yn bodoli</b>';
+$messages['importmessagesuccess'] = 'Mewnforiwyd $nr neges yn llwyddiannus';
+$messages['importmessageerror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil neges neu blwch ebost dilys';
$messages['opnotpermitted'] = 'Ni chaniateir y weithred!';
$messages['nofromaddress'] = 'Cyfeiriad e-bost ar goll yn y personoliaeth a ddewiswyd';
$messages['editorwarning'] = 'Mi fydd newid i\'r golygydd testun plaen yn golygu byddwch chi\'n colli unrhyw arddulliau yn eich testun. Hoffech chi barhau?';
diff --git a/program/localization/da_DK/messages.inc b/program/localization/da_DK/messages.inc
index 9a0b8e4a5..7429fd4e5 100644
--- a/program/localization/da_DK/messages.inc
+++ b/program/localization/da_DK/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Fjerner formatering fra besked...';
$messages['messageopenerror'] = 'Beskeden kunne ikke hentes fra serveren.';
$messages['fileuploaderror'] = 'Upload mislykkedes.';
$messages['filesizeerror'] = 'Den indsatte fil fylder mere end det maksimale på $size.';
-$messages['copysuccess'] = 'Det lykkedes at kopiere $nr adresser.';
-$messages['copyerror'] = 'Kunne ikke kopiere adresserne.';
+$messages['copysuccess'] = '$nr blev kopieret.';
+$messages['movesuccess'] = '$nr kontakter blev flyttet.';
+$messages['copyerror'] = 'Kunne ikke kopiere nogen kontakter.';
+$messages['moveerror'] = 'Kunne ikke flytte nogen kontakter.';
$messages['sourceisreadonly'] = 'Denne adressekilde er kun til læsning.';
$messages['errorsavingcontact'] = 'Kunne ikke gemme kontaktadressen.';
$messages['movingmessage'] = 'Flytter besked(er)...';
$messages['copyingmessage'] = 'Kopierer besked(er)...';
$messages['copyingcontact'] = 'Kopierer kontakt(er)...';
+$messages['movingcontact'] = 'Flytter kontakt(er)...';
$messages['deletingmessage'] = 'Sletter besked(er)...';
$messages['markingmessage'] = 'Markerer besked(er)...';
$messages['addingmember'] = 'Tilføjer kontakt(er) til gruppen...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importerer, vent venligst...';
$messages['importformaterror'] = 'Importering mislykkedes! Den uploadede fil indeholder ikke gyldige data til importering.';
$messages['importconfirm'] = '<b>Importerede $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Sprang over $skipped eksisterende kontakter</b>';
+$messages['importmessagesuccess'] = 'Importerede $nr beskeder';
+$messages['importmessageerror'] = 'Import mislykkedes! Den uploadede fil er ikke en gyldig besked eller mailbox-fil';
$messages['opnotpermitted'] = 'Handlingen er ikke tilladt!';
$messages['nofromaddress'] = 'Der mangler en e-mailadresse i den valgte identitet.';
$messages['editorwarning'] = 'Al formatering af teksten forsvinder, hvis der skiftes til ren tekst. Vil du fortsætte?';
diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc
index ba0936d28..7b6099924 100644
--- a/program/localization/de_DE/messages.inc
+++ b/program/localization/de_DE/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Entferne Formatierungen...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden.';
$messages['fileuploaderror'] = 'Hochladen der Datei fehlgeschlagen.';
$messages['filesizeerror'] = 'Die hochzuladende Datei überschreitet die Maximalgröße von $size.';
-$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert.';
-$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden.';
+$messages['copysuccess'] = 'Erfolgreich kopiert $ nr Kontakte.';
+$messages['movesuccess'] = 'Erfolgreich verschoben $ nr Kontakte.';
+$messages['copyerror'] = 'Die Kontakte konnten nicht kopiert werden.';
+$messages['moveerror'] = 'Die Kontakte konnten nicht verschoben werden.';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden.';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden.';
$messages['movingmessage'] = 'Die E-Mail wird verschoben...';
$messages['copyingmessage'] = 'Kopiere Nachrichten...';
$messages['copyingcontact'] = 'Kontakte werden kopiert...';
+$messages['movingcontact'] = 'Kontakt(e) wird verschoben...';
$messages['deletingmessage'] = 'Lösche Nachricht(en)...';
$messages['markingmessage'] = 'Markiere Nachricht(en)...';
$messages['addingmember'] = 'Füge Kontakte der Gruppe hinzu...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importformaterror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert.</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen.</b>';
+$messages['importmessagesuccess'] = 'Nachrichten $nr erfolgreich importiert';
+$messages['importmessageerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität.';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
diff --git a/program/localization/el_GR/messages.inc b/program/localization/el_GR/messages.inc
index dc2499d8b..504baa674 100644
--- a/program/localization/el_GR/messages.inc
+++ b/program/localization/el_GR/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Μετακίνηση διαμορφώσεων κει
$messages['messageopenerror'] = 'Η φόρτωση μηνυμάτων από τον διακομιστή απέτυχε';
$messages['fileuploaderror'] = 'Ανέβασμα αρχείου απέτυχε';
$messages['filesizeerror'] = 'Το ανεβασμένο αρχείο ξεπερνάει το μέγιστο μέγεθος των $size';
-$messages['copysuccess'] = 'Επιτυχής αντιγραφή $nr διευθύνσεων';
-$messages['copyerror'] = 'Αποτυχία αντιγραφής διευθύνσεων';
+$messages['copysuccess'] = 'Επιτυχής αντιγραφή $ επαφών αριθ..';
+$messages['movesuccess'] = 'Με επιτυχία μεταφέρθηκαν $ αριθ. επαφές.';
+$messages['copyerror'] = 'Αποτυχία αντιγραφής επαφών.';
+$messages['moveerror'] = 'Δεν μπορούσε να κινηθεί καμία επαφή.';
$messages['sourceisreadonly'] = 'Η διεύθυνση έχει μόνο δικαίωμα ανάγνωσης';
$messages['errorsavingcontact'] = 'Αποθήκευση επαφής απέτυχε';
$messages['movingmessage'] = 'Μετακίνηση μηνύματος...';
$messages['copyingmessage'] = 'Αντιγραφή μηνυμάτων...';
$messages['copyingcontact'] = 'Αντιγραφή επαφών...';
+$messages['movingcontact'] = 'Μετακίνηση επαφής(ων)...';
$messages['deletingmessage'] = 'Διαγραφή μηνυμάτων...';
$messages['markingmessage'] = 'Σήμανση μηνυμάτων...';
$messages['addingmember'] = 'Προσθήκη επαφών στην ομάδα...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Εισαγωγή, παρακαλώ περιμένετ
$messages['importformaterror'] = 'Η εισαγωγή απέτυχε! Το αρχείο δεν είναι έγκυρο εισαγωγής δεδομένων.';
$messages['importconfirm'] = '<b>Εισήχθησαν $inserted επαφές με επιτυχία</b>';
$messages['importconfirmskipped'] = '<b>Παραλήφθηκαν $skipped υπάρχοντα αντικείμενα</b>';
+$messages['importmessagesuccess'] = 'Επιτυχής εισαγωγή $nr μηνυμάτων';
+$messages['importmessageerror'] = 'Η εισαγωγή απέτυχε! Το αρχείο δεν είναι έγκυρο εισαγωγής δεδομένων.';
$messages['opnotpermitted'] = 'Η λειτουργία δεν επιτρέπεται!';
$messages['nofromaddress'] = 'Στην επιλεγμένη ταυτότητα, λείπει η email διεύθυνση';
$messages['editorwarning'] = 'Η μετάβαση στην επεξεργασία απλού κειμένου θα προκαλέσει κατάργηση της μορφοποίησης. Είστε βέβαιοι πως θέλετε να συνεχίσετε;';
diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc
index 21e7539b4..bba70b148 100644
--- a/program/localization/en_GB/messages.inc
+++ b/program/localization/en_GB/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address book is read-only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/eo/messages.inc b/program/localization/eo/messages.inc
index 4d72fe54b..a7765e442 100644
--- a/program/localization/eo/messages.inc
+++ b/program/localization/eo/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Foriganta formatan de mesaĝo...';
$messages['messageopenerror'] = 'Ne povis ŝargi mesaĝon de servilo';
$messages['fileuploaderror'] = 'Malsukcesis alŝuti dosieron';
$messages['filesizeerror'] = 'La alŝutita dosiero superas la maksimuman grandon de $size';
-$messages['copysuccess'] = 'Sukcese kopiis $nr adresojn';
-$messages['copyerror'] = 'Ne povis kopii ajn adreson';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Ĉi tiu adres-fonto estas nurlegebla';
$messages['errorsavingcontact'] = 'Ne povis savi la kontakt-adreson';
$messages['movingmessage'] = 'Translokanta mesaĝon...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/es_AR/messages.inc b/program/localization/es_AR/messages.inc
index 1cec9f01d..1a0240222 100644
--- a/program/localization/es_AR/messages.inc
+++ b/program/localization/es_AR/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removiendo el formato del mensaje...';
$messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor';
$messages['fileuploaderror'] = 'Error al subir archivos';
$messages['filesizeerror'] = 'El archivo excede el tamaño maximo ($size)';
-$messages['copysuccess'] = '$nr direcciones copiadas con éxito';
-$messages['copyerror'] = 'No se pudo copiar ninguna dirección';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Esta dirección es de sólo-lectura';
$messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto';
$messages['movingmessage'] = 'Moviendo mensaje...';
$messages['copyingmessage'] = 'Copiando mensaje...';
$messages['copyingcontact'] = 'Copiando contacto(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Eliminando contacto(s)...';
$messages['markingmessage'] = 'Marcando mensaje(s)...';
$messages['addingmember'] = 'Agregando contacto(s) al grupo...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importando, aguarde por favor...';
$messages['importformaterror'] = 'Importación fallida! El archivo subido no es un archivo de importación de datos válido.';
$messages['importconfirm'] = '<b>Se importaron $inserted contactos correctamente. $skipped ya existentes fueron ignorados</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Se ignoraron $skipped entradas ya existentes</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operación no permitida!';
$messages['nofromaddress'] = 'El contacto seleccionado no tiene dirección de e-mail';
$messages['editorwarning'] = 'Si cambia a texto plano se perderán todas las opciones de formato. ¿Desea continuar?';
diff --git a/program/localization/eu_ES/messages.inc b/program/localization/eu_ES/messages.inc
index a3985b233..6dd781530 100644
--- a/program/localization/eu_ES/messages.inc
+++ b/program/localization/eu_ES/messages.inc
@@ -17,28 +17,28 @@
*/
$messages = array();
-$messages['errortitle'] = 'An error occurred!';
-$messages['loginfailed'] = 'Saio sarrerak huts egin du';
-$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-ak onartzen';
+$messages['errortitle'] = 'Errore bat gertatu da!';
+$messages['loginfailed'] = 'Saio hasierak huts egin du.';
+$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-rik onartzen';
$messages['sessionerror'] = 'Zure saioa baliogabea da edo iraungita dago';
-$messages['storageerror'] = 'Huts IMAP zerbitzarira konektatzean';
-$messages['servererror'] = 'Server Error!';
-$messages['servererrormsg'] = 'Server Error: $msg';
-$messages['dberror'] = 'Database Error!';
-$messages['requesttimedout'] = 'Request timed out';
-$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
-$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
-$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
-$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
-$messages['invalidrequest'] = 'Invalid request! No data was saved.';
-$messages['invalidhost'] = 'Invalid server name.';
+$messages['storageerror'] = 'Huts egin du biltegiratze-zerbitzarira konektatzean';
+$messages['servererror'] = 'Zerbitzari-errorea!';
+$messages['servererrormsg'] = 'Zerbitzari-errorea: $msg';
+$messages['dberror'] = 'Datu-basearen errorea!';
+$messages['requesttimedout'] = 'Eskaera denboraz kanpo.';
+$messages['errorreadonly'] = 'Ezin da ekintza burutu. Karpeta soilik irakurtzekoa da.';
+$messages['errornoperm'] = 'Ezin da ekintza burutu. Baimena ukatua.';
+$messages['erroroverquota'] = 'Ezin da ekintza burutu. Diskoan ez dago tokirik.';
+$messages['erroroverquotadelete'] = 'Diskoan ez dago tokirik. Erabili SHIFT+DEL mezua ezabatzeko.';
+$messages['invalidrequest'] = 'Eskaera ez da baliozkoa! Datuak ez dira gorde.';
+$messages['invalidhost'] = 'Zerbitzari-izena ez da baliozkoa.';
$messages['nomessagesfound'] = 'Ez da mezurik aurkitu posta kutxa honetan';
$messages['loggedout'] = 'Saioa behar bezala amaitu duzu. Agur!';
$messages['mailboxempty'] = 'Posta kutxa hutsik dago';
-$messages['refreshing'] = 'Refreshing...';
+$messages['refreshing'] = 'Freskatzen...';
$messages['loading'] = 'Kargatzen...';
-$messages['uploading'] = 'Uploading file...';
-$messages['uploadingmany'] = 'Uploading files...';
+$messages['uploading'] = 'Fitxategia kargatzen...';
+$messages['uploadingmany'] = 'Fitxategiak kargatzen...';
$messages['loadingdata'] = 'Datuak kargatzen...';
$messages['checkingmail'] = 'Mezu berrien bila arakatzen...';
$messages['sendingmessage'] = 'Mezua bidaltzen...';
@@ -48,124 +48,129 @@ $messages['messagesaved'] = 'Mezua zirriborroetan gordea';
$messages['successfullysaved'] = 'Behar bezala gorde da';
$messages['addedsuccessfully'] = 'Txartela behar bezala gehitu da helbide liburura';
$messages['contactexists'] = 'ePosta honetako txartel bat badago dagoeneko';
-$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['contactnameexists'] = 'Lehendik badago izen hori duen kontaktua.';
$messages['blockedimages'] = 'Zure pribazitatea mantentzeko urruneko irudiak blokeatu egin dira.';
$messages['encryptedmessage'] = 'Hau enkriptaturiko mezu bat da eta ezin da bistarazi. Barkatu!';
$messages['nocontactsfound'] = 'Ez da txartelik aurkitu';
$messages['contactnotfound'] = 'Eskatutako txartela ez da aurkitu';
-$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
+$messages['contactsearchonly'] = 'Sartu kontaktua aurkitzeko bilaketa daturen bat.';
$messages['sendingfailed'] = 'Huts mezua bidaltzerakoan';
-$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['senttooquickly'] = 'Itxaron $sec segundo mezua bidali aurretik, mesedez.';
$messages['errorsavingsent'] = 'Errorea gertatu da bidalitako mezua gordetzean';
$messages['errorsaving'] = 'Errore bat gertatu da gordetzean';
$messages['errormoving'] = 'Ezin da mezua mugitu';
-$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errorcopying'] = 'Ezin d(ir)a kopiatu mezua(k).';
$messages['errordeleting'] = 'Ezin da mezua ezabatu';
-$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['errormarking'] = 'Ezin d(ir)a markatu mezua(k).';
$messages['deletecontactconfirm'] = 'Benetan hautaturiko kontaktuak ezabatu nahi dituzula?';
-$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletegroupconfirm'] = 'Seguru zaude hautatutako taldea ezabatu nahi duzula?';
$messages['deletemessagesconfirm'] = 'Benetan hautaturiko mezuak ezabatu nahi dituzula?';
$messages['deletefolderconfirm'] = 'Benetan Karpeta hau ezabatu nahi duzu?';
$messages['purgefolderconfirm'] = 'Benetan karpeta honetako mezu guziak ezabatu nahi dituzu?';
-$messages['contactdeleting'] = 'Deleting contact(s)...';
-$messages['groupdeleting'] = 'Deleting group...';
-$messages['folderdeleting'] = 'Deleting folder...';
-$messages['foldermoving'] = 'Moving folder...';
-$messages['foldersubscribing'] = 'Subscribing folder...';
-$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['contactdeleting'] = 'Kontaktua(k) ezabatzen...';
+$messages['groupdeleting'] = 'Taldea ezabatzen...';
+$messages['folderdeleting'] = 'Karpeta ezabatzen...';
+$messages['foldermoving'] = 'Karpeta mugitzen...';
+$messages['foldersubscribing'] = 'Karpeta harpidetzen...';
+$messages['folderunsubscribing'] = 'Karpetaren harpidetza kentzen...';
$messages['formincomplete'] = 'Inprimakia ez guztiz bete';
$messages['noemailwarning'] = 'Mesedez idatzi baliozko eposta helbide bat';
$messages['nonamewarning'] = 'Mesedez izen bat idatzi';
$messages['nopagesizewarning'] = 'Mesedez paper tamaina idatzi';
-$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
+$messages['nosenderwarning'] = 'Sartu bidaltzailearen helbide elektronikoa, mesedez.';
$messages['norecipientwarning'] = 'Mesedez behintzat hartzaile bat idatzi';
$messages['nosubjectwarning'] = '"Gaia" eremua hutsik dago. Bat idatzi nahi al duzu?';
$messages['nobodywarning'] = 'Testu gabeko mezu hau bidali?';
$messages['notsentwarning'] = 'Mezua ez da bidali. Mezua ezeztatu nahi al duzu?';
$messages['noldapserver'] = 'Mesedez hautatu bilaketa egiteko LDAP zerbitzari bat';
$messages['nosearchname'] = 'Mesedez idatzi kontaktu izen bat edo eposta helbide bat';
-$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['notuploadedwarning'] = 'Oraindik ez dira kargatu eranskin guztiak. Itxaron edo ezeztatu karga.';
$messages['searchsuccessful'] = '$nr mezu aurkiturik';
-$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['contactsearchsuccessful'] = '$nr kontaktu aurkitu dira.';
$messages['searchnomatch'] = 'Bilaketak ez du emaitzarik itzuli';
$messages['searching'] = 'Bilatzen...';
$messages['checking'] = 'Arakatzen...';
$messages['nospellerrors'] = 'Ez da ortografia errorerik aurkitu';
$messages['folderdeleted'] = 'Karpeta behar bezala ezabatu da';
-$messages['foldersubscribed'] = 'Folder successfully subscribed.';
-$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
-$messages['folderpurged'] = 'Folder has successfully been emptied.';
-$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['foldersubscribed'] = 'Karpeta ongi harpidetu da.';
+$messages['folderunsubscribed'] = 'Karpetaren harpidetza ongi kendu da.';
+$messages['folderpurged'] = 'Karpeta ongi hustu da.';
+$messages['folderexpunged'] = 'Karpeta ongi trinkotu da.';
$messages['deletedsuccessfully'] = 'Behar bezala ezabatu da';
$messages['converting'] = 'Mezuaren formatua ezabatzen';
$messages['messageopenerror'] = 'Ezin da zerbitzaritik mezua kargatu';
$messages['fileuploaderror'] = 'Huts fitxategia eransterakoan';
$messages['filesizeerror'] = 'Erantsi nahi duzun fitxategian $size tamaina muga gainditzen du';
-$messages['copysuccess'] = 'Ondo kopiatu dira $nr helbideak';
-$messages['copyerror'] = 'Ezin da helbiderik kopiatu';
+$messages['copysuccess'] = '$nr kontaktu ongi kopiatu dira.';
+$messages['movesuccess'] = '$nr kontaktu ongi mugitu dira.';
+$messages['copyerror'] = 'Ezin da kontakturik kopiatu.';
+$messages['moveerror'] = 'Ezin da kontakturik mugitu.';
$messages['sourceisreadonly'] = 'Helbide iturburua irakurtzeko soilik da';
$messages['errorsavingcontact'] = 'Ezin da kontaktuaren helbidea gorde';
$messages['movingmessage'] = 'Mezua mugitzen...';
-$messages['copyingmessage'] = 'Copying message(s)...';
-$messages['copyingcontact'] = 'Copying contact(s)...';
-$messages['deletingmessage'] = 'Deleting message(s)...';
-$messages['markingmessage'] = 'Marking message(s)...';
-$messages['addingmember'] = 'Adding contact(s) to the group...';
-$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['copyingmessage'] = 'Mezuak kopiatzen...';
+$messages['copyingcontact'] = 'Kontaktua(k) kopiatzen...';
+$messages['movingcontact'] = 'Kontaktua(k) mugitzen...';
+$messages['deletingmessage'] = 'Mezua(k) ezabatzen...';
+$messages['markingmessage'] = 'Mezua(k) markatzen...';
+$messages['addingmember'] = 'Kontaktua(k) taldera gehitzen...';
+$messages['removingmember'] = 'Kontaktua(k) taldetik ezabatzen...';
$messages['receiptsent'] = 'Ondo bidalia irakurritako agiria';
$messages['errorsendingreceipt'] = 'Ezin da agiria bidali';
-$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['deleteidentityconfirm'] = 'Seguru zaude identitate hau ezabatu nahi duzula?';
$messages['nodeletelastidentity'] = 'Ezin da izaera hau ezabatu, zure bakarra da';
$messages['forbiddencharacter'] = 'Karpeta izenak debekatutako karaktereak ditu';
-$messages['selectimportfile'] = 'Please select a file to upload.';
-$messages['addresswriterror'] = 'The selected address book is not writeable.';
-$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
-$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
-$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
-$messages['importwait'] = 'Importing, please wait...';
-$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
-$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
-$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
-$messages['opnotpermitted'] = 'Operation not permitted!';
-$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
-$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
-$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
-$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
-$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
-$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
-$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
-$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
-$messages['smtperror'] = 'SMTP Error: $msg';
-$messages['emailformaterror'] = 'Invalid 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['contactrestoreerror'] = 'Could not restore deleted contact(s).';
-$messages['contactrestored'] = 'Contact(s) restored successfully.';
-$messages['groupdeleted'] = 'Group deleted successfully.';
-$messages['grouprenamed'] = 'Group renamed successfully.';
-$messages['groupcreated'] = 'Group created successfully.';
-$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
-$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
-$messages['savedsearchcreated'] = 'Saved search created successfully.';
-$messages['savedsearchcreateerror'] = 'Could not create saved search.';
-$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.';
-$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
-$messages['namecannotbeempty'] = 'Name cannot be empty.';
-$messages['nametoolong'] = 'Name is too long.';
-$messages['folderupdated'] = 'Folder updated successfully.';
-$messages['foldercreated'] = 'Folder created successfully.';
-$messages['invalidimageformat'] = 'Not a valid image format.';
-$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
-$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
-$messages['messagetoobig'] = 'The message part is too big to process it.';
-$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
-$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+$messages['selectimportfile'] = 'Hautatu kargatzeko fitxategia.';
+$messages['addresswriterror'] = 'Hautatutako helbide-liburua ezin da editatu.';
+$messages['contactaddedtogroup'] = 'Kontaktuak ongi gehitu dira taldera.';
+$messages['contactremovedfromgroup'] = 'Kontaktuak ongi ezabatu dira taldetik.';
+$messages['nogroupassignmentschanged'] = 'Talde-esleipena ez da aldatu.';
+$messages['importwait'] = 'Inportatzen, itxaron mesedez...';
+$messages['importformaterror'] = 'Huts egin du inportatzean. Kargatu duzun fitxategia ez da inportatzeko fitxategi baliozkoa.';
+$messages['importconfirm'] = '<b>Ongi inportatu dira $inserted kontaktu</b>';
+$messages['importconfirmskipped'] = '<b>Saltatu dira $skipped sarrera</b>';
+$messages['importmessagesuccess'] = '$nr mezu ongi inportatu dira.';
+$messages['importmessageerror'] = 'Inportazio akatsa! Kargatutako fitxategia ez da baliozko mezua edo posta-fitxategia.';
+$messages['opnotpermitted'] = 'Ekintza ez baimendua!';
+$messages['nofromaddress'] = 'Helbide elektronikoa falta da hautatutako identitatean.';
+$messages['editorwarning'] = 'Formaturik gabeko testu-editorera pasatzeak ekar dezake testu-formatu guztien galera. Jarraitu nahi duzu?';
+$messages['httpreceivedencrypterror'] = 'Ezarpen akats larria gertatu da. Jarri harremanetan zure administratzailearekin ahalik eta lasterren. <b>Zure mezua ezin da bidali.</b>';
+$messages['smtpconnerror'] = 'SMTP errorea ($code): Zerbitzariarekiko konexioak huts egin du.';
+$messages['smtpautherror'] = 'SMTP errorea ($code): Egiaztapenak huts egin du.';
+$messages['smtpfromerror'] = 'SMTP errorea ($code): "$from" ($msg) bidaltzailearen ezartzeak huts egin du.';
+$messages['smtptoerror'] = 'SMTP errorea ($code): "$to" ($msg) hartzailea gehitzen huts egin du.';
+$messages['smtprecipientserror'] = 'SMTP errorea: Ezin da hartzaileen zerrenda analizatu.';
+$messages['smtperror'] = 'SMTP errorea: $msg';
+$messages['emailformaterror'] = 'Helbide elektronikoa ez da baliozkoa: $email';
+$messages['toomanyrecipients'] = 'Hartzaile gehiegi. Txikitu hartzaile kopura hona $max.';
+$messages['maxgroupmembersreached'] = 'Taldeko partaideen kopurua $max -ko maximoa gainditzen du:';
+$messages['internalerror'] = 'Barne akatsa. Saiatu berriz, mesedez.';
+$messages['contactdelerror'] = 'Ezin d(ir)a kontaktua(k) ezabatu.';
+$messages['contactdeleted'] = 'Kontaktua(k) ongi ezabatu dira.';
+$messages['contactrestoreerror'] = 'Ezin d(ir)a ezabatutako kontaktua(k) leheneratu.';
+$messages['contactrestored'] = 'Kontaktua(k) ongi leheneratu d(ir)a.';
+$messages['groupdeleted'] = 'Taldea ongi ezabatu da.';
+$messages['grouprenamed'] = 'Taldea ongi berrizendatu da.';
+$messages['groupcreated'] = 'Taldea ongi sortu da.';
+$messages['savedsearchdeleted'] = 'Bilaketaren gordetzea ongi ezabatu da.';
+$messages['savedsearchdeleteerror'] = 'Ezin da ezabatu bilaketaren gordeketa.';
+$messages['savedsearchcreated'] = 'Bilaketaren gordeketa ongi sortu da.';
+$messages['savedsearchcreateerror'] = 'Ezin da sortu bilaketaren gordeketa.';
+$messages['messagedeleted'] = 'Mezua(k) ongi ezabatu dira.';
+$messages['messagemoved'] = 'Mezua(k) ongi mugitu d(ir)a.';
+$messages['messagecopied'] = 'Mezua(k) ongi kopiatu d(ir)a';
+$messages['messagemarked'] = 'Mezua(k) ongi markatu d(ir)a';
+$messages['autocompletechars'] = 'Sartu gutxienez $min karaktere osatze automatikorako';
+$messages['autocompletemore'] = 'Bat datozen sarrera gehiago topatu dira. Idatzi karaktere gehiago.';
+$messages['namecannotbeempty'] = 'Izena ezin da hutsik egon.';
+$messages['nametoolong'] = 'Izena luzeegia da.';
+$messages['folderupdated'] = 'Karpeta ongi eguneratu da.';
+$messages['foldercreated'] = 'Karpeta ongi sortu da.';
+$messages['invalidimageformat'] = 'Irudi formatua ez da baliozkoa.';
+$messages['mispellingsfound'] = 'Ortografia akatsak detektatu dira mezuan.';
+$messages['parentnotwritable'] = 'Ezin da karpeta sortu/mugi hautatutako goragoko karpetan. Sartzeko baimenik ez.';
+$messages['messagetoobig'] = 'Mezu-zatia handiegia da prozesatzeko.';
+$messages['attachmentvalidationerror'] = 'KONTUZ! Eranskin hau susmagarria da zeren bere izaera ez dator bat mezuan deklaratutakoarekin. Bidaltzailearekin fidatzen ez bazara ez zenuke nabigatzailean ireki behar eduki maltzurra izan dezakeelako.<br/><br/><em>Deklaratua: $expected; erreala: $detected</em>';
+$messages['noscriptwarning'] = 'Kontuz: web-posta zerbitzu honek Javascript behar du! Erabili nahi baduzu gaitu Javascript zure nabigatzailearen hobespenetan.';
?>
diff --git a/program/localization/fa_AF/messages.inc b/program/localization/fa_AF/messages.inc
index 4f3d4be55..51ad5b717 100644
--- a/program/localization/fa_AF/messages.inc
+++ b/program/localization/fa_AF/messages.inc
@@ -17,33 +17,33 @@
*/
$messages = array();
-$messages['errortitle'] = 'An error occurred!';
-$messages['loginfailed'] = 'داخل شدن به سيستم موفق نه شد';
+$messages['errortitle'] = 'خطا رخ داد';
+$messages['loginfailed'] = 'خطا در ورود به سیستم';
$messages['cookiesdisabled'] = 'جستجوگر شما cookies را قبول نميکند';
$messages['sessionerror'] = 'جلسه شما وجود ندارد و يا هم از زمان معين آن گذشته است';
$messages['storageerror'] = 'وصل شدن به آیمیپ سرور موفق نشد';
$messages['servererror'] = 'Server Error!';
-$messages['servererrormsg'] = 'Server Error: $msg';
-$messages['dberror'] = 'Database Error!';
-$messages['requesttimedout'] = 'Request timed out';
+$messages['servererrormsg'] = 'خطای سرور: $msg';
+$messages['dberror'] = 'خطای پایگاه داده';
+$messages['requesttimedout'] = 'عدم پاسخگویی در زمان مقرر';
$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Invalid request! No data was saved.';
-$messages['invalidhost'] = 'Invalid server name.';
+$messages['invalidhost'] = 'نام سرور نامعتبر است';
$messages['nomessagesfound'] = 'هيچ پيغامی در اين صندوق پستي دريافت نه شد';
$messages['loggedout'] = 'جلسه شما بصورت مکمل فسخ شده است خدا حافظ';
$messages['mailboxempty'] = 'صندوق پستي خالي است';
-$messages['refreshing'] = 'Refreshing...';
-$messages['loading'] = 'در حال باز شدن ...';
-$messages['uploading'] = 'Uploading file...';
-$messages['uploadingmany'] = 'Uploading files...';
-$messages['loadingdata'] = 'در حال بار کردن دیتا';
+$messages['refreshing'] = 'دوباره سازی....';
+$messages['loading'] = 'در حال بارگزاری...';
+$messages['uploading'] = 'در حال بارگزاری فایل...';
+$messages['uploadingmany'] = 'در حال بارگزاری فایل ها...';
+$messages['loadingdata'] = 'در حال بارگزاری داده';
$messages['checkingmail'] = 'پيغام های جديد را بررسي ميکند';
$messages['sendingmessage'] = 'پيغام ها را ارسال ميکند';
$messages['messagesent'] = 'پیام موفقانه ارسال گردید';
-$messages['savingmessage'] = 'در حال حفظ کردن پیام';
+$messages['savingmessage'] = 'در حال ذخیره کردن پیام';
$messages['messagesaved'] = 'پيغام را به پیش نويس حفظ کرد';
$messages['successfullysaved'] = 'حفظ پیام موفقانه صورت گرفت';
$messages['addedsuccessfully'] = 'آدرس بصورت مکمل در کتاب ادرس علاوه شد';
@@ -59,23 +59,23 @@ $messages['senttooquickly'] = 'ثانیه منتظر باشید$secلطفا مد
$messages['errorsavingsent'] = 'در جريان حفظ کردن پیام ارسال شده يکاشتباه به وجود امد';
$messages['errorsaving'] = 'در جريان حفظ کردن يکاشتباه به وجود امد';
$messages['errormoving'] = 'پيغام نقل مکان شده نتوانست';
-$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errorcopying'] = 'امکان کپی پیام (ها) وجود ندارد';
$messages['errordeleting'] = 'پيغام حذف شده نتوانست';
-$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['errormarking'] = 'امکان انتخاب پیام (ها) وجود ندارد';
$messages['deletecontactconfirm'] = 'آيا واقعاً شما ميخواهيد که آدرس های انتخاب شده را حذف کنيد؟';
$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'آيا واقعاً شما ميخواهيد که پيغام هاي انتخاب شده را حذف کنيد؟';
$messages['deletefolderconfirm'] = 'آيا واقعاً شما ميخواهيد که اين پوشه را حذف کنيد؟';
$messages['purgefolderconfirm'] = 'آيا واقعاً شما ميخواهيد تمام پيغام های که در اين پوشه وجود دارد حذف کنيد؟';
$messages['contactdeleting'] = 'Deleting contact(s)...';
-$messages['groupdeleting'] = 'Deleting group...';
+$messages['groupdeleting'] = 'در حال حذف گروه...';
$messages['folderdeleting'] = 'در حال حذف پوشه';
$messages['foldermoving'] = 'در حال انتقال پوشه';
$messages['foldersubscribing'] = 'Subscribing folder...';
$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'فورمه بصورت مکمل خانه پري نه شده است';
$messages['noemailwarning'] = 'لطفاً يک ايميل ادرس موجود را داخل کنيد';
-$messages['nonamewarning'] = 'لطفاً يک نام را داخل کنيد';
+$messages['nonamewarning'] = 'لطفاً يک نام وارد کنيد';
$messages['nopagesizewarning'] = 'لطفاً اندازه يک صفحه را داخل کنيد';
$messages['nosenderwarning'] = 'لطفاً ایمیل آدرس ارسال کننده را داخل کنید';
$messages['norecipientwarning'] = 'لطفاً کم از کم يک آدرس گيرينده را نوشته / داخل کنيد';
@@ -85,29 +85,32 @@ $messages['notsentwarning'] = 'پيغام ارسال نه شده است آیا
$messages['noldapserver'] = 'لطفاً يک ايل دپ سرور را بخاطر جستجو انتخاب کنيد';
$messages['nosearchname'] = 'لطفاً يک نام تماس و يا هم يک ايميل ادرس را داخل کنيد';
$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
-$messages['searchsuccessful'] = '$nr پیام دریافت شد';
-$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchsuccessful'] = '$nr پیام یافت شد';
+$messages['contactsearchsuccessful'] = '$nr حساب کاربری یافت شد';
$messages['searchnomatch'] = 'جستجو گر موفق به دریافت هیچ گونه اثری نشد';
-$messages['searching'] = 'در حال جستجو';
+$messages['searching'] = 'در حال جستجو..';
$messages['checking'] = 'در حال بررسی';
$messages['nospellerrors'] = 'هيچ اشتباه املايي را دريافت نه کرد';
$messages['folderdeleted'] = 'پوشه موفقانه از بين رفت/ حذف گرديد';
$messages['foldersubscribed'] = 'Folder successfully subscribed.';
$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
-$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderpurged'] = 'محتوای پوشه ها با موفقیت پاک شدند';
$messages['folderexpunged'] = 'Folder has successfully been compacted.';
-$messages['deletedsuccessfully'] = 'موفقانه حذف شد';
-$messages['converting'] = 'در حال از بین بردن شکل دهی و ساختار (فرمت)';
+$messages['deletedsuccessfully'] = 'با موفقیت حذف شد';
+$messages['converting'] = 'در حال پاک کردن ساختار';
$messages['messageopenerror'] = 'پيغام از سرور جريان کرده نتوانست';
-$messages['fileuploaderror'] = 'اپلود کردن فايل موفق نه شد.';
+$messages['fileuploaderror'] = 'بارگزاری فايل با خطا مواجه شد.';
$messages['filesizeerror'] = 'تثبیت شده میباشد$size حجم فایل آپلود شده بیشتر از حجم کلی';
-$messages['copysuccess'] = 'آدرس ها کاپی شد. $nrموفقانه بع تعداد';
-$messages['copyerror'] = 'هيچ يک از تماس ها را کاپي کرده نتوانست';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'اجازه نمامه کود / منبع این آدرس قفط خواندنی است';
$messages['errorsavingcontact'] = 'ادرس این پیام را حفظکرده نتوانست';
$messages['movingmessage'] = 'ذر حال انتقال پیام...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'در حال وارد کردن لطفا صبر کنی
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'اجازه این عملکرد را ندارید';
$messages['nofromaddress'] = 'بخش ایمیل آدرس در شناخت نامه انتخاب شده مفقود است.';
$messages['editorwarning'] = 'استفاده از تصحیح کننده متن ساده تمام فرمت و ساختار داده شده را از بین خواهد برد. آیا میخواهید که ادامه بدهید.';
diff --git a/program/localization/fa_IR/messages.inc b/program/localization/fa_IR/messages.inc
index ff53c650e..3f3f861d6 100644
--- a/program/localization/fa_IR/messages.inc
+++ b/program/localization/fa_IR/messages.inc
@@ -21,19 +21,19 @@ $messages['errortitle'] = 'خطایی رخ داد!';
$messages['loginfailed'] = 'ورود ناموفق بود.';
$messages['cookiesdisabled'] = 'مرورگر شما کوکی‌ها را قبول نمی‌کند.';
$messages['sessionerror'] = 'نشست شما معتبر نیست، یا منقضی شده است.';
-$messages['storageerror'] = 'اتصال به سرور انباره ناموفق بود.';
+$messages['storageerror'] = 'اتصال به سرور مخزن ناموفق بود.';
$messages['servererror'] = 'خطای سرور!';
$messages['servererrormsg'] = 'خطای سرور: $msg';
-$messages['dberror'] = 'خطای پایگاه‌داده';
+$messages['dberror'] = 'خطای پایگاه داده';
$messages['requesttimedout'] = 'زمان درخواست تمام شد';
-$messages['errorreadonly'] = 'ناتوانی در انجام عملیات. پوشه فقط خواندنی است.';
-$messages['errornoperm'] = 'ناتوانی در انجام عملیات. دسترسی وجود ندارد.';
-$messages['erroroverquota'] = 'ناتوانی در انجام عملیات. فضای دیسک خالی نیست.';
-$messages['erroroverquotadelete'] = 'فضای دیسک خالی نیست. برای حذف پیغام از SHIFT+DEL استفاده کنید.';
+$messages['errorreadonly'] = ' عمل مورد نظر انجام نشد. پوشه فقط خواندنی است.';
+$messages['errornoperm'] = ' عمل مورد نظر انجام نشد. دسترسی وجود ندارد.';
+$messages['erroroverquota'] = 'عملیات انجام نشد. دیسک فضای خالی ندارد.';
+$messages['erroroverquotadelete'] = 'دیسک فضای خالی ندارد. برای حذف پیغام از SHIFT+DEL استفاده کنید.';
$messages['invalidrequest'] = 'درخواست نامعتبر! هیچ داده‌ای ذخیره نشد.';
$messages['invalidhost'] = 'نام سرور غیرمعتبر.';
-$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق پیدا نشد.';
-$messages['loggedout'] = 'شما با موفقیت نشست را پایان دادید. خدا نگه‌دار!';
+$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق‌پستی پیدا نشد.';
+$messages['loggedout'] = 'شما با موفقیت نشست را پایان دادید. خدانگهدار!';
$messages['mailboxempty'] = 'صندوق‌پستی خالی است.';
$messages['refreshing'] = 'نوسازی...';
$messages['loading'] = 'در حال بارگذاری...';
@@ -46,126 +46,131 @@ $messages['messagesent'] = 'پیغام با موفقیت فرستاده شد.';
$messages['savingmessage'] = 'درحال ذخیره‌ی پیغام...';
$messages['messagesaved'] = 'پیغام در پیش‌نویس‌ها ذخیره شد';
$messages['successfullysaved'] = 'با موفقیت ذخیره شد.';
-$messages['addedsuccessfully'] = 'تماس با موفقیت به دفتر نشانی‌ها اضافه شد';
-$messages['contactexists'] = 'یک تماس با این نشانی ایمیل از قبل وجود دارد.';
-$messages['contactnameexists'] = 'یک تماس با این نام از قبل وجود دارد.';
-$messages['blockedimages'] = 'برای حفاظت از حریم شخصی شما، عکس‌های دوردست از پیغام حذف شد.';
+$messages['addedsuccessfully'] = 'مخاطب با موفقیت به دفتر نشانی‌ها اضافه شد.';
+$messages['contactexists'] = 'یک مخاطب با این ایمیل از قبل وجود دارد.';
+$messages['contactnameexists'] = 'یک مخاطب با این نام از قبل وجود دارد.';
+$messages['blockedimages'] = 'برای حفاظت از حریم شخصی شما، عکس‌های با آدرس خارجی در این پیغام مسدود شده‌اند.';
$messages['encryptedmessage'] = '!این یک پیغام رمزنگاری شده است و قابل نمایش نیست. ببخشید';
-$messages['nocontactsfound'] = 'هیج تماسی پیدا نشد.';
-$messages['contactnotfound'] = 'تماس درخواست شده پیدا نشد.';
-$messages['contactsearchonly'] = 'چند عبارات جستجو برای یافتن تماس ها وارد نمایید';
-$messages['sendingfailed'] = 'ناموفق در فرستادن پیغام.';
-$messages['senttooquickly'] = 'لطفا قبل از ارسال این پیغام $sec صبر کنید.';
-$messages['errorsavingsent'] = 'در لحظه ذخیره پیغام ارسال شده، مشکل به وجود آمد.';
-$messages['errorsaving'] = 'هنگام ذخیره‌سازی، اشکالی پیش آمد.';
-$messages['errormoving'] = 'ناتوان در انتقال پیغام(ها).';
-$messages['errorcopying'] = 'ناتوان در رونوشت پیغام(ها).';
-$messages['errordeleting'] = 'ناتوان در حذف پیغام(ها).';
-$messages['errormarking'] = 'ناتوان در نشانه گذاری پیغام(ها).';
-$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید تماس(های) انتخاب شده را حذف کنید؟';
+$messages['nocontactsfound'] = 'هیج مخاطبی پیدا نشد.';
+$messages['contactnotfound'] = 'مخاطب درخواست شده پیدا نشد.';
+$messages['contactsearchonly'] = 'برای یافتن مخاطب عبارتی را جستجو کنید';
+$messages['sendingfailed'] = 'ارسال پیغام ناموفق بود.';
+$messages['senttooquickly'] = 'لطفا قبل از ارسال این پیغام $sec ثانیه صبر کنید.';
+$messages['errorsavingsent'] = 'در لحظه ذخیره پیغام ارسال شده، مشکلی رخ داد.';
+$messages['errorsaving'] = 'هنگام ذخیره‌سازی، مشکلی رخ داد.';
+$messages['errormoving'] = 'پیغام(ها) منتقل نشدند.';
+$messages['errorcopying'] = 'پیغام(ها) کپی نشدند.';
+$messages['errordeleting'] = 'پیغام(ها) حذف نشدند.';
+$messages['errormarking'] = 'پیغام(ها) نشانه‌گذاری نشدند.';
+$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید مخاطب(های) انتخاب شده را حذف کنید؟';
$messages['deletegroupconfirm'] = 'آیا واقعا می‌خواهید گروه انتخاب شده را حذف کنید؟';
$messages['deletemessagesconfirm'] = 'آیا واقعاً می‌خواهید پیغام(های) انتخاب شده را حذف کنید؟';
$messages['deletefolderconfirm'] = 'آیا واقعاً می‌خواهید این پوشه را حذف کنید؟';
$messages['purgefolderconfirm'] = 'آیا واقعاً می‌خواهید همه‌ی پیغام‌های داخل این پوشه را حذف کنید؟';
-$messages['contactdeleting'] = 'حذف تماس(ها)...';
+$messages['contactdeleting'] = 'حذف مخاطب(ها)...';
$messages['groupdeleting'] = 'حذف گروه...';
$messages['folderdeleting'] = 'حذف پوشه...';
$messages['foldermoving'] = 'انتقال پوشه...';
$messages['foldersubscribing'] = 'اشتراک پوشه...';
$messages['folderunsubscribing'] = 'لغو اشتراک پوشه...';
-$messages['formincomplete'] = 'فرم کاملاً پر نشده بود.';
-$messages['noemailwarning'] = 'لطفا یک نشانی پست الکترونیکی معتبر وارد کنید.';
+$messages['formincomplete'] = 'فرم کامل پر نشده بود.';
+$messages['noemailwarning'] = 'لطفا یک پست الکترونیکی معتبر وارد کنید.';
$messages['nonamewarning'] = 'لطفا یک نام وارد کنید.';
-$messages['nopagesizewarning'] = 'لطفا اندازه ی صفحه را وارد کنید.';
-$messages['nosenderwarning'] = 'لطفا آدرس پست الکترونیکی فرستنده را وارد کنید.';
+$messages['nopagesizewarning'] = 'لطفا اندازه‌ی صفحه را وارد کنید.';
+$messages['nosenderwarning'] = 'لطفا پست الکترونیکی فرستنده را وارد کنید.';
$messages['norecipientwarning'] = 'لطفاً حداقل یک گیرنده وارد کنید.';
-$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. آیا می‌خواهید اکنون وارد کنید؟';
+$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. می‌خواهید اکنون وارد کنید؟';
$messages['nobodywarning'] = 'این پیغام بدون متن ارسال شود؟';
$messages['notsentwarning'] = 'پیغام ارسال نشده است. آیا می‌خواهید پیغام را از بین ببرید؟';
-$messages['noldapserver'] = 'برای جست و جو انتخاب کنید LDAP لطفا یک سرور.';
-$messages['nosearchname'] = 'لطفا نام یک تماس و یا یک نشانی ایمیل وارد کنید.';
-$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده اند. لطفا صبر کنید یا بارگذاری را لغو کنید.';
-$messages['searchsuccessful'] = '$nr پیغام پیدا شد';
-$messages['contactsearchsuccessful'] = '$nr تماس ییدا شد.';
-$messages['searchnomatch'] = 'جست و جو هیچ نتیجه‌ای نداشت.';
-$messages['searching'] = 'در حال جست و جو...';
+$messages['noldapserver'] = 'لطفا یک سرور LDAP برای جست‌و‌جو انتخاب کنید.';
+$messages['nosearchname'] = 'لطفا نام یک مخاطب یا یک نشانی ایمیل وارد کنید.';
+$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده‌اند. لطفا صبر کرده یا بارگذاری را لغو کنید.';
+$messages['searchsuccessful'] = '$nr پیغام پیدا شد.';
+$messages['contactsearchsuccessful'] = '$nr مخاطب ییدا شد.';
+$messages['searchnomatch'] = 'جست‌و‌جو هیچ نتیجه‌ای نداشت.';
+$messages['searching'] = 'در حال جست‌و‌جو...';
$messages['checking'] = 'در حال بررسی...';
$messages['nospellerrors'] = 'هیچ اشکال املایی پیدا نشد.';
$messages['folderdeleted'] = 'پوشه با موفقیت حذف شد.';
-$messages['foldersubscribed'] = 'پوشه با موفقیت اشتراک شد.';
+$messages['foldersubscribed'] = 'اشتراک پوشه با موفقیت انجام شد.';
$messages['folderunsubscribed'] = 'اشتراک پوشه با موفقیت لغو شد.';
$messages['folderpurged'] = 'پوشه با موفقیت خالی شد.';
$messages['folderexpunged'] = 'پوشه با موفقیت فشرده شد.';
$messages['deletedsuccessfully'] = 'با موفقیت حذف شد.';
$messages['converting'] = 'در حال حذف قالب‌بندی...';
-$messages['messageopenerror'] = 'ناتوان در بارگذاری پیغام از روی سرور.';
+$messages['messageopenerror'] = 'بارگذاری پیغام از روی سرور انجام نشد.';
$messages['fileuploaderror'] = 'بارگذاری پرونده ناموفق بود.';
$messages['filesizeerror'] = 'اندازه‌ی پرونده‌ی بارگذاری شده از بیشینه اندازه‌ی $size بیشتر است.';
-$messages['copysuccess'] = '$nr نشانی با موفقیت رونوشت‌برداری شدند.';
-$messages['copyerror'] = 'رونوشت‌برداری از نشانی‌ها ناموفق بود.';
-$messages['sourceisreadonly'] = 'این منبع نشانی فقط‌خواندنی است.';
-$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی تماس ناموفق بود.';
+$messages['copysuccess'] = '$nr مخاطب با موفقیت کپی شد.';
+$messages['movesuccess'] = '$nr مخاطب با موفقیت جابجا شد.';
+$messages['copyerror'] = 'مخاطب‌ها کپی نشدند.';
+$messages['moveerror'] = 'مخاطب‌ها جابجا نشدند.';
+$messages['sourceisreadonly'] = 'این منبع نشانی فقط خواندنی است.';
+$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی مخاطب ناموفق بود.';
$messages['movingmessage'] = 'در حال انتقال پیغام(ها)...';
-$messages['copyingmessage'] = 'در حال رونوشت پیغام(ها)...';
-$messages['copyingcontact'] = 'در حال رونوشت تماس(ها)...';
+$messages['copyingmessage'] = 'در حال کپی‌برداری از پیغام(ها)...';
+$messages['copyingcontact'] = 'در حال کپی‌برداری مخاطب(ها)...';
+$messages['movingcontact'] = 'در حال جابجایی مخاطب(ها)...';
$messages['deletingmessage'] = 'در حال حذف پیغام(ها)...';
$messages['markingmessage'] = 'در حال نشانه‌گذاری پیغام(ها)...';
-$messages['addingmember'] = 'در حال افزودن تماس(ها) به گروه...';
-$messages['removingmember'] = 'در حال انتقال تماس(ها) از گروه...';
+$messages['addingmember'] = 'در حال افزودن مخاطب(ها) به گروه...';
+$messages['removingmember'] = 'در حال حذف مخاطب(ها) از گروه...';
$messages['receiptsent'] = 'رسید خواندن با موفقیت ارسال شد.';
-$messages['errorsendingreceipt'] = 'ناتوان در ارسال رسید.';
-$messages['deleteidentityconfirm'] = 'آیا شما مطمئن به حذف این شناسه هستید.';
-$messages['nodeletelastidentity'] = 'نمی‌توانید این شناسه را حذف کنید، زیرا آخرین شناسه شما است.';
-$messages['forbiddencharacter'] = 'نام پوشه شامل یک حرف غیر مجاز است.';
-$messages['selectimportfile'] = 'لطفاً پرونده ای را برای بارگیری انتخاب کنید.';
+$messages['errorsendingreceipt'] = 'ارسال رسید انجام نشد.';
+$messages['deleteidentityconfirm'] = 'آیا از حذف این شناسه مطمئن هستید؟';
+$messages['nodeletelastidentity'] = 'این شناسه را نمی‌توانید حذف کنید، زیرا آخرین شناسه شما است.';
+$messages['forbiddencharacter'] = 'نام پوشه شامل یک کاراکتر غیر مجاز است.';
+$messages['selectimportfile'] = 'لطفاً پرونده‌ای را برای بارگذاری انتخاب کنید.';
$messages['addresswriterror'] = 'دفترچه آدرس انتخابی قابل نوشتن نیست.';
-$messages['contactaddedtogroup'] = 'تماس ها با موفقیت به این گروه اضافه شدند.';
-$messages['contactremovedfromgroup'] = 'تماس ها با موفقیت از این گروه حذف شدند.';
+$messages['contactaddedtogroup'] = 'مخاطب‌ها با موفقیت به این گروه اضافه شدند.';
+$messages['contactremovedfromgroup'] = 'مخاطب‌ها با موفقیت از این گروه حذف شدند.';
$messages['nogroupassignmentschanged'] = 'هیچ تکلیف گروهی تغییر نکرده است.';
$messages['importwait'] = 'در حال وارد کردن، لطفا صبر کنید...';
$messages['importformaterror'] = 'وارد کردن ناموفق! فایل بارگذاری شده یک فایل اطلاعات معتبر نیست.';
-$messages['importconfirm'] = '<b>تماس های $inserted با موفقیت وارد شدند</b>';
-$messages['importconfirmskipped'] = '<b>ورودی های موجود $skipped نادیده گرفته شدند</b>';
+$messages['importconfirm'] = '<b>$inserted مخاطب با موفقیت وارد شدند</b>';
+$messages['importconfirmskipped'] = '<b>$skipped ورودی موجود نادیده گرفته شدند</b>';
+$messages['importmessagesuccess'] = 'با موفقیت $nr پیغام وارد شد.';
+$messages['importmessageerror'] = 'وارد کردن ناموفق! فایل بارگذاری شده یک پیغام یا صندوق‌پستی معتبر نیست.';
$messages['opnotpermitted'] = 'عملیات مجاز نیست!';
-$messages['nofromaddress'] = 'آدرس پست الکترونیکی های مفقود در شناسه انتخاب شده.';
+$messages['nofromaddress'] = 'شناسه انتخاب شده پست الکترونیکی ندارد.';
$messages['editorwarning'] = 'تعویض به ویرایشگر متن ساده باعث از دست رفتن قالب‌بندی همه متن‌ها می‌شود، آیا می‌خواهید عملیات را ادامه بدهید؟';
-$messages['httpreceivedencrypterror'] = 'یک خطای تنظیم وخیم رخ داده است. سریعا با سرپرست یا مدیر خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
+$messages['httpreceivedencrypterror'] = 'یک خطای پیکربندی خطرناک رخ داده است. سریعا با سرپرست یا مسئول خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
$messages['smtpconnerror'] = 'خطای SMTP (%code): اتصال به سرور ناموفق بود.';
$messages['smtpautherror'] = 'خطای SMTP (%code): تصدیق هویت ناموفق بود.';
$messages['smtpfromerror'] = 'خطای SMTP (%code): ناموفق در تنظیم فرستنده "$from" ($msg).';
$messages['smtptoerror'] = 'خطای SMTP (%code): نام موفق در افزودن گیرنده "$to" ($msg).';
$messages['smtprecipientserror'] = 'خطای SMTP: ناتوان در تجزیه فهرست گیرنده‌ها.';
$messages['smtperror'] = 'خطای SMTP: $msg';
-$messages['emailformaterror'] = 'آدرس پیت الکترونیکی نامعتبر: $email';
-$messages['toomanyrecipients'] = 'گیرنده های خیلی زیاد: تعداد گیرنده ها را به تعداد $max کاهش دهید.';
-$messages['maxgroupmembersreached'] = 'تعداد اعضاء گروه از مقدار بیشینه $max بیشتر است.';
+$messages['emailformaterror'] = 'پست الکترونیکی نامعتبر: $email';
+$messages['toomanyrecipients'] = 'گیرنده‌های بیش از اندازه: تعداد گیرنده ها را به $max کاهش دهید.';
+$messages['maxgroupmembersreached'] = 'تعداد اعضای گروه بیشتر از $max است.';
$messages['internalerror'] = 'خطای داخلی رخ داد. لطفا دوباره امتحان کنید.';
-$messages['contactdelerror'] = 'تماس(ها) حذف نخواهند شد.';
-$messages['contactdeleted'] = 'تماس(ها) با موفقیت حذف شدند.';
-$messages['contactrestoreerror'] = 'تماس(های) حذف شده بازگردانی نخواهند شد.';
-$messages['contactrestored'] = 'تماس(ها) با موفقیت بازگردانده شدند.';
+$messages['contactdelerror'] = 'حذف مخاطب(ها) انجام شد.';
+$messages['contactdeleted'] = 'مخاطب(ها) با موفقیت حذف شدند.';
+$messages['contactrestoreerror'] = 'مخاطب(های) حذف شده بازگردانی نخواهند شد.';
+$messages['contactrestored'] = 'مخاطب(ها) با موفقیت بازگردانده شدند.';
$messages['groupdeleted'] = 'گروه با موفقیت حذف شد.';
-$messages['grouprenamed'] = 'گروه با موفقیت تغییر نام داده شد.';
+$messages['grouprenamed'] = 'نام گروه با موفقیت تغییر داده شد.';
$messages['groupcreated'] = 'گروه با موفقیت ایجاد شد.';
-$messages['savedsearchdeleted'] = 'جستجوی ذخیره شد با موفقیت حذف شد.';
-$messages['savedsearchdeleteerror'] = 'جستجوی ذخیره شد حذف نخواهد شد.';
-$messages['savedsearchcreated'] = 'جستجوی حذف شده با موفقیت حذف شد.';
-$messages['savedsearchcreateerror'] = 'جستجوی ذخیره شده افزوده نخواهد شد.';
+$messages['savedsearchdeleted'] = 'جستجوی ذخیره شده با موفقیت حذف شد.';
+$messages['savedsearchdeleteerror'] = 'حذف جستجوی ذخیره شده انجام نشد.';
+$messages['savedsearchcreated'] = 'جستجوی حذف شده با موفقیت ایجاد شد.';
+$messages['savedsearchcreateerror'] = 'ساخت جستجوی ذخیره شده انجام نشد.';
$messages['messagedeleted'] = 'پیغام(ها) با موفقیت حذف شدند.';
$messages['messagemoved'] = 'پیغام(ها) با موفقیت منتقل شدند.';
-$messages['messagecopied'] = 'پیغام(ها) با موفقیت رونوشت شدند.';
-$messages['messagemarked'] = 'پیغام(ها) با موفقیت نشانه گذاری شدند.';
+$messages['messagecopied'] = 'پیغام(ها) با موفقیت کپی شدند.';
+$messages['messagemarked'] = 'پیغام(ها) با موفقیت نشانه‌گذاری شدند.';
$messages['autocompletechars'] = 'حداقل $min حرف برای تکمیل خودکار وارد نمایید.';
-$messages['autocompletemore'] = 'تعداد ورودی های هماهنگ زیادی یافت شد. لطفا حروف بیشتری وارد نمایید.';
+$messages['autocompletemore'] = 'نتایج زیادی یافت شد. لطفا حروف بیشتری وارد نمایید.';
$messages['namecannotbeempty'] = 'نام نمی‌تواند خالی باشد.';
$messages['nametoolong'] = 'نام خیلی طولانی است.';
-$messages['folderupdated'] = 'پوشه با موفقیت بارگذاری شد.';
+$messages['folderupdated'] = 'پوشه با موفقیت به‌روز شد.';
$messages['foldercreated'] = 'پوشه با موفقیت افزوده شد.';
-$messages['invalidimageformat'] = 'فرمت تصویر نامعتبر.';
+$messages['invalidimageformat'] = 'فرمت تصویر نامعتبر است.';
$messages['mispellingsfound'] = 'خطای املایی در پیغام شناسایی شد.';
-$messages['parentnotwritable'] = 'ناتوانی در ایجاد/انتقال پوشه به پوشه والد انتخاب شده. بدون حق دسترسی.';
-$messages['messagetoobig'] = 'بخش پیغام برای اجرای آن خیلی بزرگ است.';
-$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی که در پیغام اشاره شده مطابقت ندارد. اگر شما فرستنده را تایید نمی‌کنید، شما نباید آن را در مرورگر باز نمایید زیرا ممکن است که شامل محتوای مخرب باشد.<br/><br/><em>مورد انتظار: $expected; یافت شده: $detected</em>';
-$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استفاده از این لطفا جاوااسکریپت را در تنظیمات مرورگر خود فعال نمایید.';
+$messages['parentnotwritable'] = 'به دلیل نداشتن حق دسترسی، ایجاد/انتقال پوشه به پوشه والد انتخاب شده، انجام نشد.';
+$messages['messagetoobig'] = 'بخش پیغام برای پردازش آن خیلی بزرگ است.';
+$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی که در پیغام اشاره شده مطابقت ندارد. اگر شما به فرستنده اطمینان ندارید، نباید آن را در مرورگر باز نمایید زیرا ممکن است که شامل محتوای مخرب باشد.<br><br><em>مورد انتظار: $expected; یافت شده: $detected</em>';
+$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استفاده از این برنامه لطفا جاوااسکریپت را در تنظیمات مرورگر خود فعال نمایید.';
?>
diff --git a/program/localization/ga_IE/messages.inc b/program/localization/ga_IE/messages.inc
index 70aa28a36..b837c9d16 100755
--- a/program/localization/ga_IE/messages.inc
+++ b/program/localization/ga_IE/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Scrios mé formáidithe as an teachtaireacht seo';
$messages['messageopenerror'] = 'Theip orm chun an teachtaireacht seo a tarrtháil as an freastalaí';
$messages['fileuploaderror'] = 'Theip an suas-luchtú';
$messages['filesizeerror'] = 'Beigh an comhad ró-mhor. Is ea $size uas-saghas chun admháil léite';
-$messages['copysuccess'] = 'D\'éirigh mé agus chuir mé $nr seolagh i do Leabhair Seoltaí';
-$messages['copyerror'] = 'Theip mé agus níor dfhag mé aon seolagh';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Tá an foinse seolaigh seo inléite amháin';
$messages['errorsavingcontact'] = 'Theip mé, Níl an cumas agam an seolagh seo a sábháil';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/hi_IN/messages.inc b/program/localization/hi_IN/messages.inc
index 1d55f5c48..ffbc6f436 100644
--- a/program/localization/hi_IN/messages.inc
+++ b/program/localization/hi_IN/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'मेल से फ़ॉर्मैटिंग
$messages['messageopenerror'] = 'सर्वर से मेल लोड नहीं हो पाया';
$messages['fileuploaderror'] = 'फ़ाईल अपलोड नहीं हो पाया';
$messages['filesizeerror'] = 'अपलोड के लिये फ़ाईल हद $size से बड़ा है';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/hr_HR/messages.inc b/program/localization/hr_HR/messages.inc
index 3e6cc6daf..0b96c97f2 100644
--- a/program/localization/hr_HR/messages.inc
+++ b/program/localization/hr_HR/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Formatiranje poruke';
$messages['messageopenerror'] = 'Učitavanje poruke nije uspjelo';
$messages['fileuploaderror'] = 'Prijenos datoteke nije uspio';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veličina je $size';
-$messages['copysuccess'] = 'Uspješno kopirano $n adresa';
-$messages['copyerror'] = 'Nije uspjelo kopiranje adresa';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Ovaj resurs adresa je samo za čitanje';
$messages['errorsavingcontact'] = 'Nije uspjelo spremanje adrese kontakta';
$messages['movingmessage'] = 'Premještanje poruke...';
$messages['copyingmessage'] = 'Kopiranje poruke...';
$messages['copyingcontact'] = 'Kopiram kontakt(e)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Brisanje poruke...';
$messages['markingmessage'] = 'Označavanje poruke...';
$messages['addingmember'] = 'Dodajem kontakt(e) u grupu...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Uvozim, molimo sačekajte...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Uspješno je uvezeno $inserted kontakt(a), preskočeno $skipped već postojećih</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Preskočeno $skipped postojećih unosa</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'Nije upisana e-mail adresa u odabrani identitet';
$messages['editorwarning'] = 'Prebacivanje u čisti tekstualni uređivač će prouzrokovati gubljenje formatiranje teksta. Želite li nastaviti?';
diff --git a/program/localization/hu_HU/messages.inc b/program/localization/hu_HU/messages.inc
index 6528602a4..d54589f42 100644
--- a/program/localization/hu_HU/messages.inc
+++ b/program/localization/hu_HU/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Formázás eltávolítása az üzenetből...';
$messages['messageopenerror'] = 'A levelek a szerverről nem tölthetők le';
$messages['fileuploaderror'] = 'Feltöltés sikertelen';
$messages['filesizeerror'] = 'A feltöltött fájl mérete meghaladja a maximális $size méretet';
-$messages['copysuccess'] = '$nr cím sikeresen másolva';
-$messages['copyerror'] = 'Egyetlen cím sem másolható';
+$messages['copysuccess'] = 'Sikeresen átmásolva $nr kapcsolat.';
+$messages['movesuccess'] = 'Sikeresen átmozgatva $nr kapcsolat.';
+$messages['copyerror'] = 'Nem lehet másolni a kapcsolatokat.';
+$messages['moveerror'] = 'Nem lehet átmozgatni a kapcsolatokat.';
$messages['sourceisreadonly'] = 'Ez a címforrás csak olvasható';
$messages['errorsavingcontact'] = 'A kapcsolat címe nem menthető';
$messages['movingmessage'] = 'Üzenet(ek) mozgatása...';
$messages['copyingmessage'] = 'Üzenet(ek) másolása...';
$messages['copyingcontact'] = 'Kapcsolat(ok) másolása...';
+$messages['movingcontact'] = 'Kapcsolat(ok) átmozgatása ...';
$messages['deletingmessage'] = 'Üzenet(ek) törlése....';
$messages['markingmessage'] = 'Üzenet(ek) megjelölése...';
$messages['addingmember'] = 'Kapcsolat(ok) hozzáadása a csoporthoz...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importálás folyamatban, kérem várjon...';
$messages['importformaterror'] = 'Az importálás sikertelen! A feltöltött fájl ismeretlen formátumú.';
$messages['importconfirm'] = '<b>Sikeresen importálásra került $inserted kapcsolat, kihagyva $skipped már létező bejegyzés</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Kihagyva $skipped már létező bejegyzés</b>';
+$messages['importmessagesuccess'] = 'Sikeresen importálva $nr üzenet';
+$messages['importmessageerror'] = 'Sikertelen az importálás. A feltőltött file nem értelmezhető üzenetként vagy postafiók (mailbox) fileként.';
$messages['opnotpermitted'] = 'A művelet nem megengedett!';
$messages['nofromaddress'] = 'A kiválasztott azonosítónál nincs email beállítva.';
$messages['editorwarning'] = 'Az egyszerű szöveges formátumra való váltás az összes formázás elvesztésével jár. Biztosan folytatja?';
diff --git a/program/localization/hy_AM/messages.inc b/program/localization/hy_AM/messages.inc
index 6b3f4ebe9..2128a188c 100644
--- a/program/localization/hy_AM/messages.inc
+++ b/program/localization/hy_AM/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Նամակի ձևավորման հեռացում…';
$messages['messageopenerror'] = 'Նամակի բեռնվումը սերվերից ձախողվեց';
$messages['fileuploaderror'] = 'Ֆայլի կցումն ձախողվեց';
$messages['filesizeerror'] = 'Ֆայլի չափը գերազանցում է մաքսիմալը՝ $size';
-$messages['copysuccess'] = '$nr հասցեների կրկնօրինակումը ավարտված է';
-$messages['copyerror'] = 'Հասցեների կրկնօրինակումը ձախողվեց';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Այս հասցեն պաշտպանված է';
$messages['errorsavingcontact'] = 'Հասցեի գրանցումն ձախողվեց';
$messages['movingmessage'] = 'Նամակը տեղափոխվում է…';
$messages['copyingmessage'] = 'Հաղորդագրությունների պատճենում…';
$messages['copyingcontact'] = 'Անձանց պատճենում…';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Հաղորդագրությունների ջնջում…';
$messages['markingmessage'] = 'Հաղորդագրությունների նշում…';
$messages['addingmember'] = 'Անձանց ավելացում խմբին…';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Ներկրումն ընթացքի մեջ է...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '$inserted նոր ներկրված հասցեներ, $skipped արդեն առկա հասցեներ՝ <p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Բաց թողնվեց $skipped առկա գրառում</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Գործողությունը անթույլատրելի է։';
$messages['nofromaddress'] = 'Նշված անձը հասցե չունի։';
$messages['editorwarning'] = 'Դեպի պարզ տեքստի խմբագրիչ անցման դեպքում կկորի տեքստի ձևավորումը։ Շարունակե՞լ։';
diff --git a/program/localization/ia/messages.inc b/program/localization/ia/messages.inc
index ebc6953d2..d6fbba87d 100644
--- a/program/localization/ia/messages.inc
+++ b/program/localization/ia/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'Incargamento de file falleva.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/id_ID/labels.inc b/program/localization/id_ID/labels.inc
index 73bb0156d..a8d5f4c5b 100644
--- a/program/localization/id_ID/labels.inc
+++ b/program/localization/id_ID/labels.inc
@@ -33,7 +33,7 @@ $labels['addressbook'] = 'Buku Alamat';
// mailbox names
$labels['inbox'] = 'Kotak Masuk';
-$labels['drafts'] = 'Daftar tunggu';
+$labels['drafts'] = 'Konsep';
$labels['sent'] = 'Terkirim';
$labels['trash'] = 'Surat Terhapus';
$labels['junk'] = 'Sampah';
@@ -65,7 +65,7 @@ $labels['copy'] = 'Salin';
$labels['move'] = 'Pindahkan';
$labels['moveto'] = 'Pindahkan ke...';
$labels['download'] = 'Unduh';
-$labels['open'] = 'Open';
+$labels['open'] = 'Buka';
$labels['showattachment'] = 'Tampilkan';
$labels['showanyway'] = 'Tampilkan saja';
@@ -163,7 +163,7 @@ $labels['currpage'] = 'Halaman sekarang';
$labels['unread'] = 'Belum terbaca';
$labels['flagged'] = 'Ditandai';
$labels['unanswered'] = 'Belum terjawab';
-$labels['withattachment'] = 'With attachment';
+$labels['withattachment'] = 'Dengan lampiran';
$labels['deleted'] = 'Terhapus';
$labels['undeleted'] = 'Tidak terhapus';
$labels['invert'] = 'Sebaliknya';
@@ -205,12 +205,13 @@ $labels['resetsearch'] = 'Atur ulang pencarian';
$labels['searchmod'] = 'Peubah pencarian';
$labels['msgtext'] = 'Seluruh pesan';
$labels['body'] = 'Badan';
-$labels['type'] = 'Type';
+$labels['type'] = 'Tipe';
+$labels['namex'] = 'Nama';
$labels['openinextwin'] = 'Buka dalam jendela baru';
$labels['emlsave'] = 'Unduh (.eml)';
-$labels['changeformattext'] = 'Display in plain text format';
-$labels['changeformathtml'] = 'Display in HTML format';
+$labels['changeformattext'] = 'Tampilkan dalam format text biasa';
+$labels['changeformathtml'] = 'Tampilkan dalam format HTML';
// message compose
$labels['editasnew'] = 'Sunting sebagai pesan baru';
@@ -429,7 +430,7 @@ $labels['showremoteimages'] = 'Tampilkan remote inline images';
$labels['fromknownsenders'] = 'dari pengirim yang dikenal';
$labels['always'] = 'selalu';
$labels['showinlineimages'] = 'Tampilkan gambar terlampir dibawah pesan';
-$labels['autosavedraft'] = 'Otomatis menyimpan pesan tertunda';
+$labels['autosavedraft'] = 'Otomatis menyimpan konsep';
$labels['everynminutes'] = 'setiap $n menit';
$labels['refreshinterval'] = 'Refresh (memeriksa pesan baru, dsb)';
$labels['never'] = 'tidak pernah';
diff --git a/program/localization/id_ID/messages.inc b/program/localization/id_ID/messages.inc
index 04d8242ad..a81b2ab01 100644
--- a/program/localization/id_ID/messages.inc
+++ b/program/localization/id_ID/messages.inc
@@ -44,7 +44,7 @@ $messages['checkingmail'] = 'Memeriksa pesan baru...';
$messages['sendingmessage'] = 'Mengirim pesan...';
$messages['messagesent'] = 'Pesan berhasil dikirim.';
$messages['savingmessage'] = 'Menyimpan pesan...';
-$messages['messagesaved'] = 'Menyimpan pesan ke daftar tunggu';
+$messages['messagesaved'] = 'Pesan tersimpan kedalam Konsep';
$messages['successfullysaved'] = 'Berhasil disimpan';
$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';
$messages['contactexists'] = 'Kontak dengan alamat e-mail ini sudah ada.';
@@ -101,13 +101,16 @@ $messages['converting'] = 'Mengembalikan pesan ke format awal...';
$messages['messageopenerror'] = 'Tidak dapat mengambil pesan dari server';
$messages['fileuploaderror'] = 'Gagal mengunggah berkas';
$messages['filesizeerror'] = 'Berkas terunggah mencapai ukuran maksimal dari $size';
-$messages['copysuccess'] = 'Berhasil menyalin $nr alamat';
-$messages['copyerror'] = 'Tidak bisa menyalin alamat manapun';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca';
$messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak';
$messages['movingmessage'] = 'Memindahkan pesan...';
$messages['copyingmessage'] = 'Menyalin pesan...';
$messages['copyingcontact'] = 'Menyalin kontak...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Menghapus pesan...';
$messages['markingmessage'] = 'Menandai Pesan...';
$messages['addingmember'] = 'Menambahkan kontak ke grup...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Sedang mengimpor, harap menunggu...';
$messages['importformaterror'] = 'Proses import gagal. File yang di upload bukan file import yang valid.';
$messages['importconfirm'] = '<b>Berhasil mengimpor $inserted kontak</b>';
$messages['importconfirmskipped'] = '<b>$skipped entri yang sudah ada dilewatkan</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operasi tidak diperbolehkan!';
$messages['nofromaddress'] = 'kekurangan alamat e-mail pada identitas terpilih';
$messages['editorwarning'] = 'Beralih pada editor teks murni akan mengakibatkan semua pemformatan teks hilang. Lanjutkan?';
diff --git a/program/localization/is_IS/messages.inc b/program/localization/is_IS/messages.inc
index 6e9f35af3..731a19791 100644
--- a/program/localization/is_IS/messages.inc
+++ b/program/localization/is_IS/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/it_IT/messages.inc b/program/localization/it_IT/messages.inc
index 80395b551..502ecba25 100644
--- a/program/localization/it_IT/messages.inc
+++ b/program/localization/it_IT/messages.inc
@@ -17,7 +17,7 @@
*/
$messages = array();
-$messages['errortitle'] = 'C\'è stato qualche errore';
+$messages['errortitle'] = 'Si è verificato un errore!';
$messages['loginfailed'] = 'Impossibile accedere. Utente o password non corretti';
$messages['cookiesdisabled'] = 'Il tuo browser non accetta i cookies';
$messages['sessionerror'] = 'Sessione non valida o scaduta';
@@ -101,13 +101,16 @@ $messages['converting'] = 'Rimozione della formattazione dal messaggio...';
$messages['messageopenerror'] = 'Impossibile caricare il messaggio dal server';
$messages['fileuploaderror'] = 'Errore durante il caricamento del file';
$messages['filesizeerror'] = 'Il file da caricare supera il limite massimo di $size';
-$messages['copysuccess'] = 'Copiati $nr indirizzi';
-$messages['copyerror'] = 'Impossibile copiare gli indirizzi';
+$messages['copysuccess'] = 'Copiati correttamente $nr contatti.';
+$messages['movesuccess'] = '$nr contatti spostati correttamente.';
+$messages['copyerror'] = 'Impossibile copiare i contatti.';
+$messages['moveerror'] = 'Impossibile spostare i contatti.';
$messages['sourceisreadonly'] = 'La rubrica è in sola lettura';
$messages['errorsavingcontact'] = 'Impossibile salvare il contatto';
$messages['movingmessage'] = 'Spostamento del messaggio...';
$messages['copyingmessage'] = 'Copia del messaggio...';
$messages['copyingcontact'] = 'Copia del contatto...';
+$messages['movingcontact'] = 'Spostamento contatto(i)';
$messages['deletingmessage'] = 'Cancellazione messaggio...';
$messages['markingmessage'] = 'Marca messaggio...';
$messages['addingmember'] = 'Aggiunta contatto al gruppo...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importazione in corso, attendere...';
$messages['importformaterror'] = 'Importazione fallita! Il file caricato non è un file valido per l\'importazione.';
$messages['importconfirm'] = '<b>$inserted contatti importati con successo</p>';
$messages['importconfirmskipped'] = '<b>$skipped ignorati perché esistono già</b>';
+$messages['importmessagesuccess'] = 'Importati correttamente $nr messaggi';
+$messages['importmessageerror'] = 'Importazione fallita! Il file caricato non è un messaggio o una casella postale valida.';
$messages['opnotpermitted'] = 'Operazione non consentita!';
$messages['nofromaddress'] = 'Indirizzo e-mail mancante nell\'identità selezionata';
$messages['editorwarning'] = 'Passare all\'editor testuale farà perdere tutte le informazioni di formattazione. Sicuro di voler continuare?';
diff --git a/program/localization/ja_JP/messages.inc b/program/localization/ja_JP/messages.inc
index f4dd0fceb..820b52d96 100644
--- a/program/localization/ja_JP/messages.inc
+++ b/program/localization/ja_JP/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'メールから書式を削除中...';
$messages['messageopenerror'] = 'サーバーからメールを読み込めません。';
$messages['fileuploaderror'] = 'ファイルをアップロードできませんでした。';
$messages['filesizeerror'] = 'アップロードするファイルのサイズが上限($size)を超えました。';
-$messages['copysuccess'] = '$nr件のアドレスをコピーしました。';
-$messages['copyerror'] = 'どのアドレスもコピーできませんでした。';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'このアドレスソースは読み込み専用です。';
$messages['errorsavingcontact'] = '連絡先のアドレスを保存できません。';
$messages['movingmessage'] = 'メッセージを移動中...';
$messages['copyingmessage'] = 'メッセージをコピー中...';
$messages['copyingcontact'] = '連絡先をコピー中...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'メッセージを削除中...';
$messages['markingmessage'] = 'メッセージにマークを設定中...';
$messages['addingmember'] = 'グループに連絡先をコピー中...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'インポート中です。しばらくお待ちく
$messages['importformaterror'] = 'インポートできませんでした! アップロードしたファイルは正しいデータをインポートするファイルではありません。';
$messages['importconfirm'] = '<b>$inserted件の連絡先をインポートしました。</b>';
$messages['importconfirmskipped'] = '<b>$skipped件の既存する項目を飛ばした。</b>';
+$messages['importmessagesuccess'] = '$nr件のメッセージをインポートしました。';
+$messages['importmessageerror'] = 'インポートできませんでした! アップロードしたファイルは有効なメッセージやメールボックスのファイルではありません。';
$messages['opnotpermitted'] = '許可されていない操作です。';
$messages['nofromaddress'] = '選択している識別情報に電子メールアドレスが抜けています。';
$messages['editorwarning'] = 'テキストエディターに切り替えると、すべての書式はなくなります。本当に続けますか?';
diff --git a/program/localization/ka_GE/messages.inc b/program/localization/ka_GE/messages.inc
index 754343fac..c0cdd98f0 100755
--- a/program/localization/ka_GE/messages.inc
+++ b/program/localization/ka_GE/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'შეტყობინების ფორმა
$messages['messageopenerror'] = 'შეტყობინება ვერ ჩაიტვირთა სერვერიდან';
$messages['fileuploaderror'] = 'ფაილი ვერ აიტვირთა';
$messages['filesizeerror'] = 'ატვირთული ფაილის ზომა მეტია დასაშვებ ფაილის მაქსიმალურ ზომაზე ($size)';
-$messages['copysuccess'] = 'წარმატებით დაკოპირდა $nr მისამართი';
-$messages['copyerror'] = 'ვერცერთი მისამართი ვერ დაკოპირდა';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'აღნიშნული მისამართის მხოლოდ წაკითხვაა შესაძლებელი';
$messages['errorsavingcontact'] = 'საკონტაქტო მისამართის შენახვა შეუძლებელია';
$messages['movingmessage'] = 'შეტყობინების გადატანა...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'გთხოვთ მოიცადოთ, მი
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>წარმატებით დასრულდა $inserted კონტაქტების შემოტანა, $skipped არსებულის გამოტოვება</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'ოპერაცია შეზღუდულია';
$messages['nofromaddress'] = 'ელ–ფოსტის მისამართი გამოტოვებულია';
$messages['editorwarning'] = 'რედაქტორის გადართვა ტექსტურ რეჟიმში გამოიწვევს არსებული ტექსტის ფორმატის დაკარგვას. გსურთ გაგრძელება?';
diff --git a/program/localization/km_KH/messages.inc b/program/localization/km_KH/messages.inc
index 1f629fa6c..35bb10244 100644
--- a/program/localization/km_KH/messages.inc
+++ b/program/localization/km_KH/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'កំពុងលុបការរចនាចោ
$messages['messageopenerror'] = 'មិនអាចទាញយកសំបុត្រពីម៉ាស៊ីនមេបានទេ';
$messages['fileuploaderror'] = 'មិនអាចបញ្ជូលភ្ជាប់ឯកសារ';
$messages['filesizeerror'] = 'ទំហំឯកសារត្រូវបញ្ជូនលើសចំណុះទំហំធំបំផុតគឺ $size';
-$messages['copysuccess'] = 'បានចំលងអាសយដ្ឋានចំនួន $nrដោយជោគជ័យ';
-$messages['copyerror'] = 'មិនអាចចំលងអាសយដ្ឋានណាមួយឡើយ';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'លោកអ្នកមានសិទ្ធត្រឹមតែមើលប្រភពនៃអាសយដ្ឋាននេះ';
$messages['errorsavingcontact'] = 'មិនអាចរក្សាអាសយដ្ឋានបានទេ';
$messages['movingmessage'] = 'កំពុកផ្តេរសំបុត្រ...';
$messages['copyingmessage'] = 'កំពុងចំលងសំបុត្រ...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'កំពុងលុបសំបុត្រ...';
$messages['markingmessage'] = 'កំពុងកំណត់សំគាល់សំបុត្រ...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'សូមមេត្តារង់ចាំកំ
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ព័ត៌មានទំនាក់ទំនង $insertedបានបញ្ចូលដោយជោគជ័យ,ហើយបានរំលងចោលពត៌មានដែលមានស្រាប់$skipped </b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'ប្រតិ្តបត្តិការត្រូវបានគេហាមឃាត់!';
$messages['nofromaddress'] = 'ខ្វះអាសយដ្ឋានអ៊ីមែលក្នុងអត្តសញ្ណាណមួយនេះ';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/ko_KR/messages.inc b/program/localization/ko_KR/messages.inc
index bf42c9c89..ace6dc8d7 100644
--- a/program/localization/ko_KR/messages.inc
+++ b/program/localization/ko_KR/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = '서식 설정 삭제 중...';
$messages['messageopenerror'] = '서버에서 메시지를 불러올 수 없음.';
$messages['fileuploaderror'] = '파일 업로드를 실패함.';
$messages['filesizeerror'] = '업로드된 파일이 최대 크기인 $size를 초과하였습니다.';
-$messages['copysuccess'] = '$nr개의 주소를 성공적으로 복사함.';
-$messages['copyerror'] = '모든 주소를 복사할 수 없음.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = '이 주소의 소스는 읽기 전용입니다.';
$messages['errorsavingcontact'] = '연락처의 주소를 저장할 수 없음.';
$messages['movingmessage'] = '메시지를 이동하는 중...';
$messages['copyingmessage'] = '메시지 복사하는 중...';
$messages['copyingcontact'] = '연락처 복사하는 중...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = '메시지 삭제하는 중...';
$messages['markingmessage'] = '메시지에 표시하는 중...';
$messages['addingmember'] = '그룹에 연락처를 추가하는 중...';
@@ -126,6 +129,8 @@ $messages['importwait'] = '가져오는 중, 기다려주시기 바랍니다...'
$messages['importformaterror'] = '가져오기를 실패함! 업로드된 파일은 유효하지 않은 가져오기 데이터 파일입니다.';
$messages['importconfirm'] = '<b>$inserted 연락처를 성공적으로 가져옴<b>';
$messages['importconfirmskipped'] = '<b>기존 기재사항인 $skipped을(를) 건너뜀</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = '작업이 허가되지 않음!';
$messages['nofromaddress'] = '선택된 신원에 이메일 주소 가 누락됨.';
$messages['editorwarning'] = '일반 텍스트 편집기로 바꾸면 모든 텍스트 서식이 사라집니다. 계속하시겠습니까?';
diff --git a/program/localization/ku/messages.inc b/program/localization/ku/messages.inc
index 9d219cbf5..b3c716466 100644
--- a/program/localization/ku/messages.inc
+++ b/program/localization/ku/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Formatkirin ji peyamê tê birin...';
$messages['messageopenerror'] = 'Peyam ji pêşkêşkar nehat barkirin';
$messages['fileuploaderror'] = 'Barkirina pelê têk çû';
$messages['filesizeerror'] = 'Pel pir mezin e. Herî zêde divê $size be';
-$messages['copysuccess'] = '$nr navnîşan hat(in) jibergirtin';
-$messages['copyerror'] = 'Tu navnîşan nehat jibergirtin';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Çavkaniya vê navnîşanê tenê-xwendin e';
$messages['errorsavingcontact'] = 'Navnîşana têkiliyê nehat barkirin';
$messages['movingmessage'] = 'Ciyê peyamê tê guhertin...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/lt_LT/messages.inc b/program/localization/lt_LT/messages.inc
index df19c291b..7eb31ec3f 100644
--- a/program/localization/lt_LT/messages.inc
+++ b/program/localization/lt_LT/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Šalinamas laiško formatavimas…';
$messages['messageopenerror'] = 'Nepavyko įkelti laiško iš serverio.';
$messages['fileuploaderror'] = 'Nepavyko įkelti failo.';
$messages['filesizeerror'] = 'Įkeltas failas viršija maksimalų leistiną dydį – $size.';
-$messages['copysuccess'] = 'Nukopijuota adresų: $nr.';
-$messages['copyerror'] = 'Adresų nukopijuoti nepavyko.';
+$messages['copysuccess'] = 'Nukopijuota adresatų: $nr.';
+$messages['movesuccess'] = 'Perkelta adresatų: $nr.';
+$messages['copyerror'] = 'Adresatų nukopijuoti nepavyko.';
+$messages['moveerror'] = 'Adresatų perkelti nepavyko.';
$messages['sourceisreadonly'] = 'Šis adresų šaltinis prieinamas tik skaitymui.';
$messages['errorsavingcontact'] = 'Asmens adreso įrašyti nepavyko.';
$messages['movingmessage'] = 'Laiškas(-ai) perkeliamas(-i)…';
$messages['copyingmessage'] = 'Laiškas(-ai) kopijuojamas(-i)…';
$messages['copyingcontact'] = 'Adresatas(-ai) kopijuojamas(-i)…';
+$messages['movingcontact'] = 'Adresatas(-ai) perkeliamas(-i)…';
$messages['deletingmessage'] = 'Laiškas(-ai) šalinamas(-i)…';
$messages['markingmessage'] = 'Laiškas(-ai) žymimas(-i)…';
$messages['addingmember'] = 'Adresatas(-ai) įtraukiamas(-i) į grupę…';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importuojama, prašome palaukti…';
$messages['importformaterror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui duomenų failas.';
$messages['importconfirm'] = '<b>Sėkmingai importuoti $inserted adresatai(-ų)</b>';
$messages['importconfirmskipped'] = '<b>Praleisti $skipped jau egzistuojantys adresatai(-ų)</b>';
+$messages['importmessagesuccess'] = 'Importuota laiškų: $nr';
+$messages['importmessageerror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui laiško arba pašto dėžutės failas';
$messages['opnotpermitted'] = 'Veiksmas neleistinas!';
$messages['nofromaddress'] = 'Nenurodytas pasirinktosios tapatybės el. pašto adresas.';
$messages['editorwarning'] = 'Pereinant į grynojo teksto redagavimą, visas laiško formatavimas bus prarastas. Ar tęsti?';
diff --git a/program/localization/mk_MK/messages.inc b/program/localization/mk_MK/messages.inc
index f7a8d9a12..7a7548ce0 100755
--- a/program/localization/mk_MK/messages.inc
+++ b/program/localization/mk_MK/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Форматирањето на писмото е о
$messages['messageopenerror'] = 'Не можев да го вчитам писното од серверот';
$messages['fileuploaderror'] = 'Прикачувањето е неуспешно';
$messages['filesizeerror'] = 'Подигнатата податотека го надминува ограничувањето од $size';
-$messages['copysuccess'] = 'Успешно се копирани $nr имиња';
-$messages['copyerror'] = 'Не можам да ги копирам адресите';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Изворот на оваа адреса неможе да се промени';
$messages['errorsavingcontact'] = 'Името неможе да се сними';
$messages['movingmessage'] = 'Пораката се преместува...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Убезувам,, почекајте...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Успешно се увезени $inserted имиња, $skipped веќе постојат и се прескокнати</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Операцијата не е дозволена';
$messages['nofromaddress'] = 'Не е внесена е-пошта во одберениот идентитет';
$messages['editorwarning'] = 'Префрлањето на уредникот на обичен текст ќе резултира со губење на целото форматирање на текстот. Дали сакате да продолжите?';
diff --git a/program/localization/ml_IN/messages.inc b/program/localization/ml_IN/messages.inc
index 28eb22be2..cc189a17d 100644
--- a/program/localization/ml_IN/messages.inc
+++ b/program/localization/ml_IN/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr addresses.';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/mr_IN/messages.inc b/program/localization/mr_IN/messages.inc
index bc4097fb5..2b1bd3f33 100755
--- a/program/localization/mr_IN/messages.inc
+++ b/program/localization/mr_IN/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'दृष्य स्वरुप काढून
$messages['messageopenerror'] = 'सर्व्हरवरुन संदेश आणता आला नाही.';
$messages['fileuploaderror'] = 'फाईल चढवता आली नाही';
$messages['filesizeerror'] = 'तुम्ही चढवलेली फाईल क्षमतेपेक्षा जास्त मोठी आहे.';
-$messages['copysuccess'] = '$nr पत्त्यांची यशस्वीरित्या प्रत केली.';
-$messages['copyerror'] = 'कोणत्याही पत्त्याची प्रत बनवता आली नाही.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'पत्ता फक्त वाचण्यासाठी आहे.';
$messages['errorsavingcontact'] = 'पत्ता नोंदवहीत ठेवता आला नाही.';
$messages['movingmessage'] = 'संदेश हलवत आहे..';
$messages['copyingmessage'] = 'संदेशाची नक्‍कल करत आहे...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'आयात करत आहे, कृपया व
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>$inserted पत्ते यशस्वीरित्या आयात केल, $skipped आधिच असलेल्या नोंदी केल्या नाहीत</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'ही क्रिया करण्यास परवानगी नाही.';
$messages['nofromaddress'] = 'निवडलेल्या खात्यात इमेल पत्ता दिलेला नाही.';
$messages['editorwarning'] = 'टेक्स्ट संपादन निवडल्यास संदेशाचे दृष्य स्वरुप बदलून जाईल. तुम्हाला असेच करायचे आहे ना?';
diff --git a/program/localization/ms_MY/messages.inc b/program/localization/ms_MY/messages.inc
index 72d2e3075..50f10af13 100644
--- a/program/localization/ms_MY/messages.inc
+++ b/program/localization/ms_MY/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Singkir format dari mesej...';
$messages['messageopenerror'] = 'Tidak boleh muat mesej dari server';
$messages['fileuploaderror'] = 'Muatnaik fail gagal';
$messages['filesizeerror'] = 'Fail yang dimuatnaik melampaui saiz maksima $size';
-$messages['copysuccess'] = 'Berjaya salin alamat-alamat $nr';
-$messages['copyerror'] = 'Tidak boleh salin apa-apa alamat';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Sumber alamat ini adalah untuk bacaan sahaja';
$messages['errorsavingcontact'] = 'Tidak boleh simmpan alamat kontek';
$messages['movingmessage'] = 'Memindah mesej...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/nb_NO/messages.inc b/program/localization/nb_NO/messages.inc
index 7785f474a..6138b9379 100644
--- a/program/localization/nb_NO/messages.inc
+++ b/program/localization/nb_NO/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Fjerner formatering fra meldingen ...';
$messages['messageopenerror'] = 'Kunne ikke hente meldingen fra server';
$messages['fileuploaderror'] = 'Feil under opplastning.';
$messages['filesizeerror'] = 'Filen overstiger maksimum tillatt filstørrelse ($size)';
-$messages['copysuccess'] = 'Kopierte $nr adresser.';
-$messages['copyerror'] = 'Kunne ikke kopiere adresser.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Denne adressekilden er skrivebeskyttet';
$messages['errorsavingcontact'] = 'Kunne ikke lagre kontaktadressen.';
$messages['movingmessage'] = 'Flytter e-post ...';
$messages['copyingmessage'] = 'Kopierer e-post...';
$messages['copyingcontact'] = 'Kopierer kontakt(er) …';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Sletter melding(er) …';
$messages['markingmessage'] = 'Markerer melding(er) ...';
$messages['addingmember'] = 'Legger til kontakt(er) i gruppa ...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importerer, vennligst vent...';
$messages['importformaterror'] = 'Import feilet! Den opplastede filen er i feil format.';
$messages['importconfirm'] = '<b>Importerte $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppet over $skipped eksisterende oppføringer</b>';
+$messages['importmessagesuccess'] = 'Kopierte $nr meldinger';
+$messages['importmessageerror'] = 'Importeringen var mislykket! Den opplastede filen er ikke en gyldig melding, eller er ikke kompatibel med meldingssystemet.';
$messages['opnotpermitted'] = 'Handling ikke tillatt!';
$messages['nofromaddress'] = 'E-postadresse mangler i valgt identitet';
$messages['editorwarning'] = 'Ved å bytte format til ren tekst vil all tekstformatering gå tapt. Ønsker du å fortsette?';
diff --git a/program/localization/ne_NP/messages.inc b/program/localization/ne_NP/messages.inc
index c5214bb0f..bedf41d8d 100644
--- a/program/localization/ne_NP/messages.inc
+++ b/program/localization/ne_NP/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'मेलबाट फोर्माटिङ हट
$messages['messageopenerror'] = 'सर्वरबाट मेल लोड हुन सकेन';
$messages['fileuploaderror'] = 'फाईल अपलोड हुन असफल';
$messages['filesizeerror'] = 'अपलोड गरिएको फाईल हद $size भन्दा ठूलो छ';
-$messages['copysuccess'] = 'सफल्तापूर्वक $nr ठेगानाहरु उतारियो';
-$messages['copyerror'] = 'कुनै पनि ठेगानाहरु उतार्न सकिएन';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'यो ठेगाना को श्रोत पढ्नको लागि मात्र उपलब्ध छ';
$messages['errorsavingcontact'] = 'स्मपर्कको ठेगाना जोगाउन सकिएन';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/nl_BE/messages.inc b/program/localization/nl_BE/messages.inc
index d87329dc3..f7ed8e8d4 100644
--- a/program/localization/nl_BE/messages.inc
+++ b/program/localization/nl_BE/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Opmaak van het bericht wordt gewist...';
$messages['messageopenerror'] = 'Kon het bericht niet ophalen van de server.';
$messages['fileuploaderror'] = 'Bestandsupload mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximum grootte van $size.';
-$messages['copysuccess'] = '$nr adressen met succes gekopieerd.';
-$messages['copyerror'] = 'Kon de adressen niet kopiëren.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Het adres kan niet worden opgeslagen.';
$messages['errorsavingcontact'] = 'Kon de contactpersoon niet bewaren.';
$messages['movingmessage'] = 'Bericht wordt verplaatst...';
$messages['copyingmessage'] = 'Bericht wordt gekopieerd...';
$messages['copyingcontact'] = 'Kopiëren contactpersonen...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Bericht wordt verwijderd...';
$messages['markingmessage'] = 'Bericht wordt gemarkeerd...';
$messages['addingmember'] = 'Contactpersonen worden toegevoegd aan de groep...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Bezig met importeren, even geduld...';
$messages['importformaterror'] = 'Importeren mislukt! Het geüploade bestand is geen importeerbaar bestand.';
$messages['importconfirm'] = '<b>Er zijn $inserted contactpersonen succesvol geïmporteerd</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestaande contactpersonen overgeslagen</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Deze actie is niet toegestaan!';
$messages['nofromaddress'] = 'De geselecteerde identiteit bevat geen emailadres.';
$messages['editorwarning'] = 'Door het overschakelen naar de platte tekst editor gaat alle opmaak verloren. Weet u zeker dat u verder wilt gaan?';
diff --git a/program/localization/nl_NL/messages.inc b/program/localization/nl_NL/messages.inc
index 4a67e1590..01c43b243 100644
--- a/program/localization/nl_NL/messages.inc
+++ b/program/localization/nl_NL/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Opmaak van bericht verwijderen...';
$messages['messageopenerror'] = 'Kan het bericht niet van de server laden.';
$messages['fileuploaderror'] = 'Bestand uploaden mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximale grootte van $size.';
-$messages['copysuccess'] = '$nr adressen succesvol gekopieerd.';
-$messages['copyerror'] = 'Kan geen adressen kopiëren.';
+$messages['copysuccess'] = '$nr contactpersonen succesvol gekopieerd.';
+$messages['movesuccess'] = '$nr contactpersonen succesvol verplaatst.';
+$messages['copyerror'] = 'Kon geen contactpersoon kopieren.';
+$messages['moveerror'] = 'Kon geen contactpersoon verplaatsen.';
$messages['sourceisreadonly'] = 'Deze adresbron is alleen-lezen.';
$messages['errorsavingcontact'] = 'Kan contactpersoon niet opslaan.';
$messages['movingmessage'] = 'Bericht(en) verplaatsen...';
$messages['copyingmessage'] = 'Bericht(en) kopiëren...';
$messages['copyingcontact'] = 'Contact(en) kopiëren...';
+$messages['movingcontact'] = 'Contact(en) verplaatsen...';
$messages['deletingmessage'] = 'Bericht(en) verwijderen...';
$messages['markingmessage'] = 'Bericht(en) markeren...';
$messages['addingmember'] = 'Contactpersonen worden toegevoegd aan groep...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importeren, even geduld...';
$messages['importformaterror'] = 'Importeren mislukt! Het geüploade bestand is geen geldig importbestand.';
$messages['importconfirm'] = '<b>$inserted contactpersonen succesvol geïmporteerd</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestaande contactpersonen overgeslagen</b>';
+$messages['importmessagesuccess'] = '$nr berichten succesvol geïmporteerd';
+$messages['importmessageerror'] = 'Importeren mislukt! Het verstuurde bestand is geen geldig bericht of mailboxbestand';
$messages['opnotpermitted'] = 'Deze bewerking is niet toegestaan!';
$messages['nofromaddress'] = 'Het e-mailadres ontbreekt in de geselecteerde identiteit.';
$messages['editorwarning'] = 'Door het overschakelen naar de platte-tekstverwerker gaat alle opmaak verloren. Weet u zeker dat u verder wilt gaan?';
diff --git a/program/localization/nn_NO/messages.inc b/program/localization/nn_NO/messages.inc
index 3dce30b98..741b4cb20 100644
--- a/program/localization/nn_NO/messages.inc
+++ b/program/localization/nn_NO/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Fjernar formatering frå meldinga …';
$messages['messageopenerror'] = 'Klarte ikkje lasta meldinga frå tenaren.';
$messages['fileuploaderror'] = 'Filopplasting feila.';
$messages['filesizeerror'] = 'Fila du lasta opp, er større enn største tillatne filstorleik, $size.';
-$messages['copysuccess'] = 'Kopierte $nr adresser.';
-$messages['copyerror'] = 'Klarte ikkje kopiera nokon adresser.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Denne adressekjelda er berre lesbar.';
$messages['errorsavingcontact'] = 'Klarte ikkje lagra kontaktadressa.';
$messages['movingmessage'] = 'Flyttar melding(ar) …';
$messages['copyingmessage'] = 'Kopierer melding(ar) …';
$messages['copyingcontact'] = 'Kopierer kontakt(ar) …';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Slettar melding(ar) …';
$messages['markingmessage'] = 'Merkar melding(ar) …';
$messages['addingmember'] = 'Legg til kontakt(ar) i gruppa …';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importerer, vent …';
$messages['importformaterror'] = 'Importering feila. Den opplasta fila er i feil format.';
$messages['importconfirm'] = '<b>Importerte $inserted kontaktar</b>';
$messages['importconfirmskipped'] = '<b>Hoppa over $skipped oppføringar som fanst frå før</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Ulovleg operasjon.';
$messages['nofromaddress'] = 'Manglar e-postadresse i denne identiteten.';
$messages['editorwarning'] = 'Å byta til rein tekst vil fjerna all tekstformateringa. Vil du halda fram?';
diff --git a/program/localization/ps/messages.inc b/program/localization/ps/messages.inc
index d3a8483ee..50c1849bd 100755
--- a/program/localization/ps/messages.inc
+++ b/program/localization/ps/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'له استوزي څخه بڼې ړنګېږي';
$messages['messageopenerror'] = 'له سرور څخه استوزي پرمخ نه شي تلی';
$messages['fileuploaderror'] = 'دفايل پورته کول په بري سره سرته ونه رسيده';
$messages['filesizeerror'] = 'د پورته شوي فايل کچه بايد لږترلږه له $څخه تيری ونه کړي';
-$messages['copysuccess'] = 'په بشپړه توګه $پتې کاپي شوې';
-$messages['copyerror'] = 'هېڅ يوه پته يې کاپي‌نه شوای کړای';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'ددې پتې يوازې سرچينه لوستل کېږي';
$messages['errorsavingcontact'] = 'د پتې اړيکلوری يې خوندي‌نه شو کړای';
$messages['movingmessage'] = 'استوزه خوځوي';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'نقلوي...صبر وکړئ';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>په بشپړه توګه نقل شو $اړيکلوري داخل شول, $شته تيرشوي انټاير څخه تيرشول</b>:<p><em>$نومونه</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'چار اجازه نه لري';
$messages['nofromaddress'] = 'په ټاکل شوي پيژندنه کې برېښناليک پتې له لاسه ورکړي';
$messages['editorwarning'] = 'که د متن بڼو له منځه تللو ګواښ وي نو د متن سمون پرانيزئ. غواړئ چې دوام ورکړئ';
diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc
index 6ec481b8f..45b835d44 100644
--- a/program/localization/pt_BR/messages.inc
+++ b/program/localization/pt_BR/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Removendo formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem do servidor';
$messages['fileuploaderror'] = 'Falha ao enviar o arquivo';
$messages['filesizeerror'] = 'O arquivo enviado excede o tamanho máximo de $size';
-$messages['copysuccess'] = '$nr endereço(s) copiado(s) com sucesso';
-$messages['copyerror'] = 'Não foi possível copiar os endereços';
+$messages['copysuccess'] = '$nr contato(s) copiado(s) com sucesso.';
+$messages['movesuccess'] = '$nr contato(s) movido(s) com sucesso.';
+$messages['copyerror'] = 'Não foi possível copiar os contatos.';
+$messages['moveerror'] = 'Não foi possível mover os contatos.';
$messages['sourceisreadonly'] = 'Esta fonte de endereço é somente leitura';
$messages['errorsavingcontact'] = 'Não foi possível salvar o endereço de contato';
$messages['movingmessage'] = 'Movendo mensagem(ns)...';
$messages['copyingmessage'] = 'Copiando mensagem(ns)...';
$messages['copyingcontact'] = 'Copiando contato(s)...';
+$messages['movingcontact'] = 'Movendo contato(s)...';
$messages['deletingmessage'] = 'Excluindo mensagem(ns)...';
$messages['markingmessage'] = 'Marcando mensagem(ns)...';
$messages['addingmember'] = 'Adicionando contato(s) para o grupo...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importando, aguarde por favor...';
$messages['importformaterror'] = 'Falha na importação! O arquivo enviado não está em um formato válido.';
$messages['importconfirm'] = '<b>Foram importados com sucesso $inserted contatos</b>';
$messages['importconfirmskipped'] = '<b>Ignorado(s) $skipped registro(s) já existente(s)</b>';
+$messages['importmessagesuccess'] = 'Importação de $nr mensagens com sucesso';
+$messages['importmessageerror'] = 'Falha na importação! O arquivo enviado não é uma mensagem ou caixa postal válida';
$messages['opnotpermitted'] = 'Operação não permitida!';
$messages['nofromaddress'] = 'Falta o e-mail na identidade selecionada.';
$messages['editorwarning'] = 'Mudar para o editor de texto simples elimina toda a formatação de texto. Deseja continuar?';
diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc
index 88b96e60e..f0855096e 100644
--- a/program/localization/pt_PT/messages.inc
+++ b/program/localization/pt_PT/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'A remover a formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem.';
$messages['fileuploaderror'] = 'Falha ao carregar o ficheiro';
$messages['filesizeerror'] = 'O ficheiro excede o tamanho máximo permitido de $size';
-$messages['copysuccess'] = 'Foram copiados $nr endereços com sucesso';
-$messages['copyerror'] = 'Não foi possível copiar os endereços';
+$messages['copysuccess'] = '$nr contacto(s) copiado(s) com sucesso.';
+$messages['movesuccess'] = '$nr contacto(s) movido(s) com sucesso.';
+$messages['copyerror'] = 'Não foi possível copiar o(s) contacto(s).';
+$messages['moveerror'] = 'Não foi possível mover o(s) contacto(s).';
$messages['sourceisreadonly'] = 'Esta origem de endereços é só de leitura';
$messages['errorsavingcontact'] = 'Não foi possível guardar o endereço deste contacto';
$messages['movingmessage'] = 'A mover mensagem(ns)...';
$messages['copyingmessage'] = 'A copiar mensagem(ns)...';
$messages['copyingcontact'] = 'A copiar contacto(s)...';
+$messages['movingcontact'] = 'A mover contacto(s)...';
$messages['deletingmessage'] = 'A eliminar mensagem(ns)...';
$messages['markingmessage'] = 'A marcar mensagem(ns)...';
$messages['addingmember'] = 'A adicionar contacto(s) ao grupo...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'A importar, por favor aguarde...';
$messages['importformaterror'] = 'A importação falhou! O ficheiro enviado não é um ficheiro de dados válido.';
$messages['importconfirm'] = '<b>$inserted contactos importados com sucesso, $skipped contactos já existentes foram ignorados</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = 'Ignoradas $skipped entradas já existentes.';
+$messages['importmessagesuccess'] = '$nr mensagens importadas com sucesso';
+$messages['importmessageerror'] = 'A importação falhou! O ficheiro carregado não é um arquivo de caixa de correio ou ficheiro de mensagem válido.';
$messages['opnotpermitted'] = 'Operação não permitida';
$messages['nofromaddress'] = 'Falta o endereço de e-mail na identidade seleccionada';
$messages['editorwarning'] = 'Ao mudar para o editor Plain Text vai perder toda a formação de texto. Deseja continuar?';
diff --git a/program/localization/ru_RU/labels.inc b/program/localization/ru_RU/labels.inc
index d2b8e75c4..6b2b4ebca 100644
--- a/program/localization/ru_RU/labels.inc
+++ b/program/localization/ru_RU/labels.inc
@@ -146,7 +146,7 @@ $labels['lastmessage'] = 'Показать последнее сообще
$labels['backtolist'] = 'К списку сообщений';
$labels['viewsource'] = 'Исходный текст';
$labels['mark'] = 'Пометить';
-$labels['markmessages'] = 'Пометить сообщение';
+$labels['markmessages'] = 'Пометить сообщения';
$labels['markread'] = 'Как прочитанное';
$labels['markunread'] = 'Как непрочитанное';
$labels['markflagged'] = 'Установить флаг';
@@ -164,9 +164,9 @@ $labels['unread'] = 'Непрочитанные';
$labels['flagged'] = 'Помеченные';
$labels['unanswered'] = 'Неотвеченные';
$labels['withattachment'] = 'С вложением';
-$labels['deleted'] = 'Удаленное';
-$labels['undeleted'] = 'Не удалено';
-$labels['invert'] = 'Инвертное';
+$labels['deleted'] = 'Удаленные';
+$labels['undeleted'] = 'Не удаленные';
+$labels['invert'] = 'Инвертировать';
$labels['filter'] = 'Фильтр';
$labels['list'] = 'Список';
$labels['threads'] = 'Обсуждения';
@@ -206,6 +206,7 @@ $labels['searchmod'] = 'Варианты поиска';
$labels['msgtext'] = 'Всё сообщение';
$labels['body'] = 'Тело письма';
$labels['type'] = 'Тип';
+$labels['namex'] = 'Имя';
$labels['openinextwin'] = 'Открыть в новом окне';
$labels['emlsave'] = 'Сохранить (.eml)';
@@ -239,7 +240,7 @@ $labels['close'] = 'Закрыть';
$labels['messageoptions'] = 'Настройки сообщений...';
$labels['low'] = 'Низкий';
-$labels['lowest'] = 'Нижайш.';
+$labels['lowest'] = 'Низший';
$labels['normal'] = 'Норм.';
$labels['high'] = 'Высокий';
$labels['highest'] = 'Высоч.';
@@ -321,7 +322,7 @@ $labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профиль';
$labels['addfield'] = 'Добавить поле...';
-$labels['addcontact'] = 'Добавить выбранные контакты в список контактов';
+$labels['addcontact'] = 'Добавить новый контакт';
$labels['editcontact'] = 'Редактировать контакт';
$labels['contacts'] = 'Контакты';
$labels['contactproperties'] = 'Свойства контакта';
@@ -350,7 +351,7 @@ $labels['grouprename'] = 'Переименовать группу';
$labels['groupdelete'] = 'Удалить группу';
$labels['groupremoveselected'] = 'Удалить выбранные контакты из группы';
-$labels['previouspage'] = 'Показать предыдущий';
+$labels['previouspage'] = 'Показать предыдущую страницу';
$labels['firstpage'] = 'Показать первую страницу';
$labels['nextpage'] = 'Показать следующую страницу';
$labels['lastpage'] = 'Показать последнюю страницу';
diff --git a/program/localization/ru_RU/messages.inc b/program/localization/ru_RU/messages.inc
index f9c8c433a..e7dd36298 100644
--- a/program/localization/ru_RU/messages.inc
+++ b/program/localization/ru_RU/messages.inc
@@ -18,23 +18,23 @@
$messages = array();
$messages['errortitle'] = 'Произошла ошибка!';
-$messages['loginfailed'] = 'Неудачная попытка входа';
-$messages['cookiesdisabled'] = 'Ваш броузер не принимает cookie';
-$messages['sessionerror'] = 'Ваша сессия устарела';
+$messages['loginfailed'] = 'Неудачная попытка входа.';
+$messages['cookiesdisabled'] = 'Ваш браузер не принимает cookie.';
+$messages['sessionerror'] = 'Ваша сессия устарела.';
$messages['storageerror'] = 'Неудачное соединение с IMAP сервером';
$messages['servererror'] = 'Ошибка сервера!';
$messages['servererrormsg'] = 'Ошибка сервера: $msg';
$messages['dberror'] = 'Ошибка базы данных!';
$messages['requesttimedout'] = 'Превышено время ожидания запроса';
-$messages['errorreadonly'] = 'Невозможно выполнить операцию. Папка доступна только для чтения';
-$messages['errornoperm'] = 'Невозможно выполнить операцию. Доступ запрещён';
+$messages['errorreadonly'] = 'Невозможно выполнить операцию. Папка доступна только для чтения.';
+$messages['errornoperm'] = 'Невозможно выполнить операцию. Доступ запрещён.';
$messages['erroroverquota'] = 'Невозможно выполнить операцию. Нет свободного места на диске.';
$messages['erroroverquotadelete'] = 'Нет свободного места на диске. Используйте SHIFT+DEL для удаления сообщения.';
$messages['invalidrequest'] = 'Неверный запрос! Информация не сохранена.';
$messages['invalidhost'] = 'Неверное имя сервера.';
$messages['nomessagesfound'] = 'Сообщений не найдено';
$messages['loggedout'] = 'Ваша сессия завершена. Всего доброго!';
-$messages['mailboxempty'] = 'Почтовый ящик пуст';
+$messages['mailboxempty'] = 'Почтовый ящик пуст.';
$messages['refreshing'] = 'Обновление...';
$messages['loading'] = 'Загрузка...';
$messages['uploading'] = 'Файл загружается…';
@@ -42,28 +42,28 @@ $messages['uploadingmany'] = 'Загрузка файлов...';
$messages['loadingdata'] = 'Загрузка данных...';
$messages['checkingmail'] = 'Проверка новых сообщений...';
$messages['sendingmessage'] = 'Отправка сообщения...';
-$messages['messagesent'] = 'Сообщение отправлено';
+$messages['messagesent'] = 'Сообщение отправлено.';
$messages['savingmessage'] = 'Сохранение сообщения...';
-$messages['messagesaved'] = 'Сохранено в Черновиках';
-$messages['successfullysaved'] = 'Сохранено';
-$messages['addedsuccessfully'] = 'Контакт добавлен в список контактов';
-$messages['contactexists'] = 'Контакт с этим адресом e-mail уже существует';
+$messages['messagesaved'] = 'Сохранено в Черновиках.';
+$messages['successfullysaved'] = 'Сохранено.';
+$messages['addedsuccessfully'] = 'Контакт добавлен в адресную книгу.';
+$messages['contactexists'] = 'Контакт с этим адресом e-mail уже существует.';
$messages['contactnameexists'] = 'Контакт с таким именем уже существует.';
$messages['blockedimages'] = 'В целях безопасности загрузка изображений заблокирована.';
$messages['encryptedmessage'] = 'Сообщение зашифровано и не может быть показано. Обратитесь к администратору сервера.';
-$messages['nocontactsfound'] = 'Контакты не найдены';
-$messages['contactnotfound'] = 'Требуемый контакт не найден';
+$messages['nocontactsfound'] = 'Контакты не найдены.';
+$messages['contactnotfound'] = 'Требуемый контакт не найден.';
$messages['contactsearchonly'] = 'Введите условия для поиска контактов';
-$messages['sendingfailed'] = 'Не удалось отправить сообщение';
-$messages['senttooquickly'] = 'Вы должны подождать $sec сек. для отправки сообщения';
-$messages['errorsavingsent'] = 'Произошла ошибка при сохранении отправленного сообщения';
-$messages['errorsaving'] = 'В процессе сохранения произошла ошибка';
-$messages['errormoving'] = 'Не удалось переместить сообщение';
-$messages['errorcopying'] = 'Не удалось скопировать сообщение';
-$messages['errordeleting'] = 'Не удалось удалить сообщение';
-$messages['errormarking'] = 'Невозможно пометить сообщение';
+$messages['sendingfailed'] = 'Не удалось отправить сообщение.';
+$messages['senttooquickly'] = 'Вы должны подождать $sec сек. для отправки сообщения.';
+$messages['errorsavingsent'] = 'Произошла ошибка при сохранении отправленного сообщения.';
+$messages['errorsaving'] = 'В процессе сохранения произошла ошибка.';
+$messages['errormoving'] = 'Не удалось переместить сообщение(я).';
+$messages['errorcopying'] = 'Не удалось скопировать сообщение(я).';
+$messages['errordeleting'] = 'Не удалось удалить сообщение(я).';
+$messages['errormarking'] = 'Не удалось пометить сообщение(я).';
$messages['deletecontactconfirm'] = 'Вы действительно хотите удалить выделенные контакты?';
-$messages['deletegroupconfirm'] = 'Вы действительно хотите удалить группу?';
+$messages['deletegroupconfirm'] = 'Вы действительно хотите удалить выделенную группу?';
$messages['deletemessagesconfirm'] = 'Вы действительно хотите удалить выбранные сообщения?';
$messages['deletefolderconfirm'] = 'Вы действительно хотите удалить эту папку?';
$messages['purgefolderconfirm'] = 'Вы действительно хотите удалить все сообщения в этой папке?';
@@ -73,99 +73,104 @@ $messages['folderdeleting'] = 'Удаление папки...';
$messages['foldermoving'] = 'Перемещение папки...';
$messages['foldersubscribing'] = 'Подписать папку...';
$messages['folderunsubscribing'] = 'Отписать папку...';
-$messages['formincomplete'] = 'Заполнены не все поля';
-$messages['noemailwarning'] = 'Пожалуйста, введите корректный адрес электронной почты';
-$messages['nonamewarning'] = 'Пожалуйста, введите имя';
-$messages['nopagesizewarning'] = 'Пожалуйста, введите размер страницы';
-$messages['nosenderwarning'] = 'Пожалуйста, введите адрес электронной почты отправителя';
-$messages['norecipientwarning'] = 'Пожалуйста, введите имя получателя';
+$messages['formincomplete'] = 'Заполнены не все поля формы.';
+$messages['noemailwarning'] = 'Пожалуйста, введите корректный адрес электронной почты.';
+$messages['nonamewarning'] = 'Пожалуйста, введите имя.';
+$messages['nopagesizewarning'] = 'Пожалуйста, введите размер страницы.';
+$messages['nosenderwarning'] = 'Пожалуйста, введите адрес электронной почты отправителя.';
+$messages['norecipientwarning'] = 'Пожалуйста, введите хотя бы одного получателя.';
$messages['nosubjectwarning'] = 'Поле Тема не заполнено. Хотите заполнить его сейчас?';
$messages['nobodywarning'] = 'Отправить сообщение без текста?';
$messages['notsentwarning'] = 'Сообщение не было отправлено. Вы хотите отказаться от отправки?';
-$messages['noldapserver'] = 'Пожалуйста, выберите LDAP сервер для поиска';
+$messages['noldapserver'] = 'Пожалуйста, выберите LDAP сервер для поиска.';
$messages['nosearchname'] = 'Пожалуйста, введите имя или адрес E-Mail';
$messages['notuploadedwarning'] = 'Вложения загружены не полностью. Подождите или отмените загрузку.';
$messages['searchsuccessful'] = 'Найденных сообщений - $nr';
$messages['contactsearchsuccessful'] = '$nr контактов найдено.';
-$messages['searchnomatch'] = 'Сообщений не найдено';
+$messages['searchnomatch'] = 'Ничего не найдено.';
$messages['searching'] = 'Поиск...';
$messages['checking'] = 'Проверка...';
-$messages['nospellerrors'] = 'Орфографических ошибок не найдено';
-$messages['folderdeleted'] = 'Папка удалена';
+$messages['nospellerrors'] = 'Орфографических ошибок не найдено.';
+$messages['folderdeleted'] = 'Папка удалена.';
$messages['foldersubscribed'] = 'Папка подписана';
$messages['folderunsubscribed'] = 'Папка отписана';
-$messages['folderpurged'] = 'Папка удалена';
-$messages['folderexpunged'] = 'Папка очищена';
-$messages['deletedsuccessfully'] = 'Удалено';
+$messages['folderpurged'] = 'Папка очищена.';
+$messages['folderexpunged'] = 'Папка сжата.';
+$messages['deletedsuccessfully'] = 'Удалено.';
$messages['converting'] = 'Удаление форматирования сообщения...';
-$messages['messageopenerror'] = 'Невозможно загрузить сообщение с сервера';
-$messages['fileuploaderror'] = 'Невозможно загрузить файл';
-$messages['filesizeerror'] = 'Загруженный файл больше максимального размера в $size';
-$messages['copysuccess'] = 'Скопировано $nr адресов';
-$messages['copyerror'] = 'Невозможно скопировать адреса';
-$messages['sourceisreadonly'] = 'Данный источник адресов только для чтения';
-$messages['errorsavingcontact'] = 'Невозможно сохранить адрес контакта';
-$messages['movingmessage'] = 'Перемещение сообщений…';
-$messages['copyingmessage'] = 'Копирование сообщений...';
+$messages['messageopenerror'] = 'Невозможно загрузить сообщение с сервера.';
+$messages['fileuploaderror'] = 'Ошибка загрузки файла.';
+$messages['filesizeerror'] = 'Загруженный файл больше максимального размера в $size.';
+$messages['copysuccess'] = 'Успешно скопировано $nr контактов.';
+$messages['movesuccess'] = 'Успешно перемещено $nr контактов.';
+$messages['copyerror'] = 'Контакты не скопированы.';
+$messages['moveerror'] = 'Контакты не перемещены.';
+$messages['sourceisreadonly'] = 'Данный источник адресов только для чтения.';
+$messages['errorsavingcontact'] = 'Невозможно сохранить адрес контакта.';
+$messages['movingmessage'] = 'Перемещение сообщения(й)…';
+$messages['copyingmessage'] = 'Копирование сообщения(й)...';
$messages['copyingcontact'] = 'Копирование контакта(ов)...';
-$messages['deletingmessage'] = 'Удаление сообщений...';
-$messages['markingmessage'] = 'Выделение сообщений...';
+$messages['movingcontact'] = 'Перемещение контакта(ов)...';
+$messages['deletingmessage'] = 'Удаление сообщения(й)...';
+$messages['markingmessage'] = 'Выделение сообщения(й)...';
$messages['addingmember'] = 'Добавление контакта(ов) в группу...';
$messages['removingmember'] = 'Удаление контакта(ов) из группы...';
-$messages['receiptsent'] = 'Уведомление о прочтении отправлено';
-$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено';
+$messages['receiptsent'] = 'Уведомление о прочтении отправлено.';
+$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено.';
$messages['deleteidentityconfirm'] = 'Вы на самом деле хотите удалить эту сущность?';
-$messages['nodeletelastidentity'] = 'Вы не можете удалить этот профиль, он у вас последний';
-$messages['forbiddencharacter'] = 'Имя папки содержит недопустимые символы';
-$messages['selectimportfile'] = 'Выберите файл для загрузки';
-$messages['addresswriterror'] = 'Выбранная адресная книга недоступна для записи';
-$messages['contactaddedtogroup'] = 'Контакты добавлены в группу';
-$messages['contactremovedfromgroup'] = 'Контакты удалены из группы';
+$messages['nodeletelastidentity'] = 'Вы не можете удалить этот профиль, он у вас последний.';
+$messages['forbiddencharacter'] = 'Имя папки содержит недопустимые символы.';
+$messages['selectimportfile'] = 'Выберите файл для загрузки.';
+$messages['addresswriterror'] = 'Выбранная адресная книга недоступна для записи.';
+$messages['contactaddedtogroup'] = 'Контакты добавлены в эту группу.';
+$messages['contactremovedfromgroup'] = 'Контакты удалены из этой группы.';
$messages['nogroupassignmentschanged'] = 'Распределение по группам не изменено.';
$messages['importwait'] = 'Импортирование, пожалуйста, подождите...';
$messages['importformaterror'] = 'Ошибка импорта! Загруженный файл имеет неизвестный формат данных.';
-$messages['importconfirm'] = '<b>Успешно импортировано $inserted контакт(ов), пропущено $skipped существующих</b>:<p><em>$names</em></p>';
-$messages['importconfirmskipped'] = '<b>Пропущенные $skipped существующие записи</b>';
+$messages['importconfirm'] = '<b>Успешно импортировано $inserted контактов</b>';
+$messages['importconfirmskipped'] = '<b>Пропущено $skipped существующих записей</b>';
+$messages['importmessagesuccess'] = '$nr сообщений успешно импортировано.';
+$messages['importmessageerror'] = 'Сбой импорта! Загруженный файл не является файлом сообщения или почтового ящика';
$messages['opnotpermitted'] = 'Действие запрещено!';
-$messages['nofromaddress'] = 'В выбранном профиле не хватает адреса электронной почты';
+$messages['nofromaddress'] = 'В выбранном профиле не хватает адреса электронной почты.';
$messages['editorwarning'] = 'При переключении в редактор простого текста все форматирование будет потеряно. Продолжить?';
-$messages['httpreceivedencrypterror'] = 'На сервере возникла неизбежная ошибка. Срочно свяжитесь с Вашим администратором. <b>Ваше сообщение может быть не отправлено.</b>';
-$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['smtperror'] = 'SMTP Error ($code): $msg';
+$messages['httpreceivedencrypterror'] = 'На сервере возникла неизбежная ошибка. Срочно свяжитесь с Вашим администратором. <b>Ваше сообщение не может быть отправлено.</b>';
+$messages['smtpconnerror'] = 'SMTP ошибка ($code): Сбой соединения с сервером.';
+$messages['smtpautherror'] = 'SMTP ошибка ($code): Ошибка авторизации.';
+$messages['smtpfromerror'] = 'SMTP ошибка ($code): Невозможно установить отправителя "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP ошибка ($code): Невозможно добавить получателя "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP ошибка: Невозможно обработать список получателей.';
+$messages['smtperror'] = 'SMTP ошибка: $msg';
$messages['emailformaterror'] = 'Неверный адрес: $email';
-$messages['toomanyrecipients'] = 'Слишком много получателей, уменьшите их количество до $max.';
-$messages['maxgroupmembersreached'] = 'Размер группы больше максимально разрешенного - $max';
-$messages['internalerror'] = 'Произошла внутренняя ошибка. Попробуйте ещё раз';
-$messages['contactdelerror'] = 'Не могу удалить контакт(ы)';
-$messages['contactdeleted'] = 'Контакт(ы) успешно удален(ы)';
+$messages['toomanyrecipients'] = 'Слишком много получателей. Уменьшите их количество до $max.';
+$messages['maxgroupmembersreached'] = 'Размер группы больше максимально разрешенного - $max.';
+$messages['internalerror'] = 'Произошла внутренняя ошибка. Попробуйте ещё раз.';
+$messages['contactdelerror'] = 'Не возможно удалить контакт(ы).';
+$messages['contactdeleted'] = 'Контакт(ы) успешно удален(ы).';
$messages['contactrestoreerror'] = 'Не удалось восстановить удалённый(е) контакт(ы).';
-$messages['contactrestored'] = 'Контакт(ы) успешно восстановлены.';
-$messages['groupdeleted'] = 'Группа успешно удалена';
-$messages['grouprenamed'] = 'Группа успешно переименована';
-$messages['groupcreated'] = 'Группа успешно создана';
+$messages['contactrestored'] = 'Контакт(ы) успешно восстановлен(ы).';
+$messages['groupdeleted'] = 'Группа успешно удалена.';
+$messages['grouprenamed'] = 'Группа успешно переименована.';
+$messages['groupcreated'] = 'Группа успешно создана.';
$messages['savedsearchdeleted'] = 'Сохранённый запрос успешно удалён.';
$messages['savedsearchdeleteerror'] = 'Не удалось удалить сохранённый запрос.';
$messages['savedsearchcreated'] = 'Сохранённый запрос успешно создан.';
$messages['savedsearchcreateerror'] = 'Не удалось создать сохранённый запрос.';
-$messages['messagedeleted'] = 'Сообщения успешно удалены';
-$messages['messagemoved'] = 'Сообщения успешно перемещены';
-$messages['messagecopied'] = 'Сообщения успешно скопированы';
-$messages['messagemarked'] = 'Сообщения успешно выделены';
-$messages['autocompletechars'] = 'Введите, как минимум, $min символов для автодополнения';
+$messages['messagedeleted'] = 'Сообщение(я) успешно удалено(ы).';
+$messages['messagemoved'] = 'Сообщение(я) успешно перемещено(ы).';
+$messages['messagecopied'] = 'Сообщение(я) успешно скопировано(ы).';
+$messages['messagemarked'] = 'Сообщение(я) успешно выделено(ы).';
+$messages['autocompletechars'] = 'Введите, как минимум, $min символов для автодополнения.';
$messages['autocompletemore'] = 'Поиск возвратил слишком много результатов. Пожалуйста, уточните.';
-$messages['namecannotbeempty'] = 'Имя не может быть пустым';
-$messages['nametoolong'] = 'Слишком длинное имя';
-$messages['folderupdated'] = 'Папка обновлена';
-$messages['foldercreated'] = 'Папка создана';
-$messages['invalidimageformat'] = 'Неверный формат изображения';
-$messages['mispellingsfound'] = 'В сообщении обнаружены орфографические ошибки';
+$messages['namecannotbeempty'] = 'Имя не может быть пустым.';
+$messages['nametoolong'] = 'Слишком длинное имя.';
+$messages['folderupdated'] = 'Папка обновлена.';
+$messages['foldercreated'] = 'Папка создана.';
+$messages['invalidimageformat'] = 'Неверный формат изображения.';
+$messages['mispellingsfound'] = 'В сообщении обнаружены орфографические ошибки.';
$messages['parentnotwritable'] = 'Не удается создать/переместить папку в выбранную родительскую папку. Нет прав доступа.';
$messages['messagetoobig'] = 'Часть сообщения слишком велика для обработки.';
-$messages['attachmentvalidationerror'] = 'ВНИМАНИЕ! Это приложение является подозрительной, потому что его тип не совпадает с типом, объявленным в сообщении. Если вы не доверяете отправителю, вы не должны открывать его в браузере, поскольку он может содержать вредоносный содержание.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['attachmentvalidationerror'] = 'ВНИМАНИЕ! Это вложение является подозрительным, потому что его тип не совпадает с типом, объявленным в сообщении. Если Вы не доверяете отправителю, не открывайте его в браузере, поскольку оно может заключать в себе вредоносное содержимое.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Внимание: Данному сервису веб-почты требуется Javascript! Для того, чтобы его использовать необходимо включить поддержку Javascript в настройках вашего браузера.';
?>
diff --git a/program/localization/si_LK/messages.inc b/program/localization/si_LK/messages.inc
index c3828bc64..dd020b928 100644
--- a/program/localization/si_LK/messages.inc
+++ b/program/localization/si_LK/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'පනිවුඩයෙන් ආකෘතීකර
$messages['messageopenerror'] = 'පනිවුඩය පූරනය කිරීමට නොහැක';
$messages['fileuploaderror'] = 'ගොනුව ඇතුලත් කිරීමට නොහැක';
$messages['filesizeerror'] = 'ඇතුලත් කල ගොනුවෙ ප්රමාණය උපරිම අගය $size ඉක්මවා ඇත';
-$messages['copysuccess'] = '$nr ලිපිනය සාර්ථකව පිටපත් කරන ලදී';
-$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'මෙම ලිපින මූලාශ්රය කියවීම සඳහා පමනි';
$messages['errorsavingcontact'] = 'ලිපිනය තැන්පත් කීරීමට නොහැක';
$messages['movingmessage'] = 'පණිවිඩ(ය) ගෙනයමින්...';
$messages['copyingmessage'] = 'පණිවිඩ(ය) පිටපත් කරමින්...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'පණිවිඩ(ය) මකා දමමින්...';
$messages['markingmessage'] = 'පණිවිඩ(ය) සලකුණු කරමින්...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'ආනයනය කරමින්, කරුණා
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/sk_SK/messages.inc b/program/localization/sk_SK/messages.inc
index a6f319db6..17aaa3a53 100644
--- a/program/localization/sk_SK/messages.inc
+++ b/program/localization/sk_SK/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Odstraňuje sa formátovanie správy...';
$messages['messageopenerror'] = 'Nedá sa načítať správa zo servera';
$messages['fileuploaderror'] = 'Načítanie súboru nebolo úspešné';
$messages['filesizeerror'] = 'Načítavaný súbor prekročil maximálnu veľkosť $size';
-$messages['copysuccess'] = 'Úspešne sa skopírovalo $nr adries';
-$messages['copyerror'] = 'Nedá sa kopírovať žiadna adresa';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Tento zdroj adries je len na čítanie';
$messages['errorsavingcontact'] = 'Nedá sa uložiť adresa kontaktu';
$messages['movingmessage'] = 'Správa sa presúva...';
$messages['copyingmessage'] = 'Správa sa kopíruje...';
$messages['copyingcontact'] = 'Kopírujem kontakt(y)';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Mažem správu(y)...';
$messages['markingmessage'] = 'Označujem správu(y)...';
$messages['addingmember'] = 'Pridávam kontakt(y) do skupiny...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Prebieha import, počkajte ...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Úspešne sa načítalo $inserted kontaktov, preskočilo sa $skipped existujúcich záznamov</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Preskočených $skipped existujúcich záznamov</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operácia nie je povolená!';
$messages['nofromaddress'] = 'Zvolená identita neobsahuje e-mailovú adresu';
$messages['editorwarning'] = 'Prepnutie na editor obyčajného textu spôsobí stratu formátovania. Chcete napriek tomu pokračovať?';
diff --git a/program/localization/sq_AL/messages.inc b/program/localization/sq_AL/messages.inc
index 56bb9feb2..5a18aafca 100644
--- a/program/localization/sq_AL/messages.inc
+++ b/program/localization/sq_AL/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Po i heq formatimin mesazhit...';
$messages['messageopenerror'] = 'Nuk marr dot mesazhe nga serveri';
$messages['fileuploaderror'] = 'Ngarkimi i skedarit dështoi';
$messages['filesizeerror'] = 'Skedari i ngarkuar e kalon madhësinë kufi prej $size';
-$messages['copysuccess'] = 'U kopjuan me sukses $nr adresa';
-$messages['copyerror'] = 'Nuk munda të kopjoj adresat';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Ky burim adrese është vetëm i lexueshëm';
$messages['errorsavingcontact'] = 'Nuk e ruajta dot adresën e kontaktit';
$messages['movingmessage'] = 'Po lëviz mesazhin...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/sr_CS/messages.inc b/program/localization/sr_CS/messages.inc
index 32007e6f2..016cef163 100644
--- a/program/localization/sr_CS/messages.inc
+++ b/program/localization/sr_CS/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Уклањање форматирања из пору
$messages['messageopenerror'] = 'Порука се не може учитати са сервера';
$messages['fileuploaderror'] = 'Слање датотеке неуспешно';
$messages['filesizeerror'] = 'Послата датотека не може да прекорачи величину од $size';
-$messages['copysuccess'] = 'Успешно копирано $nr адреса';
-$messages['copyerror'] = 'Немогуће је ископирати иједну адресу';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Овај извор адресе је само за читање';
$messages['errorsavingcontact'] = 'Неуспело снимање адресе контакта';
$messages['movingmessage'] = 'Премештам поруку...';
$messages['copyingmessage'] = 'Копирам поруке...';
$messages['copyingcontact'] = 'Умножава контакте...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'бришем поруке...';
$messages['markingmessage'] = 'Означавам поруке...';
$messages['addingmember'] = 'Додаје контакте у групу...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Увоз података, молимо сачека
$messages['importformaterror'] = 'Увоз је неуспешан! Послата датотека није допуштена за увоз.';
$messages['importconfirm'] = '<b>Успешно увезжени $inserted контакти </b>';
$messages['importconfirmskipped'] = '<b>Прескочени $skipped постојећи уноси </b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Операција није дозвољена!';
$messages['nofromaddress'] = 'Недостаје имејл адреса у изабраном налогу';
$messages['editorwarning'] = 'Пребацивање на обичан текст едитор ће изазвати губитак целог форматирања. Да ли желите да наставите?';
diff --git a/program/localization/sv_SE/messages.inc b/program/localization/sv_SE/messages.inc
index 63dddc548..d0c58a97d 100644
--- a/program/localization/sv_SE/messages.inc
+++ b/program/localization/sv_SE/messages.inc
@@ -42,11 +42,11 @@ $messages['uploadingmany'] = 'Överför filer...';
$messages['loadingdata'] = 'Laddar data...';
$messages['checkingmail'] = 'Hämtar nya meddelanden...';
$messages['sendingmessage'] = 'Skickar meddelande...';
-$messages['messagesent'] = 'Meddelandet har skickats';
+$messages['messagesent'] = 'Meddelandet har skickats.';
$messages['savingmessage'] = 'Sparar meddelande...';
$messages['messagesaved'] = 'Meddelandet har sparats i Utkast';
-$messages['successfullysaved'] = 'Informationen har sparats';
-$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken';
+$messages['successfullysaved'] = 'Informationen har sparats.';
+$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken.';
$messages['contactexists'] = 'En kontakt med den här adressen finns redan';
$messages['contactnameexists'] = 'En kontakt med det här namnet finns redan';
$messages['blockedimages'] = 'Externt länkade bilder i meddelandet har blockerats.';
@@ -85,47 +85,52 @@ $messages['notsentwarning'] = 'Meddelandet har inte skickats. Vill du avbryta me
$messages['noldapserver'] = 'Ange en LDAP-server för att söka';
$messages['nosearchname'] = 'Ange ett kontaktnamn eller en adress';
$messages['notuploadedwarning'] = 'Alla bilagor har inte överförts ännu. Vänta eller avbryt överföringen.';
-$messages['searchsuccessful'] = '$nr meddelanden hittades';
-$messages['contactsearchsuccessful'] = '$nr kontakter hittades';
+$messages['searchsuccessful'] = '$nr meddelanden hittades.';
+$messages['contactsearchsuccessful'] = '$nr kontakter hittades.';
$messages['searchnomatch'] = 'Sökningen gav inget resultat';
$messages['searching'] = 'Söker...';
$messages['checking'] = 'Kontrollerar...';
$messages['nospellerrors'] = 'Inget stavfel hittades';
-$messages['folderdeleted'] = 'Katalogen togs bort';
-$messages['foldersubscribed'] = 'Prenumeration på katalog startad';
-$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad';
-$messages['folderpurged'] = 'Katalog rensad';
-$messages['folderexpunged'] = 'Katalog tömd';
-$messages['deletedsuccessfully'] = 'Lyckad borttagning';
+$messages['folderdeleted'] = 'Katalogen togs bort.';
+$messages['foldersubscribed'] = 'Prenumeration på katalog startad.';
+$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad.';
+$messages['folderpurged'] = 'Katalog rensad.';
+$messages['folderexpunged'] = 'Katalog tömd.';
+$messages['deletedsuccessfully'] = 'Lyckad borttagning.';
$messages['converting'] = 'Tar bort formatering från meddelande...';
$messages['messageopenerror'] = 'Meddelandet kunde inte hämtas från servern';
$messages['fileuploaderror'] = 'Filuppladdning misslyckades';
$messages['filesizeerror'] = 'Den uppladdade filens storlek överstiger högsta tillåtna $size';
-$messages['copysuccess'] = '$nr adresser har kopierats';
-$messages['copyerror'] = 'Några adresser kunde inte kopieras';
+$messages['copysuccess'] = '$nr kontakter har kopierats.';
+$messages['movesuccess'] = '$nr kontakter har flyttats.';
+$messages['copyerror'] = 'Några kontakter kunde inte kopieras.';
+$messages['moveerror'] = 'Några kontakter kunde inte flyttas.';
$messages['sourceisreadonly'] = 'Denna adresskälla är skrivskyddad';
$messages['errorsavingcontact'] = 'Kontaktadressen kunde inte sparas';
$messages['movingmessage'] = 'Flyttar meddelande...';
$messages['copyingmessage'] = 'Kopierar meddelande...';
$messages['copyingcontact'] = 'Kopierar kontakter...';
+$messages['movingcontact'] = 'Flyttar kontakter...';
$messages['deletingmessage'] = 'Tar bort meddelande...';
$messages['markingmessage'] = 'Markerar meddelande...';
$messages['addingmember'] = 'Lägger till kontakter i gruppen...';
$messages['removingmember'] = 'Tar bort kontakter från gruppen...';
-$messages['receiptsent'] = 'Mottagarkvitto har skickats';
+$messages['receiptsent'] = 'Mottagarkvitto har skickats.';
$messages['errorsendingreceipt'] = 'Mottagarkvitto kunde inte skickas';
$messages['deleteidentityconfirm'] = 'Vill du verkligen ta bort denna identitet?';
$messages['nodeletelastidentity'] = 'Du kan inte ta bort identiteten, den är din sista.';
$messages['forbiddencharacter'] = 'Katalognamnet innehåller otillåtna tecken';
$messages['selectimportfile'] = 'Välj en fil att ladda upp';
$messages['addresswriterror'] = 'Angiven adressbok är skrivskyddad';
-$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen';
-$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen';
+$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen.';
+$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen.';
$messages['nogroupassignmentschanged'] = 'Ingen grupptillhörighet ändrades.';
$messages['importwait'] = 'Importerar, var god vänta...';
$messages['importformaterror'] = 'Importen misslyckades! Filen har inte korrekt dataformat.';
$messages['importconfirm'] = '<b>Lyckad import av $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppade över $skipped befintliga poster</b>';
+$messages['importmessagesuccess'] = '$nr meddelanden har importerats.';
+$messages['importmessageerror'] = 'Importen misslyckades! Filen innehåller inte något meddelande eller någon brevlåda';
$messages['opnotpermitted'] = 'Otillåten operation!';
$messages['nofromaddress'] = 'Adress saknas i den valda identiteten';
$messages['editorwarning'] = 'Genom att växla till text-läge går formateringen förlorad. Vill du fortsätta?';
@@ -141,26 +146,26 @@ $messages['toomanyrecipients'] = 'Förmånga mottagare. Minska antalet till hög
$messages['maxgroupmembersreached'] = 'Antalet gruppmedlemmar får inte överstiga $max';
$messages['internalerror'] = 'Ett internt fel uppstod. Försök igen.';
$messages['contactdelerror'] = 'Kontakt kunde inte tas bort';
-$messages['contactdeleted'] = 'Kontakt borttagen';
+$messages['contactdeleted'] = 'Kontakt borttagen.';
$messages['contactrestoreerror'] = 'Borttagna kontakter kunde inte återskapas';
-$messages['contactrestored'] = 'Kontakter återskapade';
-$messages['groupdeleted'] = 'Grupp borttagen';
-$messages['grouprenamed'] = 'Gruppnamn ändrat';
-$messages['groupcreated'] = 'Grupp skapad';
-$messages['savedsearchdeleted'] = 'Sparad sökning borttagen';
+$messages['contactrestored'] = 'Kontakter återskapade.';
+$messages['groupdeleted'] = 'Grupp borttagen.';
+$messages['grouprenamed'] = 'Gruppnamn ändrat.';
+$messages['groupcreated'] = 'Grupp skapad.';
+$messages['savedsearchdeleted'] = 'Sparad sökning borttagen.';
$messages['savedsearchdeleteerror'] = 'Kunde inte ta bort sparad sökning';
-$messages['savedsearchcreated'] = 'Sparad sökning tillagd';
+$messages['savedsearchcreated'] = 'Sparad sökning tillagd.';
$messages['savedsearchcreateerror'] = 'Kunde inte lägga till sparad sökning';
-$messages['messagedeleted'] = 'Meddelande borttaget';
-$messages['messagemoved'] = 'Meddelande flyttat';
-$messages['messagecopied'] = 'Meddelande kopierat';
-$messages['messagemarked'] = 'Meddelande markerat';
+$messages['messagedeleted'] = 'Meddelande borttaget.';
+$messages['messagemoved'] = 'Meddelande flyttat.';
+$messages['messagecopied'] = 'Meddelande kopierat.';
+$messages['messagemarked'] = 'Meddelande markerat.';
$messages['autocompletechars'] = 'Ange minst $min tecken för automatisk komplettering';
$messages['autocompletemore'] = 'Flera passande informationsposter funna. Skriv fler tecken.';
$messages['namecannotbeempty'] = 'Namnet får inte vara tomt';
$messages['nametoolong'] = 'Namnet är för långt';
-$messages['folderupdated'] = 'Katalog uppdaterad';
-$messages['foldercreated'] = 'Katalog skapad';
+$messages['folderupdated'] = 'Katalog uppdaterad.';
+$messages['foldercreated'] = 'Katalog skapad.';
$messages['invalidimageformat'] = 'Ogiltigt bildfilsformat';
$messages['mispellingsfound'] = 'Stavfel hittades i meddelandet';
$messages['parentnotwritable'] = 'Katalogen kunde inte skapas eller flyttas. Åtkomsträttighet saknas.';
diff --git a/program/localization/ta_IN/messages.inc b/program/localization/ta_IN/messages.inc
index 65e611f88..22466351a 100644
--- a/program/localization/ta_IN/messages.inc
+++ b/program/localization/ta_IN/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'வடிவத்தை நீக்குகிற
$messages['messageopenerror'] = 'சேவையகத்திலிருந்து செய்தியை ஏற்ற முடியவில்லை';
$messages['fileuploaderror'] = 'கோப்பு ஏற்றம் தோல்வியடாந்தது';
$messages['filesizeerror'] = 'ஏற்றிய கோப்பு அதிகபட்ச அளவான $size-ஐ மீறியது';
-$messages['copysuccess'] = 'வெற்றிகரமாக $nr முகவரிக்களை நகலெடுத்தது';
-$messages['copyerror'] = 'எந்த முகவரியையும் நகலெடுக்க முடியவில்லை';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'இந்த முகவரியின் மூலத்தை படிக்க மட்டும்தான் முடியும்';
$messages['errorsavingcontact'] = 'தொடர்பு முகவரியை சேமிக்க முடியவில்லை';
$messages['movingmessage'] = 'செய்தியை நகர்த்துகிறது...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'ஏற்றுகிறது, தயவு செ
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>வெற்றிகரமாக $inserted தொடர்புகள் ஏற்றப்பட்டது, ஏற்கனவே உள்ள $skipped தொடர்புகள் தவிர்க்கப்பட்டது</b>: <p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'பணி அனுமதிக்கப்படவில்லை!';
$messages['nofromaddress'] = 'நீங்கள் தேர்ந்தெடுத்த அடையாளத்தில் மின்னஞ்சல் இல்லை';
$messages['editorwarning'] = 'எளிய உரை திருத்திக்கு மாறுவதன் மூலம் எல்லா உரை வடிவங்களும் தொலைந்து போகக் கூடும். தொடர விரும்புகிறீர்களா ?';
diff --git a/program/localization/th_TH/messages.inc b/program/localization/th_TH/messages.inc
index 826930c0e..cf9a1cde8 100644
--- a/program/localization/th_TH/messages.inc
+++ b/program/localization/th_TH/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'นำเอาหารจัดรูปแบบ
$messages['messageopenerror'] = 'ไม่สามารถอ่านจดหมายจาก Server ได้';
$messages['fileuploaderror'] = 'การอัพโหลดล้มเหลว';
$messages['filesizeerror'] = 'ไฟล์มีขนาดใหญ่เกิน $size';
-$messages['copysuccess'] = 'คัดลอกจดหมายจำนวน $nr ฉบับเรียบร้อย';
-$messages['copyerror'] = 'ไม่สามารถคัดลอกได้';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'จดหมายนี้เป็นแบบอ่านอย่างเดียว';
$messages['errorsavingcontact'] = 'ไม่สามารถบันทึกรายชื่อได้';
$messages['movingmessage'] = 'กำลังย้ายข้อความ...';
$messages['copyingmessage'] = 'กำลังคัดลอกข้อความ...';
$messages['copyingcontact'] = 'กำลังคัดลอกรายชื่อผู้ติดต่อ...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'กำลังลบข้อความ...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'กำลังนำเข้าข้อมูล,
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/uk_UA/messages.inc b/program/localization/uk_UA/messages.inc
index 521492d99..2a114803f 100644
--- a/program/localization/uk_UA/messages.inc
+++ b/program/localization/uk_UA/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Видалення форматування...';
$messages['messageopenerror'] = 'Не вдалося завантажити повідомлення з сервера';
$messages['fileuploaderror'] = 'Не вдалося вкласти файл';
$messages['filesizeerror'] = 'Розмір вибраного файлу перевищує максимально дозволений ($size)';
-$messages['copysuccess'] = 'Скопійовано $nr адрес';
-$messages['copyerror'] = 'Не вдалося скопіювати жодну адресу';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Дане джерело адрес доступне лише для читання';
$messages['errorsavingcontact'] = 'Неможливо зберегти адресу контакту';
$messages['movingmessage'] = 'Переміщення листа...';
$messages['copyingmessage'] = 'Копіювання листа...';
$messages['copyingcontact'] = 'Копіювання контакту(ів)...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Видалення листа (ів)';
$messages['markingmessage'] = 'Позначення листа (ів)';
$messages['addingmember'] = 'Додання контакту(ів) до групи...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Імпортування, будь ласка, зач
$messages['importformaterror'] = 'Помилка імпорту! Завантажений файл має невідомий формат даних.';
$messages['importconfirm'] = '<b>Успішно імпортовано $inserted контактів, пропущено $skipped існуючих</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Пропущені $skipped наявні записи</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Дія заборонена!';
$messages['nofromaddress'] = 'В обраному профілі не вистачає адреси електронної пошти';
$messages['editorwarning'] = 'Перемикання в режим звичайного тексту спричинить втрату всього форматування. Продовжити?';
diff --git a/program/localization/vi_VN/messages.inc b/program/localization/vi_VN/messages.inc
index 50bf71846..769a21afd 100644
--- a/program/localization/vi_VN/messages.inc
+++ b/program/localization/vi_VN/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = 'Loại bỏ định dạng...';
$messages['messageopenerror'] = 'Không thể tải thư từ máy chủ';
$messages['fileuploaderror'] = 'Tải tập tin lên thất bại';
$messages['filesizeerror'] = 'Tập tin được tải lên vượt quá dung lượng tối đa....';
-$messages['copysuccess'] = 'Sao chép thành công $nr địa chỉ.';
-$messages['copyerror'] = 'Không thể sao chép đỉa chỉ nào.';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = 'Nguồn địa chỉ này chỉ cho đọc';
$messages['errorsavingcontact'] = 'Không thể lưu địa chỉ liên lạc';
$messages['movingmessage'] = 'Đang chuyển thư...';
$messages['copyingmessage'] = 'Đang sao chép thư...';
$messages['copyingcontact'] = 'Đang sao chép liên lạc...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Đang xóa thư...';
$messages['markingmessage'] = 'Đánh dấu thư...';
$messages['addingmember'] = 'Đang thêm liên lạc vào nhóm...';
@@ -126,6 +129,8 @@ $messages['importwait'] = 'Đang nhập, xin chờ...';
$messages['importformaterror'] = 'Nhập dữ liệu lỗi. Tệp tin vừa tải lên không phải tệp dữ liệu chính xác.';
$messages['importconfirm'] = 'Đã nhập $inserted liên hệ đã chèn vào thành công.';
$messages['importconfirmskipped'] = 'Đã bỏ qua được $skipped mục tồn tại.';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Thao tác không được cho phép!';
$messages['nofromaddress'] = 'Địa chỉ email mất ở trong nhận dạng đã chọn';
$messages['editorwarning'] = 'Việc chuyển soạn thảo text gốc sẽ gây ra toàn bộ định dạng text đã có bị mất. Bạn có muốn tiếp tục không?';
diff --git a/program/localization/zh_TW/messages.inc b/program/localization/zh_TW/messages.inc
index 5605ba815..b6fdcccae 100644
--- a/program/localization/zh_TW/messages.inc
+++ b/program/localization/zh_TW/messages.inc
@@ -101,13 +101,16 @@ $messages['converting'] = '移除郵件格式中...';
$messages['messageopenerror'] = '無法從伺服器載入郵件';
$messages['fileuploaderror'] = '檔案上傳失敗';
$messages['filesizeerror'] = '上傳的檔案超過了 $size 的大小限制';
-$messages['copysuccess'] = '複製 $nr 個位址成功';
-$messages['copyerror'] = '無法複製任何位址';
+$messages['copysuccess'] = 'Successfully copied $nr contacts.';
+$messages['movesuccess'] = 'Successfully moved $nr contacts.';
+$messages['copyerror'] = 'Could not copy any contacts.';
+$messages['moveerror'] = 'Could not move any contacts.';
$messages['sourceisreadonly'] = '此來源位址是唯讀的';
$messages['errorsavingcontact'] = '無法儲存連絡人的位址';
$messages['movingmessage'] = '移動郵件中...';
$messages['copyingmessage'] = '複製訊息...';
$messages['copyingcontact'] = '複製群組...';
+$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = '刪除訊息...';
$messages['markingmessage'] = '標示訊息...';
$messages['addingmember'] = '新增連絡人至群組';
@@ -126,6 +129,8 @@ $messages['importwait'] = '匯入中,請稍候...';
$messages['importformaterror'] = '匯入失敗!上載的檔案格式不支援';
$messages['importconfirm'] = '<b>成功匯入 $inserted 筆資料,略過 $skipped 筆已存在的資料</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>略過 $skipped 個已存在的項目</b>';
+$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
+$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = '不允許的操作';
$messages['nofromaddress'] = '在選擇的身分中遺失了電子郵件位址';
$messages['editorwarning'] = '切換到純文字編輯模式將會遺失所有設定的樣式。您確定要繼續嗎?';
diff --git a/program/steps/addressbook/edit.inc b/program/steps/addressbook/edit.inc
index d175c05d9..7ddd3e516 100644
--- a/program/steps/addressbook/edit.inc
+++ b/program/steps/addressbook/edit.inc
@@ -43,16 +43,14 @@ if ($RCMAIL->action == 'edit') {
else {
$source = get_input_value('_source', RCUBE_INPUT_GPC);
- if (!strlen($source)) {
- // Give priority to configured default
- $source = $RCMAIL->config->get('default_addressbook');
+ if (strlen($source)) {
+ $CONTACTS = $RCMAIL->get_address_book($source, true);
}
- $CONTACTS = $RCMAIL->get_address_book($source, true);
-
- // find writable addressbook
- if (!$CONTACTS || $CONTACTS->readonly)
- $source = $RCMAIL->get_address_book(-1, true);
+ if (!$CONTACTS || $CONTACTS->readonly) {
+ $CONTACTS = $RCMAIL->get_address_book(-1, true);
+ $source = $RCMAIL->get_address_book_id($CONTACTS);
+ }
// Initialize addressbook
$CONTACTS = rcmail_contact_source($source, true);
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 8ec581f9a..f94d15338 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -751,12 +751,28 @@ function rcmail_contact_photo($attrib)
$plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'data' => $record['photo']));
+ // check if we have photo data from contact form
+ if ($GLOBALS['EDIT_RECORD']) {
+ $rec = $GLOBALS['EDIT_RECORD'];
+ if ($rec['photo'] == '-del-') {
+ $record['photo'] = '';
+ }
+ else if ($_SESSION['contacts']['files'][$rec['photo']]) {
+ $record['photo'] = $file_id = $rec['photo'];
+ }
+ }
+
if ($plugin['url'])
$photo_img = $plugin['url'];
else if (preg_match('!^https?://!i', $record['photo']))
$photo_img = $record['photo'];
- else if ($record['photo'])
- $photo_img = $RCMAIL->url(array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID));
+ else if ($record['photo']) {
+ $url = array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID);
+ if ($file_id) {
+ $url['_photo'] = $ff_value = $file_id;
+ }
+ $photo_img = $RCMAIL->url($url);
+ }
else
$ff_value = '-del-'; // will disable delete-photo action
@@ -893,7 +909,6 @@ $OUTPUT->add_handlers(array(
// register action aliases
$RCMAIL->register_action_map(array(
'add' => 'edit.inc',
- 'photo' => 'show.inc',
'group-create' => 'groups.inc',
'group-rename' => 'groups.inc',
'group-delete' => 'groups.inc',
diff --git a/program/steps/addressbook/photo.inc b/program/steps/addressbook/photo.inc
new file mode 100644
index 000000000..658027de4
--- /dev/null
+++ b/program/steps/addressbook/photo.inc
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/addressbook/photo.inc |
+ | |
+ | This file is part of the Roundcube Webmail client |
+ | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ | PURPOSE: |
+ | Show contact photo |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ | Author: Aleksander Machniak <alec@alec.pl> |
+ +-----------------------------------------------------------------------+
+*/
+
+// Get contact ID and source ID from request
+$cids = rcmail_get_cids();
+$source = key($cids);
+$cid = $cids ? array_shift($cids[$source]) : null;
+
+// read the referenced file
+if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) {
+ $tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile);
+ if ($tempfile['status']) {
+ if ($tempfile['data'])
+ $data = $tempfile['data'];
+ else if ($tempfile['path'])
+ $data = file_get_contents($tempfile['path']);
+ }
+}
+else {
+ // by email, search for contact first
+ if ($email = get_input_value('_email', RCUBE_INPUT_GPC)) {
+ foreach ($RCMAIL->get_address_sources() as $s) {
+ $abook = $RCMAIL->get_address_book($s['id']);
+ $result = $abook->search(array('email'), $email, 1, true, true, 'photo');
+ while ($result && ($record = $result->iterate())) {
+ if ($record['photo'])
+ break 2;
+ }
+ }
+ }
+
+ // by contact id
+ if (!$record && $cid) {
+ // Initialize addressbook source
+ $CONTACTS = rcmail_contact_source($source, true);
+ $SOURCE_ID = $source;
+ // read contact record
+ $record = $CONTACTS->get_record($cid, true);
+ }
+
+ if ($record['photo']) {
+ $data = is_array($record['photo']) ? $record['photo'][0] : $record['photo'];
+ if (!preg_match('![^a-z0-9/=+-]!i', $data))
+ $data = base64_decode($data, true);
+ }
+}
+
+// let plugins do fancy things with contact photos
+$plugin = $RCMAIL->plugins->exec_hook('contact_photo',
+ array('record' => $record, 'email' => $email, 'data' => $data));
+
+// redirect to url provided by a plugin
+if ($plugin['url']) {
+ $RCMAIL->output->redirect($plugin['url']);
+}
+else {
+ $data = $plugin['data'];
+}
+
+// deliver alt image
+if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img)) {
+ $data = file_get_contents($alt_img);
+}
+
+// cache for one day if requested by email
+if (!$cid && $email) {
+ $RCMAIL->output->future_expire_header(86400);
+}
+
+header('Content-Type: ' . rc_image_content_type($data));
+echo $data ? $data : file_get_contents('program/resources/blank.gif');
+exit;
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index 950764bb1..efab5e9e5 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -38,58 +38,6 @@ if ($cid && ($record = $CONTACTS->get_record($cid, true))) {
// get address book name (for display)
rcmail_set_sourcename($CONTACTS);
-// return raw photo of the given contact
-if ($RCMAIL->action == 'photo') {
- // search for contact first
- if (!$record && ($email = get_input_value('_email', RCUBE_INPUT_GPC))) {
- foreach ($RCMAIL->get_address_sources() as $s) {
- $abook = $RCMAIL->get_address_book($s['id']);
- $result = $abook->search(array('email'), $email, 1, true, true, 'photo');
- while ($result && ($record = $result->iterate())) {
- if ($record['photo'])
- break 2;
- }
- }
- }
-
- // read the referenced file
- if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) {
- $tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile);
- if ($tempfile['status']) {
- if ($tempfile['data'])
- $data = $tempfile['data'];
- else if ($tempfile['path'])
- $data = file_get_contents($tempfile['path']);
- }
- }
- else if ($record['photo']) {
- $data = is_array($record['photo']) ? $record['photo'][0] : $record['photo'];
- if (!preg_match('![^a-z0-9/=+-]!i', $data))
- $data = base64_decode($data, true);
- }
-
- // let plugins do fancy things with contact photos
- $plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'email' => $email, 'data' => $data));
-
- // redirect to url provided by a plugin
- if ($plugin['url'])
- $RCMAIL->output->redirect($plugin['url']);
- else
- $data = $plugin['data'];
-
- // deliver alt image
- if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img))
- $data = file_get_contents($alt_img);
-
- // cache for one day if requested by email
- if (!$cid && $email)
- $RCMAIL->output->future_expire_header(86400);
-
- header('Content-Type: ' . rc_image_content_type($data));
- echo $data ? $data : file_get_contents('program/resources/blank.gif');
- exit;
-}
-
function rcmail_contact_head($attrib)
{
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 246cb88bf..7068a25fd 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -529,7 +529,7 @@ function rcmail_compose_header_from($attrib)
}
}
- $out = $select_from->show((int)$MESSAGE->compose['from']);
+ $out = $select_from->show($MESSAGE->compose['from']);
// add signatures to client
$OUTPUT->set_env('signatures', $a_signatures);
@@ -947,10 +947,10 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
$prefix .= rcube_label('from') . ': ' . $MESSAGE->get_header('from') . "\n";
$prefix .= rcube_label('to') . ': ' . $MESSAGE->get_header('to') . "\n";
- if ($MESSAGE->headers->cc)
- $prefix .= rcube_label('cc') . ': ' . $MESSAGE->get_header('cc') . "\n";
- if ($MESSAGE->headers->replyto && $MESSAGE->headers->replyto != $MESSAGE->headers->from)
- $prefix .= rcube_label('replyto') . ': ' . $MESSAGE->get_header('replyto') . "\n";
+ if ($cc = $MESSAGE->headers->get('cc'))
+ $prefix .= rcube_label('cc') . ': ' . $cc . "\n";
+ if (($replyto = $MESSAGE->headers->get('reply-to')) && $replyto != $MESSAGE->get_header('from'))
+ $prefix .= rcube_label('replyto') . ': ' . $replyto . "\n";
$prefix .= "\n";
$body = trim($body, "\r\n");
@@ -973,15 +973,13 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
rcube_label('from'), Q($MESSAGE->get_header('from'), 'replace'),
rcube_label('to'), Q($MESSAGE->get_header('to'), 'replace'));
- if ($MESSAGE->headers->cc)
+ if ($cc = $MESSAGE->headers->get('cc'))
$prefix .= sprintf("<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>",
- rcube_label('cc'),
- Q($MESSAGE->get_header('cc'), 'replace'));
+ rcube_label('cc'), Q($cc, 'replace'));
- if ($MESSAGE->headers->replyto && $MESSAGE->headers->replyto != $MESSAGE->headers->from)
+ if (($replyto = $MESSAGE->headers->get('reply-to')) && $replyto != $MESSAGE->get_header('from'))
$prefix .= sprintf("<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>",
- rcube_label('replyto'),
- Q($MESSAGE->get_header('replyto'), 'replace'));
+ rcube_label('replyto'), Q($replyto, 'replace'));
$prefix .= "</tbody></table><br>";
}
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 39037d959..018a31b84 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -177,7 +177,9 @@ function rcmail_message_list_smart_column_name()
$sent_mbox = $RCMAIL->config->get('sent_mbox');
$drafts_mbox = $RCMAIL->config->get('drafts_mbox');
- if (strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0) {
+ if ((strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0)
+ && strtoupper($mbox) != 'INBOX'
+ ) {
return 'to';
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index cf22a2af9..1a92844c0 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -455,6 +455,7 @@ if (!empty($CONFIG['useragent'])) {
}
// exec hook for header checking and manipulation
+// Depracated: use message_before_send hook instead
$data = $RCMAIL->plugins->exec_hook('message_outgoing_headers', array('headers' => $headers));
// sending aborted by plugin
diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc
index 6d116e7d2..64af18d62 100644
--- a/program/steps/settings/folders.inc
+++ b/program/steps/settings/folders.inc
@@ -349,7 +349,7 @@ function rcube_subscription_form($attrib)
array('value' => $folder_utf8, 'disabled' => $disabled ? 'disabled' : '')));
$a_js_folders['rcmrow'.$idx] = array($folder_utf8,
- Q($display_folder), $protected || $folder['virtual']);
+ $display_folder, $protected || $folder['virtual']);
}
$RCMAIL->plugins->exec_hook('folders_list', array('table' => $table));
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index f6ea79ec6..fdc07be9e 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -987,11 +987,12 @@ function rcmail_user_prefs($current = null)
'maxlength' => 30,
'folder_filter' => 'mail',
'folder_rights' => 'w',
- // #1486114, #1488279
- 'onchange' => "if ($(this).val() == 'INBOX') $(this).val('')",
));
}
+ // #1486114, #1488279, #1489219
+ $onchange = "if ($(this).val() == 'INBOX') $(this).val('')";
+
if (!isset($no_override['drafts_mbox'])) {
if (!$current) {
continue 2;
@@ -999,7 +1000,7 @@ function rcmail_user_prefs($current = null)
$blocks['main']['options']['drafts_mbox'] = array(
'title' => Q(rcube_label('drafts')),
- 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox")),
+ 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => $onchange)),
);
}
@@ -1010,7 +1011,7 @@ function rcmail_user_prefs($current = null)
$blocks['main']['options']['sent_mbox'] = array(
'title' => Q(rcube_label('sent')),
- 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox")),
+ 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox", 'onchange' => '')),
);
}
@@ -1021,7 +1022,7 @@ function rcmail_user_prefs($current = null)
$blocks['main']['options']['junk_mbox'] = array(
'title' => Q(rcube_label('junk')),
- 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox")),
+ 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox", 'onchange' => $onchange)),
);
}
@@ -1032,7 +1033,7 @@ function rcmail_user_prefs($current = null)
$blocks['main']['options']['trash_mbox'] = array(
'title' => Q(rcube_label('trash')),
- 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox")),
+ 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox", 'onchange' => $onchange)),
);
}
break;
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index 19edb41d4..3e8b1d17e 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -160,7 +160,7 @@ switch ($CURR_SECTION)
$a_user_prefs['timezone'] = (string) $a_user_prefs['timezone'];
- if (isset($a_user_prefs['refresh_interval']) && !empty($CONFIG['min_refresh_interval'])) {
+ if (!empty($a_user_prefs['refresh_interval']) && !empty($CONFIG['min_refresh_interval'])) {
if ($a_user_prefs['refresh_interval'] < $CONFIG['min_refresh_interval']) {
$a_user_prefs['refresh_interval'] = $CONFIG['min_refresh_interval'];
}
diff --git a/program/steps/utils/spell.inc b/program/steps/utils/spell.inc
index 38e4ca285..1c68e8328 100644
--- a/program/steps/utils/spell.inc
+++ b/program/steps/utils/spell.inc
@@ -45,7 +45,7 @@ else {
if ($err = $spellchecker->error()) {
rcube::raise_error(array('code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
- 'message' => sprintf("Spell check engine error: " . $err)),
+ 'message' => "Spell check engine error: " . trim($err)),
true, false);
}
diff --git a/skins/classic/addressbook.css b/skins/classic/addressbook.css
index 415142e0c..9575ae25f 100644
--- a/skins/classic/addressbook.css
+++ b/skins/classic/addressbook.css
@@ -357,7 +357,8 @@ body.iframe,
}
#contactpic img {
- width: 60px;
+ max-width: 60px;
+ max-height: 80px;
}
#contactpic.droptarget.hover {
diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css
index 090e54c7b..6bf9426c4 100644
--- a/skins/larry/addressbook.css
+++ b/skins/larry/addressbook.css
@@ -219,7 +219,7 @@
}
#contactpic img {
- width: 112px;
+ max-width: 112px;
visibility: inherit;
}
diff --git a/skins/larry/includes/links.html b/skins/larry/includes/links.html
index 8bd8012e1..69e477c2d 100644
--- a/skins/larry/includes/links.html
+++ b/skins/larry/includes/links.html
@@ -1,4 +1,5 @@
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
+<meta name="viewport" content="" id="viewport" />
<link rel="shortcut icon" href="/images/favicon.ico"/>
<link rel="stylesheet" type="text/css" href="/styles.css" />
<roundcube:if condition="in_array(env:task, array('mail','addressbook','settings'))" />
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 288b010ed..09c7a60ed 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -929,6 +929,15 @@ a.iconlink.upload {
background-repeat: no-repeat;
}
+/* fix scrolling within iframes in webkit browsers on touch devices */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ .iframebox {
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+
+
/*** lists ***/
.listbox {
@@ -1670,6 +1679,7 @@ ul.proplist li {
-o-box-shadow: none;
background: url(images/buttons.png) -100px 0 no-repeat transparent;
border: 0;
+ border-radius: 0;
}
.toolbar a.button.disabled {
diff --git a/skins/larry/templates/mail.html b/skins/larry/templates/mail.html
index 3d7499f80..f2c52c820 100644
--- a/skins/larry/templates/mail.html
+++ b/skins/larry/templates/mail.html
@@ -112,7 +112,7 @@
<div id="mailview-bottom" class="uibox">
-<div id="mailpreviewframe">
+<div id="mailpreviewframe" class="iframebox">
<roundcube:object name="messagecontentframe" id="messagecontframe" style="width:100%; height:100%" frameborder="0" src="/watermark.html" />
</div>
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index e5733bd23..ae14d81b2 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -52,6 +52,10 @@ function rcube_mail_ui()
if (parseInt(minmode) || (minmode === null && $(window).height() < 850)) {
$(document.body).addClass('minimal');
}
+
+ if (bw.tablet) {
+ $('#viewport').attr('content', "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0");
+ }
}
diff --git a/tests/Framework/BaseReplacer.php b/tests/Framework/BaseReplacer.php
index e00b9e5eb..44a9604ac 100644
--- a/tests/Framework/BaseReplacer.php
+++ b/tests/Framework/BaseReplacer.php
@@ -17,4 +17,18 @@ class Framework_BaseReplacer extends PHPUnit_Framework_TestCase
$this->assertInstanceOf('rcube_base_replacer', $object, "Class constructor");
}
+
+ /**
+ * Test replace()
+ */
+ function test_replace()
+ {
+ $base = 'http://thisshouldntbetheurl.bob.com/';
+ $html = '<A href=http://shouldbethislink.com>Test URL</A>';
+
+ $replacer = new rcube_base_replacer($base);
+ $response = $replacer->replace($html);
+
+ $this->assertSame('<A href="http://shouldbethislink.com">Test URL</A>', $response);
+ }
}
diff --git a/tests/Framework/StringReplacer.php b/tests/Framework/StringReplacer.php
index 8f6eaf4b9..e23fb9b17 100644
--- a/tests/Framework/StringReplacer.php
+++ b/tests/Framework/StringReplacer.php
@@ -41,6 +41,7 @@ class Framework_StringReplacer extends PHPUnit_Framework_TestCase
array('http://', 'http://'),
array('1@1.com www.domain.tld', '<a href="mailto:1@1.com">1@1.com</a> <a href="http://www.domain.tld">www.domain.tld</a>'),
array(' www.domain.tld ', ' <a href="http://www.domain.tld">www.domain.tld</a> '),
+ array(' www.domain.tld/#!download|856p1|2 ', ' <a href="http://www.domain.tld/#!download|856p1|2">www.domain.tld/#!download|856p1|2</a> '),
);
}
diff --git a/tests/Framework/Utils.php b/tests/Framework/Utils.php
index abfb7cb65..3f7f48c3a 100644
--- a/tests/Framework/Utils.php
+++ b/tests/Framework/Utils.php
@@ -271,11 +271,19 @@ class Framework_Utils extends PHPUnit_Framework_TestCase
$test = array(
'1' => 1,
'' => 0,
+ '2013-04-22' => 1366581600,
+ '2013/04/22' => 1366581600,
+ '2013.04.22' => 1366581600,
+ '22-04-2013' => 1366581600,
+ '22/04/2013' => 1366581600,
+ '22.04.2013' => 1366581600,
+ '22.4.2013' => 1366581600,
+ '20130422' => 1366581600,
);
foreach ($test as $datetime => $ts) {
$result = rcube_utils::strtotime($datetime);
- $this->assertSame($ts, $result);
+ $this->assertSame($ts, $result, "Error parsing date: $datetime");
}
}